Veylor Overseer is an internal defence/military command-centre styled infrastructure monitoring and operations console for the Veylor ecosystem (SSO, Relay, Warden, Pager, and eGarage).
- Strict Inbound-Only Telemetry:
- Master never connects outbound to child nodes.
- Child nodes in Rust are strictly read-only telemetric agents.
- There is no command channel, no remote execution, no SSH, and no remote container manipulation.
- Master Time Authority:
- Availability and health are determined by Master's authoritative
received_atclock, not untrusted node timestamps.
- Availability and health are determined by Master's authoritative
- Workspace Multi-Tenancy:
- Tenancy enforced at every layer: Auth -> Membership -> Service Logic -> Database query scoping.
- Veylor SSO Native:
- Standard OIDC Authorization Code Flow with PKCE (S256). Uses immutable
subclaim for identity reference.
- Standard OIDC Authorization Code Flow with PKCE (S256). Uses immutable
- Alert Suppression:
- Telegram notifications adhere to a maximum 2-failure limit per persistent outage incident, suppressing spam until recovery.
- Privacy Mode & IP Visibility:
- Nodes report server IP addresses for situational awareness.
- Built-in navbar "Privacy Mode" instantly obscures sensitive IPs, hostnames, and URLs with
[REDACTED]for safe screen-sharing and public demos.
- Direct Service Navigation:
- Monitored HTTP services feature an "Open" action button for immediate direct verification.
cd overseer
uvicorn master.overseer.main:app --port 8080 --reloadsource /Users/ihorsavenko/Hub/veylor/sso/.venv/bin/activate
PYTHONPATH=master pytest -v master/tests/test_master.pyDeploying with Kamal to production (https://overseer.veylor.dev):
# Push Kamal secrets to server
kamal secrets push
# Deploy master app & proxy
kamal deployThe node agent compiles to a standalone static binary without dynamic C dependencies (musl target), supporting both x86_64 (AMD64) and aarch64 (ARM64, such as Oracle Cloud Ampere A1, AWS Graviton, Raspberry Pi).
The /install.sh script automatically detects your server's architecture (uname -m) and downloads the correct binary (x86_64 or aarch64):
curl -fsSL https://overseer.veylor.dev/install.sh | sh -s -- \
--token "<ACTIVATION_TOKEN>" \
--url "https://overseer.veylor.dev"For x86_64 / AMD64:
sudo curl -fsSL https://github.com/veylor-hq/overseer/releases/download/v1/overseer-node-linux-x86_64 -o /usr/local/bin/overseer-node
sudo chmod +x /usr/local/bin/overseer-nodeFor ARM64 / aarch64 (Oracle Cloud A1, Graviton, etc.):
sudo curl -fsSL https://github.com/veylor-hq/overseer/releases/download/v1/overseer-node-linux-aarch64 -o /usr/local/bin/overseer-node
sudo chmod +x /usr/local/bin/overseer-nodeOn macOS / Linux using Docker:
cd node
# Build both x86_64 and aarch64:
./build_linux.sh all
# Or build a specific target:
./build_linux.sh aarch64
./build_linux.sh x86_64- Go to your Overseer Web Console: https://overseer.veylor.dev/nodes
- Click + Register Node, name the server, and copy the generated one-time activation token.
- On the target Linux host, activate using either the installer script or direct binary command:
curl -fsSL https://overseer.veylor.dev/install.sh | sh -s -- \
--token "<ACTIVATION_TOKEN>" \
--url "https://overseer.veylor.dev"overseer-node --activate \
--url "https://overseer.veylor.dev" \
--token "<ACTIVATION_TOKEN>"Note: Always use
https://in production. Activation tokens are single-use and burned immediately upon activation. Credentials will be securely saved to/etc/overseer/credentials.json(root) or~/.overseer/credentials.json(user).
To ensure the node automatically starts on boot and streams CPU, RAM, Disk, and Docker metrics:
If your user activated the node, copy credentials to system path:
sudo mkdir -p /etc/overseer
[ -f ~/.overseer/credentials.json ] && sudo cp ~/.overseer/credentials.json /etc/overseer/credentials.json
sudo chmod 600 /etc/overseer/credentials.jsonCreate /etc/systemd/system/overseer-node.service:
sudo tee /etc/systemd/system/overseer-node.service << 'EOF'
[Unit]
Description=Veylor Overseer Node Agent
After=network.target docker.service
Wants=docker.service
[Service]
Type=simple
ExecStart=/usr/local/bin/overseer-node
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOFsudo systemctl daemon-reload
sudo systemctl enable --now overseer-nodejournalctl -u overseer-node -f -n 25If running overseer-node under a specific non-root user instead of root, grant access to /var/run/docker.sock:
# Add user to docker group
sudo usermod -aG docker $USER
# Apply group changes to existing session / systemd user manager
sudo systemctl restart user@$(id -u).service| Argument | Environment Variable | Default | Description |
|---|---|---|---|
--url |
OVERSEER_URL |
http://localhost:8080 |
Master public URL |
--token |
OVERSEER_ACTIVATION_TOKEN |
None | One-time single-use activation token |
--interval |
OVERSEER_INTERVAL |
300 |
Telemetry heartbeat interval in seconds (minimum 10s) |
--cred-file |
- | /etc/overseer/credentials.json |
Path to load/save authenticated credentials |
--activate |
- | false |
Perform activation handshake and exit immediately |