OCI Artifact - Deploy directly from GitHub Container Registry
Directus is an open-source data platform that wraps any SQL database with a real-time GraphQL+REST API, intuitive admin app, and customizable data studio.
This is a Docker Compose OCI artifact, not a traditional Docker image. It contains a complete docker-compose.yml configuration that you can deploy directly using Docker 25.0+.
# 1. Create environment file
cat > .env.directus << 'EOF'
COMPOSE_PROJECT_NAME=directus
SERVICE_DOMAIN=directus.example.com
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=Swordfish
DB_PASS=Swordfish
DB_ROOT_PASS=Swordfish
EOF
# 2. Deploy
bc directus up
# 3. Check status
bc directus psNote: Install the bc CLI with:
curl -fsSL https://raw.githubusercontent.com/beevelop/beecompose/main/scripts/install.sh | sudo bash
# 1. Create environment file
cat > .env.directus << 'EOF'
COMPOSE_PROJECT_NAME=directus
SERVICE_DOMAIN=directus.example.com
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=Swordfish
DB_PASS=Swordfish
DB_ROOT_PASS=Swordfish
EOF
# 2. Deploy from GHCR
docker compose -f oci://ghcr.io/beevelop/directus:latest --env-file .env.directus up -d --pull always
# 3. Check status
docker compose -f oci://ghcr.io/beevelop/directus:latest --env-file .env.directus ps- Docker 25.0+ (required for OCI artifact support)
- Docker Compose v2.24+
- Traefik reverse proxy (see traefik)
This service includes all required backing stores:
| Dependency | Container | Purpose |
|---|---|---|
| MySQL | directus-mysql | Data storage |
See Service Dependency Graph for details.
| Container | Image | Purpose |
|---|---|---|
| directus | directus/directus:11.14.1 | Headless CMS / Data Platform |
| directus-mysql | mysql:8.0 | MySQL database backend |
| Variable | Description | Example |
|---|---|---|
SERVICE_DOMAIN |
Domain for Traefik routing | directus.example.com |
ADMIN_EMAIL |
Admin user email address | admin@example.com |
ADMIN_PASSWORD |
Admin user password | Swordfish |
DB_PASS |
MySQL user password | Swordfish |
DB_ROOT_PASS |
MySQL root password | Swordfish |
| Variable | Description | Default |
|---|---|---|
COMPOSE_PROJECT_NAME |
Docker Compose project name | directus |
DB_USER |
MySQL database user | directus |
DB_NAME |
MySQL database name | directus |
| Volume | Purpose |
|---|---|
directus_uploads |
User uploaded files and assets |
directus_extensions |
Custom extensions and hooks |
mysql_data |
MySQL database persistence |
- Access the Admin Panel: Navigate to
https://directus.example.com - Login: Use the
ADMIN_EMAILandADMIN_PASSWORDcredentials - Create Collections: Start building your data model through the admin interface
- Configure Roles: Set up roles and permissions for API access
- Generate API Token: Create static tokens for external integrations
bc directus logs -f # View logs
bc directus restart # Restart
bc directus down # Stop
bc directus update # Pull and recreate# Define alias for convenience
alias dc="docker compose -f oci://ghcr.io/beevelop/directus:latest --env-file .env.directus"
# View logs
dc logs -f
# Restart
dc restart
# Stop
dc down
# Update
dc pull && dc up -dEnsure the MySQL container is healthy before Directus starts. Check MySQL logs:
dc logs directus-mysqlVerify ADMIN_EMAIL and ADMIN_PASSWORD are correctly set. These are only used during initial setup.
Check logs with dc logs directus and ensure all required environment variables are set.