initial commit

This commit is contained in:
rob
2021-01-10 10:31:20 -05:00
commit e2696a4af5
6 changed files with 619 additions and 0 deletions

232
media/docker-compose.yaml Normal file
View File

@@ -0,0 +1,232 @@
version: "3.7"
services:
nzbget:
image: jshridha/docker-nzbgetvpn
container_name: nzbget
restart: unless-stopped
networks:
- connector
dns:
- 192.168.1.1
cap_add:
- NET_ADMIN
volumes:
- downloads:/data
- nzbget_config:/config
- /etc/localtime:/etc/localtime:ro
environment:
PUID: 0
PGID: 0
LAN_NETWORK: 192.168.0.0/16
NAME_SERVERS: 192.168.1.11,1.1.1.1
VPN_ENABLED: "yes"
VPN_PROV: custom
labels:
- "traefik.http.routers.nzbget.rule=Host(`nzbget.olympus.sherman.one`)"
- "traefik.http.services.nzbget.loadbalancer.server.port=6789"
deluge:
image: binhex/arch-delugevpn
container_name: deluge
restart: unless-stopped
networks:
- connector
cap_add:
- NET_ADMIN
volumes:
- downloads:/data
- nzbget_config:/config
- /etc/localtime:/etc/localtime:ro
dns:
- 192.168.1.1
environment:
VPN_ENABLED: "yes"
VPN_PROV: custom
PUID: 0
PGID: 0
LAN_NETWORK: 192.168.0.0/16
NAME_SERVERS: 192.168.1.11,1.1.1.1
labels:
- "traefik.http.routers.deluge.rule=Host(`deluge.olympus.sherman.one`)"
- "traefik.http.services.deluge.loadbalancer.server.port=8112"
jackett:
image: linuxserver/jackett
restart: unless-stopped
container_name: jackett
networks:
- connector
environment:
PUID: 1000
PGID: 1000
TZ: America/New_York
volumes:
- jackett_config:/config
- downloads:/downloads
dns:
- 192.168.1.1
labels:
- "traefik.http.routers.jackett.rule=Host(`jackett.olympus.sherman.one`)"
- "traefik.http.services.jackett.loadbalancer.server.port=9117"
sonarr:
image: linuxserver/sonarr
restart: unless-stopped
container_name: sonarr
networks:
- connector
environment:
PUID: 1000
PGID: 1000
TZ: America/New_York
volumes:
- sonarr_config:/config
- tv:/tv
- downloads:/downloads
dns:
- 192.168.1.1
labels:
- "traefik.http.routers.sonarr.rule=Host(`sonarr.olympus.sherman.one`)"
- "traefik.http.services.sonarr.loadbalancer.server.port=8989"
radarr:
image: linuxserver/radarr
restart: unless-stopped
container_name: radarr
networks:
- connector
environment:
PUID: 1000
PGID: 1000
TZ: America/New_York
volumes:
- radarr_config:/config
- movies:/movies
- downloads:/downloads
dns:
- 192.168.1.1
labels:
- "traefik.http.routers.radarr.rule=Host(`radarr.olympus.sherman.one`)"
- "traefik.http.services.radarr.loadbalancer.server.port=7878"
lidarr:
image: linuxserver/lidarr
restart: unless-stopped
container_name: lidarr
networks:
- connector
environment:
PUID: 1000
PGID: 1000
TZ: America/New_York
volumes:
- lidarr_config:/config
- music:/music
- downloads:/downloads
dns:
- 192.168.1.1
labels:
- "traefik.http.routers.lidarr.rule=Host(`lidarr.olympus.sherman.one`)"
- "traefik.http.services.lidarr.loadbalancer.server.port=8686"
jellyfin:
image: linuxserver/jellyfin
container_name: jellyfin
restart: unless-stopped
network_mode: host
environment:
PUID: 1000
PGID: 1000
TZ: America/New_York
volumes:
- jellyfin_config:/config
- tv:/data/tvshows
- movies:/data/movies
- music:/data/music
dns:
- 192.168.1.1
rss:
image: linuxserver/freshrss
container_name: freshrss
restart: unless-stopped
networks:
- connector
volumes:
- freshrss_data:/config
dns:
- 192.168.1.1
labels:
- "traefik.http.routers.freshrss.rule=Host(`rss.sherman.one`)"
- "traefik.http.routers.freshrss.tls=true"
- "traefik.http.routers.freshrss.tls.certresolver=le"
- "traefik.http.routers.freshrss.tls.domains[0].sans=*.sherman.one"
- "traefik.http.routers.freshrss.entrypoints=web-secure"
- "traefik.http.routers.freshrssredir.middlewares=file-https@file"
- "traefik.http.routers.freshrssredir.entrypoints=web"
- "traefik.http.routers.freshrssredir.rule=Host(`rss.sherman.one`)"
volumes:
nzbget_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/nzbget
device: /dev/sdc
jackett_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/jackett
device: /dev/sdc
sonarr_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/sonarr
device: /dev/sdc
radarr_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/radarr
device: /dev/sdc
lidarr_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/lidarr
device: /dev/sdc
jellyfin_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/jellyfin
device: /dev/sdc
freshrss_data:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/freshrss
device: /dev/sdc
downloads:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/downloads
device: /dev/sdc
tv:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/tv
device: /dev/sdc
movies:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/movies
device: /dev/sdc
music:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/music
device: /dev/sdc
networks:
connector:
external: true

