Create a Database
Step-by-step guide to provisioning a managed database inside a Skytells project — choose an engine, configure credentials, and connect your apps over the private network in minutes.
Databases are provisioned from inside a project. Each database runs as a managed container on the project's private internal network and is immediately reachable by all apps in that project.
Before You Start
- You need an existing project. If you do not have one, see Create a Project.
- Decide which database engine fits your workload. See Supported Engines for a comparison.
Creating a Database
Open the Databases Page
Open your project in the Console and select Databases from the left sidebar.
Start a New Database
Select New Database in the top-right corner.
Choose a Database Engine
Select one of the five available engines:
- PostgreSQL — reliable relational database, recommended for most production workloads
- MySQL — popular open-source RDBMS
- MariaDB — community-driven MySQL fork
- MongoDB — document-oriented NoSQL database
- Redis — in-memory key-value store
The button at the bottom of the form updates to show the selected engine (e.g. Create PostgreSQL).
Fill in the Database Details
| Field | Required | Default | Notes |
|---|---|---|---|
| Name | Yes | — | A label for this database in the Console (e.g. my-postgresql-db). |
| Description | No | — | Optional free-text description. |
| Database Name | No | Same as Name | The actual database name created inside the engine. |
| Username | No | admin | The database user Skytells creates. |
A secure password is auto-generated — you do not need to set one.
Create the Database
Select Create <Engine>. Skytells provisions the database container and places it on the project's private network.
Databases are accessible internally by all apps and services in the same project via the private network — no extra configuration needed. The internal connection URL is available immediately in the database overview.
After Creation
Once the database is running, open it from Project > Databases to find:
- Internal Credentials — password, internal host, internal port, and a ready-to-use internal connection URL.
- External Credentials — empty by default. Set an external port here if you need internet access.
The internal connection URL is automatically available as an environment variable in your project's apps. No copy-paste required.
Connecting an App to the New Database
Find the Internal Connection URL
Open the database overview and note the Internal Connection URL and the environment variable name it is injected under (e.g. DATABASE_URL).
Open the App's Environment Settings
Open the app from Project > Apps and navigate to its Environment settings.
Confirm the Variable Is Present
Confirm the variable is present. If not, add it manually using the Internal Connection URL from the database overview.
Restart or Redeploy the App
Restart or redeploy the app so it picks up the connection at runtime.
Exposing the Database to the Internet (Optional)
By default the database is only reachable from inside the project. If you need to connect from a local machine, a database GUI client, or an external service:
Open the Database Overview
Open the database overview.
Enter an External Port
In the External Credentials section, enter an External Port — a port number not already in use by any other app or database in this project.
Save the External Settings
Select Save. The External Host field populates with the public connection string — shown as a hostname or IP and port (e.g. redis://db.example.com:12826). If you have a custom domain pointed at your project, the external host will reflect that domain.
Port conflict warning. The external port you choose must not be in use by any other app or service running in the same project. A conflicting port will prevent the database from binding correctly and may disrupt the service already using that port.
Cloudflare proxied DNS breaks database connections. If your custom domain uses Cloudflare, set the DNS record to DNS only (grey cloud), not Proxied (orange cloud). Cloudflare's proxy layer does not support raw TCP protocols used by PostgreSQL, MySQL, MariaDB, MongoDB, and Redis — a proxied record will silently drop the connection.
Related
- Supported Engines — engine comparison, default ports, and connection URL formats.
- Databases Overview — credentials structure, security model, and how databases fit into a project.
- Apps Overview — deploy apps that consume the database over the private network.
- Enterprise Network — internal networking and service discovery.
How is this guide?
Supported Engines
Skytells supports five managed database engines — PostgreSQL, MySQL, MariaDB, MongoDB, and Redis. Each runs as a container inside your project's private network with auto-generated credentials and a unique internal port.
Overview
Skytells integrations connect external services — source control providers, CI/CD systems, and third-party platforms — to a project and its apps. Learn what integrations are, how they work, and which ones are available.