version: '3' services: authelia: container_name: authelia hostname: authelia image: authelia/authelia environment: - TZ=America/Chicago ports: - 9091:9091 restart: always volumes: - ./appdata/authelia/config:/config bitwarden: container_name: bitwarden hostname: 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: - ./appdata/vaultwarden:/data - /etc/localtime:/etc/localtime:ro collabora: container_name: collabora hostname: collabora image: collabora/code environment: domain: ${NEXTCLOUD_DOMAIN} username: ${LO_ONLINE_USERNAME} password: ${LO_ONLINE_PASSWORD} cap_add: - MKNOD ports: - "9980:9980" restart: always volumes: - ./appdata/collabora/code:/etc/loolwsd freshrss: container_name: freshrss hostname: freshrss image: freshrss/freshrss:latest environment: - PUID=$PUID - PGID=$PGID - CRON_MIN=*/20 - TZ=$TZ depends_on: - freshrss-db ports: - 8088:80/tcp restart: always volumes: - ./appdata/freshrss/data:/var/www/FreshRSS/data - ./appdata/freshrss/extensions:/var/www/FreshRSS/extensions - /etc/localtime:/etc/localtime:ro freshrss-db: container_name: freshrss-db hostname: freshrss-db image: postgres:12-alpine environment: - PUID=$PUID - PGID=$PGID - POSTGRES_USER=freshrss - POSTGRES_PASSWORD=freshrss - POSTGRES_DB=freshrss restart: always volumes: - ./appdata/freshrss/db/data:/var/lib/postgresql/data - /etc/localtime:/etc/localtime:ro gluetun: container_name: gluetun image: qmcgaw/gluetun environment: - VPN_SERVICE_PROVIDER=mullvad - VPN_TYPE=wireguard - WIREGUARD_PRIVATE_KEY=aOlTmJ/KpTi0qZeed3rXNcRPPTIw0InAvf1gMV4EtXo= - WIREGUARD_ADDRESSES=10.66.182.60/32 - HTTPPROXY=on - SERVER_CITIES=New York NY - TZ=$TZ cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun ports: - 8888:8888/tcp # HTTP proxy - 8388:8388/tcp # Shadowsocks - 8388:8388/udp # Shadowsocks - 8181:8080/tcp # SABnzbd - 8191:8090/tcp # SABnzbd - 8282:8282/tcp # qBittorrent - 60395:6881/tcp # qBittorrent - 60395:6881/udp # qBittorrent - 58483:58483/tcp # qBittorrent restart: always volumes: - ./appdata/gluetun:/gluetun jackett: container_name: jackett hostname: jackett image: binhex/arch-jackett:latest environment: - PGID=$PGID - PUID=$PUID - UMASK=$UMASK ports: - 9117:9117/tcp restart: always volumes: - ./appdata/jackett:/config - ./appdata/jackett/data:/data - /mnt/data/downloads:/downloads - /etc/localtime:/etc/localtime:ro jdownloader2: container_name: jdownloader2 hostname: jdownloader2 image: jlesage/jdownloader-2:latest environment: - PGID=$PGID - PUID=$PUID - UMASK=$UMASK - TZ=$TZ - KEEP_APP_RUNNING=1 - CLEAN_TMP_DIR=1 - MYJD_USER=akanealw@gmail.com - MYJD_PASSWORD=trUKY4X8wzGiCr75ZmC9 - MYJD_DEVICE_NAME=dockerserver - XDG_DOWNLOAD_DIR=/output ports: - 3129:3129/tcp - 5800:5800/tcp - 5900:5900/tcp restart: always volumes: - ./appdata/jdownloader2:/config - /mnt/data/downloads/jdownloader:/output - /etc/localtime:/etc/localtime:ro kavita: container_name: kavita hostname: kavita image: kizaing/kavita:latest ports: - "5002:5000" restart: always volumes: - /mnt/storage/ComicsAndManga:/comicsandmanga - ./appdata/kavita/config:/kavita/config kutt: container_name: kutt hostname: 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: - /opt/docker/.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 hostname: kutt-redis image: redis:6.0-alpine restart: always volumes: - ./appdata/kutt/redis_data:/data kutt-postgres: container_name: kutt-postgres hostname: kutt-postgres image: postgres:12-alpine environment: - POSTGRES_USER=kutt - POSTGRES_PASSWORD=kutt - POSTGRES_DB=kutt restart: always volumes: - ./appdata/kutt/postgres_data:/var/lib/postgresql/data meshcentral: container_name: meshcentral hostname: meshcentral image: typhonragewind/meshcentral:latest environment: - HOSTNAME=meshcentral.akanealw.com - REVERSE_PROXY=false - IFRAME=true - ALLOW_NEW_ACCOUNTS=false - WEBRTC=true ports: - 9443:443/tcp - 9080:80/tcp restart: always volumes: - ./appdata/meshcentral/data:/opt/meshcentral/meshcentral-data - ./appdata/meshcentral/user_files:/opt/meshcentral/meshcentral-files metube: container_name: metube hostname: metube image: alexta69/metube environment: - STATE_DIR=/config - PUID=$PUID - PGID=$PGID ports: - 8082:8081 restart: always volumes: - /mnt/data/media/videos/youtubedl:/downloads - ./appdata/metube:/config monitorr: container_name: monitorr hostname: monitorr image: monitorr/monitorr:latest environment: - PGID=$PGID - PUID=$PUID - TZ=$TZ ports: - 8084:80/tcp restart: always volumes: - /mnt/data:/HD:ro - ./appdata/monitorr/app:/app - ./appdata/monitorr/config:/config - /etc/localtime:/etc/localtime:ro mstream: image: lscr.io/linuxserver/mstream:latest container_name: mstream environment: - PUID=$PUID - PGID=$PGID - TZ=$TZ ports: - 3001:3000 restart: always volumes: - ./appdata/mstream:/config - /mnt/storage/music:/music nginxproxymanager: container_name: nginxproxymanager hostname: nginxproxymanager image: jc21/nginx-proxy-manager:latest environment: - X_FRAME_OPTIONS=sameorigin - DB_SQLITE_FILE=/data/database.sqlite ports: - 8443:443/tcp - 8080:80/tcp - 8081:81/tcp restart: always volumes: - ./appdata/nginxproxymanager/data:/data - ./appdata/nginxproxymanager/letsencrypt:/etc/letsencrypt - /etc/localtime:/etc/localtime:ro nzbhydra2: container_name: nzbhydra2 hostname: nzbhydra2 image: binhex/arch-nzbhydra2:latest environment: - PGID=$PGID - PUID=$PUID - UMASK=$UMASK ports: - 5076:5076/tcp restart: always volumes: - ./appdata/nzbhydra2/data:/data - ./appdata/nzbhydra2:/config - /mnt/data/downloads:/downloads - /etc/localtime:/etc/localtime:ro openvpn: container_name: openvpn hostname: openvpn image: kylemanna/openvpn cap_add: - NET_ADMIN ports: - "1194:1194/tcp" restart: always volumes: - ./appdata/openvpn/conf:/etc/openvpn openssh-server: container_name: openssh-server hostname: openssh-server image: lscr.io/linuxserver/openssh-server:latest environment: - PUID=$PUID - PGID=$PGID - TZ=$TZ - PUBLIC_KEY_FILE=/config/aknlw.com.pub - USER_NAME=akanealw ports: - 2222:2222 restart: always volumes: - ./appdata/openssh-server/config:/config organizr: container_name: organizr hostname: organizr image: organizr/organizr:latest environment: - PGID=$PGID - PUID=$PUID - FPM=false ports: - 8085:80/tcp restart: always volumes: - ./appdata/organizr/config:/config - /etc/localtime:/etc/localtime:ro overseerr: container_name: overseerr hostname: overseerr image: sctx/overseerr:latest environment: - LOG_LEVEL=info - TZ=$TZ ports: - 5055:5055 restart: always volumes: - ./appdata/overseerr/config:/app/config - /etc/localtime:/etc/localtime:ro owncloud: hostname: owncloud image: owncloud/server:${OWNCLOUD_VERSION} container_name: owncloud restart: always ports: - 8092:8080 depends_on: - owncloud-mariadb - owncloud-redis 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 volumes: - ./appdata/owncloud/files:/mnt/data owncloud-mariadb: hostname: owncloud-mariadb image: mariadb:10.6 container_name: owncloud-mariadb restart: always 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 volumes: - ./appdata/owncloud-mariadb/mysql:/var/lib/mysql owncloud-redis: hostname: owncloud-redis image: redis:6 container_name: owncloud-redis restart: always command: ["--databases", "1"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 volumes: - ./appdata/owncloud-redis:/data prowlarr: container_name: prowlarr hostname: prowlarr image: ghcr.io/linuxserver/prowlarr:develop environment: - PUID=$PUID - PGID=$PGID - TZ=$TZ ports: - 9696:9696 restart: always volumes: - ./appdata/prowlarr/config:/config qbittorrent: container_name: qbittorrent image: lscr.io/linuxserver/qbittorrent:latest environment: - PUID=$PUID - PGID=$PGID - TZ=$TZ - WEBUI_PORT=8282 network_mode: "service:gluetun" restart: unless-stopped volumes: - ./appdata/qbittorrent/config:/config - /mnt/data:/data - /mnt/data/downloads/torrents:/torrents radarr: container_name: radarr hostname: radarr image: lscr.io/linuxserver/radarr:latest environment: - PUID=$PUID - PGID=$PGID - TZ=$TZ ports: - 7878:7878 restart: always volumes: - ./appdata/radarr:/config - /mnt/data:/data sabnzbd: container_name: sabnzbd image: lscr.io/linuxserver/sabnzbd:latest environment: - PUID=$PUID - PGID=$PGID - TZ=$TZ network_mode: "service:gluetun" restart: unless-stopped volumes: - ./appdata/sabnzbd:/config - /mnt/data:/data - /mnt/data/downloads/nzbs:/nzbs sonarr: container_name: sonarr hostname: sonarr image: lscr.io/linuxserver/sonarr:latest environment: - PUID=$PUID - PGID=$PGID - TZ=$TZ ports: - 8989:8989 restart: always volumes: - ./appdata/sonarr:/config - /mnt/data:/data networks: default: