Rename the project to ihasvpn

WGX shares its name with several other WireGuard tools, so the project
becomes ihasvpn, alongside ihasmail.

- Module github.com/Coffey-Labs/ihasvpn, command cmd/ihasvpn, image
  ghcr.io/coffey-labs/ihasvpn.
- Environment variables move from WGX_* to IHASVPN_*. The default database
  is ihasvpn.db, the nftables table is `ihasvpn`, metrics are ihasvpn_*, and
  the session cookie and theme key are renamed, so existing sessions end.
- The mark is the ihasmail cat peeking over the edge of a shield, drawn as
  a vector. docs/brand/generate.py builds the mark, mono mark, wordmarks,
  social card, favicons and app icons from that one drawing.
- The console takes ihasmail's palette: the ihasmail.org teal-navy for dark,
  its contrast-checked light tiers with the site's light accent, received
  traffic in the cat's orange and sent in teal. The wordmark weight and
  font stack follow ihasmail.org.
- Detail values wrap at spaces before breaking inside an address, so an
  IPv6 tunnel address no longer splits mid-number.
- The README history note about the earlier WGX installer is gone with the
  name it explained. Screenshots retaken.
This commit is contained in:
2026-09-12 23:48:36 -07:00
parent e807896806
commit 02e7993c87
74 changed files with 529 additions and 369 deletions
+5 -5
View File
@@ -46,9 +46,9 @@ export function Layout({ children }: { children: ReactNode }) {
<div className="shell">
{/* Phones and narrow windows: brand and account controls up top. */}
<header className="topbar">
<Link href="/" className="brand" aria-label="WGX dashboard">
<Link href="/" className="brand" aria-label="ihasvpn dashboard">
<Mark size={30} />
<span className="brand-name">WGX</span>
<span className="brand-name">ihasvpn</span>
</Link>
<div className="topbar-right">
<LivePill />
@@ -59,11 +59,11 @@ export function Layout({ children }: { children: ReactNode }) {
{/* Desktop: everything lives in the sidebar. */}
<aside className="sidebar">
<Link href="/" className="brand" aria-label="WGX dashboard">
<Link href="/" className="brand" aria-label="ihasvpn dashboard">
<Mark size={34} />
<span>
<span className="brand-name">WGX</span>
<span className="brand-sub">WireGuard eXtended</span>
<span className="brand-name">ihasvpn</span>
<span className="brand-sub">Self-hosted WireGuard</span>
</span>
</Link>
<nav className="nav" aria-label="Main">