diff --git a/apps/develop/adminer/docker-compose.yml b/apps/develop/adminer/docker-compose.yml deleted file mode 100644 index ac70ed9..0000000 --- a/apps/develop/adminer/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - adminer: - profiles: ["all", "database", "backend", "adminer", "app"] - image: adminer - container_name: ${INFRASTRUCTURE_LABEL:-default}-adminer-${ENVIRONMENT:-development} - restart: always - ports: - - ${ADMINER_PORT:-0}:8080 - networks: - - database - - proxy - labels: - - "traefik.enable=${TRAEFIK_ENABLE:-false}" - - "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_adminer.entrypoints=${TRAEFIK_ENTRYPOINT:-websecure}" - - "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_adminer.rule=Host(`${ADMINER_DOMAIN}`)" - - "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_adminer.tls=true" - - "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_adminer.tls.certresolver=${TRAEFIK_CERT_RESOLVER:-http_resolver}" - - 'traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_adminer.service=adminer' - - "traefik.http.adminer.cloud.loadbalancer.server.port=8080" - - "traefik.docker.network=${TRAEFIK_NETWORK:-default}" \ No newline at end of file diff --git a/apps/develop/docker-compose.yml b/apps/develop/docker-compose.yml deleted file mode 100644 index 7b57820..0000000 --- a/apps/develop/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -### Develop (./apps/develop/docker-compose.yml) -# - [ ] Create services for Gitea, Jenkins, and Adminer -# - [ ] Configure volumes for persistent storage of Git repositories, Jenkins data, and Adminer settings -# - [ ] Set up environment variables using the new structure (../../env/${ENVIRONMENT:-development}/develop.env) -# - [ ] Configure networking to allow these services to communicate with each other and the necessary application services -# - [ ] Set up access controls and security measures for development tools - -include: - - ./gitea/docker-compose.yml diff --git a/apps/develop/gitea/docker-compose.yml b/apps/develop/gitea/docker-compose.yml deleted file mode 100644 index 5591389..0000000 --- a/apps/develop/gitea/docker-compose.yml +++ /dev/null @@ -1,44 +0,0 @@ -services: - gitea: - image: gitea/gitea:latest - container_name: ${INFRASTRUCTURE_LABEL:-mindboost}-gitea - profiles: ["all", "gitea","develop"] - restart: always - volumes: - - ${GITEA_VOLUME_PATH}:/data - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - depends_on: - - gitea_db - labels: - - "traefik.enable=${TRAEFIK_ENABLE:-false}" - - "traefik.http.routers.gitea.entrypoints=${TRAEFIK_ENTRYPOINT}" - - "traefik.http.routers.gitea.rule=(Host(`${GITEA_DOMAIN})`)" - - "traefik.http.routers.gitea.tls=true" - - "traefik.http.routers.gitea.tls.certresolver=${TRAEFIK_CERT_RESOLVER}" - - "traefik.http.routers.gitea.service=gitea" - - 'traefik.http.services.gitea.loadbalancer.gitea.port=3000' - - "traefik.http.routers.gitea.tls.domains[0].main=`${GITEA_TLS_DOMAIN_MAIN}`" - - # SSH routing, can't route based on host so anything to port 222 will come to this container - - "traefik.tcp.routers.gitea-ssh.rule=HostSNI(`*`)" - - "traefik.tcp.routers.gitea-ssh.entrypoints=ssh" - - "traefik.tcp.routers.gitea-ssh.service=gitea-ssh-svc" - - "traefik.tcp.services.gitea-ssh-svc.loadbalancer.gitea.port=22" - - gitea_db: - image: mysql:latest - container_name: ${INFRASTRUCTURE_LABEL:-mindboost}-gitea_db - profiles: ["all", "gitea","develop"] - restart: always - environment: - - MYSQL_ROOT_PASSWORD=${GITEA_MYSQL_ROOT_PASSWORD} - - MYSQL_DATABASE=${GITEA_MYSQL_DATABASE} - - MYSQL_USER=${GITEA_MYSQL_USER} - - MYSQL_PASSWORD=${GITEA_MYSQL_PASSWORD} - volumes: - - ${GITEA_DATABASE_VOLUME_PATH}:/var/lib/mysql - -networks: - gitea: - diff --git a/apps/develop/jenkins/docker-compose.yml b/apps/develop/jenkins/docker-compose.yml deleted file mode 100644 index 4452b95..0000000 --- a/apps/develop/jenkins/docker-compose.yml +++ /dev/null @@ -1,40 +0,0 @@ -### Jenkins (./apps/frontend/docker-compose.yml) -services: - jenkins: - image: jenkins/jenkins:lts - container_name: jenkins - ports: - - "50000:50000" # Jenkins Agent Port - volumes: - - ../../../volumes/develop/jenkins:/var/jenkins_home - - ./plugins.yml:/usr/share/jenkins/ref/plugins.yml - depends_on: - - jenkins-plugins - environment: - - JAVA_OPTS=-Djenkins.install.runSetupWizard=false - networks: - - proxy - labels: - - "traefik.enable=true" - - "traefik.http.routers.jenkins.rule=Host(`j.haslach2025.de`)" - - "traefik.http.routers.jenkins.entrypoints=websecure" - - "traefik.http.routers.jenkins.tls=true" - - "traefik.http.routers.jenkins.tls.certresolver=http_resolver" - - "traefik.http.services.jenkins.loadbalancer.server.port=8080" # interner Port von Jenkins - - "traefik.docker.network=proxy" - - jenkins-plugins: - image: jenkins/jenkins:lts-jdk17 - command: > - jenkins-plugin-cli -f /usr/share/jenkins/ref/plugins.yml --available-updates --output txt > /usr/share/jenkins/ref/plugins.yml - volumes: - - ./plugins.yml:/usr/share/jenkins/ref/plugins.yml - restart: "no" - -volumes: - jenkins_home: - driver: local - -networks: - proxy: - external: true diff --git a/apps/develop/jenkins/plugins.yml b/apps/develop/jenkins/plugins.yml deleted file mode 100644 index e69de29..0000000 diff --git a/apps/docker-compose.all.yml b/apps/docker-compose.all.yml deleted file mode 100644 index 4226b1a..0000000 --- a/apps/docker-compose.all.yml +++ /dev/null @@ -1,50 +0,0 @@ -## -## ONE SCRIPT TO RULE THEM ALL -## -## Dieses Compose-File startet alle verfügbaren Services, abhängig von dem angegebenen ENVIRONMENT. - -## Um diese Konfiguration zu verwenden, kannst du folgende Befehle nutzen: -## Um alle Services zu starten: -## docker compose -f docker-compose.all.yml --env-file ../env/.env.all --profile all up -d - -## Um nur bestimmte Services zu starten (z.B. frontend und backend): -## docker compose -f docker-compose.all.yml --env-file ../env/.env.all --profile frontend --profile backend up -d - -## -## Stellen Sie sicher, dass die .env.all Datei im angegebenen Verzeichnis existiert und den ENVIRONMENT Wert enthält. -## - -configs: - all: - file: ../env/.env.all -include: - - path: ./proxy/docker-compose.yml - env_file: - - ../env/.env.all - - ../env/${ENVIRONMENT:-development}/.env.proxy - - path: ./frontend/docker-compose.yml - env_file: - - ../env/.env.all - - ../env/${ENVIRONMENT:-development}/.env.frontend - - path: ./backend/docker-compose.yml - - path: ./database/docker-compose.yml - - path: ./website/docker-compose.yml - env_file: - - ../env/.env.all - - ../env/${ENVIRONMENT:-development}/.env.website - - ../env/${ENVIRONMENT:-development}/.env.proxy - - path: ./administration/docker-compose.yml - env_file: - - ../env/.env.all - - ../env/${ENVIRONMENT:-development}/.env.administration - - ../env/${ENVIRONMENT:-development}/.env.proxy - - path: ./develop/docker-compose.yml - env_file: - - ../env/.env.all - - ../env/${ENVIRONMENT:-development}/.env.develop - - ../env/${ENVIRONMENT:-development}/.env.proxy - - path: ./tools/docker-compose.yml - env_file: - - ../env/.env.all - - ../env/${ENVIRONMENT:-development}/.env.tools - - ../env/${ENVIRONMENT:-development}/.env.proxy \ No newline at end of file diff --git a/apps/security/docker-compose.linuxserver.yml b/apps/security/docker-compose.linuxserver.yml deleted file mode 100644 index cf15d4c..0000000 --- a/apps/security/docker-compose.linuxserver.yml +++ /dev/null @@ -1,30 +0,0 @@ -services: - wireguard: - image: linuxserver/wireguard - container_name: wireguard - cap_add: - - NET_ADMIN - - SYS_MODULE - environment: - - PUID=1000 - - PGID=1000 - - TZ=Europe/Berlin - - SERVERURL=${SERVER_IP:?"❌ ERROR = SERVERURL is not set. Run set-server-ip.sh first."} - - SERVERPORT=51820 - - PEERS=3 # Number of VPN clients to generate - - PEERDNS=auto - - INTERNAL_SUBNET=22.22.22.0 - volumes: - - ../../volumes/security/wireguard/config:/config - - /lib/modules:/lib/modules - ports: - - "51820:51820/udp" - sysctls: - - net.ipv4.conf.all.src_valid_mark=1 - restart: unless-stopped - networks: - - wireguard_network - -networks: - wireguard_network: - driver: bridge diff --git a/apps/security/docker-compose.yml b/apps/security/docker-compose.yml deleted file mode 100644 index abeee23..0000000 --- a/apps/security/docker-compose.yml +++ /dev/null @@ -1,50 +0,0 @@ -volumes: - etc_wireguard: - -services: - wg-easy: - environment: - # Change Language: - # (Supports: en, ua, ru, tr, no, pl, fr, de, ca, es, ko, vi, nl, is, pt, chs, cht, it, th, hi, ja, si) - - LANG=${WG_LANG:-de} - # ⚠️ Required: - # Change this to your host's public address - - WG_HOST=${SERVER_IP:-localhost} - - # Optional: - # - PASSWORD_HASH=$$2y$$10$$hBCoykrB95WSzuV4fafBzOHWKu9sbyVa34GJr8VV5R/pIelfEMYyG # (needs double $$, hash of 'foobar123'; see "How_to_generate_an_bcrypt_hash.md" for generate the hash) - # - PORT=51821 - # - WG_PORT=51820 - # - WG_CONFIG_PORT=92820 - - WG_DEFAULT_ADDRESS=${WG_DEFAULT_ADDRESS:-22.22.22.0} - # - WG_DEFAULT_DNS=1.1.1.1 - # - WG_MTU=1420 - # - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24 - # - WG_PERSISTENT_KEEPALIVE=25 - # - WG_PRE_UP=echo "Pre Up" > /etc/wireguard/pre-up.txt - # - WG_POST_UP=echo "Post Up" > /etc/wireguard/post-up.txt - # - WG_PRE_DOWN=echo "Pre Down" > /etc/wireguard/pre-down.txt - # - WG_POST_DOWN=echo "Post Down" > /etc/wireguard/post-down.txt - # - UI_TRAFFIC_STATS=true - # - UI_CHART_TYPE=0 # (0 Charts disabled, 1 # Line chart, 2 # Area chart, 3 # Bar chart) - # - WG_ENABLE_ONE_TIME_LINKS=true - # - UI_ENABLE_SORT_CLIENTS=true - # - WG_ENABLE_EXPIRES_TIME=true - # - ENABLE_PROMETHEUS_METRICS=false - # - PROMETHEUS_METRICS_PASSWORD=$$2a$$12$$vkvKpeEAHD78gasyawIod.1leBMKg8sBwKW.pQyNsq78bXV3INf2G # (needs double $$, hash of 'prometheus_password'; see "How_to_generate_an_bcrypt_hash.md" for generate the hash) - - image: ghcr.io/wg-easy/wg-easy - container_name: wg-easy - volumes: - - ../../volumes/wireguardeasy/:/etc/wireguard - ports: - - "51820:51820/udp" - - "51821:51821/tcp" - restart: unless-stopped - cap_add: - - NET_ADMIN - - SYS_MODULE - # - NET_RAW # ⚠️ Uncomment if using Podman - sysctls: - - net.ipv4.ip_forward=1 - - net.ipv4.conf.all.src_valid_mark=1 \ No newline at end of file diff --git a/apps/security/set-server-ip.sh b/apps/security/set-server-ip.sh deleted file mode 100644 index e1dcc19..0000000 --- a/apps/security/set-server-ip.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -export SERVER_IP=$(curl -s https://api.ipify.org) \ No newline at end of file diff --git a/apps/tools/docker-compose.yml b/apps/tools/docker-compose.yml deleted file mode 100644 index 3c6ebce..0000000 --- a/apps/tools/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -### Tools (./apps/tools/docker-compose.yml) -# - [ ] Create services for Nextcloud, LimeSurvey, and LinkStack -# - [ ] Configure volumes for persistent storage of files, survey data, and link management data -# - [ ] Set up environment variables using the new structure (../../env/${ENVIRONMENT:-development}/tools.env) -# - [ ] Configure networking to expose these services to the internet via the proxy -# - [ ] Set up regular backup jobs for critical data in these services - -include: - - path: ./nextcloud/docker-compose.yml - - path: ./limesurvey/docker-compose.yml - - path: ./invoiceninja/dockerfiles/debian/docker-compose.yml diff --git a/apps/tools/limesurvey/docker-compose.yml b/apps/tools/limesurvey/docker-compose.yml deleted file mode 100644 index e69de29..0000000 diff --git a/apps/tools/nextcloud/docker-compose.yml b/apps/tools/nextcloud/docker-compose.yml deleted file mode 100644 index 2a3acf6..0000000 --- a/apps/tools/nextcloud/docker-compose.yml +++ /dev/null @@ -1,59 +0,0 @@ -services: - nextcloud-db: - image: mariadb:10.6 - container_name: ${INFRASTRUCTURE_LABEL:-default}-nextcloud-db-${ENVIRONMENT:-development} - profiles: ["all", "tools", "nextcloud"] - command: --transaction-isolation=READ-COMMITTED --innodb_read_only_compressed=OFF - restart: unless-stopped - volumes: - - /etc/localtime:/etc/localtime:ro - - /etc/timezone:/etc/timezone:ro - - ../../volumes/tools/${INFRASTRUCTURE_LABEL:-default}_cloud/database:/var/lib/mysql - environment: - - MYSQL_ROOT_PASSWORD=headpiece-constant1-denim-mindboost #SQL root Passwort eingeben - - MYSQL_PASSWORD=idealist9-frayed-murkiness-mindboost #SQL Benutzer Passwort eingeben - - MYSQL_DATABASE=nextcloud-mindboost #Datenbank Name - - MYSQL_USER=mindboostcloud #SQL Nutzername - - MYSQL_INITDB_SKIP_TZINFO=1 - - MARIADB_AUTO_UPGRADE=1 - nextcloud-redis: - image: redis:alpine - container_name: ${INFRASTRUCTURE_LABEL:-default}-nextcloud-redis-${ENVIRONMENT:-development} - profiles: ["all", "tools", "nextcloud"] - hostname: nextcloud-redis - restart: unless-stopped - command: redis-server --requirepass redis-mindboost-passwort # Redis Passwort eingeben - cloud: - image: nextcloud - container_name: ${INFRASTRUCTURE_LABEL:-default}-nextcloud-app-${ENVIRONMENT:-development} - profiles: ["all", "tools", "nextcloud"] - restart: unless-stopped - depends_on: - - nextcloud-db - - nextcloud-redis - environment: - TRUSTED_PROXIES: 172.16.255.254/16 - OVERWRITEPROTOCOL: https - OVERWRITECLIURL: https://${CLOUD_DOMAIN:-cloud} - OVERWRITEHOST: ${CLOUD_DOMAIN:-cloud} - REDIS_HOST: nextcloud-redis - REDIS_HOST_PASSWORD: redis-mindboost-passwort # Redis Passwort von oben wieder eingeben - volumes: - - ../../volumes/tools/${INFRASTRUCTURE_LABEL:-default}_cloudapp/:/var/www/html/data - labels: - - "traefik.enable=true" - - "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_cloud.entrypoints=websecure" - - "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_cloud.rule=Host(`${CLOUD_DOMAIN}`)" - - "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_cloud.tls=true" - - "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_cloud.tls.certresolver=http_resolver" - - 'traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_cloud.service=cloud' - - "traefik.http.services.cloud.loadbalancer.server.port=80" - - "traefik.docker.network=${TRAEFIK_NETWORK:-default}" - - "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_cloud.middlewares=nextcloud-dav,default@file" - - "traefik.http.middlewares.nextcloud-dav.replacepathregex.regex=^/.well-known/ca(l|rd)dav" - - "traefik.http.middlewares.nextcloud-dav.replacepathregex.replacement=/remote.php/dav/" - networks: - - ${TRAEFIK_NETWORK} -networks: - nextcloud: - name: ${INFRASTRUCTURE_LABEL:-default}_nextcloud diff --git a/apps/website/docker-compose.yml b/apps/website/docker-compose.yml deleted file mode 100644 index 2d5d4fb..0000000 --- a/apps/website/docker-compose.yml +++ /dev/null @@ -1,32 +0,0 @@ -services: - kirbycms: - build: - context: ./kirby - dockerfile: Dockerfile - image: kirbycms - container_name: ${INFRASTRUCTURE_LABEL:-default}-kirbycms-${ENVIRONMENT:-development} - profiles: ["website","kirbycms","all"] - volumes: - - kirbycms_data:/var/www/html:rw # Persistente Daten - restart: unless-stopped - ports: - - 0:80 - networks: - - ${TRAEFIK_NETWORK:-default} - labels: - - "traefik.enable=${TRAEFIK_ENABLE:-false}" - - "traefik.docker.network=${TRAEFIK_NETWORK:-default}" - - "traefik.http.routers.kirbycms.service=kirbycms" - - "traefik.http.routers.kirbycms.tls.certresolver=${TRAEFIK_CERT_RESOLVER:-default}" - - "traefik.http.routers.kirbycms.tls.domains[0].main=`${WEBSITE_DOMAIN:-kirby.local}`" - - "traefik.http.routers.kirbycms.rule=Host(`${WEBSITE_DOMAIN:-kirby.local}`)" - - "traefik.http.routers.kirbycms.entrypoints=${TRAEFIK_ENTRYPOINT:-default}" - - "traefik.http.routers.kirbycms.tls=true" - - "traefik.http.services.kirbycms.loadbalancer.server.port=80" -volumes: - kirbycms_data: - driver: local - driver_opts: - type: none - o: bind - device: /mnt/docker-volumes/website/kirbycms # Neuer fester Speicherort diff --git a/apps/website/kirby/Dockerfile b/apps/website/kirby/Dockerfile deleted file mode 100644 index be49a8a..0000000 --- a/apps/website/kirby/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -# Use latest offical ubuntu image -FROM ubuntu:latest - -# Set timezone -ENV TZ=Europe/Berlin - -# Set geographic area using above variable -# This is necessary, otherwise building the image doesn't work -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -# Remove annoying messages during package installation -ARG DEBIAN_FRONTEND=noninteractive - -# Install packages: web server & PHP plus extensions -RUN apt-get update && apt-get install -y \ - apache2 \ - apache2-utils \ - ca-certificates \ - php \ - libapache2-mod-php \ - php-curl \ - php-dom \ - php-gd \ - php-intl \ - php-json \ - php-mbstring \ - php-xml \ - php-zip && \ - apt-get clean && rm -rf /var/lib/apt/lists/* - -# Copy virtual host configuration from current path onto existing 000-default.conf -COPY default.conf /etc/apache2/sites-available/000-default.conf - -# Remove default content (existing index.html) -RUN rm /var/www/html/* - -# Activate Apache modules headers & rewrite -RUN a2enmod headers rewrite - -# Ensure Group Ownership for www-data every member of kirbygroup should edit files -RUN groupadd -g 1003 kirbygroup && usermod -aG kirbygroup www-data -RUN chown -R www-data:kirbygroup /var/www/html -RUN chmod -R g+rw /var/www/html && find /var/www/html -type d -exec chmod g+xs {} \; - -# Tell container to listen to port 80 at runtime -EXPOSE 80 - -# Start Apache web server -CMD [ "/usr/sbin/apache2ctl", "-DFOREGROUND" ] diff --git a/apps/website/kirby/default.conf b/apps/website/kirby/default.conf deleted file mode 100644 index 9c20cf5..0000000 --- a/apps/website/kirby/default.conf +++ /dev/null @@ -1,9 +0,0 @@ - - ServerName localhost - # Set the document root - DocumentRoot "/var/www/html" - - # Allow overriding the default configuration via `.htaccess` - AllowOverride All - - diff --git a/apps/website/kirby/entrypoint.sh b/apps/website/kirby/entrypoint.sh deleted file mode 100644 index cc7816e..0000000 --- a/apps/website/kirby/entrypoint.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -set -e -u - -[[ $USERID ]] && usermod --uid "${USERID}" www-data - -exec "$@" diff --git a/apps/website/kirby/id.env b/apps/website/kirby/id.env deleted file mode 100644 index 02922e6..0000000 --- a/apps/website/kirby/id.env +++ /dev/null @@ -1 +0,0 @@ -USERID=${USERID:-0} diff --git a/env/.env.all b/env/.env.all deleted file mode 100644 index 4620033..0000000 --- a/env/.env.all +++ /dev/null @@ -1,39 +0,0 @@ -## -## Einstellung die für das gesamte Projekt gelten. Also der Name und der Admin -## Das Environment muss "production","staging" oder "development" heißen - -INFRASTRUCTURE_LABEL=mindboost -ENVIRONMENT=development - -ADMIN_USER=${INFRASTRUCTURE_LABEL:-default}_${ENVIRONMENT:-development} -ADMIN_PASSWORD_HASH='$2y$05$U7noO29Ru/4VB5x8TpZo3.b4VjH6AAnhufJJUG2Vs7qHCM2Cd8yIK' # for development = admin - -SERVER_IP=127.0.0.1 - - -################################################################################################# -# 🔧 ENVIRONMENT VARIABLES 🔧 # -################################################################################################# -# -# This file contains **default (fallback) values** for environment variables. -# These values ensure that services run with sane defaults if no other configuration is provided. -# -# 📌 **ENVIRONMENT VARIABLE PRIORITY ORDER (Lowest to Highest)** -# 1️⃣ **Fallback Values in the File** (Used only if no other source provides a value) -# 2️⃣ **Global Defaults in `.env.all`** (Shared settings across all services) -# 3️⃣ **Service-Specific `.env` Files** (Overrides per service group, e.g., `.env.backend`, `.env.proxy`) -# 4️⃣ **Preloaded Shell Environment** (`export VAR=value` before running `docker compose`) -# 5️⃣ **CLI Overrides** (`docker compose --env-file` or `-e VAR=value` → Highest Priority) -# -# 🔄 **Overwriting Behavior** -# - Variables defined in **`.env.all`** override values in this file. -# - Variables defined in **`.env.`** (e.g., `.env.backend`) override `.env.all`. -# - Variables explicitly **exported in the shell** take priority over all `.env` files. -# - Variables passed via **CLI (`--env-file` or `-e VAR=value`)** have the **highest priority**. -# -# 🚀 **Key Takeaways** -# ✅ Use `.env.all` for common values across environments. -# ✅ Use `.env.` for service-specific configurations. -# ✅ If needed, manually override variables in the shell or CLI. -# -################################################################################################# diff --git a/env/README.md b/env/README.md deleted file mode 100644 index f5c5fad..0000000 --- a/env/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# 🔧 Environment Configuration Guide - -## 🌍 Overview -This project uses **environment variables** to manage configuration across different environments (development, staging, production, etc.). These variables are loaded from `.env` files and can be overridden at multiple levels. - ---- - -## 📌 **Environment Variable Priority (Lowest to Highest)** - -| 🔢 Priority | 📄 Source | 🔍 Description | -|------------|-----------------------------|------------------------------------------------| -| 1️⃣ **Fallback Values** | hardcoded defaults | Used only if no other configuration is provided | -| 2️⃣ **Global Defaults** | `.env.all` | Shared settings for all services | -| 3️⃣ **Service-Specific Overrides** | `.env.backend`, `.env.proxy`, etc. | Overrides `.env.all` with service-specific values | -| 4️⃣ **Shell Environment Variables** | `export VAR=value` before running | Takes precedence over `.env` files | -| 5️⃣ **CLI Overrides** | `docker compose --env-file` or `-e VAR=value` | **Highest priority** (for temporary overrides) | - ---- - -## 🔄 **Overwriting Behavior** -- 🏗 **Variables defined in `.env.all`** override fallback values. -- 🏗 **Variables defined in `.env.`** (e.g., `.env.backend`) override `.env.all`. -- 🔧 **Manually exported environment variables** in the shell take priority over `.env` files. -- 🚀 **Variables passed via CLI (`--env-file` or `-e VAR=value`)** override everything. - ---- - -## 🚀 **Best Practices** -✔️ **Use `.env.all` for global configurations** (e.g., `ENVIRONMENT=development`, `INFRASTRUCTURE_LABEL=myinfra`). -✔️ **Use `.env.` for service-specific configurations** (e.g., `.env.backend` for Laravel, `.env.database` for MariaDB). -✔️ **If needed, manually override variables in the shell** using `export VAR=value`. -✔️ **Use CLI `--env-file` for temporary overrides** in testing/debugging scenarios. - ---- - -## 🏗 **Example File Structure** -```sh -/env/ - ├── .env.all # Global default variables - ├── development/ - │ ├── .env.backend # Backend service config for development - │ ├── .env.database # Database config for development - │ ├── .env.proxy # Proxy config for development - ├── staging/ - │ ├── .env.backend # Backend service config for staging - │ ├── .env.database # Database config for staging - ├── production/ - │ ├── .env.backend # Backend service config for production - │ ├── .env.database # Database config for production - diff --git a/env/development/.env.administration b/env/development/.env.administration deleted file mode 100644 index 431f787..0000000 --- a/env/development/.env.administration +++ /dev/null @@ -1,7 +0,0 @@ -# ---------------------------------- -# Portainer -# ---------------------------------- - -PORTAINER_IMAGE=portainer/portainer-ce:latest -PORTAINER_DATA_PATH=../../../volumes/administration/portainer/data - diff --git a/env/development/.env.backend b/env/development/.env.backend deleted file mode 100644 index a0fcfaf..0000000 --- a/env/development/.env.backend +++ /dev/null @@ -1,31 +0,0 @@ - - -# ---------------------------------- -# Redis -# ---------------------------------- -REDIS_PASSWORD=laravel-redis-passwort -REDIS_PORT=6379 -SERVER_IP=${SERVER_IP:-localhost} - -# ---------------------------------- -# Laravel Backend -# ---------------------------------- -BACKEND_NETWORK=backend -APP_ENV=${ENVIRONMENT-local} -APP_NAME="mindboost backend - Compose Deployment" -APP_URL=https://backend.local -LARAVEL_PORT=8000 -LARAVEL_VITE_PORT=5173 -JWT_SECRET=zMtO8sgsnc4UixWSsYWE1pK9EdpNLzxNSoIPlUpTe6dDlarM3bu4cwM80tH3jA0F - -# ---------------------------------- -# Datenbank Zugriff - ! MUSS MIT .env.database übereinstimmen -# ---------------------------------- -DB_HOST=database -DB_PORT=3306 -DB_PASSWORD=1stronges-mindboostdb-passwort -DB_USERNAME=${INFRASTRUCTURE_LABEL:-default}_${ENVIRONMENT:-development} -DB_DATABASE=${INFRASTRUCTURE_LABEL:-default}_${ENVIRONMENT:-development} - - - diff --git a/env/development/.env.database b/env/development/.env.database deleted file mode 100644 index ddaad30..0000000 --- a/env/development/.env.database +++ /dev/null @@ -1,9 +0,0 @@ -# ---------------------------------- -# Datenbank (MariaDB) -# ---------------------------------- -MARIADB_USER=${INFRASTRUCTURE_LABEL:-default}_${ENVIRONMENT:-development} -MARIADB_DATABASE=${INFRASTRUCTURE_LABEL:-default}_${ENVIRONMENT:-development} -MARIADB_ROOT_PASSWORD_FILE=/run/secrets/mariadb_root -MARIADB_PASSWORD=1stronges-mindboostdb-passwort -MARIADB_PORT=3306 -MARIADB_HOST=database diff --git a/env/development/.env.develop b/env/development/.env.develop deleted file mode 100644 index a37a4e7..0000000 --- a/env/development/.env.develop +++ /dev/null @@ -1,25 +0,0 @@ -# ---------------------------------- -# GITEA -# ---------------------------------- - -USER_UID=1000 -USER_GID=1000 - -GITEA_VOLUME_PATH=../../../volumes/develop/gitea/gitea -GITEA_DATABASE_VOLUME_PATH=../../../volumes/develop/gitea/gitea_db - -GITEA_MYSQL_ROOT_PASSWORD=very-difficult-passwort-gitea -GITEA_MYSQL_USER=gitea -GITEA_MYSQL_PASSWORD=very-difficult-gitea -GITEA_MYSQL_DATABASE=gitea -GITEA_MYSQL_ALLOW_EMPTY_PASSWORD=true - -# ---------------------------------- -# GITEA DB -# ---------------------------------- - -DB_HOST=gitea_db:3306 -DB_NAME=gitea -DB_PASSWD=very-difficult-gitea -DB_TYPE=mysql -DB_USER=gitea diff --git a/env/development/.env.frontend b/env/development/.env.frontend deleted file mode 100644 index 7df9bbc..0000000 --- a/env/development/.env.frontend +++ /dev/null @@ -1,4 +0,0 @@ -# ---------------------------------- -# VUE APP -# ---------------------------------- -BACKEND_URL="backend.local" diff --git a/env/development/.env.proxy b/env/development/.env.proxy deleted file mode 100644 index 9aaf065..0000000 --- a/env/development/.env.proxy +++ /dev/null @@ -1,51 +0,0 @@ -# ---------------------------------- -# TRAEFIK -# ---------------------------------- - -TRAEFIK_ENABLE=true -TRAEFIK_NETWORK=proxy -TRAEFIK_BASIC_AUTH_USERS=${ADMIN_USER}:${ADMIN_PASSWORD_HASH} -TRAEFIK_CERT_RESOLVER= - -## Domains when TRAEFIK is ENABLED - -PORTAINER_DOMAIN=portainer.local -FRONTEND_DOMAIN=frontend.local -FRONTEND_DOMAIN_2=app.frontend.local -BACKEND_DOMAIN=backend.local -WEBSITE_DOMAIN=web.local -ADMINER_DOMAIN=adminer.local -GITEA_DOMAIN=gitea.local -LIMESURVEY_DOMAIN=survey.local -LINKSTACK_DOMAIN=linkstack.local -TRAEFIK_DOMAIN=traefik.local -CLOUD_DOMAIN=cloud.local -KILLBILL_DOMAIN=killbill.local - -### TLS for Domains - -PORTAINER_TLS_DOMAIN_MAIN=${PORTAINER_DOMAIN} -FRONTEND_TLS_DOMAIN_MAIN=${FRONTEND_DOMAIN} -FRONTEND_TLS_DOMAIN_SANS=${FRONTEND_DOMAIN_2} -BACKEND_TLS_DOMAIN_MAIN=${BACKEND_DOMAIN} -WEBSITE_TLS_DOMAIN_MAIN=${WEBSITE_DOMAIN} -GITEA_TLS_DOMAIN_MAIN=${GITEA_DOMAIN} -LIMESURVEY_TLS_DOMAIN_MAIN=${LIMESURVEY_DOMAIN} -LINKSTACK_TLS_DOMAIN_MAIN=${LINKSTACK_DOMAIN} -TRAEFIK_TLS_DOMAIN_MAIN=${TRAEFIK_DOMAIN} -CLOUD_TLS_DOMAIN_MAIN=${CLOUD_DOMAIN} -KILLBILL_TLS_DOMAIN_MAIN=${KILLBILL_DOMAIN} - - -## MIDDLEWARES - -TRAEFIK_HTTPS_REDIRECT_MIDDLEWARE=${INFRASTRUCTURE_LABEL:-default}-https-redirect -TRAEFIK_BASIC_AUTH_MIDDLEWARE=${INFRASTRUCTURE_LABEL:-default}-basic-auth - - -## ENTRYPOINTS - -TRAEFIK_ENTRYPOINT=websecure -TRAEFIK_ENTRYPOINT_HTTP=web - - diff --git a/env/development/.env.tools b/env/development/.env.tools deleted file mode 100644 index f260d4d..0000000 --- a/env/development/.env.tools +++ /dev/null @@ -1,29 +0,0 @@ -# ---------------------------------- -# NEXTCLOUD DB -# ---------------------------------- - -MYSQL_ROOT_PASSWORD=headpiece-constant1-denim-mindboost #SQL root Passwort eingeben -MYSQL_PASSWORD=idealist9-frayed-murkiness-mindboost #SQL Benutzer Passwort eingeben -MYSQL_DATABASE=nextcloud-mindboost #Datenbank Name -MYSQL_USER=mindboostcloud #SQL Nutzername -MYSQL_INITDB_SKIP_TZINFO=1 -MARIADB_AUTO_UPGRADE=1 - -# ---------------------------------- -# NEXTCLOUD CLOUD -# ---------------------------------- - -TRUSTED_PROXIES=172.16.255.254/16 -OVERWRITEPROTOCOL=https -OVERWRITECLIURL=https://${CLOUD_DOMAIN:-cloud} -OVERWRITEHOST=${CLOUD_DOMAIN:-cloud} -REDIS_HOST=nextcloud-redis -REDIS_HOST_PASSWORD=redis-mindboost-passwort - -# ---------------------------------- -# KILLBILL PAYMENT -# ---------------------------------- - -KILLBILL_DAO_URL=jdbc:mysql://db:3306/killbill -KILLBILL_DAO_USER=${ADMIN_USER:-root} -KILLBILL_DAO_PASSWORD=${ADMIN_PASSWORD_HASH} diff --git a/env/development/.env.website b/env/development/.env.website deleted file mode 100644 index ae2e104..0000000 --- a/env/development/.env.website +++ /dev/null @@ -1,5 +0,0 @@ -# ---------------------------------- -# KIRBY CMS -# ---------------------------------- - -USER_ID=0 \ No newline at end of file diff --git a/env/production/.env.administration b/env/production/.env.administration deleted file mode 100644 index e69de29..0000000 diff --git a/env/production/.env.backend b/env/production/.env.backend deleted file mode 100644 index da3fa1c..0000000 --- a/env/production/.env.backend +++ /dev/null @@ -1 +0,0 @@ -${REDIS_PASSWORD} \ No newline at end of file diff --git a/env/production/.env.database b/env/production/.env.database deleted file mode 100644 index 0369eb2..0000000 --- a/env/production/.env.database +++ /dev/null @@ -1,7 +0,0 @@ -# ---------------------------------- -# Datenbank (MariaDB) -# ---------------------------------- -MARIADB_USER=${INFRASTRUCTURE_LABEL:-default}_${ENVIRONMENT:-development} -MARIADB_DATABASE=${INFRASTRUCTURE_LABEL:-default}_${ENVIRONMENT:-development} -MARIADB_PASSWORD=1stronges-mindboostdb-passwort -MARIADB_ROOT_PASSWORD=1stronges-passwort-fuer-diedb diff --git a/env/production/.env.develop b/env/production/.env.develop deleted file mode 100644 index d0483c8..0000000 --- a/env/production/.env.develop +++ /dev/null @@ -1 +0,0 @@ -ADMINER_PORT=8000 \ No newline at end of file diff --git a/env/production/.env.frontend b/env/production/.env.frontend deleted file mode 100644 index e69de29..0000000 diff --git a/env/production/.env.portainer b/env/production/.env.portainer deleted file mode 100644 index 82f3f7d..0000000 --- a/env/production/.env.portainer +++ /dev/null @@ -1,3 +0,0 @@ -PORTAINER_IMAGE=portainer/portainer-ce:latest -PORTAINER_DATA_PATH=/opt/containers/portainer/data -PORTAINER_DOMAIN=portainer.yourdomain.com \ No newline at end of file diff --git a/env/production/.env.proxy b/env/production/.env.proxy deleted file mode 100644 index 76d9948..0000000 --- a/env/production/.env.proxy +++ /dev/null @@ -1,32 +0,0 @@ -TRAEFIK_HTTPS_REDIRECT_MIDDLEWARE=${INFRASTRUCTURE_LABEL:-default}-https-redirect -TRAEFIK_BASIC_AUTH_MIDDLEWARE=${INFRASTRUCTURE_LABEL:-default}-basic-auth -TRAEFIK_BASIC_AUTH_USERS=${ADMIN_USER}:${ADMIN_PASSWORD_HASH} - -# Service Crowdsec -SERVICES_CROWDSEC_CONTAINER_NAME=crowdsec -SERVICES_CROWDSEC_HOSTNAME=crowdsec -SERVICES_CROWDSEC_IMAGE=crowdsecurity/crowdsec -SERVICES_CROWDSEC_IMAGE_VERSION=latest -SERVICES_CROWDSEC_NETWORKS_CROWDSEC_IPV4=172.31.254.254 - -# Service Traefik -SERVICES_TRAEFIK_CONTAINER_NAME=${INFRASTRUCTURE_LABEL:-default}-traefik -SERVICES_TRAEFIK_HOSTNAME=${INFRASTRUCTURE_LABEL:-default}-traefik -SERVICES_TRAEFIK_IMAGE=traefik -SERVICES_TRAEFIK_IMAGE_VERSION=2.11 -SERVICES_TRAEFIK_LABELS_TRAEFIK_HOST=`traefik.haslach2025.de` -SERVICES_TRAEFIK_NETWORKS_CROWDSEC_IPV4=172.31.254.253 -SERVICES_TRAEFIK_NETWORKS_PROXY_IPV4=172.30.255.254 - -# Service Traefik Crowdsec Bouncer -SERVICES_TRAEFIK_CROWDSEC_BOUNCER_CONTAINER_NAME=traefik_crowdsec_bouncer -SERVICES_TRAEFIK_CROWDSEC_BOUNCER_HOSTNAME=traefik-crowdsec-bouncer -SERVICES_TRAEFIK_CROWDSEC_BOUNCER_IMAGE=fbonalair/traefik-crowdsec-bouncer -SERVICES_TRAEFIK_CROWDSEC_BOUNCER_IMAGE_VERSION=latest -SERVICES_TRAEFIK_CROWDSEC_BOUNCER_NETWORKS_CROWDSEC_IPV4=172.31.254.252 - -# Netzwerkeinstellungen -NETWORKS_PROXY_NAME=proxy -NETWORKS_PROXY_SUBNET_IPV4=172.30.0.0/16 -NETWORKS_CROWDSEC_NAME=crowdsec -NETWORKS_CROWDSEC_SUBNET_IPV4=172.31.0.0/16 diff --git a/env/production/.env.tools b/env/production/.env.tools deleted file mode 100644 index e69de29..0000000 diff --git a/env/production/.env.website b/env/production/.env.website deleted file mode 100644 index e69de29..0000000 diff --git a/env/staging/.env.administration b/env/staging/.env.administration deleted file mode 100644 index 4d87782..0000000 --- a/env/staging/.env.administration +++ /dev/null @@ -1,6 +0,0 @@ - - -# ---------------------------------- -# Portainer -# ---------------------------------- - diff --git a/env/staging/.env.backend b/env/staging/.env.backend deleted file mode 100644 index 7ed4829..0000000 --- a/env/staging/.env.backend +++ /dev/null @@ -1,15 +0,0 @@ - - -# ---------------------------------- -# Redis -# ---------------------------------- - - -# ---------------------------------- -# Laravel Backend -# ---------------------------------- - - -# ---------------------------------- -# Adminer -# ---------------------------------- diff --git a/env/staging/.env.database b/env/staging/.env.database deleted file mode 100644 index f1071c7..0000000 --- a/env/staging/.env.database +++ /dev/null @@ -1,3 +0,0 @@ -# ---------------------------------- -# Datenbank (MariaDB) -# ---------------------------------- diff --git a/env/staging/.env.develop b/env/staging/.env.develop deleted file mode 100644 index 0cb6f7d..0000000 --- a/env/staging/.env.develop +++ /dev/null @@ -1,9 +0,0 @@ -# ---------------------------------- -# GITEA -# ---------------------------------- - - - -# ---------------------------------- -# GITEA DB -# ---------------------------------- diff --git a/env/staging/.env.frontend b/env/staging/.env.frontend deleted file mode 100644 index d2f2d98..0000000 --- a/env/staging/.env.frontend +++ /dev/null @@ -1,3 +0,0 @@ -# ---------------------------------- -# VUE APP -# ---------------------------------- diff --git a/env/staging/.env.proxy b/env/staging/.env.proxy deleted file mode 100644 index e130688..0000000 --- a/env/staging/.env.proxy +++ /dev/null @@ -1,4 +0,0 @@ -# ---------------------------------- -# TRAEFIK -# ---------------------------------- - diff --git a/env/staging/.env.tools b/env/staging/.env.tools deleted file mode 100644 index 9f86194..0000000 --- a/env/staging/.env.tools +++ /dev/null @@ -1,9 +0,0 @@ -# ---------------------------------- -# NEXTCLOUD DB -# ---------------------------------- - - - -# ---------------------------------- -# NEXTCLOUD CLOUD -# ---------------------------------- diff --git a/env/staging/.env.website b/env/staging/.env.website deleted file mode 100644 index 992d8e7..0000000 --- a/env/staging/.env.website +++ /dev/null @@ -1,4 +0,0 @@ -# ---------------------------------- -# KIRBY CMS -# ---------------------------------- -