📚 Tutorial

# Héberger vos propres services SaaS

Par Gandalf • 22 décembre 2024 • 18 min de lecture

Fatigué de dépendre de Google, Microsoft et autres géants du cloud ? Avec VHost Manager, transformez votre réseau local en plateforme SaaS privée : Nextcloud remplace Google Drive, GitLab remplace GitHub, et Jellyfin remplace Netflix.

## Pourquoi auto-héberger ?

Aspect | Services Cloud | Auto-hébergé
--- | --- | ---
🔒 Vie privée | Vos données chez eux | Vos données chez vous
💰 Coût | Abonnements mensuels | Coût initial puis gratuit
🌐 Dépendance Internet | Requise en permanence | Fonctionne hors ligne
⚡ Performance locale | Limitée par la connexion | Vitesse du réseau local
🎛️ Contrôle | Limité aux options proposées | Total

## Services recommandés

☁️

#### Nextcloud → Remplace Google Drive/Dropbox

Synchronisation de fichiers, calendrier, contacts, notes, visioconférence. Applications mobiles et desktop. Collaboration en temps réel sur documents.

💻

#### GitLab → Remplace GitHub

Hébergement Git avec CI/CD intégré, wiki, issues, merge requests. Parfait pour vos projets personnels ou d'équipe.

🎬

#### Jellyfin → Remplace Netflix/Plex

Streaming de votre bibliothèque multimédia. Films, séries, musique. Applications sur tous les appareils. 100% gratuit et open source.

🏠

#### Home Assistant → Domotique centralisée

Contrôlez tous vos appareils connectés depuis une interface unique. Automatisations puissantes, intégrations illimitées.

## Configuration VHost Manager

### 1. Installation

    opkg update
    opkg install luci-app-vhost-manager nginx
    /etc/init.d/rpcd reload

### 2. Définir les services internes

    # /etc/config/vhost

    config vhost 'global'
        option enabled '1'
        option default_ssl '1'
        option acme_email '[email protected]'

    config internal 'nextcloud'
        option enabled '1'
        option name 'Nextcloud'
        option domain 'cloud.local.lan'
        option backend '192.168.1.10:80'
        option ssl '1'

    config internal 'gitlab'
        option enabled '1'
        option name 'GitLab'
        option domain 'git.local.lan'
        option backend '192.168.1.11:80'
        option ssl '1'

    config internal 'jellyfin'
        option enabled '1'
        option name 'Jellyfin'
        option domain 'media.local.lan'
        option backend '192.168.1.12:8096'
        option ssl '1'

### 3. Configuration DNS locale

Ajoutez les domaines à dnsmasq pour qu'ils pointent vers le routeur :

    # /etc/dnsmasq.conf ou via LuCI

    address=/cloud.local.lan/192.168.1.1
    address=/git.local.lan/192.168.1.1
    address=/media.local.lan/192.168.1.1
    address=/home.local.lan/192.168.1.1

### 4. Configuration nginx (générée automatiquement)

    # /etc/nginx/conf.d/vhost-cloud.conf

    server {
        listen 443 ssl http2;
        server_name cloud.local.lan;

        ssl_certificate /etc/ssl/acme/cloud.local.lan.crt;
        ssl_certificate_key /etc/ssl/acme/cloud.local.lan.key;

        location / {
            proxy_pass http://192.168.1.10:80;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

## Redirection de services externes (avancé)

Fonctionnalité expérimentale : redirigez les requêtes vers des services externes (Google Drive, GitHub) vers vos alternatives locales. Nécessite l'interception DNS.

⚠️ Attention : Cette fonctionnalité peut casser certaines applications qui dépendent des services originaux. À utiliser avec précaution.

    config redirect 'google_drive'
        option enabled '0'  # Désactivé par défaut
        option name 'Google Drive → Nextcloud'
        option external_domain 'drive.google.com'
        option local_domain 'cloud.local.lan'

## Gestion des certificats SSL

### Certificats auto-signés (réseau local)

    # Générer un certificat auto-signé
    openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
        -keyout /etc/ssl/private/cloud.local.lan.key \
        -out /etc/ssl/certs/cloud.local.lan.crt \
        -subj "/CN=cloud.local.lan"

### Let's Encrypt (avec accès externe)

    config ssl 'settings'
        option provider 'acme'
        option challenge 'dns'  # ou 'http'
        option auto_renew '1'
        option renew_days '30'

## Déployer vos services

### Nextcloud avec Docker

    docker run -d \
        --name nextcloud \
        -p 8080:80 \
        -v nextcloud:/var/www/html \
        -v nextcloud-data:/var/www/html/data \
        nextcloud:latest

### Jellyfin avec Docker

    docker run -d \
        --name jellyfin \
        -p 8096:8096 \
        -v jellyfin-config:/config \
        -v /media:/media \
        jellyfin/jellyfin:latest

### 🌐 Créez votre cloud privé

Installez VHost Manager et prenez le contrôle de vos services.

Voir la démo

## Conclusion

L'auto-hébergement n'a jamais été aussi accessible. Avec VHost Manager, vous configurez facilement un reverse proxy nginx, gérez vos certificats SSL et organisez tous vos services depuis une interface unifiée dans LuCI.

Vos données restent chez vous, vos services fonctionnent même sans Internet, et vous bénéficiez de performances réseau local optimales. C'est le meilleur des deux mondes !