Docker-based self-hosted setup for Plane project management tool with automatic configuration.
docker-compose up -dWait ~30 seconds, then open: http://localhost:33333/
For desktop app development with optimized configuration:
./setup-solo-dev.shThis sets up a complete solo-dev workspace with pre-configured states, labels, modules, and views. See README-SOLO-DEV.md for details.
| Field | Value |
|---|---|
| admin@plane.local | |
| Password | admin123 |
Edit .env to customize before first run:
# Web interface port
PLANE_PORT=33333
# Admin credentials (used on first setup only)
ADMIN_EMAIL=admin@plane.local
ADMIN_PASSWORD=admin123# Start all services
docker-compose up -d
# Stop all services
docker-compose down
# View logs
docker-compose logs -f
# View specific service logs
docker-compose logs -f plane-api
docker-compose logs -f plane-web
# Restart all services
docker-compose restart
# Restart specific service
docker-compose restart plane-api
# Full reset (WARNING: deletes all data!)
docker-compose down -v
docker-compose up -d ┌─────────────────┐
│ Browser :33333 │
└────────┬────────┘
│
┌────────▼────────┐
│ plane-proxy │
│ (nginx) │
└────────┬────────┘
│
┌────────────────┼────────────────┐
│ │ │
┌───────▼───────┐ ┌──────▼──────┐ ┌───────▼───────┐
│ plane-web │ │ plane-api │ │ plane-worker │
│ (Next.js) │ │ (Django) │ │ (Celery) │
└───────────────┘ └──────┬──────┘ └───────────────┘
│
┌───────────┬───────────┼───────────┬───────────┐
│ │ │ │ │
┌──────▼──────┐ ┌──▼───┐ ┌─────▼─────┐ ┌───▼───┐ ┌─────▼─────┐
│ plane-db │ │redis │ │ plane-mq │ │ minio │ │ init │
│ (PostgreSQL)│ │ │ │ (RabbitMQ)│ │ (S3) │ │ (setup) │
└─────────────┘ └──────┘ └───────────┘ └───────┘ └───────────┘
| Service | Port | Description |
|---|---|---|
| plane-proxy | 33333 | Nginx reverse proxy |
| plane-web | internal | Next.js frontend |
| plane-api | internal | Django REST API |
| plane-db | dynamic | PostgreSQL database |
| plane-redis | dynamic | Valkey/Redis cache |
| plane-mq | dynamic | RabbitMQ message queue |
| plane-minio | dynamic | MinIO object storage |
Internal services use dynamic ports to avoid conflicts.
# View assigned ports
docker-compose ps.
├── docker-compose.yml # Main Docker Compose configuration
├── .env # Environment variables
├── nginx.conf # Nginx reverse proxy config
├── plane-web-entrypoint.sh # Frontend startup script
├── plane-init.sh # Automatic setup script
├── install-plane-mac.sh # Installation helper script
└── README.md # This documentation
docker-compose restart plane-proxydocker-compose restart plane-apidocker exec plane-plane-api-1 python manage.py clear_cache
docker-compose restart plane-apidocker exec -it plane-plane-api-1 python manage.py changepassword admin@plane.localdocker-compose pscurl http://localhost:33333/api/instances/- Docker Desktop for Mac/Windows or Docker Engine for Linux
- 4GB+ RAM (8GB recommended)
- 10GB+ free disk space
# Pull latest images
docker-compose pull
# Recreate containers
docker-compose up -ddocker exec plane-plane-db-1 pg_dump -U plane plane > backup.sqlcat backup.sql | docker exec -i plane-plane-db-1 psql -U plane planePlane is licensed under AGPL-3.0.