mirror of
https://github.com/makeplane/plane.git
synced 2025-12-29 00:24:56 +01:00
[INFRA-232] Add automation consumer and outbox poller services in commercial deployment methods (#4004)
* Update application version to v1.14.0 and add automation consumer and outbox poller services - Updated APP_RELEASE_VERSION to v1.14.0 in various deployment files. - Added new services for automation consumer and outbox poller in Docker and Podman configurations. - Introduced environment variables for outbox poller and automation consumer in relevant .env files. - Updated build scripts to reflect the new version requirements. * Add iframely service to deployment configurations - Introduced iframely service in Dockerfile, supervisor.conf, and various deployment YAML files. - Updated environment variables to include IFRAMELY_URL and IFRAMELY_REPLICAS. - Ensured iframely service dependencies are correctly set in all relevant configurations. * fix: update iframely image path in Dockerfile * refactor: rename plane-iframely to iframely across deployment configurations * chore: remove iframely dependency from deployment configurations * chore: clean up whitespace in docker-compose.yml
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
ARG PLANE_VERSION=v1.13.0
|
||||
ARG PLANE_VERSION=v1.14.0
|
||||
FROM --platform=$BUILDPLATFORM tonistiigi/binfmt AS binfmt
|
||||
|
||||
# **************************************************
|
||||
@@ -15,6 +15,7 @@ FROM artifacts.plane.so/makeplane/silo-commercial:${PLANE_VERSION} AS silo-img
|
||||
FROM artifacts.plane.so/makeplane/proxy-commercial:${PLANE_VERSION} AS proxy-img
|
||||
FROM artifacts.plane.so/makeplane/email-commercial:${PLANE_VERSION} AS email-img
|
||||
FROM artifacts.plane.so/makeplane/monitor-commercial:${PLANE_VERSION} AS monitor-img
|
||||
FROM artifacts.plane.so/makeplane/iframely:v1.2.0 AS iframely-img
|
||||
|
||||
# **************************************************
|
||||
# STAGE 1: Runner
|
||||
@@ -39,6 +40,7 @@ COPY --from=space-img /app /app/space
|
||||
COPY --from=admin-img /app /app/admin
|
||||
COPY --from=live-img /app /app/live
|
||||
COPY --from=silo-img /app /app/silo
|
||||
COPY --from=iframely-img /iframely /app/iframely
|
||||
COPY --from=monitor-img /usr/local/bin/prime-monitor /usr/local/bin/prime-monitor
|
||||
|
||||
RUN mkdir -p /app/monitor && \
|
||||
|
||||
@@ -38,7 +38,7 @@ if [ -z "$APP_RELEASE_VERSION" ]; then
|
||||
echo " ./build.sh [flags]"
|
||||
echo ""
|
||||
echo "Flags:"
|
||||
echo " --release=<APP_RELEASE_VERSION> required (e.g. v1.10.0)"
|
||||
echo " --release=<APP_RELEASE_VERSION> required (e.g. v1.14.0)"
|
||||
echo ""
|
||||
echo "Example: ./build.sh --release=v1.9.2 --platform=linux/amd64"
|
||||
exit 1
|
||||
|
||||
@@ -139,6 +139,43 @@ stderr_logfile=/app/logs/error/email.err.log
|
||||
stderr_logfile_maxbytes=0
|
||||
priority=20
|
||||
|
||||
[program:automation-consumer]
|
||||
directory=/app/backend
|
||||
command=sh -c "./bin/docker-entrypoint-automation-consumer.sh"
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stdout_logfile=/app/logs/access/automation-consumer.log
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/app/logs/error/automation-consumer.err.log
|
||||
# stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
priority=20
|
||||
|
||||
[program:outbox-poller]
|
||||
directory=/app/backend
|
||||
command=sh -c "./bin/docker-entrypoint-outbox-poller.sh"
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stdout_logfile=/app/logs/access/outbox-poller.log
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/app/logs/error/outbox-poller.err.log
|
||||
# stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
priority=20
|
||||
|
||||
[program:iframely]
|
||||
directory=/app/iframely
|
||||
command=sh -c "node server.js"
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stdout_logfile=/app/logs/access/iframely.log
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/app/logs/error/iframely.err.log
|
||||
# stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
environment=PORT=8061,HOSTNAME=0.0.0.0
|
||||
priority=20
|
||||
|
||||
[program:proxy]
|
||||
directory=/app/proxy
|
||||
command=sh -c "caddy run --config /app/proxy/Caddyfile"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
DOMAIN_NAME=localhost
|
||||
APP_RELEASE_VERSION=v1.10.0
|
||||
APP_RELEASE_VERSION=v1.14.0
|
||||
|
||||
APP_PROTOCOL=http
|
||||
API_HOSTNAME=http://localhost:3004
|
||||
@@ -86,6 +86,7 @@ API_KEY_RATE_LIMIT=60/minute
|
||||
|
||||
# Live Server Secret Key
|
||||
LIVE_SERVER_SECRET_KEY=htbqvBJAgpm9bzvf3r4urJer0ENReatceh
|
||||
IFRAMELY_URL=http://localhost:8061
|
||||
|
||||
# Email Configuration
|
||||
LISTEN_SMTP_PORT_25=10025
|
||||
@@ -99,4 +100,25 @@ LISTEN_SMTP_PORT_587=10587
|
||||
SMTP_DOMAIN=0.0.0.0
|
||||
TLS_CERT_PATH=
|
||||
TLS_PRIV_KEY_PATH=
|
||||
INTAKE_EMAIL_DOMAIN=example.com
|
||||
INTAKE_EMAIL_DOMAIN=example.com
|
||||
|
||||
# Outbox Poller Envs
|
||||
OUTBOX_POLLER_MEMORY_LIMIT_MB=512
|
||||
OUTBOX_POLLER_INTERVAL_MIN=0.25
|
||||
OUTBOX_POLLER_INTERVAL_MAX=2
|
||||
OUTBOX_POLLER_BATCH_SIZE=250
|
||||
OUTBOX_POLLER_MEMORY_CHECK_INTERVAL=30
|
||||
OUTBOX_POLLER_POOL_SIZE=4
|
||||
OUTBOX_POLLER_POOL_MIN_SIZE=2
|
||||
OUTBOX_POLLER_POOL_MAX_SIZE=10
|
||||
OUTBOX_POLLER_POOL_TIMEOUT=30.0
|
||||
OUTBOX_POLLER_POOL_MAX_IDLE=300.0
|
||||
OUTBOX_POLLER_POOL_MAX_LIFETIME=3600
|
||||
OUTBOX_POLLER_POOL_RECONNECT_TIMEOUT=5.0
|
||||
OUTBOX_POLLER_POOL_HEALTH_CHECK_INTERVAL=60
|
||||
|
||||
# Automation Envs
|
||||
AUTOMATION_EVENT_STREAM_QUEUE_NAME=plane.event_stream.automations
|
||||
AUTOMATION_EVENT_STREAM_PREFETCH=10
|
||||
AUTOMATION_EXCHANGE_NAME=plane.event_stream
|
||||
AUTOMATION_EVENT_TYPES=issue.
|
||||
@@ -35,7 +35,7 @@ if [ -z "$APP_RELEASE_VERSION" ]; then
|
||||
echo " ./build.sh [flags]"
|
||||
echo ""
|
||||
echo "Flags:"
|
||||
echo " --release=<APP_RELEASE_VERSION> required (e.g. v1.10.0)"
|
||||
echo " --release=<APP_RELEASE_VERSION> required (e.g. v1.14.0)"
|
||||
echo " --platform=<BUILD_PLATFORM> optional (default: linux/amd64)"
|
||||
echo ""
|
||||
echo "Example: ./build.sh --release=v1.9.2 --platform=linux/amd64"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
x-plane: &plane
|
||||
APP_VERSION: ${APP_RELEASE_VERSION:-v1.10.0}
|
||||
APP_VERSION: ${APP_RELEASE_VERSION:-v1.14.0}
|
||||
APP_DOMAIN: ${DOMAIN_NAME:-localhost}
|
||||
MACHINE_SIGNATURE: ${MACHINE_SIGNATURE}
|
||||
DEPLOY_PLATFORM: docker_compose
|
||||
@@ -134,6 +134,28 @@ x-app-env: &app-env
|
||||
x-live-env: &live-env
|
||||
API_BASE_URL: ${API_BASE_URL:-http://api:8000}
|
||||
LIVE_SERVER_SECRET_KEY: ${LIVE_SERVER_SECRET_KEY:-htbqvBJAgpm9bzvf3r4urJer0ENReatceh}
|
||||
IFRAMELY_URL: ${IFRAMELY_URL:-http://iframely:8061}
|
||||
|
||||
x-outbox-poller-env: &outbox-poller-env
|
||||
OUTBOX_POLLER_MEMORY_LIMIT_MB: ${OUTBOX_POLLER_MEMORY_LIMIT_MB:-512}
|
||||
OUTBOX_POLLER_INTERVAL_MIN: ${OUTBOX_POLLER_INTERVAL_MIN:-0.25}
|
||||
OUTBOX_POLLER_INTERVAL_MAX: ${OUTBOX_POLLER_INTERVAL_MAX:-2}
|
||||
OUTBOX_POLLER_BATCH_SIZE: ${OUTBOX_POLLER_BATCH_SIZE:-250}
|
||||
OUTBOX_POLLER_MEMORY_CHECK_INTERVAL: ${OUTBOX_POLLER_MEMORY_CHECK_INTERVAL:-30}
|
||||
OUTBOX_POLLER_POOL_SIZE: ${OUTBOX_POLLER_POOL_SIZE:-4}
|
||||
OUTBOX_POLLER_POOL_MIN_SIZE: ${OUTBOX_POLLER_POOL_MIN_SIZE:-2}
|
||||
OUTBOX_POLLER_POOL_MAX_SIZE: ${OUTBOX_POLLER_POOL_MAX_SIZE:-10}
|
||||
OUTBOX_POLLER_POOL_TIMEOUT: ${OUTBOX_POLLER_POOL_TIMEOUT:-30.0}
|
||||
OUTBOX_POLLER_POOL_MAX_IDLE: ${OUTBOX_POLLER_POOL_MAX_IDLE:-300.0}
|
||||
OUTBOX_POLLER_POOL_MAX_LIFETIME: ${OUTBOX_POLLER_POOL_MAX_LIFETIME:-3600}
|
||||
OUTBOX_POLLER_POOL_RECONNECT_TIMEOUT: ${OUTBOX_POLLER_POOL_RECONNECT_TIMEOUT:-5.0}
|
||||
OUTBOX_POLLER_POOL_HEALTH_CHECK_INTERVAL: ${OUTBOX_POLLER_POOL_HEALTH_CHECK_INTERVAL:-30}
|
||||
|
||||
x-automation-consumer-env: &automation-consumer-env
|
||||
AUTOMATION_EVENT_STREAM_QUEUE_NAME: ${AUTOMATION_EVENT_STREAM_QUEUE_NAME:-plane.event_stream.automations}
|
||||
AUTOMATION_EVENT_STREAM_PREFETCH: ${AUTOMATION_EVENT_STREAM_PREFETCH:-10}
|
||||
AUTOMATION_EXCHANGE_NAME: ${AUTOMATION_EXCHANGE_NAME:-plane.event_stream}
|
||||
AUTOMATION_EVENT_TYPES: ${AUTOMATION_EVENT_TYPES:-issue.}
|
||||
|
||||
services:
|
||||
admin:
|
||||
@@ -285,6 +307,12 @@ services:
|
||||
- ${INSTALL_DIR:-./plane}/data/minio/uploads:/export
|
||||
- ${INSTALL_DIR:-./plane}/data/minio/data:/data
|
||||
|
||||
iframely:
|
||||
image: artifacts.plane.so/makeplane/iframely:v1.2.0
|
||||
restart: unless-stopped
|
||||
deploy:
|
||||
replicas: ${IFRAMELY_REPLICAS:-1}
|
||||
|
||||
silo:
|
||||
image: artifacts.plane.so/makeplane/silo-commercial:${APP_RELEASE_VERSION}
|
||||
environment:
|
||||
@@ -311,6 +339,31 @@ services:
|
||||
restart: unless-stopped
|
||||
deploy:
|
||||
replicas: ${EMAIL_REPLICAS:-1}
|
||||
|
||||
automation-consumer:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION}
|
||||
command: ./bin/docker-entrypoint-automation-consumer.sh
|
||||
environment:
|
||||
<<: [*automation-consumer-env, *app-env, *docstore-env]
|
||||
restart: unless-stopped
|
||||
deploy:
|
||||
replicas: ${AUTOMATION_CONSUMER_REPLICAS:-1}
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-mq
|
||||
|
||||
outbox-poller:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION}
|
||||
command: ./bin/docker-entrypoint-outbox-poller.sh
|
||||
environment:
|
||||
<<: [*outbox-poller-env, *app-env]
|
||||
restart: unless-stopped
|
||||
deploy:
|
||||
replicas: ${OUTBOX_POLLER_REPLICAS:-1}
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-mq
|
||||
|
||||
# Comment this if you already have a reverse proxy running
|
||||
proxy:
|
||||
image: artifacts.plane.so/makeplane/proxy-commercial:${APP_RELEASE_VERSION}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
INSTALL_DIR=/opt/plane
|
||||
DOMAIN_NAME=localhost
|
||||
APP_RELEASE_VERSION=v1.10.0
|
||||
APP_RELEASE_VERSION=v1.14.0
|
||||
|
||||
WEB_REPLICAS=1
|
||||
SPACE_REPLICAS=1
|
||||
@@ -11,6 +11,9 @@ BEAT_WORKER_REPLICAS=1
|
||||
LIVE_REPLICAS=1
|
||||
SILO_REPLICAS=1
|
||||
EMAIL_REPLICAS=1
|
||||
OUTBOX_POLLER_REPLICAS=1
|
||||
AUTOMATION_CONSUMER_REPLICAS=1
|
||||
IFRAMELY_REPLICAS=1
|
||||
|
||||
LISTEN_HTTP_PORT=80
|
||||
LISTEN_HTTPS_PORT=443
|
||||
@@ -116,6 +119,7 @@ API_KEY_RATE_LIMIT=60/minute
|
||||
|
||||
# Live Server Secret Key
|
||||
LIVE_SERVER_SECRET_KEY=htbqvBJAgpm9bzvf3r4urJer0ENReatceh
|
||||
IFRAMELY_URL=
|
||||
|
||||
# Email Configuration
|
||||
LISTEN_SMTP_PORT_25=10025
|
||||
@@ -129,4 +133,25 @@ LISTEN_SMTP_PORT_587=10587
|
||||
SMTP_DOMAIN=0.0.0.0
|
||||
TLS_CERT_PATH=
|
||||
TLS_PRIV_KEY_PATH=
|
||||
INTAKE_EMAIL_DOMAIN=example.com
|
||||
INTAKE_EMAIL_DOMAIN=example.com
|
||||
|
||||
# Outbox Poller Envs
|
||||
OUTBOX_POLLER_MEMORY_LIMIT_MB=512
|
||||
OUTBOX_POLLER_INTERVAL_MIN=0.25
|
||||
OUTBOX_POLLER_INTERVAL_MAX=2
|
||||
OUTBOX_POLLER_BATCH_SIZE=250
|
||||
OUTBOX_POLLER_MEMORY_CHECK_INTERVAL=30
|
||||
OUTBOX_POLLER_POOL_SIZE=4
|
||||
OUTBOX_POLLER_POOL_MIN_SIZE=2
|
||||
OUTBOX_POLLER_POOL_MAX_SIZE=10
|
||||
OUTBOX_POLLER_POOL_TIMEOUT=30.0
|
||||
OUTBOX_POLLER_POOL_MAX_IDLE=300.0
|
||||
OUTBOX_POLLER_POOL_MAX_LIFETIME=3600
|
||||
OUTBOX_POLLER_POOL_RECONNECT_TIMEOUT=5.0
|
||||
OUTBOX_POLLER_POOL_HEALTH_CHECK_INTERVAL=60
|
||||
|
||||
# Automation Envs
|
||||
AUTOMATION_EVENT_STREAM_QUEUE_NAME=plane.event_stream.automations
|
||||
AUTOMATION_EVENT_STREAM_PREFETCH=10
|
||||
AUTOMATION_EXCHANGE_NAME=plane.event_stream
|
||||
AUTOMATION_EVENT_TYPES=issue.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# logo: svgs/plane.svg
|
||||
|
||||
x-plane-commercial: &plane-commercial
|
||||
APP_VERSION: ${APP_RELEASE_VERSION:-v1.13.0}
|
||||
APP_VERSION: ${APP_RELEASE_VERSION:-v1.14.0}
|
||||
APP_DOMAIN: ${SERVICE_URL_PLANE}
|
||||
MACHINE_SIGNATURE: ${SERVICE_PASSWORD_64_MACHINESIGNATURE}
|
||||
DEPLOY_PLATFORM: coolify
|
||||
@@ -129,6 +129,28 @@ x-app-env: &app-env
|
||||
x-live-env: &live-env
|
||||
API_BASE_URL: http://api:8000
|
||||
LIVE_SERVER_SECRET_KEY: ${SERVICE_PASSWORD_64_LIVESERVERSECRETKEY}
|
||||
IFRAMELY_URL: ${IFRAMELY_URL:-http://iframely:8061}
|
||||
|
||||
x-outbox-poller-env: &outbox-poller-env
|
||||
OUTBOX_POLLER_MEMORY_LIMIT_MB: ${OUTBOX_POLLER_MEMORY_LIMIT_MB:-512}
|
||||
OUTBOX_POLLER_INTERVAL_MIN: ${OUTBOX_POLLER_INTERVAL_MIN:-0.25}
|
||||
OUTBOX_POLLER_INTERVAL_MAX: ${OUTBOX_POLLER_INTERVAL_MAX:-2}
|
||||
OUTBOX_POLLER_BATCH_SIZE: ${OUTBOX_POLLER_BATCH_SIZE:-250}
|
||||
OUTBOX_POLLER_MEMORY_CHECK_INTERVAL: ${OUTBOX_POLLER_MEMORY_CHECK_INTERVAL:-30}
|
||||
OUTBOX_POLLER_POOL_SIZE: ${OUTBOX_POLLER_POOL_SIZE:-4}
|
||||
OUTBOX_POLLER_POOL_MIN_SIZE: ${OUTBOX_POLLER_POOL_MIN_SIZE:-2}
|
||||
OUTBOX_POLLER_POOL_MAX_SIZE: ${OUTBOX_POLLER_POOL_MAX_SIZE:-10}
|
||||
OUTBOX_POLLER_POOL_TIMEOUT: ${OUTBOX_POLLER_POOL_TIMEOUT:-30.0}
|
||||
OUTBOX_POLLER_POOL_MAX_IDLE: ${OUTBOX_POLLER_POOL_MAX_IDLE:-300.0}
|
||||
OUTBOX_POLLER_POOL_MAX_LIFETIME: ${OUTBOX_POLLER_POOL_MAX_LIFETIME:-3600}
|
||||
OUTBOX_POLLER_POOL_RECONNECT_TIMEOUT: ${OUTBOX_POLLER_POOL_RECONNECT_TIMEOUT:-5.0}
|
||||
OUTBOX_POLLER_POOL_HEALTH_CHECK_INTERVAL: ${OUTBOX_POLLER_POOL_HEALTH_CHECK_INTERVAL:-30}
|
||||
|
||||
x-automation-consumer-env: &automation-consumer-env
|
||||
AUTOMATION_EVENT_STREAM_QUEUE_NAME: ${AUTOMATION_EVENT_STREAM_QUEUE_NAME:-plane.event_stream.automations}
|
||||
AUTOMATION_EVENT_STREAM_PREFETCH: ${AUTOMATION_EVENT_STREAM_PREFETCH:-10}
|
||||
AUTOMATION_EXCHANGE_NAME: ${AUTOMATION_EXCHANGE_NAME:-plane.event_stream}
|
||||
AUTOMATION_EVENT_TYPES: ${AUTOMATION_EVENT_TYPES:-issue.}
|
||||
|
||||
services:
|
||||
admin:
|
||||
@@ -295,6 +317,13 @@ services:
|
||||
- uploads:/export
|
||||
- minio_data:/data
|
||||
|
||||
iframely:
|
||||
image: artifacts.plane.so/makeplane/iframely:v1.2.0
|
||||
deploy:
|
||||
replicas: ${IFRAMELY_REPLICAS:-1}
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
|
||||
silo:
|
||||
image: artifacts.plane.so/makeplane/silo-commercial:${APP_RELEASE_VERSION:-v1.x.x}
|
||||
restart: unless-stopped
|
||||
@@ -306,6 +335,32 @@ services:
|
||||
- plane-redis
|
||||
- plane-mq
|
||||
|
||||
automation-consumer:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION:-v1.x.x}
|
||||
command: ./bin/docker-entrypoint-automation-consumer.sh
|
||||
environment:
|
||||
<<: [ *automation-consumer-env, *app-env, *docstore-env ]
|
||||
deploy:
|
||||
replicas: ${AUTOMATION_CONSUMER_REPLICAS:-1}
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-mq
|
||||
|
||||
outbox-poller:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION:-v1.x.x}
|
||||
command: ./bin/docker-entrypoint-outbox-poller.sh
|
||||
environment:
|
||||
<<: [ *outbox-poller-env, *app-env ]
|
||||
deploy:
|
||||
replicas: ${OUTBOX_POLLER_REPLICAS:-1}
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-mq
|
||||
|
||||
# Comment this if you already have a reverse proxy running
|
||||
proxy:
|
||||
image: artifacts.plane.so/makeplane/proxy-commercial:${APP_RELEASE_VERSION:-v1.x.x}
|
||||
|
||||
@@ -4,7 +4,7 @@ networks:
|
||||
|
||||
services:
|
||||
admin:
|
||||
image: artifacts.plane.so/makeplane/admin-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/admin-commercial:v1.14.0
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- systemd-plane-nw
|
||||
@@ -13,7 +13,7 @@ services:
|
||||
- web
|
||||
|
||||
web:
|
||||
image: artifacts.plane.so/makeplane/web-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/web-commercial:v1.14.0
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- systemd-plane-nw
|
||||
@@ -22,7 +22,7 @@ services:
|
||||
- worker
|
||||
|
||||
space:
|
||||
image: artifacts.plane.so/makeplane/space-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/space-commercial:v1.14.0
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- systemd-plane-nw
|
||||
@@ -31,7 +31,7 @@ services:
|
||||
- web
|
||||
|
||||
live:
|
||||
image: artifacts.plane.so/makeplane/live-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/live-commercial:v1.14.0
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- /opt/plane/plane.env
|
||||
@@ -42,7 +42,7 @@ services:
|
||||
- web
|
||||
|
||||
monitor:
|
||||
image: artifacts.plane.so/makeplane/monitor-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/monitor-commercial:v1.14.0
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- /opt/plane/plane.env
|
||||
@@ -55,7 +55,7 @@ services:
|
||||
- systemd-plane-nw
|
||||
|
||||
api:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:v1.14.0
|
||||
command: ./bin/docker-entrypoint-api-ee.sh
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
@@ -72,7 +72,7 @@ services:
|
||||
- plane-redis
|
||||
|
||||
worker:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:v1.14.0
|
||||
command: ./bin/docker-entrypoint-worker.sh
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
@@ -90,7 +90,7 @@ services:
|
||||
- plane-redis
|
||||
|
||||
beat-worker:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:v1.14.0
|
||||
command: ./bin/docker-entrypoint-beat.sh
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
@@ -108,7 +108,7 @@ services:
|
||||
- plane-redis
|
||||
|
||||
migrator:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:v1.14.0
|
||||
command: ./bin/docker-entrypoint-migrator.sh
|
||||
restart: "no"
|
||||
env_file:
|
||||
@@ -156,6 +156,12 @@ services:
|
||||
volumes:
|
||||
- /opt/plane/data/rabbitmq:/var/lib/rabbitmq
|
||||
|
||||
iframely:
|
||||
image: artifacts.plane.so/makeplane/iframely:v1.2.0
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- systemd-plane-nw
|
||||
|
||||
plane-minio:
|
||||
image: minio/minio:latest
|
||||
command: server /export --console-address ":9090"
|
||||
@@ -166,10 +172,9 @@ services:
|
||||
- systemd-plane-nw
|
||||
volumes:
|
||||
- /opt/plane/data/minio:/export
|
||||
|
||||
|
||||
silo:
|
||||
image: artifacts.plane.so/makeplane/silo-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/silo-commercial:v1.14.0
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- /opt/plane/plane.env
|
||||
@@ -179,9 +184,33 @@ services:
|
||||
- plane-redis
|
||||
- plane-mq
|
||||
|
||||
automation-consumer:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:v1.14.0
|
||||
command: ./bin/docker-entrypoint-automation-consumer.sh
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- /opt/plane/plane.env
|
||||
networks:
|
||||
- systemd-plane-nw
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-mq
|
||||
|
||||
outbox-poller:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:v1.14.0
|
||||
command: ./bin/docker-entrypoint-outbox-poller.sh
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- /opt/plane/plane.env
|
||||
networks:
|
||||
- systemd-plane-nw
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-mq
|
||||
|
||||
# Comment this if you already have a reverse proxy running
|
||||
proxy:
|
||||
image: artifacts.plane.so/makeplane/proxy-commercial:v1.13.0
|
||||
image: artifacts.plane.so/makeplane/proxy-commercial:v1.14.0
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- /opt/plane/plane.env
|
||||
|
||||
@@ -190,6 +190,17 @@ Restart=always
|
||||
|
||||
---
|
||||
|
||||
# iframely.container
|
||||
[Container]
|
||||
EnvironmentFile=/opt/plane/plane.env
|
||||
Image=artifacts.plane.so/makeplane/iframely:v1.2.0
|
||||
Network=systemd-plane-nw
|
||||
|
||||
[Service]
|
||||
Restart=always
|
||||
|
||||
---
|
||||
|
||||
# silo.container
|
||||
[Unit]
|
||||
Requires=plane-redis.service plane-mq.service
|
||||
@@ -205,6 +216,38 @@ Restart=always
|
||||
|
||||
---
|
||||
|
||||
# automation-consumer.container
|
||||
[Unit]
|
||||
Requires=plane-db.service plane-mq.service
|
||||
After=plane-db.service plane-mq.service
|
||||
|
||||
[Container]
|
||||
EnvironmentFile=/opt/plane/plane.env
|
||||
Exec=./bin/docker-entrypoint-automation-consumer.sh
|
||||
Image=artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION}
|
||||
Network=systemd-plane-nw
|
||||
|
||||
[Service]
|
||||
Restart=always
|
||||
|
||||
---
|
||||
|
||||
# outbox-poller.container
|
||||
[Unit]
|
||||
Requires=plane-db.service plane-mq.service
|
||||
After=plane-db.service plane-mq.service
|
||||
|
||||
[Container]
|
||||
EnvironmentFile=/opt/plane/plane.env
|
||||
Exec=./bin/docker-entrypoint-outbox-poller.sh
|
||||
Image=artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION}
|
||||
Network=systemd-plane-nw
|
||||
|
||||
[Service]
|
||||
Restart=always
|
||||
|
||||
---
|
||||
|
||||
# proxy.container
|
||||
[Unit]
|
||||
Requires=web.service api.service space.service admin.service live.service
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#Quadlets additional envs
|
||||
APP_DOMAIN=localhost
|
||||
APP_VERSION=v1.13.0
|
||||
APP_VERSION=v1.14.0
|
||||
SERVICE_HTTP_WEB=systemd-web:3000
|
||||
SERVICE_HTTP_API=systemd-api:8000
|
||||
SERVICE_HTTP_LIVE=systemd-live:3000
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
x-plane: &plane
|
||||
APP_VERSION: ${APP_RELEASE_VERSION:-v1.13.0}
|
||||
APP_VERSION: ${APP_RELEASE_VERSION:-v1.14.0}
|
||||
APP_DOMAIN: ${DOMAIN_NAME:-localhost}
|
||||
MACHINE_SIGNATURE: ${MACHINE_SIGNATURE}
|
||||
DEPLOY_PLATFORM: docker_compose
|
||||
@@ -123,6 +123,28 @@ x-app-env: &app-env
|
||||
x-live-env: &live-env
|
||||
API_BASE_URL: ${API_BASE_URL:-http://api:8000}
|
||||
LIVE_SERVER_SECRET_KEY: ${LIVE_SERVER_SECRET_KEY:-htbqvBJAgpm9bzvf3r4urJer0ENReatceh}
|
||||
IFRAMELY_URL: ${IFRAMELY_URL:-http://iframely:8061}
|
||||
|
||||
x-outbox-poller-env: &outbox-poller-env
|
||||
OUTBOX_POLLER_MEMORY_LIMIT_MB: ${OUTBOX_POLLER_MEMORY_LIMIT_MB:-512}
|
||||
OUTBOX_POLLER_INTERVAL_MIN: ${OUTBOX_POLLER_INTERVAL_MIN:-0.25}
|
||||
OUTBOX_POLLER_INTERVAL_MAX: ${OUTBOX_POLLER_INTERVAL_MAX:-2}
|
||||
OUTBOX_POLLER_BATCH_SIZE: ${OUTBOX_POLLER_BATCH_SIZE:-250}
|
||||
OUTBOX_POLLER_MEMORY_CHECK_INTERVAL: ${OUTBOX_POLLER_MEMORY_CHECK_INTERVAL:-30}
|
||||
OUTBOX_POLLER_POOL_SIZE: ${OUTBOX_POLLER_POOL_SIZE:-4}
|
||||
OUTBOX_POLLER_POOL_MIN_SIZE: ${OUTBOX_POLLER_POOL_MIN_SIZE:-2}
|
||||
OUTBOX_POLLER_POOL_MAX_SIZE: ${OUTBOX_POLLER_POOL_MAX_SIZE:-10}
|
||||
OUTBOX_POLLER_POOL_TIMEOUT: ${OUTBOX_POLLER_POOL_TIMEOUT:-30.0}
|
||||
OUTBOX_POLLER_POOL_MAX_IDLE: ${OUTBOX_POLLER_POOL_MAX_IDLE:-300.0}
|
||||
OUTBOX_POLLER_POOL_MAX_LIFETIME: ${OUTBOX_POLLER_POOL_MAX_LIFETIME:-3600}
|
||||
OUTBOX_POLLER_POOL_RECONNECT_TIMEOUT: ${OUTBOX_POLLER_POOL_RECONNECT_TIMEOUT:-5.0}
|
||||
OUTBOX_POLLER_POOL_HEALTH_CHECK_INTERVAL: ${OUTBOX_POLLER_POOL_HEALTH_CHECK_INTERVAL:-30}
|
||||
|
||||
x-automation-consumer-env: &automation-consumer-env
|
||||
AUTOMATION_EVENT_STREAM_QUEUE_NAME: ${AUTOMATION_EVENT_STREAM_QUEUE_NAME:-plane.event_stream.automations}
|
||||
AUTOMATION_EVENT_STREAM_PREFETCH: ${AUTOMATION_EVENT_STREAM_PREFETCH:-10}
|
||||
AUTOMATION_EXCHANGE_NAME: ${AUTOMATION_EXCHANGE_NAME:-plane.event_stream}
|
||||
AUTOMATION_EVENT_TYPES: ${AUTOMATION_EVENT_TYPES:-issue.}
|
||||
|
||||
services:
|
||||
admin:
|
||||
@@ -132,8 +154,8 @@ services:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
depends_on:
|
||||
- api
|
||||
- web
|
||||
- api
|
||||
- web
|
||||
|
||||
web:
|
||||
image: artifacts.plane.so/makeplane/web-commercial:${APP_RELEASE_VERSION}
|
||||
@@ -142,8 +164,8 @@ services:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
depends_on:
|
||||
- api
|
||||
- worker
|
||||
- api
|
||||
- worker
|
||||
|
||||
space:
|
||||
image: artifacts.plane.so/makeplane/space-commercial:${APP_RELEASE_VERSION}
|
||||
@@ -152,27 +174,27 @@ services:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
depends_on:
|
||||
- api
|
||||
- web
|
||||
- api
|
||||
- web
|
||||
|
||||
live:
|
||||
image: artifacts.plane.so/makeplane/live-commercial:${APP_RELEASE_VERSION}
|
||||
environment:
|
||||
<<: [ *live-env, *redis-env ]
|
||||
<<: [*live-env, *redis-env]
|
||||
deploy:
|
||||
replicas: ${LIVE_REPLICAS:-1}
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
depends_on:
|
||||
- api
|
||||
- web
|
||||
- api
|
||||
- web
|
||||
|
||||
monitor:
|
||||
image: artifacts.plane.so/makeplane/monitor-commercial:${APP_RELEASE_VERSION}
|
||||
volumes:
|
||||
- monitor_data:/app
|
||||
- monitor_data:/app
|
||||
environment:
|
||||
<<: [ *plane, *monitor-env ]
|
||||
<<: [*plane, *monitor-env]
|
||||
deploy:
|
||||
replicas: 1
|
||||
restart_policy:
|
||||
@@ -182,16 +204,16 @@ services:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION}
|
||||
command: ./bin/docker-entrypoint-api-ee.sh
|
||||
environment:
|
||||
<<: [ *plane, *app-env, *pg-env, *redis-env, *rabbitmq-env, *docstore-env ]
|
||||
<<: [*plane, *app-env, *pg-env, *redis-env, *rabbitmq-env, *docstore-env]
|
||||
deploy:
|
||||
replicas: ${API_REPLICAS:-1}
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
volumes:
|
||||
- api_logs:/code/plane/logs
|
||||
- api_logs:/code/plane/logs
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-redis
|
||||
- plane-db
|
||||
- plane-redis
|
||||
|
||||
worker:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION}
|
||||
@@ -203,48 +225,48 @@ services:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
volumes:
|
||||
- worker_logs:/code/plane/logs
|
||||
- worker_logs:/code/plane/logs
|
||||
depends_on:
|
||||
- api
|
||||
- plane-db
|
||||
- plane-redis
|
||||
- api
|
||||
- plane-db
|
||||
- plane-redis
|
||||
|
||||
beat-worker:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION}
|
||||
command: ./bin/docker-entrypoint-beat.sh
|
||||
environment:
|
||||
<<: [ *plane, *app-env, *pg-env, *redis-env, *rabbitmq-env, *docstore-env ]
|
||||
<<: [*plane, *app-env, *pg-env, *redis-env, *rabbitmq-env, *docstore-env]
|
||||
deploy:
|
||||
replicas: ${BEAT_WORKER_REPLICAS:-1}
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
volumes:
|
||||
- beat_worker_logs:/code/plane/logs
|
||||
- beat_worker_logs:/code/plane/logs
|
||||
depends_on:
|
||||
- api
|
||||
- plane-db
|
||||
- plane-redis
|
||||
- api
|
||||
- plane-db
|
||||
- plane-redis
|
||||
|
||||
migrator:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION}
|
||||
command: ./bin/docker-entrypoint-migrator.sh
|
||||
environment:
|
||||
<<: [ *plane, *app-env, *pg-env, *redis-env, *rabbitmq-env, *docstore-env ]
|
||||
<<: [*plane, *app-env, *pg-env, *redis-env, *rabbitmq-env, *docstore-env]
|
||||
deploy:
|
||||
replicas: 1
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
volumes:
|
||||
- migrator_logs:/code/plane/logs
|
||||
- migrator_logs:/code/plane/logs
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-redis
|
||||
- plane-db
|
||||
- plane-redis
|
||||
|
||||
plane-db:
|
||||
image: postgres:15.7-alpine
|
||||
command: postgres -c 'max_connections=1000'
|
||||
environment:
|
||||
<<: *pg-env
|
||||
<<: [*pg-env]
|
||||
deploy:
|
||||
replicas: 1
|
||||
restart_policy:
|
||||
@@ -255,38 +277,45 @@ services:
|
||||
plane-redis:
|
||||
image: valkey/valkey:7.2.5-alpine
|
||||
environment:
|
||||
<<: *redis-env
|
||||
<<: [*redis-env]
|
||||
deploy:
|
||||
replicas: 1
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
volumes:
|
||||
- redisdata:/data
|
||||
- redisdata:/data
|
||||
|
||||
plane-mq:
|
||||
image: rabbitmq:3.13.6-management-alpine
|
||||
environment:
|
||||
<<: *rabbitmq-env
|
||||
<<: [*rabbitmq-env]
|
||||
deploy:
|
||||
replicas: 1
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
volumes:
|
||||
- rabbitmq_data:/var/lib/rabbitmq
|
||||
- rabbitmq_data:/var/lib/rabbitmq
|
||||
|
||||
plane-minio:
|
||||
image: minio/minio:latest
|
||||
command: server /export --console-address ":9090"
|
||||
environment:
|
||||
<<: *docstore-env
|
||||
<<: [*docstore-env]
|
||||
deploy:
|
||||
replicas: 1
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
volumes:
|
||||
- uploads:/export
|
||||
- minio_data:/data
|
||||
- uploads:/export
|
||||
- minio_data:/data
|
||||
|
||||
iframely:
|
||||
image: artifacts.plane.so/makeplane/iframely:v1.2.0
|
||||
deploy:
|
||||
replicas: ${IFRAMELY_REPLICAS:-1}
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
|
||||
silo:
|
||||
image: artifacts.plane.so/makeplane/silo-commercial:${APP_RELEASE_VERSION}
|
||||
restart: unless-stopped
|
||||
@@ -298,12 +327,38 @@ services:
|
||||
- plane-redis
|
||||
- plane-mq
|
||||
|
||||
automation-consumer:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION}
|
||||
command: ./bin/docker-entrypoint-automation-consumer.sh
|
||||
environment:
|
||||
<<: [*automation-consumer-env, *app-env, *docstore-env]
|
||||
deploy:
|
||||
replicas: ${AUTOMATION_CONSUMER_REPLICAS:-1}
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-mq
|
||||
|
||||
outbox-poller:
|
||||
image: artifacts.plane.so/makeplane/backend-commercial:${APP_RELEASE_VERSION}
|
||||
command: ./bin/docker-entrypoint-outbox-poller.sh
|
||||
environment:
|
||||
<<: [*outbox-poller-env, *app-env]
|
||||
deploy:
|
||||
replicas: ${OUTBOX_POLLER_REPLICAS:-1}
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-mq
|
||||
|
||||
# Comment this if you already have a reverse proxy running
|
||||
proxy:
|
||||
image: artifacts.plane.so/makeplane/proxy-commercial:${APP_RELEASE_VERSION}
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
<<: *proxy-env
|
||||
<<: [*proxy-env]
|
||||
ports:
|
||||
- target: 80
|
||||
published: ${LISTEN_HTTP_PORT:-80}
|
||||
@@ -314,14 +369,14 @@ services:
|
||||
protocol: tcp
|
||||
mode: host
|
||||
volumes:
|
||||
- proxy_config:/config
|
||||
- proxy_data:/data
|
||||
- proxy_config:/config
|
||||
- proxy_data:/data
|
||||
depends_on:
|
||||
- web
|
||||
- api
|
||||
- space
|
||||
- admin
|
||||
- live
|
||||
- web
|
||||
- api
|
||||
- space
|
||||
- admin
|
||||
- live
|
||||
|
||||
volumes:
|
||||
proxy_config: {}
|
||||
|
||||
Reference in New Issue
Block a user