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: