Commit Graph

12 Commits

Author SHA1 Message Date
dalbodeule
33d86d522d [chore](docs): update progress tracker with completed tasks
- Marked proxy implementation, ACME integration, and wiring tasks as complete.
- Updated details for ACME HTTP-01 challenge handling and certificate management.
- Added notes on remaining milestones, including TLS-ALPN-01 support and strategy refinement.
2025-11-27 13:49:37 +09:00
dalbodeule
0f32593ea5 [feat] add ACME-based certificate management using go-acme/lego
- Introduced a new `legoManager` for managing per-domain TLS certificates.
- Implemented ACME HTTP-01 challenge handling with a configurable webroot directory.
- Created `NewLegoManagerFromEnv` to initialize ACME settings from environment variables.
- Added `verifyDomainsResolve` to validate domain DNS resolutions.
- Updated `.gitignore` to include ACME cache and webroot directories.
- Updated `go.mod` and `go.sum` with new dependencies, including `go-acme/lego`.
2025-11-27 01:23:12 +09:00
dalbodeule
694b0feaae docs(progress): add milestone tracking document 2025-11-26 20:08:38 +09:00
dalbodeule
d14a8eec63 [chore](docs): update commit message guidelines and remove old file 2025-11-26 19:24:52 +09:00
dalbodeule
df1b4758da feat(store): integrate postgres with ent for domain management 2025-11-26 18:59:18 +09:00
dalbodeule
1d6888a45b docs(architecture): update request flow summary formatting 2025-11-26 17:38:25 +09:00
dalbodeule
e657c5e723 [chore] move commit message guidelines to .github directory 2025-11-26 17:37:32 +09:00
dalbodeule
1425bb5bfc docs: add commit message template file 2025-11-26 17:31:15 +09:00
dalbodeule
596c8c2ac2 chore(config): initialize docker ignore rules 2025-11-26 17:17:17 +09:00
dalbodeule
2121b56511 feat(dtls): add dtls client-server handshake flow
Implement initial DTLS handshake flow for server and client using
pion/dtls. Load server and client configuration from .env/environment,
including new debug flags and logging config.

On the server:
- load ServerConfig from env, including DTLS listen addr and debug flag
- create DTLS listener with optional self-signed localhost cert in debug
- accept DTLS sessions and run PerformServerHandshake with a dummy
  domain validator

On the client:
- load ClientConfig from env, then override with CLI flags where given
- validate required fields: server_addr, domain, api_key, local_target
- create DTLS client and run PerformClientHandshake
- support debug mode to skip server certificate verification

Also:
- update go.mod/go.sum with pion/dtls and related dependencies
- extend .env.example with new ports, client config, and debug flags
- ignore built binaries via bin/ in .gitignore

BREAKING CHANGE: client environment variables have changed. The former
HOP_CLIENT_ID, HOP_CLIENT_AUTH_TOKEN and HOP_CLIENT_SERVICE_PORTS are
replaced by HOP_CLIENT_DOMAIN, HOP_CLIENT_API_KEY,
HOP_CLIENT_LOCAL_TARGET and HOP_CLIENT_DEBUG. Client startup now
requires server_addr, domain, api_key and local_target to be provided
(via env or CLI).
2025-11-26 17:04:45 +09:00
dalbodeule
4d5b7f15f3 build(deps): add ent and x libs dependencies 2025-11-26 16:32:54 +09:00
dalbodeule
98bc949db1 chore(init): add .gitignore and license files for project setup 2025-11-26 15:58:00 +09:00