OCI Artifact - Deploy directly from GitHub Container Registry
Redash is an open-source data visualization and dashboarding tool that connects to multiple data sources. This stack provides a complete Redash deployment with PostgreSQL, Redis, and Nginx reverse proxy.
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.redash << 'EOF'
COMPOSE_PROJECT_NAME=redash
SERVICE_DOMAIN=redash.example.com
REDASH_COOKIE_SECRET=Swordfish32chars0000000000000000
EOF
# 2. Deploy
bc redash up
# 3. Initialize database (first time only)
docker exec redash-server /app/bin/docker-entrypoint create_db
# 4. Check status
bc redash 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.redash << 'EOF'
COMPOSE_PROJECT_NAME=redash
SERVICE_DOMAIN=redash.example.com
REDASH_COOKIE_SECRET=Swordfish32chars0000000000000000
EOF
# 2. Deploy from GHCR
docker compose -f oci://ghcr.io/beevelop/redash:latest --env-file .env.redash up -d --pull always
# 3. Initialize database (first time only)
docker exec redash-server /app/bin/docker-entrypoint create_db
# 4. Check status
docker compose -f oci://ghcr.io/beevelop/redash:latest --env-file .env.redash 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 |
|---|---|---|
| PostgreSQL | redash-postgres | Primary database |
| Redis | redash-redis | Cache and task queue |
| Nginx | redash-nginx | Reverse proxy |
See Service Dependency Graph for details.
| Container | Image | Purpose |
|---|---|---|
| redash-nginx | redash/nginx:latest | Nginx reverse proxy |
| redash-server | redash/redash:25.1.0 | Redash web server |
| redash-worker | redash/redash:25.1.0 | Background job scheduler |
| redash-postgres | postgres:17-alpine | PostgreSQL database |
| redash-redis | redis:7-alpine | Redis cache and queue |
| Variable | Description | Example |
|---|---|---|
SERVICE_DOMAIN |
Domain for Traefik routing | redash.example.com |
REDASH_COOKIE_SECRET |
Secret key for session cookies (32+ chars) | Swordfish32chars0000000000000000 |
| Variable | Description | Default |
|---|---|---|
COMPOSE_PROJECT_NAME |
Docker Compose project name | redash |
REDASH_VERSION |
Redash image version | 25.1.0 |
REDASH_NGINX_VERSION |
Nginx image version | latest |
REDIS_TAG |
Redis image tag | 7-alpine |
POSTGRES_TAG |
PostgreSQL image tag | 17-alpine |
These are set in the docker-compose.yml:
| Variable | Value | Purpose |
|---|---|---|
REDASH_REDIS_URL |
redis://redis:6379/0 |
Redis connection |
REDASH_DATABASE_URL |
postgresql://postgres@postgres/postgres |
PostgreSQL connection |
REDASH_WEB_WORKERS |
4 |
Number of web workers |
WORKERS_COUNT |
2 |
Number of background workers |
QUEUES |
queries,scheduled_queries,celery |
Worker queues |
| Volume | Purpose |
|---|---|
redash_postgres_data |
PostgreSQL database files |
| Port | Protocol | Purpose |
|---|---|---|
| 5000 | TCP | Redash API server (internal, use Traefik) |
docker exec redash-server /app/bin/docker-entrypoint create_db- Navigate to
https://redash.example.com - Fill in the setup form with your organization name and admin credentials
- Click "Setup" to create the initial admin account
- Go to Settings > Data Sources
- Click "New Data Source"
- Select your database type (PostgreSQL, MySQL, BigQuery, etc.)
- Configure connection settings
- Test and save
- Click "Create" > "Query"
- Select a data source
- Write your SQL query
- Click "Execute" to run
- Save and optionally add to a dashboard
bc redash logs -f # View logs
bc redash logs -f redash-server # View specific container logs
bc redash restart # Restart
bc redash down # Stop
bc redash update # Pull and recreate# Define alias for convenience
alias dc="docker compose -f oci://ghcr.io/beevelop/redash:latest --env-file .env.redash"
# View logs
dc logs -f
# View specific container logs
dc logs -f redash-server
dc logs -f redash-worker
# Restart
dc restart
# Stop
dc down
# Update
dc pull && dc up -d
# Run database migrations after update
docker exec redash-server /app/bin/docker-entrypoint manage db upgradeRun docker exec redash-server /app/bin/docker-entrypoint create_db on first deployment.
Check the worker container is healthy: dc logs redash-worker
Verify REDASH_COOKIE_SECRET is set and consistent across restarts. Changing this will invalidate existing sessions.
Check logs with dc logs <container> and ensure all required environment variables are set.
Consider increasing REDASH_WEB_WORKERS or WORKERS_COUNT based on load.