Files
plane/deployments/aio/community/README.md
Manish Gupta 6d01622663 [INFRA-208] Reorganize deployment structure and update build workflows (#7391)
* refactor: reorganize deployment structure and update build workflows

- Restructure deployment directories from deploy/ to deployments/
- Move selfhost files to deployments/cli/community/
- Add new AIO community deployment setup
- Update GitHub Actions workflows for new directory structure
- Add Caddy proxy configuration for CE deployment
- Remove deprecated AIO build files and workflows
- Update build context paths in install scripts

* chore: update Dockerfile and supervisor configuration

- Changed `apk add` command in Dockerfile to use `--no-cache` for better image size management.
- Updated `build.sh` to ensure proper directory navigation with quotes around `dirname "$0"`.
- Modified `supervisor.conf` to set `stderr_logfile_maxbytes` to 50MB and added `stderr_logfile_backups` for better log management across multiple services.

* chore: consistent node and python version

---------

Co-authored-by: sriramveeraghanta <veeraghanta.sriram@gmail.com>
2025-07-14 14:38:43 +05:30

4.7 KiB

Plane Community All-In-One (AIO) Docker Image

The Plane Community All-In-One Docker image packages all Plane services into a single container for easy deployment and testing. This image includes web interface, API server, background workers, live server, and more.

What's Included

The AIO image contains the following services:

  • Web App (Port 3001): Main Plane web interface
  • Space (Port 3002): Public project spaces
  • Admin (Port 3003): Administrative interface
  • API Server (Port 3004): Backend API
  • Live Server (Port 3005): Real-time collaboration
  • Proxy (Port 80, 443): Caddy reverse proxy
  • Worker & Beat: Background task processing

Prerequisites

Required External Services

The AIO image requires these external services to be running:

  • PostgreSQL Database: For data storage
  • Redis: For caching and session management
  • RabbitMQ: For message queuing
  • S3-Compatible Storage: For file uploads (AWS S3 or MinIO)

Required Environment Variables

You must provide these environment variables:

Core Configuration

  • DOMAIN_NAME: Your domain name or IP address
  • DATABASE_URL: PostgreSQL connection string
  • REDIS_URL: Redis connection string
  • AMQP_URL: RabbitMQ connection string

Storage Configuration

  • AWS_REGION: AWS region (e.g., us-east-1)
  • AWS_ACCESS_KEY_ID: S3 access key
  • AWS_SECRET_ACCESS_KEY: S3 secret key
  • AWS_S3_BUCKET_NAME: S3 bucket name
  • AWS_S3_ENDPOINT_URL: S3 endpoint (optional, defaults to AWS)

Quick Start

Basic Usage

docker run --name plane-aio --rm -it \
    -p 80:80 \
    -e DOMAIN_NAME=your-domain.com \
    -e DATABASE_URL=postgresql://user:pass@host:port/database \
    -e REDIS_URL=redis://host:port \
    -e AMQP_URL=amqp://user:pass@host:port/vhost \
    -e AWS_REGION=us-east-1 \
    -e AWS_ACCESS_KEY_ID=your-access-key \
    -e AWS_SECRET_ACCESS_KEY=your-secret-key \
    -e AWS_S3_BUCKET_NAME=your-bucket \
    artifacts.plane.so/makeplane/plane-aio-community:latest

Example with IP Address

MYIP=192.168.68.169
docker run --name myaio --rm -it \
    -p 80:80 \
    -e DOMAIN_NAME=${MYIP} \
    -e DATABASE_URL=postgresql://plane:plane@${MYIP}:15432/plane \
    -e REDIS_URL=redis://${MYIP}:16379 \
    -e AMQP_URL=amqp://plane:plane@${MYIP}:15673/plane \
    -e AWS_REGION=us-east-1 \
    -e AWS_ACCESS_KEY_ID=5MV45J9NF5TEFZWYCRAX \
    -e AWS_SECRET_ACCESS_KEY=7xMqAiAHsf2UUjMH+EwICXlyJL9TO30m8leEaDsL \
    -e AWS_S3_BUCKET_NAME=plane-app \
    -e AWS_S3_ENDPOINT_URL=http://${MYIP}:19000 \
    -e FILE_SIZE_LIMIT=10485760 \
    artifacts.plane.so/makeplane/plane-aio-community:latest

Configuration Options

Optional Environment Variables

Network & Protocol

  • SITE_ADDRESS: Server bind address (default: :80)

Security & Secrets

  • SECRET_KEY: Django secret key (default provided)
  • LIVE_SERVER_SECRET_KEY: Live server secret (default provided)

File Handling

  • FILE_SIZE_LIMIT: Maximum file upload size in bytes (default: 5242880 = 5MB)

API Configuration

  • API_KEY_RATE_LIMIT: API key rate limit (default: 60/minute)

Port Mapping

The following ports are exposed:

  • 80: Main web interface (HTTP)
  • 443: HTTPS (if SSL configured)

Volume Mounts

-v /path/to/logs:/app/logs \
-v /path/to/data:/app/data 

Building the Image

To build the AIO image yourself:

cd deployments/aio/community
IMAGE_NAME=myplane-aio ./build.sh --release=v0.27.1 [--platform=linux/amd64]

Available build options:

  • --release: Plane version to build (required)
  • --image-name: Custom image name (default: plane-aio-community)

Troubleshooting

Logs

All service logs are available in /app/logs/:

  • Access logs: /app/logs/access/
  • Error logs: /app/logs/error/

Health Checks

The container runs multiple services managed by Supervisor. Check service status:

docker exec -it <container-name> supervisorctl status

Common Issues

  1. Database Connection Failed: Ensure PostgreSQL is accessible and credentials are correct
  2. Redis Connection Failed: Verify Redis server is running and URL is correct
  3. File Upload Issues: Check S3 credentials and bucket permissions

Environment Validation

The container will validate required environment variables on startup and display helpful error messages if any are missing.

Production Considerations

  • Use proper SSL certificates for HTTPS
  • Configure proper backup strategies for data
  • Monitor resource usage and scale accordingly
  • Use external load balancer for high availability
  • Regularly update to latest versions
  • Secure your environment variables and secrets

Support

For issues and support, please refer to the official Plane documentation.