Compare commits

...

10 Commits

Author SHA1 Message Date
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
12 changed files with 133 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'
container_name: 'adguard'
hostname: 'adguard'
restart: 'unless-stopped'
restart: 'always'
volumes:
- '/etc/localtime:/etc/localtime:ro'
- '/hdd/adguard/work:/opt/adguardhome/work'

View File

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

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/*

View File

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

View File

@@ -8,7 +8,7 @@ networks:
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
restart: always
ports:
# These ports are in format <host-port>:<container-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"
networks:
frontend:
external: true
plausible:
services:
mail:
image: bytemark/smtp
restart: always
networks:
- plausible
plausible_db:
# 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
image: postgres:14-alpine
restart: always
networks:
- plausible
volumes:
- /hdd/plausible/db_data:/var/lib/postgresql/data
environment:
@@ -17,6 +27,8 @@ services:
plausible_events_db:
image: clickhouse/clickhouse-server:23.3.7.5-alpine
restart: always
networks:
- plausible
volumes:
- /hdd/plausible/event_data:/var/lib/clickhouse
- /hdd/plausible/clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
@@ -34,6 +46,9 @@ services:
- plausible_db
- plausible_events_db
- mail
networks:
- frontend
- plausible
environment:
- BASE_URL=https://plausible.nauen-it.de
- 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