From cda084329dc4e575d75466a813890998c0363b24 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 12 Oct 2026 16:21:30 +0000 Subject: [PATCH] Initial server config --- .gitignore | 2 + Caddyfile | 15 +++++++ README.md | 20 ++++++++++ docker-compose.yml | 97 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 134 insertions(+) create mode 100644 .gitignore create mode 100644 Caddyfile create mode 100644 README.md create mode 100644 docker-compose.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4128e00 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.env +backups/ diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..ae8ee97 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,15 @@ +n8n.since3.de { + reverse_proxy n8n:5678 +} + +git.since3.de { + reverse_proxy forgejo:3000 +} + +uptime.since3.de { + reverse_proxy uptime-kuma:3001 +} + +stats.since3.de { + reverse_proxy umami:3000 +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..ea531d3 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# since3 Server-Stack +- n8n.since3.de -> n8n (Workflows) +- git.since3.de -> Forgejo (Github-Mirror) +- uptime.since3.de -> Uptime Kuma +- stats.since3.de -> Umami + +Start: docker compose up -d +Secrets: .env (Passwortmanager), never in Git + + +# Few things to know when starting: + +- docker compose up (starts in the normal mode so the terminal will be blocked) +- docker compose up -d (starts in detached mode meaing it will be a background process so terminal will be free again) +- docker compose down (stops the containers) +- docker compose ps (display every running container) +- docker stats (dipslay RAM and CPU Usage of every Container) +- docker compose logs -f --tail 100 n8n (display the logs of an container, last 100 lines of the specific container here: n8n mit -f: following) +- docker system df (Memory needs of the Container) +- docker compose restart (restarts a container e.x.: "n8n") diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..891f3cc --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,97 @@ +name: stack + +services: + postgres: + image: postgres:16 + restart: always + environment: + POSTGRES_USER: n8n + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: n8n + volumes: + - postgres_data:/var/lib/postgresql/data + + n8n: + image: docker.n8n.io/n8nio/n8n + restart: always + depends_on: + - postgres + environment: + - DB_TYPE=postgresdb + - DB_POSTGRESDB_HOST=postgres + - DB_POSTGRESDB_USER=n8n + - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD} + - DB_POSTGRESDB_DATABASE=n8n + - N8N_HOST=${DOMAIN} + - N8N_PROTOCOL=https + - WEBHOOK_URL=https://${DOMAIN}/ + - N8N_PROXY_HOPS=1 + - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY} + - GENERIC_TIMEZONE=Europe/Berlin + - TZ=Europe/Berlin + volumes: + - n8n_data:/home/node/.n8n + + forgejo: + image: codeberg.org/forgejo/forgejo:11 + restart: always + environment: + - USER_UID=1000 + - USER_GID=1000 + - FORGEJO__database__DB_TYPE=sqlite3 + - FORGEJO__server__DOMAIN=git.since3.de + - FORGEJO__server__ROOT_URL=https://git.since3.de/ + - FORGEJO__server__DISABLE_SSH=true + - FORGEJO__security__INSTALL_LOCK=true + - FORGEJO__service__DISABLE_REGISTRATION=true + volumes: + - forgejo_data:/data + + uptime-kuma: + image: louislam/uptime-kuma:2 + restart: always + volumes: + - kuma_data:/app/data + + umami-db: + image: postgres:16 + restart: always + environment: + POSTGRES_USER: umami + POSTGRES_PASSWORD: ${UMAMI_DB_PASSWORD} + POSTGRES_DB: umami + volumes: + - umami_db_data:/var/lib/postgresql/data + + umami: + image: ghcr.io/umami-software/umami:postgresql-latest + restart: always + depends_on: + - umami-db + environment: + DATABASE_URL: postgresql://umami:${UMAMI_DB_PASSWORD}@umami-db:5432/umami + APP_SECRET: ${UMAMI_APP_SECRET} + + caddy: + image: caddy:2 + restart: always + depends_on: + - n8n + - forgejo + - uptime-kuma + - umami + ports: + - "80:80" + - "443:443" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - caddy_data:/data + +volumes: + postgres_data: + n8n_data: + forgejo_data: + kuma_data: + umami_db_data: + caddy_data: +