|
|
|
@@ -5,16 +5,12 @@ x-logging: &logging
|
|
|
|
|
max-size: "5m"
|
|
|
|
|
max-file: "2"
|
|
|
|
|
|
|
|
|
|
#x-firecrawl-service: &firecrawl-service
|
|
|
|
|
# image: ghcr.io/mendableai/firecrawl
|
|
|
|
|
#
|
|
|
|
|
#x-firecrawl-env: &firecrawl-env
|
|
|
|
|
# REDIS_URL: redis://redis:6379
|
|
|
|
|
# REDIS_RATE_LIMIT_URL: redis://redis:6379
|
|
|
|
|
# PLAYWRIGHT_MICROSERVICE_URL: http://playwright:3000/scrape
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# FOUNDRY #
|
|
|
|
|
# https://rec.scarif.space/foundy #
|
|
|
|
|
###################################
|
|
|
|
|
foundry:
|
|
|
|
|
profiles: ["prod"]
|
|
|
|
|
<<: *logging
|
|
|
|
@@ -44,6 +40,10 @@ services:
|
|
|
|
|
networks:
|
|
|
|
|
- nginx
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# NEXTCLOUD #
|
|
|
|
|
# https://tower.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
nextcloud:
|
|
|
|
|
profiles: ["prod", "dev"]
|
|
|
|
|
<<: *logging
|
|
|
|
@@ -119,6 +119,25 @@ services:
|
|
|
|
|
- "tower.${DOMAIN}:${LOCAL_IP}"
|
|
|
|
|
- "office.${DOMAIN}:${LOCAL_IP}"
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# VAULTWARDEN #
|
|
|
|
|
# https://vault.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
vaultwarden:
|
|
|
|
|
image: vaultwarden/server:latest
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
environment:
|
|
|
|
|
- "DOMAIN=https://vault.${DOMAIN}"
|
|
|
|
|
- VIRTUAL_HOST=vault.${DOMAIN}
|
|
|
|
|
- LETSENCRYPT_HOST=vault.${DOMAIN}
|
|
|
|
|
- VIRTUAL_PORT=80
|
|
|
|
|
volumes:
|
|
|
|
|
- /mnt/tower/containers/vaultwarden:/data/
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# GITEA #
|
|
|
|
|
# https://labs.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
gitea:
|
|
|
|
|
profiles: ["prod", "dev"]
|
|
|
|
|
<<: *logging
|
|
|
|
@@ -155,6 +174,10 @@ services:
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# AUDIOBOOKSHELF #
|
|
|
|
|
# https://echo.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
audiobookshelf:
|
|
|
|
|
image: ghcr.io/advplyr/audiobookshelf:latest
|
|
|
|
|
volumes:
|
|
|
|
@@ -170,6 +193,10 @@ services:
|
|
|
|
|
networks:
|
|
|
|
|
- nginx
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# GROCY #
|
|
|
|
|
# https://supplies.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
grocy:
|
|
|
|
|
image: lscr.io/linuxserver/grocy:latest
|
|
|
|
|
environment:
|
|
|
|
@@ -188,6 +215,10 @@ services:
|
|
|
|
|
networks:
|
|
|
|
|
- nginx
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# HOMEBOX #
|
|
|
|
|
# https://assets.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
homebox:
|
|
|
|
|
image: ghcr.io/sysadminsmedia/homebox:latest
|
|
|
|
|
restart: always
|
|
|
|
@@ -195,9 +226,7 @@ services:
|
|
|
|
|
- HBOX_LOG_LEVEL=info
|
|
|
|
|
- HBOX_LOG_FORMAT=text
|
|
|
|
|
- HBOX_WEB_MAX_UPLOAD_SIZE=20
|
|
|
|
|
# Please consider allowing analytics to help us improve Homebox (basic computer information, no personal data)
|
|
|
|
|
- HBOX_OPTIONS_ALLOW_ANALYTICS=false
|
|
|
|
|
# Use a strong random string for the pepper in production, it will be used to hash API keys and make them more secure
|
|
|
|
|
- HBOX_AUTH_API_KEY_PEPPER=${HOMEBOX_API_KEY_PEPPER}
|
|
|
|
|
- HBOX_OPTIONS_ALLOW_REGISTRATION=true
|
|
|
|
|
- VIRTUAL_HOST=assets.${DOMAIN}
|
|
|
|
@@ -208,6 +237,10 @@ services:
|
|
|
|
|
networks:
|
|
|
|
|
- nginx
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# SEARXNG #
|
|
|
|
|
# https://holocron.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
searxng:
|
|
|
|
|
image: docker.io/searxng/searxng:latest
|
|
|
|
|
restart: unless-stopped
|
|
|
|
@@ -226,6 +259,9 @@ services:
|
|
|
|
|
- CERT_NAME=${DOMAIN}
|
|
|
|
|
<<: *logging
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# MINECRAFT #
|
|
|
|
|
###################################
|
|
|
|
|
minecraft:
|
|
|
|
|
profiles: ["prod"]
|
|
|
|
|
<<: *logging
|
|
|
|
@@ -262,8 +298,12 @@ services:
|
|
|
|
|
- PRUNE_BACKUPS_DAYS=30
|
|
|
|
|
volumes:
|
|
|
|
|
- /mnt/tower/containers/minecraft:/data
|
|
|
|
|
- /mnt/backups/minecraft:/backups
|
|
|
|
|
- /mnt/tower/containers/minecraft/backup:/backups
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# NAVIDROME #
|
|
|
|
|
# https://radio.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
navidrome:
|
|
|
|
|
profiles: ["prod"]
|
|
|
|
|
<<: *logging
|
|
|
|
@@ -284,6 +324,10 @@ services:
|
|
|
|
|
networks:
|
|
|
|
|
- nginx
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# PIHOLE #
|
|
|
|
|
# https://net.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
pihole:
|
|
|
|
|
profiles: ["prod"]
|
|
|
|
|
<<: *logging
|
|
|
|
@@ -297,129 +341,194 @@ services:
|
|
|
|
|
- TZ="Europe/London"
|
|
|
|
|
- WEBPASSWORD=${PIHOLE_PASSWORD}
|
|
|
|
|
volumes:
|
|
|
|
|
- "/docker/pihole/etc-pihole:/etc/pihole"
|
|
|
|
|
- "/docker/pihole/etc-dnsmasq.d:/etc/dnsmasq.d"
|
|
|
|
|
- "/mnt/tower/containers/pihole/etc-pihole:/etc/pihole"
|
|
|
|
|
- "./pihole/etc-dnsmasq.d:/etc/dnsmasq.d"
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
networks:
|
|
|
|
|
- nginx
|
|
|
|
|
|
|
|
|
|
# jitsi:
|
|
|
|
|
# profiles: ["prod"]
|
|
|
|
|
# <<: *logging
|
|
|
|
|
# image: jitsi/web:stable
|
|
|
|
|
# restart: unless-stopped
|
|
|
|
|
# volumes:
|
|
|
|
|
# - ${CONFIG}/web:/config:Z
|
|
|
|
|
# - ${CONFIG}/web/crontabs:/var/spool/cron/crontabs:Z
|
|
|
|
|
# - ${CONFIG}/transcripts:/usr/share/jitsi-meet/transcripts:Z
|
|
|
|
|
# environment:
|
|
|
|
|
# - VIRTUAL_HOST=comms.${DOMAIN}
|
|
|
|
|
# - LETSENCRYPT_HOST=comms.${DOMAIN}
|
|
|
|
|
# - VIRTUAL_PORT=80
|
|
|
|
|
# - CERT_NAME=${DOMAIN}
|
|
|
|
|
# - ENABLE_AUTH=1
|
|
|
|
|
# - ENABLE_GUESTS=1
|
|
|
|
|
# - ENABLE_PREJOIN_PAGE=1
|
|
|
|
|
# - ENABLE_WELCOME_PAGE=1
|
|
|
|
|
# - ENABLE_CLOSE_PAGE=1
|
|
|
|
|
# - ENABLE_NOISY_MIC_DETECTION=1
|
|
|
|
|
# - ETHERPAD_TITLE="Video Chat"
|
|
|
|
|
# - ETHERPAD_DEFAULT_PAD_TEXT="Welcome to Web Chat!\n\n"
|
|
|
|
|
# - ETHERPAD_SKIN_NAME="colibris"
|
|
|
|
|
# - ETHERPAD_SKIN_VARIANTS="super-light-toolbar super-light-editor light-background full-width-editor"
|
|
|
|
|
# - XMPP_BOSH_URL_BASE=https://xmpp.meet.jitsi:5280
|
|
|
|
|
# - XMPP_AUTH_DOMAIN
|
|
|
|
|
# - XMPP_MUC_DOMAIN
|
|
|
|
|
# - XMPP_GUEST_DOMAIN
|
|
|
|
|
# - XMPP_RECORDER_DOMAIN
|
|
|
|
|
# networks:
|
|
|
|
|
# nginx:
|
|
|
|
|
# meet.jitsi:
|
|
|
|
|
#
|
|
|
|
|
# prosody:
|
|
|
|
|
# profiles: ["prod"]
|
|
|
|
|
# <<: *logging
|
|
|
|
|
# image: jitsi/prosody:stable
|
|
|
|
|
# restart: unless-stopped
|
|
|
|
|
# expose:
|
|
|
|
|
# - '${XMPP_PORT:-52222}'
|
|
|
|
|
# - '5347'
|
|
|
|
|
# - '5280'
|
|
|
|
|
# volumes:
|
|
|
|
|
# - ${CONFIG}/prosody/config:/config:Z
|
|
|
|
|
# - ${CONFIG}/prosody/prosody-plugins-custom:/prosody-plugins-custom:Z
|
|
|
|
|
# environment:
|
|
|
|
|
# - ENABLE_NOISY_MIC_DETECTION=1
|
|
|
|
|
# - ENABLE_AUTH=1
|
|
|
|
|
# - ENABLE_GUESTS=1
|
|
|
|
|
# - ENABLE_LOBBY=1
|
|
|
|
|
# - XMPP_DOMAIN
|
|
|
|
|
# - XMPP_AUTH_DOMAIN
|
|
|
|
|
# - XMPP_MUC_DOMAIN
|
|
|
|
|
# - XMPP_INTERNAL_MUC_DOMAIN
|
|
|
|
|
# - XMPP_GUEST_DOMAIN
|
|
|
|
|
# - JVB_AUTH_USER
|
|
|
|
|
# - JIGASI_XMPP_USER=jigasi
|
|
|
|
|
# - XMPP_RECORDER_DOMAIN
|
|
|
|
|
# - JIBRI_RECORDER_USER=recorder
|
|
|
|
|
# - JIBRI_XMPP_USER=jibri
|
|
|
|
|
# - JICOFO_AUTH_PASSWORD=
|
|
|
|
|
# networks:
|
|
|
|
|
# meet.jitsi:
|
|
|
|
|
# aliases:
|
|
|
|
|
# - ${XMPP_SERVER:-xmpp.meet.jitsi}
|
|
|
|
|
#
|
|
|
|
|
# # Focus component
|
|
|
|
|
# jicofo:
|
|
|
|
|
# profiles: ["prod"]
|
|
|
|
|
# <<: *logging
|
|
|
|
|
# image: jitsi/jicofo:stable
|
|
|
|
|
# restart: unless-stopped
|
|
|
|
|
# volumes:
|
|
|
|
|
# - ${CONFIG}/jicofo:/config:Z
|
|
|
|
|
# depends_on:
|
|
|
|
|
# - prosody
|
|
|
|
|
# environment:
|
|
|
|
|
# - ENABLE_AUTH=1
|
|
|
|
|
# - XMPP_DOMAIN
|
|
|
|
|
# - XMPP_MUC_DOMAIN
|
|
|
|
|
# - XMPP_INTERNAL_MUC_DOMAIN
|
|
|
|
|
# - JVB_BREWERY_MUC
|
|
|
|
|
# - JIGASI_BREWERY_MUC=jigasibrewery
|
|
|
|
|
# - XMPP_RECORDER_DOMAIN
|
|
|
|
|
# - JIBRI_BREWERY_MUC=jibribrewery
|
|
|
|
|
# - JIBRI_PENDING_TIMEOUT=90
|
|
|
|
|
# - JICOFO_AUTH_PASSWORD=
|
|
|
|
|
# networks:
|
|
|
|
|
# meet.jitsi:
|
|
|
|
|
#
|
|
|
|
|
# # Video bridge
|
|
|
|
|
# jvb:
|
|
|
|
|
# profiles: ["prod"]
|
|
|
|
|
# <<: *logging
|
|
|
|
|
# image: jitsi/jvb:stable
|
|
|
|
|
# restart: unless-stopped
|
|
|
|
|
# ports:
|
|
|
|
|
# - '${JVB_PORT:-10000}:${JVB_PORT:-10000}/udp'
|
|
|
|
|
# - '127.0.0.1:${JVB_COLIBRI_PORT:-8080}:8080'
|
|
|
|
|
# volumes:
|
|
|
|
|
# - ${CONFIG}/jvb:/config:Z
|
|
|
|
|
# depends_on:
|
|
|
|
|
# - prosody
|
|
|
|
|
# environment:
|
|
|
|
|
# - DOCKER_HOST_ADDRESS=${LOCAL_IP}
|
|
|
|
|
# - XMPP_SERVER
|
|
|
|
|
# - XMPP_AUTH_DOMAIN
|
|
|
|
|
# - XMPP_INTERNAL_MUC_DOMAIN
|
|
|
|
|
# - JVB_BREWERY_MUC
|
|
|
|
|
# - JVB_AUTH_USER
|
|
|
|
|
# - JVB_STUN_SERVERS=meet-jit-si-turnrelay.jitsi.net:443
|
|
|
|
|
# - JVB_PORT
|
|
|
|
|
# networks:
|
|
|
|
|
# meet.jitsi:
|
|
|
|
|
# aliases:
|
|
|
|
|
# - jvb.meet.jitsi
|
|
|
|
|
###################################
|
|
|
|
|
# DAWARICH #
|
|
|
|
|
# https://map.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
dawarich_app:
|
|
|
|
|
image: freikin/dawarich:latest
|
|
|
|
|
container_name: dawarich_app
|
|
|
|
|
volumes:
|
|
|
|
|
- /mnt/tower/containers/dawarich/public:/var/app/public
|
|
|
|
|
- /mnt/tower/containers/dawarich/watched:/var/app/tmp/imports/watched
|
|
|
|
|
- /mnt/tower/containers/dawarich/storage:/var/app/storage
|
|
|
|
|
- /mnt/tower/containers/dawarich/data:/dawarich_db_data
|
|
|
|
|
networks:
|
|
|
|
|
- dawarich
|
|
|
|
|
- redis
|
|
|
|
|
- nginx
|
|
|
|
|
stdin_open: true
|
|
|
|
|
tty: true
|
|
|
|
|
entrypoint: web-entrypoint.sh
|
|
|
|
|
command: ['bin/rails', 'server', '-p', '3000', '-b', '::']
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
environment:
|
|
|
|
|
VIRTUAL_HOST: maps.${DOMAIN}
|
|
|
|
|
VIRTUAL_PORT: 3000
|
|
|
|
|
LETSENCRYPT_HOST: maps.${DOMAIN}
|
|
|
|
|
RAILS_ENV: ${RAILS_ENV:-production}
|
|
|
|
|
PUID: ${PUID:-1000}
|
|
|
|
|
PGID: ${PGID:-1000}
|
|
|
|
|
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
|
|
|
|
|
DATABASE_HOST: ${DATABASE_HOST:-dawarich_db}
|
|
|
|
|
DATABASE_PORT: ${DATABASE_PORT:-5432}
|
|
|
|
|
DATABASE_USERNAME: ${DATABASE_USERNAME:-postgres}
|
|
|
|
|
DATABASE_PASSWORD: ${DATABASE_PASSWORD:-password}
|
|
|
|
|
DATABASE_NAME: ${DATABASE_NAME:-dawarich_development}
|
|
|
|
|
APPLICATION_HOSTS: maps.${DOMAIN},localhost,::1,127.0.0.1
|
|
|
|
|
TIME_ZONE: ${TIME_ZONE:-Europe/London}
|
|
|
|
|
APPLICATION_PROTOCOL: ${APPLICATION_PROTOCOL:-http}
|
|
|
|
|
PROMETHEUS_EXPORTER_ENABLED: ${PROMETHEUS_EXPORTER_ENABLED:-false}
|
|
|
|
|
SECRET_KEY_BASE: ${DAWARICH_SECRET_KEY}
|
|
|
|
|
RAILS_LOG_TO_STDOUT: ${RAILS_LOG_TO_STDOUT:-true}
|
|
|
|
|
SELF_HOSTED: ${SELF_HOSTED:-true}
|
|
|
|
|
STORE_GEODATA: ${STORE_GEODATA:-true}
|
|
|
|
|
WEB_CONCURRENCY: ${WEB_CONCURRENCY:-1}
|
|
|
|
|
<<: *logging
|
|
|
|
|
depends_on:
|
|
|
|
|
- dawarich_db
|
|
|
|
|
- redis
|
|
|
|
|
deploy:
|
|
|
|
|
resources:
|
|
|
|
|
limits:
|
|
|
|
|
cpus: ${APP_CPU_LIMIT:-0.50}
|
|
|
|
|
memory: ${APP_MEMORY_LIMIT:-4G}
|
|
|
|
|
|
|
|
|
|
dawarich_sidekiq:
|
|
|
|
|
image: freikin/dawarich:latest
|
|
|
|
|
container_name: dawarich_sidekiq
|
|
|
|
|
volumes:
|
|
|
|
|
- /mnt/tower/containers/dawarich/public:/var/app/public
|
|
|
|
|
- /mnt/tower/containers/dawarich/watched:/var/app/tmp/imports/watched
|
|
|
|
|
- /mnt/tower/containers/dawarich/storage:/var/app/storage
|
|
|
|
|
networks:
|
|
|
|
|
- dawarich
|
|
|
|
|
- redis
|
|
|
|
|
stdin_open: true
|
|
|
|
|
tty: true
|
|
|
|
|
entrypoint: sidekiq-entrypoint.sh
|
|
|
|
|
command: ['sidekiq']
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
environment:
|
|
|
|
|
RAILS_ENV: ${RAILS_ENV:-production}
|
|
|
|
|
### To run under a non-root user, set PUID/PGID here (do NOT use `user:`).
|
|
|
|
|
# PUID: ${PUID:-1000}
|
|
|
|
|
# PGID: ${PGID:-1000}
|
|
|
|
|
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
|
|
|
|
|
DATABASE_HOST: ${DATABASE_HOST:-dawarich_db}
|
|
|
|
|
DATABASE_PORT: ${DATABASE_PORT:-5432}
|
|
|
|
|
DATABASE_USERNAME: ${DATABASE_USERNAME:-postgres}
|
|
|
|
|
DATABASE_PASSWORD: ${DATABASE_PASSWORD:-password}
|
|
|
|
|
DATABASE_NAME: ${DATABASE_NAME:-dawarich_development}
|
|
|
|
|
APPLICATION_HOSTS: maps.${DOMAIN},localhost,::1,127.0.0.1
|
|
|
|
|
BACKGROUND_PROCESSING_CONCURRENCY: ${BACKGROUND_PROCESSING_CONCURRENCY:-3}
|
|
|
|
|
APPLICATION_PROTOCOL: ${APPLICATION_PROTOCOL:-http}
|
|
|
|
|
PROMETHEUS_EXPORTER_ENABLED: ${PROMETHEUS_EXPORTER_ENABLED:-false}
|
|
|
|
|
SECRET_KEY_BASE: ${DAWARICH_SECRET_KEY}
|
|
|
|
|
RAILS_LOG_TO_STDOUT: ${RAILS_LOG_TO_STDOUT:-true}
|
|
|
|
|
SELF_HOSTED: ${SELF_HOSTED:-true}
|
|
|
|
|
STORE_GEODATA: ${STORE_GEODATA:-true}
|
|
|
|
|
<<: *logging
|
|
|
|
|
depends_on:
|
|
|
|
|
- dawarich_db
|
|
|
|
|
- redis
|
|
|
|
|
- dawarich_app
|
|
|
|
|
|
|
|
|
|
dawarich_db:
|
|
|
|
|
image: postgis/postgis:17-3.5-alpine
|
|
|
|
|
shm_size: 1G
|
|
|
|
|
container_name: dawarich_db
|
|
|
|
|
volumes:
|
|
|
|
|
- /mnt/tower/containers/dawarich/db:/var/lib/postgresql/data
|
|
|
|
|
networks:
|
|
|
|
|
- dawarich
|
|
|
|
|
<<: *logging
|
|
|
|
|
environment:
|
|
|
|
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
|
|
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password}
|
|
|
|
|
POSTGRES_DB: ${POSTGRES_DB:-dawarich_development}
|
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# SURE #
|
|
|
|
|
# https://credits.scarif.space #
|
|
|
|
|
###################################
|
|
|
|
|
|
|
|
|
|
sure_app:
|
|
|
|
|
image: ghcr.io/we-promise/sure:stable
|
|
|
|
|
volumes:
|
|
|
|
|
- /mnt/tower/containers/sure:/rails/storage
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
<<: *logging
|
|
|
|
|
environment:
|
|
|
|
|
VIRTUAL_HOST: credits.${DOMAIN}
|
|
|
|
|
VIRTUAL_PORT: 3000
|
|
|
|
|
LETSENCRYPT_HOST: credits.${DOMAIN}
|
|
|
|
|
POSTGRES_USER: ${POSTGRES_USER:-sure_user}
|
|
|
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-sure_password}
|
|
|
|
|
POSTGRES_DB: ${POSTGRES_DB:-sure_production}
|
|
|
|
|
SECRET_KEY_BASE: ${SURE_SECRET_KEY}
|
|
|
|
|
SELF_HOSTED: "true"
|
|
|
|
|
RAILS_FORCE_SSL: "false"
|
|
|
|
|
RAILS_ASSUME_SSL: "false"
|
|
|
|
|
DB_HOST: sure_db
|
|
|
|
|
DB_PORT: 5432
|
|
|
|
|
REDIS_URL: redis://redis:6379/1
|
|
|
|
|
depends_on:
|
|
|
|
|
- sure_db
|
|
|
|
|
- redis
|
|
|
|
|
networks:
|
|
|
|
|
- sure
|
|
|
|
|
- nginx
|
|
|
|
|
- redis
|
|
|
|
|
|
|
|
|
|
sure_worker:
|
|
|
|
|
image: ghcr.io/we-promise/sure:stable
|
|
|
|
|
command: bundle exec sidekiq
|
|
|
|
|
<<: *logging
|
|
|
|
|
volumes:
|
|
|
|
|
- /mnt/tower/containers/sure:/rails/storage
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
depends_on:
|
|
|
|
|
- sure_db
|
|
|
|
|
- redis
|
|
|
|
|
environment:
|
|
|
|
|
POSTGRES_USER: ${POSTGRES_USER:-sure_user}
|
|
|
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-sure_password}
|
|
|
|
|
POSTGRES_DB: ${POSTGRES_DB:-sure_production}
|
|
|
|
|
SECRET_KEY_BASE: ${SURE_SECRET_KEY}
|
|
|
|
|
SELF_HOSTED: "true"
|
|
|
|
|
RAILS_FORCE_SSL: "false"
|
|
|
|
|
RAILS_ASSUME_SSL: "false"
|
|
|
|
|
DB_HOST: sure_db
|
|
|
|
|
DB_PORT: 5432
|
|
|
|
|
REDIS_URL: redis://redis:6379/1
|
|
|
|
|
networks:
|
|
|
|
|
- sure
|
|
|
|
|
- redis
|
|
|
|
|
|
|
|
|
|
sure_db:
|
|
|
|
|
image: postgres:16
|
|
|
|
|
<<: *logging
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
volumes:
|
|
|
|
|
- /mnt/tower/containers/sure/db:/var/lib/postgresql/data
|
|
|
|
|
environment:
|
|
|
|
|
POSTGRES_USER: ${POSTGRES_USER:-sure_user}
|
|
|
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-sure_password}
|
|
|
|
|
POSTGRES_DB: ${POSTGRES_DB:-sure_production}
|
|
|
|
|
networks:
|
|
|
|
|
- sure
|
|
|
|
|
|
|
|
|
|
###################################
|
|
|
|
|
# UTILITIES #
|
|
|
|
|
###################################
|
|
|
|
|
db:
|
|
|
|
|
profiles: ["prod", "dev"]
|
|
|
|
|
<<: *logging
|
|
|
|
@@ -445,6 +554,7 @@ services:
|
|
|
|
|
- redis
|
|
|
|
|
|
|
|
|
|
mongodb:
|
|
|
|
|
<<: *logging
|
|
|
|
|
profiles: ["prod", "dev"]
|
|
|
|
|
image: mongo
|
|
|
|
|
restart: always
|
|
|
|
@@ -456,7 +566,16 @@ services:
|
|
|
|
|
environment:
|
|
|
|
|
- MONGO_INITDB_ROOT_USERNAME=${DB_USER}
|
|
|
|
|
- MONGO_INITDB_ROOT_PASSWORD=${DB_PASSWORD}
|
|
|
|
|
|
|
|
|
|
rsync-backup:
|
|
|
|
|
<<: *logging
|
|
|
|
|
build: ./backup
|
|
|
|
|
volumes:
|
|
|
|
|
- /mnt/tower:/data:ro
|
|
|
|
|
- /mnt/backup/tower:/backup
|
|
|
|
|
- ./backup/crontab.txt:/etc/crontabs/root:ro
|
|
|
|
|
- ./backup/exclude.txt:/config/exclude.txt:ro
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
|
|
nginx:
|
|
|
|
|
<<: *logging
|
|
|
|
@@ -525,5 +644,7 @@ networks:
|
|
|
|
|
db:
|
|
|
|
|
nginx:
|
|
|
|
|
redis:
|
|
|
|
|
sure:
|
|
|
|
|
dawarich:
|
|
|
|
|
meet.jitsi:
|
|
|
|
|
|
|
|
|
|