forked from github/plane
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>
This commit is contained in:
parent
0fb4a87454
commit
e526a01295
14
README.md
14
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
|
||||
```
|
||||
|
||||
<strong>You can use the default email and password for your first login `captain@plane.so` and `password123`.</strong>
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user