Stefano Bertelli
3d1ca7444b
fix: close create dialog before showing config dialog
...
CI / test (push) Successful in 1m44s
CI / release (push) Successful in 30s
CI / docker (push) Successful in 49s
The config dialog was being created inside the create dialog's slot
context. When NiceGUI tried to attach the new dialog, the parent
slot was already marked for deletion, causing a RuntimeError.
2026-03-30 22:13:11 -05:00
Stefano Bertelli
2eb35e94e9
fix: configure git auth for tag push in release job
...
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
...
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
...
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
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
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)
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
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)
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)
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)
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
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
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
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)
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
...
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
...
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