Files
vpsmgr/docs
bluebluesoda adad8584d4 feat(domain): admin blocked-domains list + strict validation
- Admin domain panel gains a blocked-domains textarea (one domain per
  line); entries and all their subdomains are refused by mgr.AddDomain —
  the single add path — using label-boundary matching (example.co.uk
  blocks a.example.co.uk but not forexample.co.uk). Existing domains are
  untouched; only the add path is guarded.
- Save is per-line validated: invalid lines are skipped and reported by
  their 1-based line numbers in a flash banner, the rest are saved.
- Migration v5 seeds a default list (mozilla/github/aws/microsoft/apple/
  google/etc.) only when the settings key was never written, so admin
  edits or a full clear are never re-seeded.
- normalizeDomain is rewritten around explicit rules shared by the add
  path and the blocked list: lowercase, strip all trailing dots, reject
  any character outside [a-z0-9.-] (never silently strip — pasting a URL
  is an error), must end with a letter (excludes dotted-quad IPs), must
  contain a dot (no single-word names), each label non-empty/<=63 and
  starting+ending with a letter or digit (consecutive hyphens mid-label
  like xn--p1ai stay legal), total <= 253. No TLD validation.
- Tests: db round-trip + v5 seed (fresh/reopen/admin-edit/preexisting-key),
  matching semantics, parse/save partial validation, validation rules.
- docs: architecture.md blocked-domain section.
2026-08-16 05:19:15 +00:00
..

Documentation

Technical documentation for vpsmgr. All docs are in English.

Doc What it covers
architecture.md System design: components, storage, network, security, traffic, image, install/uninstall lifecycle
configuration.md Full reference for /etc/vpsmgr/config.yaml
ipv6.md IPv6 pass-through design: deterministic addresses, prefix support, routing, installer flow
development.md Building, testing, releasing, conventions

See also AGENTS.md at the repo root — short version aimed at AI coding agents.