OCI Artifact - Deploy directly from GitHub Container Registry
Atlassian Confluence - team collaboration and wiki software for creating, organizing, and sharing knowledge.
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.confluence << 'EOF'
COMPOSE_PROJECT_NAME=confluence
SERVICE_DOMAIN=confluence.example.com
POSTGRES_PASS=Swordfish
EOF
# 2. Deploy
bc confluence up
# 3. Check status
bc confluence 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.confluence << 'EOF'
COMPOSE_PROJECT_NAME=confluence
SERVICE_DOMAIN=confluence.example.com
POSTGRES_PASS=Swordfish
EOF
# 2. Deploy from GHCR
docker compose -f oci://ghcr.io/beevelop/confluence:latest --env-file .env.confluence up -d --pull always
# 3. Check status
docker compose -f oci://ghcr.io/beevelop/confluence:latest --env-file .env.confluence ps- Docker 25.0+ (required for OCI artifact support)
- Docker Compose v2.24+
- Traefik reverse proxy (see traefik)
- Atlassian Confluence license (commercial or evaluation)
- Minimum 4GB RAM recommended
This service includes all required backing stores:
| Dependency | Container | Purpose |
|---|---|---|
| PostgreSQL | confluence-postgres | Wiki data storage |
See Service Dependency Graph for details.
| Container | Image | Purpose |
|---|---|---|
| confluence | atlassian/confluence | Confluence application server |
| confluence-postgres | postgres | PostgreSQL database |
| Variable | Description | Example |
|---|---|---|
SERVICE_DOMAIN |
Domain for Confluence access | confluence.example.com |
POSTGRES_PASS |
PostgreSQL password | Swordfish |
| Variable | Description | Default |
|---|---|---|
COMPOSE_PROJECT_NAME |
Docker Compose project name | confluence |
POSTGRES_USER |
PostgreSQL username | confluence |
POSTGRES_DB |
PostgreSQL database name | confluence |
JVM_MINIMUM_MEMORY |
JVM minimum heap size | 1024m |
JVM_MAXIMUM_MEMORY |
JVM maximum heap size | 2048m |
These are configured automatically based on SERVICE_DOMAIN:
| Setting | Value | Description |
|---|---|---|
ATL_PROXY_NAME |
${SERVICE_DOMAIN} |
Proxy hostname |
ATL_PROXY_PORT |
443 |
Proxy port (HTTPS) |
ATL_TOMCAT_SCHEME |
https |
URL scheme |
ATL_TOMCAT_SECURE |
true |
Secure connection flag |
| Volume | Purpose |
|---|---|
confluence_data |
Confluence home directory (attachments, config, plugins) |
postgres_data |
PostgreSQL database storage |
| Port | Protocol | Purpose |
|---|---|---|
| 8091 | TCP | Synchrony (collaborative editing) |
-
Wait for startup - Confluence takes 2-3 minutes to initialize on first run
-
Access setup wizard at
https://confluence.example.com -
Enter license key:
- Obtain from my.atlassian.com
- Select "Production" or "Evaluation" license
-
Configure database (already done):
- Database type: PostgreSQL
- Connection is pre-configured via environment variables
-
Create admin account:
- Set up the initial administrator user
- Configure base URL (should match
SERVICE_DOMAIN)
-
Configure Synchrony (collaborative editing):
- Synchrony runs on port 8091 by default
- For advanced setups, configure Synchrony proxy settings
bc confluence logs -f # View logs
bc confluence logs -f confluence # View Confluence logs only
bc confluence restart # Restart
bc confluence down # Stop
bc confluence update # Pull and recreate# Define alias for convenience
alias dc="docker compose -f oci://ghcr.io/beevelop/confluence:latest --env-file .env.confluence"
# View logs
dc logs -f
# View Confluence logs only
dc logs -f confluence
# Restart
dc restart
# Stop
dc down
# Update
dc pull && dc up -d
# Backup database
docker exec confluence-postgres pg_dump -U confluence confluence > backup.sqlConfluence requires significant startup time (2-5 minutes). Check health status and wait for the container to become healthy.
Increase JVM_MAXIMUM_MEMORY. For production, 4GB+ is recommended:
JVM_MAXIMUM_MEMORY=4096mVerify PostgreSQL is healthy: dc logs confluence-postgres. Ensure credentials match in both services.
Check that port 8091 is accessible. Synchrony logs can be found in the Confluence container logs.
Check logs with dc logs confluence and ensure all required environment variables are set. Note the long start_period (180s) for health checks.