Open vastamaki opened 1 year ago
see #736
Hey @vastamaki, thank you for your valuable suggestion. We have already planned to implement it, and we will keep you updated on the progress.
Thank you!
for anyone interested, this Portainer stack has worked for me: (Plane will launch at http://localhost:3003/, or otherwise set NGINX_PORT to the port of your choice)
services:
web:
env_file:
- stack.env
image: makeplane/plane-frontend:stable
pull_policy: if_not_present
restart: unless-stopped
command: node web/server.js web
healthcheck:
test: wget --no-verbose --tries=1 --spider http://web:3000
depends_on:
- api
- worker
space:
env_file:
- stack.env
image: makeplane/plane-space:stable
command: node space/server.js space
pull_policy: if_not_present
restart: on-failure:5
depends_on:
api:
condition: service_healthy
worker:
condition: service_started
web:
condition: service_healthy
admin:
env_file:
- stack.env
image: makeplane/plane-admin:stable
pull_policy: if_not_present
restart: on-failure:5
command: node admin/server.js admin
depends_on:
- api
- web
api:
env_file:
- stack.env
image: makeplane/plane-backend:stable
pull_policy: if_not_present
command: ./bin/docker-entrypoint-api.sh
restart: on-failure:5
healthcheck:
test: wget --no-verbose --tries=1 --spider http://api:8000
timeout: 45s
interval: 10s
retries: 10
volumes:
- logs_api:/code/plane/logs:rw
depends_on:
plane-redis:
condition: service_healthy
plane-db:
condition: service_healthy
worker:
env_file:
- stack.env
image: makeplane/plane-backend:stable
pull_policy: if_not_present
command: ./bin/docker-entrypoint-worker.sh
restart: on-failure:5
volumes:
- logs_worker:/code/plane/logs:rw
depends_on:
plane-redis:
condition: service_healthy
plane-db:
condition: service_healthy
api:
condition: service_healthy
beat-worker:
env_file:
- stack.env
image: makeplane/plane-backend:stable
pull_policy: if_not_present
command: ./bin/docker-entrypoint-beat.sh
restart: on-failure:5
volumes:
- logs_beat-worker:/code/plane/logs
depends_on:
plane-redis:
condition: service_healthy
plane-db:
condition: service_healthy
api:
condition: service_healthy
migrator:
env_file:
- stack.env
image: makeplane/plane-backend:stable
pull_policy: if_not_present
restart: no
command: ./bin/docker-entrypoint-migrator.sh
volumes:
- logs_migrator:/code/plane/logs:rw
depends_on:
plane-redis:
condition: service_healthy
plane-db:
condition: service_healthy
plane-db:
env_file:
- stack.env
image: postgres:16
pull_policy: if_not_present
command: postgres -c 'max_connections=1000'
restart: on-failure:5
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "${PGDATABASE}", "-U", "${POSTGRES_USER}"]
timeout: 45s
interval: 10s
retries: 10
volumes:
- pgdata:/var/lib/postgresql/data:rw
plane-redis:
env_file:
- stack.env
image: redis:7
pull_policy: if_not_present
restart: on-failure:5
mem_limit: 256m
mem_reservation: 50m
read_only: true
healthcheck:
test: ["CMD", "redis-cli","ping"]
timeout: 45s
interval: 10s
retries: 10
volumes:
- redisdata:/data:rw
plane-minio:
env_file:
- stack.env
image: minio/minio:latest
pull_policy: if_not_present
restart: on-failure:5
command: server /export --console-address ":9090"
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 5s
timeout: 5s
retries: 5
environment:
MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID}
MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY}
volumes:
- uploads:/export:rw
# Comment this if you already have a reverse proxy running
proxy:
env_file:
- stack.env
image: makeplane/plane-proxy:stable
pull_policy: if_not_present
ports:
- ${NGINX_PORT}:80
environment:
FILE_SIZE_LIMIT: ${FILE_SIZE_LIMIT}
BUCKET_NAME: ${AWS_S3_BUCKET_NAME}
depends_on:
api:
condition: service_started
web:
condition: service_healthy
space:
condition: service_started
volumes:
pgdata:
redisdata:
uploads:
logs_api:
logs_worker:
logs_beat-worker:
logs_migrator:
Environment variables:
APP_RELEASE=stable
WEB_REPLICAS=1
SPACE_REPLICAS=1
ADMIN_REPLICAS=1
API_REPLICAS=1
NGINX_PORT=3003
WEB_URL=http://localhost
DEBUG=0
SENTRY_DSN=
SENTRY_ENVIRONMENT=production
CORS_ALLOWED_ORIGINS=http://localhost
PGHOST=plane-db
PGDATABASE=plane
POSTGRES_USER=plane
POSTGRES_PASSWORD=plane
POSTGRES_DB=plane
POSTGRES_PORT=5432
PGDATA=/var/lib/postgresql/data
DATABASE_URL=
REDIS_HOST=plane-redis
REDIS_PORT=6379
REDIS_URL=redis://plane-redis:6379
SECRET_KEY=60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5
USE_MINIO=1
AWS_REGION=
AWS_ACCESS_KEY_ID=access-key
AWS_SECRET_ACCESS_KEY=secret-key
AWS_S3_ENDPOINT_URL=http://plane-minio:9000
AWS_S3_BUCKET_NAME=uploads
MINIO_ROOT_USER=access-key
MINIO_ROOT_PASSWORD=secret-key
BUCKET_NAME=uploads
FILE_SIZE_LIMIT=5242880
GUNICORN_WORKERS=1
Is there an existing issue for this?
Summary
Currently, it's not possible to install a Plane using Portainer (https://www.portainer.io/) at least easily.
I believe adding docker-compose support without requiring any installation would solve the issue.
Why should this be worked on?
Portainer is a really popular tool with 1B+ pulls in Docker Hub. It's a tool for managing containers and would help people (including me) to host this more easily.