Skip to main content

Installation

Self-host Auralith via Docker Compose. Une instance hostee SaaS est aussi disponible (voir landing).

Quand l'utiliser

Vous voulez heberger Auralith dans votre propre infra (pour des raisons de souverainete, de reseau prive vers vos DB, ou de cout). Auralith est bati pour tourner sur n'importe quel host Linux avec Docker.

Workflow rapide

  1. Cloner le repo : git clone <repo-url> puis cd auralith.
  2. Copier les fichiers d'environnement : cp .env.example .env et editer les valeurs (SECRET_KEY, DB_URL, SMTP, Stripe). Voir .env.example pour la liste complete.
  3. Generer une SECRET_KEY forte : openssl rand -hex 32.
  4. Demarrer le stack : docker compose -f docker-compose.preprod.yml up -d.
  5. Verifier la sante : curl http://localhost:8000/health doit renvoyer {"status": "ok"}.
  6. Ouvrir http://localhost:4200 (frontend) et creer un compte admin.
warning

La configuration par defaut est pour preprod / dev. Pour la prod, suivez la checklist TODO_PRODUCTION : HTTPS, SMTP reel, secret manager, backup automatise.

Variables d'environnement essentielles

SECRET_KEY=<32+ bytes hex>
DATABASE_URL=postgresql+asyncpg://user:pass@db:5432/auralith
SMTP_HOST=mailpit
SMTP_PORT=1025
CORS_ORIGINS=http://localhost:4200
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...

Concepts cles

  • App DB : Postgres dedie ou Auralith stocke ses tables (users, projects, patches, audit, etc.). Distinct des DB introspectees.
  • DB cibles : les DB de vos applications, accedees via Connection. Auralith ne stocke jamais leur contenu, sauf snapshots opt-in.
  • Background workers : tache email, cleanup, drift check, webhook, usage reporter, access sweeper. Demarres dans le lifespan FastAPI.

Pieges courants

  • SECRET_KEY faible : tout token JWT existant devient invalide si vous changez la cle. Generez une fois, gardez en lieu sur.
  • CORS_ORIGINS : liste blanche stricte. Sans https://app.example.com, le frontend ne peut pas appeler l'API.
  • Pas de HTTPS : les cookies sont marques Secure en prod, le navigateur refusera de les envoyer sur HTTP.

Voir aussi