View File

@@ -0,0 +1,90 @@
version: "3.7"
services:
mqtt:
image: eclipse-mosquitto
container_name: mqtt
restart: unless-stopped
ports:
- "1883:1883"
- "8883:8883"
dns:
- 192.168.1.1
volumes:
- mosquitto_config:/mosquitto/config
- mosquitto_data:/mosquitto/data
pihole:
image: pihole/pihole:latest
container_name: pihole
ports:
- "53:53"
- "53:53/udp"
networks:
- connector
environment:
TZ: 'America/New_York'
WEBPASSWORD: pass
VIRTUAL_HOST: pihole.olympus.sherman.one
volumes:
- 'pihole-etc:/etc/pihole/'
- 'pihole-dnsmasq:/etc/dnsmasq.d/'
dns:
- 127.0.0.1
- 1.1.1.1
restart: unless-stopped
labels:
- "traefik.http.routers.pihole.rule=Host(`pihole.olympus.sherman.one`)"
- "traefik.http.services.pihole.loadbalancer.server.port=80"
traefik:
image: traefik
container_name: traefik
restart: unless-stopped
networks:
- connector
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- traefik_config:/etc/traefik
environment:
CF_DNS_API_TOKEN: 2a6MNiw5LEwd35at7ZzLdIpDvIk98VM6HGHUkH6Y
dns:
- 192.168.1.1
labels:
- "traefik.http.routers.traefik.rule=Host(`traefik.olympus.sherman.one`)"
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
volumes:
mosquitto_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/mosquitto
device: /dev/sdc
mosquitto_data:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/mosquitto
device: /dev/sdc
pihole-etc:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/pihole
device: /dev/sdc
pihole-dnsmasq:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/pihole
device: /dev/sdc
traefik_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/traefik
device: /dev/sdc
networks:
connector:
name: connector

View File

@@ -0,0 +1,51 @@
version: "3.7"
x-defaults: &default
restart: unless-stopped
networks:
- connector
- local
dns:
- 192.168.1.1
services:
wp:
<<: *default
image: wordpress
container_name: wordpress
volumes:
- wordpress:/var/www/html
environment:
WORDPRESS_DB_HOST: wp_db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
labels:
- "traefik.http.routers.wordpressSecure.rule=Host(`wp.sherman.one`)"
- "traefik.http.routers.wordpressSecure.tls=true"
- "traefik.http.routers.wordpressSecure.tls.certresolver=le"
- "traefik.http.routers.wordpressSecure.tls.domains[0].sans=*.sherman.one"
- "traefik.http.routers.wordpressSecure.entrypoints=web-secure"
- "traefik.http.routers.wordpress.rule=Host(`wp.sherman.one`)"
- "traefik.http.routers.wordpress.entrypoints=web"
- "traefik.http.routers.wordpress.middlewares=file-https@file"
wp_db:
<<: *default
image: mysql:5.7
volumes:
- db:/var/lib/mysql
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
MYSQL_RANDOM_ROOT_PASSWORD: 1
volumes:
wordpress:
db:
networks:
connector:
external: true
local:

233
utils/docker-compose.yaml Normal file
View File

