diff --git a/.env b/.env index 980a584..3cdc419 100644 --- a/.env +++ b/.env @@ -33,8 +33,8 @@ MAIL_PASSWORD=bzslssyiffjqgdwm #OWNCLOUD OWNCLOUD_VERSION=10.11 -OWNCLOUD_DOMAIN=192.168.1.32:8092 -OWNCLOUD_TRUSTED_DOMAINS=192.168.1.32,owncloud.akanealw.com +OWNCLOUD_DOMAIN=192.168.1.34:8092 +OWNCLOUD_TRUSTED_DOMAINS=192.168.1.34,owncloud.akanealw.com ADMIN_USERNAME=akanealw ADMIN_PASSWORD=pknFeqRqFc3RA5N6!rDL diff --git a/docker-compose.yml b/docker-compose.yml index 0416c90..8a12aa6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,116 @@ version: '3' services: -# dockerserver-01 + 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 + hostname: 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 + restart: always + volumes: + - ./appdata/gluetun:/gluetun + jackett: container_name: jackett hostname: jackett @@ -44,6 +153,75 @@ services: - /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 @@ -59,6 +237,54 @@ services: - /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 @@ -76,6 +302,49 @@ services: - /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 @@ -90,6 +359,70 @@ services: - ./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 @@ -193,341 +526,5 @@ services: - ./appdata/sonarr:/config - /mnt/data:/data -# dockerserver-02 - 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 - - 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 - - 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 - - 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 - - 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 - -# proxyserver - authelia: - container_name: authelia - hostname: authelia - image: authelia/authelia - environment: - - TZ=America/Chicago - ports: - - 9091:9091 - restart: always - volumes: - - ./appdata/authelia/config:/config - - gluetun: - container_name: gluetun - hostname: 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 - restart: always - volumes: - - ./appdata/gluetun:/gluetun - - 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 - - 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 - networks: default: \ No newline at end of file