Docs/ Déploiement/ Modèles

Modèles

Déployez des applications populaires en quelques secondes avec le catalogue de modèles sh0. Parcourez plus de 170 modèles préconfigurés pour les bases de données, frameworks web, outils de développement, et plus encore.

Catalogue de modèles

Le catalogue de modèles est accessible depuis Nouvelle applicationModèles dans n'importe quel stack. Chaque modèle inclut une image Docker préconfigurée, des variables d'environnement par défaut, des montages de volumes et des bilans de santé -- tout ce qu'il faut pour faire fonctionner un service immédiatement.

Template catalog grid showing popular templates like PostgreSQL, Redis, WordPress, and Nginx

Les modèles sont consultables par nom, catégorie ou tag. Vous pouvez également filtrer par catégorie à l'aide de la navigation latérale.

Template search bar with filter results showing database templates

Catégories de modèles

Les modèles sont organisés dans les catégories suivantes :

CatégorieExemplesNombre
Bases de donnéesPostgreSQL, MySQL, MariaDB, MongoDB, Redis, ClickHouse18
Frameworks webWordPress, Ghost, Strapi, Directus, Payload CMS22
Outils de développementGitea, Drone CI, Verdaccio, SonarQube, Sentry19
SurveillanceGrafana, Prometheus, Uptime Kuma, Netdata12
CommunicationMattermost, Rocket.Chat, n8n, Chatwoot10
StockageMinIO, Nextcloud, Seafile, Garage9
AnalytiquePlausible, Umami, Matomo, PostHog8
RéseauNginx, Traefik, WireGuard, Pi-hole7
AutresVaultwarden, Planka, Bookstack, Outline14

Déploiement en un clic

Déployer un modèle ne prend qu'un seul clic. Sélectionnez un modèle dans le catalogue, vérifiez les paramètres par défaut et cliquez sur Déployer. sh0 gère tout :

  1. Récupère l'image Docker depuis le registre configuré
  2. Crée des volumes nommés pour les données persistantes
  3. Configure les variables d'environnement avec des valeurs par défaut sécurisées (les mots de passe aléatoires sont générés automatiquement)
  4. Configure les bilans de santé pour le service
  5. Provisionne un domaine à app-name.your-domain.com
  6. Émet un certificat SSL via Caddy
One-click deploy confirmation screen for PostgreSQL with generated credentials
Tip
sh0 génère des mots de passe aléatoires forts pour chaque modèle nécessitant des identifiants. Ceux-ci sont stockés de manière sécurisée dans les variables d'environnement de l'application et sont accessibles depuis le tableau de bord.

Personnalisation avant déploiement

Avant le déploiement, vous pouvez personnaliser n'importe quel paramètre du modèle :

  • Nom de l'application : Choisir un nom pour votre service (utilisé dans l'URL)
  • Tag d'image : Sélectionner une version spécifique (par ex., postgres:16 vs postgres:15)
  • Variables d'environnement : Remplacer les valeurs par défaut
  • Limites de ressources : Définir les limites de CPU et de mémoire pour le conteneur
  • Taille du volume : Spécifier l'allocation de stockage pour les données persistantes
  • Domaine : Attribuer un domaine personnalisé au lieu du sous-domaine par défaut
Template customization form with fields for name, image version, environment variables, and resource limits
Note
Tous les paramètres des modèles peuvent être modifiés après le déploiement. L'écran de personnalisation vous permet simplement de définir les valeurs initiales avant le premier déploiement.

Création de modèles personnalisés

Vous pouvez créer vos propres modèles pour standardiser les déploiements au sein de votre équipe. Les modèles personnalisés sont définis en YAML et peuvent être ajoutés via le tableau de bord ou placés dans le répertoire templates/ sur votre serveur sh0.

Format de modèle

templates/my-api.yaml
name: My API Template
description: Standard Node.js API with PostgreSQL
icon: server
category: web-frameworks
tags:
  - nodejs
  - api
  - postgresql

services:
  api:
    image: node:20-alpine
    ports:
      - "3000:3000"
    environment:
      NODE_ENV: production
      DATABASE_URL: postgres://user:pass@db:5432/api
    healthcheck:
      path: /health
      interval: 30s
    volumes:
      - uploads:/app/uploads

  db:
    image: postgres:16
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: "{{random_password}}"
      POSTGRES_DB: api
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  uploads:
  pgdata:

L'espace réservé undefined} est remplacé par une chaîne aléatoire sécurisée au moment du déploiement. Les autres espaces réservés disponibles incluent undefined} et undefined}.

Partage de modèles

Les modèles personnalisés placés dans le répertoire templates/ sont disponibles pour tous les utilisateurs de votre instance sh0. Vous pouvez les organiser dans des sous-répertoires par catégorie.

Template directory structure
templates/
  databases/
    my-postgres-cluster.yaml
    my-redis-sentinel.yaml
  web/
    company-api.yaml
    company-frontend.yaml
Tip
Les modèles personnalisés apparaissent aux côtés des modèles intégrés dans le catalogue. Ils sont visuellement distingués par un badge « Personnalisé » pour que votre équipe puisse facilement les identifier.