OCI Artifact - Deploy directly from GitHub Container Registry
Job scheduler and runbook automation platform for managing ad-hoc and routine operational tasks across your infrastructure.
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.rundeck << 'EOF'
COMPOSE_PROJECT_NAME=rundeck
SERVICE_DOMAIN=rundeck.example.com
RUNDECK_ADMIN_PASSWORD=Swordfish
EOF
# 2. Deploy
bc rundeck up
# 3. Check status
bc rundeck 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.rundeck << 'EOF'
COMPOSE_PROJECT_NAME=rundeck
SERVICE_DOMAIN=rundeck.example.com
RUNDECK_ADMIN_PASSWORD=Swordfish
EOF
# 2. Deploy from GHCR
docker compose -f oci://ghcr.io/beevelop/rundeck:latest --env-file .env.rundeck up -d --pull always
# 3. Check status
docker compose -f oci://ghcr.io/beevelop/rundeck:latest --env-file .env.rundeck ps- Docker 25.0+ (required for OCI artifact support)
- Docker Compose v2.24+
- Traefik reverse proxy (see traefik)
| Container | Image | Purpose |
|---|---|---|
| rundeck | jordan/rundeck:5.18.0 | Rundeck server with embedded MySQL |
| Variable | Description | Example |
|---|---|---|
SERVICE_DOMAIN |
Domain for Rundeck | rundeck.example.com |
RUNDECK_ADMIN_PASSWORD |
Admin user password | Swordfish |
| Variable | Description | Default |
|---|---|---|
COMPOSE_PROJECT_NAME |
Docker Compose project name | rundeck |
RUNDECK_VERSION |
Rundeck image version | 5.18.0 |
| Volume | Purpose |
|---|---|
rundeck_config |
Rundeck configuration files |
rundeck_var |
Rundeck variable data |
rundeck_plugins |
Custom plugins |
rundeck_logs |
Log files |
rundeck_ssh |
SSH keys for remote execution |
rundeck_mysql |
Embedded MySQL database |
rundeck_app_logs |
Application logs |
rundeck_storage |
Key storage and resources |
- Navigate to
https://rundeck.example.com - Login with:
- Username:
admin - Password: Your
RUNDECK_ADMIN_PASSWORDvalue
- Username:
- Click "New Project"
- Enter a project name and description
- Configure node sources (local or SSH)
- Start creating jobs
To run commands on remote nodes, add SSH keys:
# Copy your SSH key into the container
docker cp ~/.ssh/id_rsa rundeck:/var/lib/rundeck/.ssh/id_rsa
# Fix permissions
docker exec rundeck chown rundeck:rundeck /var/lib/rundeck/.ssh/id_rsa
docker exec rundeck chmod 600 /var/lib/rundeck/.ssh/id_rsaAdd the following to rundeck-config.properties (inside rundeck_config volume):
grails.mail.host=smtp.example.com
grails.mail.port=25
grails.mail.username=noreply@example.com
grails.mail.password=SwordfishAdd nodes via XML (resources.xml):
<node name="foo.example.com"
description="foo" tags="production"
osFamily="unix" osName="Linux"
hostname="foo.example.com" username="bee"
/>Or via YAML (resources.yaml):
foo.example.com:
nodename: foo.example.com
hostname: foo.example.com
osFamily: unix
osArch: amd64
osName: Linux
username: bee
tags: 'production'bc rundeck logs -f # View logs
bc rundeck restart # Restart
bc rundeck down # Stop
bc rundeck update # Pull and recreate# Define alias for convenience
alias dc="docker compose -f oci://ghcr.io/beevelop/rundeck:latest --env-file .env.rundeck"
# View logs
dc logs -f
# Restart
dc restart
# Stop
dc down
# Update
dc pull && dc up -ddocker exec rundeck rd jobs list -p MyProject --format yaml > jobs-backup.yamldocker cp jobs.yaml rundeck:/tmp/jobs.yaml
docker exec rundeck rd jobs load -p MyProject -f /tmp/jobs.yamlRundeck has a long startup time (up to 2 minutes). The healthcheck is configured with start_period: 120s to accommodate this.
If upgrading the version doesn't take effect after restart, remove and recreate the container:
dc down
dc up -d- Verify SSH keys are properly configured
- Check that target hosts are in the project's node sources
- Test SSH manually from the container:
docker exec -it rundeck ssh user@target-hostCheck logs with dc logs rundeck and ensure all required environment variables are set.