7ba749c620
Ansible Lint / lint (push) Successful in 4s
Proxmox host role: - Admin user setup, SSH hardening (port 2222, no root login) - claude-code SFTP chroot user - Unattended upgrades, DuckDNS dynamic DNS updater (vault-encrypted token) - WireGuard VPN server (10.10.10.0/24) with Fedora client registered - Proxmox firewall management via pvesh API (idempotent Python script) Public Gitea exposure: - Traefik: add HTTPS entrypoint, Let's Encrypt ACME (HTTP-01), StripPrefix middleware for /git subpath, HTTP→HTTPS redirect - Gitea ROOT_URL updated to https://adyrem.duckdns.org/git/ - Pi-hole split DNS: adyrem.duckdns.org → 10.10.1.3 for internal hairpin bypass SSH config fixes: - StrictHostKeyChecking no → accept-new across all hosts - Proxmox jump host: port 2222, user adyrem (root login disabled) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
52 lines
1.3 KiB
Django/Jinja
52 lines
1.3 KiB
Django/Jinja
http:
|
|
routers:
|
|
{% for svc in traefik_services %}
|
|
{{ svc.name }}-internal:
|
|
rule: "Host(`{{ svc.host }}`)"
|
|
service: {{ svc.name }}
|
|
entryPoints:
|
|
- web
|
|
{% if svc.public_host is defined %}
|
|
{{ svc.name }}-public-redirect:
|
|
rule: "Host(`{{ svc.public_host }}`){% if svc.public_path is defined %} && PathPrefix(`{{ svc.public_path }}`){% endif %}"
|
|
service: {{ svc.name }}
|
|
entryPoints:
|
|
- web
|
|
middlewares:
|
|
- redirect-https
|
|
{{ svc.name }}-public:
|
|
rule: "Host(`{{ svc.public_host }}`){% if svc.public_path is defined %} && PathPrefix(`{{ svc.public_path }}`){% endif %}"
|
|
service: {{ svc.name }}
|
|
entryPoints:
|
|
- websecure
|
|
tls:
|
|
certResolver: letsencrypt
|
|
{% if svc.strip_prefix is defined %}
|
|
middlewares:
|
|
- {{ svc.name }}-strip-prefix
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
middlewares:
|
|
redirect-https:
|
|
redirectScheme:
|
|
scheme: https
|
|
permanent: true
|
|
{% for svc in traefik_services %}
|
|
{% if svc.strip_prefix is defined %}
|
|
{{ svc.name }}-strip-prefix:
|
|
stripPrefix:
|
|
prefixes:
|
|
- "{{ svc.strip_prefix }}"
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
services:
|
|
{% for svc in traefik_services %}
|
|
{{ svc.name }}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "{{ svc.backend }}"
|
|
{% endfor %}
|