102 lines
2.6 KiB
Markdown
102 lines
2.6 KiB
Markdown
# EmDash Blog - Docker Self-Hosted
|
|
|
|
CMS EmDash (Astro + SQLite) deploye en Docker sur QNAP.
|
|
|
|
## Pre-requis
|
|
|
|
- Docker + Docker Compose
|
|
- Network `swag_lan` existant
|
|
- Repertoires crees sur le QNAP :
|
|
|
|
```bash
|
|
mkdir -p /share/ZFS24_DATA/docker/emdash/data
|
|
mkdir -p /share/ZFS24_DATA/docker/emdash/uploads
|
|
```
|
|
|
|
## Deploiement
|
|
|
|
### 1. Build et lancement
|
|
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
### 2. Generer les secrets (optionnel mais recommande)
|
|
|
|
```bash
|
|
# Sur une machine avec Node.js
|
|
npx emdash auth secret
|
|
# Copier la valeur dans docker-compose.yml pour EMDASH_AUTH_SECRET
|
|
npx emdash auth secret
|
|
# Copier la valeur pour EMDASH_PREVIEW_SECRET
|
|
```
|
|
|
|
Puis decommenter les lignes correspondantes dans `docker-compose.yml` et relancer :
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
### 3. Creer le premier compte admin
|
|
|
|
1. Ouvrir `http://<IP-QNAP>:4321/_emdash/admin`
|
|
2. L'assistant de configuration apparait au premier lancement
|
|
3. Renseigner le titre du site et le tagline
|
|
4. Creer le compte administrateur avec un email
|
|
5. Enregistrer un passkey (WebAuthn) via le navigateur
|
|
|
|
> **Note** : L'authentification utilise WebAuthn (passkeys). Un navigateur
|
|
> moderne avec support biometrique ou cle de securite est requis.
|
|
|
|
## URL d'acces
|
|
|
|
| Service | URL |
|
|
|---------|-----|
|
|
| Site public | `http://<IP-QNAP>:4321` |
|
|
| Admin | `http://<IP-QNAP>:4321/_emdash/admin` |
|
|
|
|
Avec un reverse proxy SWAG, configurer le subdomain/subpath pour pointer sur `emdash:4321`.
|
|
|
|
## Variables d'environnement
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `HOST` | `0.0.0.0` | Adresse de bind |
|
|
| `PORT` | `4321` | Port d'ecoute |
|
|
| `DATABASE_PATH` | `/data/emdash.db` | Chemin du fichier SQLite |
|
|
| `UPLOAD_DIR` | `/uploads` | Repertoire des fichiers media |
|
|
| `EMDASH_AUTH_SECRET` | (auto) | Secret pour les sessions |
|
|
| `EMDASH_PREVIEW_SECRET` | (auto) | Secret pour les previews |
|
|
| `TZ` | `Europe/Paris` | Timezone |
|
|
|
|
## Volumes
|
|
|
|
| Container | QNAP | Usage |
|
|
|-----------|-------|-------|
|
|
| `/data` | `/share/ZFS24_DATA/docker/emdash/data` | Base SQLite |
|
|
| `/uploads` | `/share/ZFS24_DATA/docker/emdash/uploads` | Fichiers media uploades |
|
|
|
|
## Maintenance
|
|
|
|
```bash
|
|
# Voir les logs
|
|
docker compose logs -f emdash
|
|
|
|
# Redemarrer
|
|
docker compose restart emdash
|
|
|
|
# Rebuild apres mise a jour
|
|
docker compose up -d --build
|
|
|
|
# Backup de la base
|
|
cp /share/ZFS24_DATA/docker/emdash/data/emdash.db /path/to/backup/
|
|
```
|
|
|
|
## Stack technique
|
|
|
|
- **CMS** : [EmDash](https://github.com/emdash-cms/emdash) v0.1.0
|
|
- **Framework** : Astro 6 (SSR standalone)
|
|
- **Runtime** : Node.js 22 LTS
|
|
- **Database** : SQLite (better-sqlite3)
|
|
- **Auth** : WebAuthn (passkeys)
|