Skip to main content
Docker Compose provides a complete production-ready deployment of Activepieces with all required services (PostgreSQL and Redis) in a single configuration file.

Quick Start

1

Create docker-compose.yml

Download the official Docker Compose configuration:
2

Create .env file

Copy the example environment file:
3

Configure environment

Edit .env and set required values:
4

Start services

Access Activepieces at http://localhost:8080

Docker Compose Configuration

Here’s the official docker-compose.yml from the Activepieces repository:
docker-compose.yml

Service Breakdown

Activepieces Service

service
Main application containerConfiguration:
  • Image: ghcr.io/activepieces/activepieces:0.79.0
  • Ports: 8080 (host) → 80 (container)
  • Restart Policy: unless-stopped (auto-restart on failure)
  • Dependencies: Waits for PostgreSQL and Redis
  • Volumes: ./cache for temporary files
The depends_on directive ensures PostgreSQL and Redis start before Activepieces, but doesn’t wait for them to be ready. The application will retry connections on startup.

PostgreSQL Service

service
Database for storing workflows, executions, and user dataConfiguration:
  • Image: postgres:14.4
  • Volume: Named volume postgres_data for persistence
  • Environment: Database credentials from .env file
PostgreSQL data is stored in a Docker named volume. Removing this volume will delete all your data. Always backup before major changes.

Redis Service

service
Job queue for background processing using BullMQConfiguration:
  • Image: redis:7.0.7
  • Volume: Named volume redis_data for persistence
  • Port: 6379 (internal only, not exposed to host)

Environment Configuration

Create a .env file with the following minimum configuration:
.env
See Environment Variables for all available options.

Managing Services

Starting Services

Stopping Services

Viewing Logs

Networking

Docker Compose creates a private network for service communication:
Service Discovery:
  • Activepieces connects to PostgreSQL using hostname postgres
  • Activepieces connects to Redis using hostname redis
  • Services communicate internally without exposing ports to host

Data Persistence

Three types of volumes are used:
Docker-managed volumes for database data:
Location: /var/lib/docker/volumes/List volumes:
Inspect volume:

Backup and Restore

Database Backup

1

Backup PostgreSQL

2

Restore PostgreSQL

Volume Backup

Production Optimizations

Resource Limits

Add resource constraints to prevent containers from using too much memory/CPU:
docker-compose.yml

Health Checks

Add health checks to ensure services are running correctly:
docker-compose.yml

Logging Configuration

Limit log file size to prevent disk issues:
docker-compose.yml

Updating Activepieces

1

Pull latest images

2

Backup database

3

Restart with new images

Docker Compose will recreate containers with new images while preserving volumes.
4

Verify update

Check for successful startup and database migrations.

Troubleshooting

Check service status:
View logs for errors:
Common issues:
  • Port 8080 already in use
  • Missing or invalid .env file
  • Insufficient disk space for volumes
Verify PostgreSQL is running:
Check database logs:
Test connection:
Verify Redis is running:
Test Redis connection:
Should return: PONG
Check disk usage:
Clean up unused resources:
Check volume sizes:

Advanced Configuration

Using External PostgreSQL

If you have an existing PostgreSQL server:
docker-compose.yml

Using External Redis

If you have an existing Redis server:
docker-compose.yml

Multiple Activepieces Instances

Scale the Activepieces service for high availability:
docker-compose.yml

Next Steps

Environment Variables

Configure all available options

Database Setup

Advanced PostgreSQL configuration

Scaling

Scale your deployment

Storage

Configure S3 storage