Files
scarif/docker-compose.yml

855 lines
22 KiB
YAML
Raw Normal View History

2022-10-05 22:47:24 +00:00
x-logging: &logging
logging:
driver: "local"
options:
max-size: "5m"
max-file: "2"
2025-07-25 21:17:58 +01:00
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:
2025-07-20 22:21:37 +01:00
# change:
# <<: *logging
# profiles: ["prod"]
# container_name: change
# image: node:alpine
# build: ./change-game
# environment:
# - PORT=9000
# - VIRTUAL_HOST=rec.${DOMAIN}
# - CERT_NAME=${DOMAIN}
# - VIRTUAL_PORT=9000
# networks:
# - nginx
# volumes:
# - change:/change/public
2024-12-30 12:14:53 +00:00
2021-06-21 18:25:05 +01:00
foundry:
2025-07-20 22:21:37 +01:00
profiles: ["prod"]
2022-10-05 22:47:24 +00:00
<<: *logging
2021-06-21 18:25:05 +01:00
image: felddy/foundryvtt:release
volumes:
2023-03-23 20:29:29 +00:00
- /mnt/tower/foundry:/data
- /opt/scarif/foundry/patches:/data/patches
2021-06-21 18:25:05 +01:00
restart: always
environment:
- "FOUNDRY_PASSWORD=${FOUNDRY_PASSWORD}"
- "FOUNDRY_USERNAME=${FOUNDRY_USER}"
- FOUNDRY_ADMIN_KEY=${FOUNDRY_ADMIN_KEY}
- FOUNDRY_HOSTNAME=https://rec.${DOMAIN}
- FOUNDRY_PROXY_PORT=443
- FOUNDRY_PORT=443
- FOUNDRY_PROXY_SSL=true
- FOUNDRY_ROUTE_PREFIX=foundry
2021-06-22 08:33:44 +01:00
- CONTAINER_CACHE=/data/container_cache
2023-03-23 20:29:29 +00:00
- CONTAINER_PATCHES=/data/patches
- FOUNDRY_UID=1000
- FOUNDRY_GID=1000
2025-07-20 22:21:37 +01:00
- VIRTUAL_HOST=rec.${DOMAIN}
- CERT_NAME=${DOMAIN}
- VIRTUAL_PORT=30000
- VIRTUAL_PATH=/foundry
2021-06-21 18:25:05 +01:00
networks:
- nginx
nextcloud:
2025-07-25 23:22:07 +01:00
profiles: ["prod", "dev"]
2022-10-05 22:47:24 +00:00
<<: *logging
build: ./nextcloud
2025-07-20 22:21:37 +01:00
image: nextcloud:31-fpm-alpine
2023-03-23 20:29:29 +00:00
restart: unless-stopped
user: 1000:1000
2025-07-25 23:22:07 +01:00
ports:
- 9000:9000
volumes:
- nextcloud:/var/www/html
2025-07-25 23:22:07 +01:00
- ./nextcloud/redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini
2023-03-23 20:29:29 +00:00
- /mnt/tower/stardust:/var/www/html/data
- /mnt/tower/foundry:/var/www/foundry
environment:
2025-07-20 22:21:37 +01:00
- VIRTUAL_HOST=tower.${DOMAIN}
- CERT_NAME=${DOMAIN}
- VIRTUAL_PORT=9000
- VIRTUAL_PROTO=fastcgi
- REDIS_HOST=redis
- MYSQL_HOST=db
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=${DB_USER}
- NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
- NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
2023-03-23 20:29:29 +00:00
- MAIL_FROM_ADDRESS=${MAIL_FROM}
- SMTP_HOST=${MAIL_HOST}
- SMTP_PORT=${MAIL_PORT}
- SMTP_USER=${MAIL_USER}
- SMTP_PASSWORD=${MAIL_PASSWORD}
- "NEXTCLOUD_TRUSTED_DOMAINS=tower.${DOMAIN} 127.0.0.1"
- USER_UID=1000
- USER_GID=1000
- APACHE_RUN_USER=1000
- APACHE_RUN_GROUP=1000
depends_on:
- db
- redis
2020-11-24 21:19:10 +00:00
networks:
- db
- redis
- nginx
2020-12-07 21:55:23 +00:00
extra_hosts:
2023-03-23 20:29:29 +00:00
- "tower.${DOMAIN}:${LOCAL_IP}"
- "office.${DOMAIN}:${LOCAL_IP}"
2024-12-30 12:15:35 +00:00
2020-12-07 21:55:23 +00:00
collabora:
2025-07-20 22:21:37 +01:00
profiles: ["prod", "dev"]
2022-10-05 22:47:24 +00:00
<<: *logging
2020-12-07 21:55:23 +00:00
image: collabora/code
2023-03-23 20:29:29 +00:00
restart: unless-stopped
2020-12-07 21:55:23 +00:00
cap_add:
- MKNOD
environment:
2025-07-20 22:21:37 +01:00
- VIRTUAL_HOST=office.${DOMAIN}
- CERT_NAME=${DOMAIN}
- VIRTUAL_PORT=9980
2023-03-23 20:29:29 +00:00
- "DONT_GEN_SSL_CERT=True"
2020-12-07 21:55:23 +00:00
- domain=tower.${DOMAIN}
- cert_domain=office.${DOMAIN}
- server_name=office.${DOMAIN}
- username=${COLLABORA_USER}
- password=${COLLABORA_PASSWORD}
- "extra_params=-o:ssl.enable=false --o:ssl.termination=true"
- "dictionaries=de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru ro"
networks:
- nginx
extra_hosts:
2023-03-23 20:29:29 +00:00
- "tower.${DOMAIN}:${LOCAL_IP}"
- "office.${DOMAIN}:${LOCAL_IP}"
2020-12-13 16:37:09 +00:00
2020-11-25 21:33:30 +00:00
gitea:
2025-07-20 22:21:37 +01:00
profiles: ["prod", "dev"]
2022-10-05 22:47:24 +00:00
<<: *logging
2020-11-25 21:33:30 +00:00
image: gitea/gitea:1
environment:
2025-07-20 22:21:37 +01:00
- VIRTUAL_HOST=labs.${DOMAIN}
- CERT_NAME=${DOMAIN}
- VIRTUAL_PORT=3000
2020-11-25 21:33:30 +00:00
- "APP_NAME=Labs: Where the good stuff happens"
- RUN_MODE=prod
- DOMAIN=labs.${DOMAIN}
- ROOT_URL=https://labs.${DOMAIN}
- DB_TYPE=mysql
- DB_HOST=db
- DB_NAME=gitea
- DB_USER=${DB_USER}
- DB_PASSWD=${DB_PASSWORD}
- USER_UID=1200
- USER_GID=1200
- DISABLE_REGISTRATION=true
2020-11-25 21:33:30 +00:00
restart: always
volumes:
- gitea:/data
2023-03-23 20:29:29 +00:00
- /mnt/tower/labs:/data/git
- /home/git/.ssh/:/data/git/.ssh/
2020-11-25 21:33:30 +00:00
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "127.0.0.1:2222:22"
2020-11-25 21:33:30 +00:00
networks:
- db
- nginx
depends_on:
- db
2025-07-25 21:17:58 +01:00
librechat:
image: ghcr.io/danny-avila/librechat-dev-api:latest
ports:
- 3080:3080
networks:
- nginx
- redis
- db
depends_on:
- mongodb
- rag_api
restart: always
extra_hosts:
- "host.docker.internal:host-gateway"
<<: *logging
environment:
- VIRTUAL_HOST=droid.${DOMAIN}
- VIRTUAL_PORT=3080
- CERT_NAME=${DOMAIN}
- HOST=0.0.0.0
- NODE_ENV=production
- MONGO_URI=mongodb://${DB_USER}:${DB_PASSWORD}@mongodb:27017/LibreChat?authSource=admin
- MEILI_HOST=http://meilisearch:7700
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
- RAG_PORT=8000
- RAG_API_URL=http://rag_api:8000
- SEARXNG_INSTANCE_URL=http://searxng:8080
- SEARXNG_API_KEY=${SEARXNG_SECRET_KEY}
- FIRECRAWL_URL=http://firecrawl:3002
- FIRECRWAL_API_KEY=
- ALLOW_EMAIL_LOGIN=true
- ALLOW_REGISTRATION=false
- ALLOW_SOCIAL_LOGIN=false
- ALLOW_SOCIAL_REGISTRATION=false
- ALLOW_PASSWORD_RESET=false
- ALLOW_ACCOUNT_DELETION=false
- ALLOW_UNVERIFIED_EMAIL_LOGIN=true
- CREDS_KEY=${LIBRECHAT_CREDS_KEY}
- CREDS_IV=${LIBRECHAT_CREDS_IV}
- JWT_SECRET=${LIBRECHAT_JWT_SECRET}
- JWT_REFRESH_SECRET=${LIBRECHAT_JWT_REFRESH_SECRET}
- AIHUBMIX_KEY=${AIHUBMIX_KEY}
- OPENROUTER_KEY=${OPENROUTER_KEY}
2025-07-25 23:22:07 +01:00
- IMAGE_GEN_OAI_BASEURL=https://aihubmix.com/v1
2025-07-25 21:17:58 +01:00
- IMAGE_GEN_OAI_API_KEY=${AIHUBMIX_KEY}
- IMAGE_GEN_OAI_MODEL=gpt-image-1
2025-07-25 22:08:45 +01:00
- JINA_API_KEY=${JINA_API_KEY}
2025-07-25 21:17:58 +01:00
volumes:
- type: bind
source: ./librechat/librechat.yaml
target: /app/librechat.yaml
- /mnt/tower/stardust/files/chris/.droid/images:/app/client/public/images
- /mnt/tower/stardust/files/chris/.droid/uploads:/app/uploads
- /mnt/tower/stardust/files/chris/.droid/logs:/app/logs
- /mnt/tower/stardust/files/chris/:/files
searxng:
image: docker.io/searxng/searxng:latest
restart: unless-stopped
networks:
- nginx
- redis
volumes:
- ./searxng:/etc/searxng:rw
- searxng:/var/cache/searxng:rw
environment:
- SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/
- SEARXNG_SECRET=${SEARXNG_SECRET_KEY}
- VIRTUAL_HOST=holocron.${DOMAIN}
- VIRTUAL_PORT=8080
- CERT_NAME=${DOMAIN}
<<: *logging
2024-12-26 00:06:39 +00:00
minecraft:
2025-07-20 22:21:37 +01:00
profiles: ["prod"]
2024-12-26 00:06:39 +00:00
<<: *logging
image: itzg/minecraft-server
tty: true
stdin_open: true
ports:
- "25565:25565"
environment:
- TYPE=VANILLA
- VERSION=LATEST
- EULA=TRUE
- MEMORY=2G
- RCON_PASSWORD=${MINECRAFT_PASSWORD}
- MOTD="Scarif Minecraft Server"
2024-12-26 12:54:17 +00:00
- WHITELIST=${MINECRAFT_WHITELIST}
2024-12-26 00:06:39 +00:00
volumes:
- minecraft:/data
2024-12-26 12:54:17 +00:00
mc-backup:
2025-07-20 22:21:37 +01:00
profiles: ["prod"]
2024-12-26 12:54:17 +00:00
<<: *logging
image: itzg/mc-backup
depends_on:
minecraft:
condition: service_healthy
environment:
- RCON_HOST=minecraft
- RCON_PASSWORD=${MINECRAFT_PASSWORD}
- INITIAL_DELAY=0
- BACKUP_INTERVAL=24h
- PAUSE_IF_NO_PLAYERS=true
- PLAYERS_ONLINE_CHECK_INTERVAL=10
- PRUNE_BACKUPS_DAYS=30
volumes:
- minecraft:/data:ro
- /mnt/tower/backups/minecraft:/backups
2023-12-01 09:03:33 +00:00
navidrome:
2025-07-20 22:21:37 +01:00
profiles: ["prod"]
2023-12-01 09:03:33 +00:00
<<: *logging
image: deluan/navidrome:latest
restart: unless-stopped
environment:
2025-07-20 22:21:37 +01:00
- VIRTUAL_HOST=radio.${DOMAIN}
- CERT_NAME=${DOMAIN}
- VIRTUAL_PORT=4533
2023-12-01 09:03:33 +00:00
- ND_SCANSCHEDULE=1h
- ND_LOGLEVEL=info
- ND_SESSIONTIMEOUT=24h
- ND_BASEURL=https://radio.${DOMAIN}
volumes:
- navidrome:/data
- /mnt/tower/stardust/chris/files/Music:/music:ro
networks:
- nginx
2023-07-09 22:56:43 +01:00
pihole:
2025-07-20 22:21:37 +01:00
profiles: ["prod"]
2023-07-09 22:56:43 +01:00
<<: *logging
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
environment:
2025-07-20 22:21:37 +01:00
- VIRTUAL_HOST=net.${DOMAIN}
- CERT_NAME=${DOMAIN}
- TZ="Europe/London"
- WEBPASSWORD=${PIHOLE_PASSWORD}
2023-07-09 22:56:43 +01:00
volumes:
- "/docker/pihole/etc-pihole:/etc/pihole"
- "/docker/pihole/etc-dnsmasq.d:/etc/dnsmasq.d"
restart: unless-stopped
networks:
- nginx
2020-12-22 18:05:10 +00:00
jitsi:
2025-07-20 22:21:37 +01:00
profiles: ["prod"]
2022-10-05 22:47:24 +00:00
<<: *logging
2023-03-23 20:29:29 +00:00
image: jitsi/web:stable
restart: unless-stopped
2020-12-07 22:02:06 +00:00
volumes:
2021-01-01 16:52:56 +00:00
- ${CONFIG}/web:/config:Z
2023-03-23 20:29:29 +00:00
- ${CONFIG}/web/crontabs:/var/spool/cron/crontabs:Z
2021-01-01 16:52:56 +00:00
- ${CONFIG}/transcripts:/usr/share/jitsi-meet/transcripts:Z
2020-12-22 18:05:10 +00:00
environment:
2025-07-20 22:21:37 +01:00
- VIRTUAL_HOST=comms.${DOMAIN}
- VIRTUAL_PORT=80
- CERT_NAME=${DOMAIN}
2021-01-01 16:52:56 +00:00
- AMPLITUDE_ID
- ANALYTICS_SCRIPT_URLS
- ANALYTICS_WHITELISTED_EVENTS
2023-03-23 20:29:29 +00:00
- AUDIO_QUALITY_OPUS_BITRATE
- AUTO_CAPTION_ON_RECORD
2021-01-01 16:52:56 +00:00
- BRANDING_DATA_URL
- CALLSTATS_CUSTOM_SCRIPT_URL
- CALLSTATS_ID
- CALLSTATS_SECRET
- CHROME_EXTENSION_BANNER_JSON
- CONFCODE_URL
- CONFIG_EXTERNAL_CONNECT
2023-03-23 20:29:29 +00:00
- DEFAULT_LANGUAGE
2021-01-01 16:52:56 +00:00
- DEPLOYMENTINFO_ENVIRONMENT
- DEPLOYMENTINFO_ENVIRONMENT_TYPE
2023-03-23 20:29:29 +00:00
- DEPLOYMENTINFO_REGION
- DEPLOYMENTINFO_SHARD
2021-01-01 16:52:56 +00:00
- DEPLOYMENTINFO_USERREGION
2023-03-23 20:29:29 +00:00
- DESKTOP_SHARING_FRAMERATE_MIN
- DESKTOP_SHARING_FRAMERATE_MAX
2021-01-01 16:52:56 +00:00
- DIALIN_NUMBERS_URL
- DIALOUT_AUTH_URL
- DIALOUT_CODES_URL
2023-03-23 20:29:29 +00:00
- DISABLE_AUDIO_LEVELS
- DISABLE_DEEP_LINKING
- DISABLE_GRANT_MODERATOR
- DISABLE_HTTPS
- DISABLE_KICKOUT
- DISABLE_LOCAL_RECORDING
- DISABLE_POLLS
- DISABLE_PRIVATE_CHAT
- DISABLE_PROFILE
- DISABLE_REACTIONS
- DISABLE_REMOTE_VIDEO_MENU
- DISABLE_START_FOR_ALL
2021-01-01 16:52:56 +00:00
- DROPBOX_APPKEY
- DROPBOX_REDIRECT_URI
2023-03-23 20:29:29 +00:00
- DYNAMIC_BRANDING_URL
2021-01-01 16:52:56 +00:00
- ENABLE_AUDIO_PROCESSING
- ENABLE_AUTH
2023-03-23 20:29:29 +00:00
- ENABLE_BREAKOUT_ROOMS
2021-01-01 16:52:56 +00:00
- ENABLE_CALENDAR
2023-03-23 20:29:29 +00:00
- ENABLE_COLIBRI_WEBSOCKET
- ENABLE_E2EPING
- ENABLE_FILE_RECORDING_SHARING
2021-01-01 16:52:56 +00:00
- ENABLE_GUESTS
2023-03-23 20:29:29 +00:00
- ENABLE_HSTS
- ENABLE_HTTP_REDIRECT
2021-01-01 16:52:56 +00:00
- ENABLE_IPV6
2023-03-23 20:29:29 +00:00
- ENABLE_LETS_ENCRYPT
2021-01-01 16:52:56 +00:00
- ENABLE_LIPSYNC
- ENABLE_NO_AUDIO_DETECTION
2023-03-23 20:29:29 +00:00
- ENABLE_NOISY_MIC_DETECTION
- ENABLE_OCTO
- ENABLE_OPUS_RED
2021-01-01 16:52:56 +00:00
- ENABLE_PREJOIN_PAGE
2023-03-23 20:29:29 +00:00
- ENABLE_P2P
2021-01-01 16:52:56 +00:00
- ENABLE_WELCOME_PAGE
- ENABLE_CLOSE_PAGE
2023-03-23 20:29:29 +00:00
- ENABLE_LIVESTREAMING
- ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT
- ENABLE_LOCAL_RECORDING_SELF_START
2021-01-01 16:52:56 +00:00
- ENABLE_RECORDING
- ENABLE_REMB
- ENABLE_REQUIRE_DISPLAY_NAME
2023-03-23 20:29:29 +00:00
- ENABLE_SERVICE_RECORDING
2021-01-01 16:52:56 +00:00
- ENABLE_SIMULCAST
- ENABLE_STATS_ID
- ENABLE_STEREO
- ENABLE_SUBDOMAINS
- ENABLE_TALK_WHILE_MUTED
- ENABLE_TCC
- ENABLE_TRANSCRIPTIONS
2023-03-23 20:29:29 +00:00
- ENABLE_XMPP_WEBSOCKET
- ENABLE_JAAS_COMPONENTS
2021-01-01 16:52:56 +00:00
- ETHERPAD_PUBLIC_URL
- ETHERPAD_URL_BASE
2023-03-23 20:29:29 +00:00
- E2EPING_NUM_REQUESTS
- E2EPING_MAX_CONFERENCE_SIZE
- E2EPING_MAX_MESSAGE_PER_SECOND
2021-01-01 16:52:56 +00:00
- GOOGLE_ANALYTICS_ID
- GOOGLE_API_APP_CLIENT_ID
2023-03-23 20:29:29 +00:00
- HIDE_PREMEETING_BUTTONS
- HIDE_PREJOIN_DISPLAY_NAME
- HIDE_PREJOIN_EXTRA_BUTTONS
2021-01-01 16:52:56 +00:00
- INVITE_SERVICE_URL
2023-03-23 20:29:29 +00:00
- LETSENCRYPT_DOMAIN
- LETSENCRYPT_EMAIL
- LETSENCRYPT_USE_STAGING
2021-01-01 16:52:56 +00:00
- MATOMO_ENDPOINT
- MATOMO_SITE_ID
- MICROSOFT_API_APP_CLIENT_ID
- NGINX_RESOLVER
- NGINX_WORKER_PROCESSES
- NGINX_WORKER_CONNECTIONS
- PEOPLE_SEARCH_URL
2023-03-23 20:29:29 +00:00
- PREFERRED_LANGUAGE
- PUBLIC_URL
- P2P_PREFERRED_CODEC
2021-01-01 16:52:56 +00:00
- RESOLUTION
- RESOLUTION_MIN
- RESOLUTION_WIDTH
- RESOLUTION_WIDTH_MIN
- START_AUDIO_MUTED
2023-03-23 20:29:29 +00:00
- START_AUDIO_ONLY
2021-01-01 16:52:56 +00:00
- START_BITRATE
2023-03-23 20:29:29 +00:00
- START_SILENT
- START_WITH_AUDIO_MUTED
2021-01-01 16:52:56 +00:00
- START_VIDEO_MUTED
2023-03-23 20:29:29 +00:00
- START_WITH_VIDEO_MUTED
2021-01-01 16:52:56 +00:00
- TESTING_CAP_SCREENSHARE_BITRATE
- TESTING_OCTO_PROBABILITY
2023-03-23 20:29:29 +00:00
- TOKEN_AUTH_URL
- TOOLBAR_BUTTONS
- TRANSLATION_LANGUAGES
- TRANSLATION_LANGUAGES_HEAD
- TZ
- USE_APP_LANGUAGE
- VIDEOQUALITY_BITRATE_H264_LOW
- VIDEOQUALITY_BITRATE_H264_STANDARD
- VIDEOQUALITY_BITRATE_H264_HIGH
- VIDEOQUALITY_BITRATE_VP8_LOW
- VIDEOQUALITY_BITRATE_VP8_STANDARD
- VIDEOQUALITY_BITRATE_VP8_HIGH
- VIDEOQUALITY_BITRATE_VP9_LOW
- VIDEOQUALITY_BITRATE_VP9_STANDARD
- VIDEOQUALITY_BITRATE_VP9_HIGH
- VIDEOQUALITY_ENFORCE_PREFERRED_CODEC
- VIDEOQUALITY_PREFERRED_CODEC
2021-01-01 16:52:56 +00:00
- XMPP_AUTH_DOMAIN
- XMPP_BOSH_URL_BASE
- XMPP_DOMAIN
- XMPP_GUEST_DOMAIN
- XMPP_MUC_DOMAIN
- XMPP_RECORDER_DOMAIN
2023-03-23 20:29:29 +00:00
- XMPP_PORT
- WHITEBOARD_ENABLED
- WHITEBOARD_COLLAB_SERVER_PUBLIC_URL
2020-12-07 22:02:06 +00:00
networks:
2020-12-22 18:05:10 +00:00
nginx:
meet.jitsi:
# XMPP server
prosody:
2025-07-20 22:21:37 +01:00
profiles: ["prod"]
2022-10-05 22:47:24 +00:00
<<: *logging
2023-03-23 20:29:29 +00:00
image: jitsi/prosody:stable
restart: unless-stopped
2020-12-22 18:05:10 +00:00
expose:
2023-03-23 20:29:29 +00:00
- '${XMPP_PORT:-52222}'
2020-12-22 18:05:10 +00:00
- '5347'
- '5280'
volumes:
2021-01-01 16:52:56 +00:00
- ${CONFIG}/prosody/config:/config:Z
- ${CONFIG}/prosody/prosody-plugins-custom:/prosody-plugins-custom:Z
2020-12-22 18:05:10 +00:00
environment:
2021-01-01 16:52:56 +00:00
- AUTH_TYPE
2023-03-23 20:29:29 +00:00
- DISABLE_POLLS
2021-01-01 16:52:56 +00:00
- ENABLE_AUTH
2023-03-23 20:29:29 +00:00
- ENABLE_AV_MODERATION
- ENABLE_BREAKOUT_ROOMS
- ENABLE_END_CONFERENCE
2021-01-01 16:52:56 +00:00
- ENABLE_GUESTS
2023-03-23 20:29:29 +00:00
- ENABLE_IPV6
2021-01-01 16:52:56 +00:00
- ENABLE_LOBBY
2023-03-23 20:29:29 +00:00
- ENABLE_RECORDING
2021-01-01 16:52:56 +00:00
- ENABLE_XMPP_WEBSOCKET
2023-03-23 20:29:29 +00:00
- ENABLE_JAAS_COMPONENTS
- GC_TYPE
- GC_INC_TH
- GC_INC_SPEED
- GC_INC_STEP_SIZE
- GC_GEN_MIN_TH
- GC_GEN_MAX_TH
2021-01-01 16:52:56 +00:00
- GLOBAL_CONFIG
2023-03-23 20:29:29 +00:00
- GLOBAL_MODULES
- JIBRI_RECORDER_USER
- JIBRI_RECORDER_PASSWORD
- JIBRI_XMPP_USER
- JIBRI_XMPP_PASSWORD
- JICOFO_AUTH_PASSWORD
- JICOFO_COMPONENT_SECRET
- JIGASI_XMPP_USER
- JIGASI_XMPP_PASSWORD
- JVB_AUTH_USER
- JVB_AUTH_PASSWORD
- JWT_APP_ID
- JWT_APP_SECRET
- JWT_ACCEPTED_ISSUERS
- JWT_ACCEPTED_AUDIENCES
- JWT_ASAP_KEYSERVER
- JWT_ALLOW_EMPTY
- JWT_AUTH_TYPE
- JWT_ENABLE_DOMAIN_VERIFICATION
- JWT_TOKEN_AUTH_MODULE
- MATRIX_UVS_URL
- MATRIX_UVS_ISSUER
- MATRIX_UVS_AUTH_TOKEN
- MATRIX_UVS_SYNC_POWER_LEVELS
- LOG_LEVEL
- LDAP_AUTH_METHOD
2021-01-01 16:52:56 +00:00
- LDAP_BASE
- LDAP_BINDDN
- LDAP_BINDPW
- LDAP_FILTER
- LDAP_VERSION
- LDAP_TLS_CIPHERS
- LDAP_TLS_CHECK_PEER
- LDAP_TLS_CACERT_FILE
- LDAP_TLS_CACERT_DIR
- LDAP_START_TLS
2023-03-23 20:29:29 +00:00
- LDAP_URL
- LDAP_USE_TLS
- MAX_PARTICIPANTS
- PROSODY_RESERVATION_ENABLED
- PROSODY_RESERVATION_REST_BASE_URL
- PUBLIC_URL
- TURN_CREDENTIALS
- TURN_HOST
- TURNS_HOST
- TURN_PORT
- TURNS_PORT
- TURN_TRANSPORT
- TZ
2021-01-01 16:52:56 +00:00
- XMPP_DOMAIN
- XMPP_AUTH_DOMAIN
- XMPP_GUEST_DOMAIN
- XMPP_MUC_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN
- XMPP_MODULES
- XMPP_MUC_MODULES
2023-03-23 20:29:29 +00:00
- XMPP_MUC_CONFIGURATION
2021-01-01 16:52:56 +00:00
- XMPP_INTERNAL_MUC_MODULES
- XMPP_RECORDER_DOMAIN
2023-03-23 20:29:29 +00:00
- XMPP_PORT
2020-12-22 18:05:10 +00:00
networks:
meet.jitsi:
aliases:
2023-03-23 20:29:29 +00:00
- ${XMPP_SERVER:-xmpp.meet.jitsi}
2020-12-22 18:05:10 +00:00
# Focus component
jicofo:
2025-07-20 22:21:37 +01:00
profiles: ["prod"]
2022-10-05 22:47:24 +00:00
<<: *logging
2023-03-23 20:29:29 +00:00
image: jitsi/jicofo:stable
restart: unless-stopped
2020-12-22 18:05:10 +00:00
volumes:
2021-01-01 16:52:56 +00:00
- ${CONFIG}/jicofo:/config:Z
2020-12-22 18:05:10 +00:00
environment:
2021-01-01 16:52:56 +00:00
- AUTH_TYPE
2023-03-23 20:29:29 +00:00
- BRIDGE_AVG_PARTICIPANT_STRESS
- BRIDGE_STRESS_THRESHOLD
2021-01-01 16:52:56 +00:00
- ENABLE_AUTH
2023-03-23 20:29:29 +00:00
- ENABLE_AUTO_OWNER
- ENABLE_CODEC_VP8
- ENABLE_CODEC_VP9
- ENABLE_CODEC_H264
- ENABLE_OCTO
- ENABLE_RECORDING
- ENABLE_SCTP
- ENABLE_AUTO_LOGIN
- JICOFO_AUTH_PASSWORD
- JICOFO_ENABLE_BRIDGE_HEALTH_CHECKS
- JICOFO_CONF_INITIAL_PARTICIPANT_WAIT_TIMEOUT
- JICOFO_CONF_SINGLE_PARTICIPANT_TIMEOUT
- JICOFO_ENABLE_HEALTH_CHECKS
- JIBRI_BREWERY_MUC
- JIBRI_REQUEST_RETRIES
- JIBRI_PENDING_TIMEOUT
- JIGASI_BREWERY_MUC
- JIGASI_SIP_URI
- JVB_BREWERY_MUC
- MAX_BRIDGE_PARTICIPANTS
- OCTO_BRIDGE_SELECTION_STRATEGY
- SENTRY_DSN="${JICOFO_SENTRY_DSN:-0}"
- SENTRY_ENVIRONMENT
- SENTRY_RELEASE
- TZ
2021-01-01 16:52:56 +00:00
- XMPP_DOMAIN
- XMPP_AUTH_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN
- XMPP_MUC_DOMAIN
2023-03-23 20:29:29 +00:00
- XMPP_RECORDER_DOMAIN
2021-01-01 16:52:56 +00:00
- XMPP_SERVER
2023-03-23 20:29:29 +00:00
- XMPP_PORT
2020-12-22 18:05:10 +00:00
depends_on:
- prosody
networks:
meet.jitsi:
# Video bridge
jvb:
2025-07-20 22:21:37 +01:00
profiles: ["prod"]
2022-10-05 22:47:24 +00:00
<<: *logging
2023-03-23 20:29:29 +00:00
image: jitsi/jvb:stable
restart: unless-stopped
2020-12-22 18:05:10 +00:00
ports:
2023-03-23 20:29:29 +00:00
- '${JVB_PORT:-10000}:${JVB_PORT:-10000}/udp'
- '127.0.0.1:${JVB_COLIBRI_PORT:-8080}:8080'
2020-12-22 18:05:10 +00:00
volumes:
2021-01-01 16:52:56 +00:00
- ${CONFIG}/jvb:/config:Z
2020-12-22 18:05:10 +00:00
environment:
2021-01-01 16:52:56 +00:00
- DOCKER_HOST_ADDRESS
2023-03-23 20:29:29 +00:00
- ENABLE_COLIBRI_WEBSOCKET
- ENABLE_OCTO
- JVB_ADVERTISE_IPS
- JVB_ADVERTISE_PRIVATE_CANDIDATES
2021-01-01 16:52:56 +00:00
- JVB_AUTH_USER
2020-12-22 18:05:10 +00:00
- JVB_AUTH_PASSWORD
2021-01-01 16:52:56 +00:00
- JVB_BREWERY_MUC
2023-03-23 20:29:29 +00:00
- JVB_DISABLE_STUN
2021-01-01 16:52:56 +00:00
- JVB_PORT
2023-03-23 20:29:29 +00:00
- JVB_MUC_NICKNAME
2021-01-01 16:52:56 +00:00
- JVB_STUN_SERVERS
2023-03-23 20:29:29 +00:00
- JVB_OCTO_BIND_ADDRESS
- JVB_OCTO_REGION
- JVB_OCTO_RELAY_ID
2021-01-01 16:52:56 +00:00
- JVB_WS_DOMAIN
- JVB_WS_SERVER_ID
- PUBLIC_URL
2023-03-23 20:29:29 +00:00
- SENTRY_DSN="${JVB_SENTRY_DSN:-0}"
- SENTRY_ENVIRONMENT
- SENTRY_RELEASE
- COLIBRI_REST_ENABLED
- SHUTDOWN_REST_ENABLED
2021-01-01 16:52:56 +00:00
- TZ
2023-03-23 20:29:29 +00:00
- XMPP_AUTH_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN
- XMPP_SERVER
- XMPP_PORT
2020-12-22 18:05:10 +00:00
depends_on:
- prosody
networks:
meet.jitsi:
aliases:
- jvb.meet.jitsi
db:
2025-07-20 22:21:37 +01:00
profiles: ["prod", "dev"]
2022-10-05 22:47:24 +00:00
<<: *logging
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --skip-innodb-read-only-compressed
environment:
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
- MYSQL_USER=${DB_USER}
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
- db:/var/lib/mysql
- ./db/init:/docker-entrypoint-initdb.d
restart: always
2020-11-24 21:19:10 +00:00
networks:
- db
2025-07-25 21:17:58 +01:00
playwright:
profiles: ["prod", "dev"]
<<: *logging
image: ghcr.io/mendableai/playwright-service:latest
environment:
PORT: 3000
BLOCK_MEDIA: true
networks:
- playwright
firecrawl:
profiles: ["prod", "dev"]
<<: [*logging, *firecrawl-service]
environment:
<<: *firecrawl-env
HOST: "0.0.0.0"
2025-07-25 22:08:45 +01:00
PORT: 3002
2025-07-25 21:17:58 +01:00
FLY_PROCESS_GROUP: app
ENV: local
2025-07-25 22:08:45 +01:00
VIRTUAL_HOST: scraper.${DOMAIN}
CERT_NAME: ${DOMAIN}
VIRTUAL_PORT: 3002
2025-07-25 21:17:58 +01:00
depends_on:
- redis
- playwright
ports:
- "3002:3002"
2025-07-25 22:08:45 +01:00
networks:
- redis
- playwright
2025-07-25 21:17:58 +01:00
command: [ "pnpm", "run", "start:production" ]
firecrawl-worker:
profiles: ["prod", "dev"]
<<: [*firecrawl-service, *logging]
environment:
<<: *firecrawl-env
FLY_PROCESS_GROUP: worker
2025-07-25 22:08:45 +01:00
networks:
- redis
- playwright
2025-07-25 21:17:58 +01:00
depends_on:
- redis
- playwright
- firecrawl
command: [ "pnpm", "run", "workers" ]
redis:
2025-07-20 22:21:37 +01:00
profiles: ["prod", "dev"]
2025-07-25 21:17:58 +01:00
<<: *logging
image: redis:alpine
restart: always
2020-11-24 21:19:10 +00:00
networks:
- redis
2025-07-25 21:17:58 +01:00
mongodb:
profiles: ["prod", "dev"]
# ports:
# - 27018:27017
image: mongo
restart: always
volumes:
- mongodb:/data/db
command: mongod
networks:
- db
environment:
- MONGO_INITDB_ROOT_USERNAME=${DB_USER}
- MONGO_INITDB_ROOT_PASSWORD=${DB_PASSWORD}
<<: *logging
meilisearch:
profiles: ["prod", "dev"]
image: getmeili/meilisearch:v1.12.3
restart: always
networks:
- db
# ports:
# - 7700:7700
environment:
- MEILI_HOST=http://meilisearch:7700
- MEILI_NO_ANALYTICS=true
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
volumes:
- meilisearch:/meili_data
<<: *logging
vectordb:
profiles: ["prod", "dev"]
image: ankane/pgvector:latest
networks:
- db
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
restart: always
volumes:
- pgdata2:/var/lib/postgresql/data
<<: *logging
rag_api:
profiles: ["prod", "dev"]
image: ghcr.io/danny-avila/librechat-rag-api-dev:latest
environment:
- DB_HOST=vectordb
- RAG_PORT=8000
- EMBEDDINGS_PROVIDER=huggingface
- HF_TOKEN=${HF_TOKEN}
restart: always
networks:
- db
depends_on:
- vectordb
<<: *logging
nginx:
2025-07-25 21:17:58 +01:00
<<: *logging
2025-07-20 22:21:37 +01:00
profiles: ["prod", "dev"]
image: nginxproxy/nginx-proxy
restart: always
2025-07-20 22:21:37 +01:00
ports:
- "80:80"
- "443:443"
volumes:
2025-07-20 22:21:37 +01:00
- /var/run/docker.sock:/tmp/docker.sock:ro
- /opt/ssl:/etc/nginx/certs:ro
2025-07-25 21:17:58 +01:00
- ./nginx/vhost.d/labs_location:/etc/nginx/vhost.d/labs.${DOMAIN}_location:ro
- ./nginx/vhost.d/office:/etc/nginx/vhost.d/office.${DOMAIN}:ro
- ./nginx/vhost.d/rec:/etc/nginx/vhost.d/rec.${DOMAIN}:ro
- ./nginx/vhost.d/tower_location_override:/etc/nginx/vhost.d/tower.${DOMAIN}_location_override:ro
- ./nginx/vhost.d/tower:/etc/nginx/vhost.d/tower.${DOMAIN}:ro
- ./nginx/conf.d/custom_proxy.conf:/etc/nginx/conf.d/custom_proxy.conf:ro
- nextcloud:/var/www/html/nextcloud:ro
2022-12-20 23:21:50 +00:00
- ./christmas:/var/www/html/christmas:ro
2025-07-25 21:17:58 +01:00
# - tt-rss:/var/www/html/tt-rss:ro
2020-11-24 21:19:10 +00:00
networks:
- nginx
2023-03-23 20:29:29 +00:00
certs:
2025-07-20 22:21:37 +01:00
profiles: ["dev"]
image: paulczar/omgwtfssl
restart: "no"
volumes:
- /opt/ssl:/certs
2023-03-23 20:29:29 +00:00
environment:
- SSL_SUBJECT=${DOMAIN}
- CA_SUBJECT=chris@${DOMAIN}
- SSL_KEY=/certs/${DOMAIN}.key
- SSL_CSR=/certs/${DOMAIN}.csr
- SSL_CERT=/certs/${DOMAIN}.crt
2020-11-25 21:33:30 +00:00
volumes:
db:
gitea:
nextcloud:
2021-06-21 18:25:05 +01:00
foundry:
2023-12-01 09:03:33 +00:00
navidrome:
2024-12-26 00:06:39 +00:00
minecraft:
2024-12-30 12:14:53 +00:00
change:
2025-07-25 21:17:58 +01:00
mongodb:
searxng:
pgdata2:
meilisearch:
2020-11-24 21:19:10 +00:00
networks:
db:
nginx:
redis:
2020-12-22 18:05:10 +00:00
meet.jitsi:
2025-07-25 21:17:58 +01:00
playwright:
2022-10-05 22:47:24 +00:00