From 754eee0d32f5b76e1c1a9ce6a1d303f94fbb3c48 Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Mon, 6 Jul 2026 21:07:17 +0200 Subject: [PATCH] test --- .gitignore | 5 + Makefile | 4 + README.md | 177 +++--------------- ...{7daystodie.env => 7daystodie.env.example} | 2 +- .../backup/env/7daystodie_backup.env | 14 -- .../backup/env/7daystodie_backup.env.example} | 4 +- .../services/authelia/env/authelia.env | 7 - .../authelia/env/authelia.env.example | 7 + .../authelia/env/authelia_postgres.env | 3 - .../env/authelia_postgres.env.example | 3 + .../env/{caddy.env => caddy.env.example} | 0 ...dy_backup.env => caddy_backup.env.example} | 4 +- ...track.env => dependency-track.env.example} | 2 +- .../dependency-track/env/postgres.env | 3 - .../dependency-track/env/postgres.env.example | 3 + .../env/{dozzle.env => dozzle.env.example} | 0 .../dufs/env/{dufs.env => dufs.env.example} | 2 +- .../env/{forgejo.env => forgejo.env.example} | 6 +- .../services/forgejo/env/forgejo_db.env | 4 - .../forgejo/env/forgejo_db.env.example | 4 + ..._runner.env => forgejo_runner.env.example} | 2 +- .../{homepage.env => homepage.env.example} | 0 .../{jellyfin.env => jellyfin.env.example} | 0 .../env/{localai.env => localai.env.example} | 0 .../env/{memos.env => memos.env.example} | 0 .../backup/env/backup.env.example} | 6 +- ...s_plugins.env => mods_plugins.env.example} | 2 +- .../env/{proxy.env => proxy.env.example} | 2 +- .../env/{server.env => server.env.example} | 3 +- .../env/{world.env => world.env.example} | 2 +- .../open-webui/docker-compose.open-webui.yml | 4 +- .../open-webui/env/litellm-postgres.env | 3 - .../env/litellm-postgres.env.example | 3 + .../services/open-webui/env/litellm.env | 11 -- .../open-webui/env/litellm.env.example | 11 ++ ...llama.env => openwebui-ollama.env.example} | 0 .../open-webui/env/openwebui-pgadmin.env | 4 - .../env/openwebui-pgadmin.env.example | 4 + .../open-webui/env/openwebui-pipelines.env | 1 - .../env/openwebui-pipelines.env.example | 1 + .../open-webui/env/openwebui-postgres.env | 3 - .../env/openwebui-postgres.env.example | 3 + .../open-webui/env/openwebui-qdrant.env | 2 - .../env/openwebui-qdrant.env.example | 2 + .../open-webui/env/openwebui-valkey.env | 1 - .../env/openwebui-valkey.env.example | 1 + .../{openwebui.env => openwebui.env.example} | 12 +- .../env/{openssh.env => openssh.env.example} | 4 +- .../services/picoshare/env/picoshare.env | 3 - .../picoshare/env/picoshare.env.example | 3 + ...rojectsend.env => projectsend.env.example} | 0 .../projectsend/env/projectsend_db.env | 4 - .../env/projectsend_db.env.example | 4 + .../services/psitransfer/env/psitransfer.env | 2 - .../psitransfer/env/psitransfer.env.example | 2 + ...bittorrent.env => qbittorrent.env.example} | 2 +- ...up.env => satisfactory_backup.env.example} | 2 +- ...isfactory.env => satisfactory.env.example} | 2 +- .../{searxng.env => searxng.env.example} | 0 ...tirlingpdf.env => stirlingpdf.env.example} | 2 +- .../services/syncthing/env/syncthing.env | 0 .../syncthing/env/syncthing.env.example | 1 + .../env/teamfortress2_backup.env.example} | 4 +- .../teamfortress2/env/teamfortress2.env | 10 - .../env/teamfortress2.env.example | 12 ++ .../transmission/env/transmission.env | 3 - .../transmission/env/transmission.env.example | 3 + .../services/wordpress/env/wordpress.env | 4 - .../wordpress/env/wordpress.env.example | 4 + ...ackup.env => wordpress_backup.env.example} | 4 +- .../services/wordpress/env/wordpress_db.env | 4 - .../wordpress/env/wordpress_db.env.example | 4 + tools/init_secrets.sh | 50 +++++ 73 files changed, 196 insertions(+), 274 deletions(-) rename infrastructure/services/7daystodie-server/7daystodie/env/{7daystodie.env => 7daystodie.env.example} (88%) delete mode 100644 infrastructure/services/7daystodie-server/backup/env/7daystodie_backup.env rename infrastructure/services/{minecraft-server/backup/env/backup.env => 7daystodie-server/backup/env/7daystodie_backup.env.example} (90%) delete mode 100644 infrastructure/services/authelia/env/authelia.env create mode 100644 infrastructure/services/authelia/env/authelia.env.example delete mode 100644 infrastructure/services/authelia/env/authelia_postgres.env create mode 100644 infrastructure/services/authelia/env/authelia_postgres.env.example rename infrastructure/services/caddy/env/{caddy.env => caddy.env.example} (100%) rename infrastructure/services/caddy/env/{caddy_backup.env => caddy_backup.env.example} (87%) rename infrastructure/services/dependency-track/env/{dependency-track.env => dependency-track.env.example} (80%) delete mode 100644 infrastructure/services/dependency-track/env/postgres.env create mode 100644 infrastructure/services/dependency-track/env/postgres.env.example rename infrastructure/services/dozzle/env/{dozzle.env => dozzle.env.example} (100%) rename infrastructure/services/dufs/env/{dufs.env => dufs.env.example} (66%) rename infrastructure/services/forgejo/env/{forgejo.env => forgejo.env.example} (82%) delete mode 100644 infrastructure/services/forgejo/env/forgejo_db.env create mode 100644 infrastructure/services/forgejo/env/forgejo_db.env.example rename infrastructure/services/forgejo/env/{forgejo_runner.env => forgejo_runner.env.example} (75%) rename infrastructure/services/homepage/env/{homepage.env => homepage.env.example} (100%) rename infrastructure/services/jellyfin/env/{jellyfin.env => jellyfin.env.example} (100%) rename infrastructure/services/localai/env/{localai.env => localai.env.example} (100%) rename infrastructure/services/memos/env/{memos.env => memos.env.example} (100%) rename infrastructure/services/{teamfortress2-server/backup/env/teamfortress2_backup.env => minecraft-server/backup/env/backup.env.example} (86%) rename infrastructure/services/minecraft-server/minecraft-server/env/{mods_plugins.env => mods_plugins.env.example} (97%) rename infrastructure/services/minecraft-server/minecraft-server/env/{proxy.env => proxy.env.example} (86%) rename infrastructure/services/minecraft-server/minecraft-server/env/{server.env => server.env.example} (96%) rename infrastructure/services/minecraft-server/minecraft-server/env/{world.env => world.env.example} (96%) delete mode 100644 infrastructure/services/open-webui/env/litellm-postgres.env create mode 100644 infrastructure/services/open-webui/env/litellm-postgres.env.example delete mode 100644 infrastructure/services/open-webui/env/litellm.env create mode 100644 infrastructure/services/open-webui/env/litellm.env.example rename infrastructure/services/open-webui/env/{openwebui-ollama.env => openwebui-ollama.env.example} (100%) delete mode 100644 infrastructure/services/open-webui/env/openwebui-pgadmin.env create mode 100644 infrastructure/services/open-webui/env/openwebui-pgadmin.env.example delete mode 100644 infrastructure/services/open-webui/env/openwebui-pipelines.env create mode 100644 infrastructure/services/open-webui/env/openwebui-pipelines.env.example delete mode 100644 infrastructure/services/open-webui/env/openwebui-postgres.env create mode 100644 infrastructure/services/open-webui/env/openwebui-postgres.env.example delete mode 100644 infrastructure/services/open-webui/env/openwebui-qdrant.env create mode 100644 infrastructure/services/open-webui/env/openwebui-qdrant.env.example delete mode 100644 infrastructure/services/open-webui/env/openwebui-valkey.env create mode 100644 infrastructure/services/open-webui/env/openwebui-valkey.env.example rename infrastructure/services/open-webui/env/{openwebui.env => openwebui.env.example} (65%) rename infrastructure/services/openssh/env/{openssh.env => openssh.env.example} (86%) delete mode 100644 infrastructure/services/picoshare/env/picoshare.env create mode 100644 infrastructure/services/picoshare/env/picoshare.env.example rename infrastructure/services/projectsend/env/{projectsend.env => projectsend.env.example} (100%) delete mode 100644 infrastructure/services/projectsend/env/projectsend_db.env create mode 100644 infrastructure/services/projectsend/env/projectsend_db.env.example delete mode 100644 infrastructure/services/psitransfer/env/psitransfer.env create mode 100644 infrastructure/services/psitransfer/env/psitransfer.env.example rename infrastructure/services/qbittorrent/env/{qbittorrent.env => qbittorrent.env.example} (56%) rename infrastructure/services/satisfactory-server/backup/env/{satisfactory_backup.env => satisfactory_backup.env.example} (89%) rename infrastructure/services/satisfactory-server/satisfactory/env/{satisfactory.env => satisfactory.env.example} (93%) rename infrastructure/services/searxng/config/{searxng.env => searxng.env.example} (100%) rename infrastructure/services/stirlingpdf/env/{stirlingpdf.env => stirlingpdf.env.example} (76%) delete mode 100644 infrastructure/services/syncthing/env/syncthing.env create mode 100644 infrastructure/services/syncthing/env/syncthing.env.example rename infrastructure/services/{7daystodie-server/7daystodie/env/7daystodie_backup.env => teamfortress2-server/backup/env/teamfortress2_backup.env.example} (85%) delete mode 100644 infrastructure/services/teamfortress2-server/teamfortress2/env/teamfortress2.env create mode 100644 infrastructure/services/teamfortress2-server/teamfortress2/env/teamfortress2.env.example delete mode 100644 infrastructure/services/transmission/env/transmission.env create mode 100644 infrastructure/services/transmission/env/transmission.env.example delete mode 100644 infrastructure/services/wordpress/env/wordpress.env create mode 100644 infrastructure/services/wordpress/env/wordpress.env.example rename infrastructure/services/wordpress/env/{wordpress_backup.env => wordpress_backup.env.example} (86%) delete mode 100644 infrastructure/services/wordpress/env/wordpress_db.env create mode 100644 infrastructure/services/wordpress/env/wordpress_db.env.example create mode 100755 tools/init_secrets.sh diff --git a/.gitignore b/.gitignore index 45cec20..ea6c0c4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,7 @@ /*.tar.gz + +infrastructure/services/**/env/*.env +infrastructure/services/**/config/*.env +!infrastructure/services/**/env/*.env.example +!infrastructure/services/**/config/*.env.example diff --git a/Makefile b/Makefile index 723e253..b8546fc 100644 --- a/Makefile +++ b/Makefile @@ -29,3 +29,7 @@ CONFIGS := ia torrent tools #DOCKER_PROFILES := include DockerCompose.mk + +.PHONY: init +init: + @bash tools/init_secrets.sh diff --git a/README.md b/README.md index 2b23e10..226ecf8 100644 --- a/README.md +++ b/README.md @@ -151,165 +151,71 @@ And then, caddy will generate the certificate for you and renew it automatically ### Configure the infrastructure -You need to configure the infrastructure with your own configuration. - -You can generate a password with 32 characters: +Every service ships a `*.env.example` file. Real `*.env` files are gitignored and never committed - generate them locally with: ```sh -openssl rand -base64 32 +make init ``` -Or online: [passwordsgenerator.net](https://passwordsgenerator.net/) +This copies every `*.env.example` → `*.env` and fills in randomly generated passwords, keys and tokens (including shared values that must match across services, e.g. a service and its database). Existing `.env` files are never overwritten, so re-running it later is always safe. + +After `make init`, a few things still need manual attention: #### Caddy -For [caddy_backup.env](infrastructure/services/caddy/env/caddy_backup.env) file, you need to change the password(s) for the restic backup. - -```sh -RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ -``` - -On [caddy.env](infrastructure/services/caddy/env/caddy.env) file, you need to update some variables, like the main domain, mail domain and scheme (http or https). +Edit [caddy.env](infrastructure/services/caddy/env/caddy.env.example) to set your domain and mail address: ```sh MAIN_DOMAIN=bensuperpc.org MAIL_DOMAIN=bensuperpc@gmail.com -# Scheme SCHEME=https -# ignore_loaded_certs off AUTO_HTTPS_OPTIONS=ignore_loaded_certs ``` -#### Authelia +#### Authelia - user database -For [authelia.env](infrastructure/services/authelia/env/authelia.env) file, you need to change the password(s) and secret key: - -```sh -AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET=ht87MVnXkXhBpDkMUHqKDqdg8UGBJt+Fx5jNIqXnN2k= -AUTHELIA_SESSION_SECRET=nsvbXKGRXVZUCUkOapntlq/Zh+d75WacTK5Jgyh8zYk= -AUTHELIA_STORAGE_ENCRYPTION_KEY=aWeIT74xIhGVd9nUOr4YTToTl5rpBEbzc/fv4jemuos= -AUTHELIA_STORAGE_POSTGRES_HOST=authelia-postgres -AUTHELIA_STORAGE_POSTGRES_PORT=5432 -AUTHELIA_STORAGE_POSTGRES_DATABASE=authelia_db -AUTHELIA_STORAGE_POSTGRES_USERNAME=authelia -AUTHELIA_STORAGE_POSTGRES_PASSWORD=sAdkxFW6k3GiMOrlBpl6OV76eb9cQz/uk95jmA2UpI8= -``` - -Same for [authelia_postgres.env](infrastructure/services/authelia/env/authelia_postgres.env) file, you need to change the password(s) and user for the database. - -```sh -POSTGRES_USER=authelia -POSTGRES_PASSWORD=sAdkxFW6k3GiMOrlBpl6OV76eb9cQz/uk95jmA2UpI8= -POSTGRES_DB=authelia_db -``` - -You also need to update [users_database.yml](infrastructure/services/authelia/config/users_database.yml) +`make init` generates all Authelia secrets automatically. You still need to add at least one user in [users_database.yml](infrastructure/services/authelia/config/users_database.yml). Generate an argon2 hash for your password: ```sh docker run --rm authelia/authelia:latest authelia crypto hash generate argon2 --password 'MyPassword' ``` -#### Dozzle +#### Dozzle - user account -To generate a new user for dozzle, you can use the following command [users.yml](infrastructure/services/dozzle/config/users.yml): +Generate a user entry for [users.yml](infrastructure/services/dozzle/config/users.yml): ```sh docker run -it --rm amir20/dozzle generate bensuperpc --password mypassword --email bensuperpc@gmail.com --name "bensuperpc" ``` -#### PsiTransfer +#### OpenSSH - public key -For [psitransfer.env](infrastructure/services/psitransfer/env/psitransfer.env) file, you need to change the secret key. +Replace [id_ed25519.pub](infrastructure/services/openssh/config/authorized_keys/id_ed25519.pub) with your own public SSH key. -```sh -PSITRANSFER_ADMIN_PASS=n9jLVNT9QUotTJTT91JqH4GyBTg9pvEn -``` +#### Open-WebUI - Ollama model -For [projectsend_db.env](infrastructure/services/projectsend/env/projectsend_db.env) file, you need to change the password(s) and user for the database. - -```sh -MARIADB_ROOT_PASSWORD=8O34297GrBfT3Ld34Lfg9mpotmZwbJtt -MARIADB_USER=bensuperpc -MARIADB_PASSWORD=wdSUa1JEZhXie5AJ5NcX1w73xmpO12EY -``` - -#### Picoshare - -For [picoshare.env](infrastructure/services/picoshare/env/picoshare.env) file, you need to change the secret key. - -```sh -PS_SHARED_SECRET=CBuS4DJLqIe93xF1KGYRrnhxUFBqLD2n -``` - -#### Dufs - -For [dufs.env](infrastructure/services/dufs/env/dufs.env) file, you need to change the secret key and if you want the user name. - -```sh -DUFS_AUTH="admin:heqihlOfBmJDESGFlpbPi7P7Mi6F7RkV@/:rw|@/:ro" -``` - -#### Stirling PDF - -For [stirlingpdf.env](infrastructure/services/stirlingpdf/env/stirlingpdf.env) file, it's **completly optional**, you can change the password(s) and user. - -```sh -# Enable security, optional -DOCKER_ENABLE_SECURITY=true -SECURITY_ENABLE_LOGIN=true -# Can be disabled after initial login, optional, -# default it admin:stirling -SECURITY_INITIALLOGIN_USERNAME=admin -SECURITY_INITIALLOGIN_PASSWORD=Jw9U039f5xc2mFcacvGvPD9RjwIh4DzO -``` - -#### OpenSSH - -You can need to add/change the public ssh key [id_ed25519.pub](infrastructure/services/openssh/config/authorized_keys/id_ed25519.pub) (its my public key), also change the config/password in [openssh.env](infrastructure/services/openssh/env/openssh.env): - -```sh -SUDO_ACCESS=true -#PUBLIC_KEY_URL=https://github.com/bensuperpc.keys -PUBLIC_KEY_DIR=/authorized_ssh_keys -USER_PASSWORD=rdUwf36C11PLmpU9Lvq7tP5pfFBKAuCh - -#PUBLIC_KEY=yourpublickey -#PUBLIC_KEY_FILE=/path/to/file -#PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys -#USER_PASSWORD_FILE=/path/to/file -``` - -#### Open-WebUI - -For [open-webui.env](infrastructure/services/open-webui/env/openwebui.env) file, you must change the secret key for the webui and configure its PostgreSQL backend. - -```sh -WEBUI_SECRET_KEY=7d83b15a417d090ba5c6b899270a05dd215c60848354c0c7574226d6ff02f39e -DATABASE_URL=postgresql://postgres:securepassword123@openwebui-postgres:5432/openwebui -REDIS_URL=redis://:valkey_password@valkey:6379/0 -``` - -Also update [openwebui-postgres.env](infrastructure/services/open-webui/env/openwebui-postgres.env) and [openwebui-valkey.env](infrastructure/services/open-webui/env/openwebui-valkey.env) with your own credentials. - -To download the model, through open-webui GUI or you can use the following command: +After starting the stack, pull a model via the Open-WebUI GUI or with: ```sh docker exec -it ollama ollama run deepseek-r1:8b ``` -#### Dependency-Track +#### Team Fortress 2 - Steam GSLT -For [dependency-track.env](infrastructure/services/dependency-track/env/dependency-track.env) file, you need to set the database credentials and the API server URL. +`make init` will remind you: set `SRCDS_TOKEN` in [teamfortress2.env](infrastructure/services/teamfortress2-server/teamfortress2/env/teamfortress2.env) with your token from [steamcommunity.com/dev/managegameservers](https://steamcommunity.com/dev/managegameservers). + +#### Dependency-Track - first login + +Default credentials are `admin` / `admin` - **change them on first login**. + +#### Forgejo - installation lock + +After the first-run installation wizard completes, set in [forgejo.env](infrastructure/services/forgejo/env/forgejo.env.example): ```sh -POSTGRES_USER=dtrack -POSTGRES_PASSWORD= -POSTGRES_DB=dtrack_db -ALPINE_DATA_DIRECTORY=/data +FORGEJO__security__INSTALL_LOCK=true ``` -The frontend is available at `https://dependency-track.bensuperpc.org` and the API server at `/api/*`. Default credentials are `admin` / `admin`, **change them on first login**. - ### Homepage You can change the homepage config in these files: @@ -319,16 +225,6 @@ You can change the homepage config in these files: - [settings.yaml](infrastructure/services/homepage/config/settings.yaml) - [widgets.yaml](infrastructure/services/homepage/config/widgets.yaml) -### Forgejo - -For Forgejo installation, you must change the password(s) and user in [forgejo_db.env](infrastructure/services/forgejo/env/forgejo_db.env) file and [forgejo.env](infrastructure/services/forgejo/env/forgejo.env) file. - -Once the installation is complete, you need to set the installation lock: - -```sh -FORGEJO__security__INSTALL_LOCK=true -``` - ### Forgejo Runner (Out of date) ```sh @@ -436,29 +332,6 @@ AUTO_HTTPS_OPTIONS=ignore_loaded_certs And remove all the `import authelia_middleware` in the caddyfiles, authelia need https to work. -#### Wordpress - -For the [wordpress.env](infrastructure/services/wordpress/env/wordpress.env) file, you need to change the password and user for the database. - -```sh -WORDPRESS_DB_USER=bensuperpc -WORDPRESS_DB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw -``` - -For [wordpress_db.env](infrastructure/services/wordpress/env/wordpress_db.env) file, you need to change the password(s) and user for the database. - -```sh -MARIADB_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ -MARIADB_USER=bensuperpc -MARIADB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw -``` - -For [wordpress_backup.env](infrastructure/services/wordpress/env/wordpress_backup.env) file, you need to change the password(s) for the restic backup. - -```sh -RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ -``` - ## Sources - [Wordpress](https://wordpress.org/) diff --git a/infrastructure/services/7daystodie-server/7daystodie/env/7daystodie.env b/infrastructure/services/7daystodie-server/7daystodie/env/7daystodie.env.example similarity index 88% rename from infrastructure/services/7daystodie-server/7daystodie/env/7daystodie.env rename to infrastructure/services/7daystodie-server/7daystodie/env/7daystodie.env.example index 76cb4d6..9ae20a0 100644 --- a/infrastructure/services/7daystodie-server/7daystodie/env/7daystodie.env +++ b/infrastructure/services/7daystodie-server/7daystodie/env/7daystodie.env.example @@ -4,4 +4,4 @@ TimeZone=Europe/Paris BACKUP=NO BACKUP_HOUR=2 BACKUP_MAX=7 -MONITOR=NO \ No newline at end of file +MONITOR=NO diff --git a/infrastructure/services/7daystodie-server/backup/env/7daystodie_backup.env b/infrastructure/services/7daystodie-server/backup/env/7daystodie_backup.env deleted file mode 100644 index 4df6131..0000000 --- a/infrastructure/services/7daystodie-server/backup/env/7daystodie_backup.env +++ /dev/null @@ -1,14 +0,0 @@ -#RUN_ON_STARTUP=true -RESTIC_REPOSITORY=/mnt/restic -RESTIC_BACKUP_SOURCES=/data -RESTIC_PASSWORD=SCY5cmu12Odca302EXabPA9jXYkCb2NN -# Backup (exuclusive with Check and Prune) -BACKUP_CRON=*/15 * * * * -RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose -#RESTIC_FORGET_ARGS=--prune --keep-last 8 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --keep-yearly 4 -# Check (exuclusive with Check and Prune) -#CHECK_CRON=*/15 * * * * -#RESTIC_CHECK_ARGS=--read-data-subset=40% -# Prune (exuclusive with Check and Prune) -#PRUNE_CRON=*/15 * * * * -#RESTIC_PRUNE_ARGS= \ No newline at end of file diff --git a/infrastructure/services/minecraft-server/backup/env/backup.env b/infrastructure/services/7daystodie-server/backup/env/7daystodie_backup.env.example similarity index 90% rename from infrastructure/services/minecraft-server/backup/env/backup.env rename to infrastructure/services/7daystodie-server/backup/env/7daystodie_backup.env.example index 3b34023..da3892c 100644 --- a/infrastructure/services/minecraft-server/backup/env/backup.env +++ b/infrastructure/services/7daystodie-server/backup/env/7daystodie_backup.env.example @@ -1,10 +1,10 @@ #RUN_ON_STARTUP=true RESTIC_REPOSITORY=/mnt/restic RESTIC_BACKUP_SOURCES=/data -RESTIC_PASSWORD=7xymiWBH4c56rlBXPXbgkxF2zw3f2AGs +RESTIC_PASSWORD=__GENERATE_7DTD_RESTIC_PASSWORD__ # Backup (exuclusive with Check and Prune) -RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose BACKUP_CRON=*/15 * * * * +RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose #RESTIC_FORGET_ARGS=--prune --keep-last 8 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --keep-yearly 4 # Check (exuclusive with Check and Prune) #CHECK_CRON=*/15 * * * * diff --git a/infrastructure/services/authelia/env/authelia.env b/infrastructure/services/authelia/env/authelia.env deleted file mode 100644 index 1249453..0000000 --- a/infrastructure/services/authelia/env/authelia.env +++ /dev/null @@ -1,7 +0,0 @@ -AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET=ht87MVnXkXhBpDkMUHqKDqdg8UGBJt+Fx5jNIqXnN2k= -AUTHELIA_SESSION_SECRET=nsvbXKGRXVZUCUkOapntlq/Zh+d75WacTK5Jgyh8zYk= -AUTHELIA_STORAGE_ENCRYPTION_KEY=aWeIT74xIhGVd9nUOr4YTToTl5rpBEbzc/fv4jemuos= -AUTHELIA_STORAGE_POSTGRES_ADDRESS=tcp://authelia-postgres:5432 -AUTHELIA_STORAGE_POSTGRES_DATABASE=authelia_db -AUTHELIA_STORAGE_POSTGRES_USERNAME=authelia -AUTHELIA_STORAGE_POSTGRES_PASSWORD=sAdkxFW6k3GiMOrlBpl6OV76eb9cQz/uk95jmA2UpI8= \ No newline at end of file diff --git a/infrastructure/services/authelia/env/authelia.env.example b/infrastructure/services/authelia/env/authelia.env.example new file mode 100644 index 0000000..885fa86 --- /dev/null +++ b/infrastructure/services/authelia/env/authelia.env.example @@ -0,0 +1,7 @@ +AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET=__GENERATE_AUTHELIA_JWT_SECRET__ +AUTHELIA_SESSION_SECRET=__GENERATE_AUTHELIA_SESSION_SECRET__ +AUTHELIA_STORAGE_ENCRYPTION_KEY=__GENERATE_AUTHELIA_STORAGE_ENCRYPTION_KEY__ +AUTHELIA_STORAGE_POSTGRES_ADDRESS=tcp://authelia-postgres:5432 +AUTHELIA_STORAGE_POSTGRES_DATABASE=authelia_db +AUTHELIA_STORAGE_POSTGRES_USERNAME=authelia +AUTHELIA_STORAGE_POSTGRES_PASSWORD=__GENERATE_AUTHELIA_DB_PASSWORD__ diff --git a/infrastructure/services/authelia/env/authelia_postgres.env b/infrastructure/services/authelia/env/authelia_postgres.env deleted file mode 100644 index b857242..0000000 --- a/infrastructure/services/authelia/env/authelia_postgres.env +++ /dev/null @@ -1,3 +0,0 @@ -POSTGRES_USER=authelia -POSTGRES_PASSWORD=sAdkxFW6k3GiMOrlBpl6OV76eb9cQz/uk95jmA2UpI8= -POSTGRES_DB=authelia_db diff --git a/infrastructure/services/authelia/env/authelia_postgres.env.example b/infrastructure/services/authelia/env/authelia_postgres.env.example new file mode 100644 index 0000000..e332b35 --- /dev/null +++ b/infrastructure/services/authelia/env/authelia_postgres.env.example @@ -0,0 +1,3 @@ +POSTGRES_USER=authelia +POSTGRES_PASSWORD=__GENERATE_AUTHELIA_DB_PASSWORD__ +POSTGRES_DB=authelia_db diff --git a/infrastructure/services/caddy/env/caddy.env b/infrastructure/services/caddy/env/caddy.env.example similarity index 100% rename from infrastructure/services/caddy/env/caddy.env rename to infrastructure/services/caddy/env/caddy.env.example diff --git a/infrastructure/services/caddy/env/caddy_backup.env b/infrastructure/services/caddy/env/caddy_backup.env.example similarity index 87% rename from infrastructure/services/caddy/env/caddy_backup.env rename to infrastructure/services/caddy/env/caddy_backup.env.example index 363c402..720271a 100644 --- a/infrastructure/services/caddy/env/caddy_backup.env +++ b/infrastructure/services/caddy/env/caddy_backup.env.example @@ -1,7 +1,7 @@ #RUN_ON_STARTUP=true RESTIC_REPOSITORY=/mnt/restic RESTIC_BACKUP_SOURCES=/data -RESTIC_PASSWORD=YFQh8v3Wi95v0p6h88D4u8C8z4gLfdMw +RESTIC_PASSWORD=__GENERATE_CADDY_RESTIC_PASSWORD__ # Backup (exuclusive with Check and Prune) BACKUP_CRON=*/30 * * * * RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose @@ -11,4 +11,4 @@ RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose #RESTIC_CHECK_ARGS=--read-data-subset=40% # Prune (exuclusive with Check and Prune) #PRUNE_CRON=*/30 * * * * -#RESTIC_PRUNE_ARGS= \ No newline at end of file +#RESTIC_PRUNE_ARGS= diff --git a/infrastructure/services/dependency-track/env/dependency-track.env b/infrastructure/services/dependency-track/env/dependency-track.env.example similarity index 80% rename from infrastructure/services/dependency-track/env/dependency-track.env rename to infrastructure/services/dependency-track/env/dependency-track.env.example index 9593033..9884c64 100644 --- a/infrastructure/services/dependency-track/env/dependency-track.env +++ b/infrastructure/services/dependency-track/env/dependency-track.env.example @@ -2,6 +2,6 @@ ALPINE_DATABASE_MODE="external" ALPINE_DATABASE_URL="jdbc:postgresql://dependency-track-postgres:5432/dtrack" ALPINE_DATABASE_DRIVER="org.postgresql.Driver" ALPINE_DATABASE_USERNAME="dtrack" -ALPINE_DATABASE_PASSWORD="dtrack" +ALPINE_DATABASE_PASSWORD="__GENERATE_DTRACK_DB_PASSWORD__" API_BASE_URL="https://dependency-track.bensuperpc.org" diff --git a/infrastructure/services/dependency-track/env/postgres.env b/infrastructure/services/dependency-track/env/postgres.env deleted file mode 100644 index b45a53e..0000000 --- a/infrastructure/services/dependency-track/env/postgres.env +++ /dev/null @@ -1,3 +0,0 @@ -POSTGRES_DB="dtrack" -POSTGRES_USER="dtrack" -POSTGRES_PASSWORD="dtrack" diff --git a/infrastructure/services/dependency-track/env/postgres.env.example b/infrastructure/services/dependency-track/env/postgres.env.example new file mode 100644 index 0000000..7ea2d23 --- /dev/null +++ b/infrastructure/services/dependency-track/env/postgres.env.example @@ -0,0 +1,3 @@ +POSTGRES_DB="dtrack" +POSTGRES_USER="dtrack" +POSTGRES_PASSWORD="__GENERATE_DTRACK_DB_PASSWORD__" diff --git a/infrastructure/services/dozzle/env/dozzle.env b/infrastructure/services/dozzle/env/dozzle.env.example similarity index 100% rename from infrastructure/services/dozzle/env/dozzle.env rename to infrastructure/services/dozzle/env/dozzle.env.example diff --git a/infrastructure/services/dufs/env/dufs.env b/infrastructure/services/dufs/env/dufs.env.example similarity index 66% rename from infrastructure/services/dufs/env/dufs.env rename to infrastructure/services/dufs/env/dufs.env.example index aaba117..2b0897d 100644 --- a/infrastructure/services/dufs/env/dufs.env +++ b/infrastructure/services/dufs/env/dufs.env.example @@ -4,4 +4,4 @@ DUFS_SERVE_PATH=/data DUFS_HIDDEN=tmp,*.log,*.lock DUFS_ALLOW_ALL=true DUFS_COMPRESS=medium -DUFS_AUTH="admin:heqihlOfBmJDESGFlpbPi7P7Mi6F7RkV@/:rw|@/:ro" +DUFS_AUTH="admin:__GENERATE_DUFS_PASSWORD__@/:rw|@/:ro" diff --git a/infrastructure/services/forgejo/env/forgejo.env b/infrastructure/services/forgejo/env/forgejo.env.example similarity index 82% rename from infrastructure/services/forgejo/env/forgejo.env rename to infrastructure/services/forgejo/env/forgejo.env.example index 7c6f82e..efc633d 100644 --- a/infrastructure/services/forgejo/env/forgejo.env +++ b/infrastructure/services/forgejo/env/forgejo.env.example @@ -4,7 +4,7 @@ FORGEJO__database__DB_TYPE=mysql FORGEJO__database__HOST=database_forgejo:3306 FORGEJO__database__NAME=forgejo FORGEJO__database__USER=bensuperpc -FORGEJO__database__PASSWD=ZcuHcM9tnIEM7EEO7R5jCpEt6v1d6r7s +FORGEJO__database__PASSWD=__GENERATE_FORGEJO_DB_PASSWORD__ FORGEJO__APP_NAME=Bensuperpc's Forgejo FORGEJO__APP_SLOGAN=Personal Code, Mirrors, and More FORGEJO__server__DOMAIN=git.bensuperpc.org @@ -13,7 +13,7 @@ FORGEJO__server__HTTP_PORT=3000 FORGEJO__server__SSH_LISTEN_PORT=2222 FORGEJO__server__SSH_PORT=22 FORGEJO__server__ROOT_URL=https://git.bensuperpc.org -FORGEJO__security__SECRET_KEY=7IWrMh7mC7UMo1SowvUsAT2LOX49eU6P +FORGEJO__security__SECRET_KEY=__GENERATE_FORGEJO_SECRET_KEY__ #FORGEJO__security__INTERNAL_TOKEN= FORGEJO__security__INSTALL_LOCK=true FORGEJO__security__MIN_PASSWORD_LENGTH=8 @@ -22,4 +22,4 @@ FORGEJO__actions__DEFAULT_ACTIONS_URL="https://git.bensuperpc.org" #FORGEJO__log__LEVEL: "debug" FORGEJO__repository__ENABLE_PUSH_CREATE_USER=true FORGEJO__repository__DEFAULT_PUSH_CREATE_PRIVATE=false -FORGEJO__repository__DEFAULT_REPO_UNITS=repo.code,repo.actions \ No newline at end of file +FORGEJO__repository__DEFAULT_REPO_UNITS=repo.code,repo.actions diff --git a/infrastructure/services/forgejo/env/forgejo_db.env b/infrastructure/services/forgejo/env/forgejo_db.env deleted file mode 100644 index 339e340..0000000 --- a/infrastructure/services/forgejo/env/forgejo_db.env +++ /dev/null @@ -1,4 +0,0 @@ -MARIADB_ROOT_PASSWORD=ZI8Trbot3b8WGqE5AKj1yphKMu4v9qQw -MARIADB_USER=bensuperpc -MARIADB_PASSWORD=ZcuHcM9tnIEM7EEO7R5jCpEt6v1d6r7s -MARIADB_DATABASE=forgejo \ No newline at end of file diff --git a/infrastructure/services/forgejo/env/forgejo_db.env.example b/infrastructure/services/forgejo/env/forgejo_db.env.example new file mode 100644 index 0000000..4912858 --- /dev/null +++ b/infrastructure/services/forgejo/env/forgejo_db.env.example @@ -0,0 +1,4 @@ +MARIADB_ROOT_PASSWORD=__GENERATE_FORGEJO_DB_ROOT_PASSWORD__ +MARIADB_USER=bensuperpc +MARIADB_PASSWORD=__GENERATE_FORGEJO_DB_PASSWORD__ +MARIADB_DATABASE=forgejo diff --git a/infrastructure/services/forgejo/env/forgejo_runner.env b/infrastructure/services/forgejo/env/forgejo_runner.env.example similarity index 75% rename from infrastructure/services/forgejo/env/forgejo_runner.env rename to infrastructure/services/forgejo/env/forgejo_runner.env.example index 3186930..c8e9f9c 100644 --- a/infrastructure/services/forgejo/env/forgejo_runner.env +++ b/infrastructure/services/forgejo/env/forgejo_runner.env.example @@ -1,3 +1,3 @@ DOCKER_HOST=tcp://docker:2376 DOCKER_CERT_PATH=/certs/client -DOCKER_TLS_VERIFY=1 \ No newline at end of file +DOCKER_TLS_VERIFY=1 diff --git a/infrastructure/services/homepage/env/homepage.env b/infrastructure/services/homepage/env/homepage.env.example similarity index 100% rename from infrastructure/services/homepage/env/homepage.env rename to infrastructure/services/homepage/env/homepage.env.example diff --git a/infrastructure/services/jellyfin/env/jellyfin.env b/infrastructure/services/jellyfin/env/jellyfin.env.example similarity index 100% rename from infrastructure/services/jellyfin/env/jellyfin.env rename to infrastructure/services/jellyfin/env/jellyfin.env.example diff --git a/infrastructure/services/localai/env/localai.env b/infrastructure/services/localai/env/localai.env.example similarity index 100% rename from infrastructure/services/localai/env/localai.env rename to infrastructure/services/localai/env/localai.env.example diff --git a/infrastructure/services/memos/env/memos.env b/infrastructure/services/memos/env/memos.env.example similarity index 100% rename from infrastructure/services/memos/env/memos.env rename to infrastructure/services/memos/env/memos.env.example diff --git a/infrastructure/services/teamfortress2-server/backup/env/teamfortress2_backup.env b/infrastructure/services/minecraft-server/backup/env/backup.env.example similarity index 86% rename from infrastructure/services/teamfortress2-server/backup/env/teamfortress2_backup.env rename to infrastructure/services/minecraft-server/backup/env/backup.env.example index 4df6131..1fbf219 100644 --- a/infrastructure/services/teamfortress2-server/backup/env/teamfortress2_backup.env +++ b/infrastructure/services/minecraft-server/backup/env/backup.env.example @@ -1,14 +1,14 @@ #RUN_ON_STARTUP=true RESTIC_REPOSITORY=/mnt/restic RESTIC_BACKUP_SOURCES=/data -RESTIC_PASSWORD=SCY5cmu12Odca302EXabPA9jXYkCb2NN +RESTIC_PASSWORD=__GENERATE_MINECRAFT_RESTIC_PASSWORD__ # Backup (exuclusive with Check and Prune) -BACKUP_CRON=*/15 * * * * RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose +BACKUP_CRON=*/15 * * * * #RESTIC_FORGET_ARGS=--prune --keep-last 8 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --keep-yearly 4 # Check (exuclusive with Check and Prune) #CHECK_CRON=*/15 * * * * #RESTIC_CHECK_ARGS=--read-data-subset=40% # Prune (exuclusive with Check and Prune) #PRUNE_CRON=*/15 * * * * -#RESTIC_PRUNE_ARGS= \ No newline at end of file +#RESTIC_PRUNE_ARGS= diff --git a/infrastructure/services/minecraft-server/minecraft-server/env/mods_plugins.env b/infrastructure/services/minecraft-server/minecraft-server/env/mods_plugins.env.example similarity index 97% rename from infrastructure/services/minecraft-server/minecraft-server/env/mods_plugins.env rename to infrastructure/services/minecraft-server/minecraft-server/env/mods_plugins.env.example index c322296..f4f0f96 100644 --- a/infrastructure/services/minecraft-server/minecraft-server/env/mods_plugins.env +++ b/infrastructure/services/minecraft-server/minecraft-server/env/mods_plugins.env.example @@ -31,4 +31,4 @@ REMOVE_OLD_MODS_DEPTH=16 # MODS_FORGEAPI_IGNORE_GAMETYPE # REMOVE_OLD_FORGEAPI_MODS # REMOVE_OLD_DATAPACKS_DEPTH -# REMOVE_OLD_DATAPACKS_INCLUDE \ No newline at end of file +# REMOVE_OLD_DATAPACKS_INCLUDE diff --git a/infrastructure/services/minecraft-server/minecraft-server/env/proxy.env b/infrastructure/services/minecraft-server/minecraft-server/env/proxy.env.example similarity index 86% rename from infrastructure/services/minecraft-server/minecraft-server/env/proxy.env rename to infrastructure/services/minecraft-server/minecraft-server/env/proxy.env.example index 0836c73..947a3d1 100644 --- a/infrastructure/services/minecraft-server/minecraft-server/env/proxy.env +++ b/infrastructure/services/minecraft-server/minecraft-server/env/proxy.env.example @@ -6,7 +6,7 @@ VELOCITY_BUILD_ID=594 DEBUG=false DEBUG_HELPER=false ENABLE_RCON=false -#RCON_PASSWORD=6hxU3Oxmh2Q8e6S9fjkdWJik +#RCON_PASSWORD=__GENERATE_MINECRAFT_PROXY_RCON_PASSWORD__ #RCON_PORT=25576 INIT_MEMORY=512M MAX_MEMORY=1536M diff --git a/infrastructure/services/minecraft-server/minecraft-server/env/server.env b/infrastructure/services/minecraft-server/minecraft-server/env/server.env.example similarity index 96% rename from infrastructure/services/minecraft-server/minecraft-server/env/server.env rename to infrastructure/services/minecraft-server/minecraft-server/env/server.env.example index e5df29c..4d33e34 100644 --- a/infrastructure/services/minecraft-server/minecraft-server/env/server.env +++ b/infrastructure/services/minecraft-server/minecraft-server/env/server.env.example @@ -64,7 +64,7 @@ ALLOW_FLIGHT=false # RCON options ENABLE_RCON=false -RCON_PASSWORD=6hxU3Oxmh2Q8e6S9fjkdWJik +RCON_PASSWORD=__GENERATE_MINECRAFT_RCON_PASSWORD__ RCON_PORT=25575 BROADCAST_CONSOLE_TO_OPS=true BROADCAST_RCON_TO_OPS=true @@ -78,4 +78,3 @@ SNOOPER_ENABLED=true ENABLE_STATUS=true PREVIEWS_CHAT=false #SYNC_CHUNK_WRITES=true - diff --git a/infrastructure/services/minecraft-server/minecraft-server/env/world.env b/infrastructure/services/minecraft-server/minecraft-server/env/world.env.example similarity index 96% rename from infrastructure/services/minecraft-server/minecraft-server/env/world.env rename to infrastructure/services/minecraft-server/minecraft-server/env/world.env.example index bc4211a..bb2f945 100644 --- a/infrastructure/services/minecraft-server/minecraft-server/env/world.env +++ b/infrastructure/services/minecraft-server/minecraft-server/env/world.env.example @@ -19,4 +19,4 @@ SEED=3820 # Spawn Entities Options SPAWN_ANIMALS=true SPAWN_MONSTERS=true -SPAWN_NPCS=true \ No newline at end of file +SPAWN_NPCS=true diff --git a/infrastructure/services/open-webui/docker-compose.open-webui.yml b/infrastructure/services/open-webui/docker-compose.open-webui.yml index a6ddc57..0740799 100644 --- a/infrastructure/services/open-webui/docker-compose.open-webui.yml +++ b/infrastructure/services/open-webui/docker-compose.open-webui.yml @@ -154,7 +154,9 @@ services: env_file: - ./env/openwebui-valkey.env restart: on-failure:7 - command: valkey-server --requirepass ${VALKEY_PASSWORD:-valkey_password} --maxclients 10000 --timeout 1800 + # $$VALKEY_PASSWORD (not ${VALKEY_PASSWORD}) so it's expanded at container + # runtime from env_file, not at compose-parse time from the host shell. + command: sh -c 'exec valkey-server --requirepass "$$VALKEY_PASSWORD" --maxclients 10000 --timeout 1800' volumes: - openwebui-valkey:/data networks: diff --git a/infrastructure/services/open-webui/env/litellm-postgres.env b/infrastructure/services/open-webui/env/litellm-postgres.env deleted file mode 100644 index bd6d2b7..0000000 --- a/infrastructure/services/open-webui/env/litellm-postgres.env +++ /dev/null @@ -1,3 +0,0 @@ -POSTGRES_USER=litellm_user -POSTGRES_PASSWORD=fdbdfsgfdghgjhfjtjgdfssdgsfdg -POSTGRES_DB=litellm_db \ No newline at end of file diff --git a/infrastructure/services/open-webui/env/litellm-postgres.env.example b/infrastructure/services/open-webui/env/litellm-postgres.env.example new file mode 100644 index 0000000..1ee28dc --- /dev/null +++ b/infrastructure/services/open-webui/env/litellm-postgres.env.example @@ -0,0 +1,3 @@ +POSTGRES_USER=litellm_user +POSTGRES_PASSWORD=__GENERATE_LITELLM_DB_PASSWORD__ +POSTGRES_DB=litellm_db diff --git a/infrastructure/services/open-webui/env/litellm.env b/infrastructure/services/open-webui/env/litellm.env deleted file mode 100644 index 7f62f29..0000000 --- a/infrastructure/services/open-webui/env/litellm.env +++ /dev/null @@ -1,11 +0,0 @@ -DATABASE_URL=postgresql://litellm_user:fdbdfsgfdghgjhfjtjgdfssdgsfdg@litellm-postgres:5432/litellm_db - -LITELLM_MASTER_KEY=a51d5a17f7b8f96128866c6bfc903ec0 - -LITELLM_MODE=proxy -UI_USERNAME=admin -UI_PASSWORD=ffdsfsdsfdggdfsgdfhgfsgfsg -PROXY_BASE_URL=https://litellm.bensuperpc.org - -#OPENAI_API_KEY= -#ANTHROPIC_API_KEY= \ No newline at end of file diff --git a/infrastructure/services/open-webui/env/litellm.env.example b/infrastructure/services/open-webui/env/litellm.env.example new file mode 100644 index 0000000..3a0569f --- /dev/null +++ b/infrastructure/services/open-webui/env/litellm.env.example @@ -0,0 +1,11 @@ +DATABASE_URL=postgresql://litellm_user:__GENERATE_LITELLM_DB_PASSWORD__@litellm-postgres:5432/litellm_db + +LITELLM_MASTER_KEY=__GENERATE_LITELLM_MASTER_KEY__ + +LITELLM_MODE=proxy +UI_USERNAME=admin +UI_PASSWORD=__GENERATE_LITELLM_UI_PASSWORD__ +PROXY_BASE_URL=https://litellm.bensuperpc.org + +#OPENAI_API_KEY= +#ANTHROPIC_API_KEY= diff --git a/infrastructure/services/open-webui/env/openwebui-ollama.env b/infrastructure/services/open-webui/env/openwebui-ollama.env.example similarity index 100% rename from infrastructure/services/open-webui/env/openwebui-ollama.env rename to infrastructure/services/open-webui/env/openwebui-ollama.env.example diff --git a/infrastructure/services/open-webui/env/openwebui-pgadmin.env b/infrastructure/services/open-webui/env/openwebui-pgadmin.env deleted file mode 100644 index bca5178..0000000 --- a/infrastructure/services/open-webui/env/openwebui-pgadmin.env +++ /dev/null @@ -1,4 +0,0 @@ -PGADMIN_DEFAULT_EMAIL=admin@local.ai -PGADMIN_DEFAULT_PASSWORD=admin123 -PGADMIN_CONFIG_SERVER_MODE=False -PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED=False \ No newline at end of file diff --git a/infrastructure/services/open-webui/env/openwebui-pgadmin.env.example b/infrastructure/services/open-webui/env/openwebui-pgadmin.env.example new file mode 100644 index 0000000..01b83fb --- /dev/null +++ b/infrastructure/services/open-webui/env/openwebui-pgadmin.env.example @@ -0,0 +1,4 @@ +PGADMIN_DEFAULT_EMAIL=admin@local.ai +PGADMIN_DEFAULT_PASSWORD=__GENERATE_PGADMIN_PASSWORD__ +PGADMIN_CONFIG_SERVER_MODE=False +PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED=False diff --git a/infrastructure/services/open-webui/env/openwebui-pipelines.env b/infrastructure/services/open-webui/env/openwebui-pipelines.env deleted file mode 100644 index b7ce65a..0000000 --- a/infrastructure/services/open-webui/env/openwebui-pipelines.env +++ /dev/null @@ -1 +0,0 @@ -PIPELINES_API_KEY=ssdfsfdsfdgfgfg \ No newline at end of file diff --git a/infrastructure/services/open-webui/env/openwebui-pipelines.env.example b/infrastructure/services/open-webui/env/openwebui-pipelines.env.example new file mode 100644 index 0000000..3f3e12a --- /dev/null +++ b/infrastructure/services/open-webui/env/openwebui-pipelines.env.example @@ -0,0 +1 @@ +PIPELINES_API_KEY=__GENERATE_PIPELINES_API_KEY__ diff --git a/infrastructure/services/open-webui/env/openwebui-postgres.env b/infrastructure/services/open-webui/env/openwebui-postgres.env deleted file mode 100644 index 3c96482..0000000 --- a/infrastructure/services/open-webui/env/openwebui-postgres.env +++ /dev/null @@ -1,3 +0,0 @@ -POSTGRES_DB=openwebui -POSTGRES_USER=postgres -POSTGRES_PASSWORD=securepassword123 diff --git a/infrastructure/services/open-webui/env/openwebui-postgres.env.example b/infrastructure/services/open-webui/env/openwebui-postgres.env.example new file mode 100644 index 0000000..d9c1c3e --- /dev/null +++ b/infrastructure/services/open-webui/env/openwebui-postgres.env.example @@ -0,0 +1,3 @@ +POSTGRES_DB=openwebui +POSTGRES_USER=postgres +POSTGRES_PASSWORD=__GENERATE_OPENWEBUI_DB_PASSWORD__ diff --git a/infrastructure/services/open-webui/env/openwebui-qdrant.env b/infrastructure/services/open-webui/env/openwebui-qdrant.env deleted file mode 100644 index 0ccc59d..0000000 --- a/infrastructure/services/open-webui/env/openwebui-qdrant.env +++ /dev/null @@ -1,2 +0,0 @@ -QDRANT__SERVICE__API_KEY=qdrant_api_key -QDRANT__SERVICE__ENABLE_API_KEY_AUTHORIZATION=true \ No newline at end of file diff --git a/infrastructure/services/open-webui/env/openwebui-qdrant.env.example b/infrastructure/services/open-webui/env/openwebui-qdrant.env.example new file mode 100644 index 0000000..fd34610 --- /dev/null +++ b/infrastructure/services/open-webui/env/openwebui-qdrant.env.example @@ -0,0 +1,2 @@ +QDRANT__SERVICE__API_KEY=__GENERATE_QDRANT_API_KEY__ +QDRANT__SERVICE__ENABLE_API_KEY_AUTHORIZATION=true diff --git a/infrastructure/services/open-webui/env/openwebui-valkey.env b/infrastructure/services/open-webui/env/openwebui-valkey.env deleted file mode 100644 index 63ddc43..0000000 --- a/infrastructure/services/open-webui/env/openwebui-valkey.env +++ /dev/null @@ -1 +0,0 @@ -VALKEY_PASSWORD=valkey_password diff --git a/infrastructure/services/open-webui/env/openwebui-valkey.env.example b/infrastructure/services/open-webui/env/openwebui-valkey.env.example new file mode 100644 index 0000000..650b3bc --- /dev/null +++ b/infrastructure/services/open-webui/env/openwebui-valkey.env.example @@ -0,0 +1 @@ +VALKEY_PASSWORD=__GENERATE_VALKEY_PASSWORD__ diff --git a/infrastructure/services/open-webui/env/openwebui.env b/infrastructure/services/open-webui/env/openwebui.env.example similarity index 65% rename from infrastructure/services/open-webui/env/openwebui.env rename to infrastructure/services/open-webui/env/openwebui.env.example index 857c1ff..e053785 100644 --- a/infrastructure/services/open-webui/env/openwebui.env +++ b/infrastructure/services/open-webui/env/openwebui.env.example @@ -1,10 +1,10 @@ OLLAMA_BASE_URL=http://ollama:11434 OPENAI_API_BASE_URL=http://litellm:4000/v1 -OPENAI_API_KEY=a51d5a17f7b8f96128866c6bfc903ec0 +OPENAI_API_KEY=__GENERATE_LITELLM_MASTER_KEY__ # openssl rand -hex 32 -WEBUI_SECRET_KEY=7d83b15a417d090ba5c6b899270a05dd215c60848354c0c7574226d6ff02f39e +WEBUI_SECRET_KEY=__GENERATE_OPENWEBUI_SECRET_KEY__ #HF_HUB_OFFLINE=1 # Disable analytics @@ -16,7 +16,7 @@ ANONYMIZED_TELEMETRY=false #OPENAI_API_KEY= # Database configuration -DATABASE_URL=postgresql://postgres:securepassword123@openwebui-postgres:5432/openwebui +DATABASE_URL=postgresql://postgres:__GENERATE_OPENWEBUI_DB_PASSWORD__@openwebui-postgres:5432/openwebui DATABASE_POOL_SIZE=20 DATABASE_POOL_MAX_OVERFLOW=10 DATABASE_POOL_TIMEOUT=30 @@ -24,12 +24,12 @@ DATABASE_POOL_RECYCLE=1800 VECTOR_DB=${VECTOR_DB:-qdrant} QDRANT_URI=http://qdrant:6333 -QDRANT_API_KEY=qdrant_api_key +QDRANT_API_KEY=__GENERATE_QDRANT_API_KEY__ -REDIS_URL=redis://:valkey_password@valkey:6379/0 +REDIS_URL=redis://:__GENERATE_VALKEY_PASSWORD__@valkey:6379/0 ENABLE_WEBSOCKET_SUPPORT=true WEBSOCKET_MANAGER=redis -WEBSOCKET_REDIS_URL=redis://:valkey_password@valkey:6379/1?socket_timeout=86400 +WEBSOCKET_REDIS_URL=redis://:__GENERATE_VALKEY_PASSWORD__@valkey:6379/1?socket_timeout=86400 # Fix issues with redis lib 8.0.0 and openwebUI 0.10.1 WEBSOCKET_REDIS_OPTIONS={"socket_timeout":null} diff --git a/infrastructure/services/openssh/env/openssh.env b/infrastructure/services/openssh/env/openssh.env.example similarity index 86% rename from infrastructure/services/openssh/env/openssh.env rename to infrastructure/services/openssh/env/openssh.env.example index 1a32161..6edc63e 100644 --- a/infrastructure/services/openssh/env/openssh.env +++ b/infrastructure/services/openssh/env/openssh.env.example @@ -4,11 +4,11 @@ DOCKER_MODS=linuxserver/mods:openssh-server-rsync #PUBLIC_KEY_URL=https://github.com/bensuperpc.keys PUBLIC_KEY_DIR=/authorized_ssh_keys USER_NAME=admin -USER_PASSWORD=it47mnLJIhNFspkYQo70zJsAYX7n0DSX +USER_PASSWORD=__GENERATE_OPENSSH_USER_PASSWORD__ #PUBLIC_KEY=yourpublickey #PUBLIC_KEY_FILE=/path/to/file #PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys #PUBLIC_KEY_URL=https://github.com/username.keys #USER_PASSWORD_FILE=/path/to/file -#LOG_STDOUT= \ No newline at end of file +#LOG_STDOUT= diff --git a/infrastructure/services/picoshare/env/picoshare.env b/infrastructure/services/picoshare/env/picoshare.env deleted file mode 100644 index b739293..0000000 --- a/infrastructure/services/picoshare/env/picoshare.env +++ /dev/null @@ -1,3 +0,0 @@ -PS_SHARED_SECRET=CBuS4DJLqIe93xF1KGYRrnhxUFBqLD2n -PORT=4001 -PS_BEHIND_PROXY=true diff --git a/infrastructure/services/picoshare/env/picoshare.env.example b/infrastructure/services/picoshare/env/picoshare.env.example new file mode 100644 index 0000000..db9dcfa --- /dev/null +++ b/infrastructure/services/picoshare/env/picoshare.env.example @@ -0,0 +1,3 @@ +PS_SHARED_SECRET=__GENERATE_PICOSHARE_SHARED_SECRET__ +PORT=4001 +PS_BEHIND_PROXY=true diff --git a/infrastructure/services/projectsend/env/projectsend.env b/infrastructure/services/projectsend/env/projectsend.env.example similarity index 100% rename from infrastructure/services/projectsend/env/projectsend.env rename to infrastructure/services/projectsend/env/projectsend.env.example diff --git a/infrastructure/services/projectsend/env/projectsend_db.env b/infrastructure/services/projectsend/env/projectsend_db.env deleted file mode 100644 index 77f1999..0000000 --- a/infrastructure/services/projectsend/env/projectsend_db.env +++ /dev/null @@ -1,4 +0,0 @@ -MARIADB_ROOT_PASSWORD=8O34297GrBfT3Ld34Lfg9mpotmZwbJtt -MARIADB_USER=bensuperpc -MARIADB_PASSWORD=wdSUa1JEZhXie5AJ5NcX1w73xmpO12EY -MARIADB_DATABASE=projectsend diff --git a/infrastructure/services/projectsend/env/projectsend_db.env.example b/infrastructure/services/projectsend/env/projectsend_db.env.example new file mode 100644 index 0000000..cf68369 --- /dev/null +++ b/infrastructure/services/projectsend/env/projectsend_db.env.example @@ -0,0 +1,4 @@ +MARIADB_ROOT_PASSWORD=__GENERATE_PROJECTSEND_DB_ROOT_PASSWORD__ +MARIADB_USER=bensuperpc +MARIADB_PASSWORD=__GENERATE_PROJECTSEND_DB_PASSWORD__ +MARIADB_DATABASE=projectsend diff --git a/infrastructure/services/psitransfer/env/psitransfer.env b/infrastructure/services/psitransfer/env/psitransfer.env deleted file mode 100644 index 4032ffe..0000000 --- a/infrastructure/services/psitransfer/env/psitransfer.env +++ /dev/null @@ -1,2 +0,0 @@ -PSITRANSFER_ADMIN_PASS=n9jLVNT9QUotTJTT91JqH4GyBTg9pvEn -#PSITRANSFER_PORT=3000 diff --git a/infrastructure/services/psitransfer/env/psitransfer.env.example b/infrastructure/services/psitransfer/env/psitransfer.env.example new file mode 100644 index 0000000..e336c46 --- /dev/null +++ b/infrastructure/services/psitransfer/env/psitransfer.env.example @@ -0,0 +1,2 @@ +PSITRANSFER_ADMIN_PASS=__GENERATE_PSITRANSFER_ADMIN_PASS__ +#PSITRANSFER_PORT=3000 diff --git a/infrastructure/services/qbittorrent/env/qbittorrent.env b/infrastructure/services/qbittorrent/env/qbittorrent.env.example similarity index 56% rename from infrastructure/services/qbittorrent/env/qbittorrent.env rename to infrastructure/services/qbittorrent/env/qbittorrent.env.example index a9d1fe8..8a1cbaf 100644 --- a/infrastructure/services/qbittorrent/env/qbittorrent.env +++ b/infrastructure/services/qbittorrent/env/qbittorrent.env.example @@ -1,4 +1,4 @@ WEBUI_PORT=8080 TORRENTING_PORT=6881 # Use alternative WebUI: /vuetorrent -DOCKER_MODS=ghcr.io/vuetorrent/vuetorrent-lsio-mod:latest \ No newline at end of file +DOCKER_MODS=ghcr.io/vuetorrent/vuetorrent-lsio-mod:latest diff --git a/infrastructure/services/satisfactory-server/backup/env/satisfactory_backup.env b/infrastructure/services/satisfactory-server/backup/env/satisfactory_backup.env.example similarity index 89% rename from infrastructure/services/satisfactory-server/backup/env/satisfactory_backup.env rename to infrastructure/services/satisfactory-server/backup/env/satisfactory_backup.env.example index e94f3b6..563364b 100644 --- a/infrastructure/services/satisfactory-server/backup/env/satisfactory_backup.env +++ b/infrastructure/services/satisfactory-server/backup/env/satisfactory_backup.env.example @@ -1,7 +1,7 @@ #RUN_ON_STARTUP=true RESTIC_REPOSITORY=/mnt/restic RESTIC_BACKUP_SOURCES=/data -RESTIC_PASSWORD=SCY5cmu12Odca302EXabPA9jXYkCb2NN +RESTIC_PASSWORD=__GENERATE_SATISFACTORY_RESTIC_PASSWORD__ # Backup (exuclusive with Check and Prune) BACKUP_CRON=*/15 * * * * RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose diff --git a/infrastructure/services/satisfactory-server/satisfactory/env/satisfactory.env b/infrastructure/services/satisfactory-server/satisfactory/env/satisfactory.env.example similarity index 93% rename from infrastructure/services/satisfactory-server/satisfactory/env/satisfactory.env rename to infrastructure/services/satisfactory-server/satisfactory/env/satisfactory.env.example index 56a8f86..732d749 100644 --- a/infrastructure/services/satisfactory-server/satisfactory/env/satisfactory.env +++ b/infrastructure/services/satisfactory-server/satisfactory/env/satisfactory.env.example @@ -14,4 +14,4 @@ TIMEOUT=60 AUTOSAVEONDISCONNECT=true CRASHREPORT=true -NETWORKQUALITY=3 \ No newline at end of file +NETWORKQUALITY=3 diff --git a/infrastructure/services/searxng/config/searxng.env b/infrastructure/services/searxng/config/searxng.env.example similarity index 100% rename from infrastructure/services/searxng/config/searxng.env rename to infrastructure/services/searxng/config/searxng.env.example diff --git a/infrastructure/services/stirlingpdf/env/stirlingpdf.env b/infrastructure/services/stirlingpdf/env/stirlingpdf.env.example similarity index 76% rename from infrastructure/services/stirlingpdf/env/stirlingpdf.env rename to infrastructure/services/stirlingpdf/env/stirlingpdf.env.example index 3af7bd9..2872b6e 100644 --- a/infrastructure/services/stirlingpdf/env/stirlingpdf.env +++ b/infrastructure/services/stirlingpdf/env/stirlingpdf.env.example @@ -6,4 +6,4 @@ LANGS=en_GB # Can be disabled after initial login, optional, # default it admin:stirling #SECURITY_INITIALLOGIN_USERNAME=admin -#SECURITY_INITIALLOGIN_PASSWORD=Jw9U039f5xc2mFcacvGvPD9RjwIh4DzO +#SECURITY_INITIALLOGIN_PASSWORD=__GENERATE_STIRLINGPDF_LOGIN_PASSWORD__ diff --git a/infrastructure/services/syncthing/env/syncthing.env b/infrastructure/services/syncthing/env/syncthing.env deleted file mode 100644 index e69de29..0000000 diff --git a/infrastructure/services/syncthing/env/syncthing.env.example b/infrastructure/services/syncthing/env/syncthing.env.example new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/infrastructure/services/syncthing/env/syncthing.env.example @@ -0,0 +1 @@ + diff --git a/infrastructure/services/7daystodie-server/7daystodie/env/7daystodie_backup.env b/infrastructure/services/teamfortress2-server/backup/env/teamfortress2_backup.env.example similarity index 85% rename from infrastructure/services/7daystodie-server/7daystodie/env/7daystodie_backup.env rename to infrastructure/services/teamfortress2-server/backup/env/teamfortress2_backup.env.example index 4df6131..07c897e 100644 --- a/infrastructure/services/7daystodie-server/7daystodie/env/7daystodie_backup.env +++ b/infrastructure/services/teamfortress2-server/backup/env/teamfortress2_backup.env.example @@ -1,7 +1,7 @@ #RUN_ON_STARTUP=true RESTIC_REPOSITORY=/mnt/restic RESTIC_BACKUP_SOURCES=/data -RESTIC_PASSWORD=SCY5cmu12Odca302EXabPA9jXYkCb2NN +RESTIC_PASSWORD=__GENERATE_TEAMFORTRESS2_RESTIC_PASSWORD__ # Backup (exuclusive with Check and Prune) BACKUP_CRON=*/15 * * * * RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose @@ -11,4 +11,4 @@ RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose #RESTIC_CHECK_ARGS=--read-data-subset=40% # Prune (exuclusive with Check and Prune) #PRUNE_CRON=*/15 * * * * -#RESTIC_PRUNE_ARGS= \ No newline at end of file +#RESTIC_PRUNE_ARGS= diff --git a/infrastructure/services/teamfortress2-server/teamfortress2/env/teamfortress2.env b/infrastructure/services/teamfortress2-server/teamfortress2/env/teamfortress2.env deleted file mode 100644 index 57b0884..0000000 --- a/infrastructure/services/teamfortress2-server/teamfortress2/env/teamfortress2.env +++ /dev/null @@ -1,10 +0,0 @@ -SRCDS_TOKEN=D3667770288B9CC33B0E526D441FA241 -SRCDS_PW=linuxmasterrace -SRCDS_PORT=27015 -SRCDS_MAXPLAYERS=32 -SRCDS_REGION=3 -SRCDS_STARTMAP=pl_goldrush -#SRCDS_MAPCYCLE="mapcycle_default.txt" -#pl_badwater -SRCDS_CFG=server.cfg -SRCDS_SECURED=0 diff --git a/infrastructure/services/teamfortress2-server/teamfortress2/env/teamfortress2.env.example b/infrastructure/services/teamfortress2-server/teamfortress2/env/teamfortress2.env.example new file mode 100644 index 0000000..40bafb1 --- /dev/null +++ b/infrastructure/services/teamfortress2-server/teamfortress2/env/teamfortress2.env.example @@ -0,0 +1,12 @@ +# Get a free Game Server Login Token from https://steamcommunity.com/dev/managegameservers +# This is NOT a value make init can generate for you, you must fill it in yourself. +SRCDS_TOKEN=CHANGEME_STEAM_GSLT_TOKEN +SRCDS_PW=__GENERATE_TEAMFORTRESS2_SERVER_PW__ +SRCDS_PORT=27015 +SRCDS_MAXPLAYERS=32 +SRCDS_REGION=3 +SRCDS_STARTMAP=pl_goldrush +#SRCDS_MAPCYCLE="mapcycle_default.txt" +#pl_badwater +SRCDS_CFG=server.cfg +SRCDS_SECURED=0 diff --git a/infrastructure/services/transmission/env/transmission.env b/infrastructure/services/transmission/env/transmission.env deleted file mode 100644 index 547866d..0000000 --- a/infrastructure/services/transmission/env/transmission.env +++ /dev/null @@ -1,3 +0,0 @@ -TZ=Etc/UTC -USER=admin -PASS=4vqXCNGG09JUBe7rXkuQS8MG7ovE6Vxj \ No newline at end of file diff --git a/infrastructure/services/transmission/env/transmission.env.example b/infrastructure/services/transmission/env/transmission.env.example new file mode 100644 index 0000000..eb26cce --- /dev/null +++ b/infrastructure/services/transmission/env/transmission.env.example @@ -0,0 +1,3 @@ +TZ=Etc/UTC +USER=admin +PASS=__GENERATE_TRANSMISSION_PASSWORD__ diff --git a/infrastructure/services/wordpress/env/wordpress.env b/infrastructure/services/wordpress/env/wordpress.env deleted file mode 100644 index 4c0d95a..0000000 --- a/infrastructure/services/wordpress/env/wordpress.env +++ /dev/null @@ -1,4 +0,0 @@ -WORDPRESS_DB_USER=bensuperpc -WORDPRESS_DB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw -WORDPRESS_DB_NAME=wordpress -WORDPRESS_DB_HOST=wordpress_db:3306 \ No newline at end of file diff --git a/infrastructure/services/wordpress/env/wordpress.env.example b/infrastructure/services/wordpress/env/wordpress.env.example new file mode 100644 index 0000000..ab13fda --- /dev/null +++ b/infrastructure/services/wordpress/env/wordpress.env.example @@ -0,0 +1,4 @@ +WORDPRESS_DB_USER=bensuperpc +WORDPRESS_DB_PASSWORD=__GENERATE_WORDPRESS_DB_PASSWORD__ +WORDPRESS_DB_NAME=wordpress +WORDPRESS_DB_HOST=wordpress_db:3306 diff --git a/infrastructure/services/wordpress/env/wordpress_backup.env b/infrastructure/services/wordpress/env/wordpress_backup.env.example similarity index 86% rename from infrastructure/services/wordpress/env/wordpress_backup.env rename to infrastructure/services/wordpress/env/wordpress_backup.env.example index 1a4cabb..38194e6 100644 --- a/infrastructure/services/wordpress/env/wordpress_backup.env +++ b/infrastructure/services/wordpress/env/wordpress_backup.env.example @@ -1,7 +1,7 @@ #RUN_ON_STARTUP=true RESTIC_REPOSITORY=/mnt/restic RESTIC_BACKUP_SOURCES=/data -RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ +RESTIC_PASSWORD=__GENERATE_WORDPRESS_RESTIC_PASSWORD__ # Backup (exuclusive with Check and Prune) BACKUP_CRON=*/30 * * * * RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose @@ -11,4 +11,4 @@ RESTIC_FORGET_ARGS=--prune --keep-last 8 --keep-daily 7 --keep-weekly 5 --keep-m #RESTIC_CHECK_ARGS=--read-data-subset=40% # Prune (exuclusive with Check and Prune) #PRUNE_CRON=*/30 * * * * -#RESTIC_PRUNE_ARGS= \ No newline at end of file +#RESTIC_PRUNE_ARGS= diff --git a/infrastructure/services/wordpress/env/wordpress_db.env b/infrastructure/services/wordpress/env/wordpress_db.env deleted file mode 100644 index ddadb91..0000000 --- a/infrastructure/services/wordpress/env/wordpress_db.env +++ /dev/null @@ -1,4 +0,0 @@ -MARIADB_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ -MARIADB_USER=bensuperpc -MARIADB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw -MARIADB_DATABASE=wordpress diff --git a/infrastructure/services/wordpress/env/wordpress_db.env.example b/infrastructure/services/wordpress/env/wordpress_db.env.example new file mode 100644 index 0000000..55a1bf0 --- /dev/null +++ b/infrastructure/services/wordpress/env/wordpress_db.env.example @@ -0,0 +1,4 @@ +MARIADB_ROOT_PASSWORD=__GENERATE_WORDPRESS_DB_ROOT_PASSWORD__ +MARIADB_USER=bensuperpc +MARIADB_PASSWORD=__GENERATE_WORDPRESS_DB_PASSWORD__ +MARIADB_DATABASE=wordpress diff --git a/tools/init_secrets.sh b/tools/init_secrets.sh new file mode 100755 index 0000000..f743094 --- /dev/null +++ b/tools/init_secrets.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +SERVICES_DIR="${ROOT_DIR}/infrastructure/services" + +random_value() { + openssl rand -hex 16 +} + +mapfile -d '' -t examples < <(find "${SERVICES_DIR}" -type f -name '*.env.example' -print0 | sort -z) + +created=0 +skipped=0 + +for example in "${examples[@]}"; do + target="${example%.example}" + if [[ -f "${target}" ]]; then + skipped=$((skipped + 1)) + continue + fi + cp "${example}" "${target}" + created=$((created + 1)) +done + +mapfile -d '' -t targets < <(find "${SERVICES_DIR}" -type f -name '*.env' -print0) + +declare -A generated +tokens="$(grep -hoE '__GENERATE_[A-Z0-9_]+__' "${targets[@]}" 2>/dev/null | sort -u || true)" + +for token in ${tokens}; do + if [[ -z "${generated[${token}]:-}" ]]; then + generated[${token}]="$(random_value)" + fi + value="${generated[${token}]}" + for f in "${targets[@]}"; do + if grep -qF -- "${token}" "${f}" 2>/dev/null; then + sed -i "s#${token}#${value}#g" "${f}" + fi + done +done + +echo "Created ${created} env file(s), left ${skipped} existing one(s) untouched." + +remaining="$(grep -rlF 'CHANGEME_' "${targets[@]}" 2>/dev/null || true)" +if [[ -n "${remaining}" ]]; then + echo + echo "These files still need a value you must fill in by hand:" + echo "${remaining}" +fi