Repository navigation
v3.0.0
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.
.deband.rpmpackages for x86_64 and arm64:sudo apt install ./ser2netweb_3.0.0_amd64.deborsudo dnf install ./ser2netweb-3.0.0-1.x86_64.rpm, thensudo systemctl enable --now ser2netweb(Linux packages).- A PyPI package:
pipx install ser2netwebon 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 downloadsser2net-linux-x64must change. - Environment variables have the prefix
SER2NETWEB_; theSER2NET_*names still work. When both are set, theSER2NETWEB_*one wins, also when it is empty (Environment variables). --versionprintsser2netweb 3.0.0, and webhooks, OIDC and cluster peer requests sendUser-Agent: ser2netweb/3.0.0: scripts, receivers and filters that matchser2netmust accept the new name.- Python code that imports
app.*must importser2netweb.*. - Once moved over, the systemd unit is
ser2netweb.serviceand the Windows service and its Event Log source areser2netweb: monitoring that checks the old names must follow. - Unchanged: the cluster protocol, the Prometheus metric names
ser2net_*, the MQTT and Sparkplug B defaults, theconfig.jsonkeys, the REST API paths, the cookie names (nobody is signed out) and the default e-mail sender addressser2net@<host>.
How to upgrade
- Docker: nothing has to change:
ghcr.io/haliskilic/ser2netgets 3.0.0 as the very same image. To switch to the new path and the newdocker-compose.yml(service and containerser2netweb, the volumeser2net-datakept):docker compose pull && docker compose up -d --remove-orphans(Upgrading from 2.9.x). - Standalone binary installed with
ser2net-install.sh: putser2netweb-linux-x64(or-arm64),ser2netweb-standalone.service,ser2netweb-install.shandSHA256SUMSin one folder and runsudo sh ser2netweb-install.sh(add--remove-old-userto drop the userser2net). It moves/var/lib/ser2netto/var/lib/ser2netweb, keeps the address and your drop-ins, removes 2.9.x's unit and binary onceser2netweb.serviceanswers, and never touches anotherser2net.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 ser2netkeeps it on the old names (ser2net.pystarts 3.0.0). The commands to move it to/opt/ser2netwebandser2netweb.service, and those forser2net@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 NAMEfor each). It takes over 2.x'sser2netservice, moves its data fromC:\ProgramData\ser2net\toC:\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 forC:\Program Files\ser2netweb\ser2netweb.exeand delete the oldser2netrule (commands in the CHANGELOG). - New installs: the
.deb/.rpmpackage,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).