--- services: nginx: image: jc21/nginx-proxy-manager:2.12.1 container_name: nginx-proxy-manager ports: - 80:80 - 81:81 - 443:443 volumes: - /docker/appdata/nginx/data:/data - /docker/appdata/nginx/letsencrypt:/etc/letsencrypt restart: unless-stopped fail2ban: image: crazymax/fail2ban:1.1.0 container_name: fail2ban_docker-pi network_mode: "host" cap_add: - NET_ADMIN - NET_RAW volumes: - "/docker/appdata/fail2ban/data:/data" - "/var/log/auth.log:/var/log/auth.log:ro" - "/docker/appdata/nginx/data/logs/:/log/npm/:ro" environment: - TZ=America/New_York - F2B_LOG_TARGET=STDOUT - F2B_LOG_LEVEL=INFO - F2B_DB_PURGE_AGE=1d - SSMTP_HOST=$SSMTP_HOST - SSMTP_PORT=587 - SSMTP_HOSTNAME=$SSMTP_HOSTNAME - SSMTP_USER=$SSMTP_USER - SSMTP_PASSWORD=$SSMTP_PASSWORD - SSMTP_TLS=YES restart: always cf-tunnel: restart: unless-stopped image: cloudflare/cloudflared@sha256:3f25f0d97e284adf7d0fe298c6be29b84750880df2c1fe4f94cfa90dbd3c4cfa command: tunnel --no-autoupdate run --token $CF_TOKEN twingate-famous-alligator: image: twingate/connector@sha256:376f13c489257893f530470ef4727d2b17de5c593eecb5b11be50966c743ec16 container_name: twingate-famous-alligator restart: always environment: - TWINGATE_NETWORK=$TWINGATE_NETWORK - TWINGATE_ACCESS_TOKEN=$TWINGATE_ACCESS_TOKEN - TWINGATE_REFRESH_TOKEN=$TWINGATE_REFRESH_TOKEN - TWINGATE_LABEL_HOSTNAME=${HOSTNAME} - TWINGATE_LABEL_DEPLOYED_BY=docker sysctls: - net.ipv4.ping_group_range=0 2147483647