- PLpgSQL 33.2%
- Shell 32.5%
- JavaScript 29.4%
- Python 2.5%
- TypeScript 1.2%
- Other 1.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forge | ||
| .github/workflows | ||
| assets/avatars | ||
| database | ||
| deploiement | ||
| docs | ||
| locales | ||
| scripts | ||
| tableau-de-bord | ||
| tests | ||
| volumes | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .gitleaks.toml | ||
| .gitleaksignore | ||
| compose.deploiement.yml | ||
| compose.external-proxy.yml | ||
| compose.lan.yml | ||
| compose.local.yml | ||
| compose.production.yml | ||
| compose.yml | ||
| LICENSE | ||
| NOTICE | ||
| nuvio | ||
| README.md | ||
| renovate.json | ||
| SECURITY.md | ||
Auto-héberger Nuvio
Faites tourner Nuvio sur votre propre serveur avec Docker Compose. Le déploiement comprend le backend, le tableau de bord du compte, l'authentification, la synchronisation et le stockage.
Ce projet s'adresse à qui préfère garder son compte Nuvio, sa bibliothèque et
ses données synchronisées sur une infrastructure qu'il contrôle. Le backend
officiel hébergé par Nuvio est https://api.nuvio.tv. Les déploiements
auto-hébergés sont prévus pour un usage personnel. Nous déconseillons de se
connecter à des backends publics non officiels tenus par des tiers : Nuvio ne
peut ni les vérifier ni les prendre en charge.
Langue de l'interface
La ligne de commande ./nuvio et son importateur de compte parlent
français par défaut. Le catalogue de messages vit dans locales/ — une
clé par ligne, un fichier par langue. Pour repasser en anglais le temps d'une
commande :
NUVIO_LANG=en ./nuvio doctor
Un garde compte ce qui n'est pas traduit et refuse de conclure au jugé :
scripts/verifier-traduction.sh # mesure et verdict
scripts/verifier-traduction.sh --epreuve # fabrique des pannes et exige qu'il les voie
⚠ Le tableau de bord web est traduit ICI, mais pas depuis ses sources. L'amont le livre sous forme d'image déjà construite (
ghcr.io/nuviomedia/nuvio-account-dashboard), depuis un dépôt privé — et l'image n'embarque aucun mécanisme de langue. Nous partons donc de son image et remplaçons les chaînes dans le rendu compilé : voirtableau-de-bord/, sonDockerfileetfranciser.mjs.L'image de base est archivée sur disque (
tableau-de-bord/amont/) et la construction se fait sur le poste de travail, sans réseau — si l'amont retire son image, on reconstruit quand même. Le pourquoi, les mesures qui établissent que la source n'est pas récupérable, et la procédure de restauration :tableau-de-bord/amont/LISEZMOI.md.
Déploiement
Le déploiement recommandé utilise HTTPS avec un domaine. Chaque client dispose alors d'une seule URL de backend stable, avec un certificat auquel les navigateurs, les téléphones et les téléviseurs font confiance.
Prérequis
- Un serveur Linux 64 bits (
amd64ouarm64) - Docker Engine avec Docker Compose v2
- Git, OpenSSL et curl
- Un domaine ou un sous-domaine pointant vers le serveur
- Les ports TCP
80et443libres pour le Caddy fourni, ou un reverse proxy HTTPS déjà en place
Créez un enregistrement A ou AAAA du genre backend.exemple.fr, puis :
git clone http://192.168.1.70:3000/foXaCe/self-host
cd self-host
./nuvio setup --domain backend.exemple.fr
./nuvio up
./nuvio credentials
Une fois Nuvio démarré, ouvrez https://backend.exemple.fr pour le tableau de
bord du compte. Saisissez la même adresse comme URL de backend dans les
clients Nuvio. Caddy gère HTTPS et aiguille les requêtes du tableau de bord et
de l'API vers les bons services.
Les clients compatibles utilisent le point de découverte
https://backend.exemple.fr/.well-known/nuvio. Voir
Connecter les applications Nuvio.
Reverse proxy déjà en place
Si Nginx, Caddy, Traefik ou un panneau d'hébergement occupe déjà les ports 80
et 443, faites tourner Nuvio derrière ce proxy :
./nuvio setup --domain backend.exemple.fr --proxy external
./nuvio up
Faites pointer le proxy sur http://127.0.0.1:8080, puis lancez
./nuvio doctor. Dans ce mode, c'est le proxy en place qui gère les
certificats TLS. Voir
Utiliser un reverse proxy existant pour des exemples
de configuration et pour faire tourner Traefik dans Docker.
Installation locale
Le mode local sert aux essais sur le serveur lui-même ou à travers un tunnel SSH :
git clone http://192.168.1.70:3000/foXaCe/self-host
cd self-host
./nuvio setup
./nuvio up
./nuvio credentials
Le tableau de bord répond alors sur http://localhost:3000 et le backend sur
http://localhost:8000. Les deux n'écoutent que sur la boucle locale du
serveur.
Déployer sur le LXC du foyer
scripts/deployer.sh déploie ce dépôt sur le LXC 129. Il traite les cas
d'échec d'abord, il est rejouable, et il prouve par le SERVICE — jamais par le
contenu d'un dossier :
scripts/deployer.sh --verifier # lecture seule, n'écrit rien
scripts/deployer.sh --verifier-migrations # le seul contrôle du schéma
scripts/deployer.sh --agent <nom-de-passe>
Le contrôle du schéma compte les migrations appliquées et les compare aux fichiers du dépôt : il sort en erreur (code 8) et nomme celles qui manquent. Il se rejoue à la demande sur une instance déjà en place, sans rien y écrire.
Guides
- Guide d'auto-hébergement
- Utiliser un reverse proxy existant
- Connecter les applications Nuvio
- Architecture
- Sécurité
Licence
Sous licence Apache 2.0. Voir LICENSE et NOTICE — les textes juridiques font foi en anglais et ne sont pas traduits.