Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
#Installation de NocoBase avec Docker
- Vous avez installé Docker et Docker Compose.
- Assurez-vous que le service Docker est en cours d'exécution.
#1. Créer le fichier docker-compose.yml
# Créez un dossier nommé my-project (vous pouvez choisir un autre nom) pour stocker les fichiers système générés par NocoBase.
mkdir my-project && cd my-project
# Créez un fichier docker-compose.yml vide.
vi docker-compose.yml#2. Configurer le fichier docker-compose.yml
Choisissez une version de NocoBase (Comparaison des versions) et un type de base de données, puis copiez la configuration correspondante dans votre fichier docker-compose.yml.
- Choisir une image :
latestlatest-fullbetabeta-fullalphaalpha-full1.7.141.7.14-full-
Pour les environnements de production, nous vous recommandons de fixer une version spécifique pour éviter les mises à jour automatiques involontaires. Voir toutes les versions
-
Image Docker Hub :
nocobase/nocobase:latest-full -
L'image full inclut les clients PostgreSQL 16/17, MySQL 8.0, Oracle 19.25 nécessaires aux plugins de gestion des sauvegardes et des migrations, ainsi que LibreOffice pour l'impression de modèles (PDF).
-
Si vous souhaitez créer votre propre image, vous pouvez consulter les Dockerfile officiels (version allégée) et Dockerfile-full (version complète).
-
- Modifier
APP_KEY: Veuillez remplaceryour-secret-keypar une chaîne de caractères aléatoire. Cette clé est utilisée pour chiffrer les informations sensibles comme les jetons utilisateur. - Utiliser une base de données existante : Si vous disposez déjà d'un service de base de données, modifiez
DB_HOSTpour y indiquer l'adresse de votre serveur de base de données, puis supprimez ou commentez la configuration du service de base de données (par exemple, les servicespostgres,mysql,mariadb). - Mappage des ports : Par défaut, le port 80 du conteneur est mappé sur le port 13000 de l'hôte. Vous pouvez le modifier selon vos besoins.
networks:
nocobase:
driver: bridge
services:
app:
image: nocobase/nocobase:latest-full
restart: always
networks:
- nocobase
depends_on:
- postgres
environment:
# Clé de l'application, utilisée pour générer les jetons utilisateur, etc.
# Si APP_KEY est modifiée, les anciens jetons deviendront invalides.
# Il peut s'agir de n'importe quelle chaîne de caractères aléatoire ; assurez-vous qu'elle ne soit pas divulguée.
- APP_KEY=your-secret-key
# Type de base de données, supporte postgres, mysql, mariadb
- DB_DIALECT=postgres
# Hôte de la base de données, peut être remplacé par l'IP d'un serveur de base de données existant
- DB_HOST=postgres
# Port de la base de données
- DB_PORT=5432
# Nom de la base de données
- DB_DATABASE=nocobase
# Utilisateur de la base de données
- DB_USER=nocobase
# Mot de passe de la base de données
- DB_PASSWORD=nocobase
# Fuseau horaire
- TZ=Asia/Shanghai # Ou votre fuseau horaire local, par exemple Europe/Paris
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# Si vous utilisez un service de base de données existant, vous pouvez ne pas démarrer postgres.
postgres:
image: postgres:16
restart: always
command: postgres -c wal_level=logical
environment:
POSTGRES_USER: nocobase
POSTGRES_DB: nocobase
POSTGRES_PASSWORD: nocobase
volumes:
- ./storage/db/postgres:/var/lib/postgresql/data
networks:
- nocobasenetworks:
nocobase:
driver: bridge
services:
app:
image: nocobase/nocobase:latest-full
restart: always
networks:
- nocobase
depends_on:
- mysql
environment:
# Clé de l'application, utilisée pour générer les jetons utilisateur, etc.
# Si APP_KEY est modifiée, les anciens jetons deviendront invalides.
# Il peut s'agir de n'importe quelle chaîne de caractères aléatoire ; assurez-vous qu'elle ne soit pas divulguée.
- APP_KEY=your-secret-key
# Type de base de données, supporte postgres, mysql, mariadb
- DB_DIALECT=mysql
# Hôte de la base de données, peut être remplacé par l'IP d'un serveur de base de données existant
- DB_HOST=mysql
# Port de la base de données
- DB_PORT=3306
# Nom de la base de données
- DB_DATABASE=nocobase
# Utilisateur de la base de données
- DB_USER=root
# Mot de passe de la base de données
- DB_PASSWORD=nocobase
# Indique si les noms de tables et de champs doivent être convertis au format snake_case.
- DB_UNDERSCORED=true
# Fuseau horaire
- TZ=Asia/Shanghai # Ou votre fuseau horaire local, par exemple Europe/Paris
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# Si vous utilisez un service de base de données existant, vous pouvez ne pas démarrer mysql.
mysql:
image: mysql:8
environment:
MYSQL_DATABASE: nocobase
MYSQL_USER: nocobase
MYSQL_PASSWORD: nocobase
MYSQL_ROOT_PASSWORD: nocobase
restart: always
volumes:
- ./storage/db/mysql:/var/lib/mysql
networks:
- nocobasenetworks:
nocobase:
driver: bridge
services:
app:
image: nocobase/nocobase:latest-full
restart: always
networks:
- nocobase
depends_on:
- mariadb
environment:
# Clé de l'application, utilisée pour générer les jetons utilisateur, etc.
# Si APP_KEY est modifiée, les anciens jetons deviendront invalides.
# Il peut s'agir de n'importe quelle chaîne de caractères aléatoire ; assurez-vous qu'elle ne soit pas divulguée.
- APP_KEY=your-secret-key
# Type de base de données, supporte postgres, mysql, mariadb
- DB_DIALECT=mariadb
# Hôte de la base de données, peut être remplacé par l'IP d'un serveur de base de données existant
- DB_HOST=mariadb
# Port de la base de données
- DB_PORT=3306
# Nom de la base de données
- DB_DATABASE=nocobase
# Utilisateur de la base de données
- DB_USER=root
# Mot de passe de la base de données
- DB_PASSWORD=nocobase
# Indique si les noms de tables et de champs doivent être convertis au format snake_case.
- DB_UNDERSCORED=true
# Fuseau horaire
- TZ=Asia/Shanghai # Ou votre fuseau horaire local, par exemple Europe/Paris
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# Si vous utilisez un service de base de données existant, vous pouvez ne pas démarrer mariadb.
mariadb:
image: mariadb:11
environment:
MYSQL_DATABASE: nocobase
MYSQL_USER: nocobase
MYSQL_PASSWORD: nocobase
MYSQL_ROOT_PASSWORD: nocobase
restart: always
volumes:
- ./storage/db/mariadb:/var/lib/mysql
networks:
- nocobasenetworks:
nocobase:
driver: bridge
services:
app:
image: nocobase/nocobase:beta-full
restart: always
networks:
- nocobase
depends_on:
- postgres
environment:
# Clé de l'application, utilisée pour générer les jetons utilisateur, etc.
# Si APP_KEY est modifiée, les anciens jetons deviendront invalides.
# Il peut s'agir de n'importe quelle chaîne de caractères aléatoire ; assurez-vous qu'elle ne soit pas divulguée.
- APP_KEY=your-secret-key
# Type de base de données, supporte postgres, mysql, mariadb
- DB_DIALECT=postgres
# Hôte de la base de données, peut être remplacé par l'IP d'un serveur de base de données existant
- DB_HOST=postgres
# Port de la base de données
- DB_PORT=5432
# Nom de la base de données
- DB_DATABASE=nocobase
# Utilisateur de la base de données
- DB_USER=nocobase
# Mot de passe de la base de données
- DB_PASSWORD=nocobase
# Fuseau horaire
- TZ=Asia/Shanghai # Ou votre fuseau horaire local, par exemple Europe/Paris
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# Si vous utilisez un service de base de données existant, vous pouvez ne pas démarrer postgres.
postgres:
image: postgres:16
restart: always
command: postgres -c wal_level=logical
environment:
POSTGRES_USER: nocobase
POSTGRES_DB: nocobase
POSTGRES_PASSWORD: nocobase
volumes:
- ./storage/db/postgres:/var/lib/postgresql/data
networks:
- nocobasenetworks:
nocobase:
driver: bridge
services:
app:
image: nocobase/nocobase:beta-full
restart: always
networks:
- nocobase
depends_on:
- mysql
environment:
# Clé de l'application, utilisée pour générer les jetons utilisateur, etc.
# Si APP_KEY est modifiée, les anciens jetons deviendront invalides.
# Il peut s'agir de n'importe quelle chaîne de caractères aléatoire ; assurez-vous qu'elle ne soit pas divulguée.
- APP_KEY=your-secret-key
# Type de base de données, supporte postgres, mysql, mariadb
- DB_DIALECT=mysql
# Hôte de la base de données, peut être remplacé par l'IP d'un serveur de base de données existant
- DB_HOST=mysql
# Port de la base de données
- DB_PORT=3306
# Nom de la base de données
- DB_DATABASE=nocobase
# Utilisateur de la base de données
- DB_USER=root
# Mot de passe de la base de données
- DB_PASSWORD=nocobase
# Indique si les noms de tables et de champs doivent être convertis au format snake_case.
- DB_UNDERSCORED=true
# Fuseau horaire
- TZ=Asia/Shanghai # Ou votre fuseau horaire local, par exemple Europe/Paris
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# Si vous utilisez un service de base de données existant, vous pouvez ne pas démarrer mysql.
mysql:
image: mysql:8
environment:
MYSQL_DATABASE: nocobase
MYSQL_USER: nocobase
MYSQL_PASSWORD: nocobase
MYSQL_ROOT_PASSWORD: nocobase
restart: always
volumes:
- ./storage/db/mysql:/var/lib/mysql
networks:
- nocobasenetworks:
nocobase:
driver: bridge
services:
app:
image: nocobase/nocobase:beta-full
restart: always
networks:
- nocobase
depends_on:
- mariadb
environment:
# Clé de l'application, utilisée pour générer les jetons utilisateur, etc.
# Si APP_KEY est modifiée, les anciens jetons deviendront invalides.
# Il peut s'agir de n'importe quelle chaîne de caractères aléatoire ; assurez-vous qu'elle ne soit pas divulguée.
- APP_KEY=your-secret-key
# Type de base de données, supporte postgres, mysql, mariadb
- DB_DIALECT=mariadb
# Hôte de la base de données, peut être remplacé par l'IP d'un serveur de base de données existant
- DB_HOST=mariadb
# Port de la base de données
- DB_PORT=3306
# Nom de la base de données
- DB_DATABASE=nocobase
# Utilisateur de la base de données
- DB_USER=root
# Mot de passe de la base de données
- DB_PASSWORD=nocobase
# Indique si les noms de tables et de champs doivent être convertis au format snake_case.
- DB_UNDERSCORED=true
# Fuseau horaire
- TZ=Asia/Shanghai # Ou votre fuseau horaire local, par exemple Europe/Paris
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# Si vous utilisez un service de base de données existant, vous pouvez ne pas démarrer mariadb.
mariadb:
image: mariadb:11
environment:
MYSQL_DATABASE: nocobase
MYSQL_USER: nocobase
MYSQL_PASSWORD: nocobase
MYSQL_ROOT_PASSWORD: nocobase
restart: always
volumes:
- ./storage/db/mariadb:/var/lib/mysql
networks:
- nocobasenetworks:
nocobase:
driver: bridge
services:
app:
image: nocobase/nocobase:alpha-full
restart: always
networks:
- nocobase
depends_on:
- postgres
environment:
# Clé de l'application, utilisée pour générer les jetons utilisateur, etc.
# Si APP_KEY est modifiée, les anciens jetons deviendront invalides.
# Il peut s'agir de n'importe quelle chaîne de caractères aléatoire ; assurez-vous qu'elle ne soit pas divulguée.
- APP_KEY=your-secret-key
# Type de base de données, supporte postgres, mysql, mariadb
- DB_DIALECT=postgres
# Hôte de la base de données, peut être remplacé par l'IP d'un serveur de base de données existant
- DB_HOST=postgres
# Port de la base de données
- DB_PORT=5432
# Nom de la base de données
- DB_DATABASE=nocobase
# Utilisateur de la base de données
- DB_USER=nocobase
# Mot de passe de la base de données
- DB_PASSWORD=nocobase
# Fuseau horaire
- TZ=Asia/Shanghai # Ou votre fuseau horaire local, par exemple Europe/Paris
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# Si vous utilisez un service de base de données existant, vous pouvez ne pas démarrer postgres.
postgres:
image: postgres:16
restart: always
command: postgres -c wal_level=logical
environment:
POSTGRES_USER: nocobase
POSTGRES_DB: nocobase
POSTGRES_PASSWORD: nocobase
volumes:
- ./storage/db/postgres:/var/lib/postgresql/data
networks:
- nocobasenetworks:
nocobase:
driver: bridge
services:
app:
image: nocobase/nocobase:alpha-full
restart: always
networks:
- nocobase
depends_on:
- mysql
environment:
# Clé de l'application, utilisée pour générer les jetons utilisateur, etc.
# Si APP_KEY est modifiée, les anciens jetons deviendront invalides.
# Il peut s'agir de n'importe quelle chaîne de caractères aléatoire ; assurez-vous qu'elle ne soit pas divulguée.
- APP_KEY=your-secret-key
# Type de base de données, supporte postgres, mysql, mariadb
- DB_DIALECT=mysql
# Hôte de la base de données, peut être remplacé par l'IP d'un serveur de base de données existant
- DB_HOST=mysql
# Port de la base de données
- DB_PORT=3306
# Nom de la base de données
- DB_DATABASE=nocobase
# Utilisateur de la base de données
- DB_USER=root
# Mot de passe de la base de données
- DB_PASSWORD=nocobase
# Indique si les noms de tables et de champs doivent être convertis au format snake_case.
- DB_UNDERSCORED=true
# Fuseau horaire
- TZ=Asia/Shanghai # Ou votre fuseau horaire local, par exemple Europe/Paris
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# Si vous utilisez un service de base de données existant, vous pouvez ne pas démarrer mysql.
mysql:
image: mysql:8
environment:
MYSQL_DATABASE: nocobase
MYSQL_USER: nocobase
MYSQL_PASSWORD: nocobase
MYSQL_ROOT_PASSWORD: nocobase
restart: always
volumes:
- ./storage/db/mysql:/var/lib/mysql
networks:
- nocobasenetworks:
nocobase:
driver: bridge
services:
app:
image: nocobase/nocobase:alpha-full
restart: always
networks:
- nocobase
depends_on:
- mariadb
environment:
# Clé de l'application, utilisée pour générer les jetons utilisateur, etc.
# Si APP_KEY est modifiée, les anciens jetons deviendront invalides.
# Il peut s'agir de n'importe quelle chaîne de caractères aléatoire ; assurez-vous qu'elle ne soit pas divulguée.
- APP_KEY=your-secret-key
# Type de base de données, supporte postgres, mysql, mariadb
- DB_DIALECT=mariadb
# Hôte de la base de données, peut être remplacé par l'IP d'un serveur de base de données existant
- DB_HOST=mariadb
# Port de la base de données
- DB_PORT=3306
# Nom de la base de données
- DB_DATABASE=nocobase
# Utilisateur de la base de données
- DB_USER=root
# Mot de passe de la base de données
- DB_PASSWORD=nocobase
# Indique si les noms de tables et de champs doivent être convertis au format snake_case.
- DB_UNDERSCORED=true
# Fuseau horaire
- TZ=Asia/Shanghai # Ou votre fuseau horaire local, par exemple Europe/Paris
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# Si vous utilisez un service de base de données existant, vous pouvez ne pas démarrer mariadb.
mariadb:
image: mariadb:11
environment:
MYSQL_DATABASE: nocobase
MYSQL_USER: nocobase
MYSQL_PASSWORD: nocobase
MYSQL_ROOT_PASSWORD: nocobase
restart: always
volumes:
- ./storage/db/mariadb:/var/lib/mysql
networks:
- nocobase#3. Installer et démarrer NocoBase
# Téléchargez la dernière image
docker compose pull
# Exécutez en arrière-plan (l'installation s'exécutera automatiquement lors du premier démarrage)
docker compose up -d
# Affichez les journaux d'installation et d'exécution
docker compose logs -f app
app-postgres-app-1 | nginx started
app-postgres-app-1 | yarn run v1.22.15
app-postgres-app-1 | $ cross-env DOTENV_CONFIG_PATH=.env node -r dotenv/config packages/app/server/lib/index.js install -s
app-postgres-app-1 | Done in 2.72s.
app-postgres-app-1 | yarn run v1.22.15
app-postgres-app-1 | $ pm2-runtime start --node-args="-r dotenv/config" packages/app/server/lib/index.js -- start
app-postgres-app-1 | 2022-04-28T15:45:38: PM2 log: Launching in no daemon mode
app-postgres-app-1 | 2022-04-28T15:45:38: PM2 log: App [index:0] starting in -fork mode-
app-postgres-app-1 | 2022-04-28T15:45:38: PM2 log: App [index:0] online
app-postgres-app-1 | 🚀 NocoBase server running at: http://localhost:13000/#4. Se connecter à NocoBase
Ouvrez http://localhost:13000 dans votre navigateur. Les identifiants initiaux sont admin@nocobase.com et admin123.
Après votre première connexion, veuillez modifier rapidement le mot de passe par défaut pour garantir la sécurité du système.

