DOC
Accueil/ Projets/ VPS Hostinger - Stack ENGWE/ VPS Hostinger - Stack ENGWE

VPS Hostinger - Stack ENGWE

Guide complet et reproductible pour transformer un VPS Hostinger KVM2 (Ubuntu, 8 Go RAM) fraîchement installé en serveur d'applications propre et sécurisé.

Deux parcours possibles - choisis-en UN

Les deux mènent au même résultat (tes services en HTTPS sur des sous-domaines). La différence : qui gère le point d'entrée (ports 80/443) et le déploiement.

🟢 Parcours A - Coolify (recommandé) Parcours B - Nginx Proxy Manager
Idée Plateforme type Vercel/Heroku : tout en clics Reverse proxy + stack Docker faite main
Déployer TES applis ✅ Intégré (Git / Dockerfile / compose, secrets, tests, SSL auto) ❌ À scripter soi-même
Installer n8n, NocoDB… ✅ Catalogue 1-clic 🟠 Via docker-compose.yml fourni
Reverse proxy / SSL ✅ Automatique (Traefik) 🟠 Manuel dans l'UI NPM
Contrôle bas niveau Bon Total
Idéal si… tu veux déployer des applis facilement tu veux tout maîtriser à la main

⚠️ Ne combine pas les deux : Coolify et NPM veulent tous les deux les ports 80/443. Un seul à la fois.

Recommandation : commence par le Parcours A (Coolify) - c'est le plus simple pour ton besoin « déployer mes applis avec une interface ».


Services installés

Service Rôle Sous-domaine Exposé
Coolify (parcours A) Plateforme de déploiement + proxy + SSL coolify-it.engwe-france.fr HTTPS
Nginx Proxy Manager (parcours B) Reverse proxy + SSL (UI web) npm-it.engwe-france.fr Tunnel SSH
n8n Automatisations / workflows n8n-it.engwe-france.fr HTTPS
Open WebUI Chat branché sur API externe (OpenAI / Claude via LiteLLM) chat-it.engwe-france.fr HTTPS
NocoDB Interface tableur (type Airtable) sur PostgreSQL - pour non-IT data-it.engwe-france.fr HTTPS
PostgreSQL 16 Base relationnelle (n8n, NocoDB, tes apps) - Privé (réseau interne)
MongoDB 7 Base NoSQL - Privé (réseau interne)
Mongo Express Interface graphique MongoDB mongo-it.engwe-france.fr HTTPS + auth
Portainer Interface graphique pour gérer Docker portainer-it.engwe-france.fr HTTPS
Uptime Kuma Surveillance de disponibilité + alertes uptime-it.engwe-france.fr HTTPS
FastAPI Exemple d'API Python prête à déployer api-it.engwe-france.fr HTTPS

Schéma de sous-domaines : <nom>-it.engwe-france.fr (un seul niveau, un A record chacun). La racine engwe-france.fr reste sur Shopify pour ton site.

Les bases de données ne sont jamais exposées à Internet : accessibles seulement par les autres conteneurs.

Budget mémoire (indicatif, parcours Coolify)

Composant RAM approx.
Coolify (Traefik + core) ~600 Mo
PostgreSQL ~250 Mo
MongoDB ~300 Mo
NocoDB ~300 Mo
n8n ~400 Mo
Open WebUI ~300 Mo
Mongo Express ~80 Mo
Portainer ~100 Mo
Uptime Kuma ~150 Mo
FastAPI + tes apps ~150 Mo+
Total ~2,6 Go / 8 Go

Marge confortable. Un swap de 2 Go est ajouté par sécurité.


Ordre d'exécution

🟢 Parcours A - Coolify (recommandé)

Pressé ?docs/00-demarrage-rapide.md : toutes les étapes + commandes, du PC au déploiement GitHub, dans l'ordre. Les documents ci-dessous sont les versions détaillées.

  1. docs/01-serveur-initial.md - Utilisateur non-root, SSH, UFW, fail2ban, swap. Obligatoire, en premier.
  2. docs/06-coolify.md - Installer Coolify, déployer les services en 1 clic, déployer tes applis (GitHub org + tests + secrets).
  3. docs/07-openwebui-modeles.md - Limiter/organiser les modèles d'Open WebUI (OpenRouter + Claude), accès par groupe, garde-fous de coût.
  4. docs/09-uptime-kuma.md - Surveillance des services + alertes (sondes, types de vérifs, notifications).
  5. docs/10-variables-env-par-service.md - Variables d'environnement par service et où trouver chaque valeur.
  6. docs/05-maintenance-sauvegardes.md - Sauvegardes, mises à jour, monitoring.

(Docker s'installe automatiquement avec Coolify - le doc 02 est facultatif.)

🩹 Un blocage/message d'erreur pendant l'installation ou le déploiement ? docs/08-erreurs-connues.md recense les erreurs déjà rencontrées (SSH, permissions Coolify, réseaux Docker) avec leur fix exact.

Parcours B - Nginx Proxy Manager (alternatif, à la main)

  1. docs/01-serveur-initial.md - Durcissement initial.
  2. docs/02-docker.md - Installer Docker + Compose.
  3. docs/03-dns-et-reverse-proxy.md - DNS + Nginx Proxy Manager + SSL.
  4. docs/04-lancer-la-stack.md - Lancer toute la stack via docker compose.
  5. docs/05-maintenance-sauvegardes.md - Sauvegardes, mises à jour, monitoring.

📄 Vue d'ensemble visuelle : recap.html (aussi publiée en Artifact).

Structure du dépôt

HOSTINGER_VPS_ENGWE/
├── README.md                     ← ce fichier
├── recap.html                    ← page récap visuelle
├── docs/
│   ├── 01-serveur-initial.md
│   ├── 02-docker.md
│   ├── 03-dns-et-reverse-proxy.md   (parcours B)
│   ├── 04-lancer-la-stack.md        (parcours B)
│   ├── 05-maintenance-sauvegardes.md
│   ├── 06-coolify.md                (parcours A - recommandé)
│   ├── 07-openwebui-modeles.md      (limiter les modèles OpenRouter/Claude)
│   ├── 08-erreurs-connues.md        (dépannage - erreurs déjà rencontrées)
│   ├── 09-uptime-kuma.md            (surveillance & alertes)
│   └── 10-variables-env-par-service.md (variables d'env par service, où trouver quoi)
├── scripts/
│   ├── 01-bootstrap.sh           ← durcissement initial (à lancer en root)
│   └── 02-install-docker.sh      ← installation Docker (parcours B)
└── docker/                       ← stack du parcours B
    ├── docker-compose.yml
    ├── .env.example
    ├── postgres/initdb/01-databases.sh
    └── fastapi/
        ├── Dockerfile
        ├── requirements.txt
        └── app/main.py

Principes de sécurité appliqués

  • Authentification SSH par clé uniquement (mot de passe désactivé partout).
  • Usage quotidien via l'utilisateur sudo dédié engwe-seer ; root reste joignable par clé uniquement (PermitRootLogin prohibit-password) - jamais par mot de passe - car Coolify en a besoin pour gérer son propre serveur.
  • UFW n'ouvre que 22 (SSH), 80 et 443 (web).
  • Bases de données non exposées sur Internet.
  • Secrets dans des variables chiffrées (Coolify) ou docker/.env (jamais committé).
  • HTTPS partout via Let's Encrypt (auto-renouvelé).