Vigiles — your infrastructure never sleeps.

Monitor. Investigate. Act.

Open-source fleet operations: observe and control your baremetal servers, VMs, and containers from one place — and talk to your fleet through AI chat.

View on GitHub See the deck Srpski

What is Vigiles

One platform that both watches and acts. Monitoring shows you what's happening; the control plane lets you do something about it — through a gated command catalog, with an AI chat grounded in live telemetry as the primary interface. Named after the Roman night watch that did both.

Who it's for

DevOps & sysadmins

Mixed fleets — a few baremetal boxes, VMs on top, containers on top of those — without stitching together one tool for graphs, another for inventory, and SSH for everything else.

Managed service providers

Many clients, one platform: every client is a tenant with its own fleet, users, and AI account, strictly isolated from the others.

Teams that ask questions

"Which host is running out of disk?" beats building another dashboard. Questions first, dashboards second.

Features

Fleet overview

Every node, live status, automatic host↔guest topology.

Dashboards

Build your own control room: pick the panels, arrange them, keep several dashboards and switch between them. Yours, per user — the one you leave open is what greets you at sign-in.

Telemetry

CPU, memory, disk, network per host and container.

AI chat

Questions answered from live telemetry, inventory, topology.

Control

Gated command catalog, only where an approved control agent runs.

File inventory

Search any file across every host in seconds.

Enrollment

Token → pending → approve; telemetry first, control on trust.

Usage & cost

What each tenant costs in storage — file index, event log, file store — plus fleet counts, snapshotted with history. A system report covers the whole deployment.

Image thumbnails

Agents render thumbnails for millions of images in place and stream only the thumbnails — browse a NAS full of photos without pulling a single original.

Self-upgrading agents

Publish a signed release; agents pull it, verify the signature, and swap themselves across the fleet — no SSH, no orchestration.

Live log tail

A real tail -f on any log — or any container — on any host, streamed to the browser. Mix several sources into one pane, files and containers across servers, each in its own color with a legend; filterable, one click to save a capture. No SSH.

Containers

Every docker/podman container in the fleet: running counts per server, CPU and memory per container, live logs, restart/stop/start from the browser. The host agent reads cgroups and the runtime socket — nothing gets installed inside containers.

Alerts

Threshold rules per host, per label group, or fleet-wide — with severity levels; critical alerts are built to ring through Do Not Disturb.

Labels

Tag servers freely — prod, nas, role:db — then filter, search, and scope alert rules by label. A group of servers is one chip away.

Roles & host visibility

Admins and users per tenant — and per-user host hiding: a hidden server vanishes from lists, file search, thumbnails, even the AI's answers. Your private NAS in a shared fleet stays yours.

Mobile app

Link a phone by scanning a QR — no password on the device. The fleet, charts, AI chat, live log tail, and photo browsing in your pocket, with the same per-user permissions as the web.

Beyond servers

The same platform, pointed at other kinds of fleet. A tenant is set to a mode — servers, photo library, GPS tracking — and the navigation follows: you get the surfaces that mode needs and nothing else. Everything below runs on the machinery already described: the same agents, the same tenancy, the same permissions.

Photo library at NAS scale

Point it at a NAS and it becomes a photo library: agents render thumbnails in place, EXIF and GPS pin every shot to a map, and local vision models tag what is actually in the picture. Search "sailboat" and get sailboats — no cloud service ever sees a photo.

Faces & people

Faces are detected, embedded and clustered into people — name a cluster once and every photo of them lines up behind it. Merge, split and group people; hide the ones you do not want to see. Also on the phone.

GPS tracking

Record a walk, a drive or a flight from the phone — offline-first, so a tunnel or a dead zone costs nothing but a gap in the spool. Watch it live on the web while it is happening: trace coloured by speed, altitude and speed charts, distance and duration as they grow.

Share a live track

One link hands anyone the live map — no account, no app, nothing to install. Revoke it and the link is dead. It is the same page the owner sees, minus everything that identifies them.

3D flight view

Any track replays in 3D over real terrain — orbit it, chase it, or sit in the cockpit and watch the horizon bank into the turns. Attitude is reconstructed from the track itself, so nothing extra has to be recorded. A flight in progress can be followed live, in 3D, from the share link.

Aircraft fleet & external API

Aircraft as first-class objects, and a flightradar-style live map of the ones in the air. A tablet in the cockpit authenticates with a device API key and posts fixes into the same endpoints the phone uses — one contract, no separate integration surface.

Live tracking overview

Every track of every tenant in one table, newest first, a live one appearing at the top the moment it starts — with notifications when a track begins, ends, or stops sending fixes.

Live from a real fleet

Not mockups — real numbers from the 30-host fleet Vigiles runs itself on, read off it while this page was written.

Self-upgrading agents

27 / 30
hosts on the newest agent. Published one signed release — agents pulled it, verified the signature, and swapped themselves. No SSH.

What the index costs

Photo understanding — vectors14.1 GB
File index — OpenSearch9.8 GB
File store — vola0.7 GB
13.0M files describing 27.4 TB across 27 hosts, indexed with their change history — and every photo in them understood — for about 25 GB. It is a report, per tenant, with history.

Thumbnails at scale

901kthumbnails
768pxin place
0originals pulled
One NAS, a million photos. Agents render thumbnails where the files live and stream only the thumbnails — browse them in the UI, deduplicated by content.

What the models found

621kphotos tagged
257kfaces
20.6kpeople
Tagging, face detection and clustering all run on our own hardware — local models, no photo leaves the fleet. Naming a cluster once labels every photo behind it.

A look inside

Fleet hosts table
Your whole fleet at a glance — status, agents, files.
Fleet AI chat
Ask your fleet a question.
Host telemetry
Live CPU, memory, and disk history per host.
Host file tree
Browse any host's file system — folders left, details right.
Command catalog
Gated command catalog — act only where allowed.
Fleet file search
Find any file across every host in seconds.
Track 3D view
A track replayed in 3D over real terrain — orbit, chase, or cockpit.
Shared track page
A shared track: the live map anyone with the link sees, no account.

Architecture

Two static Go agents per host — telemetry (metrics, FS inventory, in-place thumbnails) and control (gated commands, installed only where allowed), both signed and self-upgrading. FastAPI services behind one mount, PostgreSQL per service, Redis Streams ingest, OpenSearch file index. Multitenant by construction.

telemetry agentGo, static
Redis Streams
FastAPI servicesfleet · telemetry · control · AI
PostgreSQL
FS inventory
OpenSearch
Web UI + AI chatMCP tool layer
control agentgated commands

Open source

Apache-2.0, built in the open. Both planned phases are delivered: enrollment, telemetry, fleet topology, AI chat, file-system inventory — then gated action commands, long-running jobs, self-upgrading agents, in-place thumbnails and per-tenant cost reporting. What came after was not on the plan: dashboards, a photo library that understands its photos, GPS tracking with live share links and a 3D flight view, and an aircraft fleet with an external device API. If you run a fleet — of servers or of anything else — and want to watch it and act on it from one place, or want to help build that: welcome.