Skip to content

Commit 354b3e6

Browse files
committed
updated information regarding ipv6
1 parent 599acf4 commit 354b3e6

File tree

4 files changed

+70
-20
lines changed

4 files changed

+70
-20
lines changed
19.3 KB
Loading
Lines changed: 60 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,73 @@
1+
---
2+
status: new
3+
---
4+
15
# Activate IPv6 Support for SeaTable
26

3-
The SeaTable Docker container does not activate IPv6 by default because Nginx is configured to listen only to IPv4.
7+
SeaTable supports IPv6 in general. There is no special activation required.
48

5-
To enable IPv6 on your Nginx server, you need to add a single line to the Nginx configuration file located at `/opt/seatable-server/seatable/conf/nginx.conf`.
9+
## Docker and IPv6
610

7-
Find the line `listen 80;` and add the following line below it, ensuring you include the trailing `;`:
11+
### Problem
812

9-
```
10-
listen [::]:80;
11-
```
13+
There is one area that requires additional attention. Docker, by default, does not assign IPv6 addresses to its containers; instead, containers receive only IPv4 addresses.
1214

13-
After making this change, your configuration file should look like this:
15+
Requests arriving via an IPv6 connection still reach SeaTable. However, a problem arises for services like nginx or SeaTable that log the source IP address. Every incoming IPv6 request is logged with the Docker network gateway IP address (e.g., `172.18.0.1`), not the client’s actual IPv6 address. In the following screenshot, you can see that *Thierry* connected from an IPv6 address.
1416

17+
![Login Logs from SeaTable System Admin Area](../../assets/images/seatable-ipv6.png)
18+
19+
You can confirm this by running `docker inspect seatable-server`:
20+
21+
```json
22+
[
23+
{
24+
...
25+
"Networks": {
26+
"frontend-net": {
27+
...
28+
"Gateway": "172.18.0.1",
29+
"IPAddress": "172.18.0.5",
30+
"IPv6Gateway": "",
31+
"GlobalIPv6Address": "",
32+
...
33+
}
34+
}
35+
}
36+
]
1537
```
16-
...
17-
server {
18-
server_name <your-server-url>
19-
listen 80;
20-
listen [::]:80;
21-
...
22-
}
23-
```
2438

25-
Next, run the following two commands. The first command checks the configuration file for errors. If there are no errors, execute the second command to reload Nginx:
39+
While this does not cause immediate service disruptions, it presents some challenges:
40+
- Incorrect client IPs are logged.
41+
- Rate limiting or other IP-based limits may behave incorrectly.
42+
43+
---
44+
45+
### Solution
46+
47+
<!-- md:version 6.0 -->
48+
49+
The solution is straightforward. Add the following parameter to your Docker network configuration (for example, in caddy.yml):
2650

2751
```
28-
docker exec seatable-server nginx -t
29-
docker exec seatable-server nginx -s reload
52+
networks:
53+
frontend-net:
54+
name: frontend-net
55+
enable_ipv6: ${ENABLE_IPV6:-true}
3056
```
3157

32-
Your SeaTable server will now support IPv6.
58+
This enables IPv6 addressing for the container and ensures accurate logging of client IP addresses. **Starting with SeaTable version 6.0**, this feature is enabled by default.
59+
60+
---
61+
62+
### Setups without IPv6
63+
64+
!!! warning "What if IPv6 is completely diabled on your server?"
65+
66+
If IPv6 is completely disabled, Docker may fail to start containers with errors such as:
67+
68+
- `cannot read IPv6 setup`
69+
- `cannot assign requested address`
70+
- `failed to start container ... error="driver failed programming external connectivity`
71+
- `error response from daemon: attaching to network failed`
72+
73+
In this case, set `ENABLE_IPV6=false` in your `.env` file to disable IPv6 support in Docker, allowing containers to start successfully.

docs/upgrade/extra-upgrade-notice.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ Most services received updated Docker image tags. For example, MariaDB was upgra
1010

1111
Starting with SeaTable 6.0, AI-powered automations are available as an optional new feature. To enable this functionality, you must add the `seatable-ai` container to your existing SeaTable installation. The container handles all AI-related processing tasks. For installation and configuration details, see [seatable-ai](../installation/components/seatable-ai.md).
1212

13+
??? info "Assignment of IPv6 addresses to containers"
14+
15+
We updated the Caddy configuration to enable containers to receive proper IPv6 addresses, enhancing logging accuracy and network compatibility. If your server has IPv6 disabled, Docker containers may fail to start. In that case, set `ENABLE_IPV6=false` in your `.env` file to disable IPv6 support.
16+
17+
[Read more about IPv6 and Docker](../installation/advanced/ipv6-support.md)
18+
19+
1320
## 5.3
1421

1522
SeaTable v5.3 introduces several significant changes. To make the transition as smooth as possible, we’ve provided a script that handles most of the work for you. Simply run the script to get started.

mkdocs.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ theme:
5555
# Plugins
5656
plugins:
5757
- search:
58-
separator: '[\s\-,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])'
58+
enabled: true
59+
# separator: '[\s\-,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])'
60+
# I try to remove this to fix the search issue with "ipv6 vs IPv6"
5961
- exclude-search:
6062
exclude:
6163
# - installation/advanced/example.md

0 commit comments

Comments
 (0)