diff --git a/autojellyfin.sh b/autojellyfin.sh new file mode 100644 index 0000000..46b9f19 --- /dev/null +++ b/autojellyfin.sh @@ -0,0 +1,45 @@ +#!/bin/bash +set -e # exit when error + +cat <<"EOF" + _ _ _ _ _ ___ ___ _ _ + /_\ _ _| |_ ___ _ | |___| | |_ _| __|_ _| \| | + / _ \ || | _/ _ \ | || / -_) | | || | _| | || .` | + /_/ \_\_,_|\__\___/ \__/\___|_|_|\_, |_| |___|_|\_| + |__/ + https://git.sigmagaming.net/Brandon/Auto-Jellyfin +EOF + +args=$1 + +stop_script() { + docker-compose down || true +} + +after_start() { + echo "" + echo "script finished correctly" + echo "" +} + +if [[ $args == 'start' ]]; then + stop_script + docker-compose up --force-recreate -d + after_start +elif [[ $args == 'stop' ]]; then + stop_script + echo "" + echo "script correctly stopped" +elif [[ $args == 'update' ]]; then + docker-compose pull + echo "" + echo "updates downloaded, you can restart the containers" +elif [[ $args == 'help' ]]; then + echo "use start if you want to start the containers with a vpn connection" + echo " enter your vpn provider in VPN_SERVICE_PROVIDER" + echo "use stop if you want to stop all the containers" + echo "use update if you want to download the newest version of all the containers" +else + echo "unknown command: $args" + echo "use [start | stop | update | help]" +fi diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f33d72f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,128 @@ +version: "3.6" + +secrets: + openvpn_password: + file: ./vpnpas + +services: + gluetun: + image: qmcgaw/gluetun + container_name: gluetun + 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 + - 9696:9696 # prowlarr + - 8191:8191 # flaresolverr + - 9091:9091 + - 5055:5055 + - 7878:7878 # radarr + - 8989:8989 # sonarr + - 51413:51413 # Port forwarding for gluetun + - 51413:51413/udp # Port forwarding for gluetun + environment: + - VPN_SERVICE_PROVIDER=private internet access + - VPN_TYPE=openvpn + - OPENVPN_USER=changeme + - OPENVPN_PASSWORD_FILE=/run/secrets/openvpn_password + - SERVER_REGIONS=change to region + - VPN_PORT_FORWARDING=on + - VPN_PORT_FORWARDING_STATUS_FILE=/tmp/gluetun/forwarded_port + secrets: + - openvpn_password + restart: always + + prowlarr: + image: lscr.io/linuxserver/prowlarr:latest + container_name: prowlarr + env_file: .env + network_mode: "service:gluetun" + volumes: + - ./prowlarr/config:/config + restart: unless-stopped + + flaresolverr: + image: ghcr.io/flaresolverr/flaresolverr:latest + container_name: flaresolverr + network_mode: "service:gluetun" + environment: + - LOG_LEVEL=info + restart: unless-stopped + + transmission: + image: lscr.io/linuxserver/transmission:latest + container_name: transmission + network_mode: "service:gluetun" + environment: + - PUID=0 + - PGID=0 + - TZ=Etc/UTC + - TRANSMISSION_WEB_HOME= #optional + - USER=admin + - PASS=changeme + - WHITELIST= #optional + - PEERPORT= #optional + - HOST_WHITELIST= #optional + volumes: + - ./trans/data:/config + - ./downloads:/downloads + - ./watch/folder:/watch + restart: unless-stopped + + radarr: + image: lscr.io/linuxserver/radarr:latest + container_name: radarr + env_file: .env + network_mode: "service:gluetun" + volumes: + - ./radarr/config:/config + - ./movies:/media/movies + - ./downloads:/downloads + restart: unless-stopped + + sonarr: + image: lscr.io/linuxserver/sonarr:latest + container_name: sonarr + env_file: .env + network_mode: "service:gluetun" + volumes: + - ./sonarr/config:/config + - ./tvseries:/media/tv + - ./downloads:/downloads + restart: unless-stopped + + jellyfin: + image: linuxserver/jellyfin + container_name: jellyfin + network_mode: host + environment: + - PUID=0 + - PGID=0 + - TZ=Etc/UTC + volumes: + - ./config:/config + - ./cache:/cache + - ./tvseries:/media/tv + - ./movies:/media/movies + devices: + - "/dev/dri:/dev/dri" + ports: + - 8096:8096 # jellyfin (HTTP) + restart: unless-stopped + + jellyseerr: + image: fallenbagel/jellyseerr + container_name: jellyseerr + network_mode: "service:gluetun" + environment: + - PUID=0 + - PGID=0 + - TZ=Etc/UTC + volumes: + - ./jellyseerr/config:/config + - ./jellyseerr/data:/data + restart: unless-stopped \ No newline at end of file