-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration
pedrokarim edited this page Jun 11, 2026
·
1 revision
Deux niveaux de configuration : les variables d'environnement (.env) et la configuration d'upload (config/uploads.json, modifiable aussi depuis l'UI Uploads → Configuration).
| Variable | Rôle | Exemple | Requis |
|---|---|---|---|
AUTH_SECRET |
Secret NextAuth (openssl rand -base64 32) |
g7Boa…ck8= |
✅ |
AUTH_URL |
URL de base / hôte NextAuth v5 | http://localhost:3000 |
recommandé |
PORT |
Port du serveur |
3000 (.env d'exemple : 4001) |
optionnel |
UPLOAD_PATH |
Dossier racine des uploads | ./uploads |
optionnel |
NEXT_PUBLIC_API_URL |
URL publique de l'API (client) | http://localhost:3000 |
optionnel |
NEXT_PUBLIC_APP_DOMAIN |
Domaine public de l'app | ascencia.re |
optionnel |
NEXT_PUBLIC_IMAGE_DOMAIN |
Domaine de service des images | img.ascencia.re |
optionnel |
MINECRAFT_SKIN_API_URL |
Microservice skin Minecraft (optionnel) | http://localhost:3089 |
optionnel |
GOOGLE_API_KEY |
Clé du provider IA (module ai-image-gen) | — | optionnel |
THEME_DB_PATH |
Surcharge du chemin de la base SQLite des thèmes | — | optionnel |
⚠️ NextAuth v5 : la variable estAUTH_URL, pasNEXTAUTH_URL.
Chargée par lib/upload-config.ts (getConfig()), avec repli sur lib/defaultConfig.ts en cas d'erreur. Schéma (lib/types/upload-config.ts) :
-
Unités de taille :
maxFileSizeest en Mo (taille > maxFileSize × 1024 × 1024) ;minFileSizeest en Ko (taille < minFileSize × 1024). -
Types & extensions (les booléens
allowedTypesactivent/désactivent ; les extensions sont fixées dans le code) :-
Images :
jpg,jpeg,png,gif,webp -
Documents :
pdf,doc,docx,txt -
Archives :
zip,rar
-
Images :
-
Miniatures : générées via Sharp uniquement pour les images, écrites dans
{uploads}/{thumbnailsPath}/thumb_<nom>. -
Domaines : l'URL finale d'un fichier est construite à partir du domaine par défaut +
pathPrefix(+useSSL). Gérables depuis l'UI Paramètres → Domaines.
💡 La configuration d'upload est aussi éditable sans toucher au fichier, depuis l'interface : Uploads → Configuration (réservé aux admins).
➡️ Suite : Fonctionnalités ou Clés API.
Démarrage
Utilisation
Intégration bureau
Pour les développeurs
Exploitation
{ "allowedTypes": { "images": true, "documents": true, "archives": true }, "limits": { "maxFileSize": 10, // en Mo "minFileSize": 1, // en Ko "maxFilesPerUpload": 50, "maxFilesPerType": { "images": 30, "documents": 20, "archives": 10 } }, "filenamePattern": "{random}", // ex: "{timestamp}-{random}-{original}" "thumbnails": { "enabled": true, "maxWidth": 200, "maxHeight": 200, "quality": 80, "format": "auto", // auto | jpeg | png | webp "preserveFormat": true, "fit": "cover", // cover | contain | fill | inside | outside "background": "rgba(255,255,255,0)", "progressive": true, "blur": 0, "sharpen": false, "metadata": true }, "storage": { "path": "./uploads", "structure": "flat", // flat | type | date "preserveFilenames": false, "replaceExisting": false, "thumbnailsPath": "thumbnails", "dateFormat": { "folderStructure": "YYYY/MM", "timezone": "Europe/Paris" }, "permissions": { "files": "0644", "directories": "0755" } }, "domains": { "list": [ { "id": "default", "name": "Default", "url": "http://localhost:3000", "isDefault": true } ], "defaultDomain": "default", "useSSL": true, "pathPrefix": "/uploads" } }