Bati : déployer sur adgents.cloud (HTTPS, sauvegardes, perf) — guide 2026

Bati : déployer sur adgents.cloud (HTTPS, sauvegardes, perf) — guide 2026

Guide 2026 pour déployer Bati en production : reverse proxy HTTPS, base de données persistante, sauvegardes testées, sécurité et performance — avec option déploiement en 1 clic sur adgents.cloud.

Bati : déployer sur adgents.cloud (HTTPS, sauvegardes, perf) — guide 2026

Déployer Bati en production, ce n’est pas juste « lancer un conteneur ». Ce qui fait la différence le jour où ça chauffe (panne, erreur humaine, mise à jour ratée), c’est : HTTPS, données persistantes, sauvegardes testées, et une base simple à maintenir.

Schéma du pipeline de déploiement : build, HTTPS, sauvegardes, monitoring et performance

Si vous voulez éviter la gestion d’infra et gagner du temps : vous pouvez aussi déployer Bati en 1 clic sur adgents.cloud (backups automatiques, scaling CPU/RAM, start/stop).

Vidéo (YouTube, FR)

Cloud background

Prérequis

  • Un serveur Linux (Debian/Ubuntu)
  • Un nom de domaine (ex : bati.example.com)
  • Docker + Docker Compose
  • Un accès SSH

Pour les principes reverse proxy + HTTPS avec Docker, vous pouvez aussi vous appuyer sur ce guide : Installer PrestaShop avec Docker Compose (prod).

Architecture recommandée (simple et robuste)

Objectif : une architecture claire, facile à diagnostiquer.

  • Reverse proxy (Traefik) : gère les certificats TLS, la redirection HTTP→HTTPS, des en-têvos de sécurité
  • Bati (app) : le service web
  • Base de données : persistance, perf
  • (option) Cache/queue : si Bati en a besoin selon votre usage

Pourquoi cette séparation ?

  • vous pouvez redémarrer l’app sans toucher aux données
  • vous pouvez sauvegarder la base et les fichiers proprement
  • vous pouvez faire évoluer (CPU/RAM) sans changer la structure

1) DNS : pointer le sous-domaine

Crée un enregistrement DNS A :

  • Nom : bati
  • Valeur : IP publique du serveur

Attends la propagation (souvent 1–30 minutes).

2) Dossier projet

Sur le serveur :

mkdir -p ~/bati-compose && cd ~/bati-compose
mkdir -p traefik

3) Fichier .env

Crée ~/bati-compose/.env :

# Domaine
BATI_HOST=bati.example.com

# Email Let's Encrypt
[email protected]

# Base de données (ex : PostgreSQL)
DB_NAME=bati
DB_USER=bati
DB_PASSWORD=change_me_strong_password

# (option) Mot de passe dashboard Traefik
TRAEFIK_DASHBOARD_USER=admin
TRAEFIK_DASHBOARD_HASHED_PASSWORD=$apr1$CHANGE$ME

# Timezone
TZ=Europe/Paris

Conseils pratiques :

  • utilise un gestionnaire de secrets (ou au minimum des mots de passe longs)
  • garde .env hors Git

4) Compose : Traefik + Bati + DB

Crée ~/bati-compose/compose.yaml :

services:
  traefik:
    image: traefik:v3.1
    restart: always
    command:
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --entrypoints.web.address=:80
      - --entrypoints.web.http.redirections.entryPoint.to=websecure
      - --entrypoints.web.http.redirections.entrypoint.scheme=https
      - --entrypoints.websecure.address=:443
      - --certificatesresolvers.le.acme.tlschallenge=true
      - --certificatesresolvers.le.acme.email=${LETSENCRYPT_EMAIL}
      - --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json
    ports:
      - 80:80
      - 443:443
    volumes:
      - traefik_letsencrypt:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro

  db:
    image: postgres:16
    restart: always
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - TZ=${TZ}
    volumes:
      - db_data:/var/lib/postgresql/data

  bati:
    image: ghcr.io/example/bati:latest
    restart: always
    depends_on:
      - db
    environment:
      - DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME}
      - TZ=${TZ}
    labels:
      - traefik.enable=true
      - traefik.http.routers.bati.rule=Host(`${BATI_HOST}`)
      - traefik.http.routers.bati.entrypoints=websecure
      - traefik.http.routers.bati.tls=true
      - traefik.http.routers.bati.tls.certresolver=le
      - traefik.http.services.bati.loadbalancer.server.port=3000
      # En-tetes de sécurité (base)
      - traefik.http.middlewares.bati-headers.headers.framedeny=true
      - traefik.http.middlewares.bati-headers.headers.contenttypenosniff=true
      - traefik.http.middlewares.bati-headers.headers.browserxssfilter=true
      - traefik.http.routers.bati.middlewares=bati-headers

volumes:
  db_data:
  traefik_letsencrypt:

À adapter :

  • l’image bati (registry officiel + tag)
  • le port interne (3000) selon l’app
  • la variable DATABASE_URL selon la doc Bati

Hébergement d’applications — aperçu

5) Démarrer et vérifier

docker compose up -d
docker compose ps

Puis :

  • ouvre https://bati.example.com
  • vérifie que le HTTPS est actif (cadenas) et que les redirections HTTP→HTTPS fonctionnent

En cas de souci, commence par :

docker compose logs -f --tail=200 traefik

6) Sauvegardes : la base solide

Pour une appli type Bati, vous devez au minimum pouvoir restaurer :

  • la base de données
  • les fichiers persistants (uploads, documents, exports)

A) Dump DB (ex : PostgreSQL)

Exemple :

mkdir -p ~/backups/bati

docker exec -i $(docker compose ps -q db) pg_dump -U ${DB_USER} ${DB_NAME} \
  | gzip > ~/backups/bati/db-$(date +%F).sql.gz

B) Sauvegarder les volumes

  • soit via snapshots (si votre hébergeur le propose)
  • soit via export régulier (tar) vers un stockage externe

C) Tester la restauration (indispensable)

Le test le plus simple :

  • remonter un environnement de test
  • restaurer le dump
  • vérifier login + pages clés + génération d’un document

7) Sécurité : les réglages qui évitent les ennuis

  • n’expose jamais la base au public
  • limite SSH (clé + pare-feu)
  • mets en place du rate limiting/WAF si l’app est très exposée

Si votre installation inclut des webhooks publics, ce guide peut vous aider à raisonner sécurité + surface d’exposition : Sécuriser n8n : secrets, webhooks, authentification, logs et RGPD.

Lancez-vous avec Bati.

Envie de vous lancer avec Bati ? Créez votre site web en quelques clics.

Bati

Bati

La solution pour les constructeurs

Déployer Bati

8) Performance : ce qui change vraiment la stabilité

  • dimensionne la RAM pour la DB (c’est souvent le premier goulot)
  • surveille CPU/RAM/IO disque
  • évite les « petits serveurs » si la charge est irrégulière : vous allez subir les pics

Déployer Bati sans gérer l’infra

Si vous voulez vous concentrer sur l’app et le métier :

  • déploiement en 1 clic
  • backups automatiques (jusqu’à 1/h)
  • scaling CPU/RAM à la demande
  • start/stop (compute non facturé à l’arrêt)

→ Découvre Bati sur adgents.cloud.

Cloud pattern

Cet article vous a été utile ?

N'hésitez pas à découvrir d'autres articles

Voir plus d'articles