Le code et la configuration modèle sont versionnés ; les secrets et l'état local
ne le sont pas (cf. .gitignore). Voici comment repartir d'un poste neuf.
install.sh provisionne tout sur un système nu — y compris un conteneur LXC/Docker Debian : sudo, git, curl, outils de build, Docker (script officiel get.docker.com), Python 3.13 via uv, le venv et les dépendances.
# En 1 ligne (clone + installe) :
curl -fsSL https://raw.githubusercontent.com/faelnor92/athena/main/install.sh | bash
# ou, dépôt déjà cloné :
./install.shDebian/Ubuntu ne packagent pas Python 3.13 →
install.shl'installe via uv (sans toucher au python système). Lancé en root (conteneur), il se passe desudo.
- git, curl, Docker (sandbox d'exécution de code), et uv (provisionne Python 3.13).
- Un endpoint LLM (cloud ou local) — par défaut le projet utilise
CUSTOM_LLM_API_BASE.
git clone <URL_DU_DEPOT> athena && cd athena
# uv : installe Python 3.13 + crée un venv ISOLÉ (évite un vieux chromadb 0.5.x système).
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.13
uv venv --python 3.13 .venv
source .venv/bin/activate # Windows : .venv\Scripts\activate
uv pip install -r requirements.txt
# Optionnel — assistant vocal local « Jarvis » (STT/wakeword) :
# uv pip install -r requirements-voice.txt
# Optionnel — transcription de réunion + dictée vocale du chat (Whisper local) :
# uv pip install openai-whisper # ⚠️ tire PyTorch (~poids important)
# (sinon : la transcription bascule sur un LLM cloud si GEMINI/OPENAI_API_KEY est défini)
# Sandbox : l'image est tirée au 1er usage, ou manuellement :
docker pull python:3.13-slimcp .env.example .env # puis renseigner CUSTOM_LLM_API_BASE / CUSTOM_LLM_API_KEY, etc.- Test local : laisser
HOST=127.0.0.1(aucun mot de passe requis). - Accès réseau :
HOST=0.0.0.0etADMIN_PASSWORD=...(idéalement derrière un reverse-proxy HTTPS). - Fichiers optionnels (depuis leurs
.examplesi besoin) :mcp_servers.json(serveurs MCP),channel_policies.json(permissions par canal).
# (venv activé — cf. étape 3 ; utilise le python du venv, PAS le python3 système)
python server.py # interface web -> http://localhost:8000
# ou
python main.py # CLI interactif
python voice_assistant.py # assistant vocal (serveur lancé à côté)
⚠️ Lance toujours avec le python du venv (venv activé, ou.venv/bin/python server.py). Lepython3système utiliserait d'autres dépendances (potentiellement périmées).
for t in tests/test_*.py; do python3 "$t"; doneRecréé automatiquement, ou à copier manuellement si vous voulez migrer vos données :
conversations*.json(fils de discussion),core_memory.json(faits mémorisés),.chroma_db/(mémoire vectorielle / RAG),runs.sqlite3(historique des runs),workspace/(saufpricing_config.json),logs/,skills/*.py(compétences générées par les agents).
Pour transporter une compétence précise dans le dépôt :
git add -f skills/<nom>.py.