From 662e98fa71f98dddb81d33b148cc84a351b9faed Mon Sep 17 00:00:00 2001 From: Nick Rondeau Date: Sun, 3 Mar 2024 03:02:16 -0800 Subject: [PATCH] update to current apps --- Caddyfile | 101 ++++++- README.md | 64 +++-- docker/dashboards/docker-compose.yaml | 117 ++++++++ docker/dev-etc/docker-compose.yaml | 152 +++++++++++ docker/drone/docker-compose.yaml | 47 ++++ docker/ghost/docker-compose.yaml | 37 +++ docker/koillection/docker-compose.yaml | 44 +++ docker/mealie/docker-compose.yaml | 28 ++ .../media-server/docker-compose.yaml | 254 +++++++++++++++--- docker/pi-hole/docker-compose.yaml | 48 ++++ docker/uptime-kuma/docker-compose.yaml | 28 ++ 11 files changed, 853 insertions(+), 67 deletions(-) create mode 100644 docker/dashboards/docker-compose.yaml create mode 100644 docker/dev-etc/docker-compose.yaml create mode 100644 docker/drone/docker-compose.yaml create mode 100644 docker/ghost/docker-compose.yaml create mode 100644 docker/koillection/docker-compose.yaml create mode 100644 docker/mealie/docker-compose.yaml rename docker-compose.yaml => docker/media-server/docker-compose.yaml (61%) create mode 100644 docker/pi-hole/docker-compose.yaml create mode 100644 docker/uptime-kuma/docker-compose.yaml diff --git a/Caddyfile b/Caddyfile index 2b25375..7df869b 100644 --- a/Caddyfile +++ b/Caddyfile @@ -1,5 +1,100 @@ -requests.mydomain.com { +requests.rond-eau.com { handle /* { -reverse_proxy localhost:5055 +reverse_proxy 192.168.1.27:5055 +} +} + +comics.rond-eau.com { +handle /* { +reverse_proxy 192.168.1.27:5000 +} +} + +mealie.rond-eau.com { +handle /* { +reverse_proxy 192.168.1.27:9925 +} +} + +filebrowser.rond-eau.com { +handle /* { +reverse_proxy 192.168.1.27:32772 +} +} + +jellyfin.rond-eau.com { +handle /* { +reverse_proxy 192.168.1.27:8096 +} +} + +audiobooks.rond-eau.com { +handle /* { +reverse_proxy 192.168.1.27:13378 +} +} + +nick.rond-eau.com { +handle /* { +reverse_proxy 192.168.1.27:8088 +} +} + +youtube.rx-nx01.com { +handle /* { +reverse_proxy 192.168.1.27:9999 +} +} + +requests.rx-nx01.com { +handle /* { +reverse_proxy 192.168.1.27:5055 +} +} + +library.rx-nx01.com { +handle /* { +reverse_proxy 192.168.1.27:5000 +} +} + +files.rx-nx01.com { +handle /* { +reverse_proxy 192.168.1.27:32772 +} +} + +jellyfin.rx-nx01.com { +handle /* { +reverse_proxy 192.168.1.27:8096 +} +} + +audiobooks.rx-nx01.com { +handle /* { +reverse_proxy 192.168.1.27:13378 +} +} + +stsh.rx-nx01.com { +handle /* { +reverse_proxy 192.168.1.27:9999 +} +} + +drone.rx-nx01.com { +handle /* { +reverse_proxy 192.168.1.27:8008 +} +} + +gitea.rx-nx01.com { +handle /* { +reverse_proxy 192.168.1.27:3003 { + header_up Host {host} + header_up X-Real-IP {remote_host} + header_up X-Forwarded-For {remote_host} + header_up X-Forwarded-Proto {scheme} + } +} } -} \ No newline at end of file diff --git a/README.md b/README.md index dbd2171..682f339 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,56 @@ -# docker-media-center -A media center I'm building with Ubuntu and Docker. +# home-server +All self-hosted applications currently in use. Stack Includes: + +- Audiobookshelf +- Bazarr +- Caddy +- Calibre +- Calibre-web +- Cloudflared-Tunnel +- Code-Server +- Dozzle +- DroneCI +- Filebrowser +- Fileflows +- Ghost +- Gitea +- Grafana +- Homarr +- Homebox +- Homepage +- Jellyfin +- Jellystat +- Koillection +- Kavita +- Librespeed +- Lidarr +- Mealie +- meTube +- Navidrone +- Netdata +- Node-Exporter +- NzbHydra2 +- Overseerr +- Pi-Hole - Plex +- Portainer +- Prometheus - Prowlarr -- Sabnzbd +- Pyload +- QdirStat - Radarr -- Sonarr -- Prometheus -- Grafana -- Bazarr - Requestrr -- Overseerr -- Dashy -- Pihole -- Kavita -- Navidrome +- Sabnzbd +- Sonarr +- Stash - Tatulli -- Librespeed -- Dozzle -- MeTube -- pyLoad -- Caddy -- Gitea -- Code-server +- Tdarr - Transmission +- Uptime-Kuma +- Vaultwarden -More as I add them. move prometheus.yaml > home/user/Configs/Prometheus \ move Caddyfile to home/user/Configs/Caddy \ No newline at end of file diff --git a/docker/dashboards/docker-compose.yaml b/docker/dashboards/docker-compose.yaml new file mode 100644 index 0000000..f8f8c0f --- /dev/null +++ b/docker/dashboards/docker-compose.yaml @@ -0,0 +1,117 @@ +--- + +services: + + prometheus: + image: prom/prometheus + container_name: prometheus + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + - UMASK_SET=022 + volumes: + - /home/ronnic/Configs/Prometheus/prometheus.yml:/etc/prometheus/prometheus.yml + ports: + - 9292:9090 + restart: unless-stopped + + node-exporter: + image: quay.io/prometheus/node-exporter:latest + container_name: node-exporter + network_mode: host + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + - UMASK_SET=022 + volumes: + - /:/host:ro,rslave + ports: + - 9100:9090 + restart: unless-stopped + + grafana: + image: grafana/grafana:latest + container_name: grafana + security_opt: + - no-new-privileges:true + restart: unless-stopped + networks: + - default + ports: + - 3000:3000 + user: "$UID:$GID" + environment: + GF_INSTALL_PLUGINS: "grafana-clock-panel,grafana-simple-json-datasource,grafana-worldmap-panel,grafana-piechart-panel" + GF_AUTH_DISABLE_LOGIN_FORM: "true" + GF_AUTH_ANONYMOUS_ENABLED: "true" + GF_AUTH_ANONYMOUS_ORG_ROLE: "Admin" + volumes: + - /home/ronnic/Configs/grafana/grafana_storage:/var/lib/grafana + + + tautulli: + image: ghcr.io/tautulli/tautulli + container_name: tautulli + restart: unless-stopped + volumes: + - /home/ronnic/Configs/Tatulli:/config + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + ports: + - 8181:8181 + + homarr: + image: ghcr.io/ajnart/homarr:latest + container_name: homarr + restart: unless-stopped + volumes: + - /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration + - /home/ronnic/Configs/homarr/configs:/app/data/configs + - /home/ronnic/Configs/homarr/icons:/app/public/icons + - /home/ronnic/Configs/homarr/data:/data + ports: + - 7575:7575 + + homepage: + image: ghcr.io/benphelps/homepage:latest + container_name: homepage + restart: unless-stopped + ports: + - 3009:3000 + volumes: + - /home/ronnic/Configs/Homepage:/app/config + - /var/run/docker.sock:/var/run/docker.sock:ro + + jellystat-db: + image: postgres:15.2 + restart: unless-stopped + environment: + POSTGRES_DB: 'jfstat' + POSTGRES_USER: postgres + POSTGRES_PASSWORD: mypassword + volumes: + - /home/ronnic/Configs/jellyfin/postgres-data:/var/lib/postgresql/data + + jellystat: + image: cyfershepard/jellystat:latest + restart: unless-stopped + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: mypassword + POSTGRES_IP: jellystat-db + POSTGRES_PORT: 5432 + JWT_SECRET: 'my-secret-jwt-key' + ports: + - "3013:3000" + volumes: + - /home/ronnic/Configs/jellyfin/backup-data:/app/backend/backup-data + + depends_on: + - jellystat-db +networks: + default: + diff --git a/docker/dev-etc/docker-compose.yaml b/docker/dev-etc/docker-compose.yaml new file mode 100644 index 0000000..5582f34 --- /dev/null +++ b/docker/dev-etc/docker-compose.yaml @@ -0,0 +1,152 @@ + +networks: + gitea: + external: false + gitlab: + name: gitlab-network + +services: + server: + image: gitea/gitea:1.19.0 + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=mysql + - GITEA__database__HOST=gdb:3306 + - GITEA__database__NAME=gitea + - GITEA__database__USER=gitea + - GITEA__database__PASSWD=gitea + restart: always + networks: + - gitea + volumes: + - /home/ronnic/Configs/gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "3003:3000" + - "222:22" + depends_on: + - gdb + + gdb: + image: mysql:8 + restart: always + environment: + - MYSQL_ROOT_PASSWORD=gitea + - MYSQL_USER=gitea + - MYSQL_PASSWORD=gitea + - MYSQL_DATABASE=gitea + networks: + - gitea + volumes: + - /home/ronnic/Configs/gitea/mysql:/var/lib/mysql + + code-server: + image: lscr.io/linuxserver/code-server:latest + container_name: code-server + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + - PASSWORD=${PASSWORD} + - SUDO_PASSWORD=${SUDO_PASSWORD} + volumes: + - /home/ronnic/Configs/Code-server:/config + ports: + - 8443:8443 + restart: unless-stopped + + + + qdirstat: + image: lscr.io/linuxserver/qdirstat:latest + container_name: qdirstat + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + volumes: + - /home/ronnic/Configs/Qdirstat/config:/config + - /media:/data + ports: + - 3006:3000 + - 3007:3001 + restart: unless-stopped + + nzbhydra2: + image: lscr.io/linuxserver/nzbhydra2:latest + container_name: nzbhydra2 + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + volumes: + - /home/ronnic/Configs/Nzbhydra/data:/config + - /media/easystore/Downloads:/downloads + ports: + - 5076:5076 + restart: unless-stopped + + fileflows: + image: revenz/fileflows + container_name: fileflows + runtime: nvidia + environment: + - TZ=America/Los_Angeles + - TempPathHost=/temp + - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility + - NVIDIA_VISIBLE_DEVICES=all + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - /home/ronnic/Configs/fileflows/data:/app/Data + - /home/ronnic/Configs/fileflows/logs:/app/Logs + - /home/ronnic/Configs/fileflows/temp:/temp + ports: + - 5005:5000 + restart: unless-stopped + + dozzle: + container_name: dozzle + image: amir20/dozzle:latest + restart: unless-stopped + volumes: + - /var/run/docker.sock:/var/run/docker.sock + ports: + - 9988:8080 + + vaultwarden: + container_name: vaultwarden + image: vaultwarden/server:latest + restart: unless-stopped + volumes: + - /home/ronnic/Configs/vaultwarden/vw-data/:/data/ + ports: + - 90:80 + + tunnel: + container_name: cloudflared-vaultwarden + image: cloudflare/cloudflared + restart: unless-stopped + command: tunnel run + environment: + - TUNNEL_TOKEN=eyJhIjoiYmJjMWNhMTk5YzM3YTJkMzQ2MmE4YjY1NmFiZWI1NGQiLCJ0IjoiZTRhNTAyNDktMzBkZS00NmEzLTkxZmQtNzI3NjY2NzM0OWM2IiwicyI6Ik1qUmhZVFkxWmpRdE1XVTNNaTAwTTJSaUxXRXpOV010WVdFNU5tTXlPRGRrTldZeSJ9 + + homebox: + image: ghcr.io/hay-kot/homebox:latest +# image: ghcr.io/hay-kot/homebox:latest-rootless + container_name: homebox + restart: always + environment: + - HBOX_LOG_LEVEL=info + - HBOX_LOG_FORMAT=text + - HBOX_WEB_MAX_UPLOAD_SIZE=10 + volumes: + - /home/ronnic/Configs/homebox/homebox-data:/data/ + ports: + - 3100:7745 + +volumes: + homebox-data: + driver: local diff --git a/docker/drone/docker-compose.yaml b/docker/drone/docker-compose.yaml new file mode 100644 index 0000000..d0e9c38 --- /dev/null +++ b/docker/drone/docker-compose.yaml @@ -0,0 +1,47 @@ +version: '3.4' + +services: + drone: + ports: + - '8008:80' + - '444:443' + restart: always + container_name: drone + volumes: + - /home/ronnic/Configs/drone/drone-storage:/data + environment: + - DRONE_GITEA_CLIENT_ID=abc9951e-c64e-4798-8162-9f71f5a2a259 + - DRONE_GITEA_CLIENT_SECRET=gto_hbdoigb5ewvtm2hkckpnciunzoenlhb3cesfonjsqmffuxs2yjla + - DRONE_GITEA_SERVER=https://gitea.rx-nx01.com + - DRONE_RPC_SECRET=wb5556g7zviu6cmeflqd27lqqlrtjfogj2iflpc5r2zj2np4d5aa + - DRONE_SERVER_HOST=https://drone.rx-nx01.com + - DRONE_SERVER_PROTO=https + - DRONE_USER_CREATE=username:ronnic,admin:true + image: drone/drone:2 + networks: + - drone + + drone-runner: + image: drone/drone-runner-docker:1 + restart: always + container_name: drone-runner + depends_on: + - drone + volumes: + - /var/run/docker.sock:/var/run/docker.sock + environment: + - DRONE_RPC_HOST=drone + - DRONE_RPC_PROTO=http + - DRONE_RPC_SECRET=wb5556g7zviu6cmeflqd27lqqlrtjfogj2iflpc5r2zj2np4d5aa + - DRONE_RUNNER_CAPACITY=2 + - DRONE_RUNNER_NAME=my-drone-runner + networks: + - drone + +networks: + drone: + external: false + +volumes: + drone-storage: + external: false diff --git a/docker/ghost/docker-compose.yaml b/docker/ghost/docker-compose.yaml new file mode 100644 index 0000000..d7b19c5 --- /dev/null +++ b/docker/ghost/docker-compose.yaml @@ -0,0 +1,37 @@ +version: '3.1' + +services: + + ghost: + image: ghost:5-alpine + restart: always + ports: + - 8088:2368 + environment: + database__client: mysql + database__connection__host: db + database__connection__user: root + database__connection__password: ghost33blog + database__connection__database: ghost + url: https://nick.rond-eau.com + volumes: + - ghost:/var/lib/ghost/content + networks: + - ghost + + db: + image: mysql:8.0 + restart: always + environment: + MYSQL_ROOT_PASSWORD: ghost33blog + volumes: + - db:/var/lib/mysql + networks: + - ghost + +volumes: + ghost: + db: + +networks: + ghost: diff --git a/docker/koillection/docker-compose.yaml b/docker/koillection/docker-compose.yaml new file mode 100644 index 0000000..791f497 --- /dev/null +++ b/docker/koillection/docker-compose.yaml @@ -0,0 +1,44 @@ +version: '3.9' +services: + koillection: + image: koillection/koillection + container_name: Koillection + restart: unless-stopped + ports: + - 4460:80 + environment: + - DB_DRIVER=pdo_pgsql + - DB_NAME=koillection + - DB_HOST=db + - DB_PORT=5432 + - DB_USER=koillection + - DB_PASSWORD=koillection + - DB_VERSION=16 + - PHP_TZ=America/Los_Angeles + - HTTPS_ENABLED=0 + - PUID=1000 + - PGID=1000 + depends_on: + - db + volumes: + - /home/ronnic/Configs/koillection/conf:/conf:rw + - /home/ronnic/Configs/koillection/uploads:/uploads:rw + db: + image: postgres:16 + container_name: Koillection-DB + mem_limit: 512m + cpu_shares: 768 + security_opt: + - no-new-privileges:true + healthcheck: + test: ["CMD", "pg_isready", "-q", "-d", "koillection", "-U", "koillectionuser"] + timeout: 45s + interval: 10s + retries: 10 + environment: + - POSTGRES_DB=koillection + - POSTGRES_USER=koillection + - POSTGRES_PASSWORD=koillection + volumes: + - /home/ronnic/Configs/koillection/db:/var/lib/postgresql/data:rw + restart: unless-stopped \ No newline at end of file diff --git a/docker/mealie/docker-compose.yaml b/docker/mealie/docker-compose.yaml new file mode 100644 index 0000000..a1d1dae --- /dev/null +++ b/docker/mealie/docker-compose.yaml @@ -0,0 +1,28 @@ +--- +version: "3.7" +services: + mealie: + image: ghcr.io/mealie-recipes/mealie:latest + container_name: mealie + ports: + - "9925:9000" # + deploy: + resources: + limits: + memory: 1000M # + volumes: + - /home/ronnic/Configs/mealie:/app/data/ + environment: + - ALLOW_SIGNUP=true + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + - WEB_GUNICORN=true + - MAX_WORKERS=4 + - WEB_CONCURRENCY=4 + - BASE_URL=https://mealie.rond-eau.com + restart: always + +volumes: + mealie-data: + driver: local \ No newline at end of file diff --git a/docker-compose.yaml b/docker/media-server/docker-compose.yaml similarity index 61% rename from docker-compose.yaml rename to docker/media-server/docker-compose.yaml index 215d4dc..139a56f 100644 --- a/docker-compose.yaml +++ b/docker/media-server/docker-compose.yaml @@ -31,6 +31,7 @@ services: - /media/easystorev/TV5:/tv5 - /media/easystorev/KidsTV2:/kidstv2 - /media/easystore/Movies:/Movies1 + - /media/easystorev/movies4:/movies4 ports: - 8096:8096 restart: unless-stopped @@ -80,6 +81,7 @@ services: - /media/easystorev/TV5:/tv5 - /media/easystorev/KidsTV2:/kidstv2 - /media/easystore/Movies:/Movies1 + - /media/easystorev/movies4:/movies4 restart: unless-stopped prowlarr: @@ -114,6 +116,7 @@ services: - /media/easystore4/kidsmovies:/kidsmovies - /media/easystorev/KidsMovies2:/kidsmovies2 - /media/easystore/Movies:/Movies1 + - /media/easystorev/movies4:/movies4 ports: - 7878:7878 restart: unless-stopped @@ -140,27 +143,27 @@ services: - 8989:8989 restart: unless-stopped - sonarr-anime: - image: linuxserver/sonarr - container_name: sonarr-anime - environment: - - PUID=1000 - - PGID=1000 - - TZ=America/Los_Angeles - - UMASK_SET=022 - volumes: - - /home/ronnic/Configs/Sonarr-anime:/config - - /media/easystore/Downloads:/Downloads - - /media/easystorev/Download:/Download - - /media/mypassport/Anime-Series:/animeseries - - /media/elements/anime-series2:/animeseries2 - - /media/easystorev/anime:/anime - ports: - - 9191:8989 - restart: unless-stopped +# sonarr-anime: +# image: linuxserver/sonarr +# container_name: sonarr-anime +# environment: +# - PUID=1000 +# - PGID=1000 +# - TZ=America/Los_Angeles +# - UMASK_SET=022 +# volumes: +# - /home/ronnic/Configs/Sonarr-anime:/config +# - /media/easystore/Downloads:/Downloads +# - /media/easystorev/Download:/Download +# - /media/mypassport/Anime-Series:/animeseries +# - /media/elements/anime-series2:/animeseries2 +# - /media/easystorev/anime:/anime +# ports: +# - 9191:8989 +# restart: unless-stopped requestrr: - image: lscr.io/linuxserver/requestrr + image: thomst08/requestrr container_name: requestrr environment: - PUID=1000 @@ -207,6 +210,7 @@ services: - /media/easystorev/TV5:/tv5 - /media/easystorev/Download:/Download - /media/easystore/Movies:/Movies1 + - /media/easystorev/movies4:/movies4 ports: - 6767:6767 restart: unless-stopped @@ -229,19 +233,19 @@ services: restart: unless-stopped kavita: - image: jvmilazz0/kavita:latest # Change latest to nightly for latest develop builds (can't go back to stable) + image: jvmilazz0/kavita:latest container_name: kavita volumes: - - /media/easystorev/reading/manga:/manga # Manga is just an example you can have the name you want. See the following - - /media/easystorev/reading/comics:/comics # Use as many as you want - - /media/easystorev/reading/magazines:/magazines # + - /media/easystorev/reading/manga:/manga + - /media/easystorev/reading/comics:/comics + - /media/easystorev/reading/magazines:/magazines - /media/easystorev/reading/tabletop:/tabletop - /media/easystorev/reading/Guides:/guides - - /home/ronnic/Configs/kavita:/kavita/config # Change './data if you want to have the config files in a different place. # /kavita/config must not be changed + - /home/ronnic/Configs/kavita:/kavita/config environment: - TZ=America/Los_Angeles ports: - - 5000:5000 # Change the public port (the first 5000) if you have conflicts with other services + - 5000:5000 restart: unless-stopped navidrome: @@ -259,9 +263,11 @@ services: - ND_PORT=4533 - ND_TRANSCODINGCACHESIZE=100MB - ND_SESSIONTIMEOUT=24h + - ND_UILOGINBACKGROUNDURL=https://i.redd.it/q9yk6v4n5fic1.jpeg volumes: - /home/ronnic/Configs/Navidrome/data:/data - - /media/easystore3/audio:/music:ro + - /media/easystore3/audio:/music + stash: image: stashapp/stash:latest container_name: stash @@ -311,20 +317,20 @@ services: - /media/easystore/Downloads/youtube:/downloads - #pyload-ng: - # image: lscr.io/linuxserver/pyload-ng:latest - # container_name: pyload-ng - # environment: - # - PUID=1000 - # - PGID=1000 - # - TZ=America/Los_Angeles - # volumes: - # - /home/ronnic/Configs/Pyload:/config - # - /media/easystore/Downloads/pyload:/downloads - # ports: - # - 8001:8000 - # - 9666:9666 #optional - # restart: unless-stopped + pyload-ng: + image: lscr.io/linuxserver/pyload-ng:latest + container_name: pyload-ng + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + volumes: + - /home/ronnic/Configs/Pyload:/config + - /media/easystore/Downloads/pyload:/downloads + ports: + - 8001:8000 +# - 9666:9666 #optional + restart: unless-stopped caddy: container_name: caddy @@ -338,7 +344,7 @@ services: # - $PWD/site:/srv - /home/ronnic/Configs/Caddy/data:/data - /home/ronnic/Configs/Caddy/config:/config - + transmission: image: lscr.io/linuxserver/transmission:latest @@ -362,7 +368,6 @@ services: - 51415:51413 - 51413:51413/udp restart: unless-stopped - lidarr: image: lscr.io/linuxserver/lidarr:latest @@ -373,9 +378,170 @@ services: - TZ=America/Los_Angeles volumes: - /home/ronnic/Configs/Lidarr:/config - - /media/easystore3/audio:/music #optional - - /media/easystore/Downloads:/downloads #optional + - /media/easystore3/audio:/music + - /media/easystore/Downloads:/downloads ports: - 8686:8686 restart: unless-stopped + + tdarr: + container_name: tdarr + image: ghcr.io/haveagitgat/tdarr:latest + restart: unless-stopped + network_mode: bridge + ports: + - 8265:8265 # webUI port + - 8266:8266 # server port + environment: + - TZ=America/Los_Angeles + - PUID=1000 + - PGID=1000 + - UMASK_SET=002 + - serverIP=192.168.1.27 + - serverPort=8266 + - webUIPort=8265 + - internalNode=true + - inContainer=true + - ffmpegVersion=6 + - nodeName=MyInternalNode + - NVIDIA_DRIVER_CAPABILITIES=all + - NVIDIA_VISIBLE_DEVICES=all + volumes: + - /docker/tdarr/server:/app/server + - /docker/tdarr/configs:/app/configs + - /docker/tdarr/logs:/app/logs + - /media/easystore/TV:/tv + - /media/easystore2/Movies:/movies + - /media/mypassport/Anime-Movies:/animemovies + - /media/mypassport/Anime-Series:/animeseries + - /media/elements/anime-series2:/animeseries2 + - /media/elements/anime-movies2:/animemovies2 + - /media/easystorev/anime:/anime + - /media/easystorev/animemovies/:/animemovies3 + - /media/elements/TV2:/tv2 + - /media/elements/Movies2:/movies2 + - /media/easystore3/Movies3:/movies3 + - /media/easystore3/TV3:/tv3 + - /media/easystore4/kidsmovies:/kidsmovies + - /media/easystorev/KidsMovies2:/kidsmovies2 + - /media/easystore4/kidstv:/kidstv + - /media/easystore4/tv18:/tv18 + - /media/easystorev/TV5:/tv5 + - /media/easystorev/KidsTV2:/kidstv2 + - /media/easystore/Movies:/Movies1 + - /media/easystorev/movies4:/movies4 + - /transcode_cache:/temp + + devices: + - /dev/dri:/dev/dri + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: all + capabilities: [gpu] + +# node example + tdarr-node: + container_name: tdarr-node + image: ghcr.io/haveagitgat/tdarr_node:latest + restart: unless-stopped + network_mode: service:tdarr + environment: + - TZ=America/Los_Angeles + - PUID=1000 + - PGID=1000 + - UMASK_SET=002 + - nodeName=MyExternalNode + - serverIP=192.168.1.27 + - serverPort=8266 + - inContainer=true + - ffmpegVersion=6 + - NVIDIA_DRIVER_CAPABILITIES=all + - NVIDIA_VISIBLE_DEVICES=all + + volumes: + - /home/ronnic/Configs/tdarr/configs:/app/configs + - /home/ronnic/Configs/tdarr/logs:/app/logs + - /media/easystore/TV:/tv + - /media/easystore2/Movies:/movies + - /media/mypassport/Anime-Movies:/animemovies + - /media/mypassport/Anime-Series:/animeseries + - /media/elements/anime-series2:/animeseries2 + - /media/elements/anime-movies2:/animemovies2 + - /media/easystorev/anime:/anime + - /media/easystorev/animemovies/:/animemovies3 + - /media/elements/TV2:/tv2 + - /media/elements/Movies2:/movies2 + - /media/easystore3/Movies3:/movies3 + - /media/easystore3/TV3:/tv3 + - /media/easystore4/kidsmovies:/kidsmovies + - /media/easystorev/KidsMovies2:/kidsmovies2 + - /media/easystore4/kidstv:/kidstv + - /media/easystore4/tv18:/tv18 + - /media/easystorev/TV5:/tv5 + - /media/easystorev/KidsTV2:/kidstv2 + - /media/easystore/Movies:/Movies1 + - /media/easystorev/movies4:/movies4 + - /home/ronnic/Configs/tdarr/transcode_cache:/temp + + devices: + - /dev/dri:/dev/dri + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: all + capabilities: [gpu] + + audiobookshelf: + container_name: audiobookshelf + image: ghcr.io/advplyr/audiobookshelf:latest + restart: unless-stopped + ports: + - 13378:80 + volumes: + - /media/easystorev/audio/audiobooks:/audiobooks + - /media/easystorev/audio/podcasts:/podcasts + - /home/ronnic/Configs/audiobookshelf/config:/config + - /home/ronnic/Configs/audiobookshelf/metadata:/metadata + + calibre-web: + image: linuxserver/calibre-web:0.6.21 + container_name: calibre-web + restart: unless-stopped + environment: + - TZ=America/Los_Angeles + - PUID=1000 + - PGID=1000 + - DOCKER_MODS=linuxserver/calibre-web:calibre + volumes: + - /home/ronnic/Configs/calibre-web/config:/config + - /media/easystorev/reading/Books:/books + - /media/easystorev/reading/Calibre-Library:/calibre-library + ports: + - 8083:8083/tcp + + calibre: + image: lscr.io/linuxserver/calibre:latest + container_name: calibre + security_opt: + - seccomp:unconfined #optional + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + - PASSWORD= #optional + - CLI_ARGS= #optional + volumes: + - /home/ronnic/Configs/calibre/data:/config + - /media/easystorev/reading/Calibre-Library:/calibre-library + ports: + - 9080:8080 + - 9181:8181 + - 9081:8081 + restart: unless-stopped + diff --git a/docker/pi-hole/docker-compose.yaml b/docker/pi-hole/docker-compose.yaml new file mode 100644 index 0000000..5879ced --- /dev/null +++ b/docker/pi-hole/docker-compose.yaml @@ -0,0 +1,48 @@ +version: "3" + +# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/ +services: + pihole: + container_name: pihole + image: pihole/pihole:latest + # For DHCP it is recommended to remove these ports and instead add: network_mode: "host" + ports: + - "53:53/tcp" + - "53:53/udp" + - "67:67/udp" # Only required if you are using Pi-hole as your DHCP server + - "1080:80/tcp" + environment: + TZ: 'America/Los_Angeles' + WEBPASSWORD: '${SECUREPASSWORD}' + + # Volumes store your data between container upgrades + volumes: + - './etc-pihole:/etc/pihole' + - './etc-dnsmasq.d:/etc/dnsmasq.d' + # https://github.com/pi-hole/docker-pi-hole#note-on-capabilities + cap_add: + - NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed + restart: unless-stopped + + librespeed: + image: lscr.io/linuxserver/librespeed:latest + container_name: librespeed + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + - PASSWORD=${SECUREPASSWORD} + - CUSTOM_RESULTS=false #optional + - DB_TYPE=sqlite #optional + - DB_NAME=DB_NAME #optional + - DB_HOSTNAME=DB_HOSTNAME #optional + - DB_USERNAME=DB_USERNAME #optional + - DB_PASSWORD=DB_PASSWORD #optional + - DB_PORT=DB_PORT #optional + volumes: + - /home/ronnic/Configs/Librespeed/config:/config + ports: + - 1082:80 + restart: unless-stopped + + \ No newline at end of file diff --git a/docker/uptime-kuma/docker-compose.yaml b/docker/uptime-kuma/docker-compose.yaml new file mode 100644 index 0000000..af102dc --- /dev/null +++ b/docker/uptime-kuma/docker-compose.yaml @@ -0,0 +1,28 @@ +# Simple docker-compose.yml +# You can change your port or volume location +version: "2.1" +services: + uptime-kuma: + image: louislam/uptime-kuma:1 + container_name: uptime-kuma + volumes: + - /portainer/Files/AppData/Config/uptime-kuma-data:/app/data + - /var/run/docker.sock:/var/run/docker.sock + ports: + - 3001:3001 # : + restart: always + + netdata: + image: netdata/netdata + container_name: netdata + ports: + - 19999:19999 + restart: unless-stopped + cap_add: + - SYS_PTRACE + security_opt: + - apparmor:unconfined + volumes: + - /proc:/host/proc:ro + - /sys:/host/sys:ro + - /var/run/docker.sock:/var/run/docker.sock:ro \ No newline at end of file