Compare commits

...

12 Commits

Author SHA1 Message Date
Tobias Nauen
9f012ffdeb add gitea yaml 2026-02-24 10:58:02 +01:00
Tobias Nauen
7dd0a34a80 add rsnapshot.conf files from pi5 and klingon 2026-02-24 10:56:52 +01:00
Tobias Nauen
d2d4b93a6a add uptime kuma docker setup 2026-01-16 21:53:42 +01:00
Tobias Nauen
b93bf4493d update readme and add dockerfiles 2026-01-14 08:59:32 +01:00
Tobias Nauen
97b5eb30db add correct networking setup for plausible to work with nginx 2026-01-14 08:49:23 +01:00
Tobias Nauen
8b35dd31a9 add external folder for games 2026-01-13 11:21:39 +01:00
Tobias Nauen
efe4d12b3d Create tobias-website.yaml 2025-11-29 09:16:11 +01:00
Tobias Nauen
8a3c8a4209 Delete personal-website.yaml 2025-11-29 09:15:24 +01:00
Tobias Nauen
2ac97de0c0 Update nginx.yaml 2025-11-29 09:14:46 +01:00
Tobias Nauen
cea6260e34 Update nextcloud.yaml 2025-11-29 09:14:17 +01:00
Tobias Nauen
73035b03fe Update ai-deadlines.yaml 2025-11-29 09:12:30 +01:00
Tobias Nauen
1c1342d82f Update adguard.yaml -> always restart 2025-11-29 09:09:58 +01:00
15 changed files with 682 additions and 22 deletions

View File

@@ -1 +1,4 @@
# docker-stacks # docker-stacks
Config files for my docker setup with stack files (`.yaml`) and dockerfiles (`.dockerfile`) for creating the images in the [`dockerfiles/`](dockerfiles/) folder.

View File

@@ -3,7 +3,7 @@ services:
image: 'adguard/adguardhome:latest' image: 'adguard/adguardhome:latest'
container_name: 'adguard' container_name: 'adguard'
hostname: 'adguard' hostname: 'adguard'
restart: 'unless-stopped' restart: 'always'
volumes: volumes:
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '/hdd/adguard/work:/opt/adguardhome/work' - '/hdd/adguard/work:/opt/adguardhome/work'

View File

@@ -7,7 +7,7 @@ networks:
services: services:
website: website:
image: nginx:latest image: nginx:latest
restart: unless-stopped restart: always
volumes: volumes:
- '/hdd/ai-deadlines/html:/usr/share/nginx/html:ro' - '/hdd/ai-deadlines/html:/usr/share/nginx/html:ro'
networks: networks:

View File

