feat: initial emdash setup with Docker + QNAP config
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user