iStat Server is a system monitoring daemon that is used in conjunction with iStat View for iOS and iStat View for macOS to remotely monitor computers.
This fork brings iStatServerLinux up to date for modern Linux systems (and beyond).
All changes are backward-compatible with the original iStat client app.
This updated version of iStat Server for Linux modernizes and extends the original Bjango repository:
- ✅ Modernized build system — fully updated Autotools setup compatible with current GCC, Clang, and pkg-config environments.
- 🔐 Improved security — stronger OpenSSL 3.x support, hardened build flags, and safer configuration file permissions.
- 🧠 Enhanced sensor detection — improved CPU/GPU and frequency handling across multiple architectures.
- 🧰 Optional systemd integration —
--enable-systemd-unitadds automatic service installation. - 🪶 Cleaner, more reliable configuration and install process — better dependency detection and streamlined setup scripts.
| Hardware | Architecture | Example Device | Build Status |
|---|---|---|---|
| Intel / AMD 64-bit | x86_64 |
Mac mini (Intel), PC servers | ✅ Compiles and runs cleanly |
| ARM 64-bit | aarch64 |
Odroid N2, Raspberry Pi 4 (64-bit OS) | ✅ Stable |
| ARM 32-bit | armv7l |
Odroid XU4, older Raspberry Pi models | ✅ Stable |
| macOS | x86_64 / arm64 | Apple Silicon or Intel | ⚙️ Build planned, not yet supported |
iStat Server builds and runs natively on both 64-bit and 32-bit ARM Linux systems as well as traditional x64 servers.
Cross-compiling is also possible using standard GNU autotools.
curl -fsSL https://raw.githubusercontent.com/ulf16/istatserverlinux/master/get-istatserver.sh -o istatserverlinux.sh && sh istatserverlinux.sh
Quick install will install and update any required packages. The installer is designed for Linux distributions using systemd. It automatically builds, installs, and enables the istatserver service.
On non-systemd systems (e.g., Alpine with OpenRC, Devuan, or BSDs), the build will still succeed, but service installation will be skipped. You can then run the daemon manually:
sudo -u istat /usr/local/bin/istatserver
or create a small init script if you prefer to start it automatically. If you do not want packages installed or updated automatically then please perform a manual install using the instructions below
-
Linux (updated)
-
FreeBSD, DragonFly BSD, OpenBSD, NetBSD and other BSD based OSs
-
AIX
-
Solaris
-
HP-UX (Still in development and not tested)
- C and C++ compilers such as gcc and g++.
- Auto tools (autoconf and automake).
- OpenSSL/libssl + development libraries.
- sqlite3 + development libraries.
- libxml2 + development libraries.
We have a package guide available to help you install all the required packages for your OS.
- Pull the latest branch (
master). - cd /path/to/istatserver
- ./autogen
- ./configure
- make
- sudo make install
- Test with: sudo /usr/local/bin/istatserver
- Install systemd unit file: sudo cp ./resource/systemd/istatserver.service /etc/systemd/system/istatserver.service
- sudo systemctl restart istatserver
A 5 digit passcode is generated by the install script. It can be found in the preference file, which is generally located at /usr/local/etc/istatserver/istatserver.conf. iStat View will ask for this passcode the first time you connect to your computer.
Upgrades follow the same process as standard installs. Please stop istatserver if it is running then run the normal build process.
-
Least privilege:
The service runs as a dedicated user istat (not root).
Configuration and database files live in /usr/local/etc/istatserver/
and are owned by istat:istat.
-
Foreground service:
The included systemd unit uses Type=simple (no -d), meaning the process stays
in the foreground under systemd’s direct supervision.
This ensures clean restarts, proper logging (journalctl), and avoids PID-file issues.
-
No elevated privileges required:
Power (RAPL) readings are made accessible to the istat user through a udev rule
that adjusts permissions on the relevant sysfs files.
By default, the installer applies a world-readable rule:
SUBSYSTEM=="powercap", KERNEL=="intel-rapl:*", TEST=="%S%p/energy_uj", RUN+="/bin/chmod 0444 %S%p/energy_uj"
- For tighter control, you can restrict access to the istat group instead:
SUBSYSTEM=="powercap", KERNEL=="intel-rapl:*", TEST=="%S%p/energy_uj", GROUP="istat", MODE="0440"
- Then reload and apply the rule:
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=powercap
-
Process hardening:
The systemd unit enforces several security directives:
NoNewPrivileges, PrivateTmp, and multiple Protect*= options to reduce
the attack surface. You can tighten them further (for example
ProtectSystem=strict, ReadWritePaths=/usr/local/etc/istatserver)
depending on your setup.
-
Certificates and keys:
Self-signed certificates use RSA-2048 with SHA-256 and are generated through
OpenSSL’s modern EVP API. They are stored in:
/usr/local/etc/istatserver/key.pem
/usr/local/etc/istatserver/cert.pem
-
Make sure these files are not world-writable and owned by the istat user.
You can safely replace them with your own certs using the same file paths.
-
Network exposure:
istatserver listens on all interfaces by default.
To restrict access, configure network_addr and network_port
in /usr/local/etc/istatserver/istatserver.conf,
or use a local firewall rule to limit visibility.
-
Database and logging:
Historical data is stored in SQLite under /usr/local/etc/istatserver/.
On devices with flash storage (like SBCs), consider placing this directory
on a more durable drive, tmpfs, or using periodic syncs to reduce write wear.
iStat Server does not install any scripts to start itself at boot. Sample scripts for rc.d, upstart and systemd are included in the resources directory. You may need to customize them depending on your OS.
- sudo cp ./resource/systemd/istatserver.service /etc/systemd/system/istatserver.service
- sudo service istatserver start
- sudo cp ./resource/upstart/istatserver.conf /etc/init/istatserver.conf
- sudo start istatserver
- sudo cp ./resource/rc.d/istatserver /etc/rc.d/istatserver
- sudo /etc/rc.d/istatserver start
iStat Server is based on istatd by William Tisäter.
::::::::: ::::::: :::: :::: ::: :::::::: ::::::::
:+: :+: :+: :+: :+: :+:+: :+: :+: :+: :+: :+:
+:+ +:+ +:+ +:+ +:+ :+:+:+ +:+ +:+ +:+ +:+
+#++:++#+ +#+ +#++:++#++: +#+ +:+ +#+ :#: +#+ +:+
+#+ +#+ +#+ +#+ +#+ +#+ +#+#+# +#+ +#+# +#+ +#+
#+# #+# #+# #+# #+# #+# #+# #+#+# #+# #+# #+# #+#
######### ##### ### ### ### #### ######## ########