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:
Robin 2023-05-25 07:19:37 +02:00 committed by GitHub
parent 0fb4a87454
commit e526a01295
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 130 additions and 140 deletions

View File

@ -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>

View File

@ -1,43 +1,11 @@
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" ]
command: /usr/local/bin/start.sh
environment:
NEXT_PUBLIC_API_BASE_URL: ${NEXT_PUBLIC_API_BASE_URL}
NEXT_PUBLIC_GOOGLE_CLIENTID: 0
@ -48,19 +16,16 @@ services:
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
command: ./bin/takeoff
environment:
DJANGO_SETTINGS_MODULE: plane.settings.production
DATABASE_URL: postgres://plane:xyzzyspoon@db:5432/plane
REDIS_URL: redis://redis:6379/
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}
@ -68,7 +33,7 @@ services:
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}
WEB_URL: localhost/
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET}
DISABLE_COLLECTSTATIC: 1
DOCKERIZED: 1
@ -76,27 +41,20 @@ services:
GPT_ENGINE: ${GPT_ENGINE}
SECRET_KEY: ${SECRET_KEY}
depends_on:
- db
- redis
command: ./bin/takeoff
links:
- db:db
- redis:redis
- plane-db
- plane-redis
ports:
- 8000:8000
plane-worker:
container_name: planerqworker
image: makeplane/plane-worker:0.6
depends_on:
- redis
- db
- plane-api
restart: always
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/
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}
@ -104,17 +62,40 @@ services:
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}
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}
minio:
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
ports:
- 9000:9000
environment:
MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID}
MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY}
@ -131,6 +112,19 @@ services:
/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
volumes:
pgdata:
redisdata: