CI : publication automatique de l'image Docker sur GHCR

- .github/workflows/docker-publish.yml : build + push de ghcr.io/r0m1k3/loki
  (linux/amd64, tags latest + sha, cache GHA) à chaque push sur main
- docker-compose.unraid.yml : utilise l'image préconstruite (plus de build/git
  sur Unraid, simple pull)
- README : instructions Unraid mises à jour (image GHCR, visibilité du package)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SVay7z3y7q2gEe54ByAE6N
This commit is contained in:
MichaelandClaude Opus 4.8 committed 2026-06-29 21:36:29 +00:00
1 parent 8bb55c7ea7
commit a35ec98ebc
3 files changed
+74 -18

No files matched your search

+47
View File
@@ -0,0 +1,47 @@
name: Publier l'image Docker (GHCR)
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
build-push:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Buildx
uses: docker/setup-buildx-action@v3
- name: Connexion à GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Métadonnées (tags / labels)
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=raw,value=latest
type=sha,format=short
- name: Build & push
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
+10 -4
View File
@@ -42,12 +42,14 @@ Application disponible sur http://localhost:8080
## Installation sur Unraid
Un compose prêt à l'emploi est fourni : [`docker-compose.unraid.yml`](docker-compose.unraid.yml).
L'image est **construite et publiée automatiquement par GitHub Actions** sur GHCR
(`ghcr.io/r0m1k3/loki:latest`) à chaque push sur `main`. Aucun build ni `git`
n'est nécessaire sur Unraid — un simple `pull`. Compose prêt à l'emploi :
[`docker-compose.unraid.yml`](docker-compose.unraid.yml).
1. Dans le terminal Unraid, prépare les dossiers et le code source :
1. Dans le terminal Unraid, crée les dossiers de données :
```bash
mkdir -p /mnt/user/appdata/loki/workspace /mnt/user/appdata/loki/data
git clone https://github.com/R0m1k3/Loki.git /mnt/user/appdata/loki/repo
```
2. Installe le plugin **Compose Manager** (Apps), crée une nouvelle stack, et
colle le contenu de `docker-compose.unraid.yml`.
@@ -55,9 +57,13 @@ Un compose prêt à l'emploi est fourni : [`docker-compose.unraid.yml`](docker-c
conteneur Ollama, p. ex. `http://192.168.1.10:11434`.
4. **Compose Up**. Loki est accessible sur `http://<ip-unraid>:8080`.
> La première publication de l'image prend quelques minutes (le temps que le
> workflow GitHub se termine). Si l'image est privée, rends le package **public**
> une fois (GitHub → Packages → `loki` → Package settings → Change visibility).
>
> Les modèles déjà présents dans ton Ollama sont **détectés automatiquement** ;
> tu peux en télécharger d'autres depuis l'onglet Configuration.
> Mise à jour : `cd /mnt/user/appdata/loki/repo && git pull`, puis Compose Up (rebuild).
> Mise à jour : Compose Down/Up (avec pull), ou `docker compose pull`.
## Développement (sans Docker)
+17 -14
View File
@@ -1,23 +1,26 @@
# ───────────────────────────────────────────────────────────────────────────
# Loki — docker-compose pour Unraid
# Loki — docker-compose pour Unraid (image préconstruite par GitHub)
#
# PRÉREQUIS (une seule fois, via le terminal Unraid) :
# mkdir -p /mnt/user/appdata/loki
# git clone https://github.com/R0m1k3/Loki.git /mnt/user/appdata/loki/repo
# mkdir -p /mnt/user/appdata/loki/workspace /mnt/user/appdata/loki/data
# Aucun build ni git nécessaire sur Unraid : l'image est publiée automatiquement
# sur GHCR par GitHub Actions à chaque push sur main.
#
# Puis colle ce fichier dans le plugin « Compose Manager » (nouvelle stack)
# et lance « Compose Up ». Pour mettre à jour plus tard :
# cd /mnt/user/appdata/loki/repo && git pull (puis Compose Up --build)
# MISE EN PLACE :
# 1) Crée les dossiers de données (terminal Unraid) :
# mkdir -p /mnt/user/appdata/loki/workspace /mnt/user/appdata/loki/data
# 2) Plugin « Compose Manager » -> nouvelle stack -> colle ce fichier.
# 3) Adapte OLLAMA_HOST avec l'IP de ton serveur Unraid (Ollama sur :11434).
# 4) Compose Up. Interface : http://<ip-unraid>:8080
#
# IMPORTANT : remplace l'IP dans OLLAMA_HOST par celle de ton serveur Unraid
# (là où tourne ton conteneur Ollama, port 11434).
# Mise à jour : Compose Down puis Up (l'option « pull image » récupère la
# dernière version), ou « docker compose pull » avant Up.
#
# NB : si l'image ghcr.io/r0m1k3/loki est privée, rends-la publique une fois
# (GitHub -> Packages -> loki -> Package settings -> Change visibility),
# ou connecte Unraid à GHCR avec un token.
# ───────────────────────────────────────────────────────────────────────────
services:
loki:
build:
context: /mnt/user/appdata/loki/repo
image: loki:latest
image: ghcr.io/r0m1k3/loki:latest
container_name: loki
ports:
- "8080:8080"
@@ -34,7 +37,7 @@ services:
- /mnt/user/appdata/loki/workspace:/workspace
- /mnt/user/appdata/loki/data:/data
extra_hosts:
# Permet aussi d'utiliser OLLAMA_HOST=http://host.docker.internal:11434
# Permet aussi OLLAMA_HOST=http://host.docker.internal:11434
- "host.docker.internal:host-gateway"
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:8080/api/health"]