Databases

Databases Overview

Skytells managed databases run as containers inside your project's private network. They are internal-only by default and reachable by all apps in the same project without any configuration. You can expose a database to the internet when needed.

A database in Skytells is a managed container running a database engine inside your project. It lives on the project's private internal network alongside your apps and is reachable by all of them from day one — no connection setup, no credentials to copy.

Databases are not exposed to the internet by default. You can optionally expose a database to the internet by setting a public port in the database overview.

Supported Engines

Skytells supports five database engines:

See Supported Engines for default ports, connection URL formats, and use-case guidance for each.

How Databases Fit Into a Project

When you create a database, it joins the project and its private internal network. From that moment:

  • Every app in the same project can reach it by internal host and internal port — no extra configuration.
  • Credentials are auto-generated (password, internal host, internal connection URL) and shown in the database overview.
  • The database is not reachable from the internet until you explicitly set an external port.
Project — Private Network Internal Connection URL Internal Connection URL Internal Connection URL Web App API Service Worker Database

The Pro tip shown in the New Database dialog says it all: databases are accessible internally by all apps and services in the same project via the private network — no extra configuration needed.

Database Detail Structure

Each database has its own detail page with five sections accessible from the left sidebar:

Overview — Credentials & Status

Shows the database engine, running status, and both Internal Credentials and External Credentials. This is where you expose the database to the internet by setting an external port.

Environment — Environment Variables

Environment variables scoped to this database container.

Logs — Container Output

Real-time and historical stdout/stderr from the database container.

Monitoring — Container Metrics

CPU, memory, disk I/O, and connection count metrics for this database.

Settings — Database Configuration

Rename, resize, configure backups, and manage the database lifecycle.

Internal Credentials

Every database exposes four internal credential fields in its Overview page:

FieldDescription
PasswordAuto-generated secure password. Masked by default, copyable.
Internal Port (Container)The port the database engine listens on inside the container (e.g. 6379 for Redis, 5432 for PostgreSQL).
Internal HostThe hostname used to reach this database from other services inside the project.
Internal Connection URLA complete connection string your app can use directly. Injected as an environment variable into project apps automatically.

Apps in the same project use the Internal Connection URL — it is available as an environment variable without any manual setup.

External Credentials

The database overview also shows an External Credentials section for internet access:

FieldDescription
External Port (Internet)A port you choose and assign to expose this database publicly. Must not be in use by any other service in the project.
External HostThe public connection string for connecting from outside the project. 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 instead of a raw IP address.

Port conflict warning. When exposing a database to the internet you must choose a port that is not already in use by any other app or database in this project. Using a conflicting port will prevent the database from binding correctly and may disrupt the service already using that port. Check all running services in your project before entering an external port.

Cloudflare proxied DNS breaks database connections. If your custom domain is managed through Cloudflare, make sure the DNS record pointing to your database host is set to DNS only (grey cloud), not Proxied (orange cloud). Cloudflare's proxy does not support raw TCP protocols such as PostgreSQL, MySQL, MongoDB, and Redis. A proxied record will silently drop the connection.

To enable internet access, enter an External Port in the database Overview and save. The External Host field populates automatically with the public connection string.

Managing Databases

Databases list

The Databases page for a project shows every database provisioned in that project as a card. Each card displays:

ElementDescription
NameThe label you gave the database when creating it (e.g. my-postgresql-db).
EngineThe database engine (e.g. PostgreSQL, Redis).
Status badgeRunning (green) or Stopped (grey).
Port badgeThe external port binding, if any. Shown as :6379 or :11926. If no external port is set, nothing is displayed here.

Each card has three action buttons:

ButtonWhat it does
StopStops the running database container. The data is preserved.
RestartRestarts the container — useful after a configuration change.
Delete (trash icon)Permanently removes the database and all its data. This action cannot be undone.

Select + New Database in the top-right corner to provision an additional database. Use the refresh icon next to it to reload the list.


Security Model

Access pathDefaultAfter setting an external port
Apps in the same project (internal)Yes — via Internal Connection URLYes — unchanged
Internet / external clientsNoYes — via External Host
Apps in a different projectNo — separate private networkNo

How is this guide?

On this page