Deploy Cradle CMS
Cradle CMS is a CMS for websites, blogs and online stores. It runs as one container with the web server and admin inside, and stores its content in PostgreSQL (or SQLite for small setups). Cradle CMS is commercial software. You need a licence to pull the image.
Before using the one-click template, here is a minimal Docker Compose example for running Cradle CMS behind a reverse proxy that handles HTTPS.
If you're new to Docker Compose, check out our guide on how to self-host a Docker Compose app. More stacks are in our Docker Compose library.
Self-host Cradle CMS with Docker Compose (minimal)
Log in to the Cradle registry first. The username is your licence key, the password is your Cradle account password:
docker login registry.cradlecms.com
services:
cms:
image: registry.cradlecms.com/cradle-cms:latest
ports:
- "8080:8080"
environment:
TLS: "false"
PORT: "8080"
ADMIN_USER: admin
ADMIN_EMAIL: you@example.com
ADMIN_PASS: changeme_long_random_password
DB_TYPE: postgres
DB_HOST: db
DB_PORT: "5432"
DB_NAME: cradle
DB_USER: cradle
DB_PASS: changeme
volumes:
- ./storage:/storage
depends_on:
- db
db:
image: postgres:17-alpine
environment:
POSTGRES_USER: cradle
POSTGRES_PASSWORD: changeme
POSTGRES_DB: cradle
volumes:
- ./pgdata:/var/lib/postgresql/data
TLS=false makes Cradle serve plain HTTP and leave HTTPS to your reverse proxy. Without a proxy, Cradle can get its own Let's Encrypt certificate instead. See the Cradle installation guides.
Without the DB_* variables, Cradle uses SQLite at /storage/site.db. That works, but PostgreSQL is safer when the container restarts or is replaced. Cradle creates the schema and runs migrations on startup.
/storage still matters with PostgreSQL: it holds uploaded media, themes, caches and the built-in message bus. Back up both the database and the volume. Run one instance only.
Deploy Cradle CMS on Hostim.dev (One-Click)
With Hostim.dev, you can deploy Cradle CMS with managed PostgreSQL and a persistent volume in one click, with an automatic domain and HTTPS. Hostim terminates HTTPS, so the template already runs Cradle with TLS=false on port 8080.
🧱 One container, one database, a full CMS.
Guest project runs for 1 hour. Log in to save and extend to 5 days. You still need your own Cradle CMS licence.
Why Host Cradle CMS on Hostim.dev?
- One-click Docker deployment from the private Cradle registry
- Automatic HTTPS and domain, no certificate setup in Cradle
- Managed PostgreSQL, connected automatically
- Persistent volume for media and themes
- Real-time logs and metrics
- Hosted in the EU
What's included
| Resource | Details |
|---|---|
| App | registry.cradlecms.com/cradle-cms Docker image |
| Database | Managed PostgreSQL |
| Volume | /storage for media, themes and caches |
| Admin | admin user with a generated password |
| Domain | Free *.hostim.dev subdomain |
| SSL | Let's Encrypt (auto-enabled) |
| Port | 8080 |
How to Deploy
- Get a Cradle CMS licence at cradlecms.com. You get a licence key and registry access.
- Go to your Hostim.dev dashboard.
- Click Create Project → Use a Template.
- Select Cradle CMS.
- Click Edit on the
cmsapp. Tick Provide credentials for private registry. Enter your licence key as the username and your Cradle account password as the password. - Choose a resource plan and deploy.
- Copy the generated
ADMIN_PASSfrom the app's environment variables. Log in at/adminasadmin.
If you skip step 5, the deploy fails with an image pull error. You can add the credentials later under the app's Edit settings and redeploy.
First steps after deploy
- Add SMTP. Go to Site → Services and add your mail provider. Password recovery, user invites and form emails do not work without it. Most providers use port 587.
- Add your domain. Add the domain to the app in Hostim, point your DNS to it, then add the same domain under Site → Domains in the Cradle admin.
- Pin the image version. The template uses
:latest. For predictable upgrades, change the image to a fixed tag, for exampleregistry.cradlecms.com/cradle-cms:0.14.
FAQ
Is Cradle CMS free?
No. Cradle CMS is commercial software. You need a licence from cradlecms.com to pull the image. Hostim charges only for the resources the app uses.
Why does the deploy fail with an image pull error?
The image is in a private registry. Edit the app, tick Provide credentials for private registry, enter your licence key and Cradle account password, and redeploy.
Where is my data stored?
Pages, posts, users and settings live in the managed PostgreSQL database.
Uploaded media, themes, caches and the built-in message bus live in the
/storage volume.
Can I run more than one replica?
Run one replica. The database is shared, but media and themes are stored
in the /storage volume, and each container runs its own
built-in message bus. A multi-server Cradle setup needs a shared NATS
server, which this template does not include.
How do I update Cradle CMS?
Change the image tag under the app's Edit settings and redeploy. On
:latest, Restart pulls the newest image. Cradle does not
support downgrades, so to go back to an older version you restore the
database and the /storage volume from a backup.
How do I back up Cradle CMS?
Back up the managed PostgreSQL database and the /storage
volume. You need both to restore the site.
Alternatives
- Ghost — open source publishing platform with newsletters
- BookStack — open source wiki and documentation
- WordPress — the most common open source CMS
Source + Docs
- Website: https://cradlecms.com
- Documentation: https://cradlecms.com/docs/
- Installation guides: https://cradlecms.com/blog/guides?tags=Installation
Looking for something else? Browse all templates →