Compare commits

..

402 Commits

Author SHA1 Message Date
sheppy 61e28b4cae fix: correctly set apcu php mod 2024-12-23 13:10:42 +00:00
sheppy c772760646 add: otf font to served files 2024-12-23 12:43:07 +00:00
sheppy dcdb52c047 add: nextcloud php config 2024-12-23 12:23:58 +00:00
sheppy 3c3693d286 add: php mem caching module 2024-12-23 12:01:41 +00:00
sheppy a1cac40b81 fix: cron syntax missing * 2024-12-23 11:53:08 +00:00
sheppy 10874ac35f fix: reduce nextcloud cronjob to 3min 2024-12-23 11:52:33 +00:00
sheppy 32be37cf46 fix: consolidate real ip header configs 2024-12-23 11:47:02 +00:00
sheppy 3f77dba592 feat: ssl optional + ths fixes 2024-12-23 11:45:49 +00:00
sheppy bb89e764c1 feat: add nextcloud fixes 2024-12-23 11:39:47 +00:00
sheppy 8ae4246c6b feat: add nginx nextcloud config 2024-12-23 11:12:00 +00:00
sheppy ff8bc4fd06 fix: run nextcloud background task every hour 2024-12-23 11:01:58 +00:00
sheppy 9962002bf5 add: vault configuration 2024-12-23 10:59:41 +00:00
sheppy 48ba8ca1ef remove: obsolete backup ssh key 2024-12-23 10:59:26 +00:00
sheppy 70a4e485dd add: unattended upgrades 2024-12-23 10:40:10 +00:00
sheppy fca50fb390 add: emails & log rotation space saver 2024-12-23 10:34:30 +00:00
sheppy 39fe939e6b fix: sheppy mail var name 2024-12-23 09:43:51 +00:00
sheppy 010a3ff295 fix: correctly iterate over items instead of keys 2024-12-23 09:24:54 +00:00
sheppy 3a6ae4ab3c fix: move email addresses to var file 2024-12-23 00:03:56 +00:00
sheppy 0acecd4c84 fix: remove TLS1.1 & TLS1.2 2024-12-23 00:03:27 +00:00
sheppy 3a23707fd3 fix: template ldap root pw 2024-12-22 23:29:14 +00:00
sheppy cfa5bff05c fix: template tor details 2024-12-22 23:14:18 +00:00
sheppy e83ee0333f fix: template signal phone number 2024-12-22 23:03:10 +00:00
sheppy bb84a95e2b add: ayoryor.com to mail blacklist 2024-12-22 22:30:01 +00:00
sheppy 49da195558 fix: template ths backup instead of copy 2024-12-22 22:29:28 +00:00
sheppy f49af9ce1c fix: template vsyncdir.conf instead of copy 2024-12-22 22:28:47 +00:00
sheppy 8b3b788974 fix: add missing ssh-add 2024-12-22 22:28:00 +00:00
sheppy 4cdf690ac5 fix: template instead of copy 2024-12-22 22:24:24 +00:00
sheppy 338463793a fix: tempalte storagebox submission tokens 2024-12-22 21:52:07 +00:00
sheppy 1b80752c0e fix: remove k8 join command 2024-12-22 21:48:39 +00:00
sheppy 7928b24240 fix: remove various secrets 2024-12-22 21:47:59 +00:00
sheppy d83ba59fe3 fix: use oidc client secret variable 2024-12-22 21:39:46 +00:00
sheppy 788564113e fix: templates atlantis array actions pw 2024-12-22 21:38:14 +00:00
sheppy c0843e9e57 fix: template report to rudi pw 2024-12-22 21:34:44 +00:00
sheppy 9c6e02c372 fix: template icinga passwords 2024-12-22 21:33:37 +00:00
sheppy 532c0bf7fa fix: template password vsyncdir 2024-12-22 21:31:37 +00:00
sheppy 1c697a3483 fix: remove obsolete registry login 2024-12-22 19:35:59 +00:00
sheppy ec6e180c0a fix: reactive resume secrets 2024-12-22 19:33:55 +00:00
sheppy fd4a1e8920 fix: template tube archivist es pw 2024-12-22 19:26:29 +00:00
sheppy 29ed4797d9 fix: remove nsca password from file 2024-12-22 13:39:04 +00:00
sheppy b057c42e16 add: wireguard base vars 2024-12-22 13:29:56 +00:00
sheppy 8c4ef6ded7 feat: docker base role & opensearch 2024-12-22 13:29:41 +00:00
sheppy 5a2fbf8599 fix: remove opensearch vars from kube1 2024-12-22 13:28:39 +00:00
sheppy 993b86d0ea add: opensearch host 2024-12-22 13:28:18 +00:00
sheppy 70b6c67d39 add: post upgrade autoremove command 2024-12-22 13:28:01 +00:00
sheppy 9b2d37854a add: ip-gate service to container vpn 2024-11-28 14:18:20 +00:00
sheppy 9b27125752 change: spam compiling script 2024-11-28 14:17:54 +00:00
sheppy 3ba0ec37d6 add: volkswagen zentrum pillenstein blacklist 2024-11-28 14:17:32 +00:00
sheppy b7097bc159 fix: misc fixes for docker deployments opensearch/logstash 2024-11-24 13:55:39 +00:00
sheppy 4a7f87605c add: opensearch dashboard client keycloak 2024-11-24 13:55:13 +00:00
sheppy ca2cfa319c chore: enable filebeat for all hosts 2024-11-23 22:32:26 +00:00
sheppy b56c7e63e0 add: filebeat config 2024-11-23 19:54:26 +00:00
sheppy ee9c367a82 add: filebeat 2024-11-23 18:30:30 +00:00
sheppy c34e6fc81d add: logstash 2024-11-23 17:51:05 +00:00
sheppy e2802f3c36 fix: dashboard name typo 2024-11-23 17:23:47 +00:00
sheppy 2280224d37 add: basic openvpn node setup 2024-11-23 16:49:59 +00:00
sheppy f55138ee17 fix: add path to slapd script 2024-11-21 08:52:26 +00:00
sheppy 03809b530c add: event substitution map & actions dispatcher config 2024-11-15 10:56:25 +00:00
sheppy 40d1d1b427 feat: event dispatch substitutions 2024-11-03 14:11:12 +01:00
sheppy 6a6f3998b3 fix: add auth skips for atlantis-status 2024-11-02 20:34:33 +00:00
sheppy bf053365f7 feat: implement atlantis status deployment 2024-11-02 16:26:28 +00:00
sheppy ff58b9cf3e fix: set https-URL for kc25+ 2024-11-02 14:53:04 +00:00
sheppy 77ea3fe653 remove: atlantis web checker container 2024-11-01 09:39:21 +00:00
sheppy 919b8be040 add: atlantis status management basic 2024-11-01 09:38:53 +00:00
sheppy 46dda905c9 add: forwarding for alex@atlantishq mail 2024-10-19 14:26:39 +00:00
sheppy a7be625c01 update: set new port for immich 2024-10-16 17:16:44 +00:00
sheppy 4ac7e874f1 fix: add queue_lifetime parameter 2d 2024-10-12 11:14:55 +00:00
sheppy ac5bf029c4 change: use oauth-proxy & redis latest 2024-10-10 21:24:33 +00:00
sheppy 9b8c2c675d fix: include default spamd rules before user settings 2024-10-08 16:34:47 +00:00
sheppy 0c0df010f2 fix: switch base user for nc-cron 2024-09-27 03:21:31 +00:00
sheppy 9cc2d9ddf4 change: keyclaok admin password 2024-09-27 03:21:06 +00:00
sheppy 2f699f838d feat: olive url & tube archivist skel 2024-09-13 09:39:51 +00:00
sheppy 698c9cf7f3 add: olive-tin oauth2proxy setup 2024-08-17 18:46:44 +00:00
sheppy 19a6d24146 fix: explicitly switch to home dir 2024-07-22 19:08:24 +00:00
sheppy 54b34484d4 fix: docker-v2 restart handler name 2024-07-22 18:09:36 +00:00
sheppy bd79b34de2 add: gitea & gitea-runner 2024-07-22 16:30:11 +00:00
sheppy b19d67f69c add: immich deployment 2024-07-21 11:35:40 +00:00
sheppy 90dee7e4fe add: immich oidc client 2024-07-21 10:58:13 +00:00
sheppy 166138a722 add: ncdu & htop 2024-07-20 14:14:21 +00:00
sheppy d6d9e87c01 fix: add restart always to nginx container 2024-07-20 14:14:13 +00:00
sheppy 5b7e7949c5 change: remove kubernetes base for now 2024-07-20 12:29:59 +00:00
sheppy 18b2437082 change: set strategy free for all groups 2024-07-20 12:26:46 +00:00
sheppy d316653f6a fix: change health check to only check for 200 2024-07-20 12:22:34 +00:00
sheppy f80e454df7 fix: vacuum cronjob size->time 2024-07-20 12:22:18 +00:00
sheppy 928e905fd7 fix: openvpn config 2024-07-20 12:21:59 +00:00
sheppy 708a996baf add: signal polling cron job 2024-07-20 11:16:55 +00:00
sheppy 763a0346ce change: remove web1 & add signal 2024-07-20 10:36:28 +00:00
sheppy 342e950274 feat: add nginx media & cdn from web1 2024-07-20 10:24:05 +00:00
sheppy 68b48fd211 feat: add serienampel as docker deployment 2024-07-20 09:16:57 +00:00
sheppy 5c7f9a05f3 feat: empty file check to slapd backup 2024-07-20 08:29:17 +00:00
sheppy b205658e47 change: switch to mdb for deb 12 2024-07-17 17:59:07 +00:00
sheppy 43bdaf965e upgrade: pg major version hedgedoc 2024-07-17 13:34:03 +00:00
sheppy daaac805e9 update: various docker upgrades & debian 12 bookworm 2024-07-17 12:34:14 +00:00
sheppy 35749acfac fix: auth token 2024-07-06 15:13:14 +00:00
sheppy 7c583abe3f fix: add unless-stopped to ntfy api 2024-07-06 15:02:13 +00:00
sheppy fa2e4e2cba feat: postmap handler & sender_access conf 2024-06-08 10:11:27 +00:00
sheppy e0b886d1a3 add: docker daemon json (log size) 2024-06-08 09:26:57 +00:00
sheppy 1c7c075dc4 add: reload dovecot postfix cronjobs for certs 2024-06-08 08:27:24 +00:00
sheppy 34eb1193e0 remove: dovecot mail user 'test' 2024-06-08 08:27:03 +00:00
sheppy ebc72eabdc fix: remove debug flag 2024-05-28 19:59:09 +00:00
sheppy 88ada868e1 fix: change BAYES_999 from 3.0 to 0.8 2024-05-28 19:57:00 +00:00
sheppy a365f5e866 wip: add spamassasin scripts & local.cf 2024-05-28 19:51:41 +00:00
sheppy 3e360b453d add: alexander.schmidt & remove darknet senders 2024-05-26 12:28:26 +00:00
sheppy 72bf3cf404 add: secureserver.net to blacklist 2024-05-26 08:13:21 +00:00
sheppy ecf41dd733 add: gpt@atlantishq virtual email 2024-05-26 06:48:11 +00:00
sheppy 0aabfb629d add: spam learning script 2024-05-21 20:22:19 +00:00
sheppy 7204a2f011 add: reactive-resume to deployments 2024-05-16 19:16:36 +00:00
sheppy 9fe2f5c3b9 fix: disable-remove orphans 2024-05-16 19:11:17 +00:00
sheppy 7fc56a7c3a chore: update to docker compose v2 2024-05-16 18:31:56 +00:00
sheppy bf5bb80fd5 add: code-server (VS-Code) 2024-05-02 20:42:08 +00:00
sheppy cb3f03ccdf feat: add sftp to ferchau wscad 2024-04-07 15:35:47 +00:00
sheppy bd6074de10 add: base role journalctl cleanup job 2024-04-05 03:41:25 +00:00
sheppy ec87a70862 add: clickup.com to blacklist 2024-03-22 15:33:11 +00:00
sheppy b40bc4c459 feat: wscad server setup 2024-03-17 20:17:20 +00:00
sheppy 686231fa87 fix: change passwords 2024-02-23 22:30:42 +00:00
sheppy dc99966881 wip: kube2 kubernetes 2024-02-22 14:08:39 +00:00
sheppy 37d2b0f8a5 fix: use new style auth with icinga dispatch 2024-02-20 00:08:53 +00:00
sheppy 7034da2171 change: switch to dispatch access token auth 2024-02-19 17:27:18 +00:00
sheppy 9112b6f645 add: oidc admin user for verify 2024-02-19 16:30:23 +00:00
sheppy 78edd490b1 add: dispatcher secrets & vars 2024-02-19 01:17:29 +00:00
sheppy f2583ea0d4 fix: remove failing obfs4-tor bridge 2024-02-17 16:53:12 +00:00
sheppy 72e3570a40 fix: NTFY_PASS var name 2024-02-17 16:46:48 +00:00
sheppy e827763ccb feat: ntfy, new dispatcher & atlantis-verify update 2024-02-17 16:20:27 +00:00
sheppy 8742aace96 change: add autoremove & autoclean 2024-02-10 20:19:17 +00:00
sheppy a8dd1874d7 deactive: automatic reactive-resume deployment 2024-02-08 15:00:57 +00:00
sheppy 65663fbe43 add: gotify docker setup 2024-02-08 15:00:42 +00:00
sheppy 3f4113190d fix: web checks remove obsolete env 2024-02-05 14:54:42 +00:00
sheppy 3e27850c2d add: atlantis webchecks + oidc 2024-02-05 14:29:52 +00:00
sheppy d2c29ff571 add: money balancer 2024-01-31 01:04:35 +00:00
sheppy 0849cd7f00 fix: explicitly set KC_DB vendor postgres 2024-01-24 23:13:39 +00:00
sheppy 0db64f153c temp: remove reactive resume 2024-01-21 23:54:52 +00:00
sheppy e00796b25e fix: skips add logo resume 2024-01-19 15:51:11 +00:00
sheppy 43446a617e fix: update redis container version 2024-01-19 15:37:08 +00:00
sheppy a50b1903ea fix: add oauth for resume 2024-01-19 15:11:58 +00:00
sheppy f1421f400f switch: new potaris website 2024-01-17 23:29:20 +00:00
sheppy a45eabb5a9 fix: add picture-factory to kube1 2024-01-14 18:32:41 +00:00
sheppy 4e60fbf588 fix: dynamic service ports verify & soundlib 2024-01-14 13:42:44 +00:00
sheppy 5541f827c3 fix: use subdir for instance soundlib 2024-01-14 07:53:51 +00:00
sheppy ab5e522dd7 feat: move soundlib to kube1 container 2024-01-14 07:51:20 +00:00
sheppy a960ed363f feat: switch tmnf registry & upgrade to notifications 2024-01-13 03:59:27 +00:00
sheppy 65ba8e8eef fix: python yaml installation 2024-01-13 03:09:08 +00:00
sheppy 144f12e4b7 feat: add nextcloud role \w cronjob 2024-01-12 05:25:37 +00:00
sheppy 6e326437ad fix: switch mail dirs of spamsink & noreply 2024-01-09 10:32:52 +00:00
sheppy bb623ee0b2 fix: #! & search filter 2024-01-05 20:33:29 +00:00
sheppy 2842983eb9 feat: add ldap-fixer 2024-01-05 20:30:57 +00:00
sheppy 783eea004f feat: add atlantis verify 2024-01-04 21:07:15 +00:00
sheppy 99128d1acb fix: uuidLDAPAttribute and disable emailVerified mapper 2024-01-03 21:11:39 +00:00
sheppy 31c2d55998 update: update keycloak to 23.0.3 2024-01-03 19:23:45 +00:00
sheppy 00ff5630e5 fix: switch async icinga to new registry 2024-01-03 14:26:35 +00:00
sheppy cb1e42f5e4 feat: add @reboot for harbor (as a fallback for restart: always) 2023-12-30 15:34:53 +00:00
sheppy b930b292a9 fix: add --with-trivy flag to install 2023-12-29 16:30:12 +00:00
sheppy 666f39d43b fix: change admin group for harbor to pki 2023-12-29 16:29:56 +00:00
sheppy 887bafecbb add: restart handler for atlantis hub config change 2023-12-29 15:10:57 +00:00
sheppy 9baacd5597 feat: oidc config on harbor side 2023-12-29 15:06:19 +00:00
sheppy c07c80c24f add: harbor & fix master_address hedgedoc 2023-12-29 14:53:39 +00:00
sheppy d48316f34d feat: harbor setup done 2023-12-29 14:49:58 +00:00
sheppy 1c23da0249 add: harbor registry deployment 2023-12-29 14:03:07 +00:00
sheppy ebd91306cd feat: rewrite harbor deployment 2023-12-29 13:02:54 +00:00
sheppy b3094727e5 feat: add hedgedoc \w oidc-auth 2023-12-28 23:06:13 +00:00
sheppy c90d671ae3 add: reactive resume 2023-12-09 15:23:21 +00:00
sheppy 7f35c555f4 add: potaris steam mail accounts 2023-11-28 15:56:15 +00:00
sheppy 7c7cecfd1b remove: obsolete backup_private_daten and backup_ths_server 2023-11-12 06:25:38 +00:00
sheppy 9b3e0bdc97 update: remove obsolete backup monitoring 2023-11-12 06:07:28 +00:00
sheppy 58d613b313 fix: add joerg to dn domain 2023-11-11 11:53:06 +00:00
sheppy 8d64043fe3 add: trackmania smurf address 2023-11-03 17:24:55 +00:00
sheppy c507673a27 fix: correctly use network as a mapping 2023-09-24 14:16:50 +00:00
sheppy ac4b7cd239 add: tor bridge docker deployment 2023-09-24 14:14:29 +00:00
sheppy 620c557351 add: .ru to sender blacklist 2023-09-16 09:08:50 +00:00
sheppy dcae6034d3 update: postfix sender blacklist 2023-09-04 19:23:49 +00:00
sheppy 6ee4737fc4 fix: prevent rounding errors 2023-09-04 19:20:30 +00:00
sheppy 0b71389669 fix: template divide day duration by hours 2023-08-10 17:21:41 +00:00
sheppy 57b8a0f0a7 fix: char limit for template names 2023-08-05 08:02:32 +00:00
sheppy b8d79eecd5 add: full day (8.5) timetracking tempalte 2023-08-05 07:58:48 +00:00
sheppy a7ee9ac405 feat: verifiedEmail LDAP support 2023-07-25 08:29:48 +00:00
sheppy af4d36523f fix: typo in verification schema filename 2023-07-24 19:58:38 +00:00
sheppy 135ac0aed6 feat: verification ldap schema 2023-07-24 19:24:28 +00:00
sheppy 33237f001e fix: remove obsolete kathi icinga services 2023-07-24 17:19:39 +00:00
sheppy ab5dac0470 feat: connect new event dispatcher 2023-07-24 16:40:06 +00:00
sheppy a91dbd394f fix: change tun->tap 2023-07-21 21:49:28 +00:00
sheppy 2d72c74c7a feat: new smart-send event gate 2023-07-21 15:41:40 +00:00
sheppy 0a57ee6517 add: atlantisV2 kathi key 2023-07-21 13:45:38 +00:00
sheppy bc933d8759 fixme: comment out harbor for now 2023-07-21 13:04:36 +00:00
sheppy 1c4d2d1456 fix: add auth token env var to ed 2023-07-17 08:16:28 +00:00
sheppy 027dda4bbd feat: event disptacher setup 2023-07-17 08:14:33 +00:00
sheppy 9817b3e843 change: remove kathi from static services 2023-07-15 08:46:22 +00:00
sheppy 2a237a118b fix: set new report location 2023-07-10 13:21:40 +00:00
sheppy d0f8bf02ee fix: accidental double uid use for grafana-cli 2023-07-09 13:28:15 +00:00
sheppy c4e14f9c46 feat: add oauth skip for tm open data 2023-07-09 13:24:53 +00:00
sheppy 3ea06794b3 fix: nsca ng port/icinga api port confusion 2023-07-08 14:10:25 +00:00
sheppy 2b35b38318 add: sheppy icinga fallback role 2023-07-08 14:08:08 +00:00
sheppy 2a2f1c952a add: owner kathi to kathi services 2023-07-08 13:44:49 +00:00
sheppy ff2dacdbe0 change: filter by service owner 2023-07-08 13:43:51 +00:00
sheppy eeb7a5574c update: use new async icinga report location 2023-07-08 01:26:54 +00:00
sheppy 1878f6f5c1 feat: new route skip /report async icinga 2023-07-08 00:56:11 +00:00
sheppy 691cdc4dd0 feat: new async icinga 2023-07-07 12:06:43 +00:00
sheppy aefcda4293 fix: wrong icinga api port 2023-07-07 11:35:30 +00:00
sheppy dbbe985d9e feat: add owner to static async services 2023-07-07 10:51:28 +00:00
sheppy daaf6c173a feat: icingaweb2 auth config 2023-07-07 10:37:20 +00:00
sheppy f7fbbe0565 fix: add ldap_group_dn var 2023-07-07 10:37:03 +00:00
sheppy af61b2b621 fix: move ldap vars to all 2023-07-07 09:35:11 +00:00
sheppy 5824fd5778 feat: iptables restriction in internal network 2023-07-04 20:09:19 +00:00
sheppy 2fa76b1e0f feat: templates & timetracking improvements 2023-07-04 17:32:49 +00:00
sheppy c778ef4a58 add: harbor basics 2023-07-01 15:36:25 +00:00
sheppy 63e89b4526 change: allow reset password 2023-07-01 01:08:32 +00:00
sheppy 5051746335 feat: add non-transparent 8025 smtp port 2023-07-01 01:05:29 +00:00
sheppy a227359341 fix: root auth keys deployed in base role 2023-06-30 23:57:31 +00:00
sheppy bebf04ae4c add: whitelist domains for oauth2proxy 2023-06-30 17:33:02 +00:00
sheppy 911ea0ee0f add: oauth grafana support 2023-06-30 16:40:55 +00:00
sheppy 02dfce99e0 change: use atlantis hub instead of heimdall 2023-06-30 11:05:53 +00:00
sheppy 8702bec0c6 add: atlantis hub content to gitignore (subrepo) 2023-06-30 10:41:37 +00:00
sheppy d2a589fee6 feat: icinga2 web oauth2 2023-06-27 15:50:26 +00:00
sheppy b001af119b add: paperless oauthproxy layer 2023-06-27 15:03:45 +00:00
sheppy f2567c5e9f feat: support for heimdall/hub page 2023-06-27 10:49:10 +00:00
sheppy 7237c07ecb feat: add atlantis login theme in keycloak 2023-06-26 12:28:45 +00:00
sheppy c3023791f1 feat: add collabora for later use 2023-06-26 12:21:51 +00:00
sheppy 2c3ac15a04 change: skip oauth2proxy page & use X-Forwarded 2023-06-24 14:07:36 +00:00
sheppy 72aab8c1b7 fix: upload mount dir tmnf replays 2023-06-19 11:45:50 +00:00
sheppy ad1f2a4105 fix: refresh cookies more often
- do a 17m refresh interval against a 30min theoretical validity
2023-06-14 14:42:11 +00:00
sheppy 89e25d4371 change: add X-Auth headers oauth2 2023-06-10 22:32:03 +00:00
sheppy fb47c07810 add: prometheus adhoc script 2023-06-10 22:13:20 +00:00
sheppy 51eafb5fa4 add: trackmania replay server with oidc 2023-06-10 22:13:06 +00:00
sheppy 4f87a69fb9 fix: clone backup-tools as user sheppy 2023-06-09 13:21:24 +00:00
sheppy 59b2ea4a7a add: new storrage exports for carddav 2023-06-09 13:17:37 +00:00
sheppy 2cf87fcc24 add: carddav to backupvm vsyncer 2023-06-09 13:11:34 +00:00
sheppy b58961ccef fix: use fq address as user for mail 2023-06-07 09:33:13 +00:00
sheppy fa27f02259 fix: repair and readd image factory service OIDC 2023-06-07 08:33:14 +00:00
sheppy 7dafe7e3a7 whitespaces: groupvars/all 2023-06-07 08:07:47 +00:00
sheppy cdecbe56af add: oauth2proxy cert/keycloak for cert manager 2023-06-07 08:01:33 +00:00
sheppy 2bae3bd42e fix: group matching in oauthproxy with keycloak 2023-06-07 08:01:04 +00:00
sheppy 8e2daf02be fix: listen on all (incl. docker) interfaces 2023-05-30 13:16:41 +00:00
sheppy 67bdc58e44 change: enable vpn mgnt interface 2023-05-30 13:07:40 +00:00
sheppy a7bf391ffe add: dedicated sqlite path 2023-05-29 16:01:17 +00:00
sheppy 47a43ec0c3 update: openvpn config 2023-05-29 15:36:21 +00:00
sheppy 1ec456d4d1 change: use certificate directly from cert manager
- remove dh param by default
2023-05-29 13:03:06 +00:00
sheppy 05c5307adf fix: use different ccd path 2023-05-29 12:52:28 +00:00
sheppy d2442982d6 fix: remove obsolete notify 2023-05-29 12:52:17 +00:00
sheppy 502eb36159 fix: data keys path cert manager 2023-05-29 12:40:58 +00:00
sheppy 3347feee8f feat: openvpn & cert manager 2023-05-29 12:33:06 +00:00
sheppy 5cb291bdfd feat: media configuration with cert header 2023-05-28 17:06:53 +02:00
sheppy 9a200e1197 add: support for extra root keys & bekama key 2023-05-23 18:08:19 +02:00
sheppy 4b52fbeb7a add: timetracking/kimai basics 2023-05-14 18:30:54 +02:00
sheppy fc004b97a0 add: git group vars stub 2023-05-11 19:56:30 +02:00
sheppy 59010c64ba fix: dubious ownership clone error 2023-05-11 19:56:02 +02:00
sheppy 91c132fb1d add: upgrade all playbook 2023-04-16 13:26:43 +02:00
sheppy 4b4f4666a3 fix: add restart for redis backend of oauth2proxy
- otherwise oauth2proxy break for example on system reboot
2023-04-10 19:20:56 +02:00
sheppy d8e9a773a9 fix: rudi monitoring reports 2023-04-09 12:07:32 +02:00
sheppy 41a759abd5 add: telephoneNumber to ldap mappings keycloak 2023-04-09 11:41:57 +02:00
sheppy 2fcc84c43f add: apt file to base installs 2023-04-08 16:12:31 +02:00
sheppy b55fd11c0a add: kathi key 2023-04-08 16:10:28 +02:00
sheppy 80f6b89b3d fix: use start tls for internal smtp
do this by adding a new non transparent port forward and connect via this port
and the normal mail.atlantishq.de address

