Outils pour utilisateurs

Outils du site


systeme:documenso:autohebergement

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
systeme:documenso:autohebergement [2026/03/23 10:40] – [Installation des prérequis] techer.charles_educ-valadon-limoges.frsysteme: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 **/etc/apt/sources.list.d/debian.sources** pour avoir ce contenu (http://security.debian.org trixie-security remplacé par http://deb.debian.org/debian-security)  
 + 
 +<code> 
 +Types: deb 
 +URIs: http://deb.debian.org/debian-security 
 +Suites: trixie-security 
 +Components: contrib main 
 +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg 
 + 
 +Types: deb 
 +URIs: http://deb.debian.org/debian 
 +Suites: trixie trixie-updates 
 +Components: contrib main 
 +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg 
 +</code> 
 + 
 +   * ajouter les dépôts 
 + 
 +<code> 
 +# Add Docker's official GPG key: 
 +apt update 
 +apt install ca-certificates curl 
 +install -m 0755 -d /etc/apt/keyrings 
 +curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc 
 +chmod a+r /etc/apt/keyrings/docker.asc 
 + 
 +# Add the repository to Apt sources: 
 +tee /etc/apt/sources.list.d/docker.sources <<EOF 
 +Types: deb 
 +URIs: https://download.docker.com/linux/debian 
 +Suites: $(. /etc/os-release && echo "$VERSION_CODENAME"
 +Components: stable 
 +Signed-By: /etc/apt/keyrings/docker.asc 
 +EOF 
 + 
 +</code> 
 + 
 +   * mettre à jour
  
 <code> <code>
Ligne 21: Ligne 58:
  
  
-  * installer à partir du script +  * installer Docker 
 + 
 +<code> 
 +apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 
 +</code> 
 + 
 +  * Vérifier l'installation: 
 + 
 +<code> 
 +docker --version 
 +docker compose version 
 +</code> 
 + 
 +===== Cloner and Configurer ===== 
 + 
 +  * installer git 
 + 
 +<code> 
 +apt install git -y 
 +</code> 
 + 
 +==== Cloner le dépôt ==== 
 + 
 +<code> 
 +git clone https://github.com/documenso/documenso.git 
 +cd documenso/docker/production 
 +</code> 
 + 
 +==== Générer les secrets ==== 
 + 
 +<code> 
 +# Generate NEXTAUTH_SECRET 
 +echo "NEXTAUTH_SECRET=$(openssl rand -base64 32)" 
 +# Generate encryption keys 
 +echo "NEXT_PRIVATE_ENCRYPTION_KEY=$(openssl rand -base64 32)" 
 +echo "NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=$(openssl rand -base64 32)" 
 +# Generate database password 
 +echo "POSTGRES_PASSWORD=$(openssl rand -base64 24)" 
 +</code> 
 +==== Créer le fichier d'environnement ==== 
 + 
 +Créer le fichier d'environnement **.env** dans le même dossier que celui qui contient **compose.yml** (documenso/docker/production) 
 + 
 +<code> 
 +touch .env 
 +</code> 
 + 
 +  * contenu du fichier .env 
 + 
 +<code> 
 +# 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://sign.example.com 
 +NEXT_PRIVATE_INTERNAL_WEBAPP_URL=http://localhost:3000 
 + 
 +# Database connection (uses Docker service name) 
 +NEXT_PRIVATE_DATABASE_URL=postgresql://documenso:your-secure-database-password@database:5432/documenso 
 + 
 +# 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 
 +</code> 
 + 
 +==== 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=== 
 + 
 +<code> 
 +openssl genrsa -out private.key 2048 
 +</code> 
 + 
 +=== Créer un certificat autosigné pour une année=== 
 + 
 +<code> 
 +openssl req -new -x509 -key private.key -out certificate.crt -days 365 
 +</code> 
 + Au prompt, renseigner les informations de l'organisation : 
 + 
 +^  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** 
 + 
 +<code> 
 +openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt 
 +</code> 
 + 
 +  *Pour saisir le mot de passe de manière non interactive : 
 + 
 +<code>  
 +# 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:CERT_PASS 
 +</code> 
 + 
 +=== Clean up === 
 + 
 +Supprimer les fichiers intermédiaires: 
 + 
 +<code> 
 +rm private.key certificate.crt 
 +</code> 
 + 
 + * Gardez certificate.p12 and le mot de passe 
 + 
 +=== Vérifier le certificat === 
 + 
 +<code> 
 +# Check certificate details 
 +openssl pkcs12 -in certificate.p12 -info -nokeys 
 +# Verify password works 
 +openssl pkcs12 -in certificate.p12 -noout 
 +</code> 
 + 
 +====Placer le certificat signé sur l'hôte==== 
 + 
 +Placer le certificat sur l'hôte et définir les permissions pour que le conteneur puisse le lire (UID 1001): 
 + 
 +<code> 
 +mkdir -p /opt/documenso 
 +cp /root/documenso/docker/production/certificate.p12 /opt/documenso/cert.p12 
 +chown 1001:1001 /opt/documenso/cert.p12 
 +chmod 400 /opt/documenso/cert.p12 
 +</code> 
 + 
 +Le compose.yml va monter ce chemin dans le conteneur. Ajoutez la passphrase au fichier **.env** : 
 + 
 +<code> 
 +NEXT_PRIVATE_SIGNING_PASSPHRASE=your-certificate-password 
 +</code> 
 + 
 +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 ===== 
 + 
 +<code> 
 +docker compose --env-file .env up -d 
 +</code> 
 + 
 +  * vérifier que les conteneurs s'exécutent: 
 + 
 +<code> 
 +docker compose ps 
 +</code> 
 + 
 +  * sorties attendues : 
 + 
 +<code> 
 +NAME                             STATUS              PORTS 
 +documenso-production-database-1  running (healthy)   5432/tcp 
 +documenso-production-documenso-1 running             0.0.0.0:3000->3000/tcp 
 +</code> 
 + 
 +Wait for the database to be healthy and for migrations to complete. Check the logs:
  
 <code> <code>
-curl -fsSL https://get.docker.com -o get-docker.sh +docker compose logs -f documenso
-sh ./get-docker.sh --dry-run+
 </code> </code>
systeme/documenso/autohebergement.1774258816.txt.gz · Dernière modification : 2026/03/23 10:40 de techer.charles_educ-valadon-limoges.fr