Commit Graph

30 Commits

Author SHA1 Message Date
fbce6b95fd Fix Unauthenticated: use local OIDCConfigEndpoint for embedded IdP
The management container was trying to fetch its own OIDC config via
the external URL (https://domain/oauth2/.well-known/...), which creates
a circular dependency: management -> DNS -> NPM -> Caddy -> management.
This fails because the management container can't reach itself through
the external network during startup.

Changed OIDCConfigEndpoint to http://127.0.0.1:80/oauth2/... (same as
LocalAddress) so the management server accesses its own embedded IdP
directly without going through DNS/NPM/Caddy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 21:33:59 +01:00
8853087161 Fix SSL cert creation and HTTP fallback for Unauthenticated error
- Create NPM proxy host WITHOUT SSL initially (ssl_forced=False),
  then request Let's Encrypt cert, then enable SSL only after cert
  is assigned. Prevents broken proxy when cert fails.
- If SSL cert creation fails, automatically fall back to HTTP mode:
  re-render management.json, dashboard.env, relay.env with http://
  URLs and recreate containers so dashboard login works.
- Better error logging in _request_ssl with specific timeout hints.
- Use template variables for relay WebSocket protocol (rels/rel)
  instead of hardcoded rels:// in management.json.j2 and relay.env.j2.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 21:18:37 +01:00
6d42e583d6 Fix NPM forwarding: use HOST_IP env var instead of socket detection
Socket detection inside Docker returns the container IP (172.18.0.x),
not the host IP. Now:
- install.sh detects host IP via hostname -I and stores in .env
- docker-compose.yml passes HOST_IP to the container
- npm_service.py reads HOST_IP from environment
- Increased SSL cert timeout to 120s (LE validation is slow)
- Added better logging for SSL cert creation/assignment
- README updated with HOST_IP in .env example

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 21:00:29 +01:00
b56f0eb8a4 Fix NPM forward host: use real host IP instead of Docker gateway
- npm_service._get_forward_host() now detects the actual host IP via
  UDP socket (works inside Docker containers) instead of using
  172.17.0.1 Docker gateway which NPM can't reach
- install.sh uses hostname -I for NPM forward host
- Removed npm_api_url parameter from _get_forward_host()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:45:01 +01:00
55e2c3b80b Fix install.sh: copy .git directory for update support via git pull
Changed cp -r ./* to cp -a . so hidden files (.git) are included
when copying to the install directory. Without this, git pull fails
in /opt/netbird-msp because it's not a git repository.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:21:33 +01:00
835f3ed40e Add MSP Appliance domain with NPM proxy host + Let's Encrypt during install
- New optional question in Step 4: MSP Appliance domain (e.g. msp.example.com)
- After app startup: auto-creates NPM proxy host forwarding to host IP:8000
- Requests Let's Encrypt SSL cert and assigns it to the proxy host
- Shows HTTPS URL in completion summary when domain is configured

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:15:20 +01:00
9d7e12c9df install.sh fix 2026-02-08 20:04:45 +01:00
db878ff35d Fix NPM integration: correct forward host, SSL, and add UDP stream
- Forward proxy to host IP + dashboard_port instead of container name
- Remove redundant advanced_config (Caddy handles internal routing)
- Add provider: letsencrypt to SSL certificate request
- Add NPM UDP stream creation/deletion for STUN/TURN relay ports
- Add npm_stream_id to Deployment model with migration
- Fix API docs URL in README (/api/docs)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 19:51:32 +01:00
af5bec8e77 Add TCP 9000+ dashboard ports to firewall config and documentation
Each customer gets TCP 9000+ID (dashboard) and UDP 3478+ID (relay).
Updated install.sh firewall section, completion summary, and README.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 17:42:49 +01:00
817cb7e9bb Remove tests directory — not needed for production
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 17:36:14 +01:00
c78c733009 Simplify install.sh system checks: remove RAM check, lower disk threshold to 50GB
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 17:34:05 +01:00
6859530e31 Remove dev docs from tracking and add to .gitignore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 17:32:57 +01:00
833450b865 Add AI attribution to README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 17:27:26 +01:00
41ba835a99 Add i18n, branding, user management, health checks, and cleanup for deployment
- Multi-language support (EN/DE) with i18n engine and language files
- Configurable branding (name, subtitle, logo) in Settings
- Global default language and per-user language preference
- User management router with CRUD endpoints
- Customer status sync on start/stop/restart
- Health check fixes: derive status from container state, remove broken wget healthcheck
- Caddy reverse proxy and dashboard env templates for customer stacks
- Updated README with real hardware specs, prerequisites, and new features
- Removed .claude settings (JWT tokens) and build artifacts from tracking
- Updated .gitignore for .claude/ and Windows artifacts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 17:24:05 +01:00
c4d68db2f4 fix 2026-02-07 23:10:59 +01:00
06753bd69a gub 2026-02-07 23:05:05 +01:00
a50db95dd8 bugfixing 2026-02-07 22:55:34 +01:00
6646adb4a4 bugfixing 2026-02-07 22:46:39 +01:00
ae63817172 bugfix 2026-02-07 21:41:43 +01:00
f17ea7ddc7 bugfix 2026-02-07 21:29:16 +01:00
a18df0018c bugfix 2026-02-07 21:13:50 +01:00
3d8ab57f31 update readme 2026-02-07 20:47:35 +01:00
b70c2d2df7 url update 2026-02-07 20:46:07 +01:00
ba9132cb67 verlauf gespeichert 2026-02-07 12:21:23 +01:00
42a3cc9d9f First Build alpha 0.1 2026-02-07 12:18:20 +01:00
29e83436b2 Interactive Installer 2026-02-07 12:00:00 +01:00
322ffaea62 First Project description 2026-02-07 11:44:50 +01:00
4a05a3e9de delet file 2026-02-07 11:28:10 +01:00
f079bf475d Commit 1 2026-02-07 11:26:58 +01:00
4de9e9d6fa Initial commit 2026-02-07 11:22:51 +01:00