All Odysseus user data lives in theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/pewdiepie-archdaemon/odysseus/llms.txt
Use this file to discover all available pages before exploring further.
data/ directory at the root of the project. This includes your chat history, uploaded files, memories, skills, settings, user accounts, and anything else that persists between restarts. The directory is gitignored by default, so it is never included in commits or forks. Keeping a regular backup of data/ is the only thing you need to do to protect your Odysseus data.
What Is in data/
| Path | Contents |
|---|---|
app.db | SQLite database — sessions, messages, documents, tasks, calendar events, email accounts |
memory.json | Flat memory store for persistent agent memories |
memory_doc.md | Long-form memory document |
uploads/ | Files uploaded through the chat or document interface |
personal_docs/ | Personal documents and runbooks |
chroma/ | ChromaDB vector store data (used for semantic memory search) |
settings.json | App settings |
auth.json | User accounts (credentials, roles, privileges) |
sessions.json | Active session tokens |
presets.json | Saved chat presets |
Built-In Backup (Export)
Odysseus includes a built-in export tool available at Settings → Backup (admin only). Clicking Export creates a downloadable JSON archive containing:- Memories
- Skills
- Presets
- App settings
- Feature flags
- User preferences
The built-in export covers memories, skills, presets, settings, and preferences. It does not include the SQLite database (
app.db), uploaded files, ChromaDB vector data, or auth/session files. For a complete backup, use the manual file-copy approach below.Manual Full Backup
For a complete, consistent backup of everything indata/, stop the app before copying. Copying while the app is running risks a partial read of the SQLite database mid-write.
data/, then restart.
Restoring from Backup
Moving data/ to a Different Location
Use the ODYSSEUS_DATA_DIR environment variable to move the entire data/ tree to a different path — useful for storing data on a NAS, external drive, or a separate volume.
data/ — settings, auth, sessions, uploads, skills, memories — will use this root instead.
External SQLite Path
By default, the SQLite database lives atdata/app.db. You can point it to a different file using the DATABASE_URL variable:
data/, or when you want an explicit path rather than the relative default.
External ChromaDB
If you run ChromaDB as a separate external server rather than using the embedded instance, the vector store data is managed independently ofdata/chroma/. Configure the external host and port in .env:
data/chroma/ directory will be empty or unused.
Encryption of Stored Secrets
IMAP and SMTP credentials stored inapp.db are encrypted at rest using a Fernet symmetric key stored at data/.app_key (mode 0o600 on POSIX). This protects against database file exfiltration — for example, a stolen backup or a leaked container layer — but does not protect against a full process compromise where an attacker can read the key file alongside the database.