mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +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
|
||||
|
||||
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
@@ -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"]
|
||||
|
||||
Reference in new issue
Block a user