No description
- Nix 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| docs | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
odysseus-nix
⚠️ Disclaimer — vibe-coded, no guarantees
This flake was vibe-coded (written with an AI assistant) and then eyeballed. It evaluates and its check passes, but it is not a polished, battle-tested package. No guarantees — of correctness, completeness, security, or fitness for production. Use at your own risk.
Run Odysseus — the self-hosted AI
workspace / agent harness by odysseus-dev — on NixOS as a pinned Docker
container via a NixOS module.
It does not natively build the Python app (Python 3.14 + PEP 667 wheels
- opencv/chromium is a swamp for near-zero benefit); it packages the
official multi-arch image
ghcr.io/odysseus-dev/odysseuswith an immutableX.Y.Z-<sha>tag throughvirtualisation.oci-containers(docker backend).
Quick start
Verify the module evaluates:
nix build .#checks.<system>.odysseus-module .#checks.<system>.odysseus-companions \
--extra-experimental-features 'nix-command flakes'
Wire it into a host:
# flake.nix
inputs.odysseus.url = "<url to this repository>";
# host config
{
imports = [ inputs.odysseus.nixosModules.odysseus ];
services.odysseus.enable = true;
services.odysseus.extraEnv = { SEARXNG_INSTANCE = "http://<searxng-host>:8080"; };
}
Documentation
- docs/configuration.md — all
services.odysseus.*options, what the module sets, environment variables. - docs/usage.md — wiring into a host, sops secrets, backends, first boot, updating the image, troubleshooting.
Repository layout
├── flake.nix # module + runnable check
├── flake.lock
├── LICENSE # MIT
├── README.md
└── docs/
├── configuration.md
└── usage.md
The flake exposes nixosModules.odysseus (import into a host) and
checks.<system>.odysseus-module and checks.<system>.odysseus-companions
(standalone evaluation checks).