@@ -9,63 +9,131 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
99Docker installation - takes about three minutes!
1010
1111Docker provides an easy way to install and run NocoDB. Follow these steps to get NocoDB up and running using Docker.
12+ NocoDB provides A single image that contains
13+
14+ - 🇳 NocoDB,
15+ - 🐘 PostgreSQL,
16+ - ⚡ Valkey(Redis),
17+ - 🗄 Minio,
18+ - 🌐 nginx gateway.
19+ - 🔒 automated SSL certs and auto renew
20+
1221
1322## Prerequisites
1423- [ Docker] ( https://www.docker.com/get-started )
1524
1625## Installation Steps
1726
18- 1 . Choose your preferred database:
19-
20- <Tabs items = { [' SQLite' , ' Postgres' ]} >
21- <Tab value = " SQLite" >
27+ <Tabs items = { [' http' , ' https' ]} >
2228
29+ <Tab value = " http" >
2330```
24- docker run -d --name nocodb \
25- -v "$(pwd)"/nocodb:/usr/app/data/ \
26- -p 8080:8080 \
27- nocodb/nocodb:latest
31+ docker run \
32+ -d \
33+ --name nocodb \
34+ --tmpfs /run:nodev,nosuid,exec,mode=0755 \
35+ -v ./nocodb:/usr/app/data \
36+ -e NC_AUTH_JWT_SECRET="your-super-secret-string" \
37+ -e NC_PUBLIC_URL="__your_nocodb_domain__.com" \
38+ -p 80:8080 \
39+ --restart unless-stopped \
40+ -it nocodb/nocodb:latest
2841```
2942</Tab >
3043
31- <Tab value = " Postgres" >
32-
44+ <Tab value = " https" >
3345```
34- docker run -d --name nocodb-postgres \
35- -v "$(pwd)"/nocodb:/usr/app/data/ \
36- -p 8080:8080 \
37- -e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1" \
38- -e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
39- nocodb/nocodb:latest
46+ docker run \
47+ -d \
48+ --name nocodb \
49+ --tmpfs /run:nodev,nosuid,exec,mode=0755 \
50+ -v ./nocodb:/usr/app/data \
51+ -e nc_aio_ssl_domain=example.com \
52+ -e nc_aio_ssl_enable=true \
53+ -e nc_aio_ssl_email=your@mail.com \
54+ -e NC_AUTH_JWT_SECRET="your-super-secret-string" \
55+ -p 80:80 \
56+ -p 443:443 \
57+ --restart unless-stopped \
58+ -it nocodb/nocodb:latest
4059```
4160</Tab >
4261
4362</Tabs >
4463
45- 2 . Once the container is running, you can access NocoDB by opening http://localhost:8080 in your web browser.
4664
65+ > Once the container is running, you can access NocoDB by opening http://localhost in your web browser.
4766
48- :::tip
49- To persist data, always mount a volume at ` /usr/app/data/ ` . Without this, your data will be lost when the container is removed.
67+ ## Upgrading from a previous version
5068
51- For versions prior to 0.10.6, mount the volume at /usr/src/app.
52-
53- :::
69+ ``` bash
70+ docker pull nocodb/nocodb_aio:latest
5471
55- ## Troubleshooting
72+ docker stop nocodb
73+ docker rm nocodb
5674
57- - If you can't access NocoDB after installation, check if the Docker container is running:
58-
59- ``` bash
60- docker ps
61- ```
62-
63- - If the container is not running, check the logs for any errors:
64-
65- ``` bash
66- docker logs nocodb
6775```
76+ > use the the docker run command to start nocodb again
77+
78+ ## Environment Variable Handling
79+
80+ The NocoDB AIO image supports flexible environment variable management across its internal services
81+
82+ ### AIO-Handled Variables
83+
84+ All environment variables that begin with ` nc_aio_ ` are ** processed by the AIO image itself** to control the internal setup and orchestration.
85+
86+ | Variable | Mandatory | Description | Default |
87+ | --------------------------| -----------| ---------------------------------------| -----------|
88+ | ` nc_aio_minio_enable ` | No | enable aio minio for s3 storage | false |
89+ | ` nc_aio_redis_enable ` | No | enable aio valkey(redis) for caching | true |
90+ | ` nc_aio_postgres_enable ` | No | enable aio PostgreSQL | true |
91+ | ` nc_aio_ssl_enable ` | No | enable ssl | false |
92+ | ` nc_aio_ssl_email ` | No | email used for ssl | null |
93+ | ` nc_aio_ssl_domain ` | No | domain to fetch ssl certs for | localhost |
94+ | ` nc_aio_worker_enable ` | No | enable worker instance | false |
95+
96+ ### Shared Variables
97+
98+ * All environment variables (except those prefixed with ` nc_aio_ ` or ` nc_aio_pass_* ` ) are passed ** to both the main NocoDB instance and the worker** .
99+
100+ > Example:
101+ >
102+ > ``` bash
103+ > -e NC_PUBLIC_URL=" https://example.com"
104+ > ` ` `
105+ >
106+ > This will be available in ** both** main and worker containers.
107+
108+ # ## Targeted Variable Injection
109+
110+ The NocoDB AIO image supports passing environment variables to individual services using the following prefixes
111+
112+ | Prefix | Targets Service |
113+ | --------------------- | --------------- |
114+ | ` nc_aio_pass_main_` | NocoDB (main) |
115+ | ` nc_aio_pass_worker_` | Worker process |
116+ | ` nc_aio_pass_minio_` | Minio |
117+ | ` nc_aio_pass_acme_` | Lego (ACME/SSL) |
118+
119+ These allow fine-grained control over configuration by scoping variables to specific containers managed by the AIO image.
120+
121+ > 🔧 Example:
122+ > To pass ` NC_AUTH_JWT_SECRET` only to the main NocoDB instance:
123+ >
124+ > ` ` ` bash
125+ > -e nc_aio_pass_main_NC_AUTH_JWT_SECRET=" your-secret"
126+ > ` ` `
127+
128+ # # Exposed ports on the AIO Image
129+
130+ - 80: https redirect & ssl acme challenge
131+ - 443: https
132+ - 8080: http & ssl acme challenge
133+ - 9000: minio
68134
69- ## Installation Video
135+ # # Additional Notes
70136
71- <iframe width = " 100%" height = " 500" src = " https://www.youtube.com/embed/K-UEecQyiOk" title = " YouTube video player" frameBorder = " 0" allow = " accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen ></iframe >
137+ - when using ssl, first make sure your instance is accessible at $nc_aio_ssl_domain :80
138+ - variables set by aio can be overridden by the end user by using ` docker run -e var_name=var_value`
139+ - the code used to build the aio image is publicly available at [github.com/nocodb/nocodb/tree/develop/nix/docker/all_in_one](https://github.com/nocodb/nocodb/tree/develop/nix/docker/all_in_one)
0 commit comments