
Lightweight, secure control plane & real-time web dashboard in Crystal for Linux firewalld and NetworkManager host security.
Pared is a secure, high-performance Linux host security control plane and real-time administrative web console written in Crystal. Built on Kemal and Blueprint server-rendered components with SQLite3, a small vanilla-JS/WebSocket layer, and native libsystemd journal streaming, it unifies firewalld and NetworkManager orchestration into a centralized, reactive interface.
Pared features mutual TLS (mTLS) passwordless authentication, Linux PAM/SSSD identity management, native C-bindings to libsystemd for live journal streaming, kernel packet simulation, automated anti-lockout rollback guardians, and container network bypass auditing.
DROP/REJECT), preventing operator lockout.0.0.0.0, ::)./trace, /rollback <zone>, /wg peer <term>, /zone add), with server-side dispatch to the matching console.pam_acct_mgmt), SSSD D-Bus group resolution, X.509 client certificate mTLS with CRL checks, and CSRF protection.NOTIFY_SOCKET, and structured audit logging.libsystemd development headers (systemd-devel)firewalld and NetworkManager active daemons# 1. Clone repository & install shard dependencies
git clone https://gitlab.com/renich/pared.git
cd pared
shards install
# 2. Provision host system Polkit rules & seed default database
make setup
make seed
# 3. Compile and launch development server
make build
make run
The control plane web dashboard is available at http://localhost:3636.
When seeded via make seed, default credentials are:
[email protected]password(Local system PAM user accounts with UID ≥ 1000 can also authenticate directly).
Pared enforces strict quality standards with comprehensive unit and E2E browser test suites:
# Run unit & integration test suite (200 examples)
make spec
# Run headless Selenium E2E browser test suite (16 examples)
make test-browser
# Run static analysis (Ameba)
bin/ameba
# Run security vulnerability scan (Flaw)
bin/flaw scan .
# Run reStructuredText documentation linter (crstlint)
find docs -name "*.rst" -exec crstlint {} +
A production-hardened systemd unit file is provided at scripts/pared.service, implementing kernel sandboxing, watchdog pinging, and capability restrictions:
# Build production release binary
make release
# Install binary and systemd service
sudo install -m 755 bin/pared /usr/local/bin/pared
sudo install -m 644 scripts/pared.service /etc/systemd/system/pared.service
# Enable and start service
sudo systemctl daemon-reload
sudo systemctl enable --now pared.service
# Inspect service status and watchdog health
sudo systemctl status pared.service
Comprehensive architectural specifications and decision records are maintained in the docs/ directory:
To build the Sphinx HTML documentation locally:
sphinx-build -b html -W docs docs/_build/html