
# Installation

Vous pouvez installer Sovrium sur votre propre machine ou le déployer chez un hébergeur cloud en un clic. Choisissez la voie qui correspond à l'endroit où votre application s'exécutera.

## Prérequis

Les tables et l'authentification fonctionnent d'emblée sur une base de données SQLite embarquée — aucune configuration requise. PostgreSQL 15+ est optionnel et débloque des fonctionnalités avancées (SQL brut, recherche vectorielle). L'exécution depuis les sources nécessite [Bun 1.3+](https://bun.sh).

## Installation locale

Sovrium est distribué sous forme de binaire autonome : il n'y a donc aucun environnement d'exécution à installer séparément. Choisissez la méthode qui correspond à votre système d'exploitation.

```bash
# Script d'installation (macOS, Linux)
curl -fsSL https://sovrium.com/install | sh

# Homebrew (macOS, Linux)
brew install sovrium/tap/sovrium

# Scoop (Windows)
scoop bucket add sovrium https://github.com/sovrium/scoop-bucket
scoop install sovrium

# Docker
docker pull ghcr.io/sovrium/sovrium:latest
```

Après l'installation, la commande `sovrium` est disponible depuis n'importe où.

## Installation cloud

Exécutez Sovrium sur un hébergeur géré sans provisionner vous-même de serveur.

### Déploiement en un clic

Chaque bouton ci-dessous provisionne un serveur durable à partir de l'image Sovrium et vous guide tout au long de la configuration.

[![Déployer sur Scalingo](https://cdn.scalingo.com/deploy/button.svg)](https://dashboard.scalingo.com/create/app?source=https://github.com/sovrium/sovrium)
[![Déployer sur Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/sovrium/sovrium)
[![Déployer sur Railway](https://railway.app/button.svg)](https://railway.app/new/template?template=https://github.com/sovrium/sovrium)
[![Déployer sur Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/sovrium/sovrium)

Chaque hébergeur vous demande quelques variables d'environnement : `AUTH_SECRET` (requise), `BASE_URL` (requise), `DATABASE_URL` (optionnelle — par défaut, SQLite embarqué) et `SMTP_*` (optionnelles, pour l'envoi d'e-mails). Render, Railway et Heroku exécutent l'image pré-construite `ghcr.io/sovrium/sovrium` ; Scalingo déploie avec le [buildpack Sovrium](https://github.com/sovrium/scalingo-buildpack), qui télécharge le binaire publié et vérifié par somme de contrôle.

Platform.sh, Fly.io et Coolify exécutent également Sovrium à partir de la même image.

Vercel n'est pas pris en charge, car cette plateforme est serverless : elle n'offre ni serveur ni conteneur durable, et Sovrium a besoin d'un processus de longue durée pour servir votre application et stocker ses données.

### Docker sur votre propre serveur

Pour exécuter Sovrium sur un VPS ou tout hôte que vous contrôlez, démarrez le conteneur directement et placez-le derrière un proxy inverse :

```bash
docker run -p 3000:3000 \
  -e AUTH_SECRET="votre-secret" \
  -e BASE_URL="https://app.example.com" \
  -v ./data:/app/data \
  ghcr.io/sovrium/sovrium:latest start app.yaml
```

L'option `-v` monte un volume de données afin que votre base SQLite et vos fichiers téléversés survivent aux redémarrages.

## Vérifier l'installation

Exécutez la commande d'aide pour vérifier que Sovrium est correctement installé :

```bash
sovrium --help
```

## Créer un fichier de configuration

Sovrium lit un fichier de configuration YAML ou JSON. Créez un fichier `app.yaml` avec la configuration valide la plus simple :

```yaml
name: my-app
```

:::callout
**YAML ou JSON.** Sovrium prend en charge les fichiers `.yaml`/`.yml` et `.json`. Le YAML est recommandé pour sa lisibilité.
:::

:::callout
**Vous rédigez votre configuration en TypeScript ?** Installez le paquet sans dépendance `@sovrium/types` pour l'autocomplétion dans l'IDE (`bun add -d @sovrium/types`) et rédigez votre configuration avec `defineConfig`. Voir [Fichiers de configuration](/fr/docs/configuration-files).
:::

## Configuration de la base de données

Sovrium utilise par défaut une base de données SQLite embarquée — les tables et l'authentification fonctionnent sans aucune configuration. Définissez `DATABASE_URL` uniquement pour choisir l'emplacement du fichier SQLite ou pour passer à PostgreSQL :

```bash
# Par défaut : SQLite embarqué — aucun DATABASE_URL nécessaire

# Optionnel — choisir l'emplacement du fichier SQLite :
export DATABASE_URL="file:./data/app.db"

# Optionnel — utiliser PostgreSQL pour les fonctionnalités avancées :
export DATABASE_URL="postgresql://user:password@localhost:5432/myapp"
```

:::callout
**SQLite par défaut.** Laissez `DATABASE_URL` non défini et Sovrium stocke les données dans un fichier SQLite local. Utilisez une URL `file:` pour choisir son emplacement, ou une URL `postgresql://` pour changer de moteur. Les sites purement statiques (pages et thème uniquement) n'ont besoin d'aucune base de données.
:::

## Étapes suivantes

- [Démarrage rapide](/fr/docs/quick-start) — créez et exécutez votre première application.
- [Concepts fondamentaux](/fr/docs/concepts) — l'anatomie d'une application Sovrium.
- [Fichiers de configuration](/fr/docs/configuration-files) — YAML, JSON, TypeScript et `$ref`.
