Add my homelab setup, converted to docker compose files
This commit is contained in:
commit
eecd123c53
16
blog/docker-compose.yml
Executable file
16
blog/docker-compose.yml
Executable file
@ -0,0 +1,16 @@
|
||||
version: "3.3"
|
||||
|
||||
services:
|
||||
static-web-server:
|
||||
image: joseluisq/static-web-server:latest
|
||||
container_name: blog
|
||||
ports:
|
||||
- 8081:80
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
# Note: those envs are customizable but also optional
|
||||
- SERVER_ROOT=/var/public
|
||||
- SERVER_CONFIG_FILE=/etc/config.toml
|
||||
volumes:
|
||||
- /home/isaac/www/blog.shoebottom.ca/public:/var/public
|
||||
- /docker/appdata/static-web-server/blog.toml:/etc/config.toml
|
10
cloudflare-ddns/docker-compose.yml
Executable file
10
cloudflare-ddns/docker-compose.yml
Executable file
@ -0,0 +1,10 @@
|
||||
version: '2'
|
||||
services:
|
||||
cloudflare-ddns:
|
||||
container_name: cloudflare-ddns
|
||||
image: oznu/cloudflare-ddns:latest
|
||||
restart: always
|
||||
environment:
|
||||
- API_KEY=rrsII0uMDMCjOjkpwicQJRh9JjiGIWvZpCLmCUzN
|
||||
- ZONE=shoebottom.ca
|
||||
- PROXIED=true
|
41
cobalt/docker-compose.yml
Executable file
41
cobalt/docker-compose.yml
Executable file
@ -0,0 +1,41 @@
|
||||
version: '3.5'
|
||||
|
||||
services:
|
||||
cobalt-api:
|
||||
image: ghcr.io/imputnet/cobalt:latest
|
||||
restart: unless-stopped
|
||||
container_name: cobalt-api
|
||||
init: true
|
||||
ports:
|
||||
- 9000:9000/tcp
|
||||
# if you're using a reverse proxy, uncomment the next line and remove the one above (9000:9000/tcp):
|
||||
#- 127.0.0.1:9000:9000
|
||||
|
||||
environment:
|
||||
# replace https://api.cobalt.tools/ with your instance's target url in same format
|
||||
API_URL: "https://cobalt-api.shoebottom.ca/"
|
||||
# replace eu-nl with your instance's distinctive name
|
||||
API_NAME: "ca-nb-irs"
|
||||
# if you want to use cookies when fetching data from services, uncomment the next line and the lines under volume
|
||||
# COOKIE_PATH: "/cookies.json"
|
||||
# see docs/run-an-instance.md for more information
|
||||
|
||||
# if you want to use cookies when fetching data from services, uncomment volumes and next line
|
||||
#volumes:
|
||||
#- ./cookies.json:/cookies.json
|
||||
|
||||
cobalt-web:
|
||||
image: ghcr.io/imputnet/cobalt:latest
|
||||
restart: unless-stopped
|
||||
container_name: cobalt-web
|
||||
init: true
|
||||
ports:
|
||||
- 9001:9001/tcp
|
||||
# if you're using a reverse proxy, uncomment the next line and remove the one above (9001:9001/tcp):
|
||||
#- 127.0.0.1:9001:9001
|
||||
|
||||
environment:
|
||||
# replace https://cobalt.tools/ with your instance's target url in same format
|
||||
WEB_URL: "https://cobalt.shoebottom.ca/"
|
||||
# replace https://api.cobalt.tools/ with preferred api instance url
|
||||
API_URL: "https://cobalt-api.shoebottom.ca/"
|
21
conduit/docker-compose.yml
Executable file
21
conduit/docker-compose.yml
Executable file
@ -0,0 +1,21 @@
|
||||
version: '3'
|
||||
services:
|
||||
conduit:
|
||||
container_name: conduit
|
||||
image: matrixconduit/matrix-conduit:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 6167:6167
|
||||
volumes:
|
||||
- /docker/appdata/conduit/db:/var/lib/matrix-conduit/
|
||||
- /docker/appdata/conduit/conduit.toml:/etc/conduit/conduit.toml
|
||||
environment:
|
||||
CONDUIT_CONFIG: /etc/conduit/conduit.toml
|
||||
turn:
|
||||
container_name: coturn-server
|
||||
image: docker.io/coturn/coturn:latest
|
||||
restart: unless-stopped
|
||||
network_mode: "host"
|
||||
volumes:
|
||||
- /docker/appdata/conduit/coturn.conf:/etc/coturn/turnserver.conf
|
||||
|
1
copy.sh
Executable file
1
copy.sh
Executable file
@ -0,0 +1 @@
|
||||
sudo cp -R /docker/appdata/yacht/config/compose/* .
|
12
gitea/docker-compose.yml
Executable file
12
gitea/docker-compose.yml
Executable file
@ -0,0 +1,12 @@
|
||||
services:
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: gitea
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /docker/appdata/gitea/data:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- "3001:3000"
|
||||
- "2221:22"
|
14
handbrake/docker-compose.yml
Executable file
14
handbrake/docker-compose.yml
Executable file
@ -0,0 +1,14 @@
|
||||
version: '3'
|
||||
services:
|
||||
handbrake:
|
||||
container_name: handbrake
|
||||
image: jlesage/handbrake:latest
|
||||
restart: on-failure
|
||||
ports:
|
||||
- "5800:5800"
|
||||
volumes:
|
||||
- "/home/isaac:/storage:ro"
|
||||
- "/docker/appdata/handbrake/config:/config:rw"
|
||||
- "/docker/appdata/handbrake/trash:/trash:rw"
|
||||
- "/docker/appdata/handbrake/watch:/watch:rw"
|
||||
- "/docker/appdata/handbrake/output:/output:rw"
|
23
homepage/docker-compose.yml
Executable file
23
homepage/docker-compose.yml
Executable file
@ -0,0 +1,23 @@
|
||||
version: "3.3"
|
||||
|
||||
services:
|
||||
static-web-server:
|
||||
image: joseluisq/static-web-server:latest
|
||||
container_name: homepage
|
||||
ports:
|
||||
- 8080:80
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
# Note: those envs are customizable but also optional
|
||||
- SERVER_ROOT=/var/public
|
||||
- SERVER_CONFIG_FILE=/etc/config.toml
|
||||
volumes:
|
||||
- /home/isaac/www/shoebottom.ca:/var/public
|
||||
- /home/isaac/Media/Music-LQ:/var/public/music-lq
|
||||
- /home/isaac/Media/Music:/var/public/music
|
||||
- /home/isaac/Media/Music-HQ:/var/public/music-hq
|
||||
- /home/isaac/Media/Movies:/var/public/movies
|
||||
- /home/isaac/Media/TV:/var/public/tv
|
||||
- /home/isaac/Media/Anime:/var/public/anime
|
||||
- /home/isaac/Media/Host:/var/public/host
|
||||
- /docker/appdata/static-web-server/homepage.toml:/etc/config.toml
|
7
jellyfin-vue/docker-compose.yml
Executable file
7
jellyfin-vue/docker-compose.yml
Executable file
@ -0,0 +1,7 @@
|
||||
version: '3'
|
||||
services:
|
||||
jellyfin-vue:
|
||||
image: ghcr.io/jellyfin/jellyfin-vue:unstable
|
||||
ports:
|
||||
- 8083:80
|
||||
restart: 'unless-stopped'
|
17
jellyfin/docker-compose.yml
Executable file
17
jellyfin/docker-compose.yml
Executable file
@ -0,0 +1,17 @@
|
||||
version: '3'
|
||||
services:
|
||||
jellyfin:
|
||||
image: jellyfin/jellyfin:latest
|
||||
network_mode: 'host'
|
||||
restart: 'unless-stopped'
|
||||
environment:
|
||||
- JELLYFIN_CACHE_DIR=/var/cache/jellyfin
|
||||
- JELLYFIN_CONFIG_DIR=/etc/jellyfin
|
||||
- JELLYFIN_DATA_DIR=/var/lib/jellyfin
|
||||
- JELLYFIN_LOG_DIR=/var/log/jellyfin
|
||||
volumes:
|
||||
- /docker/appdata/jellyfin/etc:/etc/jellyfin
|
||||
- /docker/appdata/jellyfin/cache:/var/cache/jellyfin
|
||||
- /docker/appdata/jellyfin/lib:/var/lib/jellyfin
|
||||
- /docker/appdata/jellyfin/log:/var/log/jellyfin
|
||||
- /home/isaac/Media:/media
|
12
nginxpm/docker-compose.yml
Executable file
12
nginxpm/docker-compose.yml
Executable file
@ -0,0 +1,12 @@
|
||||
version: '3.8'
|
||||
services:
|
||||
nginxpm:
|
||||
container_name: nginx-proxy-manager
|
||||
image: 'jc21/nginx-proxy-manager:latest'
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
DISABLE_IPV6: 'true'
|
||||
network_mode: host
|
||||
volumes:
|
||||
- /docker/appdata/nginxpm/data:/data
|
||||
- /docker/appdata/nginxpm/letsencrypt:/etc/letsencrypt
|
13
owncast/docker-compose.yml
Executable file
13
owncast/docker-compose.yml
Executable file
@ -0,0 +1,13 @@
|
||||
version: "3.4"
|
||||
services:
|
||||
owncast:
|
||||
image: owncast/owncast:latest
|
||||
container_name: "owncast"
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
ports:
|
||||
- "8082:8080"
|
||||
- "1935:1935"
|
||||
volumes:
|
||||
- /docker/appdata/owncast/data:/app/data
|
28
pihole/docker-compose.yml
Executable file
28
pihole/docker-compose.yml
Executable file
@ -0,0 +1,28 @@
|
||||
version: "3"
|
||||
|
||||
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
|
||||
services:
|
||||
pihole:
|
||||
container_name: pihole
|
||||
image: cbcrowe/pihole-unbound:latest
|
||||
# For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
|
||||
ports:
|
||||
- "53:53/tcp"
|
||||
- "53:53/udp"
|
||||
- "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
|
||||
- "31415:80/tcp"
|
||||
environment:
|
||||
TZ: 'America/Moncton'
|
||||
WEBPASSWORD: 'Txx6jwOf213s51afeE'
|
||||
FTLCONF_LOCAL_IPV4: '192.168.2.128'
|
||||
PIHOLE_DNS_: "127.0.0.1#5335"
|
||||
DNSSEC: "true"
|
||||
DNSMASQ_LISTENING: "single"
|
||||
# Volumes store your data between container upgrades
|
||||
volumes:
|
||||
- '/docker/appdata/pihole/data:/etc/pihole'
|
||||
- '/docker/appdata/pihole/dnsmasq:/etc/dnsmasq.d'
|
||||
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
|
||||
cap_add:
|
||||
- NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed
|
||||
restart: unless-stopped
|
26
plex-wrapped/docker-compose.yml
Executable file
26
plex-wrapped/docker-compose.yml
Executable file
@ -0,0 +1,26 @@
|
||||
version: '3'
|
||||
services:
|
||||
wrapperr:
|
||||
ports:
|
||||
- 8282:8282
|
||||
container_name: wrapperr
|
||||
image: ghcr.io/aunefyren/wrapperr:latest
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- '/docker/appdata/wrapperr/config:/app/config'
|
||||
tautulli:
|
||||
image: ghcr.io/tautulli/tautulli:latest
|
||||
container_name: tautulli
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- '/docker/appdata/tautulli/config:/config'
|
||||
environment:
|
||||
- TZ=America/Moncton
|
||||
ports:
|
||||
- 8181:8181
|
||||
|
||||
networks:
|
||||
plex-wrapped:
|
||||
driver: bridge
|
||||
ipam:
|
||||
driver: default
|
13
plex/docker-compose.yml
Executable file
13
plex/docker-compose.yml
Executable file
@ -0,0 +1,13 @@
|
||||
version: '2'
|
||||
services:
|
||||
plex:
|
||||
container_name: plex
|
||||
image: plexinc/pms-docker:latest
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
environment:
|
||||
- TZ=America/Moncton
|
||||
volumes:
|
||||
- /docker/appdata/plex/data:/config
|
||||
- /tmp/:/transcode
|
||||
- /home/isaac/Media:/data
|
49
searxng-docker/docker-compose.yml
Executable file
49
searxng-docker/docker-compose.yml
Executable file
@ -0,0 +1,49 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
redis:
|
||||
container_name: redis
|
||||
image: cgr.dev/chainguard/valkey:latest
|
||||
command: --save 30 1 --loglevel warning
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- valkey-data:/data
|
||||
cap_drop:
|
||||
- ALL
|
||||
cap_add:
|
||||
- SETGID
|
||||
- SETUID
|
||||
- DAC_OVERRIDE
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "1m"
|
||||
max-file: "1"
|
||||
|
||||
searxng:
|
||||
container_name: searxng
|
||||
image: docker.io/searxng/searxng:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8383:8080
|
||||
volumes:
|
||||
- /docker/appdata/searxng/config:/etc/searxng:rw
|
||||
environment:
|
||||
- SEARXNG_BASE_URL=https://searx.shoebottom.ca/
|
||||
cap_drop:
|
||||
- ALL
|
||||
cap_add:
|
||||
- CHOWN
|
||||
- SETGID
|
||||
- SETUID
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "1m"
|
||||
max-file: "1"
|
||||
|
||||
networks:
|
||||
searxng:
|
||||
|
||||
volumes:
|
||||
valkey-data:
|
11
yacht/docker-compose.yml
Executable file
11
yacht/docker-compose.yml
Executable file
@ -0,0 +1,11 @@
|
||||
version: "3"
|
||||
services:
|
||||
yacht:
|
||||
container_name: yacht
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
volumes:
|
||||
- /docker/appdata/yacht/config:/config
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
image: selfhostedpro/yacht
|
||||
|
Loading…
Reference in New Issue
Block a user