Skip to content

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 04:12
· 1039 commits to main since this release
Immutable release. Only release title and notes can be modified.
33497b5

ser2net is now ser2netweb. 3.0.0 renames the project to tell it apart from Corey Minyard's ser2net, the C program that Linux distributions package under that name: ser2netweb is an independent project, not affiliated with or derived from it. Apart from the names, 3.0.0 works as 2.9.0 did, and 2.9.x and 3.0 nodes of a LAN cluster work together. Read Before you upgrade for what has a new name.

  • .deb and .rpm packages for x86_64 and arm64: sudo apt install ./ser2netweb_3.0.0_amd64.deb or sudo dnf install ./ser2netweb-3.0.0-1.x86_64.rpm, then sudo systemctl enable --now ser2netweb (Linux packages).
  • A PyPI package: pipx install ser2netweb on any OS and CPU with Python 3.10 or newer (pipx / pip).
  • New names for the release files, the systemd units, the Windows service and the Docker image, with a move-over from 2.9.x for each; the Docker image is published under both its old and its new path.

Before you upgrade

config.json and the data folder are used as they are. Check what applies to you:

  • Release files have new names (ser2netweb-linux-x64, ser2netweb-windows-x64.exe, ser2netweb-install.sh, …), and there are no files under the old names: a script that downloads ser2net-linux-x64 must change.
  • Environment variables have the prefix SER2NETWEB_; the SER2NET_* names still work. When both are set, the SER2NETWEB_* one wins, also when it is empty (Environment variables).
  • --version prints ser2netweb 3.0.0, and webhooks, OIDC and cluster peer requests send User-Agent: ser2netweb/3.0.0: scripts, receivers and filters that match ser2net must accept the new name.
  • Python code that imports app.* must import ser2netweb.*.
  • Once moved over, the systemd unit is ser2netweb.service and the Windows service and its Event Log source are ser2netweb: monitoring that checks the old names must follow.
  • Unchanged: the cluster protocol, the Prometheus metric names ser2net_*, the MQTT and Sparkplug B defaults, the config.json keys, the REST API paths, the cookie names (nobody is signed out) and the default e-mail sender address ser2net@<host>.

How to upgrade

  • Docker: nothing has to change: ghcr.io/haliskilic/ser2net gets 3.0.0 as the very same image. To switch to the new path and the new docker-compose.yml (service and container ser2netweb, the volume ser2net-data kept): docker compose pull && docker compose up -d --remove-orphans (Upgrading from 2.9.x).
  • Standalone binary installed with ser2net-install.sh: put ser2netweb-linux-x64 (or -arm64), ser2netweb-standalone.service, ser2netweb-install.sh and SHA256SUMS in one folder and run sudo sh ser2netweb-install.sh (add --remove-old-user to drop the user ser2net). It moves /var/lib/ser2net to /var/lib/ser2netweb, keeps the address and your drop-ins, removes 2.9.x's unit and binary once ser2netweb.service answers, and never touches another ser2net.service, such as the classic daemon's.
  • Standalone binary run without the script: replace it with ser2netweb-linux-x64 (or -arm64) and restart it.
  • Source checkout under systemd: sudo git -C /opt/ser2net pull && sudo systemctl restart ser2net keeps it on the old names (ser2net.py starts 3.0.0). The commands to move it to /opt/ser2netweb and ser2netweb.service, and those for ser2net@ instances, are in the CHANGELOG.
  • Windows service: from an elevated prompt run ser2netweb-windows-x64.exe --install-service (for named services first --install-service --service-name NAME for each). It takes over 2.x's ser2net service, moves its data from C:\ProgramData\ser2net\ to C:\ProgramData\ser2netweb\ when it was in that default place, and puts everything back if the new service doesn't start. Then re-add the firewall rule for C:\Program Files\ser2netweb\ser2netweb.exe and delete the old ser2net rule (commands in the CHANGELOG).
  • New installs: the .deb / .rpm package, pipx install ser2netweb, the executables or Docker. The packages don't start the service by themselves and don't move a 2.9.x install.

Everything, with the upgrade commands in full: CHANGELOG.md.

Assets

File
ser2netweb-linux-x64 Linux x86_64 executable (glibc ≥ 2.28)
ser2netweb-linux-arm64 Linux arm64 executable (glibc ≥ 2.28; Raspberry Pi 3/4/5 with a 64-bit OS)
ser2netweb-windows-x64.exe Windows x64 executable; --install-service runs it as a service
ser2netweb_3.0.0_amd64.deb package for Debian, Ubuntu and other .deb systems, x86_64
ser2netweb_3.0.0_arm64.deb package for Debian, Ubuntu and other .deb systems, arm64
ser2netweb-3.0.0-1.x86_64.rpm package for Fedora, RHEL, AlmaLinux and other .rpm systems, x86_64
ser2netweb-3.0.0-1.aarch64.rpm package for Fedora, RHEL, AlmaLinux and other .rpm systems, arm64
ser2netweb-install.sh installs a Linux executable as a systemd service, checked against SHA256SUMS; moves a 2.9.x install over
ser2netweb-standalone.service systemd unit for the Linux executables (data in /var/lib/ser2netweb)
ser2netweb-*.cdx.json CycloneDX SBOM of each executable (3 files)
ser2netweb-*.THIRD-PARTY-LICENSES.txt licence texts of the components inside each executable (3 files)
SHA256SUMS SHA-256 checksums of all of the above

Docker image: ghcr.io/haliskilic/ser2netweb:3.0.0 (also 3.0 and latest), and the same image as ghcr.io/haliskilic/ser2net:3.0.0 (3.0, latest); linux/amd64, linux/arm64 and linux/arm/v7. 3.0 and latest are rebuilt weekly when the Debian/Python base image changes; 3.0.0 stays the image this release published.

PyPI: pipx install ser2netweb, or pipx install "ser2netweb[all]" for MQTT, LDAP, OIDC and in-process certificates (pypi.org/project/ser2netweb, uploaded by trusted publishing with PyPI's attestations).

Verify a download: sha256sum -c SHA256SUMS --ignore-missing, and the build provenance with gh attestation verify ser2netweb-linux-x64 -R haliskilic/ser2netweb, the packages likewise (gh attestation verify ser2netweb_3.0.0_amd64.deb -R haliskilic/ser2netweb); add --signer-workflow haliskilic/ser2netweb/.github/workflows/release.yml to require the release workflow, and each executable also has an SBOM attestation. The image: gh attestation verify oci://ghcr.io/haliskilic/ser2netweb:3.0.0 -R haliskilic/ser2netweb, which also holds for ghcr.io/haliskilic/ser2net:3.0.0; a weekly rebuild of 3.0 / latest is attested by image-refresh.yml. Files of 2.x releases were attested under the old name: verify them with -R haliskilic/ser2net. The Windows executable is not code-signed yet, so SmartScreen may warn; check it the same way (docs/WINDOWS.md).