InstallEpistemic WebSafetyHow it worksResearchAccordGitHub

Infrastructure

Multi-region, privacy-first infrastructure. Designed to be deleted.

Designed to Be Deleted

The CIRIS infrastructure is meant to be temporary. Every part of it is built knowing it will be retired once the peer-to-peer network meant to replace it is ready. That is the plan, not an accident. We avoid anything that ties CIRIS to one company, or that assumes a central hub has to exist forever.

This is the hosted path: the two rented regions below keep CIRIS free for everyone today. Run a small model on your own device and you skip them entirely. The substrate that replaces them is CEWP.

DNS → Veilid DHT
Proxy → Veilid private routes
Billing → TBD (may persist longest)

Two Regions, Both Always On

Clients
Americas / Europe
separate domains per region

Vultr US

Chicago
via Cloudflare
CIRISBilling
CIRISProxy
PostgreSQL
Redis
Caddy (TLS)
+ CIRISLens

Hetzner EU

Falkenstein, Germany
direct DNS
CIRISBilling
CIRISProxy
PostgreSQL
Redis
Caddy (TLS)
PostgreSQL sync
US Region (Americas)
EU Region (Europe)
US-only service

Services

Split DNS

The US site and the EU site reach the internet two different ways, so no single failure can take both down.

  • • The US site goes through Cloudflare, which also absorbs attacks
  • • The EU site connects directly
  • • If Cloudflare has trouble, the EU site still works

CIRISBilling

Keeps CIRIS running without ads and without selling your data.

  • • You buy credits ahead of time
  • • Each credit is counted exactly once, never twice
  • • You sign in with Google

CIRISProxy

Passes requests to the AI model. Your conversations are never stored.

  • • Works with standard AI model providers
  • • Every provider is set to keep no data
  • • Nothing you send or receive is logged

PostgreSQL

The database. Both regions keep matching copies, and either one can be written to.

  • • The two copies stay in step with each other
  • • If they ever disagree, the most recent change wins
  • • A person, not a script, switches regions (safer for money)

Performance

Production Metrics (scout.ciris.ai)

368 MB
Memory Usage
5%
CPU Usage
5-10s
Response Time
22
Core Services

Bending Instead of Breaking

  • Backup AI providers: if the main one is down, it falls back to another
  • Careful startup: the must-have parts load first, the optional parts can fail without stopping the rest
  • Adapts: copes with a patchy network or limited power

Key Design Decisions

Both Regions Run at Once

Both regions handle real traffic at the same time, so neither is a single point of failure. Each has its own web address. If one region goes down, people can switch to the other right away, with no waiting.

Two Separate Hosting Companies

One US company (Vultr) and one German company (Hetzner), under two different countries' laws. No single company can take CIRIS down, and because nothing is locked to either one, we can switch if their prices or policies change.

Split DNS Strategy

US traffic goes through Cloudflare, which absorbs attacks and speeds things up. EU traffic connects straight to Hetzner. Splitting it this way means no single failure can take both down: if Cloudflare has trouble, the EU site still works.

A Person Switches the Database, Not a Script

For money data, like credit balances and payments, a person makes the call to switch regions, not an automatic script. This avoids the case where both regions think they are in charge at once. When money is involved, careful beats clever.

Safety Integration

The infrastructure follows the safety policy: “Fix it if we can. Pause only if we cannot.”

Global Pause

Stops the whole service across both regions. The database is kept safe. A clear written reason is required.

Regional Pause

Pauses one region while the other keeps serving. Used for a problem that only affects one place.

Trust artifacts are public AGPL-3.0 in the CIRISBridge repository: SECURITY.md, OPERATIONS.md, and 26 named Ansible runbooks (incident-response, intrusion-response, cert-rotate, backup-verify, e2e-smoke-test, image-update, disk-cleanup, billing-rollback, add-region, and others). The repository itself is also public: CIRISAI/CIRISBridge.

100% AGPL-3.0 Open Source

Why AGPL-3.0?

Every CIRIS component uses the GNU Affero General Public License v3.0. This isn't just "open source". It's network copyleft. If anyone modifies CIRIS and offers it as a service, they must release their modifications under the same license.

  • Prevents cloud appropriation: No company can take CIRIS, modify it, and offer it as a closed service
  • Ensures transparency: Any deployed version's source must be available to users
  • Protects the commons: Improvements flow back to the community, not into proprietary forks

Every component of CIRIS infrastructure is open source under AGPL-3.0. You can audit our claims, reproduce our setup, or fork it, and if you serve it to others, you share your improvements.

CIRISAgent

AGPL-3.0

Core agent framework

CIRISManager

AGPL-3.0

Scout, research agents, Discord mods

CIRISBridge

AGPL-3.0

Terraform + Ansible orchestration

CIRISBilling

AGPL-3.0

Credits and payments

CIRISProxy

AGPL-3.0

LLM routing with ZDR

CIRISLens

AGPL-3.0

Observability and status

ciris-website

AGPL-3.0

This website

"This infrastructure exists to be deleted. That is the whole point."

CIRIS: Accountability Infrastructure for Autonomous AI

© 2025-2026 Eric Moore and CIRIS L3C | AGPL-3.0 License