ml
|
75a0f21f74
|
Implemented all service roles
- docker: install Docker Engine from official apt repo, configure log rotation,
create shared traefik_public network
- traefik: reverse proxy with automatic Let's Encrypt TLS, dashboard on
cloud.ladkau.de behind basic auth
- gitea: self-hosted Git with PostgreSQL, Git-over-SSH on port 2222
- sso: Keycloak with PostgreSQL for OIDC/OAuth2 single sign-on
- nextcloud: file storage with PostgreSQL, Redis, cron sidecar, CalDAV/CardDAV
well-known redirects
- mail: Roundcube webmail client with PostgreSQL
- registry: Docker Registry v2 with htpasswd auth, no upload size limit
- k8s: placeholder nginx page
All secrets documented in vault.yml; runbook updated with per-service
first-run notes.
|
2026-06-27 15:35:15 +02:00 |
|
ml
|
6115d9d48f
|
Set up repo structure and implement base role
- Document architecture decisions in README (Ansible + Docker Compose + Traefik)
- Scaffold Ansible layout: inventory, site.yml, group_vars, 9 service roles
- Implement base role: package install, deploy user, SSH hardening,
UFW firewall (22/80/443), fail2ban, unattended-upgrades
- Add reinstall runbook in docs/runbook.md
- Add ansible/requirements.yml for community.general and ansible.posix
|
2026-06-27 15:02:21 +02:00 |
|