commit 7a47c2137bb1df1a4887b73459b968ea0969dbd6 Author: mat ess Date: Sat Nov 12 20:06:04 2022 -0500 Initial yaml configs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..00c1844 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.direnv/ \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..dfd377e --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,44 @@ +STEAL THIS LICENSE + +Copyright 2022 mat ess. All rights reserved. + +--- + +This is not a valid license file, this is simply a note to thieves. + +You can probably get away with stealing this work. + +1. I am unlikely to find out. Who the utter fuck has time to spend all day +scanning the net to find copyright infractions. Hell, you might not even +publish it on the net in the first place. That just sounds boring as fuck. +I have better things to do like touching some fucking grass or hugging cute +people. + +2. Thanks to Late Stage Capitalism™, I am unlikely to have the means for a +lengthy and drawn out court battle, you could easily win that through +attrition. I mean as I write this note I’m effectively homeless and bed +surfing. Literally the last thing I care about right now is someone using +my shit. + +3. You and I both know that since I wrote this, I probably do not give a +flying shit if you create derivatives from my work or not. + +However, you also can’t trust that any of those things are true. + +I could be lying to you. + +We both know it’s probably morally good for you to build off my work, and +redistribute it as far as it can go, humans have been doing this since +before we figured out fire. Plagiarism is a lie we tell ourselves to try to +constrain and suppress entropy. We like to pretend someone in 200 years +will give a shit about something we wrote while hyperfocusing and probably +high as shit. + +But maybe if you’re a fucking nazi or a piggy or a xenophobic snitch, I +actually do care and will prosecute you to the fullest extent of the law. +Maybe I change my mind one day. Or something else. + +If you’re reading this file, you probably want to use my shit anyway, +right? You wanna build it, you wanna package it, you wanna build off it. + +So will you obey the law? Or will you do what is morally correct? diff --git a/archivebox.yaml b/archivebox.yaml new file mode 100644 index 0000000..8e977b4 --- /dev/null +++ b/archivebox.yaml @@ -0,0 +1,81 @@ +services: + archivebox: + container_name: archivebox + image: archivebox/archivebox:dev + # command: server --quick-init 0.0.0.0:8000 + # TODO: hack to workaround https://github.com/ArchiveBox/ArchiveBox/issues/1002 + entrypoint: /bin/bash + command: -c "chown -R archivebox:archivebox /app/archivebox/core/migrations && /app/bin/docker_entrypoint.sh server --quick-init 0.0.0.0:8000" + environment: + - ALLOWED_HOSTS=* + - MEDIA_MAX_SIZE=750m + - RESOLUTION=1024,768 + volumes: + - /media/mat/passport-5tb/archivebox:/data + labels: + - "traefik.enable=true" + - "traefik.http.routers.archive.rule=Host(`archive.mat`)" + - "traefik.http.routers.archive.entrypoints=web" + - "traefik.http.services.archive.loadbalancer.server.port=8000" + - "traefik.http.routers.archive.service=archive" + - "traefik.docker.network=traefik" + networks: + - traefik + + # To run the Sonic full-text search backend, first download the config file to sonic.cfg + # curl -O https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/master/etc/sonic.cfg + # after starting, backfill any existing Snapshots into the index: docker-compose run archivebox update --index-only + # sonic: + # image: valeriansaliou/sonic:v1.3.0 + # expose: + # - 1491 + # environment: + # - SEARCH_BACKEND_PASSWORD=SecretPassword + # volumes: + # - ./sonic.cfg:/etc/sonic.cfg:ro + # - ./data/sonic:/var/lib/sonic/store + + + ### Optional Addons: tweak these examples as needed for your specific use case + + # Example: Run scheduled imports in a docker instead of using cron on the + # host machine, add tasks and see more info with archivebox schedule --help + # scheduler: + # image: archivebox/archivebox:latest + # command: schedule --foreground --every=day --depth=1 'https://getpocket.com/users/USERNAME/feed/all' + # environment: + # - USE_COLOR=True + # - SHOW_PROGRESS=False + # volumes: + # - ./data:/data + + # Example: run all your ArchiveBox traffic through a WireGuard VPN tunnel + # wireguard: + # image: linuxserver/wireguard + # network_mode: 'service:archivebox' + # cap_add: + # - NET_ADMIN + # - SYS_MODULE + # sysctls: + # - net.ipv4.conf.all.rp_filter=2 + # - net.ipv4.conf.all.src_valid_mark=1 + # volumes: + # - /lib/modules:/lib/modules + # - ./wireguard.conf:/config/wg0.conf:ro + + # Example: Run PYWB in parallel and auto-import WARCs from ArchiveBox + # pywb: + # image: webrecorder/pywb:latest + # entrypoint: /bin/sh 'wb-manager add default /archivebox/archive/*/warc/*.warc.gz; wayback --proxy;' + # environment: + # - INIT_COLLECTION=archivebox + # ports: + # - 8080:8080 + # volumes: + # ./data:/archivebox + # ./data/wayback:/webarchive + + +networks: + traefik: + external: true diff --git a/media.yaml b/media.yaml new file mode 100644 index 0000000..a442bdd --- /dev/null +++ b/media.yaml @@ -0,0 +1,165 @@ +services: + deluge: + image: lscr.io/linuxserver/deluge:latest + container_name: deluge + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + - DELUGE_LOGLEVEL=error + volumes: + - deluge_config:/config + - /media/mat/torrents:/downloads + ports: + - 54979:54979 + - 54979:54979/udp + labels: + - "traefik.enable=true" + - "traefik.http.routers.deluge.rule=Host(`deluge.mat`)" + - "traefik.http.routers.deluge.entrypoints=web" + - "traefik.http.services.deluge.loadbalancer.server.port=8112" + - "traefik.http.routers.deluge.service=deluge" + - "traefik.docker.network=traefik" + networks: + - traefik + restart: unless-stopped + + prowlarr: + image: lscr.io/linuxserver/prowlarr:develop + container_name: prowlarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + volumes: + - prowlarr_config:/config + - /media/mat/torrents:/downloads + - /media/mat/passport-5tb:/passport-5tb + - /media/mat/passport-1tb:/passport-1tb + labels: + - "traefik.enable=true" + - "traefik.http.routers.prowlarr.rule=Host(`prowlarr.mat`)" + - "traefik.http.routers.prowlarr.entrypoints=web" + - "traefik.http.services.prowlarr.loadbalancer.server.port=9696" + - "traefik.http.routers.prowlarr.service=prowlarr" + - "traefik.docker.network=traefik" + networks: + - traefik + restart: unless-stopped + + bazarr: + image: lscr.io/linuxserver/bazarr:latest + container_name: bazarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + volumes: + - bazarr_config:/config + - /media/mat/passport-5tb:/passport-5tb + - /media/mat/passport-1tb:/passport-1tb + labels: + - "traefik.enable=true" + - "traefik.http.routers.bazarr.rule=Host(`bazarr.mat`)" + - "traefik.http.routers.bazarr.entrypoints=web" + - "traefik.http.services.bazarr.loadbalancer.server.port=6767" + - "traefik.http.routers.bazarr.service=bazarr" + - "traefik.docker.network=traefik" + networks: + - traefik + restart: unless-stopped + + radarr: + image: lscr.io/linuxserver/radarr:latest + container_name: radarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + volumes: + - radarr_config:/config + - /media/mat/passport-5tb/movies:/passport-5tb + - /media/mat/passport-1tb/movies:/passport-1tb + - /media/mat/torrents:/downloads + labels: + - "traefik.enable=true" + - "traefik.http.routers.radarr.rule=Host(`radarr.mat`)" + - "traefik.http.routers.radarr.entrypoints=web" + - "traefik.http.services.radarr.loadbalancer.server.port=7878" + - "traefik.http.routers.radarr.service=radarr" + - "traefik.docker.network=traefik" + networks: + - traefik + restart: unless-stopped + + sonarr: + image: lscr.io/linuxserver/sonarr:latest + container_name: sonarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + volumes: + - sonarr_config:/config + - /media/mat/passport-5tb/tv:/passport-5tb + - /media/mat/passport-1tb/tv:/passport-1tb + - /media/mat/torrents:/downloads + labels: + - "traefik.enable=true" + - "traefik.http.routers.sonarr.rule=Host(`sonarr.mat`)" + - "traefik.http.routers.sonarr.entrypoints=web" + - "traefik.http.services.sonarr.loadbalancer.server.port=8989" + - "traefik.http.routers.sonarr.service=sonarr" + - "traefik.docker.network=traefik" + networks: + - traefik + restart: unless-stopped + + plex: + container_name: plex + image: plexinc/pms-docker + restart: unless-stopped + ports: + - 56463:32400/tcp + - 3005:3005/tcp + - 8324:8324/tcp + - 32469:32469/tcp + - 1900:1900/udp + - 32410:32410/udp + - 32412:32412/udp + - 32413:32413/udp + - 32414:32414/udp + labels: + - "traefik.enable=true" + - "traefik.http.routers.plex.rule=Host(`plex.mat`)" + - "traefik.http.routers.plex.entrypoints=web" + - "traefik.http.services.plex.loadbalancer.server.port=32400" + - "traefik.http.routers.plex.service=plex" + - "traefik.docker.network=traefik" + networks: + - traefik + environment: + - TZ=${TZ} + - PLEX_CLAIM=claim-KzCjQVSGRVsoc8oYpzjh + - ADVERTISE_IP=http://143.244.47.81:56463/ + - NVIDIA_VISIBLE_DEVICES=all + - NVIDIA_DRIVER_CAPABILITIES=all + devices: + - /dev/dri:/dev/dri + volumes: + - plex_config:/config + - /media/mat/torrents/plex-transcode:/transcode + - /media/mat/passport-5tb:/passport-5tb + - /media/mat/passport-1tb:/passport-1tb + +volumes: + deluge_config: + prowlarr_config: + bazarr_config: + radarr_config: + sonarr_config: + plex_config: + +networks: + traefik: + external: true diff --git a/portainer.yaml b/portainer.yaml new file mode 100644 index 0000000..ed3ca37 --- /dev/null +++ b/portainer.yaml @@ -0,0 +1,24 @@ +services: + portainer: + image: portainer/portainer-ce:latest + container_name: portainer + volumes: + - portainer_data:/data + - /var/run/docker.sock:/var/run/docker.sock + ports: + - 9443:9443 + labels: + - "traefik.enable=true" + - "traefik.http.routers.portainer.rule=Host(`portainer.mat`)" + - "traefik.http.routers.portainer.entrypoints=web" + - "traefik.http.services.portainer.loadbalancer.server.port=9000" + - "traefik.http.routers.portainer.service=portainer" + - "traefik.docker.network=traefik" + networks: + - traefik + restart: always +volumes: + portainer_data: +networks: + traefik: + external: true diff --git a/traefik.yaml b/traefik.yaml new file mode 100644 index 0000000..8bcef36 --- /dev/null +++ b/traefik.yaml @@ -0,0 +1,33 @@ +services: + traefik: + image: traefik:latest + container_name: traefik + command: + - --log.level=ERROR + - --api.insecure=true + - --providers.docker=true + - --providers.docker.exposedbydefault=false + - --entrypoints.web.address=:80 +# - --entrypoints.websecure.address=:443 + ports: + - 80:80 +# - 443:443 + - 8080:8080 + networks: + - traefik + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + labels: + - "traefik.enable=true" + - "traefik.http.routers.traefik.rule=Host(`traefik.mat`)" + - "traefik.http.routers.traefik.entrypoints=web" + - "traefik.http.services.traefik.loadbalancer.server.port=8080" + - "traefik.http.routers.traefik.service=traefik" + - "traefik.docker.network=traefik" +# - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)" +# - "traefik.http.routers.http-catchall.entrypoints=web" +# - "traefik.http.routers.http-catchall.middlewares=redirect-to-https" +# - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" +networks: + traefik: + external: true