From e526a01295dbb5c0418c090bae3d56131b1ee917 Mon Sep 17 00:00:00 2001 From: Robin Date: Thu, 25 May 2023 07:19:37 +0200 Subject: [PATCH] Clean up docker compose file for selfhosting (#1022) * Clean up docker compose file Removed nginx container (might want to put it back?) Changed spacing to tabs for better readability Changed the order, first the important stuff (plane) and later the database/redis All containers should be in the same format (first container_name, then image, then restart, etc.). Removed links because deprecated since compose version 2, all containers are in one docker network Removed build from plane-api Removed ports from redis and postgresql Removed PGDATA directory because that's the default one Renamed redis and db to plane-redis and plane-db * Fixed spacing (again) * Fix spacing (attempt 3) * Pasting error - should be good now * New compose download instructions --------- Co-authored-by: pablohashescobar <118773738+pablohashescobar@users.noreply.github.com> --- README.md | 14 +-- docker-compose-hub.yml | 256 ++++++++++++++++++++--------------------- 2 files changed, 130 insertions(+), 140 deletions(-) diff --git a/README.md b/README.md index 5b3618363..879be2c56 100644 --- a/README.md +++ b/README.md @@ -45,16 +45,12 @@ The easiest way to get started with Plane is by creating a [Plane Cloud](https:/ ### Docker Compose Setup -- Clone the Repository +- Download the docker-compose.yml and setup.sh file ```bash -git clone https://github.com/makeplane/plane -``` - -- Change Directory - -```bash -cd plane +curl https://raw.githubusercontent.com/makeplane/plane/develop/docker-compose-hub.yml --output docker-compose.yml +curl https://raw.githubusercontent.com/makeplane/plane/develop/setup.sh --output setup.sh +chmod +x setup.sh ``` - Run setup.sh @@ -76,7 +72,7 @@ set +a - Run Docker compose up ```bash -docker-compose -f docker-compose-hub.yml up +docker compose up -d ``` You can use the default email and password for your first login `captain@plane.so` and `password123`. diff --git a/docker-compose-hub.yml b/docker-compose-hub.yml index c3df4684d..53a7ee0f2 100644 --- a/docker-compose-hub.yml +++ b/docker-compose-hub.yml @@ -1,136 +1,130 @@ version: "3.8" services: - nginx: - container_name: nginx - build: - context: ./nginx - dockerfile: Dockerfile - ports: - - 80:80 - depends_on: - - plane-web - - plane-api - db: - image: postgres:15.2-alpine - container_name: db - restart: always - volumes: - - pgdata:/var/lib/postgresql/data - environment: - POSTGRES_USER: plane - POSTGRES_DB: plane - POSTGRES_PASSWORD: xyzzyspoon - PGDATA: /var/lib/postgresql/data - command: postgres -c 'max_connections=1000' - ports: - - 5432:5432 - redis: - image: redis:6.2.7-alpine - container_name: redis - restart: always - ports: - - 6379:6379 - volumes: - - redisdata:/data - plane-web: - container_name: planefrontend - image: makeplane/plane-frontend:0.6 - 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_APP_NAME: 0 - NEXT_PUBLIC_GITHUB_ID: 0 - NEXT_PUBLIC_SENTRY_DSN: 0 - NEXT_PUBLIC_ENABLE_OAUTH: 0 - NEXT_PUBLIC_ENABLE_SENTRY: 0 - ports: - - 3000:3000 - plane-api: - container_name: planebackend - image: makeplane/plane-backend:0.6 - build: - context: ./apiserver - dockerfile: Dockerfile.api - restart: always - ports: - - 8000:8000 - environment: - DJANGO_SETTINGS_MODULE: plane.settings.production - DATABASE_URL: postgres://plane:xyzzyspoon@db:5432/plane - REDIS_URL: redis://redis:6379/ - EMAIL_HOST: ${EMAIL_HOST} - EMAIL_HOST_USER: ${EMAIL_HOST_USER} - EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD} - AWS_REGION: ${AWS_REGION} - AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} - AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} - AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME} - WEB_URL: ${WEB_URL} - GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET} - DISABLE_COLLECTSTATIC: 1 - DOCKERIZED: 1 - OPENAI_API_KEY: ${OPENAI_API_KEY} - GPT_ENGINE: ${GPT_ENGINE} - SECRET_KEY: ${SECRET_KEY} - depends_on: - - db - - redis - command: ./bin/takeoff - links: - - db:db - - redis:redis - plane-worker: - container_name: planerqworker - image: makeplane/plane-worker:0.6 - depends_on: - - redis - - db - - plane-api - command: ./bin/worker - links: - - redis:redis - - db:db - environment: - DJANGO_SETTINGS_MODULE: plane.settings.production - DATABASE_URL: postgres://plane:xyzzyspoon@db:5432/plane - REDIS_URL: redis://redis:6379/ - EMAIL_HOST: ${EMAIL_HOST} - EMAIL_HOST_USER: ${EMAIL_HOST_USER} - EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD} - AWS_REGION: ${AWS_REGION} - AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} - AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} - AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME} - WEB_URL: ${WEB_URL} - GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET} - DISABLE_COLLECTSTATIC: 1 - DOCKERIZED: 1 - OPENAI_API_KEY: ${OPENAI_API_KEY} - GPT_ENGINE: ${GPT_ENGINE} - SECRET_KEY: ${SECRET_KEY} - minio: - image: minio/minio - ports: - - 9000:9000 - environment: - MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID} - MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY} - command: server /export --console-address ":9090" + plane-web: + container_name: planefrontend + image: makeplane/plane-frontend:0.6 + 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_APP_NAME: 0 + NEXT_PUBLIC_GITHUB_ID: 0 + NEXT_PUBLIC_SENTRY_DSN: 0 + NEXT_PUBLIC_ENABLE_OAUTH: 0 + NEXT_PUBLIC_ENABLE_SENTRY: 0 + ports: + - 3000:3000 + + plane-api: + container_name: planebackend + image: makeplane/plane-backend:0.6 + restart: always + command: ./bin/takeoff + environment: + DJANGO_SETTINGS_MODULE: plane.settings.production + DATABASE_URL: postgres://plane:xyzzyspoon@plane-db:5432/plane + REDIS_URL: redis://plane-redis:6379/ + EMAIL_HOST: ${EMAIL_HOST} + EMAIL_HOST_USER: ${EMAIL_HOST_USER} + EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD} + AWS_REGION: ${AWS_REGION} + AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} + AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} + AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME} + WEB_URL: localhost/ + GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET} + DISABLE_COLLECTSTATIC: 1 + DOCKERIZED: 1 + OPENAI_API_KEY: ${OPENAI_API_KEY} + GPT_ENGINE: ${GPT_ENGINE} + SECRET_KEY: ${SECRET_KEY} + depends_on: + - plane-db + - plane-redis + ports: + - 8000:8000 + + plane-worker: + container_name: planerqworker + image: makeplane/plane-worker:0.6 + restart: always + command: ./bin/worker + environment: + DJANGO_SETTINGS_MODULE: plane.settings.production + DATABASE_URL: postgres://plane:xyzzyspoon@plane-db:5432/plane + REDIS_URL: redis://plane-redis:6379/ + EMAIL_HOST: ${EMAIL_HOST} + EMAIL_HOST_USER: ${EMAIL_HOST_USER} + EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD} + AWS_REGION: ${AWS_REGION} + AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} + AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} + AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME} + WEB_URL: localhost/ + GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET} + DISABLE_COLLECTSTATIC: 1 + DOCKERIZED: 1 + OPENAI_API_KEY: ${OPENAI_API_KEY} + GPT_ENGINE: ${GPT_ENGINE} + SECRET_KEY: ${SECRET_KEY} + depends_on: + - plane-api + - plane-db + - plane-redis + + plane-db: + container_name: plane-db + image: postgres:15.2-alpine + restart: always + command: postgres -c 'max_connections=1000' + environment: + POSTGRES_USER: plane + POSTGRES_DB: plane + POSTGRES_PASSWORD: xyzzyspoon + volumes: + - pgdata:/var/lib/postgresql/data + + plane-redis: + container_name: plane-redis + image: redis:6.2.7-alpine + restart: always + volumes: + - redisdata:/data + + plane-minio: + container_name: plane-minio + image: minio/minio + environment: + MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID} + MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY} + command: server /export --console-address ":9090" + + createbuckets: + image: minio/mc + depends_on: + - minio + entrypoint: > + /bin/sh -c " + /usr/bin/mc config host add plane-minio http://minio:9000 \$AWS_ACCESS_KEY_ID \$AWS_SECRET_ACCESS_KEY; + /usr/bin/mc mb plane-minio/\$AWS_S3_BUCKET_NAME; + /usr/bin/mc anonymous set download plane-minio/\$AWS_S3_BUCKET_NAME; + exit 0; + " + + nginx: + container_name: nginx + build: + context: ./nginx + dockerfile: Dockerfile + ports: + - 80:80 + depends_on: + - plane-web + - plane-api + - createbuckets: - image: minio/mc - depends_on: - - minio - entrypoint: > - /bin/sh -c " - /usr/bin/mc config host add plane-minio http://minio:9000 \$AWS_ACCESS_KEY_ID \$AWS_SECRET_ACCESS_KEY; - /usr/bin/mc mb plane-minio/\$AWS_S3_BUCKET_NAME; - /usr/bin/mc anonymous set download plane-minio/\$AWS_S3_BUCKET_NAME; - exit 0; - " volumes: - pgdata: - redisdata: + pgdata: + redisdata: