mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 06:58:14 +02:00
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:
1 parent
8bb55c7ea7
commit
a35ec98ebc
3 files changed
+74
-18
No files matched your search
@@ -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
|
||||||
@@ -42,12 +42,14 @@ Application disponible sur http://localhost:8080
|
|||||||
|
|
||||||
## Installation sur Unraid
|
## 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
|
```bash
|
||||||
mkdir -p /mnt/user/appdata/loki/workspace /mnt/user/appdata/loki/data
|
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
|
2. Installe le plugin **Compose Manager** (Apps), crée une nouvelle stack, et
|
||||||
colle le contenu de `docker-compose.unraid.yml`.
|
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`.
|
conteneur Ollama, p. ex. `http://192.168.1.10:11434`.
|
||||||
4. **Compose Up**. Loki est accessible sur `http://<ip-unraid>:8080`.
|
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** ;
|
> 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.
|
> 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)
|
## Développement (sans Docker)
|
||||||
|
|
||||||
|
|||||||
+17
-14
@@ -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) :
|
# Aucun build ni git nécessaire sur Unraid : l'image est publiée automatiquement
|
||||||
# mkdir -p /mnt/user/appdata/loki
|
# sur GHCR par GitHub Actions à chaque push sur main.
|
||||||
# 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
|
|
||||||
#
|
#
|
||||||
# Puis colle ce fichier dans le plugin « Compose Manager » (nouvelle stack)
|
# MISE EN PLACE :
|
||||||
# et lance « Compose Up ». Pour mettre à jour plus tard :
|
# 1) Crée les dossiers de données (terminal Unraid) :
|
||||||
# cd /mnt/user/appdata/loki/repo && git pull (puis Compose Up --build)
|
# 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
|
# Mise à jour : Compose Down puis Up (l'option « pull image » récupère la
|
||||||
# (là où tourne ton conteneur Ollama, port 11434).
|
# 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:
|
services:
|
||||||
loki:
|
loki:
|
||||||
build:
|
image: ghcr.io/r0m1k3/loki:latest
|
||||||
context: /mnt/user/appdata/loki/repo
|
|
||||||
image: loki:latest
|
|
||||||
container_name: loki
|
container_name: loki
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
@@ -34,7 +37,7 @@ services:
|
|||||||
- /mnt/user/appdata/loki/workspace:/workspace
|
- /mnt/user/appdata/loki/workspace:/workspace
|
||||||
- /mnt/user/appdata/loki/data:/data
|
- /mnt/user/appdata/loki/data:/data
|
||||||
extra_hosts:
|
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"
|
- "host.docker.internal:host-gateway"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-fsS", "http://localhost:8080/api/health"]
|
test: ["CMD", "curl", "-fsS", "http://localhost:8080/api/health"]
|
||||||
|
|||||||
Reference in new issue
Block a user