Files
proxyserver/docker-compose.yml
2023-07-04 10:37:06 -05:00

264 lines
6.8 KiB
YAML

version: '3'
services:
authelia:
container_name: authelia
image: authelia/authelia
environment:
- TZ=${TZ}
ports:
- 9091:9091
restart: always
volumes:
- ${DOCKERCONFIGS}/authelia/config:/config
bitwarden:
container_name: bitwarden
image: vaultwarden/server:latest
environment:
- TZ=${TZ}
- ADMIN_TOKEN=h/oRssGu83I1E1WQGiSchYMAJnM0JcDXmjeI/A3QgMCasn/IK9zZldH5FXim0rSi
- DATABASE_URL=data/db.sqlite3
- DISABLE_ADMIN_TOKEN=false
- DOMAIN=https://bitwarden.akanealw.com
- ENABLE_DB_WAL=true
- INVITATIONS_ALLOWED=false
- SHOW_PASSWORD_HINT=false
- SIGNUPS_ALLOWED=false
- SIGNUPS_VERIFY=false
- SMTP_PORT=587
- SMTP_SSL=true
ports:
- 8089:80/tcp
restart: always
volumes:
- ${DOCKERCONFIGS}/vaultwarden:/data
- /etc/localtime:/etc/localtime:ro
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs -r aknlw.com:21117
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
depends_on:
- hbbr
restart: always
volumes:
- ${DOCKERCONFIGS}/rustdesk/hbbs:/root
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
ports:
- 21117:21117
- 21119:21119
restart: always
volumes:
- ${DOCKERCONFIGS}/rustdesk/hbbr:/root
goaccess:
container_name: goaccess
image: 'xavierh/goaccess-for-nginxproxymanager:latest'
environment:
- TZ=${TZ}
- SKIP_ARCHIVED_LOGS=False #optional
- DEBUG=False #optional
- BASIC_AUTH=False #optional
- BASIC_AUTH_USERNAME=${ADMIN_USERNAME} #optional
- BASIC_AUTH_PASSWORD=${ADMIN_PASSWORD} #optional
- EXCLUDE_IPS=127.0.0.1 #optional - comma delimited
- LOG_TYPE=NPM #optional - more information below
ports:
- 7880:7880
restart: always
volumes:
- ${DOCKERCONFIGS}/nginxproxymanager/data/logs:/opt/log
kutt:
container_name: kutt
image: kutt/kutt:latest
environment:
DB_HOST: kutt-postgres
DB_NAME: kutt
DB_USER: kutt
DB_PASSWORD: kutt
REDIS_HOST: kutt-redis
env_file:
- .env
command: ["./wait-for-it.sh", "kutt-postgres:5432", "--", "npm", "start"]
depends_on:
- kutt-postgres
- kutt-redis
ports:
- 3000:3000/tcp
restart: always
kutt-redis:
container_name: kutt-redis
image: redis:6.0-alpine
restart: always
volumes:
- ${DOCKERCONFIGS}/kutt/redis_data:/data
kutt-postgres:
container_name: kutt-postgres
image: postgres:12-alpine
environment:
- POSTGRES_USER=kutt
- POSTGRES_PASSWORD=kutt
- POSTGRES_DB=kutt
restart: always
volumes:
- ${DOCKERCONFIGS}/kutt/postgres_data:/var/lib/postgresql/data
nginxproxymanager:
container_name: nginxproxymanager
image: jc21/nginx-proxy-manager:2.9.22
environment:
- X_FRAME_OPTIONS=sameorigin
- DB_SQLITE_FILE=/data/database.sqlite
ports:
- 443:443/tcp
- 80:80/tcp
- 81:81/tcp
restart: always
volumes:
- ${DOCKERCONFIGS}/nginxproxymanager/data:/data
- ${DOCKERCONFIGS}/nginxproxymanager/letsencrypt:/etc/letsencrypt
- ${DOCKERCONFIGS}/nginxproxymanager/snippets:/snippets:ro
- /etc/localtime:/etc/localtime:ro
owncloud:
container_name: owncloud
image: owncloud/server:${OWNCLOUD_VERSION}
environment:
- OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN}
- OWNCLOUD_TRUSTED_DOMAINS=${OWNCLOUD_TRUSTED_DOMAINS}
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=owncloud
- OWNCLOUD_DB_HOST=owncloud-mariadb
- OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME}
- OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD}
- OWNCLOUD_MYSQL_UTF8MB4=true
- OWNCLOUD_REDIS_ENABLED=true
- OWNCLOUD_REDIS_HOST=owncloud-redis
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
depends_on:
- owncloud-mariadb
- owncloud-redis
ports:
- 8092:8080
restart: always
volumes:
- ${DOCKERCONFIGS}/owncloud/files:/mnt/data
owncloud-mariadb:
container_name: owncloud-mariadb
image: mariadb:10.6
environment:
- MYSQL_ROOT_PASSWORD=owncloud
- MYSQL_USER=owncloud
- MYSQL_PASSWORD=owncloud
- MYSQL_DATABASE=owncloud
command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"]
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"]
interval: 10s
timeout: 5s
retries: 5
restart: always
volumes:
- ${DOCKERCONFIGS}/owncloud-mariadb/mysql:/var/lib/mysql
owncloud-redis:
image: redis:6
container_name: owncloud-redis
command: ["--databases", "1"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
restart: always
volumes:
- ${DOCKERCONFIGS}/owncloud-redis:/data
pihole:
container_name: pihole
image: cbcrowe/pihole-unbound:latest
hostname: ${HOSTNAME}
domainname: ${DOMAIN_NAME}
environment:
- FTLCONF_LOCAL_IPV4=${FTLCONF_LOCAL_IPV4}
- TZ=${TZ}
- WEBPASSWORD=${WEBPASSWORD}
- WEBTHEME=${WEBTHEME:-default-dark}
- REV_SERVER=${REV_SERVER:-false}
- REV_SERVER_TARGET=${REV_SERVER_TARGET}
- REV_SERVER_DOMAIN=${REV_SERVER_DOMAIN}
- REV_SERVER_CIDR=${REV_SERVER_CIDR}
- PIHOLE_DNS_=127.0.0.1#5335
- DNSSEC="true"
- DNSMASQ_LISTENING=single
ports:
- 53:53/tcp
- 53:53/udp
- 8000:80/tcp
restart: always
volumes:
- ${DOCKERCONFIGS}/pihole/unbound:/etc/pihole:rw
- ${DOCKERCONFIGS}/pihole/dnsmasq-unbound:/etc/dnsmasq.d:rw
syncthing-relay-discovery:
container_name: syncthing
image: t4skforce/syncthing-relay-discovery:latest
environment:
RELAY_OPTS:
DISC_OPTS:
POOLS:
ports:
- 22067:22067
- 22026:22026
restart: always
volumes:
- ${DOCKERCONFIGS}/syncthing:/home/syncthing/certs
wg-easy:
container_name: wg-easy
image: weejewel/wg-easy
environment:
- WG_HOST=${WG_HOST}
- PASSWORD=${WG_PASSWORD}
- WG_DEFAULT_DNS=162.222.10.80, 9.9.9.9
- WG_PORT=51830
- WG_PERSISTENT_KEEPALIVE=25
- WG_DEFAULT_ADDRESS=10.8.0.x
- WG_MTU=1420
- WG_ALLOWED_IPS=10.8.0.0/24
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
ports:
- "51830:51820/udp"
- "51831:51821/tcp"
restart: unless-stopped
volumes:
- ${DOCKERCONFIGS}/wireguard:/etc/wireguard
networks:
default: