Infrastructure
Database hosting
Seven database engines available as one-click installs. Each runs in a Docker container backed by a persistent block storage volume so data survives server restarts.
Supported engines
| Engine | Default port | Notes |
|---|---|---|
| MySQL | 3306 | MySQL 8.x |
| MariaDB | 3306 | Drop-in MySQL replacement |
| PostgreSQL | 5432 | PostgreSQL 16.x |
| Redis | 6379 | In-memory cache / pub-sub |
| MongoDB | 27017 | MongoDB 7.x |
| Kafka | 9092 | Event streaming (includes ZooKeeper) |
| Memcached | 11211 | High-performance object cache |
Installing a database
- Navigate to Databases in the server sidebar.
- Click Add Database, choose your engine and version.
- Give it a name and click Install.
The installer creates a Docker container, attaches a block storage volume for data persistence, and configures the database with a strong auto-generated password. Installation typically takes 1–3 minutes.
Connection strings
After installation, the portal shows the internal connection string for use by apps running on the same server:
# PostgreSQL example (internal) postgresql://simplewala:<password>@127.0.0.1:5432/mydb # MySQL / MariaDB mysql://simplewala:<password>@127.0.0.1:3306/mydb # Redis redis://127.0.0.1:6379 # MongoDB mongodb://simplewala:<password>@127.0.0.1:27017/mydb
External access via Front Door
By default databases are only reachable from within the server. To connect from an external client (e.g. a local database GUI), enable External Access on the database detail page. Simplewala allocates a random TCP port (30000–59999), configures an nginx stream proxy, and shows the external connection string:
# External connection (replace <server-ip> and <port>) postgresql://simplewala:<password>@<server-ip>:<port>/mydb
The UFW firewall is updated automatically to allow traffic on the allocated port.
Data persistence
Each database is backed by a dedicated block storage volume. The volume mounts to the container’s data directory so data is preserved across container restarts and upgrades. You can manage volumes from the Storage section in the server sidebar.
Backups
Databases are included in server-level backups. You can also trigger a manual database backup from the Backups section. Backups export a logical dump (mysqldump / pg_dump / mongodump) to the backup store.
Troubleshooting
Cannot connect from app container
Use host.docker.internal instead of 127.0.0.1 if your app runs inside a Docker container, or use the server’s private IP. Confirm the database container is running: docker ps | grep db_.
External access not working
Confirm your cloud provider’s firewall (DigitalOcean / Hetzner panel) allows the allocated port, not just the UFW rule on the server. Both layers must be open.