Viegard: a modular, self-hosted autonomous monitoring and security platform with local AI inference. A vigilant raven sentinel.
  • C# 97.4%
  • CSS 1.3%
  • HTML 0.8%
  • JavaScript 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-21 13:23:27 -05:00
.github Add project documentation, community health files, and branding prompts 2026-08-18 15:22:27 -05:00
deploy Record D-0024: PostgreSQL 17; add DB and nightly backup rigging to compose 2026-08-19 13:50:03 -05:00
docs Implement syslog UDP ingestion source (Phase 4, D-0023) 2026-08-19 12:15:48 -05:00
src Implement deterministic classification spine 2026-08-21 09:01:58 -05:00
tests Implement deterministic classification spine 2026-08-21 09:01:58 -05:00
.dockerignore Complete Phase 3 remainder: prompt safety, output validation, queue telemetry, deploy artifacts 2026-08-18 17:33:42 -05:00
.gitattributes Build Phase 3 skeleton: domain model, ports, queue, secrets, hosts 2026-08-18 17:15:43 -05:00
.gitignore Record D-0024: PostgreSQL 17; add DB and nightly backup rigging to compose 2026-08-19 13:50:03 -05:00
AGENT-README.md Implement deterministic classification spine 2026-08-21 09:01:58 -05:00
ARCHITECTURE.md Implement deterministic classification spine 2026-08-21 09:01:58 -05:00
CODE_OF_CONDUCT.md Add project documentation, community health files, and branding prompts 2026-08-18 15:22:27 -05:00
CONTRIBUTING.md Add project documentation, community health files, and branding prompts 2026-08-18 15:22:27 -05:00
DECISIONS.md Record D-0028: deterministic-only classification first; LLM optional 2026-08-20 17:14:22 -05:00
Directory.Build.props Build Phase 3 skeleton: domain model, ports, queue, secrets, hosts 2026-08-18 17:15:43 -05:00
dotnet-tools.json Implement PostgreSQL persistence provider (D-0024) 2026-08-19 16:54:07 -05:00
LICENSE Add project documentation, community health files, and branding prompts 2026-08-18 15:22:27 -05:00
README.md Add raven sentinel logo assets and README banner 2026-08-18 15:24:53 -05:00
SECURITY.md Add project documentation, community health files, and branding prompts 2026-08-18 15:22:27 -05:00
THIRD-PARTY-NOTICES.md Implement PostgreSQL persistence provider (D-0024) 2026-08-19 16:54:07 -05:00
TODO.md Implement deterministic classification spine 2026-08-21 09:01:58 -05:00
Viegard.slnx Implement MDaemon log source adapter 2026-08-20 16:19:24 -05:00

Viegard: a raven sentinel beside the VIEGARD wordmark

Viegard

Viegard is a modular, self-hosted autonomous monitoring and security platform with local AI inference.

Its conceptual identity is a raven acting as a vigilant sentinel.

Component Metaphor Responsibility
Eyes Observation Data ingestion (IMAP mail, SWAG/nginx logs, future sources)
Flight Transport Event normalization, transport, and correlation
Mind Inference Deterministic rules and local LLM classification
Judgment Policy Policy evaluation and decision-making
Talons Actions External actions and remediation (email actions, firewall, Fail2Ban)
Roost State Persistent state and configuration
Ledger Audit Immutable audit trail for every decision and action

Status

Viegard is in early development (Phase 1: Discovery / Phase 2: Architecture). No functional code exists yet. See TODO.md for the current work queue and DECISIONS.md for the architectural decision record.

Initial goals

  1. Monitor and manage a Yahoo Mail account via IMAP, including AI-assisted spam classification and carefully controlled message actions.
  2. Monitor SWAG/nginx and other infrastructure logs, perform security/threat classification, correlate events into incidents, and take carefully controlled defensive actions.

Design principles

  • Modular. Data sources, classifiers, action providers, and AI backends are pluggable behind clean interfaces. Adding a new source or action must not require rewriting the core.
  • AI augments; it does not command. The local LLM produces schema-validated recommendations. A deterministic policy engine decides whether any action is permitted. The platform remains functional when the LLM is unavailable.
  • Safe by default. Dry-run is a first-class feature. Destructive actions (deleting mail, modifying firewall state) must be explicitly enabled. Protected addresses can never be automatically blocked.
  • Explainable. Every automated action is auditable: what happened, what evidence was observed, what the classifiers concluded, which policy matched, and what action resulted.
  • Private. Email contents and infrastructure logs are sensitive. Inference is local by default and never silently falls back to a cloud API.

Technology

  • .NET 10 (LTS), modern C#, worker/service-oriented architecture
  • Optional ASP.NET Core administrative API
  • Provider-neutral local inference abstraction (llama.cpp first; Ollama, vLLM, and others via adapters)
  • Deployed as a Docker container; the core remains deployment-independent

Documentation

Document Purpose
DECISIONS.md Living architectural decision record
TODO.md Unresolved questions, pending decisions, and work queue
AGENT-README.md Orientation for AI coding agents working on this repository
CONTRIBUTING.md Contribution guide
SECURITY.md Vulnerability reporting
THIRD-PARTY-NOTICES.md Third-party dependency licenses

License

MIT