- Python 54.8%
- Shell 38.1%
- Dockerfile 7.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| defaults | ||
| .gitignore | ||
| CHANGELOG.md | ||
| check-memory.sh | ||
| CloudronManifest.json | ||
| CloudronVersions.json | ||
| DESCRIPTION.md | ||
| Dockerfile | ||
| LICENSE | ||
| logo.png | ||
| POSTINSTALL.md | ||
| README.md | ||
| save-memory.sh | ||
| screenshot.jpg | ||
| server_wrapper.py | ||
| start.sh | ||
EverOS for Cloudron
Cloudron package for EverOS — portable memory layer for every AI agent: local-first, Markdown-native, user-owned, and self-evolving across apps, tools, and workflows.
Architecture
EverOS is a pure local-first service. All persistent state lives under /app/data via the localstorage addon. No external addons required — no PostgreSQL, Redis, MongoDB, Elasticsearch, or Milvus.
Storage stack (EverOS upstream design):
/app/data/
├── api_key.txt Cloudron-generated X-API-Key credential (persisted across restarts)
├── .initialized First-run flag
└── everos/ EVEROS_ROOT
├── everos.toml Provider & API config (edit via File Manager, restart after saving)
├── ome.toml OME scheduler settings (hot-reloaded, ~2 s)
├── .index/
│ ├── sqlite/system.db State, queues, relational index
│ └── lancedb/ Vector similarity + BM25 keyword indexes
└── <app_id>/<project_id>/ Canonical Markdown memory source of truth
├── users/<user_id>/ User profile, episodes, atomic facts, foresights
├── agents/<agent_id>/ Agent profiles, Cases (trajectories), Skills (distilled)
└── knowledge/ Knowledge Wiki pages
Markdown files are authoritative — SQLite and LanceDB are derived indexes. Edit any .md file directly in File Manager and the cascade watcher re-syncs the indexes within seconds.
Networking
- Port: 8000 (
httpPortin manifest) - Bind:
0.0.0.0viaEVEROS_API__HOSTenv in start.sh - Health check:
/health— returns 200 JSON with{"status":"ok", ...}and a live capability matrix (Cloudron healthcheck hits this unauthenticated) - Auth: API-key-only, per server_wrapper.py.
/health,/docs,/openapi.json,/redocare public; all other routes requireX-API-Key: <value>header (or?api_key=query param for ad-hoccurl). The key is generated on first boot and stored in/app/data/api_key.txt; delete + restart to rotate.
Provider tiers
EverOS ships four independent provider tiers (fill progressively in everos/everos.toml via File Manager):
| Tier | Unlocks | Minimal viable |
|---|---|---|
[llm] |
Memory extraction + keyword search | One OpenRouter key |
[embedding] |
Vector search, hybrid search, reflection, skill extraction | DeepInfra embedding key |
[rerank] |
Agentic search, Knowledge Wiki | DeepInfra rerank key |
[multimodal] |
Image / PDF / audio / Office ingestion | Multimodal-capable endpoint + LibreOffice bundled in image |
All sections accept any OpenAI-compatible endpoint (base_url + model + api_key).
End-user workflow (POSTINSTALL recap)
- Get the API key via Web Terminal:
cat /app/data/api_key.txt - Visit
https://<app>/healthto verify service is up and check the live capability matrix - Open File Manager →
everos/everos.toml, fill in at least[llm].api_key, save, and restart the app - Test with
POST /api/v2/memory/add→POST /api/v2/memory/flush→POST /api/v2/memory/search(usemethod: "keyword"if only the LLM tier is configured) - Interact with memories directly as Markdown under
everos/<app_id>/<project_id>/
Upstream
- Source: https://github.com/EverMind-AI/EverOS (EverOS v1.2.3)
- Docs: https://docs.evermind.ai
- License: Apache-2.0