Docker images of self-hosted SeekTable are configured for standalone usage of web app (by HTTP), and this is ok when your SeekTable is accessed only from your company's local or private network (VPN).
If you want to make your SeekTable installation accessible from internet and/or use HTTPS it is recommended to use web server as reverse proxy for SeekTable application (NGINX, IIS or Apache).
This documentation page explains how to use NGINX for this purpose.
sudo apt-get install nginx
80:5000
with 5080:5000
.
server { # your own server options here location ^~ /pivotdataservice { rewrite /pivotdataservice/(.*) /$1 break; proxy_pass http://127.0.0.1:5200/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_set_header DNT ""; proxy_cache_bypass $http_upgrade; proxy_connect_timeout 120s; proxy_send_timeout 60m; proxy_read_timeout 60m; send_timeout 120s; } location / { proxy_pass http://127.0.0.1:5080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_send_timeout 60m; proxy_read_timeout 60m; } }
SeekTable_ST:PivotDataService:ExternalBaseUrl=/pivotdataservice/
sudo systemctl restart nginx
http://your_host/
.You can easily can enable HTTPS for your SeekTable installation with free Let's Encrypt certificate.
location ~ /.well-known { root /var/www/html; allow all; }
If you have many users that access public reports you may configure NGINX cache to avoid your database server overload with queries produced by SeekTable reporting engine:
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=st_public_report:10m max_size=100m inactive=60m use_temp_path=off;(change the the values if needed)
server
section:
location /public/report/ { proxy_pass http://127.0.0.1:5080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade $cookie_STAuth; proxy_send_timeout 60m; proxy_read_timeout 60m; proxy_cache st_public_report; proxy_cache_valid any 1m; proxy_cache_min_uses 1; proxy_cache_use_stale updating; proxy_cache_background_update on; # comment if your nginx version doesn't support background updates proxy_cache_lock on; add_header X-Frame-Options ""; }