also always copy the passwd file for dovecot
2023-04-06 19:23:20 +02:00
sheppy fcf62beb1b fix: encrypted noreply mail service password 2023-04-06 18:52:19 +02:00
sheppy f6521cd595 update: set new zabbix master server ip 2023-04-02 10:15:19 +02:00
sheppy 2624b84ee0 add: kathi backup server check 2023-04-02 10:15:03 +02:00
sheppy 8c8d2250f7 update: new dkim zabbix server 2023-04-02 10:14:18 +02:00
sheppy 8ae16a65df add: vault pki basics 2023-03-28 09:18:24 +02:00
sheppy 63f70d07c7 add: zabbix agent role to main playbook 2023-03-28 09:18:11 +02:00
sheppy fb6b26f85a add: zabbix host to trusted dkim hosts 2023-03-26 04:09:50 +02:00
sheppy b49431651e fix: remove duplicated nsca handler 2023-03-16 19:15:31 +01:00
sheppy ec2e1de3e2 fix: reference perm mode as octal 2023-03-16 11:27:18 +01:00
sheppy e89f7fa5c9 fix: wrong ansible module (2) 2023-03-16 11:23:52 +01:00
sheppy b6a62697f1 fix: wrong ansible module 2023-03-16 11:16:22 +01:00
sheppy e4b2b8bc7c add: michy server monitoring 2023-03-16 11:02:27 +01:00
sheppy 61cfe19cdf change: remove mail from async services 2023-03-16 09:50:20 +01:00
sheppy f392eeb54f fix: influx apt list/key double call 2023-03-16 09:48:16 +01:00
sheppy 151e580abe feat: icinga users file 2023-03-15 16:56:02 +01:00
sheppy 9d51c3fa74 feat: icinga mail notifications 2023-03-15 16:40:20 +01:00
sheppy e3953b1810 add: smtp/mail configuration keycloak master realm 2023-03-14 17:59:55 +01:00
sheppy d2227d485f add: opendkim/spf configuration 2023-03-14 13:45:56 +01:00
sheppy 25ac7e4393 fix: add service mail account noreply 2023-03-14 13:06:38 +01:00
sheppy 8c51b48e84 change: allow broken slas auth clients postfix 2023-03-14 12:44:48 +01:00
sheppy da239cf89b add: sender OK avg exerpt 2023-03-14 12:43:38 +01:00
sheppy d0464a5316 fix: send spammails to different address 2023-03-14 12:43:16 +01:00
sheppy 7f31f9acbc add: spamsink mail account 2023-03-14 12:18:05 +01:00
sheppy 5f51564e7d fix: add influx apt list & key 2023-03-14 12:06:43 +01:00
sheppy 23ae78c6ff fix: service name not shown pynag 2023-03-14 11:51:32 +01:00
sheppy 500a6bd70a fix: add password and user to compose 2023-03-05 15:46:02 +01:00
sheppy beb371db3b fix: paperless lint 2023-03-05 13:38:15 +01:00
sheppy 8110f83898 add: paperless basics 2023-03-05 12:59:01 +01:00
sheppy 0fefb7e83c fix: dovecot nas auth sha-512 string 2023-03-04 14:25:17 +01:00
sheppy 002fb70481 add: login auth mechanism to dovecot 2023-03-04 14:21:36 +01:00
sheppy 8843697254 update: mail files 2023-03-04 14:09:52 +01:00
sheppy 30477c8871 fix: remove duplicated auth keys task 2023-01-18 19:27:21 +01:00
sheppy c5e8869a05 fix: add missing ; 2023-01-18 19:20:07 +01:00
sheppy 36fac310c8 fix: add typo3-settings 2023-01-18 19:15:55 +01:00
sheppy f8b3b8ab40 fix: typo3 backend/BE login not found 404 2023-01-18 19:01:40 +01:00
sheppy 46ef941251 fix: remove hardcoded url 2023-01-18 18:48:38 +01:00
sheppy e6b04278ae fix: typo3 gateway 2023-01-18 17:40:09 +01:00
sheppy c7762f4f5a feat: add header on backend to identify request 2023-01-16 23:51:53 +01:00
sheppy 13174053f1 fix: use nginx for php fpm 2023-01-16 23:49:09 +01:00
sheppy 269f2787b6 feat: configure php on typo3 2023-01-16 17:15:20 +01:00
sheppy 62039fffa2 feat: typo3 base 2023-01-16 15:41:10 +01:00
sheppy 681ed0d4af fix: remove unloaded ldapapi:// from systemd config 2023-01-16 14:14:53 +01:00
sheppy 1e1e21ccc4 fix: add restart always to oauth proxy 2023-01-16 13:53:53 +01:00
sheppy f32bd17013 feat: skip auth paths 2023-01-15 22:46:43 +01:00
sheppy 98aaa561c5 fix: remove duplicated http 2023-01-15 21:24:22 +01:00
sheppy 9c1b9fff8f fix: oidc oauth2proxy redirect uri 2023-01-15 19:40:29 +01:00
sheppy 38529a428e feat: more oidc oauth2proxy 2023-01-15 19:37:29 +01:00
sheppy 4fd118fde6 feat: services var 2023-01-15 18:33:56 +01:00
sheppy 0530a5218d add vars to gitkeep 2023-01-15 18:20:43 +01:00
sheppy b07065b052 feat: gitkeep vars 2023-01-15 18:20:30 +01:00
sheppy a684479e05 feat: waitress port from services option 2023-01-15 18:20:10 +01:00
sheppy 25441ea4b2 feat: oauth2 proxy 2023-01-15 18:07:50 +01:00
sheppy fe2b0f1dab fix: backup scripts backupvm 2023-01-15 17:42:12 +01:00
sheppy 00e6a694de feat: slapd via slapcat backup 2023-01-15 17:26:54 +01:00
sheppy fa61c58471 feat: oauth2proxy compose skel 2023-01-15 11:46:36 +01:00
sheppy 0d63e8855b fix: split keycloak config 2023-01-15 11:41:52 +01:00
sheppy 6c8718e948 feat: slapd group & systemd 2023-01-15 08:31:53 +01:00
sheppy 6c8a690a39 fix: authorized keycloak clients 2023-01-15 06:19:17 +01:00
sheppy 608965124f fix: no modify timestamp ldap 2023-01-14 08:11:21 +01:00
sheppy dc13e7056c fix: ldap attribute mail 2023-01-14 08:07:19 +01:00
sheppy 4b487106c8 feat: keycloak & ldap 2023-01-14 08:02:39 +01:00
sheppy 90b529fb32 fix: increase monitoring gracetime apt async 2023-01-14 06:22:10 +01:00
sheppy 7a4d6a4531 fix: allow dash in path 2023-01-14 06:13:40 +01:00
sheppy 24e72a80ee fix: backup caldav script 2023-01-11 04:11:10 +01:00
sheppy 20d630496f fix: add forgotton proxy remote passive service 2023-01-11 03:47:19 +01:00
sheppy 9fe04399b4 add: warning about icinga config 2023-01-11 03:40:08 +01:00
sheppy 46d17d145d fix: monitoring tools is loaded by icinga 2023-01-11 03:35:52 +01:00
sheppy b53c1918c9 feat: more syslog/telegraf stuff 2023-01-11 02:20:00 +01:00
sheppy 88ecce43b0 feat: fully template keycloak clients 2023-01-10 23:03:34 +01:00
sheppy 93df06e477 fix: change icinga log level 2023-01-10 22:36:04 +01:00
sheppy 85de996862 deactivate: dn reachable check 2023-01-09 23:19:40 +01:00
sheppy 02e816c14c wip: remove darknet reachable check for now 2023-01-09 23:17:15 +01:00
sheppy 0d3a4f99d1 fix: service name ths storagebox 2023-01-09 23:14:59 +01:00
sheppy 00f0fb6bbf feat: backup+mail 2023-01-09 21:55:03 +01:00
sheppy 31c56db27f feat: backup + mail stuff 2023-01-09 21:26:06 +01:00
sheppy 753c3ae814 fix: add rsync to storrage box 2023-01-09 20:50:08 +01:00
sheppy 91dbf3a1f2 fix: add ths_caldav_backup service 2023-01-09 20:49:57 +01:00
sheppy e938be8b32 feat: caldav backup monitoring 2023-01-09 20:26:57 +01:00
sheppy b2f797495d add: mail_atlantishq async check 2023-01-09 19:49:23 +01:00
sheppy 2e6124566b fix: missing call to nsca reload handler 2023-01-09 19:49:09 +01:00
sheppy ff57511572 feat: async mail check 2023-01-09 18:29:53 +01:00
sheppy 644ef66ec8 feat: mail config files only 2023-01-09 18:23:21 +01:00
sheppy 462e54bd14 fix: various web1 fixes 2023-01-09 03:47:19 +01:00
sheppy d926d70a5f feat: oidc web1 basics 2023-01-08 23:01:42 +01:00
sheppy 4b9ee96989 fix: keycloak problems 2023-01-08 00:20:21 +01:00
sheppy a68fbd4838 feat: usermanagement keycloak 2023-01-07 19:05:30 +01:00
sheppy 39bd14e0d3 change: state attribute to bool-changed 2023-01-07 14:03:35 +01:00
sheppy 6fa577e221 fix: various check size script tweaks 2023-01-07 13:52:46 +01:00
sheppy e82a11c526 feat: check dir size backup script 2023-01-07 13:41:54 +01:00
sheppy 9e82f16b00 feat: usermangement stub 2023-01-07 12:40:35 +01:00
sheppy c3cff7e00f fix: fix offline storrage box name 2023-01-06 01:34:11 +01:00
sheppy ec6deb8344 fix: remove old ths server backup check 2023-01-06 01:32:56 +01:00
sheppy b681902948 fix: remove old athq backup check 2023-01-06 01:30:46 +01:00
sheppy f33b29287f change: unify potaris containers 2023-01-06 01:00:17 +01:00
sheppy 103ffc740e update: copy icinga2 dynamic async conf 2023-01-05 20:52:03 +01:00
sheppy 7585875228 update: add service dynamic icinga2 to gitignore 2023-01-05 20:51:46 +01:00
sheppy 4802af7b33 fix: mount database dir 2023-01-05 20:25:09 +01:00
sheppy 934b9b64c7 update: restart always & async icinga conf 2023-01-05 20:22:30 +01:00
sheppy a8233fb83b fix: always pull and notify handler 2023-01-05 20:22:07 +01:00
sheppy 3cb99f93cc feat: async icinga reload handler 2023-01-05 20:21:40 +01:00
sheppy 5120fe3227 fix: set async icinga port to 5006 2023-01-05 19:47:07 +01:00
sheppy 8eed547414 fix: duplicated port 2023-01-05 19:44:35 +01:00
sheppy a0f2b55a3a fix: images names missing fjsd-indicator 2023-01-05 19:38:46 +01:00
sheppy 132a44aedb fix: volume mounts 2023-01-05 17:57:07 +01:00
sheppy 6b9038dafe fix: add docker login 2023-01-05 17:56:56 +01:00
sheppy 19d4869d27 feat: async icinga static conf 2023-01-05 17:09:57 +01:00
sheppy f8767026a9 wip: async icinga & docker compose 2023-01-05 17:09:45 +01:00
sheppy df84c6be30 feat: add base installs for all hosts 2023-01-05 02:02:10 +01:00
sheppy f8806f30d9 update: monitoring master stucture 2023-01-04 03:44:47 +01:00
sheppy fe5391a5c2 wip: docker deployments stub 2023-01-04 03:44:11 +01:00
sheppy 15a1bcbe9f feat: collectd/influx role 2023-01-03 21:49:28 +01:00
sheppy 6dd59bb9a2 feat: ansible cfg 2023-01-03 21:49:08 +01:00
sheppy 12b0e0f22a fix: whitespaces 2023-01-03 20:38:46 +01:00
sheppy 827b20a57b fix: various rsyslog deploy problems 2023-01-03 20:31:49 +01:00
sheppy b52b520163 feat: unify rsyslog client/master 2023-01-03 20:19:35 +01:00
sheppy 40392e0c4d add: global handlers 2023-01-03 20:07:16 +01:00
sheppy 02887d9307 fix: pgsql typo 2023-01-03 20:07:02 +01:00
sheppy 11a73b28d4 add: rsyslog roles 2023-01-03 20:02:20 +01:00
sheppy 55f6d54d3d fix: rsyslog install task 2023-01-03 20:02:05 +01:00
sheppy 76ee3eb596 feat: pgsql conf rsyslog stub 2023-01-03 19:56:48 +01:00
sheppy 3e97a05021 feat: rsyslog basics 2023-01-03 19:55:54 +01:00
sheppy fe9f71a38e feat: add service vhost http checks 2023-01-02 04:17:46 +01:00
sheppy 1098cc6512 fix: change domain to atlantishq.de 2023-01-02 02:55:02 +01:00
sheppy f85c4d57b4 fix: unified ins-source checks 2023-01-02 02:54:36 +01:00
sheppy 40c41969ab add: mailq passive check 2023-01-01 18:51:59 +01:00
sheppy 6cadf171b4 feat: gpl! add check_mailq 2023-01-01 18:51:24 +01:00
sheppy 6dec975cea fix: add correct hypervisor key 2023-01-01 18:20:39 +01:00
sheppy f5d25c79c4 feat: ssh key rollout 2023-01-01 18:14:12 +01:00
sheppy bf738609f0 feat: steam source server checks 2023-01-01 17:35:30 +01:00
sheppy 17ec83cccf update: check_mailq cmd on mail 2023-01-01 17:35:14 +01:00
sheppy a8612074d8 feat: sshd config 2023-01-01 17:34:56 +01:00
sheppy 4f1b6bb06f fix: dn checks 2022-12-29 12:53:09 +01:00
sheppy 90ca6be7fd workaround: hardcode internal ip for transparent ports 2022-12-29 01:47:15 +01:00
sheppy 5b50fbbbf3 fix: change postfix TLS port 2022-12-28 22:03:04 +01:00
sheppy 5024ff7da0 fix: various monitoring related fixes 2022-12-28 21:50:11 +01:00
sheppy ae61d9eee0 fix: typo j2/js 2022-12-28 20:57:47 +01:00
sheppy a5bbc31023 fix: nsca copy args 2022-12-28 20:56:28 +01:00
sheppy e86db3c765 feat: send nsca conf 2022-12-28 20:53:41 +01:00
sheppy f4bbf46243 feat: add nsca server systemd 2022-12-28 20:40:16 +01:00
sheppy 450f5c0b5a fix: remove deprecated systemd setting 2022-12-28 20:39:45 +01:00
sheppy 7870fa51b4 update: async service fixes & nsca server 2022-12-28 20:26:06 +01:00
sheppy a31e9ca293 fix: add autogenerated nsca server conf 2022-12-28 20:25:10 +01:00
sheppy 9591502e3c feat: add icinga restart handler 2022-12-28 19:57:46 +01:00
sheppy 7e4929c869 update: default monitoring options 2022-12-28 19:49:03 +01:00
sheppy ecc1e0d4ad update: monitoring conf & git dep 2022-12-28 19:17:58 +01:00
sheppy 58f06c4b72 feat: add master playbook 2022-12-28 19:17:21 +01:00
sheppy a79d8b1c6f feat: extend monitoring master config 2022-12-28 19:17:06 +01:00
sheppy 6a0b9ee9da feat: add autogenerated files to gitignore 2022-12-28 19:16:21 +01:00
sheppy e7cf93a94d fix: move hostvars to groupvars 2022-12-28 19:15:32 +01:00
sheppy f644ceeca2 wip: monitoring client 2022-12-28 15:49:31 +01:00
sheppy 7a399ed41f wip: monitoring master roles 2022-12-28 15:49:17 +01:00
sheppy 544088bb79 feat: add pynagsystemd 2022-12-26 22:12:56 +01:00
sheppy 1c956c0ba2 inital: hypervisor ansible 2022-12-26 17:59:19 +01:00
140 changed files with 3089 additions and 496 deletions
+3
View File
@@ -2,7 +2,10 @@
ansible.log ansible.log
files/icinga_master_hosts.conf files/icinga_master_hosts.conf
files/nsca_server.conf files/nsca_server.conf
templates/nsca_server.conf
files/async-icinga-config-dynamic.json files/async-icinga-config-dynamic.json
files/async-icinga-services-dynamic.conf files/async-icinga-services-dynamic.conf
hosts.ini hosts.ini
files/atlantis-hub-content/ files/atlantis-hub-content/
join-k8s-command
vault.secret
+1
View File
@@ -1,3 +1,4 @@
[defaults] [defaults]
inventory = hosts.ini inventory = hosts.ini
log_path = ansible.log log_path = ansible.log
vault_password_file = vault.secret
+46
View File
@@ -0,0 +1,46 @@
---
- hosts: all
gather_facts: yes
become: false
tasks:
- name: Distribution major version
debug:
msg: "{{ ansible_distribution_major_version }}"
# - name: Upgrade
# block:
#
# - name: Update apt repo and cache on all Debian/Ubuntu boxes
# apt:
# update_cache: yes
# force_apt_get: yes
# cache_valid_time: 0
#
# - name: Prepare. Autoremove old packages
# apt:
# autoremove: true
# autoclean: true
#
# - name: Update sources
# shell:
# cmd: |
# sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
#
# - name: Update apt repo and cache on all Debian/Ubuntu boxes
# apt:
# update_cache: yes
# force_apt_get: yes
# cache_valid_time: 0
#
# - name: Upgrade all packages on servers
# apt:
# upgrade: dist
# force_apt_get: yes
#
# - name: Prepare. Autoremove old packages
# apt:
# autoremove: true
# autoclean: true
#
# when: ansible_distribution_major_version == "11"
+225 -61
View File
@@ -1,25 +1,77 @@
--- ---
checks: checks:
extra_sheppy_pubkeys: extra_sheppy_pubkeys:
nsca_server: "" nsca_server: 192.168.122.107
ldap_server: "" ldap_server: 192.168.122.112
nsca_password: "" nsca_password: HISTORY_PURGED_SECRET
RSYSLOG_SERVER: "" nsca_report_to_rudi_password: HISTORY_PURGED_SECRET
influxdb_telegraf_password: "" RSYSLOG_SERVER: internal.monitoring.atlantishq.de
influxdb_telegraf_password: HISTORY_PURGED_SECRET
code_server_password: HISTORY_PURGED_SECRET
icinga_api_user: "" nextcloud_ssl_enabled: false
icinga_api_pass: "" nextcloud_cert_name: nextcloud.atlantishq.de
icinga_api_url: "https://XXXXXXXXXXXXXXX:5665" nextcloud_instance_id: HISTORY_PURGED_SECRET
nextcloud_password_salt: HISTORY_PURGED_SECRET
nextcloud_instance_secret: HISTORY_PURGED_SECRET
nextcloud_master_domain: nextcloud.atlantishq.de
nextcloud_db_password: HISTORY_PURGED_SECRET
tor_bridge_name: HISTORY_PURGED_SECRET
tor_bridge_email: nobody@HISTORY_PURGED_SECRET.com
signal_sender_number: +HISTORY_PURGED_SECRET
atlantis_array_action_pw: jeanswochenendegeschichte
money_balancer_jwt_secret: HISTORY_PURGED_SECRET
hedgedoc_db_password: HISTORY_PURGED_SECRET
paperless_secret_key: HISTORY_PURGED_SECRET
kube_adm_token: HISTORY_PURGED_SECRET
storagebox_u244665_sub2_password: HISTORY_PURGED_SECRET
slapd_backup_submit_token: HISTORY_PURGED_SECRET
tube_archivist_elasticsearch_password: HISTORY_PURGED_SECRET
keep_journal_for_days: 3
michy_email: HISTORY_PURGED_SECRET
sheppy_email: HISTORY_PURGED_SECRET
reactive_resume_postgres_password: HISTORY_PURGED_SECRET
reactive_resume_minio_password: HISTORY_PURGED_SECRET
reactive_resume_refresh_token: HISTORY_PURGED_SECRET
reactive_resume_access_token: HISTORY_PURGED_SECRET
icinga_api_user: "mobile"
icinga_api_pass: "HISTORY_PURGED_SECRET"
icinga_api_url: "https://192.168.122.107:5665"
icinga_web_url: "https://icinga.atlantishq.de/" icinga_web_url: "https://icinga.atlantishq.de/"
backup_vsyncdir_password: HISTORY_PURGED_SECRET
icinga_web_db_password: HISTORY_PURGED_SECRET
icinga_ido_password: HISTORY_PURGED_SECRET
event_dispatcher_host: dispatcher.atlantishq.de event_dispatcher_host: dispatcher.atlantishq.de
event_dispatcher_proto: https event_dispatcher_proto: https
event_dispatcher_port: 443 event_dispatcher_port: 443
event_dispatcher_address: "{{ event_dispatcher_proto }}://{{ event_dispatcher_host }}" event_dispatcher_address: "{{ event_dispatcher_proto }}://{{ event_dispatcher_host }}"
event_dispatcher_user: "" event_dispatcher_user: dispatch
event_dispatcher_pass: "" event_dispatcher_pass: HISTORY_PURGED_SECRET
notification_settings_access_token: HISTORY_PURGED_SECRET
ldap_password: "" ntfy_api_target: https://p.athq.de
ntfy_push_target: https://push.atlantishq.de
ntfy_api_access_token: HISTORY_PURGED_SECRET
ldap_password: flanigan
ldap_root_pw: HISTORY_PURGED_SECRET
ldap_dc: "atlantishq" ldap_dc: "atlantishq"
ldap_org: "atlantishq de" ldap_org: "atlantishq de"
ldap_suffix: "dc=atlantishq,dc=de" ldap_suffix: "dc=atlantishq,dc=de"
@@ -29,49 +81,77 @@ ldap_group_dn: "ou=groups,dc=atlantishq,dc=de"
ldap_connection_url: ldap://192.168.122.112 ldap_connection_url: ldap://192.168.122.112
ldap_connection_url_ext: "ldaps://ldap.atlantishq.de" ldap_connection_url_ext: "ldaps://ldap.atlantishq.de"
event_dispatcher_token: "" nsca_server_password: HISTORY_PURGED_SECRET
immich_pg_password: HISTORY_PURGED_SECRET
event_dispatcher_token: "HISTORY_PURGED_SECRET"
opensearch_logstash_password: "HISTORY_PURGED_SECRET"
opensearch_admin_password: "HISTORY_PURGED_SECRET"
opensearch_seed_hosts:
- ipv4.atlantishq.de:9300
- ipv4.atlantishq.de:9301
opensearch_manager_nodes:
- opensearch-data-1
- opensearch-data-2
extra_root_keys: extra_root_keys:
- "# no extra keys" - "# no extra keys"
smtp_user_domain: atlantishq.de
smtp_internal_host: mail.atlantishq.de smtp_internal_host: mail.atlantishq.de
smtp_internal_host_port: 8025 smtp_internal_host_port: 8025
smtp_service_user: "" smtp_service_user: noreply
smtp_service_pass: "" smtp_service_pass: HISTORY_PURGED_SECRET
pki_domain: pki.atlantishq.de pki_domain: pki.atlantishq.de
SOUNDLIB_AWS_ACCESS_KEY_ID: "" SOUNDLIB_AWS_ACCESS_KEY_ID: HISTORY_PURGED_SECRET
SOUNDLIB_AWS_SECRET_ACCESS_KEY: "" SOUNDLIB_AWS_SECRET_ACCESS_KEY: HISTORY_PURGED_SECRET
SOUNDLIB_S3_ENDPOINT: "" SOUNDLIB_S3_ENDPOINT: HISTORY_PURGED_SECRET
# gotify # # gotify #
gotify_user: admin gotify_user: admin
gotify_password: "" gotify_password: HISTORY_PURGED_SECRET
# overwritten in monitoring master group var # overwritten in monitoring master group var
monitoring_master: false monitoring_master: false
async_icinga_static_services: async_icinga_static_services:
- { "name" : "service_names", "timeout" : "5h", "owner" : "sheppy", "token" : "" } - { "name" : "ths_auftragsdatenbank", "timeout" : "5h", "owner" : "sheppy", "token" : "HISTORY_PURGED_SECRET" }
- { "name" : "apt_atlantis_laptop", "timeout" : "30d", "owner" : "sheppy", "token" : "HISTORY_PURGED_SECRET" }
- { "name" : "apt_atlantis_pc", "timeout" : "30d", "owner" : "sheppy", "token" : "HISTORY_PURGED_SECRET" }
- { "name" : "backup_atlantis_laptop", "timeout" : "30d", "owner" : "sheppy", "token" : "HISTORY_PURGED_SECRET" }
- { "name" : "backup_ths_storrage_box", "timeout" : "30d", "owner" : "sheppy", "token" : "HISTORY_PURGED_SECRET" }
- { "name" : "mail_atlantishq", "timeout" : "1h", "owner" : "sheppy", "token" : "HISTORY_PURGED_SECRET" }
- { "name" : "ths_caldav_backup", "timeout" : "2d", "owner" : "sheppy", "token" : "HISTORY_PURGED_SECRET" }
- { "name" : "slapd_backup", "timeout" : "2d", "owner" : "sheppy", "token" : "HISTORY_PURGED_SECRET" }
keycloak_admin_password: "" keycloak_admin_password: HISTORY_PURGED_SECRET
keycloak_postgres_password: "" keycloak_postgres_password: HISTORY_PURGED_SECRET
keycloak_address: keycloak.atlantishq.de keycloak_address: keycloak.atlantishq.de
harbor_http_secret: "" harbor_http_secret: HISTORY_PURGED_SECRET
harbor_core_secret: "" harbor_core_secret: HISTORY_PURGED_SECRET
harbor_jobservice_secret: "" harbor_jobservice_secret: HISTORY_PURGED_SECRET
harbor_postgres_pass: "" harbor_postgres_pass: HISTORY_PURGED_SECRET
harbor_registry_user: harbor harbor_registry_user: harbor
harbor_registry_password: "" harbor_registry_password: HISTORY_PURGED_SECRET
harbor_admin_password: "" harbor_admin_password: 20Dino00
ferchau_sftp_user: dkeipp
ferchau_sftp_password: HISTORY_PURGED_SECRET
gitea_postgres_pw: HISTORY_PURGED_SECRET
gitea_runner_registration_token: HISTORY_PURGED_SECRET
keycloak_clients: keycloak_clients:
python-flask-picture-factory: python-flask-picture-factory:
party_secret : "" # pwgen -s 16 party_secret : "HISTORY_PURGED_SECRET"
client_id: z_images client_id: z_images
client_secret: "" # pwgen -s 32 client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://images.atlantishq.de/*" - "https://images.atlantishq.de/*"
- "https://images.athq.de/*" - "https://images.athq.de/*"
@@ -89,9 +169,9 @@ keycloak_clients:
- "/pictures/" - "/pictures/"
simple-log-server: simple-log-server:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_sls client_id: z_sls
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://sls.atlantishq.de/*" - "https://sls.atlantishq.de/*"
description: "Simple Log Server" description: "Simple Log Server"
@@ -102,9 +182,9 @@ keycloak_clients:
- "/submit" - "/submit"
soundlib-interface: soundlib-interface:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_soundlib client_id: z_soundlib
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://sounds.atlantishq.de/*" - "https://sounds.atlantishq.de/*"
description: "Soundlib interface" description: "Soundlib interface"
@@ -114,9 +194,9 @@ keycloak_clients:
skips: skips:
pki: pki:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_hashicorp_vault client_id: z_hashicorp_vault
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://pki.atlantishq.de/*" - "https://pki.atlantishq.de/*"
description: "PKI Vault" description: "PKI Vault"
@@ -126,9 +206,9 @@ keycloak_clients:
skips: skips:
cert-manager: cert-manager:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_cert_manager client_id: z_cert_manager
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://vpn.atlantishq.de/*" - "https://vpn.atlantishq.de/*"
description: "AtlantisHQ Certificate Manager" description: "AtlantisHQ Certificate Manager"
@@ -138,9 +218,9 @@ keycloak_clients:
skips: skips:
tmnf-replay-server: tmnf-replay-server:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_trackmania client_id: z_trackmania
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://trackmania.atlantishq.de/*" - "https://trackmania.atlantishq.de/*"
description: "AtlantisHQ Trackmania Replays" description: "AtlantisHQ Trackmania Replays"
@@ -151,9 +231,9 @@ keycloak_clients:
- "/open-info" - "/open-info"
atlantis-hub: atlantis-hub:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_atlantishub client_id: z_atlantishub
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://hub.atlantishq.de/*" - "https://hub.atlantishq.de/*"
description: "AtlantisHQ Hub" description: "AtlantisHQ Hub"
@@ -163,9 +243,9 @@ keycloak_clients:
skips: skips:
paperless: paperless:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_paperless client_id: z_paperless
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://paperless.atlantishq.de/*" - "https://paperless.atlantishq.de/*"
description: "AtlantisHQ Paperless Archiving" description: "AtlantisHQ Paperless Archiving"
@@ -175,9 +255,9 @@ keycloak_clients:
skips: skips:
icinga: icinga:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_icinga client_id: z_icinga
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://icinga.atlantishq.de/*" - "https://icinga.atlantishq.de/*"
description: "Icinga Web" description: "Icinga Web"
@@ -187,9 +267,9 @@ keycloak_clients:
skips: skips:
grafana: grafana:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_grafana client_id: z_grafana
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://stats.atlantishq.de/*" - "https://stats.atlantishq.de/*"
description: "Grafana" description: "Grafana"
@@ -199,9 +279,9 @@ keycloak_clients:
skips: skips:
async-icinga: async-icinga:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_async_icinga client_id: z_async_icinga
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://async-icinga.atlantishq.de/*" - "https://async-icinga.atlantishq.de/*"
description: "Icinga Web" description: "Icinga Web"
@@ -212,9 +292,9 @@ keycloak_clients:
- "/report" - "/report"
hedgedoc: hedgedoc:
party_secret : "" party_secret : "HISTORY_PURGED_SECRET"
client_id: z_hedgedoc client_id: z_hedgedoc
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://hedgedoc.atlantishq.de/*" - "https://hedgedoc.atlantishq.de/*"
description: "Hedgedoc" description: "Hedgedoc"
@@ -223,9 +303,9 @@ keycloak_clients:
master_address: "https://hedgedoc.atlantishq.de" master_address: "https://hedgedoc.atlantishq.de"
harbor: harbor:
party_secret: "" party_secret: "iHISTORY_PURGED_SECRET"
client_id: z_harbor client_id: z_harbor
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://harbor-registry.atlantishq.de/*" - "https://harbor-registry.atlantishq.de/*"
description: "Harbor Registry" description: "Harbor Registry"
@@ -234,9 +314,9 @@ keycloak_clients:
master_address: "https://harbor-registry.atlantishq.de" master_address: "https://harbor-registry.atlantishq.de"
atlantis-verify: atlantis-verify:
party_secret: "" party_secret: "3HISTORY_PURGED_SECRET"
client_id: z_at_verify client_id: z_at_verify
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://verify.atlantishq.de/*" - "https://verify.atlantishq.de/*"
description: "Atlantis Verification" description: "Atlantis Verification"
@@ -245,9 +325,9 @@ keycloak_clients:
master_address: "https://verify.atlantishq.de" master_address: "https://verify.atlantishq.de"
reactive-resume: reactive-resume:
party_secret: "" party_secret: "RHISTORY_PURGED_SECRET"
client_id: z_reactive_resume client_id: z_reactive_resume
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://resume.atlantishq.de/*" - "https://resume.atlantishq.de/*"
description: "Reactive Resume" description: "Reactive Resume"
@@ -258,9 +338,9 @@ keycloak_clients:
- "/logo/light.svg" - "/logo/light.svg"
money-balancer: money-balancer:
party_secret: "" party_secret: "YHISTORY_PURGED_SECRET"
client_id: z_money_balancer client_id: z_money_balancer
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://money-balancer.atlantishq.de/*" - "https://money-balancer.atlantishq.de/*"
description: "Money Balancer" description: "Money Balancer"
@@ -269,12 +349,96 @@ keycloak_clients:
master_address: "https://money-balancer.atlantishq.de" master_address: "https://money-balancer.atlantishq.de"
atlantis-web-check: atlantis-web-check:
party_secret: "" party_secret: "CHISTORY_PURGED_SECRET"
client_id: z_web_check client_id: z_web_check
client_secret: "" client_secret: "HISTORY_PURGED_SECRET"
redirect_uris: redirect_uris:
- "https://smartchecks.atlantishq.de/*" - "https://smartchecks.atlantishq.de/*"
description: "SMART Web-Checks" description: "SMART Web-Checks"
keycloak_id: "00000000-0000-0000-0000-000000000017" keycloak_id: "00000000-0000-0000-0000-000000000017"
groups: groups:
master_address: "https://smartchecks.atlantishq.de" master_address: "https://smartchecks.atlantishq.de"
ferchau-wscad:
party_secret: "aHISTORY_PURGED_SECRET"
client_id: z_guenter
client_secret: "HISTORY_PURGED_SECRET"
redirect_uris:
- "https://wscad.atlantishq.de/*"
description: "WSCAD"
keycloak_id: "00000000-0000-0000-0000-000000000018"
groups: "guenter"
master_address: "https://wscad.atlantishq.de"
immich:
party_secret: "0HISTORY_PURGED_SECRET"
client_id: immich
client_secret: "HISTORY_PURGED_SECRET"
redirect_uris:
- "https://immich.atlantishq.de/*"
- "https://i.athq.de/*"
- "app.immich:/"
description: "Immich Pictures"
keycloak_id: "00000000-0000-0000-0000-000000000019"
groups: ""
master_address: "https://i.athq.de"
gitea:
party_secret: "SHISTORY_PURGED_SECRET"
client_id: gitea
client_secret: "HISTORY_PURGED_SECRET"
redirect_uris:
- "https://git.atlantishq.de/*"
- "https://git.athq.de/*"
description: "Gitea"
keycloak_id: "00000000-0000-0000-0000-000000000020"
groups: ""
master_address: "https://git.atlantishq.de"
olive-tin:
party_secret: "QHISTORY_PURGED_SECRET"
client_id: olive-tin
client_secret: "HISTORY_PURGED_SECRET"
redirect_uris:
- "https://olive.atlantishq.de/*"
description: "Olive-Tin"
keycloak_id: "00000000-0000-0000-0000-000000000021"
groups: "pki"
master_address: "https://olive.atlantishq.de"
tube-archivist:
party_secret: "EHISTORY_PURGED_SECRET"
client_id: tube-archivist
client_secret: "HISTORY_PURGED_SECRET"
redirect_uris:
- "https://youtube-proxy.atlantishq.de/*"
description: "Tube Archivist"
keycloak_id: "00000000-0000-0000-0000-000000000022"
groups: ""
master_address: "https://youtube-proxy.atlantishq.de"
atlantis-status:
party_secret: "EHISTORY_PURGED_SECRET"
client_id: atlantis-status
client_secret: "HISTORY_PURGED_SECRET"
redirect_uris:
- "https://actions.atlantishq.de/*"
description: "Atlantis Actions"
keycloak_id: "00000000-0000-0000-0000-000000000023"
groups: ""
master_address: "https://actions.atlantishq.de"
skips:
- "/endpoints"
- "/hook-passive"
opensearch-dashboard:
party_secret: "tHISTORY_PURGED_SECRET"
client_id: opensearch-dashboard
client_secret: "HISTORY_PURGED_SECRET"
redirect_uris:
- "https://opensearch.atlantishq.de/*"
description: "Atlantis Actions"
keycloak_id: "00000000-0000-0000-0000-000000000024"
groups: ""
master_address: "https://opensearch.atlantishq.de"
+2 -2
View File
@@ -1,4 +1,4 @@
harbor_version: v2.10.0 harbor_version: v2.10.0
harbor_file: harbor-online-installer-{{ harbor_version }}.tgz harbor_file: harbor-online-installer-{{ harbor_version }}.tgz
harbor_admin_password: "" harbor_admin_password: 20Dino00
harbor_db_password: "" harbor_db_password: HISTORY_PURGED_SECRET
+1
View File
@@ -0,0 +1 @@
is_k8s_master: true
+25
View File
@@ -1,3 +1,28 @@
--- ---
checks : checks :
- { user : nobody, name : mail_queue, cmd : "/usr/lib/nagios/plugins/check_mailq -w 10 -c 20"} - { user : nobody, name : mail_queue, cmd : "/usr/lib/nagios/plugins/check_mailq -w 10 -c 20"}
mail_virtual_transport:
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET,kat.maurer@fau.de
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
mail_enabled_senders:
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
HISTORY_PURGED_SECRET: HISTORY_PURGED_SECRET
noreply@atlantishq.de: noreply@atlantishq.de
+1
View File
@@ -0,0 +1 @@
nextcloud_nginx_ssl_enabled: true
+6
View File
@@ -0,0 +1,6 @@
opensearch_data_nodes:
- opensearch-data-1
- opensearch-data-2
opensearch_dashboards:
- opensearch-dashboard-1
+6
View File
@@ -1,3 +1,9 @@
--- ---
nextcloud_nginx_ssl_enabled: false
nextcloud_instance_id: HISTORY_PURGED_SECRET
nextcloud_password_salt: HISTORY_PURGED_SECRET
nextcloud_instance_secret: HISTORY_PURGED_SECRET
nextcloud_master_domain: ths.atlantishq.de
nextcloud_db_password: HISTORY_PURGED_SECRET
checks : checks :
- { user : sheppy, name : irc, cmd : ""} - { user : sheppy, name : irc, cmd : ""}
+1 -1
View File
@@ -4,6 +4,6 @@ checks :
- { user : nobody, name : wireguard-darknet-hase, cmd : "/usr/lib/nagios/plugins/check_ping -H fe80::2%wg_hase_darknet -w300,10% -c 1000,20%"} - { user : nobody, name : wireguard-darknet-hase, cmd : "/usr/lib/nagios/plugins/check_ping -H fe80::2%wg_hase_darknet -w300,10% -c 1000,20%"}
# - { user : nobody, name : darknet-reachable, cmd : "/usr/lib/nagios/plugins/check_ping -H 10.100.100.100 -w300,10% -c 1000,20%"} # - { user : nobody, name : darknet-reachable, cmd : "/usr/lib/nagios/plugins/check_ping -H 10.100.100.100 -w300,10% -c 1000,20%"}
openvpn_management_password: "" openvpn_management_password: HISTORY_PURGED_SECRET
openvpn_management_passfile: mgnt-pass.txt openvpn_management_passfile: mgnt-pass.txt
openvpn_management_port: 23000 openvpn_management_port: 23000
+29 -11
View File
@@ -1,5 +1,6 @@
--- ---
- hosts: all - hosts: all
strategy: free
roles: roles:
- { role : monitoring-client, tags : [ "monitoring", "monitoring-client", "client"] } - { role : monitoring-client, tags : [ "monitoring", "monitoring-client", "client"] }
- { role : sshd-config, tags : [ "sshd" ] } - { role : sshd-config, tags : [ "sshd" ] }
@@ -9,55 +10,72 @@
- { role : zabbix-agent, tags : [ "zabbix-agent" ] } - { role : zabbix-agent, tags : [ "zabbix-agent" ] }
- { role : iptables, tags : [ "iptables" ] } - { role : iptables, tags : [ "iptables" ] }
- hosts: web1 - hosts: opensearch
strategy: free
roles: roles:
- { role : web1, tags : [ "web1" ] } - { role : opensearch, tags : [ "opensearch" ] }
- { role : media, tags : [ "media" ] }
- hosts: signal
strategy: free
roles:
- { role : signal, tags : [ "signal" ] }
- hosts: all
strategy: free
roles:
- { role : filebeat, tags : [ "filebeat" ] }
- hosts: mail - hosts: mail
strategy: free
roles: roles:
- { role : mail, tags : [ "mail" ] } - { role : mail, tags : [ "mail" ] }
- hosts: backup - hosts: backup
strategy: free
roles: roles:
- { role : backup-vm, tags : [ "backup" ] } - { role : backup-vm, tags : [ "backup" ] }
- hosts: kube1 - hosts: kube1
strategy: free
roles: roles:
- { role : docker-deployments, tags : [ "docker", "kube1" ] } - { role : docker-deployments, tags : [ "docker", "kube1" ] }
- hosts: usermanagement - hosts: usermanagement
strategy: free
roles: roles:
- { role : usermanagement, tags : [ "users", "keycloak" ] } - { role : usermanagement, tags : [ "users", "keycloak" ] }
- hosts: monitoring - hosts: monitoring
strategy: free
roles: roles:
- { role : monitoring-master, tags : [ "monitoring-master", "icinga", "grafana" ] } - { role : monitoring-master, tags : [ "monitoring-master", "icinga", "grafana" ] }
- hosts: typo3-cms
roles:
- { role : typo3-cms, tags : [ "typo3" ] }
- hosts: paperless - hosts: paperless
strategy: free
roles: roles:
- { role : paperless, tags : [ "paperless" ] } - { role : paperless, tags : [ "paperless" ] }
- hosts: vault-pki
roles:
- { role : vault-pki, tags : [ "pki_master", "vault" ] }
- hosts: vpn - hosts: vpn
strategy: free
roles: roles:
- { role : openvpn, tags : [ "openvpn", "vpn", "certificate-manager" ] } - { role : openvpn, tags : [ "openvpn", "vpn", "certificate-manager" ] }
- hosts: timetracking - hosts: timetracking
strategy: free
roles: roles:
- { role : timetracking, tags : [ "timetracking", "kamai" ] } - { role : timetracking, tags : [ "timetracking", "kamai" ] }
- hosts: harbor-registry - hosts: harbor-registry
strategy: free
roles: roles:
- { role : harbor-registry, tags : [ "harbor" ] } - { role : harbor-registry, tags : [ "harbor" ] }
- hosts: nextcloud ths - hosts: nextcloud ths
strategy: free
roles: roles:
- { role: nextcloud, tags: ["nextcloud"] } - { role: nextcloud, tags: ["nextcloud"] }
#- hosts: kube2
# strategy: free
# roles:
# - { role: kubernetes-base, tags: ["kubernetes"] }
-38
View File
@@ -1,38 +0,0 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEA2gAT8vYdNPb1EI/oHsL4SDvZA6VAZJFuXRs+h7A8aehS3mdCjjEz
2ckZMDx5AtyXnvL5E5dnxYu8I14ZFkqT3ux/0RXZ+px3+UUrzOGhMIZIw+xNZb3/ZS0VF5
yEnhVxTnQ94aUV6k+clT/TtUt0ZN2/ovRz5XMNbw5hR0uZmfq15sUEshw/LrsghC9UYuSD
s/V8cnGifzB19l2h1lPsYK0Nrr1q74Z4mwd24bX/eBqxyUF0X41HOJxd0ht/d+xZHYreS6
M7gxN/5i6DTej8F89d2dmnApaY4sjmUMaWtvk6cBOYtq1qGcLF7//8s6IR2wN9PqmEsSWE
K2GdV0cjkjxVkqd8MHLo/MjDKjCU9nu+Wclmh7qGLop3ThVuFTEe6RaabLJ523Sx7yRnuT
2TEg8ZcoVLZACuKdZ39pxJ4N1YwgXJ+lFitaaOQ0JnC8JHdHEG1ky8R4x+LALX8qewPI7B
i164Vq2jDjqFNCVZGpma6tgbksmguUu/inbxgoN1AAAFiNBNJKrQTSSqAAAAB3NzaC1yc2
EAAAGBANoAE/L2HTT29RCP6B7C+Eg72QOlQGSRbl0bPoewPGnoUt5nQo4xM9nJGTA8eQLc
l57y+ROXZ8WLvCNeGRZKk97sf9EV2fqcd/lFK8zhoTCGSMPsTWW9/2UtFRechJ4VcU50Pe
GlFepPnJU/07VLdGTdv6L0c+VzDW8OYUdLmZn6tebFBLIcPy67IIQvVGLkg7P1fHJxon8w
dfZdodZT7GCtDa69au+GeJsHduG1/3gasclBdF+NRzicXdIbf3fsWR2K3kujO4MTf+Yug0
3o/BfPXdnZpwKWmOLI5lDGlrb5OnATmLatahnCxe///LOiEdsDfT6phLElhCthnVdHI5I8
VZKnfDBy6PzIwyowlPZ7vlnJZoe6hi6Kd04VbhUxHukWmmyyedt0se8kZ7k9kxIPGXKFS2
QArinWd/acSeDdWMIFyfpRYrWmjkNCZwvCR3RxBtZMvEeMfiwC1/KnsDyOwYteuFatow46
hTQlWRqZmurYG5LJoLlLv4p28YKDdQAAAAMBAAEAAAGAbms5r4eflZM83820SdiBf7zol+
Mc8ZOELh69lmbawt4NE1+EI5eiZr5oRrlqpdtr5PO224iF5FZ5zgQ8esD9kx2BRDtoNHsK
fbTekaD7TyPFOY+4SD9rXCjwlQwPVC8SPCW+rks7BXqbmjFBH4P/iZOUHIrrJR4YgNbsyP
ru60JE3oWOclTCX/4iYzHB8XFDkGRYS3NpVjkKluYoMfJCOVmOI6MHxhj7f7LRMVRI+OG0
iXbg5gEeQPtavjB1aR3JuajYIRaxbJUzKCgE4+yeljvObSdG9THUiuFOTEkXcdtYnPu3uy
d2LcBQzLJ0BY6YvIoI4OFV6lqRRBXMleUSKzHFgkHUuRAKyPtVrE38HV/X5qQeBlg89/7/
XuwZDq+A7fSm95uj85bmrUXBKBog/F31UW+1P3lZ7j/ZxmcPwcJTJvPTFOSweynimeSZB/
lwFJpiDhxJjlfpWF0GxgIHdsjD4CZgSpSKCh/kI954f4HnhWEXbs8quoGwgrjIElTFAAAA
wEbaLe1mPdp8LsvOTbWNiF9eT5pKO2pwkJPINJ20ylxwYaap0Xda79shdskkxKTCwIFvoA
xjdE6B1HKqzsWHu7fiQ29/btdAZav+930tMSxemIwhNe9aHyOgoujNS8UaxaR/sSTnj19V
7DyetxFPGW1H1A/KKnPm+muqgO7KARHoQ+0x3I6pJzM+XHN5DT5FNSdtVm+xWCNsXwL4bk
t5d5vBU/VAspgNZVSge+aN3R2FGqA0dlDww4XX0nywbaO8WgAAAMEA/kwTKHc7W9eqYCzM
yRrPXB1cRhrLYOJNX+ykl/xPPx4YeZmrDmNfzcC8DULC/5HkXEygpsxuzK1SbGM0eeQyMu
LboVYxgslC0QjIfDS3x7CYUMsrK1r1nleGxYFpXRBTqKty6nNR53Unum2QAsGW90xfoD1N
NEeb2d/wgG/QHmTh6BzJ6JYqjc/ATsqfR5aKoNnh1stRHu6TzrIK4Y/6e/HEoXElwOyeYX
DadG5VfnD4jglgQR78sHtaSSIpvCADAAAAwQDbdcgfXQ93mIDnk97aXbrR/tP76+0QmsM2
IImV3/mhnjwsYXHnYTBoci6t+L+zClpW2FIj532XKSBF+fxIOTpnMW4grKICivbWmcrCj+
aA+w+mshv4K1A+TDlzfW4c+UHpp26UopkaFMrG9hvNoDcREyYqERf1YnxZCLTGgNQLpDUa
rveYj+PzCjTzUzH2wgtNttIDWeekFxTJP/7a7sdaRe4DzMMn0B0UDVKGgKY7s5q1xL0IJq
8oXFJvSt894ScAAAASc2hlcHB5QGF0bGFudGlzcGFkAQ==
-----END OPENSSH PRIVATE KEY-----
+2 -3
View File
@@ -5,14 +5,14 @@
- vdirsyncer - vdirsyncer
- name: Copy Backup caldav script - name: Copy Backup caldav script
copy: template:
src: ths_cal_backup.sh src: ths_cal_backup.sh
dest: /home/sheppy/ths_cal_backup.sh dest: /home/sheppy/ths_cal_backup.sh
owner: sheppy owner: sheppy
group: sheppy group: sheppy
- name: Copy vdirsync config - name: Copy vdirsync config
copy: template:
src: vsyncdir.conf src: vsyncdir.conf
dest: /home/sheppy/vsyncdir.conf dest: /home/sheppy/vsyncdir.conf
owner: sheppy owner: sheppy
@@ -48,7 +48,6 @@
group: sheppy group: sheppy
mode: 0600 mode: 0600
with_items: with_items:
- backup_priv_key
- config - config
- name: template SLAPD backup script - name: template SLAPD backup script
+15 -2
View File
@@ -3,12 +3,25 @@ set -e
DIR=/home/sheppy/slapd_backup DIR=/home/sheppy/slapd_backup
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa
cd
rsync -r --remove-source-files sheppy@192.168.122.112:$DIR /home/sheppy rsync -r --remove-source-files sheppy@192.168.122.112:$DIR /home/sheppy
~/backups/backup-tools/backup_manager.py --extensions ldif -- $DIR ~/backups/backup-tools/backup_manager.py --extensions ldif -- $DIR
rsync --delete --rsh="/usr/bin/sshpass -p ebHYlyVHgRnBcdkb ssh -p23" -r slapd_backup/* u244665-sub2@u244665.your-storagebox.de:./slapd_backup/ rsync --delete --rsh="/usr/bin/sshpass -p {{ storagebox_u244665_sub2_password }} ssh -p23" -r slapd_backup/* u244665-sub2@u244665.your-storagebox.de:./slapd_backup/
for file in "$DIR"/*; do
# Check if the file is empty
if [ ! -s "$file" ]; then
echo "Empty file found: $file"
exit 1
fi
done
curl -H "Content-Type: application/json" \ curl -H "Content-Type: application/json" \
-X POST https://async-icinga.atlantishq.de/report \ -X POST https://async-icinga.atlantishq.de/report \
-d '{ "service" : "slapd_backup", "token" : "WX0yXFxSsb", "status" : "OK", "info" : "" }' -d '{ "service" : "slapd_backup", "token" : "{{ slapd_backup_submit_token }}", "status" : "OK", "info" : "" }'
@@ -18,10 +18,10 @@ zip -q -r ~/ths_carddav_telefon_backups/${BACKUP_NAME} ~/ths-carddav-telefon
~/backups/backup-tools/backup_manager.py ~/ths_carddav_telefon_backups/ --debug ~/backups/backup-tools/backup_manager.py ~/ths_carddav_telefon_backups/ --debug
# send to storrage box # send to storrage box
rsync --delete --rsh="/usr/bin/sshpass -p '' ssh -p23" -r ths_caldav_backups/* u244665-sub2@u244665.your-storagebox.de:./ths_caldav_backups/ rsync --delete --rsh="/usr/bin/sshpass -p {{ storagebox_u244665_sub2_password }} ssh -p23" -r ths_caldav_backups/* u244665-sub2@u244665.your-storagebox.de:./ths_caldav_backups/
rsync --delete --rsh="/usr/bin/sshpass -p '' ssh -p23" -r ths_carddav_backups/* u244665-sub2@u244665.your-storagebox.de:./ths_caldav_backups/carddav/ rsync --delete --rsh="/usr/bin/sshpass -p {{ storagebox_u244665_sub2_password }} ssh -p23" -r ths_carddav_backups/* u244665-sub2@u244665.your-storagebox.de:./ths_caldav_backups/carddav/
rsync --delete --rsh="/usr/bin/sshpass -p '' ssh -p23" -r ths_carddav_telefon_backups/* u244665-sub2@u244665.your-storagebox.de:./ths_caldav_backups/carddav_telefon/ rsync --delete --rsh="/usr/bin/sshpass -p {{ storagebox_u244665_sub2_password }} ssh -p23" -r ths_carddav_telefon_backups/* u244665-sub2@u244665.your-storagebox.de:./ths_caldav_backups/carddav_telefon/
curl -H "Content-Type: application/json" \ curl -H "Content-Type: application/json" \
-X POST https://async-icinga.atlantishq.de/report \ -X POST https://async-icinga.atlantishq.de/report \
-d '{ "service" : "ths_caldav_backup", "token" : "", "status" : "OK", "info" : "" }' -d '{ "service" : "ths_caldav_backup", "token" : "{{ slapd_backup_submit_token }}", "status" : "OK", "info" : "" }'
@@ -11,7 +11,7 @@ type = "caldav"
read_only = true read_only = true
url = "https://ths.atlantishq.de/remote.php/dav/calendars/backup/ths_shared_by_ths/" url = "https://ths.atlantishq.de/remote.php/dav/calendars/backup/ths_shared_by_ths/"
username = "backup" username = "backup"
password = "" password = "{{ backup_vsyncdir_password }}"
[storage ths_local_caldav] [storage ths_local_caldav]
type = "filesystem" type = "filesystem"
@@ -28,7 +28,7 @@ type = "carddav"
read_only = true read_only = true
url = "https://ths.atlantishq.de/remote.php/dav/addressbooks/users/backup/ths_shared_by_ths/" url = "https://ths.atlantishq.de/remote.php/dav/addressbooks/users/backup/ths_shared_by_ths/"
username = "backup" username = "backup"
password = "" password = "{{ backup_vsyncdir_password }}"
[storage ths_local_carddav] [storage ths_local_carddav]
type = "filesystem" type = "filesystem"
@@ -46,7 +46,7 @@ type = "carddav"
read_only = true read_only = true
url = "https://ths.atlantishq.de/remote.php/dav/addressbooks/users/backup/ths-telefon-1_shared_by_ths/" url = "https://ths.atlantishq.de/remote.php/dav/addressbooks/users/backup/ths-telefon-1_shared_by_ths/"
username = "backup" username = "backup"
password = "" password = "{{ backup_vsyncdir_password }}"
[storage ths_local_carddav_telefon] [storage ths_local_carddav_telefon]
type = "filesystem" type = "filesystem"
+33
View File
@@ -7,6 +7,10 @@
- tcpdump - tcpdump
- git - git
- apt-file - apt-file
- htop
- ncdu
- gpg
- unattended-upgrades
- name: Ensure Opt dir exists and accessible - name: Ensure Opt dir exists and accessible
file: file:
@@ -47,3 +51,32 @@
path: /root/.ssh/authorized_keys path: /root/.ssh/authorized_keys
line: "{{ item }}" line: "{{ item }}"
loop: "{{ extra_root_keys }}" loop: "{{ extra_root_keys }}"
- name: Add journalctl cleanup
ansible.builtin.cron:
name: "check dirs"
minute: "0"
hour: "0"
job: "/usr/bin/journalctl --vacuum-time={{ keep_journal_for_days }}d"
- name: Remove mails in var-mail
ansible.builtin.cron:
name: "Cleanup local mails"
minute: "0"
hour: "0"
job: "/usr/bin/rm -f /var/mail/*"
- name: Template Logrotate configs
template:
src: "{{ item }}"
dest: "/etc/logrotate/logrotate.d/"
with_items:
- daemon.conf
- syslog.conf
- name: Template Unattended Upgrade conf
template:
src: "{{ item }}"
dest: "/etc/apt/apt.conf.d/"
with_items:
- 20auto-upgrades.conf
@@ -0,0 +1,2 @@
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
+9
View File
@@ -0,0 +1,9 @@
/var/log/daemon.log {
daily
rotate {{ keep_journal_for_days }}
compress
delaycompress
missingok
notifempty
create
}
+9
View File
@@ -0,0 +1,9 @@
/var/log/syslog.log {
daily
rotate {{ keep_journal_for_days }}
compress
delaycompress
missingok
notifempty
create
}
+5
View File
@@ -0,0 +1,5 @@
[Peer]
PublicKey = {{ hypervisor_wg_public_key }}
Endpoint= {{ hypervisor_internal_ip }}:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21
+11
View File
@@ -0,0 +1,11 @@
[Interface]
PrivateKey = <server_private_key>
Address = 10.0.0.1/24
ListenPort = 51820
{% for client in clients %}
# {{ client.name }}
[Peer]
PublicKey = <client1_public_key>
AllowedIPs = 10.0.0.{{ loop.index + }}/32
{% endfor %}
+13
View File
@@ -0,0 +1,13 @@
- name: Debian | Add GPG Keys
apt_key:
url: "https://download.docker.com/linux/debian/gpg"
- name: Debian | Add Repo Source
apt_repository:
repo: "deb [arch=amd64] https://download.docker.com/linux/debian bullseye stable"
update_cache: yes
- name: Install docker-ce
apt:
name: docker-ce
state: present
+16
View File
@@ -0,0 +1,16 @@
server {
autoindex on;
autoindex_localtime on;
listen 5051;
root /var/www/cdn/;
add_header Vary Accept-Encoding;
add_header Access-Control-Allow-Origin $http_origin;
location /videos/{
default_type video/mp4;
limit_rate 2m;
autoindex on;
}
}
+2
View File
@@ -0,0 +1,2 @@
kathi:$y$j9T$HISTORY_PURGED_SECRET
sheppy:$y$HISTORY_PURGED_SECRET
@@ -0,0 +1,19 @@
server {
listen 5053;
access_log off;
gzip off;
default_type text/plain;
if ($remote_addr ~* 172\.16\.1\.(.+)){
return 200 "$remote_addr (This is a local VPN ip, it is NOT your true external ip!)";
}
if ($remote_addr ~* 192\.168\.122\.1){
return 200 $http_x_real_ip;
}
location / {
return 200 $remote_addr;
}
}
@@ -9,7 +9,7 @@ server {
autoindex on; autoindex on;
autoindex_localtime on; autoindex_localtime on;
listen 8000; listen 5052;
root /var/www/media; root /var/www/media;
add_header Vary Accept-Encoding; add_header Vary Accept-Encoding;
@@ -23,6 +23,6 @@ server {
location /auth/{ location /auth/{
auth_basic $basic_auth_val; auth_basic $basic_auth_val;
auth_basic_user_file /etc/nginx/htpasswd; auth_basic_user_file /etc/nginx/htpasswd_1;
} }
} }
+1 -1
View File
@@ -5,4 +5,4 @@
- name: restart hub - name: restart hub
shell: shell:
cmd: docker restart atlantis-hub_atlantis-hub_1 cmd: docker restart atlantis-hub_atlantis-hub-1
+124 -28
View File
@@ -1,5 +1,10 @@
- include_vars: services.yaml - include_vars: services.yaml
- name: Deploy Docker daemon.json
template:
src: daemon.json
dest: /etc/docker/daemon.json
- name: Create data-dir - name: Create data-dir
file: file:
name: /data/ name: /data/
@@ -34,6 +39,16 @@
notify: notify:
- reload async icinga settings - reload async icinga settings
- name: Create Event Dispatch Substitutions config dir
file:
name: /data/event-dispatcher/substitutions/
state: directory
- name: Copy Event Dispatcher Substitutions Map
template:
src: event-message-subsitution-map.yaml
dest: /data/event-dispatcher/substitutions/substitutions.yaml
- name: Async Icinga Service (dynamic from backup file) - name: Async Icinga Service (dynamic from backup file)
copy: copy:
src: async-icinga-config-dynamic.json src: async-icinga-config-dynamic.json
@@ -50,14 +65,20 @@
- atlantis-hub - atlantis-hub
- grafana - grafana
- event-dispatcher - event-dispatcher
#- reactive-resume - reactive-resume
- hedgedoc - hedgedoc
- atlantis-verify - atlantis-verify
- soundlib-interface - soundlib-interface
- python-flask-picture-factory - python-flask-picture-factory
- money-balancer - money-balancer
- atlantis-web-check - ntfy
- gotify - code-server
- nginx-media-cdn
- immich
- gitea
- gitea-runner
- atlantis-status
- logstash
- name: Copy AtlantisHub config - name: Copy AtlantisHub config
copy: copy:
@@ -84,6 +105,37 @@
src: "grafana.ini" src: "grafana.ini"
dest: "/data/grafana/grafana.ini" dest: "/data/grafana/grafana.ini"
- name: create_logstash_data_dirs
file:
name: "/data/logstash/{{ item }}"
state: directory
with_items:
- "config"
- "pipeline"
- name: copy_logstash_config
template:
src: "{{ item }}"
dest: "/data/logstash/config/"
with_items:
- "logstash.yml"
- "pipelines.yml"
- name: copy_logstash_pipeline_config
template:
src: "{{ item }}"
dest: "/data/logstash/pipeline/"
with_items:
- "logstash.conf"
- name: copy_atlantis_status_services
template:
src: "{{ item }}.yaml"
dest: "/data/atlantis-status/services/"
with_items:
- "atlantis-array"
- "service-dispatcher-config"
- name: Create compose directories - name: Create compose directories
file: file:
name: "/opt/{{ item }}" name: "/opt/{{ item }}"
@@ -98,15 +150,22 @@
- atlantis-hub - atlantis-hub
- grafana - grafana
- event-dispatcher - event-dispatcher
- tor #- tor
#- reactive-resume - reactive-resume
- hedgedoc - hedgedoc
- atlantis-verify - atlantis-verify
- soundlib-interface - soundlib-interface
- python-flask-picture-factory - python-flask-picture-factory
- money-balancer - money-balancer
- atlantis-web-check - ntfy
- gotify - code-server
- serienampel
- nginx-media-cdn
- immich
- gitea
- gitea-runner
- atlantis-status
- logstash
- name: Copy compose templates - name: Copy compose templates
template: template:
@@ -122,25 +181,50 @@
- atlantis-hub - atlantis-hub
- grafana - grafana
- event-dispatcher - event-dispatcher
- tor #- tor
- hedgedoc - hedgedoc
- atlantis-verify - atlantis-verify
- soundlib-interface - soundlib-interface
- python-flask-picture-factory - python-flask-picture-factory
- money-balancer - money-balancer
- atlantis-web-check - ntfy
- gotify - code-server
- serienampel
- nginx-media-cdn
- immich
- gitea
- gitea-runner
- atlantis-status
- logstash
- name: Log into private registry - name: create sites-enabled dir
docker_login: file:
registry: registry.atlantishq.de path: "/opt/nginx-media-cdn/sites-enabled/"
username: docker state: directory
password: ""
- name: Deploy nginx-media-cdn config files
copy:
src: "{{ item }}"
dest: "/opt/nginx-media-cdn/sites-enabled/"
with_items:
- media.conf
- cdn.conf
- ipcheck.conf
- name: Deploy nginx auth
copy:
src: "{{ item }}"
dest: "/opt/nginx-media-cdn/"
owner: 101
group: 101
with_items:
- htpasswd
- name: Deploy compose templates - name: Deploy compose templates
community.docker.docker_compose: community.docker.docker_compose_v2:
remove_orphans: true
project_src: "/opt/{{ item }}/" project_src: "/opt/{{ item }}/"
pull: true pull: "missing"
files: files:
- "{{ item }}.yaml" - "{{ item }}.yaml"
with_items: with_items:
@@ -153,14 +237,22 @@
- atlantis-hub - atlantis-hub
- grafana - grafana
- event-dispatcher - event-dispatcher
- tor #- tor
- reactive-resume
- hedgedoc - hedgedoc
- atlantis-verify - atlantis-verify
- soundlib-interface - soundlib-interface
- python-flask-picture-factory - python-flask-picture-factory
- money-balancer #- money-balancer
- atlantis-web-check - ntfy
- gotify - code-server
- serienampel
- nginx-media-cdn
- immich
- gitea
- gitea-runner
- atlantis-status
- logstash
- name: OAuth2Proxy directories - name: OAuth2Proxy directories
file: file:
@@ -177,7 +269,8 @@
- python-flask-picture-factory - python-flask-picture-factory
#- reactive-resume #- reactive-resume
- money-balancer - money-balancer
- atlantis-web-check - olive-tin
- atlantis-status
- name: include services ports - name: include services ports
include_vars: services.yaml include_vars: services.yaml
@@ -186,6 +279,7 @@
template: template:
src: oauth-standalone-docker-compose.yaml src: oauth-standalone-docker-compose.yaml
dest: "/opt/oauth2proxy/{{ item }}/docker-compose.yaml" dest: "/opt/oauth2proxy/{{ item }}/docker-compose.yaml"
#remove_orphans: true
with_items: with_items:
- tmnf-replay-server - tmnf-replay-server
- atlantis-hub - atlantis-hub
@@ -194,14 +288,15 @@
- atlantis-verify - atlantis-verify
- soundlib-interface - soundlib-interface
- python-flask-picture-factory - python-flask-picture-factory
#- reactive-resume - reactive-resume
- money-balancer - money-balancer
- atlantis-web-check - olive-tin
- atlantis-status
- name: Deploy OAuth2Proxy - name: Deploy OAuth2Proxy
community.docker.docker_compose: community.docker.docker_compose_v2:
project_src: /opt/oauth2proxy/{{ item }}/ project_src: /opt/oauth2proxy/{{ item }}/
pull: true pull: always
with_items: with_items:
- tmnf-replay-server - tmnf-replay-server
- atlantis-hub - atlantis-hub
@@ -211,5 +306,6 @@
- soundlib-interface - soundlib-interface
- python-flask-picture-factory - python-flask-picture-factory
#- reactive-resume #- reactive-resume
- money-balancer #- money-balancer
- atlantis-web-check - olive-tin
- atlantis-status
@@ -1,4 +1,5 @@
async-icinga: services:
async-icinga:
volumes: volumes:
- "/data/async-icinga/:/app/config" - "/data/async-icinga/:/app/config"
- "/data/async-icinga/instance/:/app/instance/" - "/data/async-icinga/instance/:/app/instance/"
@@ -1,5 +1,6 @@
athqlanding: services:
athqlanding:
ports: ports:
- 5002:5000 - 5002:5000
image: registry.atlantishq.de/athq/landing-page image: harbor-registry.atlantishq.de/atlantishq/athq-landing-page
restart: always restart: always
@@ -0,0 +1,23 @@
name: Atlantis Array
hook_operations:
- start_service:
passive: true
- unlock_service:
location:
url:
- https://ipv4-vpn-activate.atlantishq.de:10443/activate
- https://ipv6-vpn-activate.atlantishq.de:10443/activate
client_secret: https://ipv4-vpn-activate.atlantishq.de:10443/one-time-token
client_secret_field: "secret"
args:
secret: "{{ atlantis_array_action_pw }}"
status_url: https://vpn-activate.atlantishq.de:10443/am-i-unlocked
client: true
register_endpoints:
- start_service:
token: token_1
groups:
- trackmania
@@ -1,5 +1,6 @@
atlantis-hub: services:
image: registry.atlantishq.de/atlantis-hub:latest atlantis-hub:
image: harbor-registry.atlantishq.de/atlantishq/atlantis-hub:latest
restart: always restart: always
ports: ports:
- 6011:5000 - 6011:5000
@@ -0,0 +1,8 @@
services:
atlantis-status-management:
ports:
- 6026:5000
volumes:
- /data/atlantis-status/services:/app/services
image: harbor-registry.atlantishq.de/atlantishq/atlantis-status:latest
restart: always
@@ -1,4 +1,5 @@
atlantis-verify: services:
atlantis-verify:
image: harbor-registry.atlantishq.de/atlantishq/atlantis-verify:latest image: harbor-registry.atlantishq.de/atlantishq/atlantis-verify:latest
restart: always restart: always
environment: environment:
@@ -9,6 +10,8 @@ atlantis-verify:
LDAP_BASE_DN: {{ ldap_user_dn }} LDAP_BASE_DN: {{ ldap_user_dn }}
DISPATCH_SERVER: {{ event_dispatcher_address }} DISPATCH_SERVER: {{ event_dispatcher_address }}
DISPATCH_SETTINGS_TOKEN: {{ notification_settings_access_token }}
DISPATCH_ACCESS_TOKEN: {{ event_dispatcher_pass }}
SQLALCHEMY_DATABASE_URI: "instance/database.sqlite" SQLALCHEMY_DATABASE_URI: "instance/database.sqlite"
@@ -19,8 +22,11 @@ atlantis-verify:
MAIN_HOME: https://hub.atlantishq.de MAIN_HOME: https://hub.atlantishq.de
DISPATCH_AUTH_USER: {{ event_dispatcher_user }} NTFY_ACCESS_TOKEN: {{ ntfy_api_access_token }}
DISPATCH_AUTH_PASSWORD: {{ event_dispatcher_pass }} NTFY_API_TARGET: {{ ntfy_api_target }}
NTFY_PUSH_TARGET: {{ ntfy_push_target }}
OIDC_ADMIN_USER: sheppy
ports: ports:
- {{ services[item].port + 1000 }}:5000 - {{ services[item].port + 1000 }}:5000
@@ -1,4 +1,3 @@
version: "3.3"
services: services:
master: master:
image: harbor-registry.atlantishq.de/atlantishq/atlantis-webcheck-master:latest image: harbor-registry.atlantishq.de/atlantishq/atlantis-webcheck-master:latest
@@ -0,0 +1,12 @@
services:
code:
image: codercom/code-server
volumes:
- /data/code-server/projects/:/home/coder/project/
- /data/code-server/data:/data
environment:
- PASSWORD={{ code_server_password }}
ports:
- 5020:8080
command: code-server --auth password
restart: always
@@ -0,0 +1,5 @@
{
"live-restore": true,
"storage-driver": "overlay2",
"log-opts": { "max-size": "10m" }
}
@@ -1,14 +1,44 @@
event-dispatcher: services:
event-dispatcher:
ports: ports:
- 5007:5000 - 5007:5000
image: registry.atlantishq.de/athq/event-dispatcher image: harbor-registry.atlantishq.de/atlantishq/event-dispatcher
restart: always restart: always
volumes: volumes:
- "/data/event-dispatcher/instance/:/app/instance/" - "/data/event-dispatcher/instance/:/app/instance/"
- "/data/event-dispatcher/substitutions/:/app/substitutions/"
environment: environment:
SIGNAL_API_PASS: "{{ event_dispatcher_pass }}"
LDAP_SERVER : "{{ ldap_connection_url }}" LDAP_SERVER : "{{ ldap_connection_url }}"
LDAP_BIND_DN : "{{ ldap_bind_dn }}" LDAP_BIND_DN : "{{ ldap_bind_dn }}"
LDAP_BIND_PW : "{{ ldap_password }}" LDAP_BIND_PW : "{{ ldap_password }}"
LDAP_BASE_DN : "{{ ldap_user_dn }}" LDAP_BASE_DN : "{{ ldap_user_dn }}"
SIGNAL_GATEWAY_PASS: "{{ event_dispatcher_token }}"
DISPATCH_ACCESS_TOKEN: "{{ event_dispatcher_pass }}"
SETTINGS_ACCESS_TOKEN: "{{ notification_settings_access_token }}"
SUBSTITUTION_MAP: /app/substitutions/substitutions.yaml
event-dispatcher-worker:
image: harbor-registry.atlantishq.de/atlantishq/event-dispatcher-worker
restart: always
environment:
DISPATCH_SERVER: "{{ event_dispatcher_proto }}://{{ event_dispatcher_host }}"
DISPATCH_ACCESS_TOKEN: "{{ event_dispatcher_pass }}"
NTFY_PUSH_TARGET: "{{ ntfy_push_target }}"
NTFY_USER: "admin"
NTFY_PASS: "{{ ntfy_api_access_token }}"
NTFY_API_SERVER: "{{ ntfy_api_target }}"
NTFY_API_TOKEN: "{{ ntfy_api_access_token }}"
LDAP_SERVER : "{{ ldap_connection_url }}"
LDAP_BIND_DN : "{{ ldap_bind_dn }}"
LDAP_BIND_PW : "{{ ldap_password }}"
LDAP_BASE_DN : "{{ ldap_user_dn }}"
SMTP_TARGET: "{{ smtp_internal_host }}"
SMTP_PORT: "{{ smtp_internal_host_port }}"
SMTP_USER: "{{ smtp_service_user }}@atlantishq.de"
SMTP_PASS: "{{ smtp_service_pass }}"
@@ -0,0 +1,19 @@
prometheus: "vnet0:"
paperless: "vnet1:"
usermanagement: "vnet2:"
git: "vnet3:"
harbor-registry: "vnet4:"
irc-new: "vnet5:"
backup: "vnet6:"
ths: "vnet7:"
signal: "vnet8:"
zabbix: "vnet9:"
kathi: "vnet10:"
vpn: "vnet11:"
timetracking: "vnet12:"
monitoring: "vnet13:"
mail: "vnet14:"
nextcloud-athq: "vnet15:"
steam-master: "vnet16:"
kube1: "vnet20:"
nextcloud-s3-oidc: "vnet22:"
@@ -0,0 +1,25 @@
services:
ferchau-wscad:
image: harbor-registry.atlantishq.de/guenter/wscad-server
restart: always
ports:
- 6019:5000
volumes:
- data:/app/data/
openssh-server:
image: lscr.io/linuxserver/openssh-server:latest
restart: always
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- SUDO_ACCESS=false
- PASSWORD_ACCESS=true
- USER_NAME={{ ferchau_sftp_user }}
- USER_PASSWORD={{ ferchau_sftp_password }}
volumes:
- data:/config/data
ports:
- 2222:2222
volumes:
data:
@@ -0,0 +1,13 @@
services:
runner:
image: gitea/act_runner:nightly
environment:
CONFIG_FILE: /config.yaml
GITEA_INSTANCE_URL: "https://git.athq.de"
GITEA_RUNNER_REGISTRATION_TOKEN: "{{ gitea_runner_registration_token }}"
GITEA_RUNNER_NAME: "atlantis-runner"
GITEA_RUNNER_LABELS: "ubuntu-latest,atlantis"
volumes:
- /data/gitea-runner/config.yaml:/config.yaml
- /data/gitea-runner/data:/data
- /var/run/docker.sock:/var/run/docker.sock
@@ -0,0 +1,40 @@
version: "3"
networks:
gitea:
external: false
services:
gitea-server:
image: gitea/gitea:latest
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD={{ gitea_postgres_pw }}
restart: always
networks:
- gitea
volumes:
- /data/gitea/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "5024:3000"
- "222:22"
depends_on:
- db
db:
image: postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD={{ gitea_postgres_pw }}
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- /data/gitea/pg-data:/var/lib/postgresql/data
@@ -1,11 +0,0 @@
gotify:
image: gotify/server
restart: always
environment:
- TZ="Europe/Berlin"
- GOTIFY_DEFAULTUSER_NAME={{ gotify_user }}
- GOTIFY_DEFAULTUSER_PASS={{ gotify_password }}
ports:
- 4001:80
volumes:
- /data/gotify/data:/app/data
@@ -304,7 +304,7 @@
;admin_email = admin@localhost ;admin_email = admin@localhost
# used for signing # used for signing
;secret_key = SW2YcwTIb9zpOOhoPsMm ;secret_key = HISTORY_PURGED_SECRET
# current key provider used for envelope encryption, default to static value specified by secret_key # current key provider used for envelope encryption, default to static value specified by secret_key
;encryption_provider = secretKey.v1 ;encryption_provider = secretKey.v1
@@ -1,4 +1,5 @@
grafana: services:
grafana:
ports: ports:
- 4000:3000 - 4000:3000
image: grafana/grafana-oss image: grafana/grafana-oss
@@ -1,19 +1,18 @@
version: '3'
services: services:
database: database:
image: postgres:13.4-alpine image: postgres:15-alpine
environment: environment:
- POSTGRES_USER=hedgedoc - POSTGRES_USER=hedgedoc
- POSTGRES_PASSWORD=D7OIx5VBUa7nEzdy6f - POSTGRES_PASSWORD={{ hedgedoc_db_password }}
- POSTGRES_DB=hedgedoc - POSTGRES_DB=hedgedoc
volumes: volumes:
- /data/hedgedoc/pgsql:/var/lib/postgresql/data - /data/hedgedoc/pgsql:/var/lib/postgresql/data
restart: always restart: always
app: app:
# Make sure to use the latest release from https://hedgedoc.org/latest-release # Make sure to use the latest release from https://hedgedoc.org/latest-release
image: quay.io/hedgedoc/hedgedoc:1.9.9 image: quay.io/hedgedoc/hedgedoc:latest
environment: environment:
- CMD_DB_URL=postgres://hedgedoc:D7OIx5VBUa7nEzdy6f@database:5432/hedgedoc - CMD_DB_URL=postgres://hedgedoc:{{ hedgedoc_db_password }}@database:5432/hedgedoc
- CMD_DOMAIN=hedgedoc.atlantishq.de - CMD_DOMAIN=hedgedoc.atlantishq.de
- CMD_PROTOCOL_USESSL=true - CMD_PROTOCOL_USESSL=true
- CMD_ALLOW_ORIGIN=['hedgedoc.atlantishq.de'] - CMD_ALLOW_ORIGIN=['hedgedoc.atlantishq.de']
@@ -23,7 +22,7 @@ services:
- CMD_OAUTH2_TOKEN_URL=https://{{ keycloak_address }}/realms/master/protocol/openid-connect/token - CMD_OAUTH2_TOKEN_URL=https://{{ keycloak_address }}/realms/master/protocol/openid-connect/token
- CMD_OAUTH2_AUTHORIZATION_URL=https://{{ keycloak_address }}/realms/master/protocol/openid-connect/auth - CMD_OAUTH2_AUTHORIZATION_URL=https://{{ keycloak_address }}/realms/master/protocol/openid-connect/auth
- CMD_OAUTH2_CLIENT_ID=z_hedgedoc - CMD_OAUTH2_CLIENT_ID=z_hedgedoc
- CMD_OAUTH2_CLIENT_SECRET=T4kvtI0ZF1JepEbmTm9bCksCJkuDOicGd - CMD_OAUTH2_CLIENT_SECRET={{ keycloak_clients['hedgedoc']['client_secret'] }}
- CMD_OAUTH2_SCOPE=openid email profile - CMD_OAUTH2_SCOPE=openid email profile
- CMD_OAUTH2_ROLES_CLAIM=roles - CMD_OAUTH2_ROLES_CLAIM=roles
- CMD_OAUTH2_PROVIDERNAME=AtlantisHQ Auth - CMD_OAUTH2_PROVIDERNAME=AtlantisHQ Auth
@@ -0,0 +1,57 @@
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:release
volumes:
- /data/immich/upload:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
environment:
DB_USERNAME: postgres
DB_PASSWORD: HISTORY_PURGED_SECRET
DB_DATABASE_NAME: immich
ports:
- 2283:2283
depends_on:
- redis
- database
restart: always
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:release
volumes:
- model-cache:/cache
environment:
DB_USERNAME: postgres
DB_PASSWORD: HISTORY_PURGED_SECRET
DB_DATABASE_NAME: immich
restart: always
redis:
container_name: immich_redis
image: docker.io/redis:6.2-alpine
healthcheck:
test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
POSTGRES_PASSWORD: {{ immich_pg_password }}
POSTGRES_USER: postgres
POSTGRES_DB: immich
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- /data/immich/pgdata:/var/lib/postgresql/data
healthcheck:
test: pg_isready --dbname='immich' --username='postgres' || exit 1; Chksum="$$(psql --dbname='immich' --username='postgres' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
interval: 5m
start_interval: 30s
start_period: 5m
command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
restart: always
volumes:
model-cache:
@@ -0,0 +1,33 @@
input {
beats {
port => 5044
}
}
output {
if [fields][container_logs] {
opensearch {
hosts => ["https://atlantishq.de:9200"]
index => "filebeat-containers-dev-%{+YYYY.MM.dd}"
ssl_certificate_verification => false
user => "logstash"
password => "HISTORY_PURGED_SECRET"
}
}else if [fields][syslog] {
opensearch {
hosts => ["https://atlantishq.de:9200"]
index => "filebeat-syslog-dev-%{+YYYY.MM.dd}"
ssl_certificate_verification => false
user => "logstash"
password => "HISTORY_PURGED_SECRET"
}
}else{
opensearch {
hosts => ["https://atlantishq.de:9200"]
index => "filebeat-dev-%{+YYYY.MM.dd}"
ssl_certificate_verification => false
user => "logstash"
password => "HISTORY_PURGED_SECRET"
}
}
}
@@ -0,0 +1,13 @@
version: "3.8"
services:
logstash:
restart: always
image: opensearchproject/logstash-oss-with-opensearch-output-plugin:8.9.0
container_name: logstash
ports:
- "5044:5044"
volumes:
- /data/logstash/config:/usr/share/logstash/config
- /data/logstash/pipeline:/usr/share/logstash/pipeline
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
@@ -0,0 +1,2 @@
http.host: "0.0.0.0"
#xpack.monitoring.enabled: false
@@ -1,4 +1,3 @@
version: "3"
services: services:
money-balancer: money-balancer:
image: ghcr.io/dorianim/money-balancer image: ghcr.io/dorianim/money-balancer
@@ -8,7 +7,7 @@ services:
volumes: volumes:
- /data/money-balancer:/data - /data/money-balancer:/data
environment: environment:
- MONEYBALANCER_JWT_SECRET=Opta7EkHqgBWUDZULVypcP8FCxw511 - MONEYBALANCER_JWT_SECRET={{ money_balancer_jwt_secret }}
- MONEYBALANCER_AUTH_LOCAL_ENABLED=false - MONEYBALANCER_AUTH_LOCAL_ENABLED=false
- MONEYBALANCER_AUTH_PROXY_ENABLED=true - MONEYBALANCER_AUTH_PROXY_ENABLED=true
- MONEYBALANCER_AUTH_PROXY_HEADERS_USERNAME=x-forwarded-preferred-username - MONEYBALANCER_AUTH_PROXY_HEADERS_USERNAME=x-forwarded-preferred-username
@@ -0,0 +1,13 @@
services:
nginx:
image: nginx:latest
restart: always
ports:
- "5051:5051"
- "5052:5052"
- "5053:5053"
volumes:
- /opt/nginx-media-cdn/sites-enabled:/etc/nginx/conf.d
- /opt/nginx-media-cdn/htpasswd:/etc/nginx/htpasswd_1
- /data/nginx-media-cdn/cdn:/var/www/cdn
- /data/nginx-media-cdn/media:/var/www/media
@@ -0,0 +1,37 @@
services:
ntfy:
image: binwiederhier/ntfy
container_name: ntfy
command:
- serve
environment:
NTFY_BASE_URL: "https://push.atlantishq.de"
NTFY_BEHIND_PROXY: "true"
NTFY_AUTH_FILE: "/userdb/user.db"
NTFY_AUTH_DEFAULT_ACCESS: "deny-all"
volumes:
- /data/ntfy/cache/ntfy:/var/cache/ntfy
- /data/ntfy/etc/ntfy:/etc/ntfy
- /data/ntfy/userdb/:/userdb/
ports:
- 4001:80
healthcheck: # optional: remember to adapt the host:port to your environment
test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"]
interval: 60s
timeout: 10s
retries: 3
start_period: 40s
restart: unless-stopped
ntfy-api:
image: harbor-registry.atlantishq.de/atlantishq/ntfy-api
ports:
- 4002:5000
depends_on:
- ntfy
environment:
ACCESS_TOKEN: {{ ntfy_api_access_token }}
NTFY_AUTH_FILE: "/userdb/user.db"
volumes:
- /data/ntfy/userdb/:/userdb/
- /data/ntfy/instance/:/app/instance/
restart: unless-stopped
@@ -0,0 +1,2 @@
- pipeline.id: main
path.config: "/usr/share/logstash/pipeline/logstash.conf"
@@ -1,4 +1,5 @@
potaris: services:
potaris:
ports: ports:
- 5003:5000 - 5003:5000
- 5004:5000 - 5004:5000
@@ -1,4 +1,3 @@
version: '3'
services: services:
image-factory: image-factory:
image: harbor-registry.atlantishq.de/atlantishq/atlantis-image-factory:latest image: harbor-registry.atlantishq.de/atlantishq/atlantis-image-factory:latest
@@ -12,13 +12,13 @@ services:
- resume - resume
environment: environment:
MINIO_ROOT_USER: minioadmin MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: WGTVrFT73kwv0CbKa0PR MINIO_ROOT_PASSWORD: {{ reactive_resume_minio_password }}
db: db:
image: postgres:13 image: postgres:13
environment: environment:
- POSTGRES_USER=reactiveresume - POSTGRES_USER=reactiveresume
- POSTGRES_PASSWORD=pwMOJntCfXdwF9ExnjNi - POSTGRES_PASSWORD={{ reactive_resume_postgres_password }}
- POSTGRES_DB=reactiveresume - POSTGRES_DB=reactiveresume
restart: always restart: always
volumes: volumes:
@@ -65,11 +65,11 @@ services:
CHROME_URL: ws://chrome:3000 CHROME_URL: ws://chrome:3000
# -- Database (Postgres) -- # -- Database (Postgres) --
DATABASE_URL: postgresql://reactiveresume:pwMOJntCfXdwF9ExnjNi@db:5432/postgres DATABASE_URL: postgresql://reactiveresume:{{ reactive_resume_postgres_password }}@db:5432/postgres
# -- Auth -- # -- Auth --
ACCESS_TOKEN_SECRET: 2EkPnUqJIE2EkPnUqJIE ACCESS_TOKEN_SECRET: {{ reactive_resume_access_token }}
REFRESH_TOKEN_SECRET: cihib7NzMxcihib7NzMx REFRESH_TOKEN_SECRET: {{ reactive_resume_refresh_token }}
# -- Emails -- # -- Emails --
MAIL_FROM: noreply@atlantishq.de MAIL_FROM: noreply@atlantishq.de
@@ -80,7 +80,7 @@ services:
STORAGE_PORT: 9000 STORAGE_PORT: 9000
STORAGE_BUCKET: default STORAGE_BUCKET: default
STORAGE_ACCESS_KEY: minioadmin STORAGE_ACCESS_KEY: minioadmin
STORAGE_SECRET_KEY: WGTVrFT73kwv0CbKa0PR STORAGE_SECRET_KEY: {{ reactive_resume_minio_password }}
# -- Cache (Redis) -- # -- Cache (Redis) --
REDIS_URL: redis://default:password@redis:6379 REDIS_URL: redis://default:password@redis:6379
@@ -1,5 +1,6 @@
sector32: services:
sector32:
ports: ports:
- 5001:5000 - 5001:5000
image: registry.atlantishq.de/athq/sector32 image: harbor-registry.atlantishq.de/atlantishq/sector32
restart: always restart: always
@@ -0,0 +1,6 @@
services:
serienampel:
image: harbor-registry.atlantishq.de/atlantishq/serienampel:latest
restart: always
ports:
- "5021:5000"
@@ -0,0 +1,34 @@
name: Dispatcher Downtime
hook_operations:
- 5_minutes_downtime:
location:
url:
- https://dispatcher.atlantishq.de/downtime
method: "POST"
args:
token: "{{ notification_settings_access_token }}"
minutes: 5
client: false
- 30_minutes_downtime:
location:
url:
- https://dispatcher.atlantishq.de/downtime
method: "POST"
args:
token: "{{ notification_settings_access_token }}"
minutes: 30
status_url: https://dispatcher.atlantishq.de/downtime
client: false
- 24_hours_downtime:
location:
url:
- https://dispatcher.atlantishq.de/downtime
method: "POST"
args:
token: "{{ notification_settings_access_token }}"
minutes: 720
client: false
groups:
- pki
@@ -1,4 +1,3 @@
version: '3'
services: services:
soundlib: soundlib:
image: harbor-registry.atlantishq.de/atlantishq/atlantis-soundlib:latest image: harbor-registry.atlantishq.de/atlantishq/atlantis-soundlib:latest
@@ -1,4 +1,5 @@
tmnf-replay-server: services:
tmnf-replay-server:
image: harbor-registry.atlantishq.de/atlantishq/tmnf-replay-server:latest image: harbor-registry.atlantishq.de/atlantishq/tmnf-replay-server:latest
restart: always restart: always
ports: ports:
@@ -9,6 +10,4 @@ tmnf-replay-server:
environment: environment:
SQLITE_LOCATION: sqlite:////app/data/sqlite.db SQLITE_LOCATION: sqlite:////app/data/sqlite.db
DISPATCH_SERVER: {{ event_dispatcher_address }} DISPATCH_SERVER: {{ event_dispatcher_address }}
DISPATCH_AUTH_USER: {{ event_dispatcher_user }} DISPATCH_TOKEN: {{ event_dispatcher_pass }}
DISPATCH_AUTH_PASSWORD: {{ event_dispatcher_pass }}
+2 -2
View File
@@ -7,8 +7,8 @@ services:
environment: environment:
- OR_PORT=20000 - OR_PORT=20000
- PT_PORT=20001 - PT_PORT=20001
- EMAIL=nobody@nowhere.com - EMAIL={{ tor_bridge_email }}
- NICKNAME=nowhere - NICKNAME={{ tor_bridge_name }}
- OBFS4_ENABLE_ADDITIONAL_VARIABLES=1 - OBFS4_ENABLE_ADDITIONAL_VARIABLES=1
- OBFS4V_AddressDisableIPv6=1 - OBFS4V_AddressDisableIPv6=1
# - OBFS4V_PublishServerDescriptor=0 # - OBFS4V_PublishServerDescriptor=0
@@ -0,0 +1,65 @@
ersion: '3.5'
services:
tubearchivist:
container_name: tubearchivist
restart: unless-stopped
image: bbilly1/tubearchivist
ports:
- 8000:8000
volumes:
- media:/youtube
- cache:/cache
environment:
- ES_URL=http://archivist-es:9200 # needs protocol e.g. http and port
- REDIS_HOST=archivist-redis # don't add protocol
- HOST_UID=1000
- HOST_GID=1000
- TA_HOST=tubearchivist.local # set your host name
- TA_USERNAME=tubearchivist # your initial TA credentials
- TA_PASSWORD=verysecret # your initial TA credentials
- ELASTIC_PASSWORD={{ tube_archivist_elasticsearch_password }}
- TZ=Europe/Berlin # set your time zone
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 2m
timeout: 10s
retries: 3
start_period: 30s
depends_on:
- archivist-es
- archivist-redis
archivist-redis:
image: redis/redis-stack-server
container_name: archivist-redis
restart: unless-stopped
expose:
- "6379"
volumes:
- redis:/data
depends_on:
- archivist-es
archivist-es:
image: bbilly1/tubearchivist-es # only for amd64, or use official es 8.14.3
container_name: archivist-es
restart: unless-stopped
environment:
- "ELASTIC_PASSWORD={{ tube_archivist_elasticsearch_password }}"
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
- "xpack.security.enabled=true"
- "discovery.type=single-node"
- "path.repo=/usr/share/elasticsearch/data/snapshot"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es:/usr/share/elasticsearch/data # check for permission error when using bind mount, see readme
expose:
- "9200"
volumes:
media:
cache:
redis:
es:
+4
View File
@@ -0,0 +1,4 @@
- name: restart filebeat
systemd:
name: filebeat
state: restarted
+40
View File
@@ -0,0 +1,40 @@
---
- name: Add Elastic GPG key
ansible.builtin.apt_key:
url: https://artifacts.elastic.co/GPG-KEY-elasticsearch
state: present
- name: Ensure apt-transport-https is installed
ansible.builtin.apt:
name: apt-transport-https
state: present
update_cache: yes
- name: Add Elastic repository (OSS package)
ansible.builtin.copy:
dest: /etc/apt/sources.list.d/elastic-8.x.list
content: "deb https://artifacts.elastic.co/packages/oss-8.x/apt stable main\n"
owner: root
group: root
mode: '0644'
- name: Update apt cache
ansible.builtin.apt:
update_cache: yes
- name: Install Filebeat
ansible.builtin.apt:
name: filebeat
state: present
- name: Enable Filebeat to start on boot
ansible.builtin.systemd:
name: filebeat
enabled: yes
- name: copy filebeat config
template:
src: filebeat.yml
dest: /etc/filebeat/filebeat.yml
notify:
- restart filebeat
+50
View File
@@ -0,0 +1,50 @@
logging.level: error
filebeat.inputs:
- type: filestream
id: kube1-var-log
enabled: true
paths:
- /var/log/syslog
fields:
syslog: true
processors:
- syslog:
field: message
- type: log
paths:
- "/var/lib/docker/containers/*/*.log"
json.keys_under_root: true
json.add_error_key: true
json.overwrite_keys: true
fields:
container_logs: true
processors:
- dissect:
tokenizer: '{"test": %{json_data}}'
field: message
target_prefix: ""
ignore_failure: true
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 1
setup.kibana:
output.logstash:
hosts: ["192.168.122.1:5044"]
processors:
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
- drop_fields:
fields: ["host.ip", "host.mac"]
- add_docker_metadata:
host: "unix:///var/run/docker.sock"
+15
View File
@@ -30,6 +30,11 @@
name: dovecot name: dovecot
state: restarted state: restarted
- name: reload nginx
systemd:
name: nginx
state: reloaded
- name: restart nginx - name: restart nginx
systemd: systemd:
name: nginx name: nginx
@@ -45,11 +50,21 @@
name: opendkim name: opendkim
state: restarted state: restarted
- name: restart docker
systemd:
name: docker
state: restarted
- name: restart slapd - name: restart slapd
systemd: systemd:
name: slapd-custom name: slapd-custom
state: restarted state: restarted
- name: restart php-fpm
systemd:
name: php8.2-fpm
state: restarted
- name: daemon reload - name: daemon reload
systemd: systemd:
daemon-reload: yes daemon-reload: yes
+1 -1
View File
@@ -5,7 +5,7 @@
"oidc_groups_claim": "groups", "oidc_groups_claim": "groups",
"oidc_admin_group": "pki", "oidc_admin_group": "pki",
"oidc_client_id": "z_harbor", "oidc_client_id": "z_harbor",
"oidc_client_secret": "TODO MUST BE SET", "oidc_client_secret": "{{ keycloak_clients['harbor']['client_secret'] }}",
"oidc_scope": "openid,email,profile", "oidc_scope": "openid,email,profile",
"oidc_verify_cert": "true", "oidc_verify_cert": "true",
"oidc_auto_onboard": "true", "oidc_auto_onboard": "true",
+522
View File
@@ -0,0 +1,522 @@
# Calico Version v3.3.7
# https://docs.projectcalico.org/v3.3/releases#v3.3.7
# This manifest includes the following component versions:
# calico/node:v3.3.7
# calico/cni:v3.3.7
# This ConfigMap is used to configure a self-hosted Calico installation.
kind: ConfigMap
apiVersion: v1
metadata:
name: calico-config
namespace: kube-system
data:
# To enable Typha, set this to "calico-typha" *and* set a non-zero value for Typha replicas
# below. We recommend using Typha if you have more than 50 nodes. Above 100 nodes it is
# essential.
typha_service_name: "none"
# Configure the Calico backend to use.
calico_backend: "bird"
# Configure the MTU to use
veth_mtu: "1440"
# The CNI network configuration to install on each node. The special
# values in this config will be automatically populated.
cni_network_config: |-
{
"name": "k8s-pod-network",
"cniVersion": "0.3.0",
"plugins": [
{
"type": "calico",
"log_level": "info",
"datastore_type": "kubernetes",
"nodename": "__KUBERNETES_NODE_NAME__",
"mtu": __CNI_MTU__,
"ipam": {
"type": "host-local",
"subnet": "usePodCidr"
},
"policy": {
"type": "k8s"
},
"kubernetes": {
"kubeconfig": "__KUBECONFIG_FILEPATH__"
}
},
{
"type": "portmap",
"snat": true,
"capabilities": {"portMappings": true}
}
]
}
---
# This manifest creates a Service, which will be backed by Calico's Typha daemon.
# Typha sits in between Felix and the API server, reducing Calico's load on the API server.
apiVersion: v1
kind: Service
metadata:
name: calico-typha
namespace: kube-system
labels:
k8s-app: calico-typha
spec:
ports:
- port: 5473
protocol: TCP
targetPort: calico-typha
name: calico-typha
selector:
k8s-app: calico-typha
---
# This manifest creates a Deployment of Typha to back the above service.
apiVersion: apps/v1
kind: Deployment
metadata:
name: calico-typha
namespace: kube-system
labels:
k8s-app: calico-typha
spec:
# Number of Typha replicas. To enable Typha, set this to a non-zero value *and* set the
# typha_service_name variable in the calico-config ConfigMap above.
#
# We recommend using Typha if you have more than 50 nodes. Above 100 nodes it is essential
# (when using the Kubernetes datastore). Use one replica for every 100-200 nodes. In
# production, we recommend running at least 3 replicas to reduce the impact of rolling upgrade.
replicas: 0
revisionHistoryLimit: 2
template:
metadata:
labels:
k8s-app: calico-typha
annotations:
# This, along with the CriticalAddonsOnly toleration below, marks the pod as a critical
# add-on, ensuring it gets priority scheduling and that its resources are reserved
# if it ever gets evicted.
scheduler.alpha.kubernetes.io/critical-pod: ''
cluster-autoscaler.kubernetes.io/safe-to-evict: 'true'
spec:
nodeSelector:
beta.kubernetes.io/os: linux
hostNetwork: true
tolerations:
# Mark the pod as a critical add-on for rescheduling.
- key: CriticalAddonsOnly
operator: Exists
# Since Calico can't network a pod until Typha is up, we need to run Typha itself
# as a host-networked pod.
serviceAccountName: calico-node
containers:
- image: calico/typha:v3.3.7
name: calico-typha
ports:
- containerPort: 5473
name: calico-typha
protocol: TCP
env:
# Enable "info" logging by default. Can be set to "debug" to increase verbosity.
- name: TYPHA_LOGSEVERITYSCREEN
value: "info"
# Disable logging to file and syslog since those don't make sense in Kubernetes.
- name: TYPHA_LOGFILEPATH
value: "none"
- name: TYPHA_LOGSEVERITYSYS
value: "none"
# Monitor the Kubernetes API to find the number of running instances and rebalance
# connections.
- name: TYPHA_CONNECTIONREBALANCINGMODE
value: "kubernetes"
- name: TYPHA_DATASTORETYPE
value: "kubernetes"
- name: TYPHA_HEALTHENABLED
value: "true"
# Uncomment these lines to enable prometheus metrics. Since Typha is host-networked,
# this opens a port on the host, which may need to be secured.
#- name: TYPHA_PROMETHEUSMETRICSENABLED
# value: "true"
#- name: TYPHA_PROMETHEUSMETRICSPORT
# value: "9093"
livenessProbe:
exec:
command:
- calico-typha
- check
- liveness
periodSeconds: 30
initialDelaySeconds: 30
readinessProbe:
exec:
command:
- calico-typha
- check
- readiness
periodSeconds: 10
---
# This manifest creates a Pod Disruption Budget for Typha to allow K8s Cluster Autoscaler to evict
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: calico-typha
namespace: kube-system
labels:
k8s-app: calico-typha
spec:
maxUnavailable: 1
selector:
matchLabels:
k8s-app: calico-typha
---
# This manifest installs the calico/node container, as well
# as the Calico CNI plugins and network config on
# each master and worker node in a Kubernetes cluster.
kind: DaemonSet
apiVersion: extensions/v1
metadata:
name: calico-node
namespace: kube-system
labels:
k8s-app: calico-node
spec:
selector:
matchLabels:
k8s-app: calico-node
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
template:
metadata:
labels:
k8s-app: calico-node
annotations:
# This, along with the CriticalAddonsOnly toleration below,
# marks the pod as a critical add-on, ensuring it gets
# priority scheduling and that its resources are reserved
# if it ever gets evicted.
scheduler.alpha.kubernetes.io/critical-pod: ''
spec:
nodeSelector:
beta.kubernetes.io/os: linux
hostNetwork: true
tolerations:
# Make sure calico-node gets scheduled on all nodes.
- effect: NoSchedule
operator: Exists
# Mark the pod as a critical add-on for rescheduling.
- key: CriticalAddonsOnly
operator: Exists
- effect: NoExecute
operator: Exists
serviceAccountName: calico-node
# Minimize downtime during a rolling upgrade or deletion; tell Kubernetes to do a "force
# deletion": https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods.
terminationGracePeriodSeconds: 0
containers:
# Runs calico/node container on each Kubernetes node. This
# container programs network policy and routes on each
# host.
- name: calico-node
image: calico/node:v3.3.7
env:
# Use Kubernetes API as the backing datastore.
- name: DATASTORE_TYPE
value: "kubernetes"
# Typha support: controlled by the ConfigMap.
- name: FELIX_TYPHAK8SSERVICENAME
valueFrom:
configMapKeyRef:
name: calico-config
key: typha_service_name
# Wait for the datastore.
- name: WAIT_FOR_DATASTORE
value: "true"
# Set based on the k8s node name.
- name: NODENAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
# Choose the backend to use.
- name: CALICO_NETWORKING_BACKEND
valueFrom:
configMapKeyRef:
name: calico-config
key: calico_backend
# Cluster type to identify the deployment type
- name: CLUSTER_TYPE
value: "k8s,bgp"
# Auto-detect the BGP IP address.
- name: IP
value: "autodetect"
# Enable IPIP
- name: CALICO_IPV4POOL_IPIP
value: "Always"
# Set MTU for tunnel device used if ipip is enabled
- name: FELIX_IPINIPMTU
valueFrom:
configMapKeyRef:
name: calico-config
key: veth_mtu
# The default IPv4 pool to create on startup if none exists. Pod IPs will be
# chosen from this range. Changing this value after installation will have
# no effect. This should fall within `--cluster-cidr`.
- name: CALICO_IPV4POOL_CIDR
value: "10.10.0.0/18"
# Disable file logging so `kubectl logs` works.
- name: CALICO_DISABLE_FILE_LOGGING
value: "true"
# Set Felix endpoint to host default action to ACCEPT.
- name: FELIX_DEFAULTENDPOINTTOHOSTACTION
value: "ACCEPT"
# Disable IPv6 on Kubernetes.
- name: FELIX_IPV6SUPPORT
value: "false"
# Set Felix logging to "info"
- name: FELIX_LOGSEVERITYSCREEN
value: "info"
- name: FELIX_HEALTHENABLED
value: "true"
securityContext:
privileged: true
resources:
requests:
cpu: 250m
livenessProbe:
httpGet:
path: /liveness
port: 9099
host: localhost
periodSeconds: 10
initialDelaySeconds: 10
failureThreshold: 6
readinessProbe:
exec:
command:
- /bin/calico-node
- -bird-ready
- -felix-ready
periodSeconds: 10
volumeMounts:
- mountPath: /lib/modules
name: lib-modules
readOnly: true
- mountPath: /run/xtables.lock
name: xtables-lock
readOnly: false
- mountPath: /var/run/calico
name: var-run-calico
readOnly: false
- mountPath: /var/lib/calico
name: var-lib-calico
readOnly: false
# This container installs the Calico CNI binaries
# and CNI network config file on each node.
- name: install-cni
image: calico/cni:v3.3.7
command: ["/install-cni.sh"]
env:
# Name of the CNI config file to create.
- name: CNI_CONF_NAME
value: "10-calico.conflist"
# Set the hostname based on the k8s node name.
- name: KUBERNETES_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
# The CNI network config to install on each node.
- name: CNI_NETWORK_CONFIG
valueFrom:
configMapKeyRef:
name: calico-config
key: cni_network_config
# CNI MTU Config variable
- name: CNI_MTU
valueFrom:
configMapKeyRef:
name: calico-config
key: veth_mtu
volumeMounts:
- mountPath: /host/opt/cni/bin
name: cni-bin-dir
- mountPath: /host/etc/cni/net.d
name: cni-net-dir
volumes:
# Used by calico/node.
- name: lib-modules
hostPath:
path: /lib/modules
- name: var-run-calico
hostPath:
path: /var/run/calico
- name: var-lib-calico
hostPath:
path: /var/lib/calico
- name: xtables-lock
hostPath:
path: /run/xtables.lock
type: FileOrCreate
# Used to install CNI.
- name: cni-bin-dir
hostPath:
path: /opt/cni/bin
- name: cni-net-dir
hostPath:
path: /etc/cni/net.d
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: calico-node
namespace: kube-system
---
# Create all the CustomResourceDefinitions needed for
# Calico policy and networking mode.
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: felixconfigurations.crd.projectcalico.org
spec:
scope: Cluster
group: crd.projectcalico.org
version: v1
names:
kind: FelixConfiguration
plural: felixconfigurations
singular: felixconfiguration
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: bgppeers.crd.projectcalico.org
spec:
scope: Cluster
group: crd.projectcalico.org
version: v1
names:
kind: BGPPeer
plural: bgppeers
singular: bgppeer
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: bgpconfigurations.crd.projectcalico.org
spec:
scope: Cluster
group: crd.projectcalico.org
version: v1
names:
kind: BGPConfiguration
plural: bgpconfigurations
singular: bgpconfiguration
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: ippools.crd.projectcalico.org
spec:
scope: Cluster
group: crd.projectcalico.org
version: v1
names:
kind: IPPool
plural: ippools
singular: ippool
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: hostendpoints.crd.projectcalico.org
spec:
scope: Cluster
group: crd.projectcalico.org
version: v1
names:
kind: HostEndpoint
plural: hostendpoints
singular: hostendpoint
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: clusterinformations.crd.projectcalico.org
spec:
scope: Cluster
group: crd.projectcalico.org
version: v1
names:
kind: ClusterInformation
plural: clusterinformations
singular: clusterinformation
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: globalnetworkpolicies.crd.projectcalico.org
spec:
scope: Cluster
group: crd.projectcalico.org
version: v1
names:
kind: GlobalNetworkPolicy
plural: globalnetworkpolicies
singular: globalnetworkpolicy
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: globalnetworksets.crd.projectcalico.org
spec:
scope: Cluster
group: crd.projectcalico.org
version: v1
names:
kind: GlobalNetworkSet
plural: globalnetworksets
singular: globalnetworkset
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: networkpolicies.crd.projectcalico.org
spec:
scope: Namespaced
group: crd.projectcalico.org
version: v1
names:
kind: NetworkPolicy
plural: networkpolicies
singular: networkpolicy
@@ -0,0 +1,19 @@
disabled_plugins = []
#root = "/var/lib/containerd"
#state = "/run/containerd"
#subreaper = true
#oom_score = 0
#[grpc]
# address = "/run/containerd/containerd.sock"
# uid = 0
# gid = 0
#[debug]
# address = "/run/containerd/debug.sock"
# uid = 0
# gid = 0
# level = "info"
[plugins."io.containerd.grpc.v1.cri"]
systemd_cgroup = true
@@ -0,0 +1,17 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
+92
View File
@@ -0,0 +1,92 @@
# Calico Version v3.3.7
# https://docs.projectcalico.org/v3.3/releases#v3.3.7
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: calico-node
rules:
- apiGroups: [""]
resources:
- namespaces
- serviceaccounts
verbs:
- get
- list
- watch
- apiGroups: [""]
resources:
- pods/status
verbs:
- patch
- apiGroups: [""]
resources:
- pods
verbs:
- get
- list
- watch
- apiGroups: [""]
resources:
- services
verbs:
- get
- apiGroups: [""]
resources:
- endpoints
verbs:
- get
- apiGroups: [""]
resources:
- nodes
verbs:
- get
- list
- update
- watch
- apiGroups: ["extensions"]
resources:
- networkpolicies
verbs:
- get
- list
- watch
- apiGroups: ["networking.k8s.io"]
resources:
- networkpolicies
verbs:
- watch
- list
- apiGroups: ["crd.projectcalico.org"]
resources:
- globalfelixconfigs
- felixconfigurations
- bgppeers
- globalbgpconfigs
- bgpconfigurations
- ippools
- globalnetworkpolicies
- globalnetworksets
- networkpolicies
- clusterinformations
- hostendpoints
verbs:
- create
- get
- list
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: calico-node
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: calico-node
subjects:
- kind: ServiceAccount
name: calico-node
namespace: kube-system
@@ -0,0 +1,155 @@
- name: include services ports
include_vars: kubernetes.yaml
- name: Configure K8S Master Block
block:
- name: Initialise the Kubernetes cluster using kubeadm
become: true
command: kubeadm init --apiserver-advertise-address={{ ansible_default_ipv4.address }} --pod-network-cidr={{ k8s_pod_network }}
args:
creates: "{{ k8s_admin_config }}"
- name: Wait for apiserver to become ready
wait_for:
port: 6443
sleep: 10
- name: Setup kubeconfig for {{ k8s_user }} user
file:
path: "{{ k8s_user_home }}/.kube"
state: directory
owner: "{{ k8s_user }}"
group: "{{ k8s_user }}"
mode: "0750"
- name: Copy {{ k8s_admin_config }}
become: true
copy:
src: "{{ k8s_admin_config }}"
dest: "{{ k8s_user_home }}/.kube/config"
owner: "{{ k8s_user }}"
group: "{{ k8s_user }}"
mode: "0640"
remote_src: yes
# - name: Copy {{ calico_rbac_config }}
# copy:
# src: "{{ calico_rbac_config }}"
# dest: "{{ k8s_user_home }}/{{ calico_rbac_config }}"
# owner: "{{ k8s_user }}"
# group: "{{ k8s_user }}"
# mode: "0640"
#
# - name: Copy {{ calico_net_url }}
# copy:
# src: "{{ calico_net_config }}"
# dest: "{{ k8s_user_home }}/{{ calico_net_config }}"
# owner: "{{ k8s_user }}"
# group: "{{ k8s_user }}"
# mode: "0640"
#
# - name: Set CALICO_IPV4POOL_CIDR to {{ k8s_pod_network }}
# replace:
# path: "{{ k8s_user_home }}/{{ calico_net_config }}"
# regexp: "192.168.0.0/16"
# replace: "{{ k8s_pod_network }}"
- name: Download Dashboard
get_url:
url: "{{ dashboard_url }}"
dest: "{{ k8s_user_home }}/{{ dashboard_config }}"
owner: "{{ k8s_user }}"
group: "{{ k8s_user }}"
mode: "0640"
# - name: Install calico pod network {{ calico_rbac_config }}
# remote_user: false
# remote_user: "{{ k8s_user }}"
# command: kubectl apply -f "{{ k8s_user_home }}/{{ calico_rbac_config }}"
#
# - name: Install calico pod network {{ calico_net_config }}
# become: false
# remote_user: "{{ k8s_user }}"
# command: kubectl apply -f "{{ k8s_user_home }}/{{ calico_net_config }}"
- name: Install K8S dashboard {{ dashboard_config }}
become: false
remote_user: "{{ k8s_user }}"
command: kubectl apply -f "{{ k8s_user_home }}/{{ dashboard_config }}"
- name: Create service account
become: false
remote_user: "{{ k8s_user }}"
command: kubectl create serviceaccount dashboard -n default
ignore_errors: yes
- name: Create cluster role binding dashboard-admin
remote_user: "{{ k8s_user }}"
become: false
command: kubectl create clusterrolebinding dashboard-admin -n default --clusterrole=cluster-admin --serviceaccount=default:dashboard
ignore_errors: yes
- name: Create {{ k8s_dashboard_adminuser_config }} for service account
copy:
src: "files/{{ k8s_dashboard_adminuser_config }}"
dest: "{{ k8s_user_home }}/{{ k8s_dashboard_adminuser_config }}"
owner: "{{ k8s_user }}"
group: "{{ k8s_user }}"
mode: "0640"
- name: Create service account
become: false
remote_user: "{{ k8s_user }}"
command: kubectl apply -f "{{ k8s_user_home }}/{{ k8s_dashboard_adminuser_config }}"
ignore_errors: yes
- name: Create cluster role binding cluster-system-anonymous
become: false
remote_user: "{{ k8s_user }}"
command: kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous
ignore_errors: yes
- name: Test K8S dashboard and wait for HTTP 200
uri:
url: "{{ k8s_dashboard_url }}"
status_code: 200
validate_certs: no
ignore_errors: yes
register: result_k8s_dashboard_page
retries: 10
delay: 6
until: result_k8s_dashboard_page is succeeded
- name: K8S dashboard URL
debug:
var: k8s_dashboard_url
- name: Generate join command
command: kubeadm token create --print-join-command
register: join_command
- name: Copy join command to local file
become: false
remote_user: "{{ k8s_user }}"
copy:
content: "{{ join_command.stdout_lines[0] }}"
dest: "{{ k8s_token_file }}"
delegate_to: localhost
when: is_k8s_master is defined and is_k8s_master
- name: Configure K8S Node Block
block:
- name: Copy {{ k8s_token_file }} to server location
copy:
src: "{{ k8s_token_file }}"
dest: "{{ k8s_user_home }}/{{ k8s_token_file }}.sh"
owner: "{{ k8s_user }}"
group: "{{ k8s_user }}"
mode: "0750"
- name: Join the node to cluster unless file {{ k8s_kubelet_config }} exists
become: true
command: sh "{{ k8s_user_home }}/{{ k8s_token_file }}.sh"
args:
creates: "{{ k8s_kubelet_config }}"
when: is_k8s_node is defined and is_k8s_node
+37
View File
@@ -0,0 +1,37 @@
- name: Debian | Configure Sysctl
sysctl:
name: "net.ipv4.ip_forward"
value: "1"
state: present
- name: Fix CRI Plugin containerd config
copy:
src: containerd.toml
dest: /etc/containerd/containerd.toml
mode: 0644
notify: restart docker
- name: Debian | Add GPG Key
apt_key:
url: "https://packages.cloud.google.com/apt/doc/apt-key.gpg"
- name: Debian | Add Kubernetes Repository
apt_repository:
repo: "deb https://apt.kubernetes.io/ kubernetes-xenial main"
update_cache: yes
- name: Debian | Install Dependencies
apt:
pkg:
- kubernetes-cni
- kubelet
state: present
- name: Debian | Install Kubernetes
apt:
pkg:
- kubeadm
- kubectl
state: present
- include: cluster_setup.yaml
+9 -1
View File
@@ -1 +1,9 @@
noreply:{SHA512-CRYPT}$6$XXXXXXXXXXXXXXXXXXXuse this: $(mkpasswd -msha512crypt)XXXXX:106:113::/var/dovecot/noreply::userdb_mail=maildir:~/Maildir ::userdb_quota_rule=*:bytes=5000M sheppy:{SHA512-CRYPT}$6$Vrwtoe79Xa4jbghz$QFQI7P/j7k1sFeaQg.KBXjqs3F3S6H0u14kkd8GYrVV1mf2eblYC0rAVcAho.j8Axd1CyDpGQxri3HMC54CAr/:106:113::/var/dovecot/sheppy::userdb_mail=maildir:~/Maildir ::userdb_quota_rule=*:bytes=5000M
joerg:{SHA512-CRYPT}$6$x0nQ/K7W2KzI$xjidl.uf7a5uI0DStTGGujUP1XZblKctZLxVtvpIuv9NGuuZ5BnTBUeAWDJkBXkUsskbWuxUgt1RJcEoSuIc./:106:113::/var/dovecot/darknet::userdb_mail=maildir:~/Maildir ::userdb_quota_rule=*:bytes=5000M
yannik.schmidt:{SHA512-CRYPT}$6$Vrwtoe79Xa4jbghz$QFQI7P/j7k1sFeaQg.KBXjqs3F3S6H0u14kkd8GYrVV1mf2eblYC0rAVcAho.j8Axd1CyDpGQxri3HMC54CAr/:106:113::/var/dovecot/yannik.schmidt::userdb_mail=maildir:~/Maildir ::userdb_quota_rule=*:bytes=5000M
kathi:{SHA512-CRYPT}$6$AiHMofDe6i5huwb7$seYE1LIvoq8zJd1GL0lj3EkPf1BeI156ja/scPCExYJvNNz9y9xZqJ6LlY3DQPHINTU7JuUFgyPAzTPHnCmoE1:106:113::/var/dovecot/kathi::userdb_mail=maildir:~/Maildir ::userdb_quota_rule=*:bytes=100M
check:{SHA512-CRYPT}$6$004oR5.gn4nRsfM0$G8D5ZW7s6OueAwMZgj//jPgNAuXp4N0v6sXmvohSwwZPYUJaSegtf1fhg2V5.mPjjmkww0PV4Ny6/aj9tZLVe1:106:113::/var/dovecot/check::userdb_mail=maildir:~/Maildir ::userdb_quota_rule=*:bytes=5000M
ths-nas:{SHA512-CRYPT}$6$UAlpqf8tDKL.IBQj$r9j/xurvOrzmvWDJ.Ain8855HH9.pECQGr9mPuHorGYxrHXDMSPO/8t.HaHGXbq84UqV46qebFQi2v0SX6O8C.:106:113::/var/dovecot/check::userdb_mail=maildir:~/Maildir ::userdb_quota_rule=*:bytes=5000M
spamsink:{SHA512-CRYPT}$6$GVfeeL.8ObPDcfN3$.E8MTpHZZUivgwUutq4FHqIH8ra4MZ10/lLx74o4ssGuC/Yrgjbx0vl05aOe5iq6fD9hqu.5bYXWhVt3/O5pU1:106:113::/var/dovecot/spamsink::userdb_mail=maildir:~/Maildir ::userdb_quota_rule=*:bytes=5000M
noreply:{SHA512-CRYPT}$6$BexmD9kCiVyjyDEf$XVfJZh3mm5ed6e68feWUBiaFEOBlaq1aYGwZ/rs8bkQpaTlFkouNMB7TkeVwMMsipDQz.DpXziuBls6b0e1wE/:106:113::/var/dovecot/noreply::userdb_mail=maildir:~/Maildir ::userdb_quota_rule=*:bytes=5000M
alexander.schmidt:{SHA512-CRYPT}$y$j9T$/Vsucd.N.8AJJKGsZ/e./0$N5yBhGq3RAGpy5Lih/Vfx7oRU1sfOJkGHDgZM9udeo6:106:113::/var/dovecot/noreply::userdb_mail=maildir:~/Maildir ::userdb_quota_rule=*:bytes=5000M
-9
View File
@@ -1,9 +0,0 @@
# Sender adress the user may use :)
sheppy@atlantishq.de sheppy@atlantishq.de
ths-nas@atlantishq.de ths-nas@atlantishq.de
joerg@darknet-fashion.de joerg@darknet-fashion.de
yannik.schmidt@potaris.de yannik.schmidt@potaris.de
noreply@atlantishq.de noreply@atlantishq.de
@darknet-fashion.de joerg
@darknet-fashion.com joerg
@atlantishq.de sheppy
+1 -1
View File
@@ -31,7 +31,7 @@ http {
ssl_certificate /etc/letsencrypt/live/atlantishq.de/fullchain.pem; ssl_certificate /etc/letsencrypt/live/atlantishq.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/atlantishq.de/privkey.pem; ssl_certificate_key /etc/letsencrypt/live/atlantishq.de/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE ssl_protocols TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on; ssl_prefer_server_ciphers on;
## ##
-1
View File
@@ -1 +0,0 @@
test@atlantishq.de sheppy@atlantishq.de
+2
View File
@@ -0,0 +1,2 @@
cat "${1}" | sudo -H -u debian-spamd spamassassin --test-mode --local --cf="bayes_auto_learn 0" \
--cf='add_header all Spam-Tokens-Spammy _SPAMMYTOKENS(20,compact)_' --cf='add header all Spam-Tokens-Hammy _HAMMYTOKENS(20,compact)_' | less
+12
View File
@@ -0,0 +1,12 @@
set e
sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --spam /var/dovecot/spamsink/Maildir/cur/
sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/yannik.schmidt/Maildir/.Archives.2024
sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/yannik.schmidt/Maildir/.Archives.freelancermap
sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/yannik.schmidt/Maildir/.Trash
sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/sheppy/Maildir/.Archives.2024
sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/sheppy/Maildir/.Trash
sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/yannik.schmidt/Maildir/.INBOX.Job2024.Ferchau\ -\ G\&APw-nther\ Anlagen/
sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/yannik.schmidt/Maildir/.INBOX.Job2024.SINC-AfA/
sudo -u spamd sa-compile
systemctl restart spamassassin.service
mv /var/dovecot/spamsink/Maildir/cur/* /var/dovecot/spamsink/Maildir/.Learned/
+76
View File
@@ -0,0 +1,76 @@
include /usr/share/spamassassin/
ifplugin Mail::SpamAssassin::Plugin::AskDNS
askdns __DMARC_POLICY_NONE _dmarc._AUTHORDOMAIN_ TXT /^v=DMARC1;.*\bp=none;/
askdns __DMARC_POLICY_QUAR _dmarc._AUTHORDOMAIN_ TXT /^v=DMARC1;.*\bp=quarantine;/
askdns __DMARC_POLICY_REJECT _dmarc._AUTHORDOMAIN_ TXT /^v=DMARC1;.*\bp=reject;/
meta DMARC_REJECT !(DKIM_VALID_AU || SPF_PASS) && __DMARC_POLICY_REJECT
score DMARC_REJECT 10
meta DMARC_QUAR !(DKIM_VALID_AU || SPF_PASS) && __DMARC_POLICY_QUAR
score DMARC_QUAR 3
meta DMARC_NONE !(DKIM_VALID_AU || SPF_PASS) && __DMARC_POLICY_NONE
score DMARC_NONE 2
endif # Mail::SpamAssassin::Plugin::AskDNS
score DKIM_INVALID 5
header LOCAL_FROM_TLD_BASE From =~ /@[a-z0-9\-\.]+\.*/i
describe LOCAL_FROM_TLD_BASE Match any Domain
score LOCAL_FROM_TLD_BASE 2
header LOCAL_FROM_TLD From =~ /@[a-z0-9\-\.]+\.(de|com|org)[>\s]*\z/i
describe LOCAL_FROM_TLD Match standard domains
score LOCAL_FROM_TLD -3
header OBFUSCATED_FROM_TLD From =~ /@[a-z0-9\-\.]+\.(de|com|org)\..+/i
describe OBFUSCATED_FROM_TLD Obfuscation attempt in FROM TLD
score OBFUSCATED_FROM_TLD 5
header MAIL_CHIMP_MARKETING Return-Path =~ /@.*bounce-mc.+/i
describe MAIL_CHIMP_MARKETING Mailchimp Marketing Lists
score MAIL_CHIMP_MARKETING 5
header UTF_BASE64_SUBJECT Subject =~ /.*=\?utf-[0-9]+\?.*/i
describe UTF_BASE64_SUBJECT UTF_X base64 encoded subject
score UTF_BASE64_SUBJECT 1
score HTML_MESSAGE 1
score URIBL_ABUSE_SURBL 5
score HTML_IMAGE_ONLY_24 2
score HTML_IMAGE_ONLY_28 2
score HTML_IMAGE_RATIO_02 2
score BAYES_999 0.8
# Bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 0
bayes_file_mode 0660
bayes_path /etc/spamassassin/bayes/bayes
bayes_file_mode 0770
bayes_min_ham_num 40
bayes_min_spam_num 40
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
required_hits 3.1
clear_report_template
report Hello!
report This is the atlantis-mailsystem reporting in. This mail is likely spam. Proceed with maximum caution.
report
report Content analysis details: (_SCORE_ points, _REQD_ required)
report
report " pts rule name description"
report ---- ---------------------- --------------------------------------------------
report _SUMMARY_
-38
View File
@@ -1,38 +0,0 @@
# you can also so this: test-second-account@atlantishq.de test@atlantishq.de
# which will give all incoming mails of test-second-account to test (sorta obvious)
# IMPORTANT >> IT IS _NOT_ NESSESARY TO DO THE FOLLOWING << IMPORTANT
# user@atlantishq.de user@esports-erlangen.de
# every user will get emails from both domains
# If a user also wants to _SEND_ mails, he also have to have an
# entry in the /etc/postfix/enabled-senders
# CHANGES IN THIS FILE MUST BE MAPPED BEFORE RESTART (!)
# postmap FILENAME
# CHANGES IN THIS FILE WILL ONLY BE APPLIED ON POSTFIX RESTART, NOT RELOAD (!)
# sheppy
insurgency@atlantishq.de sheppy@atlantishq.de
yannik@atlantishq.de sheppy@atlantishq.de
tac@atlantishq.de sheppy@atlantishq.de
uplay@atlantishq.de sheppy@atlantishq.de
#yannik.schmidt@potaris.de sheppy@atlantishq.de
acc@atlantishq.de sheppy@atlantishq.de
mail@potaris.de yannik.schmidt@potaris.de
sector32@potaris.de yannik.schmidt@potaris.de
root@atlantishq.de sheppy@atlantishq.de
trackmania-2@atlantishq.de sheppy@atlantishq.de
maria@atlantishq.de mondauge@icloud.com
steam-potaris-1@atlantishq.de sheppy@atlantishq.de
steam-potaris-2@atlantishq.de sheppy@atlantishq.de
steam-potaris-3@atlantishq.de sheppy@atlantishq.de
# michy
ipatix@atlantishq.de michael.panzlaff@fau.de
# catchall
#@atlantishq.de root@atlantishq.de
#@esports-erlangen.de root@atlantishq.de
@darknet-fashion.com joerg@darknet-fashion.de
@darknet-fashion.de joerg@darknet-fashion.de
+11
View File
@@ -0,0 +1,11 @@
- name: postmap all
shell:
cmd: "/usr/sbin/postmap {{ item }}"
chdir: "/etc/postfix/"
with_items:
- sender_access
- enabled_senders
- sender_blacklist
- tls_policy
- transport
- virtual
+17 -3
View File
@@ -12,7 +12,7 @@
state: present state: present
- name: Deploy Postfix config - name: Deploy Postfix config
copy: template:
src: "{{ item }}" src: "{{ item }}"
dest: "/etc/postfix/{{ item }}" dest: "/etc/postfix/{{ item }}"
with_items: with_items:
@@ -20,13 +20,15 @@
- enabled_senders - enabled_senders
- main.cf - main.cf
- master.cf - master.cf
- relocated
- sender_blacklist - sender_blacklist
- tls_policy - tls_policy
- transport - transport
- virtual - virtual
- header_checks - header_checks
notify: restart postfix - sender_access
notify:
- postmap all
- restart postfix
- name: Deploy dmark/opendkim config (main) - name: Deploy dmark/opendkim config (main)
copy: copy:
@@ -86,3 +88,15 @@
owner: dovecot owner: dovecot
group: dovecot group: dovecot
notify: restart dovecot notify: restart dovecot
- name: Deploy spam learning script
template:
src: spam.sh
dest: /root/spam.sh
- name: Add cronjob for reloading certs and config every night
cron:
minute: "0"
hour: "1"
name: reload_postfix_dovecot
job: /usr/bin/systemctl reload postfix.service dovecot.service
+6
View File
@@ -0,0 +1,6 @@
# Sender adress the user may use :)
{% for key, value in mail_enabled_senders.items() %}
{{ key }} {{ value }}
{% endfor %}
@atlantishq.de sheppy
@@ -6,6 +6,7 @@ append_dot_mydomain = no
# delay_warning_time = 10h # delay_warning_time = 10h
queue_directory = /var/spool/postfix queue_directory = /var/spool/postfix
maximal_queue_lifetime = 2d
# TLS parameters # TLS parameters
smtpd_tls_cert_file=/etc/letsencrypt/live/atlantishq.de/fullchain.pem smtpd_tls_cert_file=/etc/letsencrypt/live/atlantishq.de/fullchain.pem
@@ -53,7 +54,7 @@ smtpd_sender_login_maps=hash:/etc/postfix/enabled_senders
smtpd_recipient_restrictions=permit_mynetworks,reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject_unauth_destination,check_policy_service unix:private/policyd-spf,check_sender_access hash:/etc/postfix/sender_blacklist smtpd_recipient_restrictions=permit_mynetworks,reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject_unauth_destination,check_policy_service unix:private/policyd-spf,check_sender_access hash:/etc/postfix/sender_blacklist
#smtpd_recipient_restrictions=permit_mynetworks,reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject_unauth_destination,check_sender_access hash:/etc/postfix/sender_blacklist #smtpd_recipient_restrictions=permit_mynetworks,reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject_unauth_destination,check_sender_access hash:/etc/postfix/sender_blacklist
#smtpd_sender_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_sender #smtpd_sender_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_sender
smtpd_sender_restrictions=reject_authenticated_sender_login_mismatch,reject_non_fqdn_sender,permit_sasl_authenticated smtpd_sender_restrictions=reject_authenticated_sender_login_mismatch,reject_non_fqdn_sender,check_sender_access hash:/etc/postfix/sender_access,permit_sasl_authenticated
# USER mappings (not reliant on unix users) # USER mappings (not reliant on unix users)
+1
View File
@@ -0,0 +1 @@
test@atlantishq.de HISTORY_PURGED_SECRET
+1
View File
@@ -0,0 +1 @@
rejected-send@atlantishq.de REJECT
@@ -7,5 +7,9 @@ zapingers.autos REJECT
cleverep.com REJECT cleverep.com REJECT
.ru REJECT .ru REJECT
allsip.ru REJECT allsip.ru REJECT
clickup.com REJECT
secureserver.net REJECT
pillenstein.de REJECT
ayoryor.com REJECT
sina.buffy@avantgarde-experts.de OK sina.buffy@avantgarde-experts.de OK
.avantgarde-experts.de OK .avantgarde-experts.de OK
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
set e
sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --spam /var/dovecot/spamsink/Maildir/cur/
#sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/yannik.schmidt/Maildir/.Archives.2024
#sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/yannik.schmidt/Maildir/.Archives.freelancermap
#sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/yannik.schmidt/Maildir/.Trash
#sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/sheppy/Maildir/.Archives.2024
#sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/sheppy/Maildir/.Trash
#sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/yannik.schmidt/Maildir/.INBOX.Job2024.Ferchau\ -\ G\&APw-nther\ Anlagen/
#sa-learn --progress -p /etc/spamassassin/local.cf --no-sync --ham /var/dovecot/yannik.schmidt/Maildir/.INBOX.Job2024.SINC-AfA/
chmod a+r -R /etc/spamassassin/bayes/bayes_journal
sudo -u spamd sa-compile
chmod a+r -R /etc/spamassassin/bayes/bayes_journal
systemctl restart spamd.service
mv /var/dovecot/spamsink/Maildir/cur/* /var/dovecot/spamsink/Maildir/.Learned/
+17
View File
@@ -0,0 +1,17 @@
# you can also so this: test-second-account@atlantishq.de test@atlantishq.de
# which will give all incoming mails of test-second-account to test (sorta obvious)
# IMPORTANT >> IT IS _NOT_ NESSESARY TO DO THE FOLLOWING << IMPORTANT
# user@atlantishq.de user@esports-erlangen.de
# every user will get emails from both domains
# If a user also wants to _SEND_ mails, he also have to have an
# entry in the /etc/postfix/enabled-senders
# CHANGES IN THIS FILE MUST BE MAPPED BEFORE RESTART (!)
# postmap FILENAME
# CHANGES IN THIS FILE WILL ONLY BE APPLIED ON POSTFIX RESTART, NOT RELOAD (!)
{% for ingress_mail, target in mail_virtual_transport.items() %}
{{ ingress_mail }} {{ target }}
{% endfor %}

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