Assistente D&D 5e con interfaccia web e Telegram, powered by OpenRouter AI.
- Docker e Docker Compose
- OpenRouter API Key (gratuita su https://openrouter.ai)
# Clona il repository
git clone https://github.com/tu-username/codex20-openrouter.git
cd codex20-openrouter
# Avvia il wizard di setup
python setup.pyIl wizard ti guiderà attraverso:
- Creazione utente admin
- Iniezione API key OpenRouter
- Selezione modello AI
- Generazione configurazione
# Avvia il servizio principale
docker compose up -d
# Controlla lo stato
docker compose logs -fAccedi all'interfaccia web:
- URL: http://localhost:8085
- Login: Utente creato durante il setup
- 💬 Chat con assistente AI
- 📁 Upload/Download materiale campagna
- 👥 Multi-utente con autenticazione
- 🔄 Fallback automatico modelli
- Crea un bot su Telegram con @BotFather
- Ottieni il token
- Aggiungi al .env:
TELEGRAM_TOKEN=your_token_heredocker compose run --rm bot| Variabile | Descrizione | Default |
|---|---|---|
OPENROUTER_API_KEY |
API key OpenRouter | - |
MODEL_NAME |
Modello AI principale | google/gemma-4-31b-it:free |
BACKUP_MODEL_NAME |
Modello di backup | nvidia/nemotron-3-ultra-550b-a55b:free |
ADMIN_USERNAME |
Username admin | admin |
ADMIN_PASSWORD |
Password admin (hash) | - |
# Modifica .env con il modello desiderato
MODEL_NAME=google/gemma-4-31b-it:free
# Oppure:
MODEL_NAME=qwen/qwen3.5:free
MODEL_NAME=meta-llama/llama-3.3-70b-instruct:freecodex20-openrouter/
├── app.py # FastAPI backend
├── setup.py # Setup wizard
├── bot.py # Telegram bot
├── core/
│ ├── api_client.py # OpenRouter client
│ ├── session.py # Gestione sessioni
│ ├── users.py # Gestione utenti
│ └── rag.py # RAG regole D&D
├── static/
│ └── index.html # Interfaccia web
├── data/ # Database SQLite
└── logs/ # Log applicativi
# Installa dipendenze
pip install -r requirements.txt
# Avvia setup
python setup.py
# Avvia server
uvicorn app:app --host 0.0.0.0 --port 8084- Password hashate con SHA256
- JWT tokens per autenticazione
- API key non esposte nei log
- CORS configurato per produzione
# Controlla log
docker compose logs -f codex20
# Stato API
curl http://localhost:8085/api/status
# Test connessione
curl http://localhost:8085/api/testdocker compose down
docker compose build --no-cache
docker compose up -dIl sistema usa automaticamente il modello di backup quando il principale è rate-limited.
docker exec -it codex20-python python -c "
from core.users import register_user
register_user('admin', 'nuova-password')
"MIT License - Vedi LICENSE file
- Fork il progetto
- Crea branch feature
- Commit cambiamenti
- Push e Pull Request
Created with ❤️ by Dario & Codex20 Team