Commit graph

17 commits

Author SHA1 Message Date
Stefano Bertelli
2eb35e94e9 fix: configure git auth for tag push in release job
All checks were successful
CI / test (push) Successful in 1m34s
CI / release (push) Successful in 35s
CI / docker (push) Successful in 2m22s
The manual git clone doesn't set up HTTPS credentials like
actions/checkout did. Configure the extraheader with GITHUB_TOKEN
so git push can authenticate when creating release tags.
2026-03-30 21:47:25 -05:00
Stefano Bertelli
1fc80b9c0a feat: UI modernization — Manrope font, dark/light theme, card-based layouts
Some checks failed
CI / test (push) Successful in 1m48s
CI / release (push) Failing after 29s
CI / docker (push) Has been skipped
- Add Manrope as primary UI font via Google Fonts (wiregui/pages/style.py)
- Add dark/light/auto theme toggle in header, persisted to users.theme_preference
- Alembic migration for theme_preference column
- Redesign account page with card-based layout matching admin pages
- Convert settings page from tabs to stacked cards
- Replace all outline buttons with solid unelevated buttons
- Fix dark mode: remove hardcoded bg-grey-1/text-grey-7, use theme-safe colors
- Fix CI: add ca-certificates to release job for SSL cert verification
- Add no-coauthor and commit conventions to CLAUDE.md
2026-03-30 21:40:29 -05:00
Stefano Bertelli
3601de3600 fix: replace actions/checkout with git clone to avoid SSL cert errors
Some checks failed
CI / test (push) Successful in 1m46s
CI / release (push) Failing after 25s
CI / docker (push) Has been skipped
The Forgejo runner's container images lack CA certificates, causing
actions/checkout@v4 to fail on SSL verification. Use direct git clone
(same approach as the test job) for release and docker jobs.
2026-03-30 20:56:42 -05:00
1b48702295 fix: install git before checkout in release job
Some checks failed
CI / test (push) Successful in 1m41s
CI / release (push) Failing after 52s
CI / docker (push) Has been skipped
2026-03-30 19:45:13 -05:00
8282f53478 fix: install git and python3 in release job
Some checks failed
CI / test (push) Successful in 1m45s
CI / release (push) Failing after 29s
CI / docker (push) Has been skipped
2026-03-30 19:40:59 -05:00
792a9a4151 fix: install bash in release job (node:20-slim uses dash)
Some checks failed
CI / test (push) Successful in 1m40s
CI / release (push) Failing after 18s
CI / docker (push) Has been skipped
2026-03-30 19:37:08 -05:00
17fdfb8d61 chore: trigger CI to test service containers
Some checks failed
CI / test (push) Successful in 1m55s
CI / release (push) Failing after 23s
CI / docker (push) Has been skipped
2026-03-30 19:29:05 -05:00
78acae7947 fix: revert to GITHUB_SERVER_URL for git clone (runner URL now public)
Some checks failed
CI / test (push) Failing after 38s
CI / release (push) Has been skipped
CI / docker (push) Has been skipped
2026-03-30 19:16:50 -05:00
af3c20b274 fix: use public forge URL for git clone in CI (isolated network can't reach localhost)
Some checks failed
CI / test (push) Successful in 1m38s
CI / release (push) Failing after 55s
CI / docker (push) Has been skipped
2026-03-30 19:13:43 -05:00
b841835de0 fix: revert to service containers for CI postgres (runner network fixed)
Some checks failed
CI / test (push) Failing after 38s
CI / release (push) Has been skipped
CI / docker (push) Has been skipped
2026-03-30 19:12:11 -05:00
5ce17943d5 fix: CI run postgres in-container instead of service container
Some checks failed
CI / test (push) Failing after 2m18s
CI / release (push) Has been skipped
CI / docker (push) Has been skipped
2026-03-30 19:05:14 -05:00
bba8d113e4 fix: CI wait for postgres + better error handling
Some checks failed
CI / release (push) Blocked by required conditions
CI / docker (push) Blocked by required conditions
CI / test (push) Has been cancelled
2026-03-30 19:02:16 -05:00
2ecd0bbc33 fix: CI test DB — use main DB in CI, skip test DB creation
Some checks failed
CI / release (push) Blocked by required conditions
CI / docker (push) Blocked by required conditions
CI / test (push) Has been cancelled
2026-03-30 18:55:09 -05:00
651a054971 fix: use manual git checkout in test job (python:3.13-slim has no node)
Some checks failed
CI / test (push) Failing after 53s
CI / release (push) Has been skipped
CI / docker (push) Has been skipped
2026-03-30 18:52:08 -05:00
5aff71ec4c feat: redesign account page — compact Firezone-style layout
Some checks failed
CI / test (push) Failing after 8s
CI / release (push) Has been skipped
CI / docker (push) Has been skipped
- Remove tabbed layout, stack all sections vertically
- Compact key-value rows for user details
- Dense bordered tables for API tokens and MFA methods
- Consistent button styling with proper padding (BTN_PRIMARY/OUTLINE/DANGER)
- Token creation with inline copy-to-clipboard banner
- TOTP registration with compact inline QR + form
- Danger zone with typed-email confirmation dialog
- Add .idea and .coverage to gitignore
- Fix CI: add node:20-slim container to release job
- Fix connectivity check URL to Cloudflare endpoint
2026-03-30 18:47:07 -05:00
9d9afbe3ad fix: CI runner containers for Forgejo actions 2026-03-30 18:22:42 -05:00
0546b44507 feat: initial WireGUI implementation — full VPN management platform
Some checks failed
CI / test (push) Failing after 26s
CI / release (push) Has been skipped
CI / docker (push) Has been skipped
Complete Python/NiceGUI rewrite of the Wirezone (Elixir/Phoenix) VPN
management platform. All 10 implementation phases delivered.

Core stack:
- NiceGUI reactive UI with SQLModel ORM on PostgreSQL (asyncpg)
- Alembic migrations, Valkey/Redis cache, pydantic-settings config
- WireGuard management via subprocess (wg/ip/nft CLIs)
- 164 tests passing, 35% code coverage

Features:
- User/device/rule CRUD with admin and unprivileged roles
- Full device config form with per-device WG overrides
- WireGuard client config generation with QR codes
- REST API (v0) with Bearer token auth for all resources
- TOTP MFA with QR registration and challenge flow
- OIDC SSO with authlib (provider registry, auto-create users)
- Magic link passwordless sign-in via email
- SAML SP-initiated SSO with IdP metadata parsing
- WebAuthn/FIDO2 security key registration
- nftables firewall with per-user chains and masquerade
- Background tasks: WG stats polling, VPN session expiry,
  OIDC token refresh, WAN connectivity checks
- Startup reconciliation (DB ↔ WireGuard state sync)
- In-memory notification system with header badge
- Admin UI: users, devices, rules, settings (3 tabs), diagnostics
- Loguru logging with optional timestamped file output

Deployment:
- Multi-stage Dockerfile (python:3.13-slim)
- Docker Compose prod stack (bridge networking, NET_ADMIN, nftables)
- Forgejo CI: tests → semantic versioning → Docker registry push
- Health endpoint at /api/health
2026-03-30 16:53:46 -05:00