diff --git a/database/docker-compose.yml b/database/docker-compose.yml new file mode 100644 index 0000000..c65f5c5 --- /dev/null +++ b/database/docker-compose.yml @@ -0,0 +1,40 @@ +version: '3.5' + +services: + postgres: + container_name: postgres_container + image: postgres + environment: + POSTGRES_USER: ${POSTGRES_USER:-acedanger} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme} + PGDATA: /data/postgres + volumes: + - postgres_data:/data/postgres + ports: + - "5432:5432" + networks: + - postgres + restart: unless-stopped + + pgadmin: + container_name: pgadmin_container + image: dpage/pgadmin4 + environment: + PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-peter@peterwood.dev} + PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin} + PGADMIN_CONFIG_SERVER_MODE: 'False' + volumes: + - pgadmin_data:/var/lib/pgadmin + ports: + - "${PGADMIN_PORT:-5050}:80" + networks: + - postgres + restart: unless-stopped + +networks: + postgres: + driver: bridge + +volumes: + postgres_data: + pgadmin_data: diff --git a/media/docker-compose.yml b/media/docker-compose.yml index f1ed2e7..7ca3ee8 100644 --- a/media/docker-compose.yml +++ b/media/docker-compose.yml @@ -12,10 +12,9 @@ services: - 8888:8888/tcp # HTTP proxy - 8388:8388/tcp # Shadowsocks - 8388:8388/udp # Shadowsocks - # - 8080:8080/tcp # sabnzbd webUI - - 8085:8085/tcp # sabnzbd webUI + - 8080:8080/tcp # sabnzbd webUI volumes: - - /vpn-gluetun:/gluetun + - gluetun_data:/gluetun environment: # See https://github.com/qdm12/gluetun/wiki - VPN_SERVICE_PROVIDER=protonvpn @@ -34,11 +33,77 @@ services: environment: - PUID=1000 - PGID=1000 + - UMASK=022 - TZ=America/New_York volumes: - - /mnt/d/docker/sabnzbd/config:/config - - /mnt/d/media/downloads/sabnzbd/complete:/downloads - - /mnt/d/media/downloads/sabnzbd/incomplete:/incomplete-downloads + - sabnzbd_data:/config + - /data/usenet/downloads:/downloads + - /data/usenet/incomplete-downloads:/incomplete-downloads # network_mode: "service:gluetun" forces sabnzbd to connect to the internet through the VPN defined in the gluetun container above network_mode: "service:gluetun" - restart: always \ No newline at end of file + restart: always + sonarr: + image: lscr.io/linuxserver/sonarr:latest + container_name: sonarr + environment: + - PUID=1000 + - PGID=1000 + - UMASK=022 + - TZ=America/New_York + volumes: + - /docker/config/sonarr:/config + - /mnt/share/media/tv:/tv + - /mnt/share/media/anime:/anime + - /mnt/share/media/babies:/babies + - /data/usenet/downloads:/downloads + ports: + - 8989:8989 + restart: always + radarr: + image: lscr.io/linuxserver/radarr:latest + container_name: radarr + environment: + - PUID=1000 + - PGID=1000 + - UMASK=022 + - TZ=America/New_York + volumes: + - /docker/config/radarr:/config + - /mnt/share/media:/data + - /mnt/share/media/movies:/movies + - /mnt/share/media/movies for the kids:/movies for the kids + - /data/usenet/downloads:/downloads + ports: + - 7878:7878 + restart: always + lidarr: + image: lscr.io/linuxserver/lidarr:latest + container_name: lidarr + environment: + - PUID=1000 + - PGID=1000 + - UMASK=022 + - TZ=America/New_York + volumes: + - /docker/config/lidarr:/config + - /mnt/share/media/music:/music + - /data/usenet/downloads:/downloads + ports: + - 8686:8686 + restart: always + prowlarr: + image: lscr.io/linuxserver/prowlarr:latest + container_name: prowlarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/New_York + volumes: + - /docker/config/prowlarr:/config + ports: + - 9696:9696 + restart: unless-stopped + +volumes: + gluetun_data: + sabnzbd_data: diff --git a/update-containers.sh b/update-containers.sh new file mode 100755 index 0000000..d1afc6f --- /dev/null +++ b/update-containers.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# go to "docker/media" folder +cd ~/docker/media + +# stop docker +echo "Stopping docker" +docker compose down + +ERROR_FILE="/tmp/docker-images-update.error" + +# make sure that docker is running +DOCKER_INFO_OUTPUT=$(docker info 2> /dev/null | grep "Containers:" | awk '{print $1}') + +if [ "$DOCKER_INFO_OUTPUT" == "Containers:" ] + then + echo "Docker is running, so we can continue" + else + echo "Docker is not running, exiting" + exit 1 +fi + +# get a list of docker images that are currently installed +IMAGES_WITH_TAGS=$(docker images | grep -v REPOSITORY | grep -v TAG | grep -v "" | awk '{printf("%s:%s\n", $1, $2)}') + +# run docker pull on all of the images +for IMAGE in $IMAGES_WITH_TAGS; do + echo "*****" + echo "Updating $IMAGE" + docker pull $IMAGE 2> $ERROR_FILE + if [ $? != 0 ]; then + ERROR=$(cat $ERROR_FILE | grep "not found") + if [ "$ERROR" != "" ]; then + echo "WARNING: Docker image $IMAGE not found in repository, skipping" + else + echo "ERROR: docker pull failed on image - $IMAGE" + exit 2 + fi + fi + echo "*****" + echo +done + +# restart docker +echo "Restarting Docker" +docker compose up -d + +# did everything finish correctly? Then we can exit +echo "Docker images are now up to date" +exit 0