Bring clarity and structure to your organization with a comprehensive project management platform designed for fast execution. This workspace combines task tracking, knowledge management, and artificial intelligence to help teams focus on shipping rather than configuring. The built-in AI reads across your entire workspace to answer questions, triage requests, and automate busywork directly from your communication tools.
Enjoy flexible features tailored to your workflow:
Migrate easily from legacy tools and manage your projects as code.
services:
web:
container_name: plane-web
image: makeplane/plane-frontend:latest
restart: always
command: /usr/local/bin/start.sh
environment:
NEXT_PUBLIC_API_BASE_URL: ${NEXT_PUBLIC_API_BASE_URL}
NEXT_PUBLIC_GOOGLE_CLIENTID: "0"
NEXT_PUBLIC_GITHUB_ID: "0"
NEXT_PUBLIC_GITLAB_APP_ID: "0"
NEXT_PUBLIC_SENTRY_DSN: ""
NEXT_PUBLIC_ENABLE_SENTRY: "0"
depends_on:
- api
- worker
api:
container_name: plane-api
image: makeplane/plane-backend:latest
restart: always
command: ./bin/takeoff
environment:
DATABASE_URL: postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}:5432/${PGDATABASE}
REDIS_URL: redis://${REDIS_HOST}:6379/
SECRET_KEY: ${SECRET_KEY}
AWS_REGION: ${AWS_REGION}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_S3_ENDPOINT_URL: ${AWS_S3_ENDPOINT_URL}
AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME}
FILE_SIZE_LIMIT: 5242880
WEB_URL: ${WEB_URL}
GITHUB_CLIENT_SECRET: ""
DISABLE_COLLECTSTATIC: 1
DOCKERIZED: 1
depends_on:
- db
- redis
- minio
worker:
container_name: plane-worker
image: makeplane/plane-backend:latest
restart: always
command: ./bin/worker
environment:
DATABASE_URL: postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}:5432/${PGDATABASE}
REDIS_URL: redis://${REDIS_HOST}:6379/
SECRET_KEY: ${SECRET_KEY}
AWS_REGION: ${AWS_REGION}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_S3_ENDPOINT_URL: ${AWS_S3_ENDPOINT_URL}
AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME}
FILE_SIZE_LIMIT: 5242880
WEB_URL: ${WEB_URL}
DOCKERIZED: 1
depends_on:
- api
- db
- redis
- minio
beat:
container_name: plane-beat
image: makeplane/plane-backend:latest
restart: always
command: ./bin/beat
environment:
DATABASE_URL: postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}:5432/${PGDATABASE}
REDIS_URL: redis://${REDIS_HOST}:6379/
SECRET_KEY: ${SECRET_KEY}
AWS_REGION: ${AWS_REGION}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_S3_ENDPOINT_URL: ${AWS_S3_ENDPOINT_URL}
AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME}
FILE_SIZE_LIMIT: 5242880
WEB_URL: ${WEB_URL}
DOCKERIZED: 1
depends_on:
- api
- db
- redis
- minio
migrator:
container_name: plane-migrator
image: makeplane/plane-backend:latest
restart: no
command: ./bin/migrate
environment:
DATABASE_URL: postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}:5432/${PGDATABASE}
REDIS_URL: redis://${REDIS_HOST}:6379/
SECRET_KEY: ${SECRET_KEY}
AWS_REGION: ${AWS_REGION}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_S3_ENDPOINT_URL: ${AWS_S3_ENDPOINT_URL}
AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME}
DOCKERIZED: 1
depends_on:
- db
- redis
- minio
proxy:
container_name: plane-proxy
image: makeplane/plane-proxy:latest
restart: always
ports:
- ${APP_PORT:-80}:80
environment:
FILE_SIZE_LIMIT: 5242880
BUCKET_NAME: ${AWS_S3_BUCKET_NAME}
depends_on:
- web
- api
db:
container_name: plane-db
image: postgres:15-alpine
restart: always
environment:
POSTGRES_USER: ${PGUSER}
POSTGRES_DB: ${PGDATABASE}
POSTGRES_PASSWORD: ${PGPASSWORD}
PGDATA: /var/lib/postgresql/data
volumes:
- ./data/postgres:/var/lib/postgresql/data
redis:
container_name: plane-redis
image: redis:7-alpine
restart: always
volumes:
- ./data/redis:/data
minio:
container_name: plane-minio
image: minio/minio
restart: always
command: server /data --console-address ":9090"
environment:
MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID}
MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY}
volumes:
- ./data/minio:/data# General Configuration
WEB_URL=http://localhost
NEXT_PUBLIC_API_BASE_URL=http://localhost/api
APP_PORT=80
# Database Configuration
PGHOST=db
PGDATABASE=plane
PGUSER=plane
PGPASSWORD=your_secure_postgres_password
# Redis Configuration
REDIS_HOST=redis
# Application Secrets
SECRET_KEY=your_generated_64_char_secret_key
# MinIO / AWS S3 Configuration
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=minio_access_key
AWS_SECRET_ACCESS_KEY=minio_secret_key
AWS_S3_ENDPOINT_URL=http://minio:9000
AWS_S3_BUCKET_NAME=uploadsAuto-fetched 1 minute ago
Auto-fetched about 24 hours ago