diff --git a/botc/.gitignore b/botc/.gitignore index 4846d12..5487749 100644 --- a/botc/.gitignore +++ b/botc/.gitignore @@ -1,2 +1,3 @@ backup/* -wordpress/* \ No newline at end of file +wordpress/* +data/* \ No newline at end of file diff --git a/botc/docker-compose.yml b/botc/docker-compose.yml index 1660143..f43651b 100644 --- a/botc/docker-compose.yml +++ b/botc/docker-compose.yml @@ -8,7 +8,7 @@ services: MYSQL_PASSWORD: ${DBPASS} MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - - db:/var/lib/mysql + - ./db:/var/lib/mysql wordpress: depends_on: - db @@ -29,7 +29,6 @@ services: - ./wordpress:/var/www/html - ./backup:/var/www/html/wp-content/updraft volumes: - wordpress: db: networks: default: diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 08dc6c1..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,376 +0,0 @@ -services: - nginx-proxy: - image: jwilder/nginx-proxy - ports: - - "80:80" - - "443:443" - volumes: - - /var/run/docker.sock:/tmp/docker.sock:ro - - ./nginx/certs:/etc/nginx/certs - - ./nginx/html:/usr/share/nginx/html - - ./nginx/vhost.d:/etc/nginx/vhost.d - - ./client_max_body_size.conf:/etc/nginx/conf.d/client_max_body_size.conf:ro - nginx-letsencrypt: - image: jrcs/letsencrypt-nginx-proxy-companion - container_name: nginx-letsencrypt - restart: always - volumes_from: - - nginx-proxy - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - environment: - - DEFAULT_EMAIL=${EMAIL} - redis: - image: redis:alpine - container_name: redis-dbcache - restart: unless-stopped - homarr: - container_name: homarr - image: ghcr.io/ajnart/homarr:latest - restart: unless-stopped - volumes: - - /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration - - ${CONFIG_LOCATION}/homarr:/app/data/configs - - ${DATA_LOCATION}/homarr/icons:/app/public/icons - - ${DATA_LOCATION}/homarr:/data - environment: - - VIRTUAL_HOST=homarr.${DOMAIN}, ${DOMAIN}, www.${DOMAIN} - - LETSENCRYPT_HOST="homarr.${DOMAIN}, ${DOMAIN}, www.${DOMAIN}" - - LETSENCRYPT_EMAIL=${EMAIL} - expose: - - "7575" - ports: - - '7575:7575' - dashdot: - image: mauricenino/dashdot - container_name: dashdot - restart: unless-stopped - privileged: true - environment: - - VIRTUAL_HOST=dash.${DOMAIN} - - DASHDOT_ENABLE_CPU_TEMPS=true - - DASHDOT_FS_DEVICE_FILTER=sda,sdb,sdc,sdd,sde,sdf - - DASHDOT_FS_VIRTUAL_MOUNTS=tank/storage/media, psb29404@psb29404.seedbox.io:/files - expose: - - "3001" - ports: - - 3001:3001 - volumes: - - /:/mnt/host:ro - plex: - image: plexinc/pms-docker:latest - container_name: plex - environment: - - PUID=${UID} - - PGID=${GID} - - TZ=${TZ} - - VIRTUAL_HOST=plex.${DOMAIN} - - VERSION=docker - - PLEX_CLAIM=${PLEX_CLAIM} - volumes: - - ${CONFIG_LOCATION}/plex:/config - - ${DATA_LOCATION}/TV:/tv - - ${DATA_LOCATION}/Movies:/movies - - ${DATA_LOCATION}/Music:/music - expose: - - "32400" - ports: - - 32400:32400 - restart: unless-stopped - tautulli: - image: lscr.io/linuxserver/tautulli:latest - container_name: tautulli - environment: - - PUID=1000 - - PGID=1000 - - TZ=Etc/UTC - - VIRTUAL_HOST=tautulli.${DOMAIN},plex-stats.${DOMAIN} - - LETSENCRYPT_HOST=tautulli.${DOMAIN} - - LETSENCRYPT_EMAIL=${EMAIL} - volumes: - - ${CONFIG_LOCATION}/tautulli:/config - ports: - - 8181:8181 - restart: unless-stopped - radarr: - image: lscr.io/linuxserver/radarr:latest - container_name: radarr - environment: - - PUID=${UID} - - PGID=${GID} - - TZ=${TZ} - - VIRTUAL_HOST=radarr.${DOMAIN},radar.${DOMAIN} - - LETSENCRYPT_HOST=radarr.${DOMAIN},radar.${DOMAIN} - - LETSENCRYPT_EMAIL=${EMAIL} - volumes: - - ${CONFIG_LOCATION}/radarr:/config - - ${DATA_LOCATION}/Movies:/movies - - /media/seedbox:/downloads - expose: - - "7878" - ports: - - 7878:7878 - restart: unless-stopped - sonarr: - image: lscr.io/linuxserver/sonarr:latest - container_name: sonarr - environment: - - PUID=${UID} - - PGID=${GID} - - TZ=${TZ} - - VIRTUAL_HOST=sonarr.${DOMAIN},sonar.${DOMAIN} - - LETSENCRYPT_HOST=sonarr.${DOMAIN},sonar.${DOMAIN} - - LETSENCRYPT_EMAIL=${EMAIL} - volumes: - - ${CONFIG_LOCATION}/sonarr:/config - - ${DATA_LOCATION}/TV:/tv - - /media/seedbox:/downloads - expose: - - "8989" - ports: - - 8989:8989 - restart: unless-stopped - prowlarr: - image: lscr.io/linuxserver/prowlarr:latest - container_name: prowlarr - environment: - - PUID=${UID} - - PGID=${GID} - - TZ=${TZ} - - VIRTUAL_HOST=prowlarr.${DOMAIN} - - LETSENCRYPT_HOST=prowlarr.${DOMAIN} - - LETSENCRYPT_EMAIL=${EMAIL} - volumes: - - ${CONFIG_LOCATION}/prowlarr:/config - expose: - - "9696" - ports: - - 9696:9696 - restart: unless-stopped - bazarr: - image: lscr.io/linuxserver/bazarr:latest - container_name: bazarr - environment: - - PUID=1000 - - PGID=1000 - - TZ=Etc/UTC - - VIRTUAL_HOST=bazarr.${DOMAIN} - - LETSENCRYPT_HOST=bazarr.${DOMAIN} - - LETSENCRYPT_EMAIL=${EMAIL} - volumes: - - ${CONFIG_LOCATION}/bazarr:/config - - ${DATA_LOCATION}/Movies:/movies #optional - - ${DATA_LOCATION}/TV:/tv #optional - expose: - - "6767" - ports: - - 6767:6767 - restart: unless-stopped - overseerr: - image: lscr.io/linuxserver/overseerr:latest - container_name: overseerr - environment: - - PUID=${UID} - - PGID=${GID} - - TZ=${TZ} - - VIRTUAL_HOST=overseerr.${DOMAIN},overseer.${DOMAIN} - - LETSENCRYPT_HOST=overseerr.${DOMAIN},overseer.${DOMAIN} - - LETSENCRYPT_EMAIL=${EMAIL} - volumes: - - ${CONFIG_LOCATION}/overseerr:/config - expose: - - "5055" - ports: - - 5055:5055 - restart: unless-stopped - lidarr: - image: lscr.io/linuxserver/lidarr:latest - container_name: lidarr - environment: - - PUID=${UID} - - PGID=${GID} - - TZ=${TZ} - - VIRTUAL_HOST=lidarr.${DOMAIN},lidar.${DOMAIN} - - LETSENCRYPT_HOST=lidarr.${DOMAIN},lidar.${DOMAIN} - - LETSENCRYPT_EMAIL=${EMAIL} - volumes: - - ${CONFIG_LOCATION}/lidarr:/config - - ${DATA_LOCATION}/Music:/music - - /media/seedbox:/downloads - expose: - - "8686" - ports: - - 8686:8686 - restart: unless-stopped - mylar3: - image: lscr.io/linuxserver/mylar3:latest - container_name: mylar3 - environment: - - PUID=${UID} - - PGID=${GID} - - TZ=${TZ} - - VIRTUAL_HOST=mylar.${DOMAIN},mylar3.${DOMAIN} - - LETSENCRYPT_HOST=mylar.${DOMAIN},mylar3.${DOMAIN} - - LETSENCRYPT_EMAIL=${EMAIL} - volumes: - - ${CONFIG_LOCATION}/mylar3:/config - - ${DATA_LOCATION}/Comics:/comics - - /media/seedbox:/downloads - ports: - - 8090:8090 - restart: unless-stopped - navidrome: - image: deluan/navidrome:latest - user: 1000:1000 # should be owner of volumes - ports: - - "4533:4533" - expose: - - "4533" - restart: unless-stopped - environment: - # Optional: put your config options customization here. Examples: - ND_SCANSCHEDULE: 1h - ND_LOGLEVEL: info - ND_SESSIONTIMEOUT: 24h - ND_BASEURL: "" - VIRTUAL_HOST: "navidrome.${DOMAIN}" - LETSENCRYPT_HOST: "navidrome.${DOMAIN}" - LETSENCRYPT_EMAIL: ${EMAIL} - volumes: - - "${DATA_LOCATION}:/data" - - "${DATA_LOCATION}/Music:/music:ro" - ubooquity: - image: lscr.io/linuxserver/ubooquity:latest - container_name: ubooquity - environment: - - PUID=${UID} - - PGID=${GID} - - TZ=${TZ} - - VIRTUAL_HOST=ubooquity.${DOMAIN} - - VIRTUAL_PORT=2202 - # - MAXMEM= #optional - volumes: - - ${CONFIG_LOCATION}/ubooquity:/config - - ${DATA_LOCATION}/Books:/books - - ${DATA_LOCATION}/Comics:/comics - # - /path/to/raw/files:/files - expose: - - "2202" - - "2203" - ports: - - 2202:2202 #:2202/ubooquity - - 2203:2203 #:2203/ubooquity/admin - restart: unless-stopped - audiobookshelf: - image: ghcr.io/advplyr/audiobookshelf:latest - ports: - - 13378:80 - volumes: - - ${CONFIG_LOCATION}/audiobookshelf:/config - - ${DATA_LOCATION}/Audiobooks:/audiobooks - # - :/podcasts - - ${DATA_LOCATION}/Audiobooks/metadata:/metadata - environment: - - TZ=${TZ} - - VIRTUAL_HOST=audiobookshelf.${DOMAIN} - readarr: - image: lscr.io/linuxserver/readarr:develop - container_name: readarr - environment: - - PUID=${UID} - - PGID=${GID} - - TZ=${TZ} - - VIRTUAL_HOST=readarr.${DOMAIN},readar.${DOMAIN} - - LETSENCRYPT_HOST=readarr.${DOMAIN},readar.${DOMAIN} - - LETSENCRYPT_EMAIL=${EMAIL} - volumes: - - ${CONFIG_LOCATION}/readarr:/config - - ${DATA_LOCATION}/Books:/books - - /media/seedbox:/downloads - expose: - - "8787" - ports: - - 8787:8787 - restart: unless-stopped - readarraudio: - image: lscr.io/linuxserver/readarr:develop - container_name: readarraudio - environment: - - PUID=${UID} - - PGID=${GID} - - TZ=${TZ} - - VIRTUAL_HOST=readarraudio.${DOMAIN},readaraudio.${DOMAIN} - - LETSENCRYPT_HOST=readarraudio.${DOMAIN},readaraudio.${DOMAIN} - - LETSENCRYPT_EMAIL=${EMAIL} - volumes: - - ${CONFIG_LOCATION}/readarr-audio:/config - - ${DATA_LOCATION}/Audiobooks:/audiobooks - - /media/seedbox:/downloads - restart: unless-stopped - wordpress-botc: - depends_on: - - db - image: wordpress - restart: always - environment: - WORDPRESS_DB_HOST: db - WORDPRESS_DB_USER: root - WORDPRESS_DB_PASSWORD: ${DBPASS} - WORDPRESS_DB_NAME: clocktower - VIRTUAL_HOST: "botc.${DOMAIN}, *.phillybotc.com" - LETSENCRYPT_HOST: "botc.${DOMAIN}, *.phillybotc.com" - LETSENCRYPT_EMAIL: ${EMAIL} - volumes: - - wordpress-botc:/var/www/html - # wordpress-home: - # depends_on: - # - db - # image: wordpress - # restart: always - # environment: - # WORDPRESS_DB_HOST: db - # WORDPRESS_DB_USER: root - # WORDPRESS_DB_PASSWORD: ${DBPASS} - # WORDPRESS_DB_NAME: homepage - # VIRTUAL_HOST: "${DOMAIN}, www.${DOMAIN}" - # LETSENCRYPT_HOST: "www.brodin.rocks" - # LETSENCRYPT_EMAIL: "bjageman@gmail.com" - # volumes: - # - wordpress-home:/var/www/html - db: - image: mysql:latest - restart: always - environment: - MYSQL_ROOT_PASSWORD: ${DBPASS} - volumes: - - db:/var/lib/mysql - - ./docker/provision/mysql/init:/docker-entrypoint-initdb.d - #Nextcloud - nextcloud: - depends_on: - - db - image: lscr.io/linuxserver/nextcloud:latest - container_name: nextcloud - environment: - PUID: "1000" - PGID: "1000" - TZ: "${TZ}" - VIRTUAL_HOST: "nextcloud.${DOMAIN}" - MYSQL_HOST: db - MYSQL_DATABASE: nextcloud - MYSQL_USER: root - MYSQL_PASSWORD: ${DBPASS} - REDIS_HOST: redis - LETSENCRYPT_HOST: nextcloud.${DOMAIN} - LETSENCRYPT_EMAIL: ${EMAIL} - # LETSENCRYPT_TEST: true - volumes: - - ${CONFIG_LOCATION}/nextcloud:/config - - ${DATA_LOCATION}/Cloud/Nextcloud:/data - restart: unless-stopped -volumes: - # wordpress-home: - wordpress-botc: - db: - - diff --git a/fusiondance/.env.example b/fusiondance/.env.example new file mode 100644 index 0000000..7df0b83 --- /dev/null +++ b/fusiondance/.env.example @@ -0,0 +1,3 @@ +DOMAIN=example.com +DBPASS=password +EMAIL=example@mail.com diff --git a/fusiondance/.gitignore b/fusiondance/.gitignore new file mode 100644 index 0000000..4846d12 --- /dev/null +++ b/fusiondance/.gitignore @@ -0,0 +1,2 @@ +backup/* +wordpress/* \ No newline at end of file diff --git a/fusiondance/docker-compose.yml b/fusiondance/docker-compose.yml new file mode 100644 index 0000000..cbd5cc0 --- /dev/null +++ b/fusiondance/docker-compose.yml @@ -0,0 +1,37 @@ +services: + db: + image: mysql:8.0 + restart: always + environment: + MYSQL_DATABASE: fusiondance + MYSQL_USER: wordpress + MYSQL_PASSWORD: ${DBPASS} + MYSQL_RANDOM_ROOT_PASSWORD: '1' + volumes: + - db:/var/lib/mysql + wordpress: + depends_on: + - db + image: wordpress + restart: always + environment: + # PUID: ${UID} + # PGID: ${GID} + WORDPRESS_DB_HOST: fusiondance-db-1 + WORDPRESS_DB_USER: wordpress + WORDPRESS_DB_PASSWORD: ${DBPASS} + WORDPRESS_DB_NAME: fusiondance + VIRTUAL_HOST: "www.phillyfusiondance.com, phillyfusiondance.com" + LETSENCRYPT_HOST: "phillyfusiondance.com, www.phillyfusiondance.com" + LETSENCRYPT_EMAIL: ${EMAIL} + # LETSENCRYPT_TEST: true + volumes: + - ./wordpress:/var/www/html + - ./backup:/var/www/html/wp-content/updraft +volumes: + wordpress: + db: +networks: + default: + name: nginx-proxy + external: true diff --git a/games/.gitignore b/games/.gitignore index 07f43b8..4227bcf 100644 --- a/games/.gitignore +++ b/games/.gitignore @@ -1 +1 @@ -data/* \ No newline at end of file +db/* \ No newline at end of file diff --git a/games/docker-compose.yml b/games/docker-compose.yml index 7584472..0f243f3 100644 --- a/games/docker-compose.yml +++ b/games/docker-compose.yml @@ -31,9 +31,7 @@ services: POSTGRES_DB: gamevault volumes: # Mount the folder where your PostgreSQL database files should land - - db:/var/lib/postgresql/data -volumes: - db: + - ./db:/var/lib/postgresql/data networks: default: name: nginx-proxy diff --git a/nextcloud/.gitignore b/nextcloud/.gitignore new file mode 100644 index 0000000..07f43b8 --- /dev/null +++ b/nextcloud/.gitignore @@ -0,0 +1 @@ +data/* \ No newline at end of file diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml index 91803e7..d40d1ec 100644 --- a/nextcloud/docker-compose.yml +++ b/nextcloud/docker-compose.yml @@ -10,7 +10,7 @@ services: command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW --log_bin_trust_function_creators=true # user: ${UID}:${GID} volumes: - - db:/var/lib/mysql + - ${DB_LOCATION}:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD - MYSQL_PASSWORD=${DBPASS} @@ -39,8 +39,6 @@ services: - ${CONFIG_LOCATION}:/var/www/html/config:rw - ${DATA_LOCATION}/Cloud/Nextcloud:/var/www/html/data:rw restart: unless-stopped -volumes: - db: networks: default: name: nginx-proxy diff --git a/nextcloud/docker/provision/mysql/init/01-databases.sql b/nextcloud/docker/provision/mysql/init/01-databases.sql deleted file mode 100644 index b234fc6..0000000 --- a/nextcloud/docker/provision/mysql/init/01-databases.sql +++ /dev/null @@ -1,9 +0,0 @@ -# create databases -CREATE DATABASE IF NOT EXISTS `nextcloud`; -CREATE DATABASE IF NOT EXISTS `homepage`; -CREATE DATABASE IF NOT EXISTS `clocktower`; - --- # create root user and grant rights --- CREATE USER 'brodin'@'%' IDENTIFIED BY 'whiskey-wango-woxtrot'; --- GRANT ALL PRIVILEGES ON *.* TO 'brodin'@'%' WITH GRANT OPTION; --- FLUSH PRIVILEGES; \ No newline at end of file diff --git a/nextcloud/update.sh b/nextcloud/update.sh new file mode 100644 index 0000000..999ef14 --- /dev/null +++ b/nextcloud/update.sh @@ -0,0 +1 @@ +docker exec --user root nextcloud bash -c "apt update && apt -y install libmagickcore-6.q16-6-extra smbclient iputils-ping nmap mc btop net-tools ncdu java-common default-jre graphicsmagick ffmpeg ghostscript" \ No newline at end of file diff --git a/nginx-proxy/nginx/vhost.d/default b/nginx-proxy/nginx/vhost.d/default index bcc5f96..6753e51 100644 --- a/nginx-proxy/nginx/vhost.d/default +++ b/nginx-proxy/nginx/vhost.d/default @@ -1,13 +1,3 @@ -## Start of configuration add by letsencrypt container -location ^~ /.well-known/acme-challenge/ { - auth_basic off; - auth_request off; - allow all; - root /usr/share/nginx/html; - try_files $uri =404; - break; -} -## End of configuration add by letsencrypt container location /tt-rss/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; diff --git a/readers/docker-compose.yml b/readers/docker-compose.yml index 80a3956..20a9a1f 100644 --- a/readers/docker-compose.yml +++ b/readers/docker-compose.yml @@ -28,6 +28,8 @@ services: - TZ=${TZ} - VIRTUAL_HOST=ubooquity.${DOMAIN} - VIRTUAL_PORT=2202 + - LETSENCRYPT_HOST=ubooquity.${DOMAIN} + - LETSENCRYPT_EMAIL= ${EMAIL} # - MAXMEM= #optional volumes: - ${CONFIG_LOCATION}/ubooquity:/config @@ -53,6 +55,8 @@ services: environment: - TZ=${TZ} - VIRTUAL_HOST=audiobookshelf.${DOMAIN} + - LETSENCRYPT_HOST=audiobookshelf.${DOMAIN} + - LETSENCRYPT_EMAIL= ${EMAIL} networks: default: name: nginx-proxy diff --git a/run_all.sh b/run_all.sh new file mode 100755 index 0000000..3dfd04a --- /dev/null +++ b/run_all.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +cd arr +sudo docker compose up -d +cd ../botc +sudo docker compose up -d +cd ../dashboard +sudo docker compose up -d +cd ../fusiondance +sudo docker compose up -d +cd ../games +sudo docker compose up -d +cd ../nextcloud +sudo docker compose up -d +cd ../plex +sudo docker compose up -d +cd ../readers +sudo docker compose up -d +cd ../rss-reader diff --git a/vnc/.gitignore b/vnc/.gitignore new file mode 100644 index 0000000..60baa9c --- /dev/null +++ b/vnc/.gitignore @@ -0,0 +1 @@ +data/* diff --git a/vnc/docker-compose.yml b/vnc/docker-compose.yml new file mode 100644 index 0000000..912a9d9 --- /dev/null +++ b/vnc/docker-compose.yml @@ -0,0 +1,21 @@ +services: + hbbs: + container_name: hbbs + image: rustdesk/rustdesk-server:latest + command: hbbs + volumes: + - ./data:/root + network_mode: "host" + + depends_on: + - hbbr + restart: unless-stopped + + hbbr: + container_name: hbbr + image: rustdesk/rustdesk-server:latest + command: hbbr + volumes: + - ./data:/root + network_mode: "host" + restart: unless-stopped