33800 Docs

← Retour

Proposition : conf.prod.gouroubleu.yml simplifié

Status : IMPLEMENTEE

Structure proposée

# conf.prod.gouroubleu.yml
name: "mon-projet"

# Type d'image prédéfini (node, bun, rust) ou custom
type: "node"                    # node | bun | rust | custom

# Si custom, spécifier le Dockerfile
dockerfile: "./Dockerfile"      # Seulement si type: custom

# Exposition
domain: "mon-projet.gouroubleu.com"
port: 3000

# Stockage (bind mounts)
storage:
  nfs:                          # Sur /mnt/stock_36to/data/projects/{name}/
    - data
    - uploads
  local:                        # Sur /opt/projects/{name}/
    - static
    - logs
  ram:                          # tmpfs (données jetables)
    - cache: 256m

# Variables d'environnement
env:
  NODE_ENV: "production"
  DATABASE_URL: "postgres://..."
  API_KEY: "${SECRET_API_KEY}"  # Peut référencer des secrets

# Script post-build
post_build: "./scripts/post-build.sh"

Exemples concrets

Projet Node.js simple

name: "api-users"
type: "node"
domain: "api-users.gouroubleu.com"
port: 3000
storage:
  nfs:
    - data
env:
  NODE_ENV: "production"

Projet Bun avec cache RAM

name: "web-app"
type: "bun"
domain: "app.gouroubleu.com"
port: 8080
storage:
  nfs:
    - uploads
  local:
    - static
  ram:
    - cache: 512m
env:
  BUN_ENV: "production"
post_build: "./scripts/migrate-db.sh"

Projet Rust custom

name: "backend-rust"
type: "rust"
domain: "api.gouroubleu.com"
port: 8000
storage:
  nfs:
    - data
env:
  RUST_LOG: "info"

Projet full custom

name: "legacy-app"
type: "custom"
dockerfile: "./docker/Dockerfile.prod"
domain: "legacy.gouroubleu.com"
port: 4000
storage:
  nfs:
    - data
env:
  APP_ENV: "production"
post_build: "./scripts/init.sh"

Ce que je gère automatiquement selon le type

Type Image de base Build Commande par défaut
node node:lts-alpine npm install && npm run build npm start
bun oven/bun:latest bun install && bun run build bun start
rust rust:alpine cargo build --release ./target/release/{name}
custom Ton Dockerfile Selon Dockerfile Selon Dockerfile

Questions

  1. Ça te paraît assez simple ?
  2. Tu veux pouvoir override la commande de start ?
  3. Les secrets (env sensibles), tu préfères les stocker où ? (fichier séparé, variable système ?)