298 Commits
Author SHA1 Message Date
mazex 219ee9772f test readme 2026-04-07 22:22:30 +02:00
marc 45d183ccdd Fix formatting in README.md services section 2026-04-07 20:21:08 +00:00
marc c96a6c235a Fix Markdown table formatting in README.md 2026-04-07 20:20:12 +00:00
marc 5f8aa0c835 Revise README with updated service details and examples
Updated README to reflect new service descriptions and deployment instructions.
2026-04-07 20:19:07 +00:00
marc 1634c58e72 clean nextcloud 2025-07-30 10:54:12 +02:00
marc 9ac26c1afc clean compose 2025-07-30 10:50:52 +02:00
marc 72227426d2 nextcloud tz 2025-07-30 10:50:44 +02:00
marc b5a0859c64 playlistdl 2025-06-16 19:21:34 +02:00
marc d767decdff fix gotify 2025-05-28 14:15:31 +02:00
marc 2dc450ddc5 fix jellyfin 2025-05-28 14:15:23 +02:00
marc 7dcf35740e fix time assistant 2025-05-28 14:15:17 +02:00
marc 4ce107ed05 fix reactive resume support with minio 2025-05-28 14:15:02 +02:00
marc 2d37c956fa stash 2025-05-07 02:54:03 +02:00
marc 77658d4f2d linkding 2025-05-01 14:06:03 +02:00
marc d7678623db qbittorrent data path 2025-04-27 03:58:46 +02:00
marc cf8d2fabba portainer srv 2025-04-27 03:58:32 +02:00
marc 65de266b3a grafana fix data path 2025-04-15 17:11:19 +02:00
marc 44d2b83e54 data vaultwarden 2025-04-15 17:10:31 +02:00
marc 2cd6c8190d 30m dockge 2025-04-15 16:58:07 +02:00
marc 9598355869 postgres container name 2025-04-15 16:56:11 +02:00
marc c1e044c58e no vpn netowrk 2025-04-15 16:56:02 +02:00
marc 4cb132adc8 fix stacks path 2025-04-15 16:55:56 +02:00
marc 29d872dcb4 tried to change data volumes 2025-04-15 16:49:59 +02:00
marc 9532330db5 removed version 2025-04-15 16:49:38 +02:00
marc 2e9f3cfa2d fix traefik data path 2025-04-15 16:49:30 +02:00
marc f6015ced77 fix postgres data path 2025-04-15 16:49:18 +02:00
marc 1fd59cb419 removed dockge wrong data 2025-04-15 16:49:06 +02:00
marc 914358ceaf dockge compatible 2025-04-14 18:44:02 +02:00
marc 55196b55a1 bisq 2025-04-12 23:29:31 +02:00
marc f6a2199479 wud 2025-04-12 23:29:25 +02:00
marc a513c6aecd prometheus labels no deploy 2025-04-11 03:42:23 +02:00
marc 7457727edf mosquitto 2025-04-11 03:42:08 +02:00
marc 3aef931508 bisq 2025-04-11 03:41:38 +02:00
marc daf6d51d94 no oidc 2025-04-11 03:30:47 +02:00
marc deba72a3a0 new services 2025-04-11 03:30:17 +02:00
marc 570d7d89e0 new services 2025-04-11 03:30:12 +02:00
marc 1ec080a8b0 minio 2025-04-11 03:29:51 +02:00
marc 6874357bb1 dbdesigner.yml 2025-04-11 03:29:35 +02:00
marc 44164b95ba wud 2025-04-11 03:29:07 +02:00
marc 6b5040a9f4 syncthing oidc 2025-04-11 03:28:27 +02:00
marc 1430ab42ec dockge 2025-04-11 03:28:13 +02:00
marc 999b97e67c uptime 2025-04-11 03:07:43 +02:00
marc 144797f9fa calibre 2025-04-11 02:29:29 +02:00
marc ad96d70d5d wud 2025-04-11 02:17:30 +02:00
marc 7135a682de dynamic folder 2025-04-11 02:16:36 +02:00
marc 7354eb918a web terminal 2025-04-11 02:16:08 +02:00
marc dc26623946 updated cadvisor 2025-04-08 17:35:35 +02:00
marc e983315b33 prometheus 2025-04-08 17:35:19 +02:00
marc e6ebf87171 code-server.yml 2025-04-08 17:35:08 +02:00
marc 8e5d7c690e diun.yml 2025-04-08 16:21:04 +02:00
marc 95e2ee7744 linkwarden 2025-04-08 16:03:23 +02:00
marc 374b3d5b1e stash 2025-04-08 16:02:19 +02:00
marc 154e91935e wallabag 2025-04-08 16:02:07 +02:00
marc 0ab286d6ab diun 2025-04-08 00:13:14 +02:00
marc 5c19b72064 paperless time assistant 2025-04-07 23:53:57 +02:00
marc ba7bf8c2fc dynamic 2025-04-07 23:53:45 +02:00
marc 5584a2e681 whoami 2025-04-07 23:52:40 +02:00
marc 92da7473ec ignore config folders 2025-04-07 23:51:55 +02:00
marc 59ff44469d resume 2025-04-07 23:50:48 +02:00
marc 405f7449ad stash 2025-04-07 23:49:28 +02:00
marc 90abcd60a5 linkwarden 2025-04-07 17:50:00 +02:00
marc 16eb61c8f1 stash 2025-04-07 16:31:40 +02:00
marc 5adddba9c4 gotify 2025-04-07 14:50:29 +02:00
marc 1c92500e44 fix qbittorrent 2025-04-07 14:50:15 +02:00
marc df8b933312 fix 2025-04-07 14:50:08 +02:00
marc 408e1d9cdd ntfy 2025-04-07 10:48:55 +02:00
marc 7accb7d352 minio healthcheck 2025-04-07 10:40:38 +02:00
marc 2443adfe25 health 2025-04-07 10:40:20 +02:00
marc 7bfdf43541 health 2025-04-07 10:40:16 +02:00
marc d9606f0bbc health 2025-04-07 10:40:08 +02:00
marc 4ed87e2177 ghost 2025-04-07 10:40:05 +02:00
marc b76c35e418 kutt healthcheck 2025-04-07 10:39:34 +02:00
marc e46da67025 zitadel 2025-04-06 01:41:14 +02:00
marc 3906696172 mosquitto restart unless stopped 2025-04-02 17:42:19 +02:00
marc b26ae3a8d9 fixed version 2025-03-27 19:37:58 +01:00
marc 852af01020 valentin 2025-03-26 12:47:43 +01:00
marc d9e22b991f cloudflare test plugins 2025-03-26 12:42:36 +01:00
marc aca84febb2 wohami 2 2025-03-26 12:42:21 +01:00
marc d5b826666c no deploy labels 2025-03-26 12:42:12 +01:00
marc 960b78874a data not config 2025-03-26 12:41:59 +01:00
marc b13a2feec6 thaiwara 2025-03-26 12:41:42 +01:00
marc dfb040ad3f mongo express dynamic sablier 2025-03-23 13:47:47 +01:00
marc 04ecd8c1f7 etherpad cloudflare 2025-03-23 13:46:59 +01:00
marc 6d955cd770 kutt 2025-03-23 13:45:25 +01:00
marc ced0cb6c32 cloudflare plugin 2025-03-23 13:15:35 +01:00
marc 53bd89e000 no ldap sync 2025-03-23 13:15:15 +01:00
marc 9937b3a745 web terminal 2025-03-23 13:15:04 +01:00
marc 98bc5f73d5 env 2025-03-23 00:25:20 +01:00
marc 7cf85dacaf sablier outline 2025-03-22 21:08:55 +01:00
marc 5fae8ab13a sablier outline 2025-03-22 21:08:47 +01:00
marc f588700899 template env vars! 2025-03-21 21:08:11 +01:00
marc 692fc910e9 new gitignore 2025-03-21 21:07:59 +01:00
marc 6251a6bbb6 no config folder 2025-03-21 21:07:49 +01:00
marc 5494d77c75 a new plugin joins the team 2025-03-20 18:34:01 +01:00
marc 634bc8a1c8 more time for jellyfi 2025-03-20 18:33:31 +01:00
marc 3966278ac6 thought i needed to rewriteheaders for nextcloud but works without 2025-03-20 18:33:14 +01:00
marc 171c052646 bzz 2025-03-19 03:42:30 +01:00
marc f6d6cf9cd7 mqtt comes to town 2025-03-19 03:42:22 +01:00
marc 9d91df8865 grafana lives again 2025-03-19 03:42:09 +01:00
marc 2cb905ea59 etherpad changed refresh 2025-03-19 03:41:55 +01:00
marc 2a9498d3ab mqtt support 2025-03-19 03:41:09 +01:00
marc 516e0fa113 wstunnel that works 2025-03-19 03:40:57 +01:00
marc d42fc69330 etherpad prod ready 2025-03-19 03:40:49 +01:00
marc c170b14747 time assistant that works 2025-03-04 15:53:48 +01:00
marc 407d0bcf20 add container names to n8n so i can see in portarisu 2025-03-04 15:53:00 +01:00
marc b2516c2b5a fix qbitorrent 2025-03-04 01:07:37 +01:00
marc 4143e13b12 discord in 7010 2025-03-04 01:07:27 +01:00
marc ce661e8c0c appflowy no ldap 2025-03-04 01:07:01 +01:00
marc fc4c480801 update adguard 2025-03-04 01:06:17 +01:00
marc ae4f35201f n8n that works 2025-03-04 01:05:51 +01:00
marc 547509cf37 home assistant that works 2025-03-04 01:05:28 +01:00
marc b3b4f3b2ad djankiserv doesnt work bc auth not impleemnted 2025-03-04 01:04:44 +01:00
marc 6f82cb2e87 apprise fix 2025-03-04 01:04:16 +01:00
marc 97743dd949 resume ytdlp 2025-03-02 21:52:38 +01:00
marc e1858a302c n8n 2025-02-22 05:56:44 +01:00
marc 5ffc6c1671 nocodb 2025-02-22 05:52:52 +01:00
marc f456433eea nextcloud healthcheck 2025-02-22 05:52:46 +01:00
marc 47d0024191 bookstack 2025-02-22 04:18:25 +01:00
marc a01f430d2e outline restart unless stopped 2025-02-22 04:18:19 +01:00
marc 621619a16b mcvnc 2025-02-22 03:58:28 +01:00
marc 004d89c039 docuwiki 2025-02-22 03:57:05 +01:00
marc 39883c25a4 mongo 2025-02-22 03:56:28 +01:00
marc 9dfeca0e34 outline 2025-02-22 03:55:33 +01:00
marc fe6f7df8ab nocodb 2025-02-22 03:22:23 +01:00
marc 1ca1f40c3d website removed old commented redis conf 2025-02-17 15:44:40 +01:00
marc 603b6c010f mc_champi 2025-02-14 20:04:59 +01:00
marc 3f27d9f701 n8n that works 2025-02-14 19:55:13 +01:00
marc c0789e7a38 updated no longer existing icon 2025-02-14 19:28:06 +01:00
marc ef85181077 no ffsync yet 2025-02-14 19:20:21 +01:00
marc f823d4f996 syncserver that doesnt work yet cuz no postgres support yet 2025-02-14 19:20:06 +01:00
marc e8f930f579 syncthing health 2025-02-14 19:03:38 +01:00
marc d1d942cd08 ffsync 2025-02-14 18:29:14 +01:00
marc be68fad7c8 ffsync 2025-02-14 18:29:07 +01:00
marc 59467b852d healthcheck syncthing 2025-02-14 18:04:42 +01:00
marc cdeb2b60ad real-esrgan 2025-02-14 04:17:30 +01:00
marc 3d1541683e open-webui 2025-02-14 04:17:07 +01:00
marc 86f095d728 resume 2025-02-14 04:16:38 +01:00
marc d0bc34f1e8 matrix 2025-02-14 04:16:06 +01:00
marc ce97a20f6a apprise 2025-02-14 04:15:41 +01:00
marc a6207eff66 sablier 2025-02-14 04:14:50 +01:00
marc 47eaea6048 backrest 2025-02-14 04:13:20 +01:00
marc 465f4dc20c celery beat healthcheck 2025-02-09 16:16:40 +01:00
marc 2b4a5eb039 traefik with docker 2025-02-09 15:48:56 +01:00
marc 7face30f0b sablier docker 2025-02-09 15:48:40 +01:00
marc d72912481e nextcloud healthcheck 2025-02-09 15:48:23 +01:00
marc 0d42eb1e33 resume sablier 2025-02-09 15:48:08 +01:00
marc cf2fc1156c sablier 2025-02-09 15:47:45 +01:00
marc 3709c4b8de docker not podman this time 2025-02-09 15:47:30 +01:00
marc 2e34a68d89 ebook2audiobookxtts.yml consumes a lot 2025-02-09 15:47:02 +01:00
marc 31d60f6f3b web terminal 2025-02-09 15:46:49 +01:00
marc 8eead75ef9 audiobookshelf.yml that works 2025-02-09 15:46:17 +01:00
marc 9b2dbfa6e0 cloudflare healthcheck 2025-02-09 15:46:08 +01:00
marc b10768fcb5 minio healthcheck 2025-02-09 15:45:59 +01:00
marc b53a6a9a4d healthcheck nextcloud 2025-01-10 16:14:08 +01:00
marc 15c2e6c62b fixed everything 2025-01-06 09:03:55 +00:00
marc 768bced602 alpine second commit 2025-01-06 08:56:48 +00:00
marc 4394df2555 alpine first commit 2025-01-06 08:56:25 +00:00
marc 03089ea092 web terminal ldap protection 2024-12-26 16:52:24 +01:00
marc 88852be213 new port 2024-12-26 00:22:04 +01:00
marc 1013c6a62b fix jellyfin for cloudflare tunnel 2024-12-26 00:21:35 +01:00
marc 10f8b4bbd7 website port 80 2024-11-25 07:55:30 +01:00
marc bbe8e2fd3d alpine virt desktop 2024-10-17 14:26:14 +02:00
marc c692f9b548 wger fix 2024-10-17 14:26:01 +02:00
marc 96e3683cda thai wara 2024-10-17 14:25:53 +02:00
marc 018377f66f resume is not dynamic 2024-10-07 00:11:42 +02:00
marc d70e0a93bf fix nextcloud 2024-10-07 00:11:11 +02:00
marc cc21806b3c udemy 2024-10-07 00:10:52 +02:00
marc f60f92ae9b postgres netowrk 2024-09-16 16:53:22 +02:00
marc 140c355e9d latest for github action 2024-09-14 19:21:25 +02:00
marc 607abc3f41 izitdone stripprefix middlware that works 2024-09-13 07:24:01 +02:00
marc 7a25b78fd9 discord image that works with uv 2024-09-09 02:01:48 +02:00
marc 8fdf857e6b update discord bot for uv 2024-09-09 01:01:08 +02:00
marc 48e0230263 makefile 2024-09-09 00:59:34 +02:00
marc 6c987f0c29 podman-compose too 2024-09-09 00:59:15 +02:00
marc 5b6a4ec2a3 no swarm 2024-09-09 00:58:47 +02:00
marc 535391775b izitdone 2024-09-09 00:58:05 +02:00
marc 3a50c0002d docker.io registry 2024-09-09 00:57:47 +02:00
marc 80f6c66dc0 matrix that works with lots of bridges 2024-06-13 17:15:27 +02:00
marc 6c8e984dcf autodownloader that works 2024-06-13 17:13:36 +02:00
marc 36cca0973e wstunnel fix 2024-06-05 02:48:40 +02:00
marc 9d674da903 website forbids wellknown pathprefix 2024-06-05 02:48:33 +02:00
marc 8734f5a299 matrix with all bridges 2024-06-05 02:48:10 +02:00
marc 818d78e1c6 matrix server with rust but doesnt support postgres even though it supports ldpa 2024-06-04 17:00:32 +02:00
marc ea1ab77107 traefik clean 2024-06-04 16:03:28 +02:00
marc f21e08684c dont push nextcloud config nor grafana 2024-06-04 15:22:03 +02:00
marc 2a2b778984 lms test 2024-06-04 14:16:59 +02:00
marc f555fbc60e nextcloud 2024-06-04 14:16:52 +02:00
marc 56286c7460 wg-easy 2024-06-04 06:53:34 +02:00
marc f866c4e473 wstunnel that works 2024-06-04 06:52:57 +02:00
marc 8445d6cb45 traefik back compatibable v3 2024-06-04 06:52:50 +02:00
marc 5ce592dd7b postgres.yml 2024-06-04 02:25:26 +02:00
marc d552c1d4c9 filebrowser 2024-06-04 01:56:23 +02:00
marc bbeed12ed6 dockge 2024-06-04 01:56:17 +02:00
marc 82188f7c01 ignore all data folders 2024-06-04 01:56:07 +02:00
marc 4eea2090b6 ignore 2024-06-04 01:53:50 +02:00
marc 5d8c6f90f0 webdav that doesnt work 2024-06-04 01:53:06 +02:00
marc 79e125e51f clearer 2024-06-04 01:51:52 +02:00
marc 8842d41d17 cleaner 2024-06-04 01:50:14 +02:00
marc 0d6835bf52 precision 2024-06-04 01:49:51 +02:00
marc 89b4ffbfaa readme visit my cloud 2024-06-04 01:47:52 +02:00
marc c6061d56e8 fix link mistake 2024-06-04 01:43:40 +02:00
marc df610f4bbd README.md update with heimdall and new links 2024-06-04 01:42:19 +02:00
marc d06f447c3c filebrowser 2024-06-04 01:11:21 +02:00
marc 5e9da76301 fix 2024-06-04 00:48:42 +02:00
marc c29422b723 applfooy data folder 2024-06-04 00:47:13 +02:00
marc ba589d9335 mistral that doesnt work and thats useless 2024-06-04 00:45:59 +02:00
marc 27bfba09d7 adguard conf update 2024-06-04 00:43:57 +02:00
marc 1d95c894ae adguard that works 2024-06-04 00:43:15 +02:00
marc 77c3db1c9b portainer update 2024-06-04 00:42:52 +02:00
marc 10b0b49188 heimdall update 2024-06-04 00:42:46 +02:00
marc d138a59ffa sablier conf 2024-06-04 00:42:29 +02:00
marc 3f82715281 dockge sablier 2024-06-04 00:42:19 +02:00
marc 1e84c3a252 webshot sablier 2024-06-04 00:42:13 +02:00
marc 8c596a3c88 pihole minor change 2024-06-03 01:39:04 +02:00
marc 1f92b3668b arch that works 2024-06-03 01:38:57 +02:00
marc 451d8e8c56 appflowy that doesnt work 2024-06-03 01:38:47 +02:00
marc 200e2ebbd4 pandoc fix network 2024-06-03 00:19:15 +02:00
marc 39b45c338c authentik that works 2024-06-03 00:14:43 +02:00
marc f8d7acf41a focalboard 2024-06-03 00:14:34 +02:00
marc d777185831 traefik conf 2024-06-03 00:14:26 +02:00
marc 0a9a612c86 traefik fix 2024-06-03 00:14:14 +02:00
marc cc694305ca ldap manager broken 2024-06-03 00:13:52 +02:00
marc 817325bda0 arch.yml sablier 2024-06-03 00:13:45 +02:00
marc dc22fb93ae ocis no ldap support 2024-06-03 00:13:38 +02:00
marc fd99f73720 shelp that doesnt work 2024-06-03 00:13:31 +02:00
marc e23ce953aa plex that doesnt work 2024-06-03 00:13:23 +02:00
marc 418ac9cb58 qbittorrent.yml that works 2024-06-03 00:13:10 +02:00
marc 3603af2e6b sablier too 2024-06-03 00:12:54 +02:00
marc 0b56ff74b0 heimdall update 2024-06-03 00:12:33 +02:00
marc e1e31df740 sablier 2024-06-03 00:12:16 +02:00
marc 118ff72432 swarm visualizer 2024-06-03 00:11:13 +02:00
marc ab3cd77337 renamed to visualizer 2024-06-02 20:32:52 +02:00
marc 7ad0563f63 allow dynamic config 2024-06-02 20:32:23 +02:00
marc 67a793771f sablier services 2024-06-02 20:29:24 +02:00
marc 27349f9ee9 not localhost 2024-06-02 17:58:47 +02:00
marc 65f2e0f6ad syncthing ldap 2024-06-02 17:55:16 +02:00
marc 0e8a568c30 web-terminal ldap protected 2024-06-02 17:55:08 +02:00
marc 31865372f8 crontab ldap 2024-06-02 17:54:46 +02:00
marc 8c6c110e3a jellyfin that works without postgres 2024-06-02 17:54:29 +02:00
marc 6c26498aa2 dbdesigner that works 2024-06-02 17:54:18 +02:00
marc 4b9b63eb00 authentik that works 2024-06-02 17:54:10 +02:00
marc 222b8cb7ae sablier 2024-06-02 17:54:01 +02:00
marc df2d72a34e resume that works 2024-03-08 15:48:25 +01:00
marc e34826a2ff peer2profit 2024-02-17 17:47:42 +01:00
marc d76a5f87b6 rancher that works 2024-02-17 17:41:05 +01:00
marc 7722668c7e mermaid 2024-02-17 17:33:45 +01:00
marc 8a85df83ac grafana ignore 2024-02-12 10:12:39 +01:00
marc 13297f7bb2 authelia cloudflare 2024-02-12 10:11:03 +01:00
marc 9c172ce972 minio 2024-02-12 10:10:56 +01:00
marc 9c4b78343d appflowy improvmeent 2024-02-12 10:10:39 +01:00
marc a192af5514 moodle 2024-02-05 13:09:13 +01:00
marc 5a2afddc82 no fdroid 2024-02-05 12:59:06 +01:00
marc 8a45f2973d tried to deploy fdroid 2024-02-05 12:58:23 +01:00
marc d9e052330d mongo cloudflare 2024-01-31 12:37:46 +01:00
marc 288d2fb836 no wger container name 2024-01-31 11:13:20 +01:00
marc fc793d7c4d no cloudflare tls resolver 2024-01-31 11:12:51 +01:00
marc 257398fb3f no wger2 2024-01-31 09:49:25 +01:00
marc 6db89ec924 nextcloud conf that loads env vars 2024-01-31 09:32:17 +01:00
marc cbdb0760c5 paperless 2024-01-31 09:27:44 +01:00
marc 501efbde23 suitecrm but no postgres 2024-01-31 09:14:22 +01:00
marc 83931cf42a wallabag cloudflare 2024-01-31 09:14:06 +01:00
marc 1bbc9f93a9 resume 1 container that ships front and back 2024-01-30 18:42:56 +01:00
marc e0a10d8a39 minio for reactive resume 2024-01-30 18:42:37 +01:00
marc e4ecce30be mailu that works but just need some port forwarding 2024-01-30 18:05:46 +01:00
marc 0a8c70ccc1 docuseal that works for now just needs smtp 2024-01-30 18:05:25 +01:00
marc ef2d13b0e2 trying to fix resume 2024-01-30 18:05:14 +01:00
marc 12ffe77f19 mail-client mail-sever 2024-01-20 01:13:22 +01:00
marc d685b50f17 no ldap 2024-01-20 01:12:57 +01:00
marc 42d62047cb peer2profit 2024-01-19 23:38:12 +01:00
marc 38a19b35ed wger nginx conf 2024-01-19 23:26:37 +01:00
marc 37171ecaa6 serge cloudflare 2024-01-18 17:37:23 +01:00
marc c4dbe8ef5a restart 2024-01-18 17:37:16 +01:00
marc e60178869a wger 2024-01-18 17:37:10 +01:00
marc 3686b4169f restart 2024-01-16 18:51:40 +01:00
marc cc39fd8094 rancher 2024-01-16 18:33:44 +01:00
marc 71076aaa9c restart 2024-01-16 17:55:58 +01:00
marc 263871a6b8 changed crontab name 2024-01-16 17:55:21 +01:00
marc ab3b80fd42 resume fix 2024-01-16 17:54:24 +01:00
marc a6045cf24e focalboard restart unless stopped 2024-01-16 17:51:21 +01:00
marc 8083b24b9c nextcloud 2024-01-14 19:48:48 +01:00
marc 773057ee11 jellyfin.marcpartensky.com 2024-01-13 16:13:13 +01:00
marc 7c495468e7 portainer cloudflare 2023-12-27 02:08:39 +01:00
marc 0a5c34cdb3 ffsync 2023-12-27 02:08:20 +01:00
marc c7a789f5f5 portainer cloudflare 2023-12-26 19:51:51 +01:00
marc 9cec81310b vaultwarden cloudflare 2023-12-26 19:51:42 +01:00
marc 7fcee1c500 traefik cloudflare 2023-12-26 19:51:35 +01:00
marc df96242c7e pgadmin cloudflare 2023-12-26 19:51:27 +01:00
marc 1e6a20e9e0 focalboard cloudflare 2023-12-26 19:51:18 +01:00
marc 5437824ad2 srv 2023-12-20 16:30:52 +01:00
marc 4b49454956 merge 2023-12-20 16:28:56 +01:00
marc 23d3acde55 http for cloudflrae 2023-12-07 16:06:33 +01:00
marc f4cf1f151d Merge branch 'master' into cloudflare 2023-12-07 15:59:46 +01:00
marc 3c12ab138c clouflare 2023-12-07 15:59:27 +01:00
marc 302126b5f4 web entrypoint instead of websecure 2023-09-19 18:59:00 +02:00
marc 6beb13e21d tried new mc location 2021-05-25 18:03:08 +02:00
marc 42611ca3b7 prebuilt open web calendar image 2021-05-22 17:08:24 +02:00
marc 627a6ee08b merging with master with no buld version 2021-05-21 15:28:53 +02:00
marc cf8f1ea43b no build 2021-05-05 20:07:53 +02:00
472 changed files with 9246 additions and 3785 deletions
+23 -1
View File
@@ -1,6 +1,8 @@
*.env
data/secrets/*.env
!data/secrets/*.template.env
docker-compose.yml
data/openvpn
data/secrets
data/certbot
data/searx
data/jenkins
@@ -25,7 +27,27 @@ data/yt-dlp
data/mongo
data/gpg
data/redis
data/fdroid
data/grafana
data/qbittorrent
data/webdav
data/pufferpanel
data/dockge
data/ocis
data/owncloud
data/wg-easy
data/nextcloud
data/casdoor
data/stash
data/code-server
data/gotify
data/apprise
data/calibre
data/codeserver
data/consul
data/zitadel
data.tar.gz
data.7z
data.7z.gpg
services/template.yml
data/traefik/dynamic/oidc.yml
+13 -9
View File
@@ -12,17 +12,21 @@ pull:
for file in services/*; do docker-compose -f $$file pull; done
export:
7z a -p data.7z data
import:
7z x -p data.7z
sign:
gpg --encrypt --sign --recipient 'marc@marcpartensky.com' data.7z
rm data.tgz
# rm data.tgz
networks:
docker network create --driver overlay --attachable caddy || true
docker network create --driver overlay --attachable ldap || true
docker network create --driver overlay --attachable postgres || true
docker network create --driver overlay --attachable mongo || true
docker network create --driver overlay --attachable vpn || true
docker network create --driver overlay --attachable redis || true
docker network create --driver overlay --subnet 172.22.1.0/24 --gateway 172.22.1.1 --attachable mailcow || true
docker network create --driver overlay --subnet 10.22.69.0/24 --gateway 10.22.69.1 --attachable pritunl || true
docker network create --attachable caddy || true
docker network create --attachable ldap || true
docker network create --attachable postgres || true
docker network create --attachable mongo || true
docker network create --attachable vpn || true
docker network create --attachable redis || true
docker network create --attachable mqtt || true
docker network create --subnet 172.22.1.0/24 --gateway 172.22.1.1 --attachable mailcow || true
docker network create --subnet 10.22.69.0/24 --gateway 10.22.69.1 --attachable pritunl || true
node:
docker node update --label-add net=web contabo
docker node update --label-add net=none tower
+208 -60
View File
@@ -1,73 +1,221 @@
[![Docker Swarm Deployed](https://github.com/MarcPartensky/Docker/actions/workflows/docker-swarm-deploy.yml/badge.svg)](https://github.com/MarcPartensky/Docker/actions/workflows/docker-swarm-deploy.yml)
# Docker
[![Docker Swarm Services](https://cdn.discordapp.com/attachments/809914059981586462/1042966875514077227/unknown.png)](https://swarm.marcpartensky.com)
## Domains
- https://marcpartensky.com
- https://pandoc.marcpartensky.com
- https://ialab.marcpartensky.com
- https://notebook.marcpartensky.com
- https://searx.marcpartensky.com
- https://wordpress.marcpartensky.com
- https://git.marcpartensky.com
- https://gitlab.marcpartensky.com
- https://todolist.marcpartensky.com
- https://api.todolist.marcpartensky.com
- https://uml.marcpartensky.com
- https://grafana.marcpartensky.com
- https://prometheus.marcpartensky.com
- https://swarm.marcpartensky.com
- https://auth.marcpartensky.com
- https://seafile.marcpartensky.com
- https://cloud.marcpartensky.com
- https://mail.marcpartensky.com
- https://arch.marcpartensky.com
- https://matrix.marcpartensky.com
- https://vault.marcpartensky.com
<!-- - https://dns.marcpartensky.com -->
<!-- - https://glou.marcpartensky.com -->
<!-- - https://minecraft.marcpartensky.com -->
[![Heimdall Portal](https://i.imgur.com/RiHrnck.jpeg)](https://heimdall.marcpartensky.com)
## Reverse proxy
The `docker-compose.yml` configuration is compatible with the following reverse-proxies:
- traefik
- caddy
- nginx
Self-hosted infrastructure managing 150+ services via Docker Compose, deployed on a personal VPS with automated merge/deploy tooling and multi reverse-proxy support (Traefik, Caddy, Nginx).
All services are in the `services/` folder as individual Compose files, ready to deploy standalone or merged into a single stack.
## Services
&nbsp;
| Service | Description |
| --- | --- |
| [adguard](services/adguard/compose.yml) | Network-wide DNS ad blocker |
| [authentik](services/authentik/compose.yml) | SSO / identity provider |
| [authentik_ldap](services/authentik_ldap/compose.yml) | Authentik LDAP outpost |
| [authelia](services/authelia/compose.yml) | Lightweight SSO and 2FA gateway |
| [casdoor](services/casdoor/compose.yml) | OAuth2 / OIDC identity platform |
| [keycloak](services/keycloak/compose.yml) | Enterprise identity and access management |
| [ldap](services/ldap/compose.yml) | OpenLDAP directory server |
| [ldap-manager](services/ldap-manager/compose.yml) | LDAP management UI |
| [zitadel](services/zitadel/compose.yml) | Cloud-native identity platform |
| [hydra](services/hydra/compose.yml) | OAuth2 server (ORY Hydra) |
| [traefik](services/traefik/compose.yml) | Reverse proxy and automatic TLS termination |
| [caddy](services/caddy/compose.yml) | Modern reverse proxy with auto-HTTPS |
| [nginx](services/nginx/compose.yml) | Classic HTTP reverse proxy |
| [pangolin](services/pangolin/compose.yml) | Tunneled reverse proxy for private networks |
| [cloudflare](services/cloudflare/compose.yml) | Cloudflare tunnel / DDNS integration |
| [sslh](services/sslh/compose.yml) | SSL/SSH multiplexer on port 443 |
| [wireguard](services/wireguard/compose.yml) | WireGuard VPN server |
| [wireguard-client](services/wireguard-client/compose.yml) | WireGuard VPN client |
| [openvpn](services/openvpn/compose.yml) | OpenVPN server |
| [openvpn_client](services/openvpn_client/compose.yml) | OpenVPN client |
| [dockvpn](services/dockvpn/compose.yml) | VPN-in-Docker setup |
| [ipsec](services/ipsec/compose.yml) | IPSec VPN (strongSwan) |
| [libreswan](services/libreswan/compose.yml) | IPSec VPN (Libreswan) |
| [pritunl](services/pritunl/compose.yml) | OpenVPN management platform |
| [gluetun](services/gluetun/compose.yml) | VPN client container with killswitch |
| [wstunnel](services/wstunnel/compose.yml) | WebSocket tunneling |
| [tunnel](services/tunnel/compose.yml) | Generic tunnel service |
| [grafana](services/grafana/compose.yml) | Metrics and monitoring dashboards |
| [prometheus](services/prometheus/compose.yml) | Time-series metrics collection |
| [cadvisor](services/cadvisor/compose.yml) | Container resource usage monitoring |
| [signoz](services/signoz/compose.yml) | OpenTelemetry observability platform |
| [uptime](services/uptime/compose.yml) | Uptime Kuma - service health monitoring |
| [diun](services/diun/compose.yml) | Docker image update notifier |
| [wud](services/wud/compose.yml) | What's Up Docker - image update tracker |
| [fail2ban](services/fail2ban/compose.yml) | Intrusion prevention via log analysis |
| [portainer](services/portainer/compose.yml) | Docker container management UI |
| [dockge](services/dockge/compose.yml) | Docker Compose stack manager UI |
| [rancher](services/rancher/compose.yml) | Kubernetes / multi-cluster management |
| [swarmpit](services/swarmpit/compose.yml) | Docker Swarm management UI |
| [swarm-visualizer](services/swarm-visualizer/compose.yml) | Docker Swarm topology visualizer |
| [mobydock](services/mobydock/compose.yml) | Docker management dashboard |
| [dockerdash](services/dockerdash/compose.yml) | Docker container dashboard |
| [docker](services/docker/compose.yml) | Docker-in-Docker setup |
| [registry](services/registry/compose.yml) | Private Docker image registry |
| [sablier](services/sablier/compose.yml) | On-demand container startup |
| [gitea](services/gitea/compose.yml) | Lightweight self-hosted Git service |
| [gitlab](services/gitlab/compose.yml) | Full DevOps platform with CI/CD |
| [jenkins](services/jenkins/compose.yml) | CI/CD automation server |
| [gitbook](services/gitbook/compose.yml) | Git-based documentation platform |
| [bookstack](services/bookstack/compose.yml) | Wiki and knowledge base |
| [wikijs](services/wikijs/compose.yml) | Modern wiki platform |
| [docuwiki](services/docuwiki/compose.yml) | DokuWiki flat-file wiki |
| [outline](services/outline/compose.yml) | Team knowledge base and wiki |
| [documize](services/documize/compose.yml) | Enterprise document management |
| [logseq](services/logseq/compose.yml) | Local-first knowledge graph |
| [mermaid](services/mermaid/compose.yml) | Diagram rendering service |
| [jupyterlab](services/jupyterlab/compose.yml) | Interactive Python notebook environment |
| [jupyterhub](services/jupyterhub/compose.yml) | Multi-user JupyterHub server |
| [code-server](services/code-server/compose.yml) | VS Code in the browser |
| [streamlit](services/streamlit/compose.yml) | Streamlit app hosting |
| [ialab](services/ialab/compose.yml) | AI/ML experimentation environment |
| [ia](services/ia/compose.yml) | AI service deployment |
| [mistral](services/mistral/compose.yml) | Self-hosted Mistral LLM |
| [open-webui](services/open-webui/compose.yml) | Web UI for local LLMs (Ollama) |
| [real-esrgan](services/real-esrgan/compose.yml) | AI image upscaling service |
| [chatgpt](services/chatgpt/compose.yml) | ChatGPT API proxy / UI |
| [serge](services/serge/compose.yml) | LLaMA chat interface |
| [nextcloud](services/nextcloud/compose.yml) | Cloud storage and collaboration suite |
| [owncloud](services/owncloud/compose.yml) | Self-hosted file storage platform |
| [ocis](services/ocis/compose.yml) | ownCloud Infinite Scale |
| [seafile](services/seafile/compose.yml) | High-performance file sync and share |
| [filebrowser](services/filebrowser/compose.yml) | Web-based file manager |
| [syncthing](services/syncthing/compose.yml) | Peer-to-peer file synchronization |
| [minio](services/minio/compose.yml) | S3-compatible object storage |
| [webdav](services/webdav/compose.yml) | WebDAV file server |
| [vaultwarden](services/vaultwarden/compose.yml) | Bitwarden-compatible password manager |
| [paperless](services/paperless/compose.yml) | Paperless-ngx document management and OCR |
| [docuseal](services/docuseal/compose.yml) | Document signing platform |
| [pandoc](services/pandoc/compose.yml) | Universal document converter |
| [calibre](services/calibre/compose.yml) | E-book library and converter |
| [wallabag](services/wallabag/compose.yml) | Read-it-later / article archiver |
| [linkding](services/linkding/compose.yml) | Minimalist bookmark manager |
| [linkwarden](services/linkwarden/compose.yml) | Collaborative bookmark manager |
| [yourls](services/yourls/compose.yml) | Self-hosted URL shortener |
| [kutt](services/kutt/compose.yml) | Modern URL shortener |
| [postgres](services/postgres/compose.yml) | PostgreSQL database |
| [pgadmin](services/pgadmin/compose.yml) | PostgreSQL admin UI |
| [pgweb](services/pgweb/compose.yml) | Lightweight PostgreSQL web client |
| [postgrest](services/postgrest/compose.yml) | REST API auto-generated from PostgreSQL schema |
| [pg-backup](services/pg-backup/compose.yml) | Automated PostgreSQL backup |
| [mysql](services/mysql/compose.yml) | MySQL database |
| [mongo](services/mongo/compose.yml) | MongoDB database |
| [mongo_express](services/mongo_express/compose.yml) | MongoDB web admin UI |
| [mongo_backup](services/mongo_backup/compose.yml) | Automated MongoDB backup |
| [redis](services/redis/compose.yml) | In-memory key-value store |
| [elasticsearch](services/elasticsearch/compose.yml) | Full-text search and analytics engine |
| [kibana](services/kibana/compose.yml) | Elasticsearch visualization UI |
| [dbdesigner](services/dbdesigner/compose.yml) | Database schema design tool |
| [nocodb](services/nocodb/compose.yml) | Airtable-like interface over any SQL database |
| [n8n](services/n8n/compose.yml) | Workflow automation platform |
| [apprise](services/apprise/compose.yml) | Multi-platform push notification service |
| [gotify](services/gotify/compose.yml) | Self-hosted push notification server |
| [ntfy](services/ntfy/compose.yml) | Simple pub/sub notification service |
| [mosquitto](services/mosquitto/compose.yml) | MQTT message broker |
| [matrix](services/matrix/compose.yml) | Matrix homeserver (Synapse) |
| [conduit](services/conduit/compose.yml) | Lightweight Matrix homeserver |
| [rocketchat](services/rocketchat/compose.yml) | Self-hosted team chat platform |
| [ssh-chat](services/ssh-chat/compose.yml) | Chat over SSH |
| [discord-bot](services/discord-bot/compose.yml) | Discord bot deployment |
| [discord_chatgpt](services/discord_chatgpt/compose.yml) | Discord bot with ChatGPT integration |
| [jellyfin](services/jellyfin/compose.yml) | Media server (video, music, photos) |
| [plex](services/plex/compose.yml) | Plex media server |
| [peertube](services/peertube/compose.yml) | Self-hosted video platform |
| [audiobookshelf](services/audiobookshelf/compose.yml) | Audiobook and podcast server |
| [minidlna](services/minidlna/compose.yml) | DLNA media streaming server |
| [stash](services/stash/compose.yml) | Media organizer (self-hosted) |
| [yt-dlp](services/yt-dlp/compose.yml) | YouTube / video downloader service |
| [playlistdl](services/playlistdl/compose.yml) | Playlist download automation |
| [invidious](services/invidious/compose.yml) | Privacy-friendly YouTube frontend |
| [home-assistant](services/home-assistant/compose.yml) | Home automation platform |
| [pihole](services/pihole/compose.yml) | DNS-based ad blocker |
| [ankisyncserver](services/ankisyncserver/compose.yml) | Self-hosted Anki flashcard sync server |
| [ffsync](services/ffsync/compose.yml) | Firefox Sync server |
| [etesync](services/etesync/compose.yml) | Encrypted contacts and calendar sync |
| [open-web-calendar](services/open-web-calendar/compose.yml) | Web-based calendar aggregator |
| [appflowy](services/appflowy/compose.yml) | Open-source Notion alternative |
| [focalboard](services/focalboard/compose.yml) | Project management and Kanban boards |
| [todolist](services/todolist/compose.yml) | To-do list service |
| [izitdone](services/izitdone/compose.yml) | Task completion tracker |
| [moodle](services/moodle/compose.yml) | E-learning platform |
| [openedx](services/openedx/compose.yml) | Open edX learning management system |
| [frappelms](services/frappelms/compose.yml) | Frappe-based LMS |
| [wger](services/wger/compose.yml) | Workout and fitness tracker |
| [time-assistant](services/time-assistant/compose.yml) | Time tracking assistant |
| [minecraft_bedrock](services/minecraft_bedrock/compose.yml) | Minecraft Bedrock edition server |
| [minecraft_champi](services/minecraft_champi/compose.yml) | Custom Minecraft server |
| [minecraft_jungle](services/minecraft_jungle/compose.yml) | Custom Minecraft server |
| [crafty-controller](services/crafty-controller/compose.yml) | Minecraft server manager |
| [mcmyadmin](services/mcmyadmin/compose.yml) | Minecraft server admin panel |
| [mc-router](services/mc-router/compose.yml) | Minecraft reverse proxy/router |
| [satisfactory](services/satisfactory/compose.yml) | Satisfactory dedicated game server |
| [pxe](services/pxe/compose.yml) | PXE boot server for network installs |
| [arch](services/arch/compose.yml) | Arch Linux container environment |
| [nixos](services/nixos/compose.yml) | NixOS container environment |
| [android](services/android/compose.yml) | Android emulator in Docker |
| [vnc](services/vnc/compose.yml) | VNC remote desktop server |
| [web-terminal](services/web-terminal/compose.yml) | Browser-based terminal (Wetty) |
| [rustdesk](services/rustdesk/compose.yml) | Self-hosted remote desktop server |
| [sshpiperd](services/sshpiperd/compose.yml) | SSH proxy and multiplexer |
| [ipfs](services/ipfs/compose.yml) | IPFS distributed storage node |
| [monero-node](services/monero-node/compose.yml) | Monero full node |
| [monero-miner](services/monero-miner/compose.yml) | Monero mining setup |
| [bisq](services/bisq/compose.yml) | Decentralized Bitcoin exchange |
| [cowrie](services/cowrie/compose.yml) | SSH honeypot |
| [beef](services/beef/compose.yml) | Browser exploitation framework (pentesting lab) |
| [burpsuite](services/burpsuite/compose.yml) | Web security testing proxy |
| [feroxbuster](services/feroxbuster/compose.yml) | Web content discovery tool |
| [sqlmap](services/sqlmap/compose.yml) | SQL injection testing tool |
| [kippo](services/kippo/compose.yml) | SSH honeypot (legacy) |
| [duplicati](services/duplicati/compose.yml) | Encrypted cloud backup |
| [backrest](services/backrest/compose.yml) | Restic backup management UI |
| [airbyte](services/airbyte/compose.yml) | Data integration and ETL platform |
| [fuseki](services/fuseki/compose.yml) | Apache Jena Fuseki SPARQL server |
| [suitecrm](services/suitecrm/compose.yml) | Open-source CRM |
| [wordpress](services/wordpress/compose.yml) | WordPress CMS (multiple instances) |
| [resume](services/resume/compose.yml) | Reactive Resume - self-hosted CV builder |
| [clipshare](services/clipshare/compose.yml) | Clipboard sharing service |
| [webshot](services/webshot/compose.yml) | URL screenshot service |
| [fdroid](services/fdroid/compose.yml) | F-Droid self-hosted app repository |
| [lrclib](services/lrclib/compose.yml) | Lyrics database service |
| [ebook2audiobookxtts](services/ebook2audiobookxtts/compose.yml) | E-book to audiobook converter (TTS) |
## Reverse Proxy
Compatible with Traefik, Caddy, and Nginx. Labels are included in each Compose file for automatic route registration.
## Run few services at once
- Example : run a monero node
```sh
docker-compose -f services/monero-node.yml up -d
```
- Example : run multiple a wordpress website behind a proxy
```sh
# create a global network
docker network create --attachable caddy # add '--driver overlay' for swarm
# then deploy both services
# Example: Caddy + WordPress behind reverse proxy
docker network create --attachable caddy
docker-compose -f services/caddy.yml -f services/wordpress.yml up -d
```
## Deploy lots of services at once
- Select your services by putting those in ./env/vps.txt
## Deployment
**Run a single service:**
```sh
docker-compose -f services/<service>/compose.yml up -d
```
**Merge and deploy multiple services at once:**
```sh
# 1. Select services
nvim ./env/vps.txt
# 2. Generate merged stack
./bin/docker-setup.sh merge vps
# 3. Deploy as a Compose stack
docker-compose -f ./stacks/docker-compose.yml up -d
# or as a Swarm stack
docker stack deploy -c ./stack/docker-compose.yml vps
```
- Generate a ./stack/docker-compose.yml with all merged configurations
```sh
./bin/docker-setup.sh merge vps # or make merge
```
## Related
- Deploy
```sh
# as a swarm stack
docker stack deploy -c ./stack/docker-compose.yml vps # or make mswarm
# or using docker-compose
docker-compose -f ./stacks/docker-compose.yml up -d
```
### Links
[vpn](https://github.com/kylemanna/docker-openvpn/blob/master/docs/docker-compose.md)
- [OpenVPN via Docker](https://github.com/kylemanna/docker-openvpn/blob/master/docs/docker-compose.md)
+1
View File
@@ -0,0 +1 @@
3.12
View File
+11 -8
View File
@@ -5,10 +5,13 @@ export COMPOSE_PATH_SEPARATOR=":"
export COMPOSE_FILE=$(find $PROJECT_PATH/services/*.yml | xargs -I @ echo -n @:)
export COMPOSE_FILE=${COMPOSE_FILE::-1}
# tool=podman-compose
tool=docker-compose
if [ "$1" = "-f" ]
then
docker-compose --file $@
$tool --file $@
exit
fi
@@ -16,10 +19,10 @@ if [ -f $PWD/docker-compose.yml ]
then
if [ "$#" = 0 ]
then
docker-compose ps
$tool ps
exit
fi
docker-compose --file $PWD/docker-compose.yml $@
$tool --file $PWD/docker-compose.yml $@
exit
fi
@@ -29,19 +32,19 @@ then
exit
fi
docker-compose $@
$tool $@
if [ "$1" = "up" ]
then
if [ "$2" = "-d" ]
then
docker-compose logs -f ${@: 3}
$tool logs -f ${@: 3}
else
docker-compose logs -f ${@: 2}
$tool logs -f ${@: 2}
fi
elif [ "$1" = "start" ]
then
docker-compose logs -f ${@: 2}
$tool logs -f ${@: 2}
elif [ "$1" = "restart" ]
then
docker-compose logs -f ${@: 2}
$tool logs -f ${@: 2}
fi
+4 -1
View File
@@ -1,5 +1,8 @@
#!/bin/sh
# tool=podman-compose
tool="docker compose"
if [ $1 = merge ]
then
cat ./env/$2.txt | xargs -I @ echo ./services/@.yml | xargs ./bin/docker-merge.py > ./stacks/docker-compose.yml
@@ -26,7 +29,7 @@ config_files() {
if [ -z $STACK ]
then
cmd="docker compose $(config_files) up -d"
cmd="$tool $(config_files) up -d --force-recreate"
else
cmd="docker stack deploy $(config_files) $STACK"
fi
Executable
+119
View File
@@ -0,0 +1,119 @@
#!/usr/bin/env python
import os
import re
import shutil
import fire
import yaml
from pathlib import Path
def update_env_paths(compose_path, original_base):
"""Modifie les chemins env_file vers .env"""
try:
with open(compose_path, 'r') as f:
compose_data = yaml.safe_load(f) or {}
except Exception as e:
print(f"Erreur lecture YAML: {compose_path} - {str(e)}")
return
modified = False
if 'services' in compose_data:
for srv_name, srv_config in compose_data['services'].items():
if 'volumes' in srv_config:
volumes = srv_config['volumes']
for i,volume in enumerate(volumes):
if 'data' in volume:
volumes[i] = "../" + volume
print("volume:", srv_name, volume, "->", volumes[i])
if 'env_file' in srv_config:
new_env_files = []
env_files = srv_config['env_file']
env_files = [env_files] if isinstance(env_files, str) else env_files
for ef in env_files:
file_name = os.path.basename(ef)
if file_name.startswith(original_base):
new_path = ".env"
if file_name.endswith(".template.env"):
new_path = ".env.template"
print(f"Modification: {ef} → {new_path}")
new_env_files.append(new_path)
modified = True
else:
new_env_files.append(ef)
srv_config['env_file'] = new_env_files[0] if len(new_env_files) == 1 else new_env_files
if modified:
try:
with open(compose_path, 'w') as f:
yaml.dump(compose_data, f, sort_keys=False, default_flow_style=False)
print(f"✓ Fichier mis à jour avec chemin relatif propre\n")
except Exception as e:
print(f"Erreur écriture YAML: {compose_path} - {str(e)}")
def process_compose_files(source, output_dir):
"""Convertit les fichiers Docker Compose avec mise à jour des chemins"""
for filename in os.listdir(source):
if filename.lower().endswith(('.yml', '.yaml')):
src_path = os.path.join(source, filename)
base_name = os.path.splitext(filename)[0]
service_name = re.sub(r'\d+$', '', base_name)
target_dir = os.path.join(output_dir, service_name)
# os.makedirs(target_dir, exist_ok=True)
dst_path = os.path.join(output_dir, filename, 'compose.yml')
# shutil.copy2(src_path, dst_path)
print(f"\n🔧 Traitement de {filename}:")
update_env_paths(dst_path, filename)
def process_env_files(source, output_dir):
"""Convertit les fichiers d'environnement"""
for filename in os.listdir(source):
src_path = os.path.join(source, filename)
target_file = None
if filename.lower().endswith('.template.env'):
base_name = filename[:-len('.template.env')]
target_file = '.env.template'
elif filename.lower().endswith('.env'):
base_name = filename[:-len('.env')]
target_file = '.env'
else:
continue
service_name = re.sub(r'\d+$', '', base_name)
target_dir = os.path.join(output_dir, service_name)
os.makedirs(target_dir, exist_ok=True)
dst_path = os.path.join(target_dir, target_file)
shutil.copy2(src_path, dst_path)
print(f"Conversion env: {filename} → {dst_path}")
def main(compose_source, env_source=None, output_dir=None):
"""
Args:
compose_source: Dossier source des compose files
env_source: Dossier source des fichiers d'environnement (défaut: compose_source)
output_dir: Dossier de sortie (défaut: compose_source)
"""
output_dir = output_dir or compose_source
Path(output_dir).mkdir(parents=True, exist_ok=True)
print("⏳ Traitement des fichiers docker-compose...")
process_compose_files(compose_source, output_dir)
env_source = env_source or compose_source
print("\n⏳ Traitement des fichiers d'environnement...")
process_env_files(env_source, output_dir)
if __name__ == "__main__":
fire.Fire(main)
+10
View File
@@ -0,0 +1,10 @@
[project]
name = "bin"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"fire>=0.7.0",
"pyyaml>=6.0.2",
]
Generated
+61
View File
@@ -0,0 +1,61 @@
version = 1
requires-python = ">=3.12"
[[package]]
name = "bin"
version = "0.1.0"
source = { virtual = "." }
dependencies = [
{ name = "fire" },
{ name = "pyyaml" },
]
[package.metadata]
requires-dist = [
{ name = "fire", specifier = ">=0.7.0" },
{ name = "pyyaml", specifier = ">=6.0.2" },
]
[[package]]
name = "fire"
version = "0.7.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "termcolor" },
]
sdist = { url = "https://files.pythonhosted.org/packages/6b/b6/82c7e601d6d3c3278c40b7bd35e17e82aa227f050aa9f66cb7b7fce29471/fire-0.7.0.tar.gz", hash = "sha256:961550f07936eaf65ad1dc8360f2b2bf8408fad46abbfa4d2a3794f8d2a95cdf", size = 87189 }
[[package]]
name = "pyyaml"
version = "6.0.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 },
{ url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 },
{ url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 },
{ url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 },
{ url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 },
{ url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 },
{ url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 },
{ url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 },
{ url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 },
{ url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 },
{ url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 },
{ url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 },
{ url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 },
{ url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 },
{ url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 },
{ url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 },
{ url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 },
{ url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
]
[[package]]
name = "termcolor"
version = "3.0.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f8/b6/8e2aaa8aeb570b5cc955cd913b083d96c5447bbe27eaf330dfd7cc8e3329/termcolor-3.0.1.tar.gz", hash = "sha256:a6abd5c6e1284cea2934443ba806e70e5ec8fd2449021be55c280f8a3731b611", size = 12935 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a6/7e/a574ccd49ad07e8b117407bac361f1e096b01f1b620365daf60ff702c936/termcolor-3.0.1-py3-none-any.whl", hash = "sha256:da1ed4ec8a5dc5b2e17476d859febdb3cccb612be1c36e64511a6f2485c10c69", size = 7157 },
]
-1
View File
@@ -1 +0,0 @@
mail._domainkey.marcpartensky.com marcpartensky.com:mail:/etc/opendkim/keys/marcpartensky.com/mail.private
-1
View File
@@ -1 +0,0 @@
*@marcpartensky.com mail._domainkey.marcpartensky.com
-2
View File
@@ -1,2 +0,0 @@
127.0.0.1
localhost
@@ -1,51 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIJKAIBAAKCAgEAouPk5YPodxb41YBVY4xdeJGRCzUXSrVYUZc2ukE2HqIqWsiv
U7vPgBFlclBzMMJVdrt/NAt3NnulzWyQg6V+A8wSYkCNpevGlsp2TvkL8Mcuf1LV
GfNScjycJ8nC8LhRgHZZJ876yM97mEK+J4X4k8X1/IWzwUSmOOAB3EpfuQLMVQL8
KQh5gyAdvokbnmq+r9VqOyiFbZ03JzyW+RPMTQxMu2kid+KH336/j5Tvza8ITN3v
qZRVfZJjJzCJHvx4iKpWy2iOFxNThlUTbnZ93xFEA+36s+pU2hT22RGN8qzSQFBt
IXKEqyNJ4KoJ/X53ukYc4ZSmpRAz/PhxX9eIgurUwKXrSwX5127+eCIanRT4aMYS
obuue7IGlHixNI4dmZW4H0kMs5MwDItYzNQfmsv7HDjkfsRhBlFpV5LMES1g4L4r
WQ85kKcQYfl60FyReCKrrBGiFi9H8iEK5gDIgOFJ37qNa3yLolll31YdkhONsFyr
OyGrEAcCzRHOa9jq9KEa5p8QyRekG75aGEfGlRMntkM1KAhdyjuyixle3I7SYywq
tqJfjAButWJdvhuPf1jWmqzs97AoJZb2mYzgP/ur9sqHR8EBJ8HN9thRgf4Qsyxp
PTO9tOU+4GtT9YSVSGjXHQ0SnPDAj8YxjOql5RDalmiP91NmAeGUfCbLwUkCAwEA
AQKCAgBUDv7kYjnomvY2V0+5W4ow2g3blr46U3MMR9h6LYTcMhthVgcEUvs1v8R2
RYXsN50a9I8kMHaIqy5Y4BmDljd9hiZGhcGTSiTlU/3Rqzu6OU+JbRmDlsmJIjYD
Yl8zEisc+/XuUSWh01CYtniitMQenh3e/rBQoDiXSSIsqETVmNgRVsUB99mdDUnM
Nb0G91cILj3v4W1Zr7Pyj5XpW4omiJ5gaFTdQQ2VDDeWxOkrX5QM9sri3CVx88Uv
SCC62Nbqz9ySg5Yv2k1UGTs52fQC1UogLQMfLWI0WHU6d5ClFwI5Jkfq5soH9uH9
CkK1ijoG6n+k+a01qTLq7Nq09uj+s6T0BFb6703ZATVxdTNxc3xaFcYm9ZpuDnCr
U8P6sVClCa9axjMZk1Kjl7OKSyp8LlRWPacxO4GXqlNmhyMUEldKj8cBmmxzC7fj
1fMXAve3EodVRM5Z6S+c/PO96TuJrSkddImWhPawd35/rrtBA+7ToPNYzy7aWk/N
UZ9uFkwPMLaDZeRG590natPOUkB0FZ7F8EEjwMbUhf1iyoPvLPiixofVk1NKTWMr
8DEN6bSH85v/lQaAQhmFFNRjdeyXts9+a7Kmsxos3AfW8hsmNHFxTuoXZ8AjvVAs
P7hlPFoJultoUwX/ZpMZtsEwFW3FUSw33Onsdblezp7Lb12icQKCAQEAzVKid6vv
TWGltBkL1XTtzYSNUTBIZfoOjKxTsrqSKNAR6i2lmN2bPKKTksPdloBoaQ/FHK6R
/+mebfgmnyulY6zWo8EUewi3LFyL9KhXe0K38/jUUokKWSq1Ob5D8Kjq6MuTCfuS
M5XnYfIZuIAZLE0244+Q8L03mc2f7uvl3KWaAZOVUsfHu/ETzTm6lgG8Liq5a0Fw
thCVVupKVeSLjRa/RWFVR9E9jvIjplo+SVAUJWyYwlOfPDVr76gqrF5P+4lOQpAQ
dzwhi4LHhvdgp9Y/Gw3s5vByA/7Ogh3QI5jS36w2EMCFYZpAe4HBQk1UOYVNBpeD
58m3venG5pBy4wKCAQEAyxglzQhZSBNkkukoRm7zzmNAx9/M0ROu7uwmJ9t02Q94
/3fpV2zVYA7rQKZcCgW5Dnhe4GaeyASRXq4x3v7F6iLCUjxbJ8e+YRhsNrp0WmYU
Xk6+06EQgLBICqDQeMDDeR+KQzaJonuMSrGyUb8krR6RB+/W3LqK/0CQSSaHozzN
6mxejoFoNhf7rfIP9JJD8QwpBsTJBQNCDvHo1lIA8e3nTngFzLJ56tRVwjaP8EPT
qJ7RfoVxdTyUTZTq/8EGOqNrzLgB/FehXq3eTz89tdlHOTT+mJ8H23AEtepxpLFx
5kN/eisi4PjUgCp11IHnmG8qnJr48uDlORdrqL424wKCAQBX/DVK+w7NJi8QAjuj
+Tt+enLke8BKkuFxPtePG4xOmPtUUsNHwo8naLO8jNqEB/q2Kt/Y7qX5+G6/yTsj
slxpXkOMYM0Z/B4ikHYZHZp/Y5PYpKS3yan5k+edGv+aPYiMwc/80yVPnclNm6WR
/rLK3TvMQFVoFG2jJw6GH+icqQpZ6phupNXen+xQYZCnf47Yac6TO7PFEU4ttLCu
JgX3K+xDGvakk/HBM9o7Cyjt2bcIYoUDoTn3Xx0l0faXbsLvk2NJ+tpTfh0R37UJ
DTEKOzFHsqv2OsthEuwDrirnVjHnT7DLdPSzYpqHUo8yjlitXYYocP1BcpuecnOd
kgDpAoIBAQCtLi4to8zeFQtR6teZF8t2VlRLG5+/ORWWTnBK1GvTG8qFrW6gSgG5
I3+fZTxen3qpyCK/H0KONLbxEYEdMgr6GCGzlhv00/KXQQglsuC8pQcBVAyM0W8N
DUShK3gZP+ZvRmHT5pF+p/N9TgFMi71ukf4B0pZZKgiUmC1w8xX+MD82gqouwlJm
rhTCwwKv/nlI9qGVUABJ8flGXSm6d7qukbsHwnjPj/E+OUnXjkc3Dd9Sjfr99DRH
UBz1+uJYq/Pv1KJ7svyefOrxnTlQQhERG/IL6hCffBxrFh4uMXgug9EoFK6DMn1P
cV9i2tIXH56o8UJYwB1Anl1YTYxUG78ZAoIBAD748NDDIj5yxjzW7UzNajLs9iB2
aiywcxPZCKo38Yi7KIaxIy8YeHqJ6chenvTl5S4ElB+sJ0SnYEvBqxceOXiM9l5i
HrDxIc3gzwY0lN0h2ZEiSKBQgjCtFW6gZ+6KmPonk98S8l8hbFW0vL+nS4EE9vtO
3cFhz/HPVB1ZY5ofy7/rLRd7GiISof9WcvrnOvE9BKFF0rNKZUjrf2PM3c2rObvj
5rgLvUiX/Mn9ND/XHTjT/UVptmkmcnjFyRvQwXXA4ns7gxBWYfYB1bqwh6WRfEU6
x3ykDol24hgohvpEnKMZDUTmLrxgF8hbJTP/57P2Yyy0faxZ/z/MER1qy28=
-----END RSA PRIVATE KEY-----
@@ -1,4 +0,0 @@
mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAouPk5YPodxb41YBVY4xdeJGRCzUXSrVYUZc2ukE2HqIqWsivU7vPgBFlclBzMMJVdrt/NAt3NnulzWyQg6V+A8wSYkCNpevGlsp2TvkL8Mcuf1LVGfNScjycJ8nC8LhRgHZZJ876yM97mEK+J4X4k8X1/IWzwUSmOOAB3EpfuQLMVQL8KQh5gyAdvokbnmq+r9VqOyiFbZ03Jz"
"yW+RPMTQxMu2kid+KH336/j5Tvza8ITN3vqZRVfZJjJzCJHvx4iKpWy2iOFxNThlUTbnZ93xFEA+36s+pU2hT22RGN8qzSQFBtIXKEqyNJ4KoJ/X53ukYc4ZSmpRAz/PhxX9eIgurUwKXrSwX5127+eCIanRT4aMYSobuue7IGlHixNI4dmZW4H0kMs5MwDItYzNQfmsv7HDjkfsRhBlFpV5LMES1g4L4rWQ85kKcQYfl60FyReCKrrBGi"
"Fi9H8iEK5gDIgOFJ37qNa3yLolll31YdkhONsFyrOyGrEAcCzRHOa9jq9KEa5p8QyRekG75aGEfGlRMntkM1KAhdyjuyixle3I7SYywqtqJfjAButWJdvhuPf1jWmqzs97AoJZb2mYzgP/ur9sqHR8EBJ8HN9thRgf4QsyxpPTO9tOU+4GtT9YSVSGjXHQ0SnPDAj8YxjOql5RDalmiP91NmAeGUfCbLwUkCAwEAAQ==" ) ; ----- DKIM key mail for marcpartensky.com
-1
View File
@@ -1 +0,0 @@
marc@marcpartensky.com|{SHA512-CRYPT}$6$G1SLI/9La3kXrkrt$9MdkaLuUEoa2n8mVVZoCwmy0g6MrvlHDL0i2FVrUakAXi3pgPfo/HNz/mLWRFS6nG1oOeP8IMbTGM.JptPR../
+61 -44
View File
@@ -1,5 +1,9 @@
bind_host: 0.0.0.0
bind_port: 3000
http:
pprof:
port: 6060
enabled: false
address: 0.0.0.0:3000
session_ttl: 720h
users:
- name: marc
password: $2a$10$E9cknJr/bTLtSUJ9EaW8r.Gw30FX8Plm8jgq.LaYxMwiX4DEuDK7O
@@ -8,22 +12,14 @@ block_auth_min: 15
http_proxy: ""
language: ""
theme: auto
debug_pprof: false
web_session_ttl: 720
dns:
bind_hosts:
- 0.0.0.0
port: 53
anonymize_client_ip: false
protection_enabled: true
blocking_mode: default
blocking_ipv4: ""
blocking_ipv6: ""
blocked_response_ttl: 10
protection_disabled_until: null
parental_block_host: family-block.dns.adguard.com
safebrowsing_block_host: standard-block.dns.adguard.com
ratelimit: 20
ratelimit_subnet_len_ipv4: 24
ratelimit_subnet_len_ipv6: 56
ratelimit_whitelist: []
refuse_any: true
upstream_dns:
@@ -34,8 +30,8 @@ dns:
- 149.112.112.10
- 2620:fe::10
- 2620:fe::fe:10
all_servers: false
fastest_addr: false
fallback_dns: []
upstream_mode: load_balance
fastest_timeout: 1s
allowed_clients: []
disallowed_clients: []
@@ -62,28 +58,6 @@ dns:
ipset: []
ipset_file: ""
bootstrap_prefer_ipv6: false
filtering_enabled: true
filters_update_interval: 24
parental_enabled: false
safebrowsing_enabled: false
safebrowsing_cache_size: 1048576
safesearch_cache_size: 1048576
parental_cache_size: 1048576
cache_time: 30
safe_search:
enabled: false
bing: true
duckduckgo: true
google: true
pixabay: true
yandex: true
youtube: true
rewrites:
- domain: medium.com
answer: 0.0.0.0
- domain: marc
answer: marcpartensky.com
blocked_services: []
upstream_timeout: 10s
private_networks: []
use_private_ptr_resolvers: true
@@ -92,6 +66,8 @@ dns:
dns64_prefixes: []
serve_http3: false
use_http3_upstreams: false
serve_plain_dns: true
hostsfile_enabled: true
tls:
enabled: false
server_name: ""
@@ -108,12 +84,14 @@ tls:
private_key_path: ""
strict_sni_check: false
querylog:
dir_path: ""
ignored: []
interval: 2160h
size_memory: 1000
enabled: true
file_enabled: true
statistics:
dir_path: ""
ignored: []
interval: 24h
enabled: true
@@ -161,6 +139,43 @@ dhcp:
lease_duration: 86400
ra_slaac_only: false
ra_allow_slaac: false
filtering:
blocking_ipv4: ""
blocking_ipv6: ""
blocked_services:
schedule:
time_zone: UTC
ids: []
protection_disabled_until: null
safe_search:
enabled: false
bing: true
duckduckgo: true
ecosia: true
google: true
pixabay: true
yandex: true
youtube: true
blocking_mode: default
parental_block_host: family-block.dns.adguard.com
safebrowsing_block_host: standard-block.dns.adguard.com
rewrites:
- domain: medium.com
answer: 0.0.0.0
- domain: marc
answer: marcpartensky.com
safe_fs_patterns:
- /opt/adguardhome/work/data/userfilters/*
safebrowsing_cache_size: 1048576
safesearch_cache_size: 1048576
parental_cache_size: 1048576
cache_time: 30
filters_update_interval: 24
blocked_response_ttl: 10
filtering_enabled: true
parental_enabled: false
safebrowsing_enabled: false
protection_enabled: true
clients:
runtime_sources:
whois: true
@@ -169,15 +184,17 @@ clients:
dhcp: true
hosts: true
persistent: []
log_file: ""
log_max_backups: 0
log_max_size: 100
log_max_age: 3
log_compress: false
log_localtime: false
verbose: false
log:
enabled: true
file: ""
max_backups: 0
max_size: 100
max_age: 3
compress: false
local_time: false
verbose: false
os:
group: ""
user: ""
rlimit_nofile: 0
schema_version: 20
schema_version: 29
+156
View File
@@ -0,0 +1,156 @@
# Minimal nginx configuration for AppFlowy-Cloud
# Self Hosted AppFlowy Cloud user should alter this file to suit their needs
events {
worker_connections 1024;
}
http {
# docker dns resolver
resolver 127.0.0.11 valid=10s;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 8080;
# https://github.com/nginxinc/nginx-prometheus-exporter
location = /stub_status {
stub_status;
}
}
server {
# ssl_certificate /etc/nginx/ssl/certificate.crt;
#ssl_certificate_key /etc/nginx/ssl/private_key.key;
listen 80;
listen 443 ssl;
client_max_body_size 10M;
underscores_in_headers on;
# GoTrue
location /gotrue/ {
set $gotrue gotrue;
proxy_pass http://$gotrue:9999;
rewrite ^/gotrue(/.*)$ $1 break;
# Allow headers like redirect_to to be handed over to the gotrue
# for correct redirecting
proxy_set_header Host $http_host;
proxy_pass_request_headers on;
}
# WebSocket
location /ws {
set $appflowy_cloud appflowy_cloud;
proxy_pass http://$appflowy_cloud:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_read_timeout 86400;
}
# AppFlowy-Cloud
# created a separate location block for handling CORS preflight (OPTIONS) requests specifically for the /api endpoint.
location = /api/options {
if ($http_origin ~* (http://127.0.0.1:8000)) {
add_header 'Access-Control-Allow-Origin' $http_origin;
}
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE, PATCH';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version';
add_header 'Access-Control-Max-Age' 3600;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
location /api {
set $appflowy_cloud appflowy_cloud;
proxy_pass http://$appflowy_cloud:8000;
proxy_set_header X-Request-Id $request_id;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Set CORS headers for other requests
if ($http_origin ~* (http://127.0.0.1:8000)) {
add_header 'Access-Control-Allow-Origin' $http_origin always;
}
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version' always;
add_header 'Access-Control-Max-Age' 3600 always;
}
# Minio Web UI
# Derive from: https://min.io/docs/minio/linux/integrations/setup-nginx-proxy-with-minio.html
# Optional Module, comment this section if you are did not deploy minio in docker-compose.yml
location /minio/ {
set $minio minio;
proxy_pass http://$minio:9001;
rewrite ^/minio/(.*) /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
## This is necessary to pass the correct IP to be hashed
real_ip_header X-Real-IP;
proxy_connect_timeout 300;
## To support websockets in MinIO versions released after January 2023
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Some environments may encounter CORS errors (Kubernetes + Nginx Ingress)
# Uncomment the following line to set the Origin request to an empty string
# proxy_set_header Origin '';
chunked_transfer_encoding off;
}
# PgAdmin
# Optional Module, comment this section if you are did not deploy pgadmin in docker-compose.yml
location /pgadmin/ {
set $pgadmin pgadmin;
proxy_pass http://$pgadmin:80;
proxy_set_header X-Script-Name /pgadmin;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $host;
proxy_redirect off;
}
# Portainer
# Optional Module, comment this section if you are did not deploy portainer in docker-compose.yml
location /portainer/ {
set $portainer portainer;
proxy_pass http://$portainer:9000;
rewrite ^/portainer/(.*) /$1 break;
}
# Admin Frontend
# Optional Module, comment this section if you are did not deploy admin_frontend in docker-compose.yml
location / {
set $admin_frontend admin_frontend;
proxy_pass http://$admin_frontend:3000;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $host;
}
}
}
-11
View File
@@ -1,11 +0,0 @@
[database]
type = postgres
host = postgres:5432
name = grafana
user = grafana
password = ZTliY2MwOWQ5ZjNiMzUyMTc5YWMwNmJi
ssl_mode = disable
[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
+11
View File
@@ -1,11 +1,16 @@
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
evaluation_interval: 15s
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'codelab-monitor'
rule_files:
# Fichier de règle
- 'alert.rules'
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
@@ -21,3 +26,9 @@ scrape_configs:
static_configs:
- targets:
- cadvisor:8080
- job_name: 'traefik'
scrape_interval: 5s
static_configs:
- targets: ['traefik:3000']
+80
View File
@@ -0,0 +1,80 @@
# This file only contains Docker relevant variables.## The only exception to the non-default rule are env vars related to scaling.## See https://github.com/airbytehq/airbyte/blob/master/airbyte-config/config-models/src/main/java/io/airbyte/config/Configs.java# for the latest environment variables.## # Contributors - please organise this env file according to the above linked file.
### SHARED ###VERSION= # Example: 0.50.5
# When using the airbyte-db via default docker imageCONFIG_ROOT= # Example: /data
DATA_DOCKER_MOUNT= # Example: airbyte_data
DB_DOCKER_MOUNT= # Example: airbyte_db
# Workspace storage for running jobs (logs, etc)WORKSPACE_ROOT= # Example: /tmp/workspace
WORKSPACE_DOCKER_MOUNT= # Example: airbyte_workspace
# Local mount to access local files from filesystem# todo (cgardens) - when we are mount raw directories instead of named volumes, *_DOCKER_MOUNT must# be the same as *_ROOT.# Issue: https://github.com/airbytehq/airbyte/issues/578LOCAL_ROOT= # Example: /tmp/airbyte_local
LOCAL_DOCKER_MOUNT= # Example: /tmp/airbyte_local
# todo (cgardens) - hack to handle behavior change in docker compose. *_PARENT directories MUST# already exist on the host filesystem and MUST be parents of *_ROOT.# Issue: https://github.com/airbytehq/airbyte/issues/577HACK_LOCAL_ROOT_PARENT= # Example: /tmp
# Proxy Configuration# Set to empty values, e.g. "" to disable basic authBASIC_AUTH_USERNAME= # Example: username
BASIC_AUTH_PASSWORD= # Example: Passw0rd
BASIC_AUTH_PROXY_TIMEOUT= # Example: 900
### DATABASE ###DATABASE_USER= # Example: username
DATABASE_PASSWORD= # Example: Passw0rd
DATABASE_HOST= # Example: db
DATABASE_PORT= # Example: 5432
DATABASE_DB= # Example: airbyte
DATABASE_URL= # Example: protocol://user:password@host:port/path
JOBS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION= # Example: 0.40.26.001
# Airbyte Internal Config Database, defaults to Job Database if empty. Explicitly left empty to mute docker compose warnings.CONFIG_DATABASE_USER= # Example: username
CONFIG_DATABASE_PASSWORD= # Example: Passw0rd
CONFIG_DATABASE_URL= # Example: protocol://user:password@host:port/path
CONFIGS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION= # Example: 0.40.23.002
### AIRBYTE SERVICES ###TEMPORAL_HOST= # Example: airbyte-temporal:7233
INTERNAL_API_HOST= # Example: airbyte-server:8001
CONNECTOR_BUILDER_API_HOST= # Example: airbyte-connector-builder-server:80
WEBAPP_URL= # Example: protocol://user:password@host:port/path
# Although not present as an env var, required for webapp configuration.CONNECTOR_BUILDER_API_URL= # Example: protocol://user:password@host:port/path
### JOBS #### Relevant to scaling.SYNC_JOB_MAX_ATTEMPTS= # Example: 3
SYNC_JOB_MAX_TIMEOUT_DAYS= # Example: 3
SYNC_JOB_INIT_RETRY_TIMEOUT_MINUTES= # Example: 5
JOB_MAIN_CONTAINER_CPU_REQUEST=
JOB_MAIN_CONTAINER_CPU_LIMIT=
JOB_MAIN_CONTAINER_MEMORY_REQUEST=
JOB_MAIN_CONTAINER_MEMORY_LIMIT=
NORMALIZATION_JOB_MAIN_CONTAINER_MEMORY_LIMIT=
NORMALIZATION_JOB_MAIN_CONTAINER_MEMORY_REQUEST=
NORMALIZATION_JOB_MAIN_CONTAINER_CPU_LIMIT=
NORMALIZATION_JOB_MAIN_CONTAINER_CPU_REQUEST=
### LOGGING/MONITORING/TRACKING ###TRACKING_STRATEGY= # Example: segment
JOB_ERROR_REPORTING_STRATEGY= # Example: logging
# Although not present as an env var, expected by Log4J configuration.LOG_LEVEL= # Example: INFO
### APPLICATIONS #### Worker #WORKERS_MICRONAUT_ENVIRONMENTS= # Example: control-plane
# Cron #CRON_MICRONAUT_ENVIRONMENTS= # Example: control-plane
# Relevant to scaling.MAX_SYNC_WORKERS= # Example: 5
MAX_SPEC_WORKERS= # Example: 5
MAX_CHECK_WORKERS= # Example: 5
MAX_DISCOVER_WORKERS= # Example: 5
MAX_NOTIFY_WORKERS= # Example: 5
SHOULD_RUN_NOTIFY_WORKFLOWS= # Example: true
# Temporal Activity configurationACTIVITY_MAX_ATTEMPT=
ACTIVITY_INITIAL_DELAY_BETWEEN_ATTEMPTS_SECONDS=
ACTIVITY_MAX_DELAY_BETWEEN_ATTEMPTS_SECONDS=
WORKFLOW_FAILURE_RESTART_DELAY_SECONDS=
### FEATURE FLAGS ###AUTO_DISABLE_FAILING_CONNECTIONS= # Example: false
FEATURE_FLAG_CLIENT= # Example: myhiddensecret
### MONITORING FLAGS #### Accepted values are datadog and otel (open telemetry)METRIC_CLIENT= # Example: myhiddensecret
OTEL_COLLECTOR_ENDPOINT= # Example: "http://host.docker.internal:4317"
USE_STREAM_CAPABLE_STATE= # Example: true
AUTO_DETECT_SCHEMA= # Example: true
# To test local catalog changes, set the below variable to the path of your local catalog.# https://docs.airbyte.com/connector-development/testing-connectors/testing-a-local-catalog-in-developmentLOCAL_CONNECTOR_CATALOG_PATH=
+57
View File
@@ -0,0 +1,57 @@
MINIO_BROWSER_REDIRECT_URL= # Example: protocol://user:password@host:port/path
MINIO_ROOT_USER= # Example: username
MINIO_ROOT_PASSWORD= # Example: Passw0rd
GOTRUE_SITE_URL= # Example: protocol://user:password@host:port/path
URI_ALLOW_LIST= # Example: protocol://user:password@host:port/path
GOTRUE_JWT_SECRET= # Example: myhiddensecret
GOTRUE_JWT_EXP= # Example: ${GOTRUE_JWT_EXP}
GOTRUE_DB_DRIVER= # Example: postgres
API_EXTERNAL_URL= # Example: protocol://user:password@host:port/path
DATABASE_URL= # Example: protocol://user:password@host:port/path
PORT= # Example: 9999
GOTRUE_SMTP_HOST= # Example: ${GOTRUE_SMTP_HOST}
GOTRUE_SMTP_PORT= # Example: ${GOTRUE_SMTP_PORT}
GOTRUE_SMTP_USER= # Example: username
GOTRUE_SMTP_PASS= # Example: Passw0rd
GOTRUE_MAILER_URLPATHS_CONFIRMATION= # Example: protocol://user:password@host:port/path
GOTRUE_MAILER_URLPATHS_INVITE= # Example: protocol://user:password@host:port/path
GOTRUE_MAILER_URLPATHS_RECOVERY= # Example: protocol://user:password@host:port/path
GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE= # Example: protocol://user:password@host:port/path
GOTRUE_SMTP_ADMIN_EMAIL= # Example: user.name@gmail.com
GOTRUE_SMTP_MAX_FREQUENCY= # Example: ${GOTRUE_SMTP_MAX_FREQUENCY:-1ns}
GOTRUE_MAILER_AUTOCONFIRM= # Example: user.name@gmail.com
# Google OAuth configGOTRUE_EXTERNAL_GOOGLE_ENABLED= # Example: ${GOTRUE_EXTERNAL_GOOGLE_ENABLED}
GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID= # Example: myhiddenid
GOTRUE_EXTERNAL_GOOGLE_SECRET= # Example: myhiddensecret
GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI= # Example: protocol://user:password@host:port/path
# GITHUB OAuth configGOTRUE_EXTERNAL_GITHUB_ENABLED= # Example: ${GOTRUE_EXTERNAL_GITHUB_ENABLED}
GOTRUE_EXTERNAL_GITHUB_CLIENT_ID= # Example: myhiddenid
GOTRUE_EXTERNAL_GITHUB_SECRET= # Example: myhiddensecret
GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI= # Example: protocol://user:password@host:port/path
# Discord OAuth configGOTRUE_EXTERNAL_DISCORD_ENABLED= # Example: ${GOTRUE_EXTERNAL_DISCORD_ENABLED}
GOTRUE_EXTERNAL_DISCORD_CLIENT_ID= # Example: myhiddenid
GOTRUE_EXTERNAL_DISCORD_SECRET= # Example: myhiddensecret
GOTRUE_EXTERNAL_DISCORD_REDIRECT_URI= # Example: protocol://user:password@host:port/path
RUST_LOG= # Example: info
APPFLOWY_ENVIRONMENT= # Example: production
APPFLOWY_DATABASE_URL= # Example: protocol://user:password@host:port/path
APPFLOWY_REDIS_URI= # Example: protocol://user:password@host:port/path
APPFLOWY_GOTRUE_JWT_SECRET= # Example: myhiddensecret
APPFLOWY_GOTRUE_JWT_EXP= # Example: ${GOTRUE_JWT_EXP}
APPFLOWY_GOTRUE_BASE_URL= # Example: protocol://user:password@host:port/path
APPFLOWY_GOTRUE_EXT_URL= # Example: protocol://user:password@host:port/path
APPFLOWY_GOTRUE_ADMIN_EMAIL= # Example: user.name@gmail.com
APPFLOWY_GOTRUE_ADMIN_PASSWORD= # Example: Passw0rd
APPFLOWY_S3_USE_MINIO= # Example: ${APPFLOWY_S3_USE_MINIO}
APPFLOWY_S3_MINIO_URL= # Example: protocol://user:password@host:port/path
APPFLOWY_S3_ACCESS_KEY= # Example: myhiddenkey
APPFLOWY_S3_SECRET_KEY= # Example: myhiddenkey
APPFLOWY_S3_BUCKET= # Example: ${APPFLOWY_S3_BUCKET}
APPFLOWY_S3_REGION= # Example: ${APPFLOWY_S3_REGION}
RUST_LOG= # Example: info
ADMIN_FRONTEND_REDIS_URL= # Example: protocol://user:password@host:port/path
ADMIN_FRONTEND_GOTRUE_URL= # Example: protocol://user:password@host:port/path
+10
View File
@@ -0,0 +1,10 @@
apprise_config_dir= # Example: /config
apprise_attach_dir= # Example: /attach
# apprise_stateful_mode=apprise_config_lock= # Example: no
# apprise_deny_services=# apprise_allow_services=allowed_hosts= # Example: *
apprise_recursion_max= # Example: 1
# apprise_worker_count=base_url= # Example: protocol://user:password@host:port/path
log_level= # Example: DEBUG
debug= # Example: yes
+23
View File
@@ -0,0 +1,23 @@
AUTHENTIK_POSTGRESQL__HOST= # Example: postgres
AUTHENTIK_POSTGRESQL__NAME= # Example: authentik
AUTHENTIK_POSTGRESQL__USER= # Example: username
AUTHENTIK_POSTGRESQL__PASSWORD= # Example: Passw0rd
AUTHENTIK_DEBUG= # Example: true
PG_PASS= # Example: Passw0rd
AUTHENTIK_REDIS__HOST= # Example: redis
AUTHENTIK_SECRET_KEY= # Example: myhiddenkey
AUTHENTIK_EMAIL__HOST= # Example: user.name@gmail.com
AUTHENTIK_EMAIL__PORT= # Example: user.name@gmail.com
AUTHENTIK_EMAIL__USERNAME= # Example: user.name@gmail.com
AUTHENTIK_EMAIL__PASSWORD= # Example: Passw0rd
# # Use StartTLSAUTHENTIK_EMAIL__USE_TLS= # Example: user.name@gmail.com
# # Use SSLAUTHENTIK_EMAIL__FROM= # Example: user.name@gmail.com
AK_ADMIN_PASS= # Example: Passw0rd
AUTHENTIK_LISTEN__HTTP= # Example: 0.0.0.0:80
AUTHENTIK_LISTEN__HTTPS= # Example: 0.0.0.0:443
AUTHENTIK_LISTEN__LDAP= # Example: 0.0.0.0:389
AUTHENTIK_LISTEN__LDAPS= # Example: 0.0.0.0:636
AUTHENTIK_HOST= # Example: http://authentik
AUTHENTIK_INSECURE= # Example: true
AUTHENTIK_TOKEN= # Example: myhiddentoken
+3
View File
@@ -0,0 +1,3 @@
AUTHENTIK_LISTEN__LDAP= # Example: 0.0.0.0:389
AUTHENTIK_LISTEN__LDAPS= # Example: 0.0.0.0:636
AUTHENTIK_TOKEN= # Example: myhiddentoken
+15
View File
@@ -0,0 +1,15 @@
PUID= # Example: myhiddenid
PGID= # Example: myhiddenid
TZ= # Example: Etc/UTC
APP_URL= # Example: protocol://user:password@host:port/path
APP_KEY= # Example: myhiddenkey
DB_CONNECTION= # Example: postgresql
DB_HOST= # Example: postgres
DB_PORT= # Example: 5432
DB_DATABASE= # Example: bookstack
DB_USERNAME= # Example: username
DB_PASSWORD= # Example: Passw0rd
+8
View File
@@ -0,0 +1,8 @@
WORDPRESS_DB_HOST= # Example: business_mysql
WORDPRESS_DB_NAME= # Example: business
WORDPRESS_DB_USER= # Example: username
WORDPRESS_DB_PASSWORD= # Example: Passw0rd
# WORDPRESS_TABLE_PREFIX=...MYSQL_DATABASE= # Example: business
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
+9
View File
@@ -0,0 +1,9 @@
TUNNEL_TOKEN= # Example: myhiddentoken
CLOUDFLARED_TOKEN= # Example: myhiddentoken
CLOUDFLARE_API_TOKEN= # Example: myhiddentoken
CLOUDFLARE_ACCOUNT_ID= # Example: myhiddenid
CLOUDFLARE_TUNNEL_ID= # Example: myhiddenid
CLOUDFLARE_ZONE_ID= # Example: myhiddenid
# DOMAIN_NAME=traefik.marcpartensky.comTRAEFIK_API_ENDPOINT= # Example: http://traefik:8080
TRAEFIK_SERVICE_ENDPOINT= # Example: http://traefik:80
TRAEFIK_ENTRYPOINT= # Example: web
+35
View File
@@ -0,0 +1,35 @@
DISCORD_PREFIX= # Example: .
DISCORD_TOKEN= # Example: myhiddentoken
DISCORD_CLIENT_ID= # Example: myhiddenid
DISCORD_MONGO_CLUSTER= # Example: discord-cluster-5ckni.mongodb.net/test
DISCORD_MONGO_USERNAME= # Example: username
DISCORD_MONGO_PASSWORD= # Example: Passw0rd
# DISCORD_MONGO_CLUSTER=discord_bot_mongo/testWOLFRAM_ALPHA_ID= # Example: myhiddenid
FACEBOOK_MAIL= # Example: user.name@gmail.com
FACEBOOK_PASSWORD= # Example: Passw0rd
FACEBOOK_MAIL_2= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_2= # Example: Passw0rd
FACEBOOK_MAIL_MISCORD= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_MISCORD= # Example: Passw0rd
MISCORD_DASHBOARD_USERNAME= # Example: username
MISCORD_DASHBOARD_PASSWORD= # Example: Passw0rd
PYGITHUB_TOKEN= # Example: myhiddentoken
GITHUB_TOKEN= # Example: myhiddentoken
CAPTCHA_WEBSITE_KEY= # Example: myhiddenkey
CAPTCHA_SECRET_KEY= # Example: myhiddenkey
LEEKWARS_USERNAME= # Example: username
BRAWLSTARS_ID= # Example: myhiddenid
BRAWLSTARS_MAIL= # Example: user.name@gmail.com
BRAWLSTARS_PASSWORD= # Example: Passw0rd
BRAWLSTARS_TOKEN= # Example: myhiddentoken
DOCKER_API_URL= # Example: protocol://user:password@host:port/path
DISCORD_BOT_HOST= # Example: 0.0.0.0
DISCORD_BOT_PORT= # Example: 8000
SHORTENER_URL= # Example: protocol://user:password@host:port/path
IALAB_URL= # Example: protocol://user:password@host:port/path
POSTGRES_DB= # Example: website
POSTGRES_USER= # Example: username
POSTGRES_HOST= # Example: postgres
POSTGRES_PORT= # Example: 5432
POSTGRES_PASSWORD= # Example: Passw0rd
CHANNEL_ID_NOTIF= # Example: myhiddenid
@@ -0,0 +1,2 @@
MONGO_INITDB_ROOT_USERNAME= # Example: username
MONGO_INITDB_ROOT_PASSWORD= # Example: Passw0rd
@@ -0,0 +1,3 @@
ME_CONFIG_BASICAUTH_USERNAME= # Example: username
ME_CONFIG_BASICAUTH_PASSWORD= # Example: Passw0rd
ME_CONFIG_MONGODB_URL= # Example: protocol://user:password@host:port/path
@@ -0,0 +1,3 @@
DISCORD_TOKEN= # Example: myhiddentoken
OPENAI_EMAIL= # Example: user.name@gmail.com
OPENAI_PASSWORD= # Example: Passw0rd
+26
View File
@@ -0,0 +1,26 @@
DJANKISERV_MAINDB_ENGINE= # Example: django.db.backends.postgresql
DJANKISERV_MAINDB_NAME= # Example: djankiserv
DJANKISERV_MAINDB_USER= # Example: username
DJANKISERV_MAINDB_PASSWORD= # Example: Passw0rd
DJANKISERV_MAINDB_HOST= # Example: postgres
DJANKISERV_MAINDB_PORT= # Example: 5432
DJANKISERV_USERDB_ENGINE= # Example: username
DJANKISERV_USERDB_NAME= # Example: username
DJANKISERV_USERDB_USER= # Example: username
DJANKISERV_USERDB_PASSWORD= # Example: Passw0rd
DJANKISERV_USERDB_HOST= # Example: username
DJANKISERV_USERDB_PORT= # Example: username
HOST= # Example: 0.0.0.0
PORT= # Example: 8000
DJANKISERV_DEBUG= # Example: True
# DJANKISERV_DATA_ROOT=/code/dataDJANKISERV_SECRET_KEY= # Example: myhiddenkey
# DJANKISERV_ALLOWED_HOSTS='djankiserv.marcpartensky.com'DJANKISERV_ALLOWED_HOSTS= # Example: "*"
DJANKISERV_HOSTS= # Example: djankiserv
DJANGO_DEBUG= # Example: 1
# DJANGO_ALLOWED_HOSTS="*,localhost"# ALLOWED_HOSTS="*,localhost"ALLOWED_HOSTS= # Example: *
DJANGO_SETTINGS_MODULE= # Example: djankiserv_api.settings
PYTHON_APP= # Example: /app/src
+8
View File
@@ -0,0 +1,8 @@
NODE_ENV= # Example: docker
ADMIN_NAME= # Example: marc
ADMIN_PASSWORD= # Example: Passw0rd
JWT_SECRET= # Example: myhiddensecret
DB_HOST= # Example: postgres
DB_USER= # Example: username
DB_PASSWORD= # Example: Passw0rd
DB_NAME= # Example: dockerdash
+28
View File
@@ -0,0 +1,28 @@
DISCORD_PREFIX= # Example: .
DISCORD_TOKEN= # Example: myhiddentoken
DISCORD_CLIENT_ID= # Example: myhiddenid
# DISCORD_MONGO_CLUSTER=discord-cluster-5ckni.mongodb.net/testDISCORD_MONGO_USERNAME= # Example: username
DISCORD_MONGO_CLUSTER= # Example: discord_bot_mongo
DISCORD_MONGO_PASSWORD= # Example: Passw0rd
WOLFRAM_ALPHA_ID= # Example: myhiddenid
FACEBOOK_MAIL= # Example: user.name@gmail.com
FACEBOOK_PASSWORD= # Example: Passw0rd
FACEBOOK_MAIL_2= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_2= # Example: Passw0rd
FACEBOOK_MAIL_MISCORD= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_MISCORD= # Example: Passw0rd
MISCORD_DASHBOARD_USERNAME= # Example: username
MISCORD_DASHBOARD_PASSWORD= # Example: Passw0rd
PYGITHUB_TOKEN= # Example: myhiddentoken
GITHUB_TOKEN= # Example: myhiddentoken
CAPTCHA_WEBSITE_KEY= # Example: myhiddenkey
CAPTCHA_SECRET_KEY= # Example: myhiddenkey
LEEKWARS_USERNAME= # Example: username
BRAWLSTARS_ID= # Example: myhiddenid
BRAWLSTARS_MAIL= # Example: user.name@gmail.com
BRAWLSTARS_PASSWORD= # Example: Passw0rd
BRAWLSTARS_TOKEN= # Example: myhiddentoken
DOCKER_API_URL= # Example: protocol://user:password@host:port/path
DISCORD_BOT_HOST= # Example: 0.0.0.0
DISCORD_BOT_PORT= # Example: 8000
SHORTENER_URL= # Example: protocol://user:password@host:port/path
+13
View File
@@ -0,0 +1,13 @@
DB_ENGINE= # Example: postgres
DATABASE_NAME= # Example: etesync
DATABASE_USER= # Example: username
DATABASE_HOST= # Example: postgres
DATABASE_PASSWORD= # Example: Passw0rd
DATABASE_PORT= # Example: 5432
SUPER_USER= # Example: username
SUPER_PASS= # Example: Passw0rd
SUPER_EMAIL= # Example: user.name@gmail.com
SECRET_KEY= # Example: myhiddenkey
DEBUG= # Example: False
AUTO_UPDATE= # Example: true
# ALLOWED_HOSTS=etesync.marcpartensky.fr,etesync.marcpartensky.comALLOWED_HOSTS= # Example: etesync.marcpartensky.fr
+14
View File
@@ -0,0 +1,14 @@
ADMIN_PASSWORD= # Example: Passw0rd
DB_TYPE= # Example: postgres
DB_USER= # Example: username
DB_HOST= # Example: postgres
DB_PORT= # Example: 5432
DB_PASS= # Example: Passw0rd
DB_NAME= # Example: etherpad
DB_CHARSET= # Example: utf8mb4
# REQUIRE_AUTHENTICATION=trueREQUIRE_AUTHENTICATION= # Example: false
# ne marche pasSSO_ISSUER= # Example: https://authentik.marcpartensky.com
ADMIN_CLIENT= # Example: myhiddensecret
ADMIN_SECRET= # Example: myhiddensecret
COMMIT_RATE_LIMIT_POINTS= # Example: 150
+12
View File
@@ -0,0 +1,12 @@
TZ= # Example: Europe/Paris
F2B_LOG_TARGET= # Example: STDOUT
F2B_LOG_LEVEL= # Example: INFO
F2B_DB_PURGE_AGE= # Example: 1d
SSMTP_HOST= # Example: smtp.gmail.com
SSMTP_PORT= # Example: 587
SSMTP_HOSTNAME= # Example: gmail.com
SSMTP_USER= # Example: username
SSMTP_PASSWORD= # Example: Passw0rd
SSMTP_TLS= # Example: YES
+6
View File
@@ -0,0 +1,6 @@
SYNCSERVER_PUBLIC_URL= # Example: protocol://user:password@host:port/path
SYNCSERVER_SECRET= # Example: myhiddensecret
SYNCSERVER_SQLURI= # Example: protocol://user:password@host:port/path
SYNCSERVER_BATCH_UPLOAD_ENABLED= # Example: true
SYNCSERVER_FORCE_WSGI_ENVIRON= # Example: false
PORT= # Example: 5000
+1
View File
@@ -0,0 +1 @@
MYSQL_ROOT_PASSWORD= # Example: Passw0rd
+1
View File
@@ -0,0 +1 @@
ADMIN_PASSWORD= # Example: Passw0rd
+8
View File
@@ -0,0 +1,8 @@
POSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
POSTGRES_DB= # Example: gitea
GITEA__database__TYPE= # Example: postgres
GITEA__database__HOST= # Example: postgres
GITEA__database__NAME= # Example: gitea
GITEA__database__USER= # Example: username
GITEA__database__PASSWD= # Example: Passw0rd
+7
View File
@@ -0,0 +1,7 @@
# SERVER_COUNTRIES: France# WireguardVPN_TYPE= # Example: 0.0.0.0
VPN_SERVICE_PROVIDER= # Example: myhiddenid
VPN_ENDPOINT_IP= # Example: 0.0.0.0
VPN_ENDPOINT_PORT= # Example: 0.0.0.0
WIREGUARD_PUBLIC_KEY= # Example: myhiddenkey
WIREGUARD_PRIVATE_KEY= # Example: myhiddenkey
WIREGUARD_ADDRESSES= # Example: 192.168.6.78/32
+40
View File
@@ -0,0 +1,40 @@
GF_INSTALL_PLUGINS= # Example: grafana-mqtt-datasource,redis-datasource,cloudflare-app
GF_SERVER_ROOT_URL= # Example: protocol://user:password@host:port/path
GF_SERVER_DOMAIN= # Example: grafana.marcpartensky.com
GF_SECURITY_ALLOW_EMBEDDING= # Example: protocol://user:password@host:port/path
GF_AUTH_ANONYMOUS_ENABLED= # Example: True
# GF_SERVER_SERVE_FROM_SUB_PATH=false# GF_SERVER_ENFORCE_DOMAIN=true# GF_REVERSE_PROXY_HEADERS_X_FORWARDED_PROTO=true# GF_REVERSE_PROXY_HEADER_X_FORWARDED_HOST=true
# PostgresGF_DATABASE_TYPE= # Example: postgres
GF_DATABASE_HOST= # Example: postgres
GF_DATABASE_NAME= # Example: grafana
GF_DATABASE_USER= # Example: username
GF_DATABASE_PASSWORD= # Example: Passw0rd
GF_DATABASE_SSL_MODE= # Example: disable
GF_AUTH_GENERIC_OAUTH_ENABLED= # Example: true
GF_AUTH_OAUTH_AUTO_LOGIN= # Example: true
GF_AUTH_GENERIC_OAUTH_NAME= # Example: Authentik
GF_AUTH_GENERIC_OAUTH_CLIENT_ID= # Example: myhiddenid
GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET= # Example: myhiddensecret
GF_AUTH_GENERIC_OAUTH_SCOPES= # Example: openid profile email
GF_AUTH_GENERIC_OAUTH_AUTH_URL= # Example: protocol://user:password@host:port/path
GF_AUTH_GENERIC_OAUTH_TOKEN_URL= # Example: myhiddentoken
GF_AUTH_GENERIC_OAUTH_API_URL= # Example: protocol://user:password@host:port/path
GF_AUTH_SIGNOUT_REDIRECT_URL= # Example: protocol://user:password@host:port/path
GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_PATH= # Example: "contains(groups, 'Grafana Admins') && 'Admin' || contains(groups, 'Grafana Editors') && 'Editor' || 'Viewer'"
# # Enable LDAP# GF_AUTH_LDAP_ENABLED=true
# # LDAP Server Configuration# GF_AUTH_LDAP_CONFIG_SERVERS_0_HOST=ldap# GF_AUTH_LDAP_CONFIG_SERVERS_0_PORT=389# GF_AUTH_LDAP_CONFIG_SERVERS_0_USE_SSL=false
# # Bind Credentials# GF_AUTH_LDAP_CONFIG_SERVERS_0_BIND_DN=cn=ldapservice,dc=ldap,dc=goauthentik,dc=io
# GF_AUTH_LDAP_CONFIG_SERVERS_0_SEARCH_FILTER=(cn=%s)# GF_AUTH_LDAP_CONFIG_SERVERS_0_SEARCH_BASE_DNS=dc=ldap,dc=goauthentik,dc=io
# # Group Mapping# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_0_GROUP_DN=cn=admins,ou=groups,dc=example,dc=com# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_0_ORG_ROLE=Admin# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_1_GROUP_DN=cn=editors,ou=groups,dc=example,dc=com# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_1_ORG_ROLE=Editor
+13
View File
@@ -0,0 +1,13 @@
DB_NAME= # Example: brainperformer
DB_USER= # Example: username
DB_PASSWORD= # Example: Passw0rd
DB_HOST= # Example: 0.0.0.0
RECAPTCHA_SECRET_KEY= # Example: myhiddenkey
MAIL= # Example: user.name@gmail.com
MAIL_PASSWORD= # Example: Passw0rd
MYSQL_DATABASE= # Example: brainperformer
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_ROOT_HOST= # Example: 0.0.0.0
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
+3
View File
@@ -0,0 +1,3 @@
ACCOUNT_EMAIL= # Example: user.name@gmail.com
ACCOUNT_PASSWORD= # Example: Passw0rd
DEVICE_NAME= # Example: vps
+29
View File
@@ -0,0 +1,29 @@
DISCORD_PREFIX= # Example: .
DISCORD_TOKEN= # Example: myhiddentoken
DISCORD_CLIENT_ID= # Example: myhiddenid
DISCORD_MONGO_CLUSTER= # Example: discord-cluster-5ckni.mongodb.net/test
DISCORD_MONGO_USERNAME= # Example: username
DISCORD_MONGO_PASSWORD= # Example: Passw0rd
# DISCORD_MONGO_CLUSTER=discord_bot_mongo/testWOLFRAM_ALPHA_ID= # Example: myhiddenid
FACEBOOK_MAIL= # Example: user.name@gmail.com
FACEBOOK_PASSWORD= # Example: Passw0rd
FACEBOOK_MAIL_2= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_2= # Example: Passw0rd
FACEBOOK_MAIL_MISCORD= # Example: user.name@gmail.com
FACEBOOK_PASSWORD_MISCORD= # Example: Passw0rd
MISCORD_DASHBOARD_USERNAME= # Example: username
MISCORD_DASHBOARD_PASSWORD= # Example: Passw0rd
PYGITHUB_TOKEN= # Example: myhiddentoken
GITHUB_TOKEN= # Example: myhiddentoken
CAPTCHA_WEBSITE_KEY= # Example: myhiddenkey
CAPTCHA_SECRET_KEY= # Example: myhiddenkey
LEEKWARS_USERNAME= # Example: username
BRAWLSTARS_ID= # Example: myhiddenid
BRAWLSTARS_MAIL= # Example: user.name@gmail.com
BRAWLSTARS_PASSWORD= # Example: Passw0rd
BRAWLSTARS_TOKEN= # Example: myhiddentoken
DOCKER_API_URL= # Example: protocol://user:password@host:port/path
DISCORD_BOT_HOST= # Example: 0.0.0.0
DISCORD_BOT_PORT= # Example: 8000
SHORTENER_URL= # Example: protocol://user:password@host:port/path
IALAB_URL= # Example: protocol://user:password@host:port/path
+2
View File
@@ -0,0 +1,2 @@
KEYCLOAK_ADMIN= # Example: myhiddenkey
KEYCLOAK_ADMIN_PASSWORD= # Example: Passw0rd
View File
+2
View File
@@ -0,0 +1,2 @@
LDAP_ADMIN_BIND_PWD= # Example: Passw0rd
LDAP_ADMIN_PASSWORD= # Example: Passw0rd
@@ -0,0 +1,2 @@
LDAP_ADMIN_PASSWORD= # Example: Passw0rd
LDAP_CONFIG_PASSWORD= # Example: Passw0rd
+122
View File
@@ -0,0 +1,122 @@
# mariadbMYSQL_ROOT_PASSWORD= # Example: Passw0rd
MYSQL_DATABASE= # Example: mailcow
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_INITDB_SKIP_TZINFO= # Example: 0.0.0.0
# ------------------------------# ------------------------------
MAILCOW_HOSTNAME= # Example: user.name@gmail.com
MAILCOW_PASS_SCHEME= # Example: Passw0rd
# ------------------------------# SQL database configuration# ------------------------------
DBNAME= # Example: mailcow
DBUSER= # Example: username
# Please use long, random alphanumeric strings (A-Za-z0-9)
DBPASS= # Example: Passw0rd
DBROOT= # Example: 8v5tSifRaAjLRVObkRbe1F0qjm11
# ------------------------------# HTTP/S Bindings# ------------------------------
# You should use HTTPS, but in case of SSL offloaded reverse proxies:# Might be important: This will also change the binding within the container.# If you use a proxy within Docker, point it to the ports you set below.# IMPORTANT: Do not use port 8081, 9081 or 65510!# Example: HTTP_BIND=1.2.3.4
HTTP_PORT= # Example: 80
HTTP_BIND=
HTTPS_PORT= # Example: 443
HTTPS_BIND=
# ------------------------------# Other bindings# ------------------------------# You should leave that alone# Format: 11.22.33.44:25 or 12.34.56.78:465 etc.
SMTP_PORT= # Example: 25
SMTPS_PORT= # Example: 465
SUBMISSION_PORT= # Example: 587
IMAP_PORT= # Example: 143
IMAPS_PORT= # Example: 993
POP_PORT= # Example: 110
POPS_PORT= # Example: 995
SIEVE_PORT= # Example: 4190
DOVEADM_PORT= # Example: 127.0.0.1:19991
SQL_PORT= # Example: 127.0.0.1:13306
SOLR_PORT= # Example: 127.0.0.1:18983
REDIS_PORT= # Example: 127.0.0.1:7654
# Your timezone# Use the row named 'TZ database name' + pay attention for 'Notes' row
TZ= # Example: Europe/Paris
# Fixed project name# Please use lowercase letters only
COMPOSE_PROJECT_NAME= # Example: mailcow
ACL_ANYONE= # Example: disallow
# Garbage collector cleanup# How long should objects remain in the garbage until they are being deleted? (value in minutes)
MAILDIR_GC_TIME= # Example: user.name@gmail.com
# Additional SAN for the certificate##ADDITIONAL_SAN=imap.*,smtp.*# This will expand the certificate to "imap.example.com", "smtp.example.com", "imap.example.net", "smtp.example.net"# plus every domain you add in the future.## You can also just add static names...#ADDITIONAL_SAN=srv1.example.net# ...or combine wildcard and static names:#ADDITIONAL_SAN=imap.*,srv1.example.com#
ADDITIONAL_SAN= # Example: marcpartensky.com
## You can understand this as server_name directive in Nginx.# Comma separated list without spaces! Example: ADDITIONAL_SERVER_NAMES=a.b.c,d.e.f
ADDITIONAL_SERVER_NAMES=
SKIP_LETS_ENCRYPT= # Example: 0.0.0.0
# Create seperate certificates for all domains - y/nENABLE_SSL_SNI= # Example: n
SKIP_IP_CHECK= # Example: 0.0.0.0
SKIP_HTTP_VERIFICATION= # Example: 0.0.0.0
SKIP_CLAMD= # Example: 0.0.0.0
SKIP_SOGO= # Example: 0.0.0.0
SKIP_SOLR= # Example: 0.0.0.0
# Solr heap size in MB, there is no recommendation, please see Solr docs.# Solr is a prone to run OOM and should be monitored. Unmonitored Solr setups are not recommended.
SOLR_HEAP= # Example: 1024
ALLOW_ADMIN_EMAIL_LOGIN= # Example: user.name@gmail.com
USE_WATCHDOG= # Example: y
# CAUTION:
WATCHDOG_NOTIFY_BAN= # Example: n
#WATCHDOG_SUBJECT=
# No data is collected. Opt-in and anonymous.WATCHDOG_EXTERNAL_CHECKS= # Example: n
# Enable watchdog verbose loggingWATCHDOG_VERBOSE= # Example: n
# Max log lines per service to keep in Redis logs
LOG_LINES= # Example: 9999
IPV4_NETWORK= # Example: 0.0.0.0
IPV6_NETWORK= # Example: 0.0.0.0
#SNAT_TO_SOURCE=
#SNAT6_TO_SOURCE=
#API_ALLOW_FROM=172.22.1.1,127.0.0.1
MAILDIR_SUB= # Example: user.name@gmail.com
# SOGo session timeout in minutesSOGO_EXPIRE_SESSION= # Example: 480
# LEAVE EMPTY IF UNSUREDOVECOT_MASTER_USER= # Example: username
# LEAVE EMPTY IF UNSUREDOVECOT_MASTER_PASS= # Example: Passw0rd
# Let's Encrypt registration contact information# Optional: Leave empty for none# This value is only used on first order!# Setting it at a later point will require the following steps:ACME_CONTACT=
# WebAuthn device manufacturer verification# After setting WEBAUTHN_ONLY_TRUSTED_VENDORS=y only devices from trusted manufacturers are allowedWEBAUTHN_ONLY_TRUSTED_VENDORS= # Example: n
+2
View File
@@ -0,0 +1,2 @@
MINIO_ROOT_USER= # Example: username
MINIO_ROOT_PASSWORD= # Example: Passw0rd
+8
View File
@@ -0,0 +1,8 @@
NODE_ENV= # Example: docker
ADMIN_NAME= # Example: marc
ADMIN_PASSWORD= # Example: Passw0rd
JWT_SECRET= # Example: myhiddensecret
DB_HOST= # Example: postgres
DB_USER= # Example: username
DB_PASSWORD= # Example: Passw0rd
DB_NAME= # Example: dockerdash
+1
View File
@@ -0,0 +1 @@
WALLET= # Example: 43J2XmRtjDPRLD35UsYGH2AZamFBQz7dt4VdvZXVm3SuadTrvcoXUXBRUNHqukFte23Q5TWXqhbwaLJJgoVQzzbe2AJDANQ
+2
View File
@@ -0,0 +1,2 @@
MONGO_INITDB_ROOT_USERNAME= # Example: username
MONGO_INITDB_ROOT_PASSWORD= # Example: Passw0rd
+7
View File
@@ -0,0 +1,7 @@
MONGODB_HOST= # Example: mongo
MONGODB_PORT= # Example: 27017
MONGODB_USER= # Example: username
MONGODB_PASS= # Example: Passw0rd
CRON_TIME= # Example: "0 5 * * *"
INIT_BACKUP= # Example: 1
# MAX_BACKUPS the number of backups to keep. When reaching the limit, the old backup will be discarded. No limit, by default
+3
View File
@@ -0,0 +1,3 @@
ME_CONFIG_MONGODB_URL= # Example: protocol://user:password@host:port/path
ME_CONFIG_AUTH_USERNAME= # Example: username
ME_CONFIG_AUTH_PASSWORD= # Example: Passw0rd
@@ -0,0 +1 @@
PBM_MONGODB_URI= # Example: protocol://user:password@host:port/path
+27
View File
@@ -0,0 +1,27 @@
N8N_HOST= # Example: 0.0.0.0
N8N_PORT= # Example: 5678
WEBHOOK_URL= # Example: protocol://user:password@host:port/path
DB_TYPE= # Example: postgresdb
DB_POSTGRESDB_HOST= # Example: postgres
DB_POSTGRESDB_PORT= # Example: 5432
DB_POSTGRESDB_DATABASE= # Example: n8n
DB_POSTGRESDB_USER= # Example: username
DB_POSTGRESDB_PASSWORD= # Example: Passw0rd
GENERIC_TIMEZONE= # Example: Europe/Paris
TZ= # Example: Europe/Paris
N8N_DIAGNOSTICS_ENABLED= # Example: false
N8N_VERSION_NOTIFICATIONS_ENABLED= # Example: false
N8N_TEMPLATES_ENABLED= # Example: false
N8N_BASIC_AUTH_ACTIVE= # Example: false
# N8N_PROTOCOL=${N8N_PROTOCOL}
EXECUTIONS_MODE= # Example: queue
QUEUE_BULL_REDIS_HOST= # Example: redis
QUEUE_HEALTH_CHECK_ACTIVE= # Example: true
N8N_ENCRYPTION_KEY= # Example: myhiddenkey
N8N_RUNNERS_ENABLED= # Example: true
+5
View File
@@ -0,0 +1,5 @@
POSTGRES_ROOT_PASSWORD= # Example: Passw0rd
POSTGRES_PASSWORD= # Example: Passw0rd
POSTGRES_DATABASE= # Example: nextcloud
POSTGRES_USER= # Example: username
POSTGRES_HOST= # Example: postgres
+1
View File
@@ -0,0 +1 @@
NC_DB= # Example: protocol://user:password@host:port/path
+52
View File
@@ -0,0 +1,52 @@
APP_NAME= # Example: "Numéris ISEP"
APP_ENV= # Example: production
APP_KEY= # Example: myhiddenkey
APP_DEBUG= # Example: false
APP_URL= # Example: protocol://user:password@host:port/path
FRONT_APP_URL= # Example: protocol://user:password@host:port/path
production= # Example: 1
LOG_CHANNEL= # Example: stack
DB_CONNECTION= # Example: mysql
DB_HOST= # Example: numeris_mysql
DB_PORT= # Example: 3306
DB_DATABASE= # Example: numeris
DB_USERNAME= # Example: username
DB_PASSWORD= # Example: Passw0rd
MYSQL_ROOT_PASSWORD= # Example: Passw0rd
PMA_HOST= # Example: numeris_mysql
PMA_USER= # Example: username
PMA_PASSWORD= # Example: Passw0rd
BROADCAST_DRIVER= # Example: log
CACHE_DRIVER= # Example: file
SESSION_DRIVER= # Example: file
SESSION_LIFETIME= # Example: 120
QUEUE_DRIVER= # Example: sync
REDIS_HOST= # Example: 127.0.0.1
REDIS_PASSWORD= # Example: Passw0rd
REDIS_PORT= # Example: 6379
MAIL_DRIVER= # Example: user.name@gmail.com
MAIL_HOST= # Example: user.name@gmail.com
MAIL_PORT= # Example: user.name@gmail.com
MAIL_USERNAME= # Example: user.name@gmail.com
MAIL_PASSWORD= # Example: Passw0rd
MAIL_ENCRYPTION= # Example: user.name@gmail.com
MAIL_FROM_ADDRESS= # Example: user.name@gmail.com
MAIL_FROM_NAME= # Example: user.name@gmail.com
PUSHER_APP_ID= # Example: myhiddenid
PUSHER_APP_KEY= # Example: myhiddenkey
PUSHER_APP_SECRET= # Example: myhiddensecret
PUSHER_APP_CLUSTER= # Example: mt1
MIX_PUSHER_APP_KEY= # Example: myhiddenkey
MIX_PUSHER_APP_CLUSTER= # Example: "${PUSHER_APP_CLUSTER}"
JWT_SECRET= # Example: myhiddensecret
GOOGLE_RECAPTCHA_KEY= # Example: myhiddenkey
GOOGLE_RECAPTCHA_SECRET= # Example: myhiddensecret
+4
View File
@@ -0,0 +1,4 @@
LDAP_ADMIN_USERNAME= # Example: username
LDAP_ADMIN_PASSWORD= # Example: Passw0rd
LDAP_USERS= # Example: username
LDAP_PASSWORDS= # Example: Passw0rd
+1
View File
@@ -0,0 +1 @@
VPN= # Example: 0.0.0.0
+122
View File
@@ -0,0 +1,122 @@
# –––––––––––––––– REQUIRED ––––––––––––––––
NODE_ENV= # Example: production
# in your terminal to generate a random value.SECRET_KEY= # Example: myhiddenkey
# `openssl rand -hex 32` in your terminal to produce this.UTILS_SECRET= # Example: myhiddensecret
# For production point these at your databases, in development the default# should work out of the box.DATABASE_URL= # Example: protocol://user:password@host:port/path
DATABASE_CONNECTION_POOL_MIN=
DATABASE_CONNECTION_POOL_MAX=
# Uncomment this to disable SSL for connecting to PostgresPGSSLMODE= # Example: disable
REDIS_URL= # Example: protocol://user:password@host:port/path
# use a base64 encoded JSON connection option object. Refer to the ioredis documentation# for a list of available options.# Example: Use Redis Sentinel for high availability# {"sentinels":[{"host":"sentinel-0","port":26379},{"host":"sentinel-1","port":26379}],"name":"mymaster"}
URL= # Example: protocol://user:password@host:port/path
PORT= # Example: 3000
# See [documentation](docs/SERVICES.md) on running a separate collaboration# server, for normal operation this does not need to be set.COLLABORATION_URL= # Example: protocol://user:password@host:port/path
# Specify what storage system to use. Possible value is one of "s3" or "local".# For "local", the avatar images and document attachments will be saved on local disk.FILE_STORAGE= # Example: local
# If "local" is configured for FILE_STORAGE above, then this sets the parent directory under# which all attachments/images go. Make sure that the process has permissions to create# this path and also to write files to it.FILE_STORAGE_LOCAL_ROOT_DIR= # Example: /var/lib/outline/data
# Maximum allowed size for the uploaded attachment.FILE_STORAGE_UPLOAD_MAX_SIZE= # Example: 262144000
# than the document attachment maximum size.FILE_STORAGE_IMPORT_MAX_SIZE=
# and the files are temporary being automatically deleted after a period of time.FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE=
# To support uploading of images for avatars and document attachments in a distributed# architecture an s3-compatible storage can be configured if FILE_STORAGE=s3 above.AWS_ACCESS_KEY_ID= # Example: myhiddenid
AWS_SECRET_ACCESS_KEY= # Example: myhiddenkey
AWS_REGION= # Example: xx-xxxx-x
AWS_S3_ACCELERATE_URL= # Example: protocol://user:password@host:port/path
AWS_S3_UPLOAD_BUCKET_URL= # Example: protocol://user:password@host:port/path
AWS_S3_UPLOAD_BUCKET_NAME= # Example: bucket_name_here
AWS_S3_FORCE_PATH_STYLE= # Example: true
AWS_S3_ACL= # Example: private
# –––––––––––––– AUTHENTICATION ––––––––––––––
# Third party signin credentials, at least ONE OF EITHER Google, Slack,# or Microsoft is required for a working installation or you'll have no sign-in# options.
# To configure Slack auth, you'll need to create an Application at# => https://api.slack.com/apps#SLACK_CLIENT_ID= # Example: myhiddenid
SLACK_CLIENT_SECRET= # Example: myhiddensecret
# => https://console.cloud.google.com/apis/credentials#GOOGLE_CLIENT_ID= # Example: myhiddenid
GOOGLE_CLIENT_SECRET= # Example: myhiddensecret
# => https://wiki.generaloutline.com/share/dfa77e56-d4d2-4b51-8ff8-84ea6608faa4AZURE_CLIENT_ID= # Example: myhiddenid
AZURE_CLIENT_SECRET= # Example: myhiddensecret
AZURE_RESOURCE_APP_ID= # Example: myhiddenid
OIDC_CLIENT_ID= # Example: myhiddenid
OIDC_CLIENT_SECRET= # Example: myhiddenid
OIDC_AUTH_URI= # Example: myhiddenid
OIDC_TOKEN_URI= # Example: myhiddenid
OIDC_USERINFO_URI= # Example: myhiddenid
OIDC_LOGOUT_URI= # Example: myhiddenid
OIDC_USERNAME_CLAIM= # Example: myhiddenid
OIDC_DISPLAY_NAME= # Example: myhiddenid
OIDC_SCOPES= # Example: myhiddenid
OIDC_USERNAME_CLAIM= # Example: myhiddenid
OIDC_DISPLAY_NAME= # Example: myhiddenid
# Space separated auth scopes.
# To configure the GitHub integration, you'll need to create a GitHub App at# => https://github.com/settings/apps#GITHUB_CLIENT_ID= # Example: myhiddenid
GITHUB_CLIENT_SECRET= # Example: myhiddensecret
GITHUB_APP_NAME=
GITHUB_APP_ID= # Example: myhiddenid
GITHUB_APP_PRIVATE_KEY= # Example: myhiddenkey
# To configure Discord auth, you'll need to create a Discord Application at# => https://discord.com/developers/applications/#DISCORD_CLIENT_ID= # Example: myhiddenid
DISCORD_CLIENT_SECRET= # Example: myhiddensecret
# integrated with.# metadata such as nicknames, server icon and name.DISCORD_SERVER_ID= # Example: myhiddenid
# allowed to access Outline. If this is not set, all members of the server# will be allowed to access Outline.DISCORD_SERVER_ROLES=
# –––––––––––––––– OPTIONAL ––––––––––––––––
# required if you do not use an external reverse proxy. See documentation:# https://wiki.generaloutline.com/share/1c922644-40d8-41fe-98f9-df2b67239d45SSL_KEY= # Example: myhiddenkey
SSL_CERT=
# If using a Cloudfront/Cloudflare distribution or similar it can be set below.CDN_URL= # Example: protocol://user:password@host:port/path
# Auto-redirect to https in production. The default is true but you may set to# false if you can be sure that SSL is terminated at an external loadbalancer.FORCE_HTTPS= # Example: true
# Have the installation check for updates by sending anonymized statistics to# the maintainersENABLE_UPDATES= # Example: true
# available memory by 512 for a rough estimateWEB_CONCURRENCY= # Example: 1
# You can remove this line if your reverse proxy already logs incoming http# requests and this ends up being duplicativeDEBUG= # Example: http
# Configure lowest severity level for server logs. Should be one of# error, warn, info, http, verbose, debug and sillyLOG_LEVEL= # Example: info
# For a complete Slack integration with search and posting to channels the# following configs are also needed, some more details# => https://wiki.generaloutline.com/share/be25efd1-b3ef-4450-b8e5-c4a4fc11e02a#SLACK_VERIFICATION_TOKEN= # Example: myhiddentoken
SLACK_APP_ID= # Example: myhiddenid
SLACK_MESSAGE_ACTIONS= # Example: true
# and do not forget to whitelist your domain name in the app settingsDROPBOX_APP_KEY= # Example: myhiddenkey
# Optionally enable Sentry (sentry.io) to track errors and performance,SENTRY_DSN=
SENTRY_TUNNEL=
SMTP_HOST=
SMTP_PORT=
SMTP_USERNAME= # Example: username
SMTP_PASSWORD= # Example: Passw0rd
SMTP_FROM_EMAIL= # Example: user.name@gmail.com
SMTP_REPLY_EMAIL= # Example: user.name@gmail.com
SMTP_TLS_CIPHERS= # Example: 0.0.0.0
SMTP_SECURE= # Example: true
# The default interface language. See translate.getoutline.com for a list of# available language codes and their rough percentage translated.# DEFAULT_LANGUAGE=en_USDEFAULT_LANGUAGE= # Example: fr_FR
# Optionally enable rate limiter at application web serverRATE_LIMITER_ENABLED= # Example: true
# Configure default throttling parameters for rate limiterRATE_LIMITER_REQUESTS= # Example: 1000
RATE_LIMITER_DURATION_WINDOW= # Example: 60
# Iframely API configIFRAMELY_URL= # Example: protocol://user:password@host:port/path
IFRAMELY_API_KEY= # Example: myhiddenkey
+8
View File
@@ -0,0 +1,8 @@
WORDPRESS_DB_HOST= # Example: oxivia_mysql
WORDPRESS_DB_NAME= # Example: oxivia
WORDPRESS_DB_USER= # Example: username
WORDPRESS_DB_PASSWORD= # Example: Passw0rd
MYSQL_DATABASE= # Example: oxivia
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
+5
View File
@@ -0,0 +1,5 @@
FLASK_APP= # Example: /app/server.py
FLASK_ENV= # Example: debug
FLASK_DEBUG= # Example: 1
FLASK_HOST= # Example: pandoc
FLASK_PORT= # Example: 80
+3
View File
@@ -0,0 +1,3 @@
EMAIL= # Example: user.name@gmail.com
PASSWORD= # Example: Passw0rd
DEVICE_NAME= # Example: contabo
+25
View File
@@ -0,0 +1,25 @@
# Database / Postgres service configurationPOSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
# Postgres database name "peertube"POSTGRES_DB= # Example: peertube
# Editable only with a suffix :#POSTGRES_DB=peertube_prod#PEERTUBE_DB_SUFFIX=_prodPEERTUBE_DB_USERNAME= # Example: username
PEERTUBE_DB_PASSWORD= # Example: Passw0rd
PEERTUBE_DB_SSL= # Example: false
# Default to Postgres service name "postgres" in docker-compose.ymlPEERTUBE_DB_HOSTNAME= # Example: postgres
# Server configurationPEERTUBE_WEBSERVER_HOSTNAME= # Example: peertube.marcpartensky.fr
# If you do not use https and a reverse-proxy in docker-compose.ymlPEERTUBE_WEBSERVER_PORT= # Example: 80
PEERTUBE_WEBSERVER_HTTPS= # Example: false
PEERTUBE_TRUST_PROXY= # Example: ["127.0.0.1", "loopback", "172.16.0.0/12", "192.168.0.0/16", "10.0.0.0/8"]
# If you use a Custom SMTP server# Default to Postfix service name "postfix" in docker-compose.yml# May be the hostname of your Custom SMTP serverPEERTUBE_SMTP_HOSTNAME= # Example: marcpartensky.com
PEERTUBE_SMTP_PORT= # Example: 25
PEERTUBE_SMTP_FROM= # Example: noreply@marcpartensky.com
PEERTUBE_SMTP_TLS= # Example: false
PEERTUBE_SMTP_DISABLE_STARTTLS= # Example: false
PEERTUBE_ADMIN_EMAIL= # Example: user.name@gmail.com
# Postfix service configurationPOSTFIX_myhostname= # Example: marcpartensky.com
OPENDKIM_DOMAINS= # Example: marcpartensky.com
# see https://github.com/wader/postfix-relay/pull/18OPENDKIM_RequireSafeKeys= # Example: myhiddenkey
# /!\ Prefer to use the PeerTube admin interface to set the following configurations /!\#PEERTUBE_SIGNUP_ENABLED=true#PEERTUBE_TRANSCODING_ENABLED=true#PEERTUBE_CONTACT_FORM_ENABLED=truePEERTUBE_SECRET= # Example: myhiddensecret
+5
View File
@@ -0,0 +1,5 @@
POSTGRES_USER= # Example: username
POSTGRES_PASS= # Example: Passw0rd
POSTGRES_PORT= # Example: 5432
POSTGRES_HOST= # Example: postgres
# DBLISTCRON_SCHEDULE= # Example: "0 5 * * *"
+2
View File
@@ -0,0 +1,2 @@
PGADMIN_DEFAULT_EMAIL= # Example: user.name@gmail.com
PGADMIN_DEFAULT_PASSWORD= # Example: Passw0rd
+10
View File
@@ -0,0 +1,10 @@
POSTGRES_HOST= # Example: postgres
POSTGRES_DB= # Example: authentik dockerdash etesync etherpad focalboard gitea grafana matrix nextcloud owncloud peertube postgres vaultwarden wallabag website wger
POSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
POSTGRES_EXTRA_OPTS= # Example: -Z6 --schema=public --blobs
SCHEDULE= # Example: @daily
BACKUP_KEEP_DAYS= # Example: 7
BACKUP_KEEP_WEEKS= # Example: 4
BACKUP_KEEP_MONTHS= # Example: 6
HEALTHCHECK_PORT= # Example: 8080
+1
View File
@@ -0,0 +1 @@
DATABASE_URL= # Example: protocol://user:password@host:port/path
+3
View File
@@ -0,0 +1,3 @@
POSTGRES_DB= # Example: website
POSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
+3
View File
@@ -0,0 +1,3 @@
PGRST_DB_URI= # Example: protocol://user:password@host:port/path
PGRST_DB_SCHEMA= # Example: public
PGRST_DB_ANON_ROLE= # Example: izitdone
+2
View File
@@ -0,0 +1,2 @@
MONGO_INITDB_ROOT_USERNAME= # Example: username
MONGO_INITDB_ROOT_PASSWORD= # Example: Passw0rd
+3
View File
@@ -0,0 +1,3 @@
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_ROOT_PASSWORD= # Example: Passw0rd
DB_PASSWORD= # Example: Passw0rd
+2
View File
@@ -0,0 +1,2 @@
REGISTRY_HTTP_SECRET= # Example: myhiddensecret
+2
View File
@@ -0,0 +1,2 @@
RP_EMAIL= # Example: user.name@gmail.com
RP_PASSWORD= # Example: Passw0rd
+30
View File
@@ -0,0 +1,30 @@
# POSTGRES_HOST=postgres# POSTGRES_PORT=5432# POSTGRES_DB=postgres# POSTGRES_SSL_CERT=
PUBLIC_URL= # Example: protocol://user:password@host:port/path
__DEV__CLIENT_URL= # Example: myhiddensecret
# NODE_ENV=productionNODE_ENV= # Example: development
PORT= # Example: 3000
# PrinterCHROME_TOKEN= # Example: myhiddentoken
TOKEN= # Example: myhiddentoken
CHROME_URL= # Example: protocol://user:password@host:port/path
# RedisREDIS_URL= # Example: protocol://user:password@host:port/path
# PostgresDATABASE_URL= # Example: protocol://user:password@host:port/path
SECRET_KEY= # Example: myhiddenkey
ACCESS_TOKEN_SECRET= # Example: myhiddentoken
REFRESH_TOKEN_SECRET= # Example: myhiddentoken
JWT_SECRET= # Example: myhiddensecret
JWT_EXPIRY_TIME= # Example: 604800
STORAGE_BUCKET= # Example: default
# STORAGE_REGION=# STORAGE_ENDPOINT=# STORAGE_USE_SSL=false# PDF_DELETION_TIME=## -- Storage (Minio) --STORAGE_URL= # Example: protocol://user:password@host:port/path
STORAGE_ENDPOINT= # Example: minio
STORAGE_PORT= # Example: 9000
# STORAGE_REGION: us-east-1 # OptionalSTORAGE_BUCKET= # Example: resume
STORAGE_ACCESS_KEY= # Example: myhiddenkey
STORAGE_SECRET_KEY= # Example: myhiddenkey
STORAGE_USE_SSL= # Example: false
+7
View File
@@ -0,0 +1,7 @@
MYSQL_HOST= # Example: 192.168.0.145
MYSQL_DATABASE= # Example: prospectix
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
DATA_PATH= # Example: "data.yaml"
SCHTROUMPFIX_JS= # Example: "schtroumpfix.js"
+10
View File
@@ -0,0 +1,10 @@
# dbMYSQL_ROOT_PASSWORD= # Example: Passw0rd
MYSQL_LOG_CONSOLE= # Example: true
# seafileDB_HOST= # Example: db
DB_ROOT_PASSWD= # Example: Passw0rd
# # Optional, default is UTC. Should be uncomment and set to your local time zone.TIME_ZONE= # Example: Europe/Paris
SEAFILE_ADMIN_EMAIL= # Example: user.name@gmail.com
SEAFILE_ADMIN_PASSWORD= # Example: Passw0rd
# Whether to use https or not.SEAFILE_SERVER_LETSENCRYPT= # Example: false
# Specifies your host name if https is enabled.SEAFILE_SERVER_HOSTNAME= # Example: seafile.marcpartensky.com
+29
View File
@@ -0,0 +1,29 @@
# This is a template dotenv file. You should copy it and then modify it to fit# your setup. These environment variables won't do anything unless copied into# a file called `.env.test`. There, they'll be used to determine information# about the test environment.## This is useful because we want the test environment to have a different# configuration from the development environment. That way, we can run# the automated test suites without worrying about their impact on the database# we use for development.## For more information, see the Automated Testing Documentation.# https://docs.suitecrm.com/developer/automatedtesting/
#== Install Test Suite:
# MYSQL or MSSQLDATABASE_DRIVER= # Example: MYSQL
# Path to database serverDATABASE_HOST= # Example: localhost
# Name of the databaseDATABASE_NAME= # Example: automated_tests
DATABASE_USER= # Example: username
DATABASE_PASSWORD= # Example: Passw0rd
#== Acceptance, API, and Install Test Suites:
INSTANCE_URL= # Example: protocol://user:password@host:port/path
INSTANCE_ADMIN_USER= # Example: username
INSTANCE_ADMIN_PASSWORD= # Example: Passw0rd
#== API Test Suite:
INSTANCE_CLIENT_ID= # Example: myhiddenid
INSTANCE_CLIENT_SECRET= # Example: myhiddensecret
# Default web browser for acceptance and install testsBROWSER= # Example: chrome
# Webdriver hostname (Selenium, Local or Cloud Testing)WEBDRIVER_HOST= # Example: 127.0.0.1
# Webdriver port (Selenium, Local or Cloud Testing)WEBDRIVER_PORT= # Example: 4444
+5
View File
@@ -0,0 +1,5 @@
SYNC_HOST= # Example: 0.0.0.0
SYNC_MASTER_SECRET= # Example: myhiddensecret
SYNC_TOKENSERVER__DATABASE_URL= # Example: myhiddentoken
SYNC_TOKENSERVER__RUN_MIGRATIONS= # Example: myhiddentoken
SYNC_DATABASE_URL= # Example: protocol://user:password@host:port/path
+5
View File
@@ -0,0 +1,5 @@
TABLEAU_USERNAME= # Example: username
TABLEAU_PASSWORD= # Example: Passw0rd
TSM_REMOTE_UID= # Example: myhiddenid
TSM_REMOTE_USERNAME= # Example: username
LICENSE_KEY= # Example: myhiddenkey
+114
View File
@@ -0,0 +1,114 @@
#!/usr/bin/env python
import os
import glob
url = "protocol://user:password@host:port/path"
ip = "0.0.0.0"
mail = "user.name@gmail.com"
user = "username"
password = "Passw0rd"
id = "myhiddenid"
key = "myhiddenkey"
token = "myhiddentoken"
secret = "myhiddensecret"
secret_keywords = {
"password": password,
"pass": password,
"pwd": password,
"pw": password,
"id": id,
"key": key,
"token": token,
"client": secret,
"secret": secret,
"url": url,
"uri": url,
"nc_db": url,
"ip": ip,
"vpn": ip,
"mail": mail,
"user": user,
}
def create_template_from_env_file(
file_path,
):
"""
Crée un fichier template à partir d'un fichier .env.
Pour chaque variable, si la clé ne contient pas de mot sensible, la valeur est affichée en commentaire.
Sinon, seule la clé est indiquée avec une valeur vide.
"""
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
template_lines = []
for line in lines:
sensitive = False
stripped = line.strip()
# Conserver les lignes vides
if not stripped:
template_lines.append(line)
continue
# If it is a comment
if stripped.startswith("#"):
# that doesn't contain sensitive information
for keyword in secret_keywords.keys():
if keyword in stripped.lower():
sensitive = True
break
# then add it
if not sensitive:
template_lines.append(stripped)
continue
# If not a comment and doesnt contain "=" it is an error dont add the line but print it
if "=" not in stripped:
print("Error:", file_path, stripped)
continue
# Traiter les lignes de variables
key, value = line.split("=", 1)
key_part = key.strip()
value_part = value.split('#')[0].strip() # Ignorer les commentaires en fin de ligne
# Vérifier si la clé contient un mot sensible
for keyword in secret_keywords.keys():
if keyword in key_part.lower():
sensitive = True
break
if sensitive:
template_lines.append(f"{key_part}= # Example: {secret_keywords[keyword]}\n")
continue
# Si la clé ne contient pas de mot sensible
if value_part:
template_lines.append(f"{key_part}= # Example: {value_part}\n")
else:
template_lines.append(f"{key_part}=\n")
# Générer le nom du fichier template
base_name = os.path.basename(file_path)
file_name = base_name.split('.')[0]
template_file = f"{file_name}.template.env"
with open(template_file, 'w', encoding='utf-8') as f:
f.writelines(template_lines)
print(f"{template_file}")
def main():
# Rechercher tous les fichiers .env sauf les templates existants
env_files = glob.glob("*.env")
for file in env_files:
if not file.endswith(".template.env"):
create_template_from_env_file(file)
if __name__ == "__main__":
main()
+13
View File
@@ -0,0 +1,13 @@
TIMEASSISTANT_NEXTCLOUD_URL= # Example: protocol://user:password@host:port/path
TIMEASSISTANT_NEXTCLOUD_USER= # Example: username
TIMEASSISTANT_NEXTCLOUD_PASSWORD= # Example: Passw0rd
TIMEASSISTANT_NEXTCLOUD_BOARD= # Example: "-Todolist"
GRANIAN_RELOAD= # Example: 0
GRANIAN_INTERFACE= # Example: asgi
GRANIAN_HOST= # Example: 0.0.0.0
GRANIAN_PORT= # Example: 8000
GRANIAN_LOGLEVEL= # Example: info
GRANIAN_LOG_ACCESS_ENABLED= # Example: 1
+4
View File
@@ -0,0 +1,4 @@
POSTGRES_DB= # Example: todoapp
POSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
# POSTGRES_PORT=5432
+16
View File
@@ -0,0 +1,16 @@
TRAEFIK_PROVIDERS_DOCKER= # Example: myhiddenid
TRAEFIK_PROVIDERS_FILE_FILENAME= # Example: myhiddenid
CLOUDFLARE_DNS_API_TOKEN= # Example: myhiddentoken
CLOUDFLARE_ZONE_API_TOKEN= # Example: myhiddentoken
TRAEFIK_API_INSECURE= # Example: false
TRAEFIK_API_DASHBOARD= # Example: true
## API Settings - https://docs.traefik.io/operations/api/, endpoints - https://docs.traefik.io/operations/api/#endpoints ##TRAEFIK_API_DEBUG= # Example: true
TRAEFIK_ENTRYPOINT_WEB_ADDRESS= # Example: :80
TRAEFIK_ENTRYPOINT_WEBSECURE_ADDRESS= # Example: :443
TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_TLSCHALLENGE= # Example: true
TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_EMAIL= # Example: user.name@gmail.com
TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_STORAGE= # Example: /letsencrypt/acme.json
TRAEFIK_LOG_LEVEL= # Example: DEBUG
## Entrypoints Settings - https://docs.traefik.io/routing/entrypoints/#configuration ##TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_TO= # Example: websecure
TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_SCHEME= # Example: https
TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_PERMANENT= # Example: true
+1
View File
@@ -0,0 +1 @@
TOKEN= # Example: myhiddentoken
+1
View File
@@ -0,0 +1 @@
SECRET_KEY= # Example: myhiddenkey
+75
View File
@@ -0,0 +1,75 @@
ADMIN_TOKEN= # Example: myhiddentoken
DATABASE_URL= # Example: protocol://user:password@host:port/path
WEBSOCKET_ENABLED= # Example: true
WEBSOCKET_ADDRESS= # Example: 0.0.0.0
WEBSOCKET_PORT= # Example: 3012
# shellcheck disable=SC2034,SC2148## Vaultwarden Configuration File## Uncomment any of the following lines to change the defaults###### By default, Vaultwarden expects for this file to be named ".env" and located## in the current working directory. If this is not the case, the environment## variable ENV_FILE can be set to the location of this file prior to starting## Vaultwarden.
## Main data folder# DATA_FOLDER=data
## When using SQLite, this is the path to the DB file, default to %DATA_FOLDER%/db.sqlite3## Details: https://docs.diesel.rs/diesel/mysql/struct.MysqlConnection.html## Details:## - https://docs.diesel.rs/diesel/pg/struct.PgConnection.html## - https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING
## Database max connections## Define the size of the connection pool used for connecting to the database.# DATABASE_MAX_CONNS=10
## Database connection initialization## Allows SQL statements to be run whenever a new database connection is created.## This is mainly useful for connection-scoped pragmas.## If empty, a database-specific default is used:## - SQLite: "PRAGMA busy_timeout = 5000; PRAGMA synchronous = NORMAL;"## - MySQL: ""## - PostgreSQL: ""# DATABASE_CONN_INIT=""
# ICON_CACHE_FOLDER=data/icon_cache# ATTACHMENTS_FOLDER=data/attachments# SENDS_FOLDER=data/sends# TMP_FOLDER=data/tmp
## Templates data folder, by default uses embedded templates## Check source code to see the format# TEMPLATES_FOLDER=/path/to/templates## Automatically reload the templates for every request, slow, use only for development# RELOAD_TEMPLATES=false
## Cache time-to-live for successfully obtained icons, in seconds (0 is "forever")# ICON_CACHE_TTL=2592000## Cache time-to-live for icons which weren't available, in seconds (0 is "forever")# ICON_CACHE_NEGTTL=259200
## Web vault settings# WEB_VAULT_FOLDER=web-vault/# WEB_VAULT_ENABLED=true
## Enables websocket notifications# WEBSOCKET_ENABLED=false
## Controls the WebSocket server address and port# WEBSOCKET_ADDRESS=0.0.0.0# WEBSOCKET_PORT=3012
## To control this on a per-org basis instead, use the "Disable Send" org policy.# SENDS_ALLOWED=true
# EMERGENCY_ACCESS_ALLOWED=true
## Controls whether event logging is enabled for organizations## This setting applies to organizations.## Disabled by default. Also check the EVENT_CLEANUP_SCHEDULE and EVENTS_DAYS_RETAIN settings.# ORG_EVENTS_ENABLED=false
## Number of days to retain events stored in the database.## If unset (the default), events are kept indefinitely and the scheduled job is disabled!# EVENTS_DAYS_RETAIN=
## BETA FEATURE: Groups## Controls whether group support is enabled for organizations## This setting applies to organizations.## Disabled by default because this is a beta feature, it contains known issues!## KNOW WHAT YOU ARE DOING!# ORG_GROUPS_ENABLED=false
## Job scheduler settings#### Job schedules use a cron-like syntax (as parsed by https://crates.io/crates/cron),## and are always in terms of UTC time (regardless of your local time zone settings).#### The schedule format is a bit different from crontab as crontab does not contains seconds.## You can test the the format here: https://crontab.guru, but remove the first digit!## SEC MIN HOUR DAY OF MONTH MONTH DAY OF WEEK## "0 30 9,12,15 1,15 May-Aug Mon,Wed,Fri"## "0 30 * * * * "## "0 30 1 * * * "#### How often (in ms) the job scheduler thread checks for jobs that need running.## Set to 0 to globally disable scheduled jobs.# JOB_POLL_INTERVAL_MS=30000#### Cron schedule of the job that checks for Sends past their deletion date.# SEND_PURGE_SCHEDULE="0 5 * * * *"#### Cron schedule of the job that checks for trashed items to delete permanently.# TRASH_PURGE_SCHEDULE="0 5 0 * * *"#### Cron schedule of the job that checks for incomplete 2FA logins.## Defaults to once every minute. Set blank to disable this job.# INCOMPLETE_2FA_SCHEDULE="30 * * * * *"#### Cron schedule of the job that sends expiration reminders to emergency access grantors.# EMERGENCY_NOTIFICATION_REMINDER_SCHEDULE="0 3 * * * *"#### Cron schedule of the job that grants emergency access requests that have met the required wait time.# EMERGENCY_REQUEST_TIMEOUT_SCHEDULE="0 7 * * * *"#### Cron schedule of the job that cleans old events from the event table.## Defaults to daily. Set blank to disable this job. Also without EVENTS_DAYS_RETAIN set, this job will not start.# EVENT_CLEANUP_SCHEDULE="0 10 0 * * *"
## Enable extended logging, which shows timestamps and targets in the logs# EXTENDED_LOGGING=true
## Timestamp format used in extended logging.## Format specifiers: https://docs.rs/chrono/latest/chrono/format/strftime# LOG_TIMESTAMP_FORMAT="%Y-%m-%d %H:%M:%S.%3f"
## Logging to file# LOG_FILE=/path/to/log
## Logging to Syslog## This requires extended logging# USE_SYSLOG=false
## Log level## Change the verbosity of the log output## Setting it to "trace" or "debug" would also show logs for mounted## routes and static file, websocket and alive requests# LOG_LEVEL=Info
## Enable WAL for the DB## Note that if the DB already has WAL enabled, you will also need to disable WAL in the DB,## this setting only prevents Vaultwarden from automatically enabling it on start.## Please read project wiki page about this setting first before changing the value as it can## cause performance degradation or might render the service unable to start.# ENABLE_DB_WAL=true
## Database connection retries# DB_CONNECTION_RETRIES=15
## Icon service## The predefined icon services are: internal, bitwarden, duckduckgo, google.## which is replaced with the domain. For example: `https://icon.example.com/domain/{}`.#### `internal` refers to Vaultwarden's built-in icon fetching implementation.## If an external service is set, an icon request to Vaultwarden will return an HTTP## redirect to the corresponding icon at the external service. An external service may## be useful if your Vaultwarden instance has no external network connectivity, or if## you are concerned that someone may probe your instance to try to detect whether icons## for certain sites have been cached.# ICON_SERVICE=internal
## Icon redirect code## The HTTP status code to use for redirects to an external icon service.## The supported codes are 301 (legacy permanent), 302 (legacy temporary), 307 (temporary), and 308 (permanent).## Temporary redirects are useful while testing different icon services, but once a service# ICON_REDIRECT_CODE=302
## Disable icon downloading## Set to true to disable icon downloading in the internal icon service.## This still serves existing icons from $ICON_CACHE_FOLDER, without generating any external## network requests. $ICON_CACHE_TTL must also be set to 0; otherwise, the existing icons## will be deleted eventually, but won't be downloaded again.# DISABLE_ICON_DOWNLOAD=false
## Icon download timeout## Configure the timeout value when downloading the favicons.## The default is 10 seconds, but this could be to low on slower network connections# ICON_DOWNLOAD_TIMEOUT=10
## Icon blacklist Regex## NOTE: Always enclose this regex withing single quotes!# ICON_BLACKLIST_REGEX='^(192\.168\.0\.[0-9]+|192\.168\.1\.[0-9]+)$'
## Disable 2FA remember## Note that the checkbox would still be present, but ignored.# DISABLE_2FA_REMEMBER=false
# SIGNUPS_ALLOWED=true
# SIGNUPS_VERIFY=false
## If SIGNUPS_VERIFY is set to true, this limits how many seconds after the last time# SIGNUPS_VERIFY_RESEND_TIME=3600
# SIGNUPS_VERIFY_RESEND_LIMIT=6
## even if SIGNUPS_ALLOWED is set to false# SIGNUPS_DOMAINS_WHITELIST=example.com,example.net,example.org
## One option is to use 'openssl rand -base64 48'## If not set, the admin panel is disabled
## meant to be used with the use of a separate auth layer in front
# INVITATIONS_ALLOWED=true# INVITATION_ORG_NAME=Vaultwarden
# INVITATION_EXPIRATION_HOURS=120
## Per-organization attachment storage limit (KB)## Max kilobytes of attachment storage allowed per organization.# ORG_ATTACHMENT_LIMIT=
## Number of days to wait before auto-deleting a trashed item.## If unset (the default), trashed items are not auto-deleted.# TRASH_AUTO_DELETE_DAYS=
# INCOMPLETE_2FA_TIME_LIMIT=3
## SMTP service is not configured. Not recommended for publicly-accessible instances
## Domain settings## The domain must match the address from where you access the server## It's recommended to configure this value, otherwise certain functionality might not work,## For U2F to work, the server must use HTTPS, you can use Let's Encrypt for free certs# DOMAIN=https://vw.domain.tld:8443
## Allowed iframe ancestors (Know the risks!)## Allows other domains to embed the web vault into an iframe, useful for embedding into secure intranets# ALLOWED_IFRAME_ANCESTORS=
# LOGIN_RATELIMIT_SECONDS=60## Allow a burst of requests of up to this size, while maintaining the average indicated by `LOGIN_RATELIMIT_SECONDS`.## Note that this applies to both the login and the 2FA, so it's recommended to allow a burst size of at least 2.# LOGIN_RATELIMIT_MAX_BURST=10
# ADMIN_RATELIMIT_SECONDS=300## Allow a burst of requests of up to this size, while maintaining the average indicated by `ADMIN_RATELIMIT_SECONDS`.# ADMIN_RATELIMIT_MAX_BURST=3
## You can optionally specify a custom OTP server# YUBICO_SERVER=http://yourdomain.com/wsapi/2.0/verify
## Duo Settings## Create an account and protect an application as mentioned in this link (only the first step, not the rest):## Then set the following options, based on the values obtained from the last step:# DUO_HOST=<API Hostname>## ignoring the fields that ask for the values that you already configured beforehand.
## Authenticator Settings#### According to the RFC6238 (https://tools.ietf.org/html/rfc6238),## You can disable this, so that only the current TOTP Code is allowed.# AUTHENTICATOR_DISABLE_TIME_DRIFT=false
## Rocket specific settings# ROCKET_ADDRESS=0.0.0.0# ROCKET_PORT=80 # Defaults to 80 in the Docker images, or 8000 otherwise.# ROCKET_WORKERS=10
# SMTP_HOST=smtp.domain.tld# SMTP_FROM=vaultwarden@domain.tld# SMTP_FROM_NAME=Vaultwarden# SMTP_PORT=587 # Ports 587 (submission) and 25 (smtp) are standard without encryption and with encryption via STARTTLS (Explicit TLS). Port 465 (submissions) is used for encrypted submission (Implicit TLS).# SMTP_TIMEOUT=15
## Defaults for SSL is "Plain" and "Login" and nothing for Non-SSL connections.## Possible values: ["Plain", "Login", "Xoauth2"].# SMTP_AUTH_MECHANISM="Plain"
## By default this value should be is on the machine's hostname,# HELO_NAME=
# SMTP_EMBED_IMAGES=false
## SMTP debugging## When set to true this will output very detailed SMTP messages.# SMTP_DEBUG=false
# vim: syntax=ini
+1
View File
@@ -0,0 +1 @@
VNC_PW= # Example: Passw0rd
+13
View File
@@ -0,0 +1,13 @@
SYMFONY__ENV__DATABASE_DRIVER= # Example: pdo_pgsql
SYMFONY__ENV__DATABASE_HOST= # Example: postgres
SYMFONY__ENV__DATABASE_PORT= # Example: 5432
SYMFONY__ENV__DATABASE_NAME= # Example: wallabag
SYMFONY__ENV__DATABASE_USER= # Example: username
SYMFONY__ENV__DATABASE_PASSWORD= # Example: Passw0rd
# SYMFONY__ENV__DATABASE_CHARSET=utf8mb4SYMFONY__ENV__DATABASE_CHARSET= # Example: utf8
SYMFONY__ENV__MAILER_HOST= # Example: user.name@gmail.com
SYMFONY__ENV__MAILER_USER= # Example: user.name@gmail.com
SYMFONY__ENV__MAILER_PASSWORD= # Example: Passw0rd
SYMFONY__ENV__FROM_EMAIL= # Example: user.name@gmail.com
SYMFONY__ENV__DOMAIN_NAME= # Example: https://wallabag.marcpartensky.fr
SYMFONY__ENV__SERVER_NAME= # Example: "Wallabag of Marc Partensky"
+15
View File
@@ -0,0 +1,15 @@
DJANGO_SETTINGS_MODULE= # Example: django_project.settings
ID_CLIENT= # Example: myhiddenid
SECRET_KEY_CLIENT= # Example: myhiddenkey
SECRET_KEY= # Example: myhiddenkey
REDIS_URL= # Example: protocol://user:password@host:port/path
POSTGRES_DB= # Example: website
POSTGRES_NAME= # Example: website
POSTGRES_USER= # Example: username
POSTGRES_PASSWORD= # Example: Passw0rd
POSTGRES_HOST= # Example: postgres
POSTGRES_PORT= # Example: 5432
DEBUG= # Example: false
DJANGO_SUPERUSER_USERNAME= # Example: username
DJANGO_SUPERUSER_EMAIL= # Example: user.name@gmail.com
DJANGO_SUPERUSER_PASSWORD= # Example: Passw0rd
+58
View File
@@ -0,0 +1,58 @@
# this instance publicly. For an online generator, see e.g. https://djecrety.ir/SECRET_KEY= # Example: myhiddenkey
SIGNING_KEY= # Example: myhiddenkey
# The server's timezone, for a list of possible names:TIME_ZONE= # Example: Europe/Paris
## Consult the deployment section in the readme if you are running this behind a# reverse proxy with HTTPS enabled
# CSRF_TRUSTED_ORIGINS=https://my.domain.example.com,https://118.999.881.119CSRF_TRUSTED_ORIGINS= # Example: https://wger.marcpartensky.com
# X_FORWARDED_PROTO_HEADER_SET=True
## Static files# mobile app)
## These settings usually don't need changing#
## ApplicationWGER_INSTANCE= # Example: https://wger.de
ALLOW_REGISTRATION= # Example: True
ALLOW_GUEST_USERS= # Example: username
ALLOW_UPLOAD_VIDEOS= # Example: myhiddenid
# lower than this amount in days.MIN_ACCOUNT_AGE_TO_TRUST= # Example: 21
# Synchronzing exercises# It is recommended to keep the local database synchronized with the wger# instance specified in WGER_INSTANCE since there are new added or translations# improved. For this you have different possibilities:# - Sync exercises on startup:# SYNC_EXERCISES_ON_STARTUP=True# DOWNLOAD_EXERCISE_IMAGES_ON_STARTUP=True# - Sync them in the background with celery. This will setup a job that will run# once a week at a random time (this time is selected once when starting the server)SYNC_EXERCISES_CELERY= # Example: True
SYNC_EXERCISE_IMAGES_CELERY= # Example: True
SYNC_EXERCISE_VIDEOS_CELERY= # Example: myhiddenid
# - Manually trigger the process as needed:# docker compose exec web python3 manage.py sync-exercises# docker compose exec web python3 manage.py download-exercise-images
# Where to download ingredient and their images if they are not known locally.# Possible values OFF, WGER. Note that it is recommended to keep this as WGER# so that we don't overwhelm the Open Food Facts servers. Needs to have USE_CELERY# set to trueDOWNLOAD_INGREDIENTS_FROM= # Example: WGER
# Whether celery is configured and should be used. Can be left to true with# this setup but can be deactivated if you are using the app in some other wayUSE_CELERY= # Example: True
## CeleryCELERY_BROKER= # Example: redis://redis:6379/4
CELERY_BACKEND= # Example: redis://redis:6379/4
CELERY_FLOWER_PASSWORD= # Example: Passw0rd
## DatabaseDJANGO_DB_ENGINE= # Example: django.db.backends.postgresql
DJANGO_DB_DATABASE= # Example: wger
DJANGO_DB_USER= # Example: username
DJANGO_DB_PASSWORD= # Example: Passw0rd
DJANGO_DB_HOST= # Example: postgres
DJANGO_DB_PORT= # Example: 5432
# Perform any new database migrations on startupDJANGO_PERFORM_MIGRATIONS= # Example: True
## CacheDJANGO_CACHE_BACKEND= # Example: django_redis.cache.RedisCache
DJANGO_CACHE_LOCATION= # Example: redis://redis:6379/3
# in seconds - 60*60*24*15, 15 DaysDJANGO_CACHE_TIMEOUT= # Example: 1296000
DJANGO_CACHE_CLIENT_CLASS= # Example: myhiddensecret
## Brute force login attacks# https://django-axes.readthedocs.io/en/latest/index.htmlAXES_ENABLED= # Example: True
AXES_FAILURE_LIMIT= # Example: 10
# in minutesAXES_COOLOFF_TIME= # Example: 30
AXES_HANDLER= # Example: axes.handlers.cache.AxesCacheHandler
## OthersDJANGO_DEBUG= # Example: True
WGER_USE_GUNICORN= # Example: True
# in seconds - 5*60*60, 5 hoursEXERCISE_CACHE_TTL= # Example: 3600
SITE_URL= # Example: protocol://user:password@host:port/path
## JWT authACCESS_TOKEN_LIFETIME= # Example: myhiddentoken
REFRESH_TOKEN_LIFETIME= # Example: myhiddentoken
## Other possible settings
# NOCAPTCHA
#FROM_EMAIL= # Example: user.name@gmail.com
+12
View File
@@ -0,0 +1,12 @@
WORDPRESS_DB_HOST= # Example: wordpress_mysql
WORDPRESS_DB_NAME= # Example: wordpress
WORDPRESS_DB_USER= # Example: username
WORDPRESS_DB_PASSWORD= # Example: Passw0rd
MYSQL_DATABASE= # Example: wordpress
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
# WORDPRESS_TABLE_PREFIX=...PMA_HOST= # Example: wordpress_mysql
PMA_USER= # Example: username
PMA_PASSWORD= # Example: Passw0rd
PMA_ARBITRARY= # Example: 1
+12
View File
@@ -0,0 +1,12 @@
WORDPRESS_DB_HOST= # Example: wordpress_mysql_alex
WORDPRESS_DB_NAME= # Example: wordpress
WORDPRESS_DB_USER= # Example: username
WORDPRESS_DB_PASSWORD= # Example: Passw0rd
# WORDPRESS_TABLE_PREFIX=...MYSQL_DATABASE= # Example: wordpress
MYSQL_USER= # Example: username
MYSQL_PASSWORD= # Example: Passw0rd
MYSQL_ROOT_PASSWORD= # Example: Passw0rd
PMA_PORT= # Example: 3306
PMA_HOST= # Example: wordpress_mysql_alex
PMA_USER= # Example: username
PMA_PASSWORD= # Example: Passw0rd

Some files were not shown because too many files have changed in this diff Show More