diff --git a/apiserver/bin/takeoff.local b/apiserver/bin/docker-entry-api-local.sh similarity index 100% rename from apiserver/bin/takeoff.local rename to apiserver/bin/docker-entry-api-local.sh diff --git a/apiserver/bin/takeoff b/apiserver/bin/docker-entry-api.sh similarity index 100% rename from apiserver/bin/takeoff rename to apiserver/bin/docker-entry-api.sh diff --git a/apiserver/bin/beat b/apiserver/bin/docker-entry-beat.sh old mode 100755 new mode 100644 similarity index 100% rename from apiserver/bin/beat rename to apiserver/bin/docker-entry-beat.sh diff --git a/apiserver/bin/docker-entry-migrator.sh b/apiserver/bin/docker-entry-migrator.sh new file mode 100644 index 000000000..104b39024 --- /dev/null +++ b/apiserver/bin/docker-entry-migrator.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -e + +python manage.py wait_for_db $1 + +python manage.py migrate $1 \ No newline at end of file diff --git a/apiserver/bin/worker b/apiserver/bin/docker-entry-worker.sh similarity index 100% rename from apiserver/bin/worker rename to apiserver/bin/docker-entry-worker.sh diff --git a/deploy/coolify/README.md b/deploy/coolify/README.md deleted file mode 100644 index 0bf6b4d63..000000000 --- a/deploy/coolify/README.md +++ /dev/null @@ -1,8 +0,0 @@ -## Coolify Setup - -Access the `coolify-docker-compose` file [here](https://raw.githubusercontent.com/makeplane/plane/master/deploy/coolify/coolify-docker-compose.yml) or download using using below command - -``` -curl -fsSL https://raw.githubusercontent.com/makeplane/plane/master/deploy/coolify/coolify-docker-compose.yml - -``` diff --git a/deploy/coolify/coolify-docker-compose.yml b/deploy/coolify/coolify-docker-compose.yml deleted file mode 100644 index 8ac5f44f0..000000000 --- a/deploy/coolify/coolify-docker-compose.yml +++ /dev/null @@ -1,230 +0,0 @@ - -services: - web: - container_name: web - platform: linux/amd64 - image: makeplane/plane-frontend:latest - restart: always - command: /usr/local/bin/start.sh web/server.js web - environment: - - NEXT_PUBLIC_DEPLOY_URL=$SERVICE_FQDN_SPACE_8082 - depends_on: - - api - - worker - - space: - container_name: space - platform: linux/amd64 - image: makeplane/plane-space:latest - restart: always - command: /usr/local/bin/start.sh space/server.js space - environment: - - SERVICE_FQDN_SPACE_8082=/api - depends_on: - - api - - worker - - web - - api: - container_name: api - platform: linux/amd64 - image: makeplane/plane-backend:latest - restart: always - command: ./bin/takeoff - environment: - - DEBUG=${DEBUG:-0} - - SENTRY_DSN=${SENTRY_DSN:-""} - - PGUSER=${PGUSER:-plane} - - PGPASSWORD=${PGPASSWORD:-plane} - - PGHOST=${PGHOST:-plane-db} - - PGDATABASE=${PGDATABASE:-plane} - - DATABASE_URL=postgresql://${PGUSER}:${PGPASSWORD}@${PGHOST}/${PGDATABASE} - - REDIS_HOST=${REDIS_HOST:-plane-redis} - - REDIS_PORT=${REDIS_PORT:-6379} - - REDIS_URL=redis://${REDIS_HOST}:6379/ - - EMAIL_HOST=${EMAIL_HOST:-""} - - EMAIL_HOST_USER=${EMAIL_HOST_USER:-""} - - EMAIL_HOST_PASSWORD=${EMAIL_HOST_PASSWORD:-""} - - EMAIL_PORT=${EMAIL_PORT:-587} - - EMAIL_FROM=${EMAIL_FROM:-Team Plane } - - EMAIL_USE_TLS=${EMAIL_USE_TLS:-1} - - EMAIL_USE_SSL=${EMAIL_USE_SSL:-0} - - AWS_REGION=${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=${AWS_S3_ENDPOINT_URL:-http://plane-minio:9000} - - AWS_S3_BUCKET_NAME=${AWS_S3_BUCKET_NAME:-uploads} - - FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-5242880} - - OPENAI_API_BASE=${OPENAI_API_BASE:-https://api.openai.com/v1} - - OPENAI_API_KEY=${OPENAI_API_KEY:-sk-} - - GPT_ENGINE=${GPT_ENGINE:-gpt-3.5-turbo} - - GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET:-""} - - DOCKERIZED=${DOCKERIZED:-1} - - USE_MINIO=${USE_MINIO:-1} - - NGINX_PORT=${NGINX_PORT:-8082} - - DEFAULT_EMAIL=${DEFAULT_EMAIL:-captain@plane.so} - - DEFAULT_PASSWORD=${DEFAULT_PASSWORD:-password123} - - ENABLE_SIGNUP=${ENABLE_SIGNUP:-1} - - ENABLE_EMAIL_PASSWORD=${ENABLE_EMAIL_PASSWORD:-1} - - ENABLE_MAGIC_LINK_LOGIN=${ENABLE_MAGIC_LINK_LOGIN:-0} - - SECRET_KEY=${SECRET_KEY:-60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5} - - WEB_URL=$SERVICE_FQDN_PLANE_8082 - depends_on: - - plane-db - - plane-redis - - worker: - container_name: bgworker - platform: linux/amd64 - image: makeplane/plane-backend:latest - restart: always - command: ./bin/worker - environment: - - DEBUG=${DEBUG:-0} - - SENTRY_DSN=${SENTRY_DSN:-""} - - PGUSER=${PGUSER:-plane} - - PGPASSWORD=${PGPASSWORD:-plane} - - PGHOST=${PGHOST:-plane-db} - - PGDATABASE=${PGDATABASE:-plane} - - DATABASE_URL=postgresql://${PGUSER}:${PGPASSWORD}@${PGHOST}/${PGDATABASE} - - REDIS_HOST=${REDIS_HOST:-plane-redis} - - REDIS_PORT=${REDIS_PORT:-6379} - - REDIS_URL=redis://${REDIS_HOST}:6379/ - - EMAIL_HOST=${EMAIL_HOST:-""} - - EMAIL_HOST_USER=${EMAIL_HOST_USER:-""} - - EMAIL_HOST_PASSWORD=${EMAIL_HOST_PASSWORD:-""} - - EMAIL_PORT=${EMAIL_PORT:-587} - - EMAIL_FROM=${EMAIL_FROM:-Team Plane } - - EMAIL_USE_TLS=${EMAIL_USE_TLS:-1} - - EMAIL_USE_SSL=${EMAIL_USE_SSL:-0} - - AWS_REGION=${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=${AWS_S3_ENDPOINT_URL:-http://plane-minio:9000} - - AWS_S3_BUCKET_NAME=${AWS_S3_BUCKET_NAME:-uploads} - - FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-5242880} - - OPENAI_API_BASE=${OPENAI_API_BASE:-https://api.openai.com/v1} - - OPENAI_API_KEY=${OPENAI_API_KEY:-sk-} - - GPT_ENGINE=${GPT_ENGINE:-gpt-3.5-turbo} - - GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET:-""} - - DOCKERIZED=${DOCKERIZED:-1} - - USE_MINIO=${USE_MINIO:-1} - - NGINX_PORT=${NGINX_PORT:-8082} - - DEFAULT_EMAIL=${DEFAULT_EMAIL:-captain@plane.so} - - DEFAULT_PASSWORD=${DEFAULT_PASSWORD:-password123} - - ENABLE_SIGNUP=${ENABLE_SIGNUP:-1} - - SECRET_KEY=${SECRET_KEY:-60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5} - depends_on: - - api - - plane-db - - plane-redis - - beat-worker: - container_name: beatworker - platform: linux/amd64 - image: makeplane/plane-backend:latest - restart: always - command: ./bin/beat - environment: - - DEBUG=${DEBUG:-0} - - SENTRY_DSN=${SENTRY_DSN:-""} - - PGUSER=${PGUSER:-plane} - - PGPASSWORD=${PGPASSWORD:-plane} - - PGHOST=${PGHOST:-plane-db} - - PGDATABASE=${PGDATABASE:-plane} - - DATABASE_URL=postgresql://${PGUSER}:${PGPASSWORD}@${PGHOST}/${PGDATABASE} - - REDIS_HOST=${REDIS_HOST:-plane-redis} - - REDIS_PORT=${REDIS_PORT:-6379} - - REDIS_URL=redis://${REDIS_HOST}:6379/ - - EMAIL_HOST=${EMAIL_HOST:-""} - - EMAIL_HOST_USER=${EMAIL_HOST_USER:-""} - - EMAIL_HOST_PASSWORD=${EMAIL_HOST_PASSWORD:-""} - - EMAIL_PORT=${EMAIL_PORT:-587} - - EMAIL_FROM=${EMAIL_FROM:-Team Plane } - - EMAIL_USE_TLS=${EMAIL_USE_TLS:-1} - - EMAIL_USE_SSL=${EMAIL_USE_SSL:-0} - - AWS_REGION=${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=${AWS_S3_ENDPOINT_URL:-http://plane-minio:9000} - - AWS_S3_BUCKET_NAME=${AWS_S3_BUCKET_NAME:-uploads} - - FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-5242880} - - OPENAI_API_BASE=${OPENAI_API_BASE:-https://api.openai.com/v1} - - OPENAI_API_KEY=${OPENAI_API_KEY:-sk-} - - GPT_ENGINE=${GPT_ENGINE:-gpt-3.5-turbo} - - GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET:-""} - - DOCKERIZED=${DOCKERIZED:-1} - - USE_MINIO=${USE_MINIO:-1} - - NGINX_PORT=${NGINX_PORT:-8082} - - DEFAULT_EMAIL=${DEFAULT_EMAIL:-captain@plane.so} - - DEFAULT_PASSWORD=${DEFAULT_PASSWORD:-password123} - - ENABLE_SIGNUP=${ENABLE_SIGNUP:-1} - - SECRET_KEY=${SECRET_KEY:-60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5} - depends_on: - - api - - plane-db - - plane-redis - - plane-db: - container_name: plane-db - image: postgres:15.2-alpine - restart: always - command: postgres -c 'max_connections=1000' - volumes: - - pgdata:/var/lib/postgresql/data - environment: - - POSTGRES_USER=${POSTGRES_USER:-plane} - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-plane} - - POSTGRES_DB=${POSTGRES_DB:-plane} - - PGDATA=${PGDATA:-/var/lib/postgresql/data} - - plane-redis: - container_name: plane-redis - image: redis:7.2.4-alpine - restart: always - volumes: - - redisdata:/data - - plane-minio: - container_name: plane-minio - image: minio/minio - restart: always - command: server /export --console-address ":9090" - volumes: - - uploads:/export - environment: - - MINIO_ROOT_USER=${MINIO_ROOT_USER:-access-key} - - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD:-secret-key} - - createbuckets: - image: minio/mc - entrypoint: > - /bin/sh -c " /usr/bin/mc config host add plane-minio http://plane-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; " - environment: - - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-access-key} - - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-secret-key} - - AWS_S3_BUCKET_NAME=${AWS_S3_BUCKET_NAME:-uploads} - depends_on: - - plane-minio - - # Comment this if you already have a reverse proxy running - proxy: - container_name: proxy - platform: linux/amd64 - image: makeplane/plane-proxy:latest - ports: - - 8082:80 - environment: - - SERVICE_FQDN_PLANE_8082 - - NGINX_PORT=${NGINX_PORT:-8082} - - FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-5242880} - - BUCKET_NAME=${AWS_S3_BUCKET_NAME:-uploads} - depends_on: - - web - - api - - space - -volumes: - pgdata: - redisdata: - uploads: diff --git a/deploy/selfhost/docker-compose.yml b/deploy/selfhost/docker-compose.yml index 4d98ec7c9..1b6d99ba9 100644 --- a/deploy/selfhost/docker-compose.yml +++ b/deploy/selfhost/docker-compose.yml @@ -86,7 +86,7 @@ services: platform: ${DOCKER_PLATFORM:-} pull_policy: ${PULL_POLICY:-always} restart: unless-stopped - command: ./bin/takeoff + command: ./bin/docker-entry-api.sh deploy: replicas: ${API_REPLICAS:-1} volumes: @@ -101,7 +101,7 @@ services: platform: ${DOCKER_PLATFORM:-} pull_policy: ${PULL_POLICY:-always} restart: unless-stopped - command: ./bin/worker + command: ./bin/docker-entry-worker.sh volumes: - logs_worker:/code/plane/logs depends_on: @@ -115,7 +115,7 @@ services: platform: ${DOCKER_PLATFORM:-} pull_policy: ${PULL_POLICY:-always} restart: unless-stopped - command: ./bin/beat + command: ./bin/docker-entry-beat.sh volumes: - logs_beat-worker:/code/plane/logs depends_on: @@ -129,9 +129,7 @@ services: platform: ${DOCKER_PLATFORM:-} pull_policy: ${PULL_POLICY:-always} restart: no - command: > - sh -c "python manage.py wait_for_db && - python manage.py migrate" + command: ./bin/docker-entry-migrator.sh volumes: - logs_migrator:/code/plane/logs depends_on: diff --git a/docker-compose-local.yml b/docker-compose-local.yml index 3dce85f3a..689f08019 100644 --- a/docker-compose-local.yml +++ b/docker-compose-local.yml @@ -6,7 +6,6 @@ volumes: redisdata: uploads: pgdata: - services: plane-redis: @@ -16,7 +15,7 @@ services: - dev_env volumes: - redisdata:/data - + plane-minio: image: minio/minio restart: unless-stopped @@ -30,7 +29,7 @@ services: environment: MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID} MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY} - + plane-db: image: postgres:15.2-alpine restart: unless-stopped @@ -98,13 +97,13 @@ services: - dev_env volumes: - ./apiserver:/code - command: ./bin/takeoff.local + command: ./bin/docker-entry-api.sh env_file: - ./apiserver/.env depends_on: - plane-db - plane-redis - + worker: build: context: ./apiserver @@ -116,7 +115,7 @@ services: - dev_env volumes: - ./apiserver:/code - command: ./bin/worker + command: ./bin/docker-entry-worker.sh env_file: - ./apiserver/.env depends_on: @@ -135,7 +134,7 @@ services: - dev_env volumes: - ./apiserver:/code - command: ./bin/beat + command: ./bin/docker-entry-beat.sh env_file: - ./apiserver/.env depends_on: @@ -154,9 +153,7 @@ services: - dev_env volumes: - ./apiserver:/code - command: > - sh -c "python manage.py wait_for_db --settings=plane.settings.local && - python manage.py migrate --settings=plane.settings.local" + command: ./bin/docker-entry-migrator.sh --settings=plane.settings.local env_file: - ./apiserver/.env depends_on: diff --git a/docker-compose.yml b/docker-compose.yml index be1008193..dfdbddfbe 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -45,7 +45,7 @@ services: args: DOCKER_BUILDKIT: 1 restart: always - command: ./bin/takeoff + command: ./bin/docker-entry-api.sh env_file: - ./apiserver/.env depends_on: @@ -60,7 +60,7 @@ services: args: DOCKER_BUILDKIT: 1 restart: always - command: ./bin/worker + command: ./bin/docker-entry-worker.sh env_file: - ./apiserver/.env depends_on: @@ -76,7 +76,7 @@ services: args: DOCKER_BUILDKIT: 1 restart: always - command: ./bin/beat + command: ./bin/docker-entry-beat.sh env_file: - ./apiserver/.env depends_on: @@ -92,9 +92,7 @@ services: args: DOCKER_BUILDKIT: 1 restart: no - command: > - sh -c "python manage.py wait_for_db && - python manage.py migrate" + command: ./bin/docker-entry-migrator.sh env_file: - ./apiserver/.env depends_on: