However after starting the container (+service) and creating an admin account, seatable is not accessible.
docker-compose logs --f
states hundreds of lines of seatable | nginx: [emerg] open() "/etc/nginx/sites-enabled/default" failed (2: No such file or directory) in /etc/nginx/nginx.conf:25
After entering the container and running cat /etc/nginx/nginx.conf
on line 25 it states include /etc/nginx/sites-enabled/*;
and inspecting ls -alh /etc/nginx/sites-enabled/
there is a symlink lrwxrwxrwx 1 root root 29 May 5 23:49 default -> /opt/seatable/conf/nginx.conf
However there is nonginx.conf in the referenced folder /opt/seatable/conf/.
After running find / -iname "nginx.conf"
only the original /etc/nginx/nginx.conf shows up with its reference to /etc/nginx/sites-enabled/.
I can quite imagine how I could have screwed up the install. So the question is: (How) has this major doozy slipped past QA?
Hi Karlheinz. Thank you for your quick reply That totally makes sense and I’m was certain I did that beforehand. Just to make sure, I just did a fresh install again (docker-compose down -v && rm -rf /opt/seatable) and this issue didn’t appear again.
However it still doesn’t seem to start (note: I started the service via docker exec and admin account was created afterwards):
seatable | 2021-05-06 12:57:36 This is a idle script (infinite loop) to keep container running.
seatable-mysql | 2021-05-06 12:58:10 4 [Warning] Aborted connection 4 to db: 'dtable_db' user: 'root' host: '172.20.0.5' (Got an error reading communication packets)
This is my compose.yml
version: '2.0'
services:
db:
image: mariadb:10.5
container_name: seatable-mysql
environment:
- MYSQL_ROOT_PASSWORD=REDACTED # Requested, set the root's password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seatable/mysql-data:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
networks:
- seatable-net
memcached:
image: memcached:1.5.6
container_name: seatable-memcached
entrypoint: memcached -m 256
networks:
- seatable-net
redis:
image: redis:5.0.7
container_name: seatable-redis
networks:
- seatable-net
seatable:
image: seatable/seatable:latest
container_name: seatable
ports:
- "80:80"
- "443:443" # If https is enabled, cancel the comment.
volumes:
- /opt/seatable/seatable-data:/shared # Requested, specifies the path to Seafile data persistent store.
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=REDACTED # Requested, the value should be root's password of MySQL service.
- SEATABLE_SERVER_LETSENCRYPT=True # Default is False. Whether to use let's encrypt certificate.
- SEATABLE_SERVER_HOSTNAME=tabletest.REDACTED.de # Specifies your host name.
- TIME_ZONE=Etc/UTC # Optional, default is UTC. Should be uncomment and set to your local time zone.
depends_on:
- db
- memcached
- redis
networks:
- seatable-net
networks:
seatable-net:
My host details
Docker version 20.10.6, build 370c289
docker-compose version 1.27.4, build 40524192
Please explain more precisely what you did. In the same vein, what do you mean by “doesn’t seem to start”? Do the containers start or don’t they? (If you could create the superuser account, then SeaTable is obviously up.)
Here are just some specific questions/checks you should answer/run:
Did you restart docker-compose “detached”?
Are all four containers running? (How about posting the output of docker ps here?)
Is the seatable container listening on port 80 and 443?
What does nginx do with requests coming in on port 80 and 443? (Check the nginx log.)
Hey Ralf, amazing support. Thank you! I’ll give my best to provide you with the missing details.
I started the containers detached via docker-compose up -d
All four containers are running docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d854bf915c24 seatable/seatable:latest "/sbin/my_init -- /t…" 4 hours ago Up 2 hours 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp seatable
8da18b74174e memcached:1.5.6 "memcached -m 256" 4 hours ago Up 2 hours 11211/tcp seatable-memcached
1ef91cf899ec redis:5.0.7 "docker-entrypoint.s…" 4 hours ago Up 2 hours 6379/tcp seatable-redis
78161b2d4c78 mariadb:10.5 "docker-entrypoint.s…" 4 hours ago Up 2 hours 3306/tcp seatable-mysql
The ps output shows that seatable is listening on (host)ports 80 and 443.
docker-compose logs -f still shows the error.
seatable-mysql | 2021-05-06 16:33:38 4 [Warning] Aborted connection 4 to db: 'dtable_db' user: 'root' host: '172.20.0.5' (Got an error reading communication packets)
Oddly enough after trying the same procedure for the sixth time (in pretty much exactly the same way) and lastly letting it (and myself) rest for 2 hours, it suddenly seems to work and I was able to access the login form. The other times I wouldn’t get a repsonse from the webserver (btw: DNS settings remained the same for over a month, so no TTL issue here) or occasionally a “502 Bad Gateway” response.
Since I can now reliably start seatable, I’m not sure what to make of this and feel a bit silly. Could there be a race condition, that only triggers on fresh installs with no prior certificate or existing DB? I’m a bit puzzled on this, since I’ve tried this many times in the last week with exactly those steps
I was curious so I tried it on my own docker. I could successfully install SeaTable for the first time without Letsencrypt, then I removed all the four docker containers and started all over again, the second time with Letsencrypt, and it worked right away.
Glad to hear that you finally got your SeaTable running, enjoy!
As this forum is open for all levels of users, I would like to present my procedures for anyone who’s interested:
My Ubuntu is fresh and there’s no previous installation of SeaTable or docker. If the previous docker installation of SeaTable was unsuccessful, refer to Step 5.
Also following the manual, downloaded docker-compose.yml and changed the necessary parameters including the password in Step 2. I left SEATABLE_SERVER_LETSENCRYPT=False.
Proceeded with the installation following the manual and created a superuser, and could successfully login and start using SeaTable.
Repeated 3 and 4, and this time, let SEATABLE_SERVER_LETSENCRYPT=True. Again, changed this value in the docker-compose.yml before running docker-compose up for the first time. And the installation was successful as well.
To summarize: The SeaTable admin manual is precise. Make sure you have a correct docker-compose.yml before you run the docker-compose up or the docker-compose up -d for the first time and everything should be fine!
Don’t waste your time on feeling silly. Something must have gone wrong, whatever.
Rather spend your time playing around with SeaTable and share your experience! (Just as a heads up: You’ll find some real bugs in SeaTable when looking closely. We are working on those and we’ll fix a lot of those in SeaTable 2.0 due mid/end of May 2021)
1 Like
Do it like thousands of other people who have used SeaTable to develop powerful processes and get their ideas and tasks done more efficiently.