FAQ / Troubleshooting
Troubleshooting SeaTable Server¶
SeaTable doesn't start / Webinterface is not reachable
First let's try to find out, where the problem is. If you try to access your SeaTable Server goes like this:
Browser -> Domain/DNS -> Caddy -> Nginx -> SeaTable Container -> SeaTable Server
Check the following solutions to determine what is not running.
Verify that SeaTabler Server is running
Execute docker logs seatable-server. This should result in:
2024-02-04 12:59:17 Start server
SeaTable started
2024-02-04 12:59:21 For more startup information, please check the /opt/seatable/logs/init.log
2024-02-04 12:59:21 This is an idle script (infinite loop) to keep container running.
Another check might be:
docker exec -it seatable-server curl http://127.0.0.1:8000/server-info/
This should return:
{"version":"4.3.8","edition":"enterprise edition"}
If you don't see this, SeaTable Service is definately not running. Try to restart the service and check the logs for more details.
Here are the two commands for more logs
cd /opt/seatable-compose && docker compose logs -ftail -f /opt/seatable-server/seatable/logs/*.log
Probably you have a wrong configuration value in dtable_web_settings.py.
Verify that SeaTable Container is healthy
Execute docker ps. This should be the result:
CONTAINER ID IMAGE STATUS NAMES
0411d977eb25 seatable/seatable-enterprise:4.3.8 Up 3 days (healthy) seatable-server
If the container is not (healthy), you can be sure, that something is wrong with the container.
Check nginx
There might be a misconfiguration of nginx.conf. nginx provides a configuration checker.
docker exec -it seatable-server nginx -t
It should look like:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
If not, check the nginx configuration file at /opt/seatable-server/seatable/conf/nginx.conf.
Check Caddy
docker logs caddy
more info will follow.
Domain/DNS
execute curl https://<your-seatable-server-domain> or ping <your-seatable-server-domain> to get more details.
Other typical problems
- License expired or not provided
- PLUGIN_REPO_ID wrong in dtable_web_settings.py
- spaces in COMPOSE_FILE variable in
.envfile.
FAQ's¶
If, for whatever reason, the installation fails, how do I to start from a clean slate again?
Stop all containers, remove the directories caddy, mariadb, seatable-compose, and seatable-server in /opt and start again.
To stop all containers, change to /opt/seatable-compose and run docker compose down.
I want to run my SeaTable Server instance on my local machine? Can I do that?
You can, but it is only recommended for testing purposes. Follow the instructions for the single-node deployment and simply set SEATABLE_SERVER_HOSTNAME and SEATABLE_SERVER_PROTOCOL to 127.0.0.1 and 'http', respectively, in the .env file. To access your local SeaTable Server instance, enter http:\127.0.0.1 in your browser.
If you want to enable https, consult section Custom Certificates for details.
I want to use my own reverse proxy / my custom certificate, how do I do that?
You can opt out of using Caddy and use another webserver of your choice. In this case, remove caddy.yml from the COMPOSE_FILE variable in the .env file and follow the instructions in section Custom Revers Proxy.
SeaTable terminates with /shared/seatable/seatable-license.txt: Is a directory
In the seatable-server.yml file, the SeaTable license file is mounted into the container:
- type: bind
source: "./seatable-license.txt"
target: "/shared/seatable/seatable-license.txt"
read_only: ${SEATABLE_LICENSE_FORCE_READ_ONLY:-false}
This error occurs when SeaTable is started before the seatable-license.txt file exists in the /opt/seatable-compose directory. In this case, Docker automatically creates a directory named seatable-license.txt instead of a file. Even after adding the license file later, SeaTable cannot start because the directory remains in place.
Solution
Stop the SeaTable container, remove the directory that Docker created by mistake: and restart SeaTable.
docker stop seatable-server
rm -r /opt/seatable-server/seatable/seatable-license.txt
docker start seatable-server
Ensure that the license file seatable-license.txt is present in /opt/seatable-compose before starting SeaTable again.