mirror of
https://github.com/michelleDeko/scalelite-run.git
synced 2025-12-16 14:22:11 +01:00
128 lines
4.7 KiB
YAML
128 lines
4.7 KiB
YAML
version: '3'
|
|
|
|
volumes:
|
|
postgres-data:
|
|
redis-data:
|
|
|
|
services:
|
|
postgres:
|
|
image: ${POSTGRES_DOCKER_IMAGE:-postgres:17-alpine}
|
|
container_name: postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-password}
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
|
|
redis:
|
|
image: ${REDIS_DOCKER_IMAGE:-redis:7.2-alpine}
|
|
container_name: redis
|
|
restart: unless-stopped
|
|
volumes:
|
|
- redis-data:/data
|
|
- ./data/redis/conf/redis.conf.template:/usr/local/etc/redis/redis.conf.template
|
|
- ./data/certbot/conf/:/etc/letsencrypt
|
|
command: /bin/sh -c "sed -e 's/$$HOSTNAME/${REDIS_HOST:-redis}.${DOMAIN_NAME:-user.blindside-ps.dev}/' /usr/local/etc/redis/redis.conf.template > /usr/local/etc/redis/redis.conf && exec redis-server --appendonly yes"
|
|
|
|
certbot:
|
|
image: ${CERTBOT_DOCKER_IMAGE:-certbot/certbot}
|
|
container_name: certbot
|
|
volumes:
|
|
- ./log/certbot/:/var/log/letsencrypt
|
|
- ./data/certbot/conf/:/etc/letsencrypt
|
|
- ./data/certbot/www/:/var/www/certbot
|
|
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
|
|
|
|
scalelite-proxy:
|
|
image: ${NGINX_DOCKER_IMAGE:-nginx:1.27.3}
|
|
container_name: scalelite-proxy
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
environment:
|
|
- NGINX_HOSTNAME=${SL_HOST:-sl}.${DOMAIN_NAME:-user.blindside-ps.dev}
|
|
volumes:
|
|
- ./log/proxy-nginx/:/var/log/nginx
|
|
- ./data/proxy/nginx/sites.template.${DOCKER_PROXY_NGINX_TEMPLATE:-scalelite-proxy}:/etc/nginx/sites.template
|
|
- ./data/proxy/nginx/sites-common:/etc/nginx/sites-common
|
|
- ./data/certbot/conf/:/etc/letsencrypt
|
|
- ./data/certbot/www/:/var/www/certbot
|
|
depends_on:
|
|
- certbot
|
|
- scalelite-api
|
|
- scalelite-recordings
|
|
command: /bin/bash -c "envsubst '$$NGINX_HOSTNAME' < /etc/nginx/sites.template > /etc/nginx/conf.d/default.conf && while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g 'daemon off;'"
|
|
|
|
scalelite-recordings:
|
|
image: ${SCALELITE_RECORDINGS_DOCKER_IMAGE:-bigbluebutton/bbb-playback-proxy:focal-260-alpine}
|
|
container_name: scalelite-recordings
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./log/recordings/:/var/log/nginx
|
|
- ./data/proxy/bigbluebutton/nginx/notes.nginx:/etc/bigbluebutton/nginx/notes.nginx
|
|
- ${SCALELITE_RECORDING_DIR:-/mnt/scalelite-recordings/var/bigbluebutton}/published:/var/bigbluebutton/published
|
|
depends_on:
|
|
- scalelite-api
|
|
|
|
scalelite-api:
|
|
image: ${SCALELITE_DOCKER_IMAGE:-blindsidenetwks/scalelite:v1.1}
|
|
container_name: scalelite-api
|
|
restart: unless-stopped
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- REDIS_URL=${REDIS_URL:-redis://redis:6379}
|
|
- DATABASE_URL=${DATABASE_URL:-postgres://postgres:password@postgres:5432/scalelite?pool=5}
|
|
- RECORDING_DISABLED=${RECORDING_DISABLED:-false}
|
|
- SERVER_ID_IS_HOSTNAME=${SERVER_ID_IS_HOSTNAME:-false}
|
|
- RAILS_LOG_TO_STDOUT=${RAILS_LOG_TO_STDOUT:-false}
|
|
volumes:
|
|
- ./log/scalelite-api/:/srv/scalelite/log/
|
|
- ${SCALELITE_RECORDING_DIR:-/mnt/scalelite-recordings/var/bigbluebutton}:/var/bigbluebutton
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
logging:
|
|
driver: journald
|
|
|
|
scalelite-poller:
|
|
image: ${SCALELITE_DOCKER_IMAGE:-blindsidenetwks/scalelite:v1.1}
|
|
container_name: scalelite-poller
|
|
restart: unless-stopped
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- REDIS_URL=${REDIS_URL:-redis://redis:6379}
|
|
- SERVER_ID_IS_HOSTNAME=${SERVER_ID_IS_HOSTNAME:-false}
|
|
- RAILS_LOG_TO_STDOUT=${RAILS_LOG_TO_STDOUT:-false}
|
|
volumes:
|
|
- ./log/scalelite-poller/:/app/log
|
|
command: /bin/sh -c "bin/start-poller"
|
|
depends_on:
|
|
- scalelite-api
|
|
logging:
|
|
driver: journald
|
|
|
|
scalelite-recording-importer:
|
|
image: ${SCALELITE_DOCKER_IMAGE:-blindsidenetwks/scalelite:v1.1}
|
|
container_name: scalelite-recording-importer
|
|
restart: unless-stopped
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- REDIS_URL=${REDIS_URL:-redis://redis:6379}
|
|
- DATABASE_URL=${DATABASE_URL:-postgres://postgres:password@postgres:5432/scalelite?pool=5}
|
|
- RECORDING_DISABLED=false
|
|
- RAILS_LOG_TO_STDOUT=${RAILS_LOG_TO_STDOUT:-false}
|
|
volumes:
|
|
- ./log/scalelite-recording-importer/:/app/log
|
|
- ${SCALELITE_RECORDING_DIR:-/mnt/scalelite-recordings/var/bigbluebutton}:/var/bigbluebutton
|
|
- ${SCALELITE_RECORDING_DIR:-/mnt/scalelite-recordings/var/bigbluebutton}/spool:/var/bigbluebutton/spool
|
|
command: /bin/sh -c "bin/start-recording-importer"
|
|
depends_on:
|
|
- scalelite-api
|
|
logging:
|
|
driver: journald
|