Skip to content
Live $100 credit at signup, up to $300 total Offer ends December 31, 2026 Get started →

Directus

Directus is an open-source headless CMS and data platform that wraps any SQL database with a REST and GraphQL API plus a no-code admin app. You point it at a database and instantly get content management, asset storage, and granular access control. The official Docker image is the recommended way to self-host it.

ComponentVersion
Directus12.1.1
PostgreSQL with PostGIS16 / 3.5
Ubuntu24.04 LTS

Set these optionally when you deploy from the marketplace. Leave a field blank to have a secure value generated.

VariableDescription
ADMIN_EMAILDirectus admin email address
ADMIN_PASSWORDDirectus admin password
ssh ubuntu@<your-vm-ip>

On the first boot, a setup script generates unique application and database secrets, starts PostgreSQL/PostGIS and Directus, and creates the administrator account. Track progress:

journalctl -u directus-first-boot.service -f

The login message (MOTD) confirms when Directus is ready.

cd /opt/directus
docker compose ps
curl -fsS http://127.0.0.1:8055/server/ping

Open a browser and navigate to:

http://<your-vm-ip>:8055

Retrieve the administrator credentials:

sudo cat /etc/directus/credentials.txt
FieldValue
EmailFrom /etc/directus/credentials.txt
PasswordFrom /etc/directus/credentials.txt
# Check container status
cd /opt/directus && docker compose ps
# Restart
cd /opt/directus && docker compose restart
# View logs
cd /opt/directus && docker compose logs -f
PathPurpose
/opt/directus/docker-compose.ymlDocker Compose configuration
/opt/directus/.envApplication and database settings
/var/lib/directus/database/PostgreSQL/PostGIS data
/var/lib/directus/uploads/Uploaded files
/var/lib/directus/extensions/Directus extensions

Port 8055 is accessible on the VM’s network interface. UFW is enabled and allows SSH (port 22) and Directus (port 8055) by default.

To restrict the UI and API to a specific IP:

sudo ufw delete allow 8055/tcp
sudo ufw allow from <trusted-ip> to any port 8055

To access Directus without exposing port 8055, use an SSH tunnel:

# Run this on your local machine
ssh -L 8055:localhost:8055 ubuntu@<your-vm-ip>
# Then open in your browser
http://localhost:8055

For production use, place Directus behind a reverse proxy so you can serve it on port 443 with a TLS certificate, and update the public URL in Directus to the HTTPS URL.

Last updated: