systeme:documenso:autohebergement
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| systeme:documenso:autohebergement [2026/03/23 10:40] – [Installation des prérequis] techer.charles_educ-valadon-limoges.fr | systeme:documenso:autohebergement [2026/03/23 16:37] (Version actuelle) – [Démarrer les services] techer.charles_educ-valadon-limoges.fr | ||
|---|---|---|---|
| Ligne 14: | Ligne 14: | ||
| ===== Installation des prérequis ===== | ===== Installation des prérequis ===== | ||
| * conteneur LXC : 2 Gio RAM ; 2 coeurs ; DD de 20 Gio | * conteneur LXC : 2 Gio RAM ; 2 coeurs ; DD de 20 Gio | ||
| - | * mise à jour | + | * modifier le fichier **/ |
| + | |||
| + | < | ||
| + | Types: deb | ||
| + | URIs: http:// | ||
| + | Suites: trixie-security | ||
| + | Components: contrib main | ||
| + | Signed-By: / | ||
| + | |||
| + | Types: deb | ||
| + | URIs: http:// | ||
| + | Suites: trixie trixie-updates | ||
| + | Components: contrib main | ||
| + | Signed-By: / | ||
| + | </ | ||
| + | |||
| + | * ajouter les dépôts | ||
| + | |||
| + | < | ||
| + | # Add Docker' | ||
| + | apt update | ||
| + | apt install ca-certificates curl | ||
| + | install -m 0755 -d / | ||
| + | curl -fsSL https:// | ||
| + | chmod a+r / | ||
| + | |||
| + | # Add the repository to Apt sources: | ||
| + | tee / | ||
| + | Types: deb | ||
| + | URIs: https:// | ||
| + | Suites: $(. / | ||
| + | Components: stable | ||
| + | Signed-By: / | ||
| + | EOF | ||
| + | |||
| + | </ | ||
| + | |||
| + | * mettre | ||
| < | < | ||
| Ligne 21: | Ligne 58: | ||
| - | * installer | + | * installer |
| + | |||
| + | < | ||
| + | apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin | ||
| + | </ | ||
| + | |||
| + | * Vérifier l' | ||
| + | |||
| + | < | ||
| + | docker --version | ||
| + | docker compose version | ||
| + | </ | ||
| + | |||
| + | ===== Cloner and Configurer ===== | ||
| + | |||
| + | * installer git | ||
| + | |||
| + | < | ||
| + | apt install git -y | ||
| + | </ | ||
| + | |||
| + | ==== Cloner le dépôt ==== | ||
| + | |||
| + | < | ||
| + | git clone https:// | ||
| + | cd documenso/ | ||
| + | </ | ||
| + | |||
| + | ==== Générer les secrets ==== | ||
| + | |||
| + | < | ||
| + | # Generate NEXTAUTH_SECRET | ||
| + | echo " | ||
| + | # Generate encryption keys | ||
| + | echo " | ||
| + | echo " | ||
| + | # Generate database password | ||
| + | echo " | ||
| + | </ | ||
| + | ==== Créer le fichier d' | ||
| + | |||
| + | Créer le fichier d' | ||
| + | |||
| + | < | ||
| + | touch .env | ||
| + | </ | ||
| + | |||
| + | * contenu | ||
| + | |||
| + | < | ||
| + | # Database (used by both database and documenso services) | ||
| + | POSTGRES_USER=documenso | ||
| + | POSTGRES_PASSWORD=your-secure-database-password | ||
| + | POSTGRES_DB=documenso | ||
| + | |||
| + | # Application secrets (generate with: openssl rand -base64 32) | ||
| + | NEXTAUTH_SECRET=your-nextauth-secret | ||
| + | NEXT_PRIVATE_ENCRYPTION_KEY=your-encryption-key-min-32-characters | ||
| + | NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=your-secondary-key-min-32-characters | ||
| + | |||
| + | # Public URL where Documenso is accessible | ||
| + | NEXT_PUBLIC_WEBAPP_URL=https:// | ||
| + | NEXT_PRIVATE_INTERNAL_WEBAPP_URL=http:// | ||
| + | |||
| + | # Database connection (uses Docker service name) | ||
| + | NEXT_PRIVATE_DATABASE_URL=postgresql:// | ||
| + | |||
| + | # Email configuration | ||
| + | NEXT_PRIVATE_SMTP_TRANSPORT=smtp-auth | ||
| + | NEXT_PRIVATE_SMTP_HOST=smtp.example.com | ||
| + | NEXT_PRIVATE_SMTP_PORT=587 | ||
| + | NEXT_PRIVATE_SMTP_USERNAME=your-smtp-username | ||
| + | NEXT_PRIVATE_SMTP_PASSWORD=your-smtp-password | ||
| + | NEXT_PRIVATE_SMTP_FROM_NAME=Documenso | ||
| + | NEXT_PRIVATE_SMTP_FROM_ADDRESS=noreply@example.com | ||
| + | </ | ||
| + | |||
| + | ==== Utiliser un certificat signé ==== | ||
| + | |||
| + | Un certificat signé est requis pour signer les documents. Généré un certificat **.p12** sur le serveur et le monter dans le conteneur. | ||
| + | |||
| + | === Générer une clé privée RSA 2048 bit=== | ||
| + | |||
| + | < | ||
| + | openssl genrsa -out private.key 2048 | ||
| + | </ | ||
| + | |||
| + | === Créer un certificat autosigné pour une année=== | ||
| + | |||
| + | < | ||
| + | openssl req -new -x509 -key private.key -out certificate.crt -days 365 | ||
| + | </ | ||
| + | Au prompt, renseigner les informations de l' | ||
| + | |||
| + | ^ Champ ^ VAleur | ||
| + | |Country Name |FR | | ||
| + | |State or Province|France| | ||
| + | |Locality Name| Limoges| | ||
| + | |Organization Name|Lycée Suzanne Valadon| | ||
| + | |Organizational |Administration| | ||
| + | |Common Name|Lycée Suzanne Valadon| | ||
| + | |Email Address|0870019y.ac-limoges.fr| | ||
| + | |||
| + | === Créer le certificat .p12 === | ||
| + | |||
| + | Création du certificat **.p12** et création du fichier **PKCS#12 (.p12)** contenant ce certificat et la clé privée. Un mot de passe doit être renseigné pour protéger le fichier **.p12** | ||
| + | |||
| + | < | ||
| + | openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt | ||
| + | </ | ||
| + | |||
| + | *Pour saisir le mot de passe de manière non interactive : | ||
| + | |||
| + | < | ||
| + | # Set password securely (won't appear in command history) | ||
| + | read -s -p "Enter certificate password: " CERT_PASS | ||
| + | echo | ||
| + | openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt \ | ||
| + | -password env: | ||
| + | </ | ||
| + | |||
| + | === Clean up === | ||
| + | |||
| + | Supprimer les fichiers intermédiaires: | ||
| + | |||
| + | < | ||
| + | rm private.key certificate.crt | ||
| + | </ | ||
| + | |||
| + | * Gardez certificate.p12 and le mot de passe | ||
| + | |||
| + | === Vérifier le certificat === | ||
| + | |||
| + | < | ||
| + | # Check certificate details | ||
| + | openssl pkcs12 -in certificate.p12 -info -nokeys | ||
| + | # Verify password works | ||
| + | openssl pkcs12 -in certificate.p12 -noout | ||
| + | </ | ||
| + | |||
| + | ====Placer le certificat signé sur l' | ||
| + | |||
| + | Placer le certificat sur l' | ||
| + | |||
| + | < | ||
| + | mkdir -p / | ||
| + | cp / | ||
| + | chown 1001:1001 / | ||
| + | chmod 400 / | ||
| + | </ | ||
| + | |||
| + | Le compose.yml va monter ce chemin dans le conteneur. Ajoutez la passphrase au fichier **.env** : | ||
| + | |||
| + | < | ||
| + | NEXT_PRIVATE_SIGNING_PASSPHRASE=your-certificate-password | ||
| + | </ | ||
| + | |||
| + | If file mounting is not available, you can set NEXT_PRIVATE_SIGNING_LOCAL_FILE_CONTENTS with the base64-encoded certificate string instead. | ||
| + | |||
| + | ===== Démarrer les services ===== | ||
| + | |||
| + | < | ||
| + | docker compose --env-file .env up -d | ||
| + | </ | ||
| + | |||
| + | * vérifier que les conteneurs s' | ||
| + | |||
| + | < | ||
| + | docker compose ps | ||
| + | </ | ||
| + | |||
| + | * sorties attendues : | ||
| + | |||
| + | < | ||
| + | NAME | ||
| + | documenso-production-database-1 | ||
| + | documenso-production-documenso-1 running | ||
| + | </ | ||
| + | |||
| + | Wait for the database to be healthy and for migrations to complete. Check the logs: | ||
| < | < | ||
| - | curl -fsSL https:// | + | docker |
| - | sh ./ | + | |
| </ | </ | ||
systeme/documenso/autohebergement.1774258816.txt.gz · Dernière modification : 2026/03/23 10:40 de techer.charles_educ-valadon-limoges.fr
