Files
stack/infra/traefik/certs/homelab.crt
kert 8bd649d9ab feat: skinny packages, tree reorg, cloud abstraction (refs #182–#201)
P23 — Skinny Packages:
- Break conf→bib circular dependency with lazy guarded import
- Extract aco.table.base → conf.table_base (shared foundation)
- Add try/except ImportError guards on all cross-module imports
- Define per-module optional-dependencies in pyproject.toml
- Slim base deps to just pydantic; all heavy deps in optional groups
- Add gen_config.py --check validation for module/dep sync
- Add skinny-install CI matrix job (tests each extra in isolation)

P24 — Tree Reorganization:
- Move service configs to infra/ (traefik, coredns, grafana, etc.)
- Consolidate Dockerfiles under infra/images/
- Move styles/ → assets/css/ + assets/icons/ + assets/nature.py
- Update compose.yml, stack.toml, gen_config.py, all backend emitters
- Update bootstrap scripts and install_certs.sh

P25 — Cloud Provider Abstraction:
- Add cloud/ directory with self-hosted, aws, gcp, azure stubs
- Add cloud contexts (aws, gcp, azure) to stack.toml
- Add conf/storage.py — get_filesystem() dispatches per context
- Add aws, gcp, azure optional dependency groups
- Document service mapping for each provider

All 11955 tests pass. Zero functionality lost.
2026-03-24 15:00:26 -04:00

21 lines
1.2 KiB
Plaintext

-----BEGIN CERTIFICATE-----
MIIDTzCCAjegAwIBAgIUA6ONmnapagAZEkVJMOs50qjWmNcwDQYJKoZIhvcNAQEL
BQAwKDETMBEGA1UEAwwKSG9tZWxhYiBDQTERMA8GA1UECgwIZmhpcndvcngwHhcN
MjYwMzIxMjAzMDI5WhcNMzYwMzE4MjAzMDI5WjAgMR4wHAYDVQQDDBUqLmhvbWVs
YWIuZmhpcndvcnguaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDk
yZZrB/IUL2E/BgEXM8uRMgV9P59wuz+m4FIZL4Zr6jUdVX0gyqchDxipyq3EoOHM
Eg4OHK75z/rrhIFqesXg+GML3qd8s+t8LJ9d2BDd2mvr4pQXf9jvBFd+rxJr8thA
lyjDkRWtpnaX3jRS5U0YcxXXMzji6+ENYkFyM2J3km9tEloj1hv69gFVCM79XjYf
Id2pLcIKkU4zv+kZ9VesWsQs4BBKArlyCNOO4/emn8h6ezo6w501AKeold9cRt7N
pUXA9a5eR+XjAzyAc0nMeoDZ7CCnyUwxHZMMyeNuxgi8BHq92cL4b2G7CQKKlqvP
349uzPo8TBeetr/VVlhJAgMBAAGjeTB3MDUGA1UdEQQuMCyCFSouaG9tZWxhYi5m
aGlyd29yeC5pb4ITaG9tZWxhYi5maGlyd29yeC5pbzAdBgNVHQ4EFgQUjnPOWk81
NtrM9ES2ch+uUtpb178wHwYDVR0jBBgwFoAUYMR/jxNnLBKBKJvTfsy3LZVpc64w
DQYJKoZIhvcNAQELBQADggEBAGavs2drAc+a7B4hGuIOwaRgIUmqjoIipXJHXwQt
5ZsLoBOR7ybqKfYidwnYqvfSdbVFlE/vu+81nTAFe+2TmndaZ7IndeVojOWoSvie
ritNiTjrOhjTX35QJ/OIfux0kVNWYqwMJNkhK6OKe7NOcGpev9nPp9xKDI9yYIHp
VMOEKTbhxBk+dBjkn8FyzTyRersTqFxqNtCBrMsCoDNWvNsWIVStw26QTfnkJ36r
dG3ar1doUBxykjHUigOLC+JAOVQSVaWj2ZSz6nPTITnCGzZyc+OWzHtPnFF8kY2O
dOc+Ob2Kyy5ZJvYrmoXBp0qg42VbP0qOgzjpN4lfd2hkZeU=
-----END CERTIFICATE-----