Commit Graph
10 Commits
Author SHA1 Message Date
jcoffey-dev 065a0905da Point image references at the new registry
ghcr.io went dark with the GitHub account, so every `docker pull` and
template that named it has been failing. The images are republished,
multi-arch as before, at registry.coffeylabs.org under the same names, and
pull anonymously -- nothing needs a login.

Where a link pointed at an issue list, it now goes to /-/work_items: in
GitLab 19 that is the public list, and /-/issues returns 404 to anyone not
signed in. Issues themselves did not come across from GitHub, so a link to
a specific old issue is replaced with a note saying where it was.
2026-09-20 22:49:14 -07:00
jcoffey-dev 9247752435 Merge branch 'ci/image-version' into 'main'
Build published images with the version they report

See merge request coffey-labs/ihasvpn!2
2026-09-20 22:25:00 -07:00
jcoffey-dev ee7f3a82d7 Build published images with the version they report
publish.yml passed the computed version into the image build, and the
first port of it to GitLab CI did not. A tag pushed with that port would
have shipped an image reporting itself unversioned (or, for ihasvpn, with a
stray leading "v" no earlier build had), and tagged it with the git tag
rather than the version string.

The version is now computed the way publish.yml computed it and passed as
the build arg, and the image is tagged with it, '+' turned into '-' where a
Docker tag needs that.
2026-09-20 22:19:46 -07:00
jcoffey-dev afc17a5305 Merge branch 'ci/gitlab-pipeline' into 'main'
Run CI on the self-hosted GitLab

See merge request coffey-labs/ihasvpn!1
2026-09-20 20:35:50 -07:00
jcoffey-dev 14f81a3489 Run CI and image publishing on the self-hosted GitLab
Ports ci.yml and publish.yml after the GitHub account was suspended and
ghcr.io/coffey-labs/ihasvpn went dark with it. The deployment on Web_Host
was still pulling that tag, and the only surviving copy was the image
already on the host -- amd64 only. This rebuilds the multi-arch tag.

The workflow built each platform on a native runner; there is one amd64
runner here, so arm64 goes through QEMU. Slower, and tag-driven for that
reason, but shipping amd64 only is exactly what the suspension already cost
us once.

The Actions workflows stay in the tree as the reference.
2026-09-20 20:14:55 -07:00
jcoffey-dev 4415bdf0ec Add the Sponsor button
The same FUNDING.yml as ihasmail and Cairn OBS, pointing at the
jcoffey-dev GitHub Sponsors profile.
2026-09-13 01:52:09 -07:00
jcoffey-dev c803bb103d Link the project site from the README 2026-09-13 00:40:22 -07:00
jcoffey-dev 02e7993c87 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.
2026-09-12 23:48:36 -07:00
jcoffey-dev bcb9ac2e74 Add the CoffeyLabs.org copyright beside the licence link
A Legal component renders "© <year> CoffeyLabs.org · AGPL-3.0 source" with
both linked. It replaces the bare licence link in the sidebar footer and on
the login and setup pages, and sits at the foot of the user menu on phones,
where the sidebar is hidden. The sidebar and menu stack the two halves;
the auth pages keep one centred line. Screenshots retaken.
2026-09-12 23:08:49 -07:00
jcoffey-dev 17a62fdc59 Refresh the console shell for desktop and phones
The sidebar keeps the navigation on wide screens, now in two groups with a
clearer active state, and its footer holds the live indicator, a one-tap
theme toggle and a user menu with the account page, the full theme switch
and sign out. Below 900px the shell becomes a top bar (brand, live, theme,
user menu) and a bottom tab bar, so the primary pages are within thumb
reach and nothing stacks above the content.

Phones also get: no sideways scroll (the dashboard's fixed 2fr/1fr grid
collapses), stat cards two-up, low-value table columns hidden, modals as
bottom sheets, bigger touch targets, 16px inputs so iOS does not zoom, and
toasts that clear the tab bar. The meta theme-color follows the theme.

The mark's SVG gradients now take per-instance ids. With two copies on the
page the shared id resolved to the hidden top-bar copy and painted nothing,
which is why the logo looked washed out in light mode.

The tagline reads "WireGuard eXtended", which is where the name comes from.
README screenshots retaken.
2026-09-12 23:01:05 -07:00