@@ -0,0 +1,233 @@
version: "3.7"
x-defaults: &default
restart: unless-stopped
services:
ide:
<<: *default
#image: linuxserver/code-server
build: ide
container_name: ide
networks:
- connector
volumes:
- ide_config:/config
environment:
PASSWORD: password
SUDO_PASSWORD: pass
labels:
- "traefik.http.routers.codeServerSecure.rule=Host(`code.sherman.one`)"
- "traefik.http.routers.codeServerSecure.tls=true"
- "traefik.http.routers.codeServerSecure.tls.certresolver=le"
- "traefik.http.routers.codeServerSecure.tls.domains[0].sans=*.sherman.one"
- "traefik.http.routers.codeServerSecure.entrypoints=web-secure"
- "traefik.http.routers.codeServer.rule=Host(`code.sherman.one`)"
- "traefik.http.routers.codeServer.entrypoints=web"
- "traefik.http.routers.codeServer.middlewares=file-https@file"
- "traefik.http.services.codeServer.loadbalancer.server.port=8443"
bitwarden:
image: bitwardenrs/server
container_name: bitwarden
restart: unless-stopped
networks:
- connector
volumes:
- bitwarden_data:/data
ports:
- "1335:80"
dns:
- 192.168.1.1
labels:
- "traefik.http.routers.bitwarden.rule=Host(`pw.sherman.one`)"
- "traefik.http.routers.bitwarden.tls=true"
- "traefik.http.routers.bitwarden.tls.certresolver=le"
- "traefik.http.routers.bitwarden.tls.domains[0].sans=*.sherman.one"
- "traefik.http.routers.bitwarden.entrypoints=web-secure"
- "traefik.http.routers.bitwardenredirect.rule=Host(`pw.sherman.one`)"
- "traefik.http.routers.bitwardenredirect.entrypoints=web"
- "traefik.http.routers.bitwardenredirect.middlewares=file-https@file"
hass:
image: homeassistant/home-assistant:stable
container_name: hass
restart: unless-stopped
network_mode: host
volumes:
- homeassistant_config:/config
dns:
- 192.168.1.1
environment:
TZ: America/New_York
grocy:
image: linuxserver/grocy
container_name: grocy
restart: unless-stopped
networks:
- connector
environment:
TZ: America/New_York
volumes:
- grocy_config:/config
dns:
- 192.168.1.1
labels:
- "traefik.http.routers.grocySecure.rule=Host(`grocy.sherman.one`)"
- "traefik.http.routers.grocySecure.tls=true"
- "traefik.http.routers.grocySecure.tls.certresolver=le"
- "traefik.http.services.grocy.loadbalancer.server.port=80"
barcode-buddy:
image: f0rc3/barcodebuddy-docker
container_name: barcode-buddy
restart: unless-stopped
networks:
- connector
volumes:
- barcode_buddy_config:/config
dns:
- 192.168.1.1
labels:
- "traefik.http.routers.bb.rule=Host(`bb.sherman.one`)"
- "traefik.http.services.bb.loadbalancer.server.port=80"
git:
image: gitea/gitea:latest
container_name: gitea
environment:
USER_UID: 1000
USER_GID: 1000
DISABLE_SSH: "true"
ROOT_URL: "https://git.sherman.one"
restart: unless-stopped
networks:
- connector
volumes:
- gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.http.routers.gitearedirect.rule=Host(`git.sherman.one`)"
- "traefik.http.routers.gitearedirect.middlewares=file-https@file"
- "traefik.http.routers.gitearedirect.entrypoints=web"
- "traefik.http.routers.gitea.rule=Host(`git.sherman.one`)"
- "traefik.http.routers.gitea.tls=true"
- "traefik.http.routers.gitea.tls.certresolver=le"
- "traefik.http.routers.gitea.entrypoints=web-secure"
- "traefik.http.routers.gitea.tls.domains[0].sans=*.sherman.one"
- "traefik.http.services.gitea.loadbalancer.server.port=3000"
teedy:
image: sismics/docs:v1.7
container_name: teedy
restart: unless-stopped
networks:
- connector
volumes:
- teedy:/data
labels:
- "traefik.http.routers.teedy.rule=Host(`docs.sherman.one`)"
files:
build: files
container_name: fileserver
restart: unless-stopped
networks:
- connector
volumes:
- files:/var/www/localhost/htdocs/files/
labels:
- "traefik.http.routers.files.rule=Host(`sherman.one`)&&PathPrefix(`/files/`)"
- "traefik.http.routers.files.tls=true"
- "traefik.http.routers.files.tls.certresolver=le"
- "traefik.http.routers.files.entrypoints=web-secure"
- "traefik.http.routers.filesRedirect.rule=Host(`sherman.one`)&&PathPrefix(`/files/`)"
- "traefik.http.routers.filesRedirect.middlewares=file-https@file"
- "traefik.http.routers.filesRedirect.entrypoints=web"
minecraft:
image: itzg/minecraft-server
container_name: minecraft
restart: unless-stopped
volumes:
- minecraft:/data
dns:
- 192.168.1.1
ports:
- "25565:25565"
- "25575:25575"
environment:
EULA: "TRUE"
TYPE: "FORGE"
MEMORY: "10G"
VERSION: "1.12.2"
ENABLE_RCON: "TRUE"
RCON_PASSWORD: "password"
RCON_PORT: "25575"
MAX_TICK_TIME: -1
ALLOW_FLIGHT: "TRUE"
volumes:
ide_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/ide
device: /dev/sdc
nextcloud_data:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/nextcloud
device: /dev/sdc
nextcloud_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/nextcloud
device: /dev/sdc
bitwarden_data:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/bitwarden
device: /dev/sdc
homeassistant_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/homeassistant
device: /dev/sdc
grocy_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/grocy
device: /dev/sdc
gitea:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/gitea
device: /dev/sdc
teedy:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/teedy
device: /dev/sdc
minecraft:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/minecraft
device: /dev/sdc
barcode_buddy_config:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@config/barcode_buddy
device: /dev/sdc
files:
driver_opts:
type: btrfs
o: rw,noatime,compress=zstd,subvol=@data/files
device: /dev/sdc
networks:
connector:
external: true

8
utils/files/Dockerfile Normal file
View File

@@ -0,0 +1,8 @@
FROM alpine
RUN apk add --no-cache lighttpd && mkdir /var/www/localhost/htdocs/files
EXPOSE 80
CMD lighttpd -f /etc/lighttpd/lighttpd.conf -D

5
utils/ide/Dockerfile Normal file
View File

@@ -0,0 +1,5 @@
FROM linuxserver/code-server
RUN apt-get update && apt-get upgrade -y && apt-get install -y python3 python3-pip python3-venv docker.io && apt-get clean && apt-get autoclean
RUN pip3 install --no-cache pylint pyls yapf rope