2020-11-26 22:39:24 +00:00
|
|
|
# Options for building certificates
|
2020-12-22 18:05:10 +00:00
|
|
|
x-certs: &certs
|
|
|
|
|
image: paulczar/omgwtfssl
|
|
|
|
|
restart: "no"
|
|
|
|
|
volumes:
|
|
|
|
|
- /opt/ssl:/certs
|
2020-11-26 22:39:24 +00:00
|
|
|
|
2020-11-21 10:48:08 +00:00
|
|
|
version: "3.4"
|
|
|
|
|
|
|
|
|
|
services:
|
2020-11-26 22:39:24 +00:00
|
|
|
dashboard:
|
|
|
|
|
image: rmountjoy/dashmachine:latest
|
|
|
|
|
volumes:
|
|
|
|
|
- dashboard:/dashmachine/dashmachine/user_data
|
|
|
|
|
restart: always
|
|
|
|
|
networks:
|
|
|
|
|
- nginx
|
|
|
|
|
|
2020-11-21 14:50:27 +00:00
|
|
|
monica:
|
2020-11-21 10:48:08 +00:00
|
|
|
build: ./monica
|
|
|
|
|
image: monica
|
|
|
|
|
env_file: ./monica/.env
|
2020-11-22 23:14:54 +00:00
|
|
|
environment:
|
|
|
|
|
- APP_URL=https://personel.${DOMAIN}
|
|
|
|
|
- DB_PASSWORD=${DB_PASSWORD}
|
|
|
|
|
- DB_USERNAME=${DB_USER}
|
|
|
|
|
- MAIL_FROM_ADDRESS=${MAIL_FROM}
|
|
|
|
|
- MAIL_HOST=${MAIL_HOST}
|
|
|
|
|
- MAIL_PORT=${MAIL_PORT}
|
|
|
|
|
- MAIL_USERNAME=${MAIL_USER}
|
|
|
|
|
- MAIL_PASSWORD=${MAIL_PASSWORD}
|
2020-11-21 10:48:08 +00:00
|
|
|
volumes:
|
2020-11-21 14:50:27 +00:00
|
|
|
- monica-data:/var/www/html/storage
|
2020-11-21 10:48:08 +00:00
|
|
|
- monica-public:/var/www/html/public
|
|
|
|
|
restart: always
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
2020-11-24 21:19:10 +00:00
|
|
|
networks:
|
|
|
|
|
- db
|
|
|
|
|
- nginx
|
2020-11-21 10:48:08 +00:00
|
|
|
|
2020-11-22 23:14:54 +00:00
|
|
|
nextcloud:
|
|
|
|
|
build: ./nextcloud
|
|
|
|
|
image: nextcloud
|
|
|
|
|
restart: always
|
|
|
|
|
volumes:
|
|
|
|
|
- nextcloud:/var/www/html
|
|
|
|
|
environment:
|
|
|
|
|
- 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}
|
|
|
|
|
- MAIL_FROM=${MAIL_FROM}
|
|
|
|
|
- MAIL_HOST=${MAIL_HOST}
|
|
|
|
|
- MAIL_PORT=${MAIL_PORT}
|
|
|
|
|
- MAIL_USER=${MAIL_USER}
|
|
|
|
|
- MAIL_PASSWORD=${MAIL_PASSWORD}
|
|
|
|
|
- NEXTCLOUD_TRUSTED_DOMAINS=tower.${DOMAIN}
|
|
|
|
|
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:
|
2020-12-22 18:05:10 +00:00
|
|
|
- "tower.scarif.space:${LOCAL_IP}"
|
|
|
|
|
- "office.scarif.space:${LOCAL_IP}"
|
2020-12-07 21:55:23 +00:00
|
|
|
|
|
|
|
|
collabora:
|
|
|
|
|
image: collabora/code
|
|
|
|
|
restart: always
|
|
|
|
|
cap_add:
|
|
|
|
|
- MKNOD
|
|
|
|
|
volumes:
|
|
|
|
|
- /etc/timezone:/etc/timezone:ro
|
|
|
|
|
- /etc/localtime:/etc/localtime:ro
|
|
|
|
|
environment:
|
|
|
|
|
- DONT_GEN_SSL_CERT="True"
|
|
|
|
|
- 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:
|
2020-12-22 18:05:10 +00:00
|
|
|
- "tower.scarif.space:${LOCAL_IP}"
|
|
|
|
|
- "office.scarif.space:${LOCAL_IP}"
|
2020-11-22 23:14:54 +00:00
|
|
|
|
2020-12-13 16:37:09 +00:00
|
|
|
pinry:
|
|
|
|
|
image: 'getpinry/pinry'
|
|
|
|
|
volumes:
|
|
|
|
|
- pinry:/data
|
|
|
|
|
- ./pinry/local_settings.py:/data/local_settings.py
|
|
|
|
|
networks:
|
|
|
|
|
- nginx
|
|
|
|
|
- db
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
|
|
|
|
|
2020-11-25 21:33:30 +00:00
|
|
|
gitea:
|
|
|
|
|
image: gitea/gitea:1
|
|
|
|
|
environment:
|
|
|
|
|
- "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}
|
2020-12-05 15:46:40 +00:00
|
|
|
- USER_UID=1200
|
|
|
|
|
- USER_GID=1200
|
|
|
|
|
- DISABLE_REGISTRATION=true
|
2020-11-25 21:33:30 +00:00
|
|
|
restart: always
|
|
|
|
|
volumes:
|
|
|
|
|
- gitea:/data
|
2020-12-05 15:46:40 +00:00
|
|
|
- /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:
|
2020-12-05 15:46:40 +00:00
|
|
|
- "127.0.0.1:2222:22"
|
2020-11-25 21:33:30 +00:00
|
|
|
networks:
|
|
|
|
|
- db
|
|
|
|
|
- nginx
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
|
|
|
|
|
2020-12-22 18:05:10 +00:00
|
|
|
jitsi:
|
|
|
|
|
image: jitsi/web:latest
|
|
|
|
|
restart: always
|
2020-12-07 22:02:06 +00:00
|
|
|
volumes:
|
2020-12-22 18:05:10 +00:00
|
|
|
- /opt/jitsi/web:/config:Z
|
|
|
|
|
- /opt/jitsi/transcripts:/usr/share/jitsi-meet/transcripts:Z
|
|
|
|
|
environment:
|
|
|
|
|
- ENABLE_LETSENCRYPT=false
|
|
|
|
|
- ENABLE_HTTP_REDIRECT=false
|
|
|
|
|
- ENABLE_HSTS=false
|
|
|
|
|
- ENABLE_XMPP_WEBSOCKET=true
|
|
|
|
|
- DISABLE_HTTPS=true
|
|
|
|
|
- PUBLIC_URL=https://comms.${DOMAIN}
|
|
|
|
|
- TZ=UTC
|
|
|
|
|
- ENABLE_AUDIO_PROCESSING=true
|
|
|
|
|
- ENABLE_AUTH=true
|
|
|
|
|
- ENABLE_GUESTS=true
|
|
|
|
|
- ENABLE_LIPSYNC=true
|
|
|
|
|
- ENABLE_PREJOIN_PAGE=true
|
|
|
|
|
- ENABLE_WELCOME_PAGE=true
|
|
|
|
|
- ENABLE_CLOSE_PAGE=true
|
|
|
|
|
- ENABLE_REQUIRE_DISPLAY_NAME=false
|
|
|
|
|
- ENABLE_TALK_WHILE_MUTED=true
|
|
|
|
|
- JICOFO_AUTH_USER=focus
|
|
|
|
|
- DISABLE_AUDIO_LEVELS=false
|
|
|
|
|
- ENABLE_NOISY_MIC_DETECTION=true
|
|
|
|
|
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
|
|
|
|
|
- XMPP_BOSH_URL_BASE=http://xmpp.meet.jitsi:5280
|
|
|
|
|
- XMPP_DOMAIN=meet.jitsi
|
|
|
|
|
- XMPP_GUEST_DOMAIN=guest.meet.jitsi
|
|
|
|
|
- XMPP_MUC_DOMAIN=muc.meet.jitsi
|
|
|
|
|
- XMPP_RECORDER_DOMAIN=recorder.meet.jitsi
|
2020-12-07 22:02:06 +00:00
|
|
|
networks:
|
2020-12-22 18:05:10 +00:00
|
|
|
nginx:
|
|
|
|
|
meet.jitsi:
|
|
|
|
|
|
|
|
|
|
# XMPP server
|
|
|
|
|
prosody:
|
|
|
|
|
image: jitsi/prosody:latest
|
|
|
|
|
restart: always
|
|
|
|
|
expose:
|
|
|
|
|
- '5222'
|
|
|
|
|
- '5347'
|
|
|
|
|
- '5280'
|
|
|
|
|
volumes:
|
|
|
|
|
- /opt/jitsi/prosody/config:/config:Z
|
|
|
|
|
- /opt/jitsi/prosody/prosody-plugins-custom:/prosody-plugins-custom:Z
|
|
|
|
|
environment:
|
|
|
|
|
- AUTH_TYPE=internal
|
|
|
|
|
- ENABLE_AUTH=true
|
|
|
|
|
- ENABLE_GUESTS=true
|
|
|
|
|
- ENABLE_LOBBY=true
|
|
|
|
|
- ENABLE_XMPP_WEBSOCKET=true
|
|
|
|
|
|
|
|
|
|
- XMPP_DOMAIN=meet.jitsi
|
|
|
|
|
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
|
|
|
|
|
- XMPP_GUEST_DOMAIN=guest.meet.jitsi
|
|
|
|
|
- XMPP_MUC_DOMAIN=muc.meet.jitsi
|
|
|
|
|
- XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jitsi
|
|
|
|
|
- XMPP_RECORDER_DOMAIN=recorder.meet.jitsi
|
|
|
|
|
- JICOFO_COMPONENT_SECRET
|
|
|
|
|
- JICOFO_AUTH_USER=focus
|
|
|
|
|
- JICOFO_AUTH_PASSWORD
|
|
|
|
|
- JVB_AUTH_USER=jvb
|
|
|
|
|
- JVB_AUTH_PASSWORD
|
|
|
|
|
- JIGASI_XMPP_PASSWORD
|
|
|
|
|
- JIBRI_XMPP_PASSWORD
|
|
|
|
|
- JIBRI_RECORDER_PASSWORD
|
|
|
|
|
- PUBLIC_URL=https://comms.${DOMAIN}
|
|
|
|
|
- TZ=UTC
|
|
|
|
|
networks:
|
|
|
|
|
meet.jitsi:
|
|
|
|
|
aliases:
|
|
|
|
|
- xmpp.meet.jitsi
|
|
|
|
|
|
|
|
|
|
# Focus component
|
|
|
|
|
jicofo:
|
|
|
|
|
image: jitsi/jicofo:latest
|
|
|
|
|
restart: always
|
|
|
|
|
volumes:
|
|
|
|
|
- /opt/jitsi/jicofo:/config:Z
|
|
|
|
|
environment:
|
|
|
|
|
- AUTH_TYPE=internal
|
|
|
|
|
- ENABLE_AUTH=true
|
|
|
|
|
- XMPP_DOMAIN=meet.jitsi
|
|
|
|
|
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
|
|
|
|
|
- XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jitsi
|
|
|
|
|
- XMPP_MUC_DOMAIN=muc.meet.jitsi
|
|
|
|
|
- XMPP_SERVER=xmpp.meet.jitsi
|
|
|
|
|
- JICOFO_COMPONENT_SECRET
|
|
|
|
|
- JICOFO_AUTH_USER=focus
|
|
|
|
|
- JICOFO_AUTH_PASSWORD
|
|
|
|
|
- JVB_BREWERY_MUC=jvbbrewery
|
|
|
|
|
- JIGASI_BREWERY_MUC=jigasibrewery
|
|
|
|
|
- JIBRI_BREWERY_MUC=jibribrewery
|
|
|
|
|
- JIBRI_PENDING_TIMEOUT=90
|
|
|
|
|
- TZ=UTC
|
|
|
|
|
depends_on:
|
|
|
|
|
- prosody
|
|
|
|
|
networks:
|
|
|
|
|
meet.jitsi:
|
|
|
|
|
|
|
|
|
|
# Video bridge
|
|
|
|
|
jvb:
|
|
|
|
|
image: jitsi/jvb:latest
|
|
|
|
|
restart: always
|
|
|
|
|
ports:
|
|
|
|
|
- '10000:10000/udp'
|
|
|
|
|
- '4443:4443'
|
|
|
|
|
volumes:
|
|
|
|
|
- /opt/jitsi/jvb:/config:Z
|
|
|
|
|
environment:
|
|
|
|
|
- DOCKER_HOST_ADDRESS=${LOCAL_IP}
|
|
|
|
|
- XMPP_AUTH_DOMAIN=meet.jitsi
|
|
|
|
|
- XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jitsi
|
|
|
|
|
- XMPP_SERVER=xmpp.meet.jitsi
|
|
|
|
|
- JVB_AUTH_USER=jvb
|
|
|
|
|
- JVB_AUTH_PASSWORD
|
|
|
|
|
- JVB_BREWERY_MUC=jvbbrewery
|
|
|
|
|
- JVB_PORT=10000
|
|
|
|
|
- JVB_TCP_HARVESTER_DISABLED=true
|
|
|
|
|
- JVB_TCP_PORT=4443
|
|
|
|
|
- JVB_TCP_MAPPED_PORT=4443
|
|
|
|
|
- JVB_STUN_SERVERS=meet-jit-si-turnrelay.jitsi.net:443
|
|
|
|
|
- JVB_ENABLE_APIS=
|
|
|
|
|
- PUBLIC_URL=https://comms.${DOMAIN}
|
|
|
|
|
- TZ=UTC
|
|
|
|
|
depends_on:
|
|
|
|
|
- prosody
|
|
|
|
|
networks:
|
|
|
|
|
meet.jitsi:
|
|
|
|
|
aliases:
|
|
|
|
|
- jvb.meet.jitsi
|
|
|
|
|
|
2020-12-07 22:02:06 +00:00
|
|
|
|
2020-11-21 10:48:08 +00:00
|
|
|
db:
|
|
|
|
|
image: mariadb
|
2020-11-22 23:14:54 +00:00
|
|
|
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
2020-11-21 10:48:08 +00:00
|
|
|
environment:
|
2020-11-22 23:14:54 +00:00
|
|
|
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
|
|
|
|
|
- MYSQL_USER=${DB_USER}
|
|
|
|
|
- MYSQL_PASSWORD=${DB_PASSWORD}
|
2020-11-21 10:48:08 +00:00
|
|
|
volumes:
|
|
|
|
|
- db:/var/lib/mysql
|
2020-11-22 23:14:54 +00:00
|
|
|
- ./db/init:/docker-entrypoint-initdb.d
|
|
|
|
|
restart: always
|
2020-11-24 21:19:10 +00:00
|
|
|
networks:
|
|
|
|
|
- db
|
2020-11-22 23:14:54 +00:00
|
|
|
|
|
|
|
|
redis:
|
|
|
|
|
image: redis:alpine
|
2020-11-21 10:48:08 +00:00
|
|
|
restart: always
|
2020-11-24 21:19:10 +00:00
|
|
|
networks:
|
|
|
|
|
- redis
|
2020-11-21 10:48:08 +00:00
|
|
|
|
|
|
|
|
nginx:
|
|
|
|
|
image: nginx:alpine
|
|
|
|
|
restart: always
|
|
|
|
|
volumes:
|
2020-12-13 23:08:24 +00:00
|
|
|
- /opt/ssl:/etc/nginx/certs:ro
|
2020-11-21 10:48:08 +00:00
|
|
|
- ./nginx.conf:/etc/nginx/nginx.conf
|
2020-11-21 14:50:27 +00:00
|
|
|
- monica-public:/var/www/html/monica/public:ro
|
|
|
|
|
- monica-data:/var/www/html/monica/storage:ro
|
2020-11-22 23:14:54 +00:00
|
|
|
- nextcloud:/var/www/html/nextcloud:ro
|
2020-11-21 10:48:08 +00:00
|
|
|
depends_on:
|
2020-11-26 22:39:24 +00:00
|
|
|
- dashboard
|
2020-11-21 14:50:27 +00:00
|
|
|
- monica
|
2020-11-22 23:14:54 +00:00
|
|
|
- nextcloud
|
2020-11-25 21:33:30 +00:00
|
|
|
- gitea
|
2020-12-07 21:55:23 +00:00
|
|
|
- collabora
|
2020-12-13 16:37:09 +00:00
|
|
|
- pinry
|
2020-11-21 10:48:08 +00:00
|
|
|
ports:
|
|
|
|
|
- 80:80
|
|
|
|
|
- 443:443
|
2020-11-24 21:19:10 +00:00
|
|
|
networks:
|
|
|
|
|
- nginx
|
2020-11-21 10:48:08 +00:00
|
|
|
|
2020-12-13 23:08:24 +00:00
|
|
|
#certs:
|
|
|
|
|
# <<: *certs
|
|
|
|
|
# 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
|
|
|
|
2020-11-21 10:48:08 +00:00
|
|
|
volumes:
|
|
|
|
|
db:
|
2020-12-05 15:46:40 +00:00
|
|
|
gitea:
|
2020-11-21 10:48:08 +00:00
|
|
|
monica-public:
|
2020-11-21 14:50:27 +00:00
|
|
|
monica-data:
|
2020-11-22 23:14:54 +00:00
|
|
|
nextcloud:
|
2020-11-26 22:39:24 +00:00
|
|
|
dashboard:
|
2020-12-13 16:37:09 +00:00
|
|
|
pinry:
|
2020-11-24 21:19:10 +00:00
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
db:
|
|
|
|
|
nginx:
|
|
|
|
|
redis:
|
2020-12-22 18:05:10 +00:00
|
|
|
meet.jitsi:
|