Fresh install 1.7.0 opening base infinite loading

i did all steps listed under die manual:

Unfortuneately, when I try to open a base on my fresh install, it always ends whith an infinite loading screen.

I can go back and create another base, put I am not able to access any base via the browser.

what I tried so far:
-several reinstalls
-differend VM
-seatable 1.6 (insteat of latest)

mariadb container is working
the only error after docker compose up i get is:
seatable | nginx: [emerg] open() “/etc/nginx/sites-enabled/default” failed (2: No such file or directory) in /etc/nginx/nginx.conf:25

any help is much appreciated!
Thanks is advance!

Hi hoeber,
welcome to the SeaTable forum!
The nginx conf for SeaTable is not in the default file in /etc/nginx/sites-enabled. The nginx conf for Seatable is in the nginx.conf in /opt/seatable/seatable-data/seatable/conf.

The default in /etc/nginx/sites-enabled shoud be a symlink to /etc/nginx/sites-available. The content of the symlinked file is this:

server {
listen 80 default_server;
listen [::]:80;
server_name _;

location / {
return 404;
location ^~ /.well-known/acme-challenge/ {
default_type “text/plain”;
root /var/www;
location = /.well-known/acme-challenge/ {
return 404;

error_page 502 403 404 /error.html;
location = /error.html {
root /var/www;

Then please check the existence and content of the nginx.conf in SeaTable’s conf folder. This is what mine looks like:

log_format seatableformat ‘$http_x_forwarded_for $remote_addr [$time_local] “$request” $status $body_bytes_sent “$http_referer” “$http_user_agent” $upstream_response_time’;

upstream dtable_servers {
keepalive 15;

server {
if ($host = {
return 301 https://$host$request_uri;
listen 80;
return 404;

server {
listen 443 ssl;
ssl_certificate /shared/ssl/fullchain.pem;
ssl_certificate_key /shared/ssl/privkey.pem;

proxy_set_header X-Forwarded-For $remote_addr;

location / {
    proxy_set_header   Host $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Host $server_name;
    proxy_read_timeout  1200s;
    access_log      /opt/nginx-logs/dtable-web.access.log seatableformat;
    error_log       /opt/nginx-logs/dtable-web.error.log;

location /seafhttp {
    rewrite ^/seafhttp(.*)$ $1 break;

    client_max_body_size 0;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_request_buffering off;
    proxy_connect_timeout  36000s;
    proxy_read_timeout  36000s;
    proxy_send_timeout  36000s;

    send_timeout  36000s;

    access_log      /opt/nginx-logs/seafhttp.access.log seatableformat;
    error_log       /opt/nginx-logs/seafhttp.error.log;


location /media {
    root /opt/seatable/seatable-server-latest/dtable-web;

location / {
    proxy_pass http://dtable_servers;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_redirect off;

    proxy_buffers 8 32k;
    proxy_buffer_size 64k;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;

    access_log      /opt/nginx-logs/socket-io.access.log seatableformat;
    error_log       /opt/nginx-logs/socket-io.error.log;


location /dtable-server {
    # add_header Access-Control-Allow-Origin *;
    if ($request_method = 'OPTIONS') {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
        add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";
        return 204;
    rewrite ^/dtable-server/(.*)$ /$1 break;
    proxy_pass         http://dtable_servers;
    proxy_redirect     off;
    proxy_set_header   Host              $host;
    proxy_set_header   X-Real-IP         $remote_addr;
    proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Host  $server_name;
    proxy_set_header   X-Forwarded-Proto $scheme;

    access_log      /opt/nginx-logs/dtable-server.access.log seatableformat;
    error_log       /opt/nginx-logs/dtable-server.error.log;


Can you check if this file is where it is supposed to be and if your file is equivalent? Please note: my configuration file is for the domain Whereever I used “” as a domain name, you’d have to use your domain name. Additionally, the let’s encrypt certificate is registered during the docker-compose.

Let me know if this works.

1 Like

hi rdb,
thanks for the quick and thorough help!
i have to admit, i am still quite a newbie to the whole container business so please bare with me when i ask stupid thinks.
in the seatable container, there was so no “/etc/nginx/sites-available”, so i created the file with the content you provided.
i also created the symlink “ln -s /etc/nginx/sites-available /etc/nginx/sites-enabled” inside the container.
i pasted the content of your nginx.conf into mine and changed your domain to my local ip.

maybe here also lies a obstacle, my current environemnt only allows me to access the server from within the network or via vpn. i have a static ip for the vm and can, for now, live without a valid letsencrypt cert. (i cannot open ports)

with this in mind, i guess the paste of your nginx.conf has to fail, right?
when i docker-compose up I get:
seatable | nginx: [emerg] cannot load certificate “/shared/ssl/fullchain.pem”: BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file o,‘r’) error:2006D080:BIO routines:BIO_new_file:no such file)

also i cannot acces the seatble anymore.

so i removed everything an started from scratch. first time i do docker-compose up I get:
seatable-mysql | 2021-03-16 9:16:31 3 [Warning] Aborted connection 3 to db: ‘unconnected’ user: ‘root’ host: ‘’ (Got an error reading communication packets)
maybe this the culprit?


thanks in advance!

now it works!

I am afraid my docker-compose.yaml was the source, last thing i changed was

before it was

first I thought this is only for the let-encrypt part…
obviously i was wrong.

thanks again. topic closed.

1 Like