Skip to content

Commit 5bcf80b

Browse files
committed
chore(docs/self-hosting/docker): aio refactor
1 parent 71b9cdd commit 5bcf80b

File tree

1 file changed

+103
-35
lines changed

1 file changed

+103
-35
lines changed

content/self-hosting/installation/docker.mdx

Lines changed: 103 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,63 +9,131 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
99
Docker installation - takes about three minutes!
1010

1111
Docker 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

Comments
 (0)