@@ -0,0 +1,260 @@
#################################################
# rsnapshot.conf - rsnapshot configuration file #
#################################################
# #
# PLEASE BE AWARE OF THE FOLLOWING RULE: #
# #
# This file requires tabs between elements #
# #
#################################################
#######################
# CONFIG FILE VERSION #
#######################
config_version 1.2
###########################
# SNAPSHOT ROOT DIRECTORY #
###########################
# All snapshots will be stored under this root directory.
#
snapshot_root /backups/
# If no_create_root is enabled, rsnapshot will not automatically create the
# snapshot_root directory. This is particularly useful if you are backing
# up to removable media, such as a FireWire or USB drive.
#
#no_create_root 1
#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################
# LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp /bin/cp
# uncomment this to use the rm program instead of the built-in perl routine.
#
cmd_rm /bin/rm
# rsync must be enabled for anything to work. This is the only command that
# must be enabled.
#
cmd_rsync /usr/bin/rsync
# Uncomment this to enable remote ssh backups over rsync.
#
#cmd_ssh /usr/bin/ssh
# Comment this out to disable syslog support.
#
cmd_logger /usr/bin/logger
# Uncomment this to specify the path to "du" for disk usage checks.
# If you have an older version of "du", you may also want to check the
# "du_args" parameter below.
#
#cmd_du /usr/bin/du
# Uncomment this to specify the path to rsnapshot-diff.
#
#cmd_rsnapshot_diff /usr/bin/rsnapshot-diff
# Specify the path to a script (and any optional arguments) to run right
# before rsnapshot syncs files
#
cmd_preexec /usr/bin/mount /backups
# Specify the path to a script (and any optional arguments) to run right
# after rsnapshot syncs files
#
cmd_postexec /usr/bin/python3 /home/backupuser/backup_notifier/notify.py -r && /usr/bin/umount /backups
# Paths to lvcreate, lvremove, mount and umount commands, for use with
# Linux LVMs.
#
#linux_lvm_cmd_lvcreate /sbin/lvcreate
#linux_lvm_cmd_lvremove /sbin/lvremove
#linux_lvm_cmd_mount /bin/mount
#linux_lvm_cmd_umount /bin/umount
#########################################
# BACKUP LEVELS / INTERVALS #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc. #
#########################################
retain monthly 6
#retain beta 7
#retain gamma 4
#retain delta 3
############################################
# GLOBAL OPTIONS #
# All are optional, with sensible defaults #
############################################
# Verbose level, 1 through 5.
# 1 Quiet Print fatal errors only
# 2 Default Print errors and warnings only
# 3 Verbose Show equivalent shell commands being executed
# 4 Extra Verbose Show extra verbose information
# 5 Debug mode Everything
#
verbose 2
# Same as "verbose" above, but controls the amount of data sent to the
# logfile, if one is being used. The default is 3.
# If you want the rsync output, you have to set it to 4
#
loglevel 3
# If you enable this, data will be written to the file you specify. The
# amount of data written is controlled by the "loglevel" parameter.
#
logfile /var/log/rsnapshot.log
# If enabled, rsnapshot will write a lockfile to prevent two instances
# from running simultaneously (and messing up the snapshot_root).
# If you enable this, make sure the lockfile directory is not world
# writable. Otherwise anyone can prevent the program from running.
#
lockfile /var/run/rsnapshot.pid
# By default, rsnapshot check lockfile, check if PID is running
# and if not, consider lockfile as stale, then start
# Enabling this stop rsnapshot if PID in lockfile is not running
#
#stop_on_stale_lockfile 0
# Default rsync args. All rsync commands have at least these options set.
#
#rsync_short_args -a
#rsync_long_args --delete --numeric-ids --relative --delete-excluded
# ssh has no args passed by default, but you can specify some here.
#
#ssh_args -p 22
# Default arguments for the "du" program (for disk space reporting).
# The GNU version of "du" is preferred. See the man page for more details.
# If your version of "du" doesn't support the -h flag, try -k flag instead.
#
#du_args -csh
# If this is enabled, rsync won't span filesystem partitions within a
# backup point. This essentially passes the -x option to rsync.
# The default is 0 (off).
#
#one_fs 0
# The include and exclude parameters, if enabled, simply get passed directly
# to rsync. If you have multiple include/exclude patterns, put each one on a
# separate line. Please look up the --include and --exclude options in the
# rsync man page for more details on how to specify file name patterns.
#
#include ???
#include ???
exclude */files_trashbin/*
# The include_file and exclude_file parameters, if enabled, simply get
# passed directly to rsync. Please look up the --include-from and
# --exclude-from options in the rsync man page for more details.
#
#include_file /path/to/include/file
#exclude_file /path/to/exclude/file
# If your version of rsync supports --link-dest, consider enabling this.
# This is the best way to support special files (FIFOs, etc) cross-platform.
# The default is 0 (off).
#
#link_dest 0
# When sync_first is enabled, it changes the default behaviour of rsnapshot.
# Normally, when rsnapshot is called with its lowest interval
# (i.e.: "rsnapshot alpha"), it will sync files AND rotate the lowest
# intervals. With sync_first enabled, "rsnapshot sync" handles the file sync,
# and all interval calls simply rotate files. See the man page for more
# details. The default is 0 (off).
#
#sync_first 0
# If enabled, rsnapshot will move the oldest directory for each interval
# to [interval_name].delete, then it will remove the lockfile and delete
# that directory just before it exits. The default is 0 (off).
#
#use_lazy_deletes 0
# Number of rsync re-tries. If you experience any network problems or
# network card issues that tend to cause ssh to fail with errors like
# "Corrupted MAC on input", for example, set this to a non-zero value
# to have the rsync operation re-tried.
#
#rsync_numtries 0
# LVM parameters. Used to backup with creating lvm snapshot before backup
# and removing it after. This should ensure consistency of data in some special
# cases
#
# LVM snapshot(s) size (lvcreate --size option).
#
#linux_lvm_snapshotsize 100M
# Name to be used when creating the LVM logical volume snapshot(s).
#
#linux_lvm_snapshotname rsnapshot
# Path to the LVM Volume Groups.
#
#linux_lvm_vgpath /dev
# Mount point to use to temporarily mount the snapshot(s).
#
#linux_lvm_mountpath /path/to/mount/lvm/snapshot/during/backup
###############################
### BACKUP POINTS / SCRIPTS ###
###############################
# BACKUP NON-HDD SERVER DATA
backup /server_data server_data/
# BACKUP DOCKER VOLUMES
backup /var/lib/docker/volumes docker_volumes/
# BACKUP FULL HDD <- this will take some time ...
backup /hdd hdd/
# LOCALHOST
#backup /home/ localhost/
#backup /etc/ localhost/
#backup /usr/local/ localhost/
#backup /var/log/rsnapshot localhost/
#backup /etc/passwd localhost/
#backup /home/foo/My Documents/ localhost/
#backup /foo/bar/ localhost/ one_fs=1,rsync_short_args=-urltvpog
#backup_script /usr/local/bin/backup_pgsql.sh localhost/postgres/
# You must set linux_lvm_* parameters below before using lvm snapshots
#backup lvm://vg0/xen-home/ lvm-vg0/xen-home/
# EXAMPLE.COM
#backup_exec /bin/date "+ backup of example.com started at %c"
#backup root@example.com:/home/ example.com/ +rsync_long_args=--bwlimit=16,exclude=core
#backup root@example.com:/etc/ example.com/ exclude=mtab,exclude=core
#backup_exec ssh root@example.com "mysqldump -A > /var/db/dump/mysql.sql"
#backup root@example.com:/var/db/dump/ example.com/
#backup_exec /bin/date "+ backup of example.com ended at %c"
# CVS.SOURCEFORGE.NET
#backup_script /usr/local/bin/backup_rsnapshot_cvsroot.sh rsnapshot.cvs.sourceforge.net/
# RSYNC.SAMBA.ORG
#backup rsync://rsync.samba.org/rsyncftp/ rsync.samba.org/rsyncftp/

270
backups/rsnapshot.conf.pi5 Normal file
View File

@@ -0,0 +1,270 @@
#################################################
# rsnapshot.conf - rsnapshot configuration file #
#################################################
# #
# PLEASE BE AWARE OF THE FOLLOWING RULE: #
# #
# This file requires tabs between elements #
# #
#################################################
#######################
# CONFIG FILE VERSION #
#######################
config_version 1.2
###########################
# SNAPSHOT ROOT DIRECTORY #
###########################
# All snapshots will be stored under this root directory.
#
snapshot_root /backups/
# If no_create_root is enabled, rsnapshot will not automatically create the
# snapshot_root directory. This is particularly useful if you are backing
# up to removable media, such as a FireWire or USB drive.
#
no_create_root 1
#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################
# LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp /bin/cp
# uncomment this to use the rm program instead of the built-in perl routine.
#
cmd_rm /bin/rm
# rsync must be enabled for anything to work. This is the only command that
# must be enabled.
#
cmd_rsync /usr/bin/rsync
# Uncomment this to enable remote ssh backups over rsync.
#
cmd_ssh /usr/bin/ssh
# Comment this out to disable syslog support.
#
cmd_logger /usr/bin/logger
# Uncomment this to specify the path to "du" for disk usage checks.
# If you have an older version of "du", you may also want to check the
# "du_args" parameter below.
#
#cmd_du /usr/bin/du
# Uncomment this to specify the path to rsnapshot-diff.
#
#cmd_rsnapshot_diff /usr/bin/rsnapshot-diff
# Specify the path to a script (and any optional arguments) to run right
# before rsnapshot syncs files
#
#cmd_preexec /path/to/preexec/script
# Specify the path to a script (and any optional arguments) to run right
# after rsnapshot syncs files
#
#cmd_postexec /path/to/postexec/script
# Paths to lvcreate, lvremove, mount and umount commands, for use with
# Linux LVMs.
#
#linux_lvm_cmd_lvcreate /sbin/lvcreate
#linux_lvm_cmd_lvremove /sbin/lvremove
#linux_lvm_cmd_mount /bin/mount
#linux_lvm_cmd_umount /bin/umount
#########################################
# BACKUP LEVELS / INTERVALS #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc. #
#########################################
retain daily 7
retain weekly 4
retain monthly 6
#retain delta 3
############################################
# GLOBAL OPTIONS #
# All are optional, with sensible defaults #
############################################
# Verbose level, 1 through 5.
# 1 Quiet Print fatal errors only
# 2 Default Print errors and warnings only
# 3 Verbose Show equivalent shell commands being executed
# 4 Extra Verbose Show extra verbose information
# 5 Debug mode Everything
#
verbose 2
# Same as "verbose" above, but controls the amount of data sent to the
# logfile, if one is being used. The default is 3.
# If you want the rsync output, you have to set it to 4
#
loglevel 3
# If you enable this, data will be written to the file you specify. The
# amount of data written is controlled by the "loglevel" parameter.
#
logfile /var/log/rsnapshot.log
# If enabled, rsnapshot will write a lockfile to prevent two instances
# from running simultaneously (and messing up the snapshot_root).
# If you enable this, make sure the lockfile directory is not world
# writable. Otherwise anyone can prevent the program from running.
#
lockfile /var/run/rsnapshot.pid
# By default, rsnapshot check lockfile, check if PID is running
# and if not, consider lockfile as stale, then start
# Enabling this stop rsnapshot if PID in lockfile is not running
#
#stop_on_stale_lockfile 0
# Default rsync args. All rsync commands have at least these options set.
#
#rsync_short_args -a
rsync_long_args --delete --numeric-ids --relative --delete-excluded --rsync-path='sudo /usr/bin/rsync'
# ssh has no args passed by default, but you can specify some here.
#
ssh_args -o BatchMode=yes -4
# Default arguments for the "du" program (for disk space reporting).
# The GNU version of "du" is preferred. See the man page for more details.
# If your version of "du" doesn't support the -h flag, try -k flag instead.
#
#du_args -csh
# If this is enabled, rsync won't span filesystem partitions within a
# backup point. This essentially passes the -x option to rsync.
# The default is 0 (off).
#
#one_fs 0
# The include and exclude parameters, if enabled, simply get passed directly
# to rsync. If you have multiple include/exclude patterns, put each one on a
# separate line. Please look up the --include and --exclude options in the
# rsync man page for more details on how to specify file name patterns.
#
#include ???
#include ???
exclude */files_trashbin/*
exclude */files_versions/*
# The include_file and exclude_file parameters, if enabled, simply get
# passed directly to rsync. Please look up the --include-from and
# --exclude-from options in the rsync man page for more details.
#
#include_file /path/to/include/file
#exclude_file /path/to/exclude/file
# If your version of rsync supports --link-dest, consider enabling this.
# This is the best way to support special files (FIFOs, etc) cross-platform.
# The default is 0 (off).
#
#link_dest 0
# When sync_first is enabled, it changes the default behaviour of rsnapshot.
# Normally, when rsnapshot is called with its lowest interval
# (i.e.: "rsnapshot alpha"), it will sync files AND rotate the lowest
# intervals. With sync_first enabled, "rsnapshot sync" handles the file sync,
# and all interval calls simply rotate files. See the man page for more
# details. The default is 0 (off).
#
#sync_first 0
# If enabled, rsnapshot will move the oldest directory for each interval
# to [interval_name].delete, then it will remove the lockfile and delete
# that directory just before it exits. The default is 0 (off).
#
#use_lazy_deletes 0
# Number of rsync re-tries. If you experience any network problems or
# network card issues that tend to cause ssh to fail with errors like
# "Corrupted MAC on input", for example, set this to a non-zero value
# to have the rsync operation re-tried.
#
#rsync_numtries 0
# LVM parameters. Used to backup with creating lvm snapshot before backup
# and removing it after. This should ensure consistency of data in some special
# cases
#
# LVM snapshot(s) size (lvcreate --size option).
#
#linux_lvm_snapshotsize 100M
# Name to be used when creating the LVM logical volume snapshot(s).
#
#linux_lvm_snapshotname rsnapshot
# Path to the LVM Volume Groups.
#
#linux_lvm_vgpath /dev
# Mount point to use to temporarily mount the snapshot(s).
#
#linux_lvm_mountpath /path/to/mount/lvm/snapshot/during/backup
###############################
### BACKUP POINTS / SCRIPTS ###
###############################
backup_exec /bin/date "+ server backup started at %c"
backup backupuser@klingon:/hdd/nextcloud nextcloud/
backup backupuser@klingon:/server_data/ server_data/
backup backupuser@klingon:/var/lib/docker/volumes docker_volumes/
backup backupuser@klingon:/hdd/esphome esphome/
backup backupuser@klingon:/hdd/audobookshelf/ audobookshelf/
backup backupuser@klingon:/hdd/home-assistant/ home-assistant/
backup backupuser@klingon:/hdd/nginx_conf_with_compression/ nginx_conf_with_compression/
backup backupuser@klingon:/hdd/tobias-website/ tobias-website/
backup backupuser@klingon:/hdd/update-tobias-website/ update-tobias-website/
backup backupuser@klingon:/hdd/uptime-kuma/ uptime-kuma/
backup backupuser@klingon:/hdd/plausible/ plausible/
backup backupuser@klingon:/hdd/vikunja/ vikunja/
backup backupuser@klingon:/hdd/adguard/ adguard/
backup backupuser@klingon:/hdd/alibi-website/ alibi-website/
backup backupuser@klingon:/hdd/update-alibi-website/ update-alibi-website/
backup backupuser@klingon:/hdd/update-tobias-website/ update-tobias-website/
backup backupuser@klingon:/hdd/gitea/ gitea/
backup_exec /bin/date "+ server backup ended at %c"
# LOCALHOST
#backup /home/ localhost/
#backup /etc/ localhost/
#backup /usr/local/ localhost/
#backup /var/log/rsnapshot localhost/
#backup /etc/passwd localhost/
#backup /home/foo/My Documents/ localhost/
#backup /foo/bar/ localhost/ one_fs=1,rsync_short_args=-urltvpog
#backup_script /usr/local/bin/backup_pgsql.sh localhost/postgres/
# You must set linux_lvm_* parameters below before using lvm snapshots
#backup lvm://vg0/xen-home/ lvm-vg0/xen-home/
# EXAMPLE.COM
#backup_exec /bin/date "+ backup of example.com started at %c"
#backup root@example.com:/home/ example.com/ +rsync_long_args=--bwlimit=16,exclude=core
#backup root@example.com:/etc/ example.com/ exclude=mtab,exclude=core
#backup_exec ssh root@example.com "mysqldump -A > /var/db/dump/mysql.sql"
#backup root@example.com:/var/db/dump/ example.com/
#backup_exec /bin/date "+ backup of example.com ended at %c"
# CVS.SOURCEFORGE.NET
#backup_script /usr/local/bin/backup_rsnapshot_cvsroot.sh rsnapshot.cvs.sourceforge.net/
# RSYNC.SAMBA.ORG
#backup rsync://rsync.samba.org/rsyncftp/ rsync.samba.org/rsyncftp/

View File

@@ -0,0 +1,28 @@
# Use an official Alpine-based Python image as your base
FROM python:3.9-alpine
# Set the working directory
WORKDIR /app
# Install git and other build dependencies (if your Python packages require compilation)
# It's good practice to install build dependencies and then remove them in the same RUN layer
# to keep the final image size down.
RUN apk add --no-cache git openssh-client # openssh-client if you need to clone private repos via SSH
# Install Python build dependencies (e.g., for packages with C extensions)
# Common ones include build-base, libffi-dev, openssl-dev.
# Add more as needed based on your requirements.txt.
RUN apk add --no-cache --virtual .build-deps \
build-base \
libffi-dev \
openssl-dev \
# Add any other -dev packages your Python libraries might need
# e.g., if you have psycopg2, you'd need postgresql-dev
# if you have Pillow, you might need zlib-dev, jpeg-dev, etc.
&& pip install --upgrade pip
# Install Python dependencies
RUN pip install --no-cache-dir requests bs4 pytz pyyaml dateparser loguru
# Remove build dependencies to keep the image small
RUN apk del .build-deps

View File

@@ -0,0 +1,31 @@
# Use Alpine Linux as the base image (lightweight and secure)
FROM alpine:latest
# Set maintainer label (good practice for research reproducibility)
LABEL maintainer="Tobias Nauen"
# Install system dependencies (Git, Bash, and Hugo)
RUN apk add --no-cache \
git \
bash \
wget \
go \
gzip
# && wget -O /tmp/hugo.deb https://github.com/gohugoio/hugo/releases/download/v0.111.3/hugo_extended_0.111.3_linux-amd64.deb \
# && apk add --no-cache --virtual .build-deps dpkg \
# && dpkg -i /tmp/hugo.deb \
# && rm /tmp/hugo.deb \
# && apk del .build-deps \
# && hugo version
ENV GOPATH=/go
ENV PATH="$PATH:$GOPATH/bin"
RUN go version
RUN apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community hugo
RUN hugo version
# Set working directory (adjust as needed)
WORKDIR /app

View File

@@ -0,0 +1,9 @@
FROM nginx:latest
RUN apt-get update
RUN apt-get install -y \
git \
brotli
RUN rm -rf /var/lib/apt/lists/*

19
gitea.yaml Normal file
View File

@@ -0,0 +1,19 @@
version: "3"
networks:
frontend:
external: true
services:
server:
image: docker.gitea.com/gitea:latest
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- frontend
volumes:
- /hdd/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro

View File

@@ -9,7 +9,7 @@ networks:
services: services:
nextcloud-redis: nextcloud-redis:
image: redis:alpine image: redis:alpine
restart: unless-stopped restart: always
command: redis-server --requirepass bjkf34bbhk23bjwfes command: redis-server --requirepass bjkf34bbhk23bjwfes
networks: networks:
- backend - backend
@@ -23,6 +23,7 @@ services:
volumes: volumes:
- /hdd/nextcloud/data:/var/www/html/data - /hdd/nextcloud/data:/var/www/html/data
- /server_data/nextcloud/config:/var/www/html - /server_data/nextcloud/config:/var/www/html
- /hdd/media/games:/external/games
environment: environment:
- MYSQL_PASSWORD=heHT672G2%H6 - MYSQL_PASSWORD=heHT672G2%H6
- MYSQL_DATABASE=nextcloud - MYSQL_DATABASE=nextcloud
@@ -43,7 +44,9 @@ services:
restart: unless-stopped restart: unless-stopped
entrypoint: /cron.sh entrypoint: /cron.sh
volumes: volumes:
- /hdd/nextcloud/data:/var/www/html - /hdd/nextcloud/data:/var/www/html/data
- /server_data/nextcloud/config:/var/www/html
- /hdd/media/games:/external/games
environment: environment:
- MYSQL_PASSWORD=heHT672G2%H6 - MYSQL_PASSWORD=heHT672G2%H6
- MYSQL_DATABASE=nextcloud - MYSQL_DATABASE=nextcloud

View File

@@ -8,7 +8,7 @@ networks:
services: services:
app: app:
image: 'jc21/nginx-proxy-manager:latest' image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped restart: always
ports: ports:
# These ports are in format <host-port>:<container-port> # These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port - '80:80' # Public HTTP Port

View File

@@ -1,16 +0,0 @@
version: '1'
networks:
frontend:
external: true
services:
tobia-website:
image: nginx_with_hugo:latest
restart: unless-stopped
volumes:
- '/hdd/tobias-website:/website'
- '/hdd/update-tobias-website:/docker-entrypoint.d:ro'
networks:
- frontend

View File

@@ -1,14 +1,24 @@
version: "3.3" version: "3.3"
networks:
frontend:
external: true
plausible:
services: services:
mail: mail:
image: bytemark/smtp image: bytemark/smtp
restart: always restart: always
networks:
- plausible
plausible_db: plausible_db:
# Plausible v2.0.0 was tested against PostgreSQL versions 12, 13, and 14 # Plausible v2.0.0 was tested against PostgreSQL versions 12, 13, and 14
# https://github.com/plausible/analytics/blob/v2.0.0/.github/workflows/elixir.yml#L16 # https://github.com/plausible/analytics/blob/v2.0.0/.github/workflows/elixir.yml#L16
image: postgres:14-alpine image: postgres:14-alpine
restart: always restart: always
networks:
- plausible
volumes: volumes:
- /hdd/plausible/db_data:/var/lib/postgresql/data - /hdd/plausible/db_data:/var/lib/postgresql/data
environment: environment:
@@ -17,6 +27,8 @@ services:
plausible_events_db: plausible_events_db:
image: clickhouse/clickhouse-server:23.3.7.5-alpine image: clickhouse/clickhouse-server:23.3.7.5-alpine
restart: always restart: always
networks:
- plausible
volumes: volumes:
- /hdd/plausible/event_data:/var/lib/clickhouse - /hdd/plausible/event_data:/var/lib/clickhouse
- /hdd/plausible/clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro - /hdd/plausible/clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
@@ -34,6 +46,9 @@ services:
- plausible_db - plausible_db
- plausible_events_db - plausible_events_db
- mail - mail
networks:
- frontend
- plausible
environment: environment:
- BASE_URL=https://plausible.nauen-it.de - BASE_URL=https://plausible.nauen-it.de
- SECRET_KEY_BASE=cwLeX7x0f7E50Q9+ANihxd6T7vbHUloZQ+70ex+eEbydJITKCxf+piXk+S1LeMP+ - SECRET_KEY_BASE=cwLeX7x0f7E50Q9+ANihxd6T7vbHUloZQ+70ex+eEbydJITKCxf+piXk+S1LeMP+

28
tobias-website.yaml Normal file
View File

@@ -0,0 +1,28 @@
version: '1.1'
networks:
frontend:
external: true
services:
website:
image: nginx:latest
restart: always
volumes:
- '/hdd/tobias-website/public:/usr/share/nginx/html:ro'
networks:
- frontend
updater:
# Build the image from your Dockerfile.updater
image: alpine-hugo
restart: unless-stopped
volumes:
# Mount the same volume as Nginx so the updater can write to it
- '/hdd/tobias-website:/app'
# You might also want to mount your script if you want to edit it without rebuilding the image
# - ./your_update_script.sh:/app/your_update_script.sh:ro
command: sh -c "cd /app; while true; do /app/build_website.sh; sleep 3600; done" # Run every hour (3600 seconds)
# If your update script needs to connect to the internet (e.g., for git clone, API calls),
# it needs network access, which is usually provided by default by Docker Compose's bridge network.
# If it needs to interact with your Nginx or other services, they'll be on the same default network.

10
uptime-kuma.yaml Normal file
View File

@@ -0,0 +1,10 @@
version: '1.0'
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- /hdd/uptime-kuma:/app/data