251 lines
7.6 KiB
YAML
251 lines
7.6 KiB
YAML
services:
|
|
#
|
|
# official
|
|
#
|
|
nginx:
|
|
image: nginx:1.25.4 # official, linuxserver/nginx
|
|
container_name: nginx
|
|
# ports:
|
|
# - 444:443
|
|
extra_hosts:
|
|
- "host:192.168.2.150"
|
|
volumes:
|
|
#- /home/user/certs:/host/etc/certs
|
|
- /opt/nginx/etc/.htpasswd:/host/etc/.htpasswd
|
|
- /opt/nginx/etc/nginx/conf:/etc/nginx/conf
|
|
- /opt/nginx/etc/nginx/conf.d:/etc/nginx/conf.d
|
|
- /opt/nginx/var/log/nginx:/var/log/nginx
|
|
- /opt/seafile/seafile-server-latest/seahub/media:/host/var/www/seafile
|
|
restart: unless-stopped
|
|
filebrowser:
|
|
image: filebrowser/filebrowser:v2.21.1 # official, no linuxserver image
|
|
container_name: filebrowser
|
|
volumes:
|
|
- /opt/filebrowser/.filebrowser.json:/.filebrowser.json
|
|
- /opt/filebrowser/database.db:/database.db
|
|
- /media:/host/media
|
|
ports:
|
|
- 8001:80
|
|
restart: unless-stopped
|
|
#
|
|
# custom
|
|
#
|
|
caddy:
|
|
image: caddy
|
|
container_name: caddy
|
|
build:
|
|
context: /opt/caddy/
|
|
ports:
|
|
- 444:443
|
|
volumes:
|
|
- /opt/caddy/Caddyfile:/etc/caddy/Caddyfile
|
|
- /opt/caddy/data:/data
|
|
environment:
|
|
#- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:?}
|
|
#- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:?}
|
|
- AWS_ACCESS_KEY_ID="AKIAY4DUYEBSTECHF6RN"
|
|
- AWS_SECRET_ACCESS_KEY="tdx5eWda19/E7T3cttxDyLR2DabArOh2jHzTFV+d"
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- nginx
|
|
links:
|
|
- nginx
|
|
openvpn-server: # custom, no linuxserver image
|
|
image: kylemanna/openvpn:2.4
|
|
container_name: openvpn-server
|
|
privileged: true
|
|
extra_hosts:
|
|
- "host:192.168.2.150"
|
|
ports:
|
|
- 443:443
|
|
cap_add:
|
|
- NET_ADMIN
|
|
volumes:
|
|
- /opt/openvpn-server:/etc/openvpn
|
|
network_mode: bridge
|
|
restart: unless-stopped
|
|
#openvpn-server:
|
|
# image: jpetazzo/dockvpn:latest
|
|
# container_name: openvpn-server
|
|
# extra_hosts:
|
|
# - "host:192.168.2.150"
|
|
# ports:
|
|
# - 443:443
|
|
# cap_add:
|
|
# - NET_ADMIN
|
|
# volumes:
|
|
# - /opt/openvpn:/etc/openvpn
|
|
# restart: unless-stopped
|
|
borgmatic:
|
|
image: b3vis/borgmatic:v1.1.10-1.4.21 # custom, no linuxserver image
|
|
container_name: borgmatic
|
|
volumes:
|
|
- /media:/media
|
|
- /root/.ssh:/root/.ssh
|
|
- /opt/borgmatic/config/crontab.txt:/etc/borgmatic.d/crontab.txt
|
|
- /opt/borgmatic/config:/config
|
|
- /opt/borgmatic/keys:/keys
|
|
- /opt/borgmatic/cache:/cache
|
|
- /opt/borgmatic/log:/log
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=Europe/Amsterdam
|
|
seafile:
|
|
image: gronis/seafile:9.0.4
|
|
container_name: seafile
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /opt/seafile:/seafile:rw
|
|
- /media/seafile:/seafile/seafile-data:rw
|
|
ports:
|
|
- 8000:8000
|
|
- 8082:8082
|
|
environment:
|
|
- MODE=autorun
|
|
wordpress:
|
|
image: wordpress:mod # custom, ook wordpress:php8.1-apache-pgsql (official + pgsql extension) in /opt/wordpress/docker/build.sh, maar werkt niet met postgres 12!
|
|
container_name: wordpress
|
|
volumes:
|
|
- /opt/wordpress:/var/www/html
|
|
ports:
|
|
- 8888:80
|
|
environment:
|
|
- WORDPRESS_DB_HOST=pgsql
|
|
- WORDPRESS_DB_USER=wordpress
|
|
- WORDPRESS_DB_PASSWORD=wordpress
|
|
- WORDPRESS_DB_NAME=wordpress
|
|
links:
|
|
- pgsql
|
|
#- mysql # Lukt niet om te migreren van pgsql naar mysql
|
|
restart: unless-stopped
|
|
mysql:
|
|
image: mysql:5.7 # official
|
|
container_name: mysql
|
|
volumes:
|
|
- /opt/mysql:/var/lib/mysql
|
|
environment:
|
|
MYSQL_DATABASE: example
|
|
MYSQL_USER: example
|
|
MYSQL_PASSWORD: example
|
|
MYSQL_ROOT_PASSWORD: example
|
|
restart: unless-stopped
|
|
adminer:
|
|
image: adminer:latest # official
|
|
container_name: adminer
|
|
restart: always
|
|
links:
|
|
- pgsql
|
|
- mysql
|
|
ports:
|
|
- 7070:8080
|
|
pgsql:
|
|
image: postgres:latest # official, no linuxserver image
|
|
container_name: pgsql
|
|
volumes:
|
|
- /opt/pgsql:/var/lib/postgresql/data
|
|
ports:
|
|
- 5432:5432
|
|
environment:
|
|
- POSTGRES_PASSWORD=example
|
|
restart: unless-stopped
|
|
pgsql-admin:
|
|
image: dpage/pgadmin4:latest # custom, no linuxserver image
|
|
container_name: pgsql-admin
|
|
volumes:
|
|
- /opt/pgsql-admin=/var/lib/pgadmin
|
|
ports:
|
|
- 5050:80
|
|
environment:
|
|
- PGADMIN_DEFAULT_EMAIL=admin
|
|
- PGADMIN_DEFAULT_PASSWORD=toUEhcycUC5Kpj27
|
|
restart: unless-stopped
|
|
apt-cacher:
|
|
image: sameersbn/apt-cacher-ng:3.1-3
|
|
container_name: apt-cacher
|
|
ports:
|
|
- "3142:3142"
|
|
volumes:
|
|
- /media/scratch/apt-cacher:/var/cache/apt-cacher-ng
|
|
restart: unless-stopped
|
|
dns-ad-blocker:
|
|
image: oznu/dns-ad-blocker:latest # custom, no linuxserver image, no version
|
|
container_name: dns-ad-blocker
|
|
ports:
|
|
- "192.168.2.151:53:53/udp"
|
|
environment:
|
|
- AUTO_UPDATE=1
|
|
- BRANCH=master
|
|
- DNSCRYPT=1
|
|
- DNSCRYPT_PROVIDER_NAME=2.dnscrypt-cert.ns0.dnscrypt.nl
|
|
- DNSCRYPT_RESOLVER_ADDR=45.76.35.212
|
|
- DNSCRYPT_PROVIDER_KEY=4C84:FB8C:0511:5DFA:5F97:C5ED:0329:1370:C78A:BCD6:4E15:DD53:AB08:DE72:FB84:4ACA
|
|
#
|
|
# homemade
|
|
#
|
|
lighttpd:
|
|
image: webserver:latest # homemade, no linuxserver image
|
|
container_name: lighttpd
|
|
ports:
|
|
- 80:81
|
|
volumes:
|
|
- /opt/lighttpd/etc:/host/etc
|
|
- /home/user/certs:/host/etc/certs
|
|
- /opt/lighttpd/var/log:/host/var/log
|
|
- /home/user/www:/host/var/www/global
|
|
restart: unless-stopped
|
|
collectd:
|
|
image: collectd:latest # homemade, no linuxserver image
|
|
container_name: collectd
|
|
privileged: true
|
|
volumes:
|
|
- /opt/collectd/etc:/etc/collectd
|
|
- /opt/collectd/var:/var/lib/collectd
|
|
- /opt/collectd/usr:/host/usr
|
|
- /root/scripts/speedtest-cli:/sbin/speedtest-cli
|
|
- /:/host/root
|
|
- /media:/host/media
|
|
- /var/lib/docker:/media/docker
|
|
- /dev/mapper:/dev/mapper
|
|
restart: unless-stopped
|
|
|
|
# Homeassistant et al.
|
|
esphome:
|
|
image: esphome/esphome:2022.12.8
|
|
container_name: esphome
|
|
volumes:
|
|
- /opt/esphome:/config:rw
|
|
- /opt/esphome/log:/log:rw
|
|
- /etc/localtime:/etc/localtime:ro
|
|
#devices:
|
|
#- /dev/ttyACM0:/dev/ttyACM0
|
|
network_mode: host
|
|
restart: unless-stopped
|
|
homeassistant:
|
|
container_name: homeassistant
|
|
image: homeassistant/home-assistant:2024.10
|
|
volumes:
|
|
- /opt/homeassistant:/config
|
|
- /etc/localtime:/etc/localtime:ro
|
|
restart: unless-stopped
|
|
privileged: true
|
|
network_mode: host
|
|
timescaledb:
|
|
image: timescale/timescaledb:2.7.1-pg14 # official
|
|
container_name: timescaledb
|
|
volumes:
|
|
- /opt/timescaledb:/var/lib/postgresql/data
|
|
ports:
|
|
- 6543:5432
|
|
environment:
|
|
- POSTGRES_USER=timescaleuser
|
|
- POSTGRES_PASSWORD=timescalepwd
|
|
restart: unless-stopped
|
|
grafana: # admin:grafana
|
|
image: grafana/grafana:9.0.2 # official
|
|
container_name: grafana
|
|
volumes:
|
|
- /opt/grafana:/var/lib/grafana
|
|
ports:
|
|
- 3333:3000
|
|
restart: unless-stopped
|