282 lines
8.1 KiB
YAML
282 lines
8.1 KiB
YAML
networks:
|
|
dns_net:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.20.0.0/16
|
|
services:
|
|
qbittorrent-nox:
|
|
# for debugging
|
|
#cap_add:
|
|
#- SYS_PTRACE
|
|
container_name: qbittorrent-nox
|
|
environment:
|
|
#- PAGID=10000
|
|
#- PGID=1000
|
|
#- PUID=1000
|
|
- QBT_EULA=accept
|
|
- QBT_VERSION=latest
|
|
- QBT_WEBUI_PORT=8080
|
|
#- TZ=UTC
|
|
#- UMASK=022
|
|
image: qbittorrentofficial/qbittorrent-nox:latest
|
|
ports:
|
|
# for bittorrent traffic
|
|
- 6881:6881/tcp
|
|
- 6881:6881/udp
|
|
# for WebUI
|
|
- 8080:8080/tcp
|
|
read_only: true
|
|
stop_grace_period: 30m
|
|
tmpfs:
|
|
- /tmp
|
|
tty: true
|
|
volumes:
|
|
- /home/guts/docker:/config
|
|
- /media/network/Torrents:/downloads
|
|
- /home/guts/VueTorrent:/VueTorrent
|
|
jackett:
|
|
image: lscr.io/linuxserver/jackett:latest
|
|
container_name: jackett
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=Etc/UTC
|
|
- AUTO_UPDATE=true #optional
|
|
- RUN_OPTS= #optional
|
|
|
|
volumes:
|
|
- /home/guts/docker:/config
|
|
- /media/Torrents:/downloads
|
|
ports:
|
|
- 9117:9117
|
|
|
|
restart: always
|
|
|
|
flaresolverr:
|
|
# DockerHub mirror flaresolverr/flaresolverr:latest
|
|
image: alexfozor/flaresolverr:pr-1300-experimental
|
|
container_name: flaresolverr
|
|
environment:
|
|
- LOG_LEVEL=${LOG_LEVEL:-info}
|
|
- LOG_HTML=${LOG_HTML:-false}
|
|
- CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
|
|
- TZ=America/Santo_Domingo
|
|
ports:
|
|
- "${PORT:-8191}:8191"
|
|
restart: unless-stopped
|
|
pihole:
|
|
container_name: pihole
|
|
image: pihole/pihole:latest
|
|
networks:
|
|
dns_net:
|
|
ipv4_address: 172.20.0.6
|
|
ports:
|
|
# DNS Ports
|
|
- "53:53/tcp"
|
|
- "53:53/udp"
|
|
# Default HTTP Port
|
|
- "6345:80/tcp"
|
|
# Default HTTPs Port. FTL will generate a self-signed certificate
|
|
- "6346:443/tcp"
|
|
# Uncomment the below if using Pi-hole as your DHCP Server
|
|
#- "67:67/udp"
|
|
environment:
|
|
# Set the appropriate timezone for your location (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g:
|
|
TZ: 'America/Santo_Domingo'
|
|
# Set a password to access the web interface. Not setting one will result in a random password being assigned
|
|
FTLCONF_webserver_api_password: ${FTLCONF_webserver_api_password}
|
|
PIHOLE_DNS_: '172.20.0.7#5335'
|
|
CUSTOM_CACHE_SIZE: 0
|
|
# Volumes store your data between container upgrades
|
|
volumes:
|
|
# For persisting Pi-hole's databases and common configuration file
|
|
- '/home/guts/docker/pihole:/etc/pihole'
|
|
|
|
# Uncomment the below if you have custom dnsmasq config files that you want to persist. Not needed for most starting fresh with Pi-hole v6. If you're upgrading from v5 you and have used this directory before, you should keep it enabled for the first v6 container start to allow for a complete migration. It can be removed afterwards
|
|
- '/home/guts/docker/dnsmasq.d:/etc/dnsmasq.d'
|
|
cap_add:
|
|
# See https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
|
|
# Required if you are using Pi-hole as your DHCP server, else not needed
|
|
- NET_ADMIN
|
|
restart: always
|
|
unbound:
|
|
container_name: unbound
|
|
image: madnuttah/unbound:latest
|
|
hostname: unbound
|
|
networks:
|
|
dns_net:
|
|
ipv4_address: 172.20.0.7
|
|
environment:
|
|
- TZ=America/Santo_Domingo
|
|
- ServerIP=172.20.0.7
|
|
- UNBOUND_UID=1000 #Example only, check your docker user info
|
|
- UNBOUND_GID=1000
|
|
volumes:
|
|
- /home/guts/docker/unbound/conf.d:/usr/local/unbound/conf.d/:rw
|
|
- /home/guts/docker/unbound/unbound.conf:/usr/local/unbound/unbound.conf:rw
|
|
- /home/guts/docker/unbound/log.d/unbound.log:/usr/local/unbound/log.d/unbound.log:rw
|
|
- /home/guts/docker/unbound/zones.d:/usr/local/unbound/zones.d/:rw
|
|
- /home/guts/docker/unbound/iana.d:/usr/local/unbound/iana.d/:rw
|
|
ports:
|
|
- "5335:5335/tcp"
|
|
- "5335:5335/udp"
|
|
restart: unless-stopped
|
|
dockerproxy:
|
|
image: ghcr.io/tecnativa/docker-socket-proxy:latest
|
|
container_name: dockerproxy
|
|
environment:
|
|
- CONTAINERS=1 # Allow access to viewing containers
|
|
- SERVICES=1 # Allow access to viewing services (necessary when using Docker Swarm)
|
|
- TASKS=1 # Allow access to viewing tasks (necessary when using Docker Swarm)
|
|
- POST=0 # Disallow any POST operations (effectively read-only)
|
|
ports:
|
|
- 127.0.0.1:2375:2375
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro # Mounted as read-only
|
|
restart: unless-stopped
|
|
homepage:
|
|
image: ghcr.io/gethomepage/homepage:latest
|
|
container_name: homepage
|
|
ports:
|
|
- 3000:3000
|
|
volumes:
|
|
- /home/guts/docker/homepage:/app/config # Make sure your local config directory exists
|
|
- /home/guts/docker/homepage/images:/app/public/images
|
|
env_file: ".env"
|
|
metube:
|
|
image: ghcr.io/alexta69/metube
|
|
container_name: metube
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8081:8081"
|
|
volumes:
|
|
- /media/network/YouTube:/downloads
|
|
speedtest-tracker:
|
|
image: lscr.io/linuxserver/speedtest-tracker:latest
|
|
restart: unless-stopped
|
|
container_name: speedtest-tracker
|
|
ports:
|
|
- 9080:80
|
|
- 9443:443
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- APP_KEY=${APP_KEY_SPEEDTEST}
|
|
- DB_CONNECTION=sqlite
|
|
- SPEEDTEST_SCHEDULE=6 */2 * * *
|
|
- SPEEDTEST_SERVERS=26513
|
|
volumes:
|
|
- /home/guts/docker/speedtest-tracker:/config
|
|
kavita:
|
|
image: lscr.io/linuxserver/kavita:latest
|
|
container_name: kavita
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=Etc/UTC
|
|
volumes:
|
|
- /home/guts/docker/kavita:/config
|
|
- /media/network/kavita:/data
|
|
ports:
|
|
- 5000:5000
|
|
restart: unless-stopped
|
|
redis:
|
|
container_name: redis
|
|
image: docker.io/valkey/valkey:8-alpine
|
|
command: valkey-server --save 30 1 --loglevel warning
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /home/guts/docker/valkey:/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:
|
|
- "8686:8080"
|
|
volumes:
|
|
- /home/guts/docker/searxng:/etc/searxng:rw
|
|
environment:
|
|
- SEARXNG_BASE_URL=http://${SEARXNG_HOSTNAME:-localhost}/
|
|
- UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-4}
|
|
- UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-4}
|
|
cap_drop:
|
|
- ALL
|
|
cap_add:
|
|
- CHOWN
|
|
- SETGID
|
|
- SETUID
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "1m"
|
|
max-file: "1"
|
|
forgejo:
|
|
image: codeberg.org/forgejo/forgejo:11
|
|
container_name: forgejo
|
|
environment:
|
|
- USER_UID=1000
|
|
- USER_GID=1000
|
|
restart: always
|
|
volumes:
|
|
- /home/guts/docker/forgejo/data:/data
|
|
- /home/guts/docker/forgejo/timezone:/etc/timezone:ro
|
|
- /home/guts/docker/forgejo/localtime:/etc/localtime:ro
|
|
ports:
|
|
- '3005:3000'
|
|
- '222:22'
|
|
freshrss:
|
|
image: freshrss/freshrss:latest
|
|
container_name: freshrss
|
|
hostname: freshrss
|
|
restart: unless-stopped
|
|
logging:
|
|
options:
|
|
max-size: 10m
|
|
volumes:
|
|
- /var/www/freshrss/data:/var/www/FreshRSS/data
|
|
- /var/www/freshrss/extensions:/var/www/FreshRSS/extensions
|
|
ports:
|
|
- "8787:80"
|
|
environment:
|
|
TZ: America/Santo_Domingo
|
|
db:
|
|
image: mariadb:10.11
|
|
restart: always
|
|
command: --transaction-isolation=READ-COMMITTED
|
|
volumes:
|
|
- /var/lib/mysql/mariadb:/var/lib/mysql
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
|
- MYSQL_DATABASE=nextcloud
|
|
- MYSQL_USER=nextcloud
|
|
redis-nc:
|
|
image: redis:alpine
|
|
restart: always
|
|
app:
|
|
image: nextcloud
|
|
restart: always
|
|
ports:
|
|
- 8985:80
|
|
depends_on:
|
|
- redis-nc
|
|
- db
|
|
volumes:
|
|
- /var/www/nextcloud:/var/www/html
|
|
environment:
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
|
- MYSQL_DATABASE=nextcloud
|
|
- MYSQL_USER=nextcloud
|
|
- MYSQL_HOST=db
|