Guide complet OpenShip 2026 : une alternative auto-hébergée à Vercel avec une plateforme open source
TL;DR — OpenShip est une plateforme de déploiement open source qui cartonne cette semaine sur GitHub (8,9K+ stars). Elle vous permet d'obtenir la même expérience de déploiement « push and deploy » que Vercel ou Railway, mais sur votre propre VPS. Zéro verrouillage, entièrement gratuit.
Pourquoi avez-vous besoin d'OpenShip ?
Si vous utilisez Vercel, Netlify ou Railway pour déployer vos projets, vous avez forcément rencontré ces problèmes :
- Le quota gratuit ne suffit pas : le forfait Hobby de Vercel limite à 100 Go de bande passante, au-delà c'est la coupure.
- Les minutes de build sont comptées : Railway offre 500 minutes par mois, ce qui s'épuise vite avec des déploiements fréquents.
- Vos données ne vous appartiennent pas : tout le trafic, les logs et les variables d'environnement sont hébergés chez un tiers.
- Les prix sont imprévisibles : dès que votre projet monte en charge, la facture passe de 0 $ à 50 $+ par mois.
OpenShip a été conçu pour résoudre tous ces problèmes.
Qu'est-ce qu'OpenShip ?
OpenShip est une plateforme de déploiement open source et auto-hébergeable. Voici ses fonctionnalités clés :
| Fonctionnalité | Description |
|---|---|
| 🚀 Push and deploy | Un git push déclenche automatiquement le build et le déploiement, exactement comme sur Vercel |
| 🐳 Docker natif | Détection automatique du type de projet, construction et exécution en conteneur Docker |
| 🔒 TLS automatique | Let's Encrypt intégré, les certificats HTTPS sont demandés et renouvelés automatiquement |
| 🌐 Noms de domaine personnalisés | Associez vos propres domaines, configuration DNS et routage automatiques |
| 📊 Console Web | Interface visuelle pour gérer tous vos projets, consulter les logs et gérer les variables d'environnement |
| 💻 Multi-plateforme | Application desktop / CLI / Dashboard Web — trois façons de travailler |
| 🆓 Entièrement gratuit | Sous licence MIT, tout le code reste sur votre serveur |
Stack technique : TypeScript + PostgreSQL + Redis + OpenResty (routage périphérique) + Docker
GitHub : oblien/openship — 8,9K+ stars, dont 5 800+ cette semaine
Installer OpenShip
Méthode 1 : Installation en une commande (recommandée)
Le plus simple est d'utiliser le script d'installation officiel. Compatible Linux / macOS / Windows :
# Installer le CLI
curl -fsSL https://get.openship.io | sh
# Ou via npm
npm i -g openship
Une fois l'installation terminée, lancez l'assistant interactif pour initialiser la configuration :
openship
L'assistant vous guide à travers :
1. La création d'un compte administrateur
2. La configuration du nom de domaine (ex : openship.yourdomain.com)
3. L'installation comme service système (démarrage automatique au boot)
Méthode 2 : Déploiement avec Docker Compose
Si vous préférez Docker ou si vous avez besoin d'un contrôle plus fin :
git clone https://github.com/oblien/openship.git && cd openship
cp .env.example .env
# Modifiez .env pour configurer le domaine, le mot de passe de la base de données, etc.
vim .env
# Lancez tous les services
docker compose --env-file .env -f docker/docker-compose.yml up -d
Cela démarre la stack complète : - PostgreSQL — stockage des données - Redis — cache et files d'attente - API Server — panneau de contrôle central - Dashboard — interface d'administration web - OpenResty Edge — proxy inverse + TLS automatique (écoute sur les ports 80/443)
Méthode 3 : Application de bureau
Si vous êtes un utilisateur individuel et n'avez pas besoin d'un serveur allumé en permanence, téléchargez simplement l'application de bureau :
| Plateforme | Téléchargement |
|---|---|
| macOS (Apple Silicon) | Openship-arm64.dmg |
| macOS (Intel) | Openship-x64.dmg |
| Windows | Openship-win32-x64.zip |
| Linux | Openship.AppImage |
L'application de bureau exécute le panneau de contrôle sur votre machine locale et se connecte à votre serveur distant via SSH pour déployer les applications. Idéal pour les développeurs individuels, pas besoin d'un serveur allumé en permanence.
Premiers pas : déployer votre premier projet
1. Initialiser le projet
Rendez-vous dans le répertoire de votre projet et exécutez :
cd your-project
openship init
openship init détecte automatiquement le type de votre projet (Node.js, Python, Go, Ruby, etc.) et génère la configuration correspondante.
2. Déployer
openship deploy
C'est aussi simple que ça. OpenShip va :
- Détecter — lire
package.json,requirements.txt,go.mod, etc., et identifier le stack technique - Construire — empaqueter dans une image Docker, geler la configuration en snapshot
- Exécuter — démarrer en conteneur, écouter uniquement sur loopback, sans exposer de port
- Router — OpenResty attribue automatiquement un nom de domaine + certificat TLS
3. Accéder à l'application
Une fois le déploiement terminé, vous verrez l'URL d'accès :
✅ Déployé ! Votre application est en ligne à :
https://votre-app.openship.yourdomain.com
Fonctionnalités avancées
Nom de domaine personnalisé
Par défaut, OpenShip attribue un sous-domaine. Vous pouvez associer votre propre nom de domaine :
# Depuis le Dashboard OpenShip, ou via le CLI :
openship domains add your-app --domain monapp.com
OpenShip va automatiquement : - Configurer les règles de routage OpenResty - Demander un certificat Let's Encrypt - Mettre en place la redirection HTTP → HTTPS
Gestion des variables d'environnement
Depuis le Dashboard ou le CLI, gérez vos variables d'environnement avec prise en charge multi-environnements (production / staging / preview) :
# Définir une variable d'environnement
openship env set DATABASE_URL="postgresql://user:pass@db:5432/myapp"
openship env set REDIS_URL="redis://redis:6379"
# Voir les variables d'environnement
openship env list
# Définir par environnement
openship env set --env production API_KEY="sk-xxx"
Déploiement multi-projets (Monorepo)
OpenShip prend nativement en charge les monorepos. Chaque sous-répertoire peut être déployé comme un projet indépendant :
my-monorepo/
├── frontend/ # Déployé indépendamment comme projet frontend
│ └── package.json
├── backend/ # Déployé indépendamment comme API backend
│ └── package.json
└── openship.json # Configuration globale (optionnelle)
Il suffit d'exécuter openship init et openship deploy dans chaque sous-répertoire.
Configuration de build personnalisée
Si la détection automatique ne répond pas à vos besoins, créez un fichier openship.json à la racine de votre projet :
{
"build": {
"command": "pnpm build",
"output": "dist"
},
"start": {
"command": "node server.js"
},
"env": {
"NODE_ENV": "production"
},
"domains": ["monapp.com", "www.monapp.com"]
}
Consulter les logs de déploiement
# Logs en temps réel
openship logs --follow
# Voir les 100 dernières lignes
openship logs --tail 100
# Voir les logs d'un déploiement spécifique
openship logs --deployment dpl_abc123
Revenir à une version antérieure
Chaque déploiement génère un snapshot. Vous pouvez revenir en arrière à tout moment :
# Voir l'historique des déploiements
openship deployments list
# Revenir à une version spécifique
openship rollback dpl_abc123
Architecture
L'architecture d'OpenShip est organisée en trois couches :
┌─────────────────────────────────────────────┐
│ Panneau de contrôle │
│ ┌──────────┐ ┌───────┐ ┌──────────────┐ │
│ │ API │ │ Redis │ │ PostgreSQL │ │
│ │ Server │ │ │ │ │ │
│ └──────────┘ └───────┘ └──────────────┘ │
├─────────────────────────────────────────────┤
│ Couche Edge │
│ ┌──────────────────────────────────────┐ │
│ │ OpenResty (routage + TLS + équilib.) │ │
│ └──────────────────────────────────────┘ │
├─────────────────────────────────────────────┤
│ Environnement d'exécution │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ App A │ │ App B │ │ App C │ ... │
│ │ :3000 │ │ :8080 │ │ :5000 │ │
│ └────────┘ └────────┘ └────────┘ │
└─────────────────────────────────────────────┘
- Panneau de contrôle — gère la configuration des projets, le pipeline de déploiement, les variables d'environnement
- Couche Edge — OpenResty agit comme proxy inverse avec TLS automatique et routage intelligent
- Environnement d'exécution — chaque application tourne dans son propre conteneur Docker, n'écoutant que sur loopback
Tout le trafic passe par la couche Edge. Les conteneurs d'application n'exposent aucun port directement, ce qui offre une sécurité maximale.
Comparaison avec Vercel / Railway
| Critère | OpenShip | Vercel | Railway |
|---|---|---|---|
| Prix | Gratuit (auto-hébergé) | Quota gratuit limité | 5 $ de crédit d'essai |
| Souveraineté des données | ✅ Contrôle total | ❌ Tiers | ❌ Tiers |
| Noms de domaine perso. | ✅ Illimité | ✅ Gratuit | ✅ Gratuit |
| Certificats TLS | ✅ Automatique | ✅ Automatique | ✅ Automatique |
| Push and deploy | ✅ | ✅ | ✅ |
| Serverless | ❌ Mode conteneur | ✅ | ✅ Conteneur + Serverless |
| Edge Functions | ❌ | ✅ | ❌ |
| Minutes de build | ✅ Illimité | Limité | 500 min/mois |
| Limite de bande passante | ✅ Aucune | 100 Go/mois | Limitée |
| Auto-hébergement | ✅ | ❌ | ❌ |
En conclusion : si vous avez besoin de Serverless et d'Edge Functions, Vercel reste plus puissant. Mais si vous privilégiez la maîtrise des coûts, la souveraineté des données et des déploiements sans limite, OpenShip est un bien meilleur choix.
Questions fréquentes
Q : Quelle configuration de serveur est nécessaire pour OpenShip ?
Configuration minimale : 1 cœur CPU / 1 Go RAM / 20 Go de disque (pour 1 à 3 petits projets)
Configuration recommandée : 2 cœurs CPU / 4 Go RAM / 40 Go SSD (pour 5 à 10 projets)
Q : Quels langages et frameworks sont pris en charge ?
Presque tous les stacks technologiques courants : - Node.js — Next.js, Nuxt, Express, Fastify, etc. - Python — Django, Flask, FastAPI, etc. - Go — Gin, Echo, Fiber, etc. - Ruby — Rails, Sinatra, etc. - PHP — Laravel, Symfony, etc. - Rust — Actix, Axum, etc. - Docker — tout projet avec un Dockerfile
Q : Comment sauvegarder et migrer ?
Toutes les données sont stockées dans PostgreSQL. Sauvegardez simplement la base de données :
# Sauvegarde
docker exec openship-postgres pg_dump -U openship openship > backup.sql
# Restauration
cat backup.sql | docker exec -i openship-postgres psql -U openship openship
Q : Peut-on intégrer OpenShip avec d'autres outils ?
Oui. OpenShip fournit une API REST et des Webhooks :
# Déclencher un déploiement via l'API
curl -X POST https://openship.yourdomain.com/api/deploy \
-H "Authorization: Bearer VOTRE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"project": "my-app", "ref": "main"}'
Résumé
OpenShip est l'une des plateformes de déploiement open source les plus remarquables de 2026. Elle apporte l'expérience de développement de niveau Vercel sur votre propre serveur, vous permettant de :
- 💰 Économiser — fini les minutes de build et la bande passante facturées
- 🔒 Garder le contrôle — code, données et logs entièrement chez vous
- 🚀 Gagner en efficacité — Git push = déploiement, TLS automatique, zéro configuration
- 📈 Sans limite — déployez autant de projets que vous le souhaitez
Si vous en avez assez des limitations du quota gratuit de Vercel, ou si vous voulez un PaaS totalement contrôlable, OpenShip mérite vraiment le détour.
Liens utiles : - GitHub : github.com/oblien/openship - Documentation : openship.io/docs - Documentation en chinois : README.zh.md