starlight-wiki
Wiki statique basé sur Astro Starlight, déployé sur Kubernetes via Forgejo Actions et servi derrière Bunny CDN.
Stack
- Framework : Astro + Starlight
- Runtime : Node.js (build) + Nginx (serveur statique)
- Conteneur : Docker multi-stage
- Orchestration : k3s / Kubernetes
- CI/CD : Forgejo Actions
- CDN : Bunny.net
Développement local
pnpm install
pnpm dev
Le site est accessible sur http://localhost:4321.
Build
pnpm build
Les fichiers statiques sont générés dans le dossier dist/.
Structure du contenu
src/content/docs/
├── index.mdx # Page d'accueil
├── guides/ # Section Guides
└── reference/ # Section Référence (générée automatiquement)
Les pages sont écrites en Markdown ou MDX. Ajouter un fichier dans src/content/docs/ suffit à créer une nouvelle page.
Docker
Build de l'image :
docker build -t astro-wiki:v1 .
L'image utilise un build multi-stage : Node.js pour compiler le site, puis Nginx Alpine pour le servir sur le port 80.
Déploiement
Le déploiement est automatique à chaque push sur main via Forgejo Actions (.forgejo/workflows/deploy.yml) :
- Build de l'image Docker
- Import de l'image dans k3s
- Rollout restart du déploiement
astro-wikidans le namespaceapps - Purge du cache Bunny CDN
Le site est exposé à l'adresse https://wiki.jblzz.me via Traefik et cert-manager (Let's Encrypt).
Kubernetes
Le manifest astro-wiki.yaml contient le Deployment, le Service et l'Ingress.
Appliquer manuellement :
kubectl apply -f astro-wiki.yaml