- packaging/linux: netx-<ver>-linux-x86_64.tar.gz with bundled Python 3.12,
PostgreSQL 16 and web/dist (glibc >= 2.17). install.sh (install/update/
reinstall), netxctl (start/stop/status/logs, set-port, set-bind,
set-pg-port, reconfigure-db, check-update/update/auto-update, backup,
uninstall), systemd units, nohup fallback without systemd. Privilege
drop, detaching and tar go through the bundled Python, so bare images
without su/runuser/setsid/tar work.
- Updates: same GitHub/Forgejo/manifest sources as Windows, sha256
verified, pre-update pg_dump, automatic rollback when the new version
does not come up.
- Non-loopback bind: generated bootstrap admin password and
NETX_UME_VERIFY_TLS=true, as security_bootstrap requires.
- Build in manylinux2014 + check_bundle.sh (GLIBC <= 2.17, no missing
libs); release-linux.yml builds on v* tags and smoke-tests offline on
CentOS 7, Rocky 9, Ubuntu 18.04/24.04, Debian 12, openSUSE Leap 15 and
openEuler 22.03 before attaching to the release.
- Windows: Setup DB page gets a bundled PG port field and
/BundledPgPort=; set_pg_port.ps1 + tray "Built-in database port";
reconfigure keeps the configured port; postgresql.conf is written
without a BOM (PS 5.1 Set-Content -Encoding utf8 broke postgres).
- Forgejo/GitHub publish scripts include the Linux package.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Settings -> Update source writes NETX_UPDATE_SOURCES to ProgramData .env:
empty keeps the default (GitHub first, git.avelo.top mirror as fallback),
"forgejo" pins updates to git.avelo.top.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Prefer Python 3.12 (py -3.12 / Python312) even when another version is
first on PATH, matching the CI pin.
- Skip npm ci when node_modules already matches package-lock.json: npm ci
wipes node_modules first and a running Vite dev server leaves it
half-deleted.
- pip --no-warn-script-location: its PATH check realpath()s every entry
and aborts on a broken reparse point.
- README: local release / Forgejo / offline steps.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Installer: dynamic light/dark Win11 style, new brand wizard images, auto
language, exclusive run mode (tray / Windows service) plus autostart and
auto-update on the Tasks page (pre-selected from what is installed on
upgrades, untouched by silent updates), 5 localized Start Menu entries.
Tray: theme-aware rounded menu with live status, icons and status-dot tray
icon; health polled off the UI thread; Settings submenu toggles autostart
and daily updates; browser opened de-elevated via explorer.
Fixes:
- tray Stop/Start was ignored in service mode (service_run restarted the
children) - all start/stop now goes through runtime_ctl.ps1
- logon tray task and SYSTEM service task were killed after 72h (default
ExecutionTimeLimit); autostart was registered for the elevating account
and opened a browser on every logon
- uninstall left the NetXTray/NetXUpdate tasks behind
- silent auto-update killed the tray without restarting it
- repair_venv.ps1 was never staged into the release
- wildcard NETX_HOST (0.0.0.0) broke health checks
- ICO frames were PNG, which System.Drawing decodes as noise; icons now
use the current brand mark
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Interactive Setup asks update vs reinstall; elevated install relinks .venv so tray start works under Program Files.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use pwsh -File with UTF-8 BOM scripts, and default Forgejo uploads to the public domain when LAN IP is unreachable.
Co-authored-by: Cursor <cursoragent@cursor.com>
Offline Setup and check_update now upgrade in place without the database wizard; zip packages are no longer published.
Co-authored-by: Cursor <cursoragent@cursor.com>
0.4.5 venv pointed at the build machine user profile; other PCs failed to start API.
Bundle stdlib under python/runtime, repair pyvenv.cfg, and health-check before start.
Co-authored-by: Cursor <cursoragent@cursor.com>
Choose bundled or external PostgreSQL in the Setup wizard with connection
validation; optional NETX_CREDENTIAL_SECRET_KEY; single desktop shortcut;
faster uninstall and tray startup for offline Windows packages.
Co-authored-by: Cursor <cursoragent@cursor.com>
Chinese packaging scripts without BOM were misread as ANSI and failed at first-run.
Document that bundled Python 3.13+ needs Server 2016+ / Win10+.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ship installable releases via zip/Inno Setup with optional bundled Postgres, API-hosted SPA, manual update path, and CI workflow for future tag builds.
Co-authored-by: Cursor <cursoragent@cursor.com>