From 19c6513a50b87545730ecf2220fbb3985ab315f2 Mon Sep 17 00:00:00 2001 From: Rik Veenboer Date: Fri, 6 Dec 2024 17:18:04 +0100 Subject: [PATCH] initial commit --- .gitignore | 40 ++++++++ docker-compose.yml | 250 +++++++++++++++++++++++++++++++++++++++++++++ unused.yaml | 40 ++++++++ 3 files changed, 330 insertions(+) create mode 100644 .gitignore create mode 100644 docker-compose.yml create mode 100644 unused.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ca9b92c --- /dev/null +++ b/.gitignore @@ -0,0 +1,40 @@ +*.pyc +*.log +*.db +*.db-shm +*.db-wal +*.pid +*.dat +*.env +.idea/ +.ipynb_checkpoints/ +.ruff_cache/ +log/ +logs/ +borgmatic/borg/ +caddy/data/ +collectd/var/ +dns-ad-blocker/dnscrypt-proxy.toml +dns-ad-blocker/dnsmasq.hosts +esphome/.esphome/ +esphome/secrets.yaml +esphome/tuya +facette/var/ +homeassistant/.HA_VERSION +homeassistant/.storage/ +homeassistant/blueprints/ +homeassistant/components/ +homeassistant/core +homeassistant/custom_components/ +homeassistant/home-assistant-3*.json +homeassistant/home-assistant.log.* +homeassistant/secrets.yaml +homeassistant/tts/ +jellyfin/ +openvpn-server/crl.pem +openvpn-server/pki/ +openvpn-server/*.ovpn +pgadmin/ +rsnapshot/var/ +seafile/database/ +seafile/server/ diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..6f86286 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,250 @@ +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="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" + 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 diff --git a/unused.yaml b/unused.yaml new file mode 100644 index 0000000..d5691ec --- /dev/null +++ b/unused.yaml @@ -0,0 +1,40 @@ + mysql: + image: mysql:latest + instances: + mysql-1: + ship: local + ports: {service: 3306} + lifecycle: + running: [{type: tcp, port: service}] + volumes: + /host: /opt/mysql + #/host/reset.sql: /opt/mysql/fix/reset.sql + #/etc/service/mysql/run: /opt/mysql/fix/service + inverter: + image: inverter:latest + instances: + inverter-1: + ship: local + volumes: + /opt/inverter: /home/user/inverter + /opt/inverter/data: /opt/inverter/data + /var/log: /opt/inverter/var/log + /etc/logrotate.d: /opt/inverter/etc/logrotate.d + privileged: true + backintime: + image: backintime:latest + instances: + backintime-1: + ship: local + volumes: + /var/log: /opt/backintime/var/log + /root/.local/share/backintime: /opt/backintime/local + /var/spool: /opt/backintime/var/spool + /root/.config/backintime: /opt/backintime/config + /host/rootfs: / + /host/etc: /etc + /host/opt: /opt + /host/root: /root + /host/home: /home + /host/docker: /opt + /host/backup: /media/backup