Skip to main content

Databases and services

The platform runs shared database and message-broker servers for you. You create a service user (an account for one database engine) with a password, create databases under it, and connect from any of your labs (your own Linux machines in the cloud). You do not need to install, back up or run anything yourself.

Open Services in the sidebar. The badge next to it counts your service users.

Services are in beta

The Services page says so too. Services are fine for learning, projects and prototypes, but keep your own backups of anything you cannot lose.

What is available​

Which engines appear depends on your platform. The managed engines (the ones with a Manage button) are:

ServiceKindInside a user you create
MySQLRelational databaseDatabases
MariaDBRelational databaseDatabases
PostgreSQLRelational databaseDatabases
MongoDBDocument databaseDatabases
RedisKey-value storeNothing — credentials only
RabbitMQMessage brokerVirtual hosts

Some cards are informational only, such as Adminer (a browser-based database tool) and Memcached. They show how to reach the service but have nothing to manage.

Memcached is shared by everyone

Memcached has no users or passwords. Every lab on the platform uses the same cache, so anyone can read, change or delete what you store there. Use it only for data that is safe to lose and safe for others to see. Never use it for sessions, tokens or personal data. Use Redis when you need your own credentials.

Limits​

LimitFree planPaid plan
Service users, across all engines215
Users per engineShown on the service page as Maximum N users — 5 on most enginesSame
Databases per userShown on each user's card as used / limitSame
RabbitMQ virtual hosts5 per account5 per account

While acting as an organization, the organization's own limit applies. Your exact numbers are in Account Settings → Account Limits.

When you reach a limit, you see You have reached your services limit (N) or You have reached the maximum number of databases allowed. Delete a user or database you no longer need.

The service card​

Shown on labs.selfmade.ninja, the Selfmade Ninja Academy platform. On your own platform you will see your own domain and data.

Each card shows:

  • the hostname to use from inside your labs (hover over it to see This hostname is reachable from within your lab);
  • the port or ports the service listens on;
  • Port Forwarding helpers (below);
  • Manage, which opens the service page.

The port rows are labeled with what each port is for. RabbitMQ, for example, lists several (AMQP, management, STOMP, WebStomp, MQTT). Each has a copy button. Learn More opens the engine's own website. A card showing Coming soon instead of Manage is not available yet.

The service page​

Select Manage. The service page has a Dashboard tab and, except for Redis, a second tab for what lives inside a user.

WhereWhat is there
Dashboard → Connection InformationService, IP Address, Hostname and Port — each with a copy button. These are the values to use from inside a lab. IP Address and Hostname are copied with the port after a colon.
Dashboard → UsersYour service users for this engine (Maximum 5 users), each with its credentials and a copy button. Add User creates one.
Database tabCreate and drop databases. On RabbitMQ this tab is Virtual Host. Redis has no second tab.
Deleting a user deletes its databases

Delete User removes the user and every database it owns. Export anything you need first.

Connecting from a lab​

Your labs reach services directly over the platform's network. You do not need a tunnel or port forwarding.

  1. Open the service page and copy the Hostname (or IP Address) and Port from Connection Information.
  2. Use them with a user and password from the Users panel.

Always copy these values from the page instead of typing them from memory. The page shows the correct values for your platform. Each engine's page has example commands:

Reaching a service from your own computer​

Use the Port Forwarding helpers on each service card when you want to use a local tool, such as a database GUI or your own code, with a service:

HelperHow to use it
VS Code DesktopCopy the address and add it under Ports in VS Code connected to your lab over SSH. VS Code forwards it to your computer.
VS Code Web ($)Shown for services with a web interface. Copy the command, paste it into the terminal of VS Code in the browser, and the service is reachable locally.

If the original port is busy on your computer, VS Code may forward to a different local port. Use the port that VS Code shows.

Public endpoints​

Where a service offers a public endpoint, it is shown on the service page as a Public endpoint row (and sometimes Public TLS) under Connection Information. The same user credentials work there. If there is no such row, the service is reachable only from inside your labs, or from your computer through the port forwarding helpers above.

The public port is not the same as the port inside your labs, so copy the whole Public endpoint value rather than reusing the in-lab port. A short note under the row explains anything special, such as the authentication database MongoDB needs.

Connecting fromUse
Inside one of your labsHostname and Port
Your own computer, where there is a Public endpoint rowPublic endpoint (or Public TLS for an encrypted connection)
Your own computer, where there is noneThe Port Forwarding helpers above
A public endpoint is on the internet

Anyone who learns your service username and password can connect from anywhere. Use a long, unique password for every service user.

Services in an organization​

While you are acting as an organization, the Services page says so. Users and databases created there belong to the organization and are shared with all of its members. See Organizations.

Do it with an AI assistant​

You can also do this by asking an AI assistant connected to your account — see Connect an AI assistant to set one up.

AskWhat the assistant does
“What database services do I have?”list_services
“Create a MySQL user called appsvc01”add_service_user, with a password you choose
“List the databases under appsvc01”list_databases
“Delete appsvc01 and its databases”remove_service_user
Choose the password carefully

The assistant does not generate a password; you supply it. Anyone who can open the service page can read the password, including every member of an organization. There is no password reset: to change the password, you must remove the user, which drops its databases.

In this section​