Skip to content

Template

Self-host Directus on a server you own.

Directus wraps a SQL database with a real-time API and an admin app for its content. The template runs it on SQLite, so it needs nothing but the machine: no accessory, no external database.

At a glance

Image
directus/directus:11.17.4
Port
8055, behind kamal-proxy
Health check
/server/health
Volumes
database, uploads, extensions
Singleton
yes

What the install does

  • Generates KEY, SECRET and a 32-character ADMIN_PASSWORD, once, as secrets
  • Configures SQLite, WebSockets and proxy trust, with PUBLIC_URL worked out from the domain at each deploy
  • Registers the database, uploads and extensions volumes for backup
  • Gives the environment an sslip.io hostname if you leave the domain blank

Installing does not deploy. If you typed a domain, point an A record for it at the server, then press Deploy.

Before you start

  • 01

    A registered server and a ready runner.

  • 02

    A hostname. Directus builds its links from its public URL, so the environment is blocked until it has one.

  • 03

    An admin email for the first account.

FAQ

Questions about Directus.

Read the Directus guide
Why is the template pinned to Directus 11?

Directus 12 enforces licensing on self-hosted instances, where SSO, custom permission rules on access policies and self-hosted LLM connections stop working without a paid licence. 11.17.4 has none of that, and it will also get no further fixes. Moving to 12 is a change of image tag and a deploy.

Does it need Postgres?

No. It runs on SQLite in its own volume, with no accessory and no external database.

How are backups taken?

Each volume is registered for backup at install. The database volume stops the container while it is archived, because a live copy of SQLite does not restore, so each backup of it is a short outage. None is scheduled until you set a schedule and pick a bucket.

How do I sign in the first time?

Read ADMIN_PASSWORD under Environment, then Variables, and sign in at /admin with the admin email you gave at install.

Run your own headless CMS.

Connect a server, install Directus, and deploy when you are ready.

Sign-ups are paused while the app is in maintenance.