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: