https://github.com/arnested/systemd-state
systemd state - http server for monitoring systemd state
https://github.com/arnested/systemd-state
hacktoberfest monitoring systemd systemd-state
Last synced: 6 days ago
JSON representation
systemd state - http server for monitoring systemd state
- Host: GitHub
- URL: https://github.com/arnested/systemd-state
- Owner: arnested
- License: mit
- Created: 2018-01-30T23:12:36.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2026-02-10T20:30:34.000Z (19 days ago)
- Last Synced: 2026-02-10T23:48:13.803Z (19 days ago)
- Topics: hacktoberfest, monitoring, systemd, systemd-state
- Language: Go
- Homepage: https://systemd-state.arnested.dk
- Size: 10.3 MB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# systemd state http server
[](https://hub.docker.com/r/arnested/systemd-state)
[](https://cla-assistant.io/arnested/systemd-state)
A small HTTP server exposing the overall state of systemd.
Equivalent to `systemctl is-system-running`.
The server will answer with the following HTTP status codes:
* 200 OK: The system is fully operational.
* 503 Internal Server error: If the system is in any other state
* 500 Service Unavailable: If we could not determine the systemd state
## What is the purpose of this
This is a "poor mans" monitoring solution.
It has been created to expose the overall system state to monitoring
solutions such as [Pingdom](https://www.pingdom.com/) or
[StatusCake](https://www.statuscake.com/).
## Docker image
There is a [Docker image at Docker
Hub](https://hub.docker.com/r/arnested/systemd-state/).
## The status is not protected by HTTPS or authentication
You are right. It is exposed on HTTP without any authentication. I
have chosen the same stance as Prometheus on this. See [Prometheus'
FAQ](https://prometheus.io/docs/introduction/faq/#why-don-t-the-prometheus-server-components-support-tls-or-authentication-can-i-add-those).
Personally I have placed systemd-state behind
[Træfik](https://traefik.io) with basic authentication.
## Example docker-compose configuration with traefik
Exposing the status on `https://example.com/_systemd`:
```yml
version: "2"
services:
systemd:
image: arnested/systemd-state
volumes:
- '/run/systemd/:/run/systemd/:ro'
restart: always
labels:
- 'traefik.frontend.auth.basic=foo:$$apr1$$WCYo2XY2$$7PDdo922necZuGkMAeTI70'
- "traefik.port=80"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:example.com;Path:/_systemd"
networks:
- web
networks:
web:
external:
name: traefik_webgateway
```