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/04/11 20:45] – [configuration MinIO + service Graph (mode proxy)] techer.charles_educ-valadon-limoges.fr | systeme:documenso:autohebergement [2026/05/12 22:05] (Version actuelle) – [Générer les secrets] techer.charles_educ-valadon-limoges.fr | ||
|---|---|---|---|
| Ligne 112: | Ligne 112: | ||
| </ | </ | ||
| - | ==== Docker compose ==== | + | ==== Définir un accès Admin ==== |
| + | |||
| + | Tous les comptes créés sont de simple utilisateur. | ||
| + | |||
| + | Pour donner les droits admin à un compte existant, il faut modifier directement dans la base de données le rôle du compte choisi : | ||
| + | |||
| + | < | ||
| + | docker compose -f compose.yml exec database \ | ||
| + | psql -U documenso -d documenso -c " | ||
| + | </ | ||
| + | ==== Utiliser minIO ==== | ||
| + | Prérequis : | ||
| + | * MinIO en fonctionnement (conteneur Docker) | ||
| + | * Un bucket dédié : documenso. Le proxy sharepoint-point fera le mappage vers les dossiers pédagogiques (administration, | ||
| + | * Une clé d’accès + secret | ||
| + | * L’API S3 activée (par défaut) | ||
| + | |||
| + | <WRAP center round info> | ||
| + | Le bucket doit être créé dans minio sinon Documenso ne le voit pas. Documenso ne découvre pas les buckets automatiquement : | ||
| + | |||
| + | < | ||
| + | mc mb minio/ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | === Variables d’environnement Documenso === | ||
| + | Documenso utilise le SDK S3 standard. | ||
| + | |||
| + | < | ||
| + | STORAGE_PROVIDER=s3 | ||
| + | |||
| + | S3_ENDPOINT=http:// | ||
| + | S3_REGION=us-east-1 | ||
| + | S3_BUCKET_NAME=documenso | ||
| + | |||
| + | S3_ACCESS_KEY_ID=compteadmin | ||
| + | S3_SECRET_ACCESS_KEY=motdepasse | ||
| + | |||
| + | S3_FORCE_PATH_STYLE=true | ||
| + | S3_USE_SSL=false | ||
| + | </ | ||
| + | ===== Créer une application Entra ID autorisée à mettre à jour le site Sharepoint ===== | ||
| + | |||
| + | * application à créer dans Entra ID : **minio-sharepoint** ; | ||
| + | * création d'une équipe Teams **Signatures numéritiques** ; | ||
| + | * configurer l' | ||
| + | |||
| + | Lien : [[reseau: | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Docker compose | ||
| < | < | ||
| Ligne 120: | Ligne 175: | ||
| database: | database: | ||
| image: postgres:15 | image: postgres:15 | ||
| - | | + | |
| - | - POSTGRES_USER=${POSTGRES_USER:? | + | - .env |
| - | - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:? | + | |
| - | - POSTGRES_DB=${POSTGRES_DB:? | + | |
| healthcheck: | healthcheck: | ||
| test: [' | test: [' | ||
| Ligne 137: | Ligne 190: | ||
| database: | database: | ||
| condition: service_healthy | condition: service_healthy | ||
| - | | + | |
| - | - PORT=${PORT: | + | - .env |
| - | - NEXTAUTH_SECRET=${NEXTAUTH_SECRET:? | + | |
| - | - NEXT_PRIVATE_ENCRYPTION_KEY=${NEXT_PRIVATE_ENCRYPTION_KEY:? | + | |
| - | - NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY:? | + | |
| - | - NEXT_PRIVATE_GOOGLE_CLIENT_ID=${NEXT_PRIVATE_GOOGLE_CLIENT_ID} | + | |
| - | - NEXT_PRIVATE_GOOGLE_CLIENT_SECRET=${NEXT_PRIVATE_GOOGLE_CLIENT_SECRET} | + | |
| - | - NEXT_PUBLIC_WEBAPP_URL=${NEXT_PUBLIC_WEBAPP_URL:? | + | |
| - | - NEXT_PRIVATE_INTERNAL_WEBAPP_URL=${NEXT_PRIVATE_INTERNAL_WEBAPP_URL: | + | |
| - | - NEXT_PRIVATE_DATABASE_URL=${NEXT_PRIVATE_DATABASE_URL:? | + | |
| - | - NEXT_PRIVATE_DIRECT_DATABASE_URL=${NEXT_PRIVATE_DIRECT_DATABASE_URL: | + | |
| - | - NEXT_PUBLIC_UPLOAD_TRANSPORT=${NEXT_PUBLIC_UPLOAD_TRANSPORT: | + | |
| - | - NEXT_PRIVATE_UPLOAD_ENDPOINT=${NEXT_PRIVATE_UPLOAD_ENDPOINT} | + | |
| - | - NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE=${NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE} | + | |
| - | - NEXT_PRIVATE_UPLOAD_REGION=${NEXT_PRIVATE_UPLOAD_REGION} | + | |
| - | - NEXT_PRIVATE_UPLOAD_BUCKET=${NEXT_PRIVATE_UPLOAD_BUCKET} | + | |
| - | - NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID=${NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID} | + | |
| - | - NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY=${NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY} | + | |
| - | - NEXT_PRIVATE_SMTP_TRANSPORT=${NEXT_PRIVATE_SMTP_TRANSPORT:? | + | |
| - | - NEXT_PRIVATE_SMTP_HOST=${NEXT_PRIVATE_SMTP_HOST} | + | |
| - | - NEXT_PRIVATE_SMTP_PORT=${NEXT_PRIVATE_SMTP_PORT} | + | |
| - | - NEXT_PRIVATE_SMTP_USERNAME=${NEXT_PRIVATE_SMTP_USERNAME} | + | |
| - | - NEXT_PRIVATE_SMTP_PASSWORD=${NEXT_PRIVATE_SMTP_PASSWORD} | + | |
| - | - NEXT_PRIVATE_SMTP_APIKEY_USER=${NEXT_PRIVATE_SMTP_APIKEY_USER} | + | |
| - | - NEXT_PRIVATE_SMTP_APIKEY=${NEXT_PRIVATE_SMTP_APIKEY} | + | |
| - | - NEXT_PRIVATE_SMTP_SECURE=${NEXT_PRIVATE_SMTP_SECURE} | + | |
| - | - NEXT_PRIVATE_SMTP_APIKEY=${NEXT_PRIVATE_SMTP_APIKEY} | + | |
| - | - NEXT_PRIVATE_SMTP_SECURE=${NEXT_PRIVATE_SMTP_SECURE} | + | |
| - | - NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS=${NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS} | + | |
| - | - NEXT_PRIVATE_SMTP_FROM_NAME=${NEXT_PRIVATE_SMTP_FROM_NAME:? | + | |
| - | - NEXT_PRIVATE_SMTP_FROM_ADDRESS=${NEXT_PRIVATE_SMTP_FROM_ADDRESS:? | + | |
| - | - NEXT_PRIVATE_SMTP_SERVICE=${NEXT_PRIVATE_SMTP_SERVICE} | + | |
| - | - NEXT_PRIVATE_RESEND_API_KEY=${NEXT_PRIVATE_RESEND_API_KEY} | + | |
| - | - NEXT_PRIVATE_MAILCHANNELS_API_KEY=${NEXT_PRIVATE_MAILCHANNELS_API_KEY} | + | |
| - | - NEXT_PRIVATE_MAILCHANNELS_ENDPOINT=${NEXT_PRIVATE_MAILCHANNELS_ENDPOINT} | + | |
| - | - NEXT_PRIVATE_MAILCHANNELS_DKIM_DOMAIN=${NEXT_PRIVATE_MAILCHANNELS_DKIM_DOMAIN} | + | |
| - | - NEXT_PRIVATE_MAILCHANNELS_DKIM_SELECTOR=${NEXT_PRIVATE_MAILCHANNELS_DKIM_SELECTOR} | + | |
| - | - NEXT_PRIVATE_MAILCHANNELS_DKIM_PRIVATE_KEY=${NEXT_PRIVATE_MAILCHANNELS_DKIM_PRIVATE_KEY} | + | |
| - | - NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT=${NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT} | + | |
| - | - NEXT_PUBLIC_POSTHOG_KEY=${NEXT_PUBLIC_POSTHOG_KEY} | + | |
| - | - NEXT_PUBLIC_DISABLE_SIGNUP=${NEXT_PUBLIC_DISABLE_SIGNUP} | + | |
| - | - NEXT_PRIVATE_ALLOWED_SIGNUP_DOMAINS=${NEXT_PRIVATE_ALLOWED_SIGNUP_DOMAINS} | + | |
| - | - NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=${NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH: | + | |
| - | - NEXT_PRIVATE_SIGNING_PASSPHRASE=${NEXT_PRIVATE_SIGNING_PASSPHRASE} | + | |
| - | - NEXT_PUBLIC_USE_INTERNAL_URL_BROWSERLESS=${NEXT_PUBLIC_USE_INTERNAL_URL_BROWSERLESS} | + | |
| ports: | ports: | ||
| - ${PORT: | - ${PORT: | ||
| Ligne 187: | Ligne 197: | ||
| - / | - / | ||
| + | minio: | ||
| + | image: minio/ | ||
| + | container_name: | ||
| + | command: server /data --console-address ": | ||
| + | env_file: | ||
| + | - .env | ||
| + | volumes: | ||
| + | - minio-data:/ | ||
| + | ports: | ||
| + | - " | ||
| + | - " | ||
| + | |||
| + | sharepoint-proxy: | ||
| + | build: ./ | ||
| + | container_name: | ||
| + | volumes: | ||
| + | - ./ | ||
| + | working_dir: | ||
| + | env_file: | ||
| + | - .env | ||
| + | depends_on: | ||
| + | - minio | ||
| + | ports: | ||
| + | - " | ||
| volumes: | volumes: | ||
| database: | database: | ||
| Ligne 236: | Ligne 270: | ||
| NEXT_PRIVATE_SMTP_FROM_ADDRESS=" | NEXT_PRIVATE_SMTP_FROM_ADDRESS=" | ||
| NEXT_PRIVATE_SMTP_FROM_NAME=" | NEXT_PRIVATE_SMTP_FROM_NAME=" | ||
| + | |||
| + | # configuration minio | ||
| + | MINIO_ROOT_USER=" | ||
| + | MINIO_ROOT_PASSWORD=" | ||
| + | |||
| + | # configuration stockage S3 pour documenso | ||
| + | NEXT_PUBLIC_UPLOAD_TRANSPORT=s3 | ||
| + | NEXT_PRIVATE_UPLOAD_ENDPOINT=http:// | ||
| + | NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE=true | ||
| + | NEXT_PRIVATE_UPLOAD_REGION=us-east-1 | ||
| + | NEXT_PRIVATE_UPLOAD_BUCKET=lycee | ||
| + | NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID=" | ||
| + | NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY=" | ||
| + | |||
| + | # configuration stockage S3 pour minio | ||
| + | STORAGE_PROVIDER=s3 | ||
| + | |||
| + | S3_ENDPOINT=http:// | ||
| + | S3_REGION=us-east-1 | ||
| + | S3_BUCKET_NAME=lycee | ||
| + | |||
| + | S3_ACCESS_KEY_ID=compteadmin | ||
| + | S3_SECRET_ACCESS_KEY=motdepasse | ||
| + | |||
| + | S3_FORCE_PATH_STYLE=true | ||
| + | S3_USE_SSL=false | ||
| + | |||
| + | # configuration de sharepoint-proxy | ||
| + | MINIO_ROOT_USER=admin | ||
| + | MINIO_ROOT_PASSWORD=motdepasse | ||
| + | |||
| + | TENANT_ID=< | ||
| + | CLIENT_ID=< | ||
| + | SITE_PATH=tenant.sharepoint.com:/ | ||
| + | CERT_PATH=/ | ||
| + | KEY_PATH=/ | ||
| + | |||
| + | AUTHORITY=https:// | ||
| + | GRAPH_SCOPE=https:// | ||
| + | |||
| + | WEBHOOK_SECRET=" | ||
| + | |||
| + | DOCUMENT_LIBRARY=" | ||
| </ | </ | ||
| + | Commentaires : | ||
| + | * S3_FORCE_PATH_STYLE=true => OBLIGATOIRE avec MinIO | ||
| + | * S3_USE_SSL=false => car MinIO est en HTTP interne | ||
| + | * S3_REGION => peut être n’importe quoi (MinIO n'en tins pas compte) | ||
| ==== Utiliser un certificat signé ==== | ==== Utiliser un certificat signé ==== | ||
| Ligne 401: | Ligne 482: | ||
| systemctl status documenso.service | systemctl status documenso.service | ||
| </ | </ | ||
| - | |||
| - | ===== Créer une application Entra ID autorisée à mettre à jour le site Sharepoint ===== | ||
| - | |||
| - | * application à créer dans Entra ID : **minio-sharepoint** ; | ||
| - | * création d'une équipe Teams **Signatures numéritiques** ; | ||
| - | * configurer l' | ||
| - | |||
| - | Lien : [[reseau: | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Ajout / configuration | ||
systeme/documenso/autohebergement.1775933154.txt.gz · Dernière modification : 2026/04/11 20:45 de techer.charles_educ-valadon-limoges.fr
