This website requires JavaScript.
925ab1f696
Overhaul setup wizard: domain config, password strength, field alignment
main
roof
2026-05-11 07:27:59 -04:00
439886624e
Fix config/data ownership — chown to invoking user after make install
roof
2026-05-11 06:46:12 -04:00
24877df976
Fix setup wizard and installer for fresh-install flow
roof
2026-05-11 06:08:55 -04:00
bfa0d99dd1
Fix git safe.directory error for non-root users after install
roof
2026-05-11 05:46:40 -04:00
1e2cf5580f
Fix setup wizard: align field names with API (domain_type→domain_mode, services→services_enabled)
roof
2026-05-11 05:36:18 -04:00
1989dfa0a3
Fix: exempt /api/setup/* from enforce_auth so setup wizard works on fresh install
roof
2026-05-11 05:03:44 -04:00
5dab6377bc
Restore https:// now that git.pic.ngo has a TLS certificate
roof
2026-05-11 04:33:51 -04:00
0a24d20bbc
Update QUICKSTART: use http for install.pic.ngo and git.pic.ngo (no HTTPS yet)
roof
2026-05-11 02:58:48 -04:00
46599bd37e
Fix installer: use http://git.pic.ngo without port (nginx forwards)
roof
2026-05-11 02:57:13 -04:00
dde4d9a53f
Rewrite CLAUDE.md following article best practices
roof
2026-05-10 07:25:53 -04:00
674a66f7a0
Revert registry port: git.pic.ngo uses standard port (DNS fix pending)
roof
2026-05-10 06:59:13 -04:00
9df3bf6a17
Fix release workflow: registry is git.pic.ngo:3000 not port 80
roof
2026-05-10 06:52:42 -04:00
0773179962
Gitignore .coverage files
roof
2026-05-10 06:28:40 -04:00
3a35cf72d3
Fix CI failures on root — mock OSError instead of relying on filesystem
roof
2026-05-10 06:19:24 -04:00
515f3d5075
Update QUICKSTART: lead with curl installer, document all domain modes
roof
2026-05-10 05:05:08 -04:00
35993bc79d
Update all documentation to reflect current architecture
roof
2026-05-10 04:35:37 -04:00
f1b48208fc
Fix CI unit test failures and DDNS config wiring
roof
2026-05-10 04:20:19 -04:00
ffe1dbeed6
Integrate DDNS registration and IP update into installer
roof
2026-05-10 02:28:02 -04:00
15376b67c7
Add runtime-generated config paths to .gitignore
roof
2026-05-09 13:26:03 -04:00
8efe8c1225
Merge PIC v2 — phases 1-5 + CI/CD: wizard, HTTPS, DDNS, service store, connectivity
roof
2026-05-09 12:11:15 -04:00
64e60dc577
Add Gitea Actions CI workflows — unit tests on push, image builds on tag
feature/fix-cross-cell-domain-access
roof
2026-05-09 10:59:29 -04:00
e38bd4e81f
Phase 5: extended connectivity — WireGuard ext, OpenVPN, Tor exit routing
roof
2026-05-09 10:48:20 -04:00
0a21f22076
Phase 4: service store — manifest validation, install/remove, Store UI
roof
2026-05-09 10:19:39 -04:00
f77d7fabcd
Phase 3: ddns_manager — DDNS client, provider adapters, IP heartbeat
roof
2026-05-09 09:42:00 -04:00
7d290c12c4
Phase 2: caddy_manager — Caddyfile generation, health monitor, DNS-01 support
roof
2026-05-09 09:04:11 -04:00
c1b1686cd9
Add frontend wiring for setup wizard — setupAPI, SetupGuard, /setup route
roof
2026-05-09 08:27:13 -04:00
cf1b9672f4
Phase 1: first-run setup wizard, bash installer, Docker profiles
roof
2026-05-09 08:05:38 -04:00
6dbd0dff46
Add Gitea Actions CI workflows — unit tests on push, image build on tag
roof
2026-05-09 07:21:35 -04:00
7391d7f7a2
Add e2e latency consistency test for WireGuard tunnel
roof
2026-05-07 15:13:27 -04:00
b8e57b6e51
Fix race condition in ensure_forward_stateful: add threading.Lock
roof
2026-05-07 10:12:18 -04:00
1b61e9e290
Fix ICMP latency: re-anchor ESTABLISHED,RELATED to FORWARD position 1 on every health tick
roof
2026-05-05 18:51:38 -04:00
6f84a3ffe1
Fix e2e fixture: use Table=off + manual routes to avoid wg-quick conflict
roof
2026-05-05 13:31:53 -04:00
0042b3b1bb
Use alpine instead of busybox for cell subnet route injection
roof
2026-05-05 12:59:23 -04:00
e2c50c381a
Fix cross-cell domain access: scope DNAT rules, add Docker→wg0 routing
roof
2026-05-05 12:37:02 -04:00
1e1bda4679
Fix cross-cell ICMP routing: state-based cell DROP + e2e test
roof
2026-05-05 10:59:11 -04:00
5a4e292440
fix: allow reply traffic from connected cells through FORWARD chain
roof
2026-05-04 15:13:59 -04:00
c2d215ee2e
fix: cross-cell routing for split-tunnel peers
roof
2026-05-04 14:36:28 -04:00
8ee1d88e37
Add subnet conflict validation for wireguard.address and ip_range changes
roof
2026-05-04 10:00:58 -04:00
c658d2b16c
Add domain conflict validation when changing domain or accepting heal invite
roof
2026-05-04 09:46:58 -04:00
ac0c16c97b
Fix session cookie name collision when running multiple PIC instances on localhost
roof
2026-05-04 09:15:42 -04:00
28a193e430
Fix ensure_postup_dnat to strip-and-replace all DNAT rules idempotently
roof
2026-05-04 06:54:20 -04:00
d36fe88e16
feat(ui): add show/hide password toggle to login and account settings
roof
2026-05-04 06:05:46 -04:00
67362349d1
test: add loop detection tests for PUT /api/peers/<peer>/route-via
roof
2026-05-04 04:24:02 -04:00
dc2606541c
feat: Phase 4 hardening — retry/backoff, loop detection, sync status UI + tests
roof
2026-05-04 04:18:36 -04:00
960a4ecc51
fix: WG address change now queues pending restart + heals cell connections
roof
2026-05-02 08:29:18 -04:00
0e16d6968a
fix: prevent test runs from corrupting live WG state; sync wg0.conf on IP change
roof
2026-05-02 07:45:28 -04:00
99c1d9cd92
feat: auto mutual WG pairing + subnet/domain conflict detection
roof
2026-05-02 06:24:46 -04:00
1a611e0474
fix: UI always accessible; fix exit-relay AllowedIPs not updating
roof
2026-05-02 05:41:22 -04:00
c521fab1cb
fix: merge CoreDNS ACL per-service and add reload plugin; add peer/cell e2e tests
roof
2026-05-02 04:57:37 -04:00
f1666ba19c
fix: embed DNAT rules in wg0.conf PostUp for persistence + fix dns_ip in server config
roof
2026-05-02 04:07:10 -04:00
9a800e3b6b
feat: fix cross-cell service access — DNS DNAT, service DNAT, Caddy routing
roof
2026-05-02 03:12:09 -04:00
f2f15eb17e
fix: restore cell WG peer blocks lost from wg0.conf on startup
roof
2026-05-02 01:52:47 -04:00
68c27b4521
security: replace WireGuard catch-all ACCEPT with DROP
roof
2026-05-02 00:31:55 -04:00
2b93c8aec5
chore: add webui package-lock.json
roof
2026-05-01 23:25:27 -04:00
94957abd23
feat(webui): internet sharing UI — exit-offer toggle + peer route-via selector
roof
2026-05-01 23:07:50 -04:00
8ea834e108
feat: Phase 3 - per-peer internet routing via exit cell
roof
2026-05-01 16:23:31 -04:00
dcee03dd3f
feat(cells): Phase 2 — exit-offer signaling between connected cells
roof
2026-05-01 15:49:21 -04:00
7da0cbb714
fix: add X-Forwarded-For WG IP to peer-sync push curl command
roof
2026-05-01 15:24:08 -04:00
59927b6ad7
fix: whitelist peer-sync endpoint from session auth + CSRF
roof
2026-05-01 14:59:57 -04:00
4a9c4cc58b
fix: add kernel routes for cell peers after wg set
roof
2026-05-01 14:47:22 -04:00
ea6731d62c
Fix FORWARD rule ordering: embed API-sync ACCEPT inside apply_cell_rules
roof
2026-05-01 14:05:49 -04:00
4ba79fd614
Fix Phase 1 permission sync: route push via cell-wireguard + DNAT receive
roof
2026-05-01 13:48:49 -04:00
a3d0cd5a48
feat(cells): Phase 1 — permission sync between connected PICs
roof
2026-05-01 13:12:30 -04:00
37d023659a
fix(ui): parse getPeerStatuses dict response correctly in CellNetwork
roof
2026-05-01 12:25:12 -04:00
29390f064a
fix(scripts): api code lives at /app/api/ inside container, not /app/
roof
2026-05-01 11:50:56 -04:00
a8a1de1cba
fix(scripts): detect container vs host layout reliably in reset_admin_password
roof
2026-05-01 11:49:19 -04:00
56d677e925
fix: copy button HTTP fallback, reset-admin-password in Docker, scripts volume
roof
2026-05-01 11:34:38 -04:00
e8b3288a41
Merge feature/security-fixes-and-qa into main
roof
2026-05-01 11:09:34 -04:00
562d866a65
feat(cells): Phase 3 tests + Phase 4 UI for cell service-sharing
roof
2026-05-01 08:45:32 -04:00
0b103ffafb
feat(cells): fix PIC-to-PIC connection + add service-sharing permissions
roof
2026-05-01 08:35:24 -04:00
f3118ff401
fix(vpn): sync WireGuard server key on startup; fix DNS zone cell_name/SOA; fix peer status UI
roof
2026-05-01 08:05:45 -04:00
5d0238ff3c
A5: Extract config routes into blueprint (app.py 1294 → 579 lines)
roof
2026-05-01 06:53:24 -04:00
09138fbc18
A5: Extract all route groups into Flask blueprints (app.py -1735 lines)
roof
2026-05-01 06:11:21 -04:00
d54844cd44
fix(P2): peer add rollback, helper failure recovery, manager extraction (A2/A3/A5)
roof
2026-05-01 05:27:39 -04:00
2455fe189e
fix: apply_cell_name regex now matches zone files with TTL field
roof
2026-04-29 09:32:51 -04:00
10eac1fda1
fix: make update stashes runtime config before pull to avoid merge conflicts
roof
2026-04-29 09:10:00 -04:00
caadcaf5c9
fix: untrack runtime config files and add them to .gitignore
roof
2026-04-29 09:07:27 -04:00
ede01b316e
fix: untrack runtime config files and add them to .gitignore
roof
2026-04-29 09:02:22 -04:00
fcb338b659
merge: feature/security-fixes-and-qa — security audit fixes, CSRF, test coverage
roof
2026-04-29 08:58:54 -04:00
9aaacd11cc
fix: CSRF regression — grace period for old sessions, GET check-port/refresh-ip, Peers.jsx native fetch tokens
roof
2026-04-27 12:18:02 -04:00
a43f9fbf0d
fix: full security audit remediation — P0/P1/P2/P3 fixes + 1020 passing tests
roof
2026-04-27 11:30:21 -04:00
0c12e3fc97
fix: change domain from dev to lan to avoid browser HSTS preload blocking HTTP
roof
2026-04-27 01:54:33 -04:00
32272420cb
test: add E2E coverage for peer dashboard/services, DNS records, and WG domain access
roof
2026-04-26 17:41:21 -04:00
3690c6d955
fix: correct DNS records, peer dashboard field names, and services API response
roof
2026-04-26 17:11:21 -04:00
e5d59fd94d
fix: sync API key-store from wg0.conf to prevent WireGuard handshake failure
roof
2026-04-26 16:40:21 -04:00
9418c3da5b
feat: restore WireGuard peers after bootstrap and add VPN routing tests
roof
2026-04-26 15:33:57 -04:00
78706d685f
merge: feature/security-fixes-and-qa — WireGuard fixes, test infrastructure, port propagation
roof
2026-04-26 15:06:17 -04:00
580d8af7ae
fix: port changes now propagate to containers via env file in-place writes
roof
2026-04-26 15:00:43 -04:00
729c401c33
fix: apply_config bootstraps wg0.conf when file is empty
roof
2026-04-26 09:25:02 -04:00
de5ff75a2e
fix: wireguard_port identity change and check_port_open verification
roof
2026-04-26 08:41:22 -04:00
9677755b4f
fix: e2e/integration test infrastructure and Makefile test targets
roof
2026-04-26 08:27:27 -04:00
420dced9ff
fix: WireGuard peer sync, privileged mode, E2E and integration test correctness
roof
2026-04-26 06:04:40 -04:00
31a7951ffd
fix: 4 issues — admin password sudo, peer modal, WireGuard fetch creds, port check
roof
2026-04-26 03:33:11 -04:00
ec9ceec7a7
feat: add show-admin-password and reset-admin-password make targets
roof
2026-04-26 03:17:38 -04:00
7d2979b8af
fix: integration and E2E test correctness after auth enforcement
roof
2026-04-25 18:14:38 -04:00
828dc8cb8f
fix: Makefile test targets for Debian system Python and sudo
roof
2026-04-25 17:42:32 -04:00
a98e095e10
fix: enrich peer dashboard and services API endpoints
roof
2026-04-25 16:49:10 -04:00
0d32038150
feat: add comprehensive E2E test suite (Playwright + WireGuard + API)
roof
2026-04-25 16:41:13 -04:00
1e81b3b618
Fix webui port binding: restore public access on 8081
roof
2026-04-25 16:10:49 -04:00
fc3cfc9741
Fix post-deploy auth issues: best-effort service provisioning, integration test auth, test mock corrections
roof
2026-04-25 15:42:03 -04:00