diff --git a/stacks/plane/docker-compose.yml b/stacks/plane/docker-compose.yml index 35d61ca..820521c 100644 --- a/stacks/plane/docker-compose.yml +++ b/stacks/plane/docker-compose.yml @@ -1,101 +1,185 @@ +x-db-env: &db-env + PGHOST: plane-db + PGDATABASE: plane + POSTGRES_USER: plane + POSTGRES_PASSWORD: plane + POSTGRES_DB: plane + POSTGRES_PORT: 5432 + PGDATA: /var/lib/postgresql/data + +x-redis-env: &redis-env + REDIS_HOST: plane-redis + REDIS_PORT: 6379 + REDIS_URL: redis://plane-redis:6379/ + +x-minio-env: &minio-env + MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID:-access-key} + MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY:-secret-key} + +x-aws-s3-env: &aws-s3-env + AWS_REGION: "" + AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-access-key} + AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-secret-key} + AWS_S3_ENDPOINT_URL: http://plane-minio:9000 + AWS_S3_BUCKET_NAME: uploads + +x-mq-env: &mq-env + RABBITMQ_HOST: plane-mq + RABBITMQ_PORT: 5672 + RABBITMQ_DEFAULT_USER: plane + RABBITMQ_DEFAULT_PASS: plane + RABBITMQ_DEFAULT_VHOST: plane + RABBITMQ_VHOST: plane + +x-live-env: &live-env + API_BASE_URL: http://api:8000 + LIVE_SERVER_SECRET_KEY: ${LIVE_SERVER_SECRET_KEY:-2FiJk1U2aiVPEQtzLehYGlTSnTnrs7LW} + +x-app-env: &app-env + WEB_URL: https://plane.rishighan.com + DEBUG: 0 + CORS_ALLOWED_ORIGINS: https://plane.rishighan.com + GUNICORN_WORKERS: 1 + USE_MINIO: 1 + DATABASE_URL: postgresql://plane:plane@plane-db/plane + SECRET_KEY: ${SECRET_KEY:-60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5} + AMQP_URL: amqp://plane:plane@plane-mq:5672/plane + API_KEY_RATE_LIMIT: 60/minute + MINIO_ENDPOINT_SSL: 0 + LIVE_SERVER_SECRET_KEY: ${LIVE_SERVER_SECRET_KEY:-2FiJk1U2aiVPEQtzLehYGlTSnTnrs7LW} + networks: plane-net: name: plane-net - driver: bridge services: - plane-web: - image: makeplane/plane-frontend:stable + web: + image: artifacts.plane.so/makeplane/plane-frontend:v1.2.1 container_name: plane-web restart: unless-stopped ports: - "8082:3000" - environment: - - NEXT_PUBLIC_API_BASE_URL=https://plane.rishighan.com/api - - NEXT_PUBLIC_DEPLOY_URL=https://plane.rishighan.com depends_on: - - plane-api + - api + - worker networks: - plane-net - plane-api: - image: makeplane/plane-backend:stable + space: + image: artifacts.plane.so/makeplane/plane-space:v1.2.1 + container_name: plane-space + restart: unless-stopped + depends_on: + - api + - worker + - web + networks: + - plane-net + + admin: + image: artifacts.plane.so/makeplane/plane-admin:v1.2.1 + container_name: plane-admin + restart: unless-stopped + depends_on: + - api + - web + networks: + - plane-net + + live: + image: artifacts.plane.so/makeplane/plane-live:v1.2.1 + container_name: plane-live + restart: unless-stopped + environment: + <<: [*live-env, *redis-env] + depends_on: + - api + - web + networks: + - plane-net + + api: + image: artifacts.plane.so/makeplane/plane-backend:v1.2.1 container_name: plane-api restart: unless-stopped - command: /code/bin/docker-entrypoint-api.sh + command: ./bin/docker-entrypoint-api.sh ports: - "8085:8000" + volumes: + - /mnt/user/appdata/plane/logs/api:/code/plane/logs environment: - - DEBUG=0 - - DJANGO_SETTINGS_MODULE=plane.settings.production - - DATABASE_URL=postgresql://plane:plane@plane-db:5432/plane - - REDIS_URL=redis://plane-redis:6379/ - - SECRET_KEY=${SECRET_KEY} - - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - - AWS_S3_BUCKET_NAME=plane-uploads - - AWS_S3_ENDPOINT_URL=http://plane-minio:9000 - - USE_MINIO=1 - - WEB_URL=https://plane.rishighan.com - - CORS_ALLOWED_ORIGINS=https://plane.rishighan.com + <<: [*app-env, *db-env, *redis-env, *minio-env, *aws-s3-env] + depends_on: + - plane-db + - plane-redis + - plane-mq + - migrator + networks: + - plane-net + + worker: + image: artifacts.plane.so/makeplane/plane-backend:v1.2.1 + container_name: plane-worker + restart: unless-stopped + command: ./bin/docker-entrypoint-worker.sh + volumes: + - /mnt/user/appdata/plane/logs/worker:/code/plane/logs + environment: + <<: [*app-env, *db-env, *redis-env, *minio-env, *aws-s3-env] + depends_on: + - api + - plane-db + - plane-redis + - plane-mq + networks: + - plane-net + + beat-worker: + image: artifacts.plane.so/makeplane/plane-backend:v1.2.1 + container_name: plane-beat-worker + restart: unless-stopped + command: ./bin/docker-entrypoint-beat.sh + volumes: + - /mnt/user/appdata/plane/logs/beat-worker:/code/plane/logs + environment: + <<: [*app-env, *db-env, *redis-env, *minio-env, *aws-s3-env] + depends_on: + - api + - plane-db + - plane-redis + - plane-mq + networks: + - plane-net + + migrator: + image: artifacts.plane.so/makeplane/plane-backend:v1.2.1 + container_name: plane-migrator + restart: "no" + command: ./bin/docker-entrypoint-migrator.sh + volumes: + - /mnt/user/appdata/plane/logs/migrator:/code/plane/logs + environment: + <<: [*app-env, *db-env, *redis-env, *minio-env, *aws-s3-env] depends_on: - plane-db - plane-redis networks: - plane-net - plane-worker: - image: makeplane/plane-backend:stable - container_name: plane-worker - restart: unless-stopped - command: /code/bin/docker-entrypoint-worker.sh - environment: - - DEBUG=0 - - DJANGO_SETTINGS_MODULE=plane.settings.production - - DATABASE_URL=postgresql://plane:plane@plane-db:5432/plane - - REDIS_URL=redis://plane-redis:6379/ - - SECRET_KEY=${SECRET_KEY} - - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - - AWS_S3_BUCKET_NAME=plane-uploads - - AWS_S3_ENDPOINT_URL=http://plane-minio:9000 - - USE_MINIO=1 - depends_on: - - plane-api - networks: - - plane-net - - plane-beat-worker: - image: makeplane/plane-backend:stable - container_name: plane-beat-worker - restart: unless-stopped - command: /code/bin/docker-entrypoint-beat.sh - environment: - - DEBUG=0 - - DJANGO_SETTINGS_MODULE=plane.settings.production - - DATABASE_URL=postgresql://plane:plane@plane-db:5432/plane - - REDIS_URL=redis://plane-redis:6379/ - - SECRET_KEY=${SECRET_KEY} - depends_on: - - plane-api - networks: - - plane-net - plane-db: - image: postgres:15 + image: postgres:15.7-alpine container_name: plane-db restart: unless-stopped + command: postgres -c 'max_connections=1000' environment: - - POSTGRES_USER=plane - - POSTGRES_PASSWORD=plane - - POSTGRES_DB=plane + <<: *db-env volumes: - /mnt/user/appdata/plane/db-data:/var/lib/postgresql/data networks: - plane-net plane-redis: - image: redis:7 + image: valkey/valkey:7.2.11-alpine container_name: plane-redis restart: unless-stopped volumes: @@ -103,15 +187,25 @@ services: networks: - plane-net + plane-mq: + image: rabbitmq:3.13.6-management-alpine + container_name: plane-mq + restart: unless-stopped + environment: + <<: *mq-env + volumes: + - /mnt/user/appdata/plane/rabbitmq-data:/var/lib/rabbitmq + networks: + - plane-net + plane-minio: - image: minio/minio + image: minio/minio:latest container_name: plane-minio restart: unless-stopped - command: server /data --console-address ":9001" + command: server /export --console-address ":9090" environment: - - MINIO_ROOT_USER=${MINIO_ROOT_USER} - - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} + <<: *minio-env volumes: - - /mnt/user/appdata/plane/minio-data:/data + - /mnt/user/appdata/plane/minio-data:/export networks: - plane-net \ No newline at end of file diff --git a/stacks/plane/stack.env b/stacks/plane/stack.env index fa7669e..27ddf67 100644 --- a/stacks/plane/stack.env +++ b/stacks/plane/stack.env @@ -1,5 +1,4 @@ -SECRET_KEY=supersecretkey123456789abcdefghijklmnop -AWS_ACCESS_KEY_ID=plane -AWS_SECRET_ACCESS_KEY=planesecret123 -MINIO_ROOT_USER=plane -MINIO_ROOT_PASSWORD=planesecret123 +SECRET_KEY=60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5 +AWS_ACCESS_KEY_ID=access-key +AWS_SECRET_ACCESS_KEY=secret-key +LIVE_SERVER_SECRET_KEY=2FiJk1U2aiVPEQtzLehYGlTSnTnrs7LW \ No newline at end of file