Services instellen
Ik wilde eerst docker swarm gebruiken, maar eigenlijk heb ik dat helemaal niet nodig. Ik heb maar een paar services en ik hoef geen dubbele te hebben o.i.d. Daarom gebruik ik docker compose met restart: unless-stopped of restart: always. De wachtwoorden e.d. versleutel ik met ansible vault.
Ik wil op alle plekken dezelfde postgres versie gebruiken. Dus daar wilde ik de compose bestanden op aanpassen, maar dat werkt niet overal. Dus dat is nog niet gelukt.
Ik wou de compose bestanden aanpassen zodat ze versienummer gebruiken i.p.v. latest. Volgens mij had ik van alles de laatste versie gepakt, maar het werkte toch niet. Ik snap niet goed waarom.
Labca
Voor de CA gebruik ik Hakwerk Labca. Dit gebruikt de CA software van Let's Encrypt (boulder), dus het werkt alleen maar met ACME. Dat is eigenlijk wat ik wil dus dat is prima. Om het op te starten doe je het volgende (met het juiste domein):
git clone https://github.com/hakwerk/labca.git
cd labca/build
export LABCA_FQDN=labca.example.com
docker compose up -d
Taiga/Tenzu
Voor het opzetten van taiga clone je deze repo. Je heb eigenlijk alleen maar de taiga-gateway/taiga.conf, docker-compose.yml, docker-compose-inits.yml en .env bestanden nodig. taiga-launch.sh en taiga-manage.sh maken het wel makkelijker maar zijn eigenlijk gewoon aliassen voor docker compose en dan een command.
Nadat de services draaien, moet je nog een superuser maken. Dat kan met manage.py in de taiga-back container.
Taiga heeft geen ondersteuning voor SSO. Het lijkt erop dat Taiga is vervangen door Tenzu, dat heeft wel ondersteuning voor SSO m.b.v django-allauth. Dat heeft een heleboel providers waaronder SAML en OpenID Connect.
Gitea/Gitlab
Ik weet nog niet of ik gitea of gitlab wil gebruiken, dus maar even testen. Volgens gitea gebruikt het minder resources dan gitlab, maar verder is er niet veel verschil. Gitlab vraagt om een FQDN die je moet instellen in een gitlab.rb bestand. Daarna moet je iets goed instellen met de AAAA records. Het wil namelijk let's encrypt gebruiken om een certificaat in te stellen. Om dit uit te zetten moet je in gitlab.rb "https" veranderen in http".
Gitlab is te zwaar (gebruikt te veel geheugen) voor mijn huidige setup. Ik heb de VM 6GB gegeven, alleen gitlab wil al 4GB hebben. Ik ga dus Gitea gebruiken, aangezien dat minder hulpbronnen vraagt. Ik kan dan niet makkelijk pages draaien (misschien wel m.b.v. deze repo), maar de website met deze docs draait al via mijn publieke gitlab repo.
Wiki
Ik had eerst docusaurus gebruikt, daar bestaat geen (officiele) docker image van. Het is gewoon een npm app, dus je kan het wel zelf maken met een dockerfile enz. Voor een docusaurus voorbeeld zie deze gitlab repo.
Ik ben gemigreerd van docusaures naar handmatige HTML, CSS en JS. Deze notities staan ook online op www.gabbersaurewes.nl.
Nginx Proxy Manager of Caddy
Om de verschillende services achter *.gabbersaurewes.nl te zetten heb ik eerst nginx proxy manager geprobeerd. De DNS-records heb ik eerst geprobeerd in te stellen met BIND DNS op de server, maar dat werkt niet stabiel. Ik heb de serverkast namelijk niet constant aanstaan en dan wordt de ingestelde DNS-server vergeten. Daarom heb ik de DNS records op de router ingesteld. Nginx Proxy Manager en Caddy werkten niet bij alle services, dus ga ik Nginx handmatig instellen. Dat doe ik in de server VM zelf, niet in een docker container. Dan is de integratie met certbot namelijk makkelijker. Daarnaast moet voor de reverse proxy de port-forwarding in de Docker containers aan localhost/127.0.0.1 gebound worden, anders kan het nog steeds benaderd worden op de poort die je insteld in het docker compose bestand.
IdP: Zitadel of Authentik
Het zou mooi zijn als ik Zitadel of Authentik kan gebruiken als SSO-oplossing. Er staat info hier of hier . Voor het koppelen heeft Authelia voor aardig wat applicaties uitleggen (i.i.g. voor OpenID Connect), bijvoorbeeld voor Gitea. Voor Wazuh kan je deze pagina volgen. Let op dat je het heel precies doet, alles moet overgenomen worden. Als je de issuer in wil stellen als wazuh-saml, moet je dat onder "Advanced protocol settings" bij "EntityID/Issuer override" doen. Daarnaast moet voor het automatisch updaten van IdP metadata of het instellen van metadata_url, de root certificate van de Labca aan de Wazuh indexer trust store toegevoegd worden. Dat doe je met onderstaand commando (file moet de locatie van het root certificaat zijn):
/usr/share/wazuh-indexer/jdk/bin/keytool -importcert -alias labca \
-file /usr/share/pki/ca-trust-source/anchors/root-01-cert.pem \
-keystore /usr/share/wazuh-indexer/jdk/lib/security/cacert