Do you want to: Ask a how-to question
Document Server version: BASE_VERSION=“24.04”
Type of installation of the Document Server: Podman container (as root)
guide that you used as well): Running ONLYOFFICE Docs with Podman on Fedora - ONLYOFFICE
OS: Rocky Linux 9.5
Browser version: Brave 1.75
Additional information:
Any relevant details about the situation. If you’ve modified configuration files or are using a proxy server that might affect the situation, please mention it. You can also attach images and videofile to the post (or to place them to external storage)
I am in the process of migrating my onlyoffice instance from one podman host to another. and for some reason I am struggling with a cURL error:
Error when trying to connect (cURL error 3: URL using bad/illegal format or missing URL (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://docs.example.tld.com, docs.example.tld.com/cache/files/data/conv_check_549371786_65/output.docx/check_549371786.docx?md5=3-iVPpMlGKleGQg6rp80cw&expires=1741105931&filename=check_549371786.docx) (version 8.3.1.25)
This pops up in the UI of nextcloud when saving the config.
Yet, I can run the healthcheck curl command fine from within the nextcloud instance:
[ansible@Podman nextcloud]$ podman exec -it -u www-data nextcloud-app bash
www-data@nextcloud:~/html$ curl https://docs.example.tld.com/healthcheck
true
Curl command works fine hosted on either server.
I checked all the obvious stuff like firewalld ports, routes. The reverse proxy is the same, with same certificate, same upstream server, the only thing that changes is the address of the upstream server, from the old to the new server.
Here is how the container is launched on both hosts
podman run --detach -e JWT_SECRET="mySecretToken" --restart on-failure --volume office-pvc:/var:Z -p 8088:80 -u root --name onlyoffice docker.io/onlyoffice/documentserver:latest
Same port mappings, same proxy, same token, same docker image, just a different host. I know I must be missing something, but this one has me stumped. Both hosts the container is run as root (had no luck running it rootless). Same UID on both hosts, same Podman version (5.2.2).
The reverse proxy if it matters is running nginx 1.22
Here is the reverse proxy config: - I have run the same config in production for a few years without issue, whether native installs of onlyoffice, or docker instances and it has worked fine:
upstream docserver {
server 192.168.51.55:8088; # ip of the Podman host running OO
}
map $http_host $this_host {
"" $host;
default $http_host;
}
map $http_x_forwarded_proto $the_scheme {
default $http_x_forwarded_proto;
"" $scheme;
}
map $http_x_forwarded_host $the_host {
default $http_x_forwarded_host;
"" $this_host;
}
map $http_upgrade $proxy_connection {
default upgrade;
"" close;
}
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $the_host;
proxy_set_header X-Forwarded-Proto $the_scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
server { # OnlyOffice
listen 0.0.0.0:443 ssl;
listen [::]:443 ssl;
server_name docs.example.tld.com;
server_tokens off;
root /usr/share/nginx/html;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/letsencrypt/live/docs.example.tld.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/docs.example.tld.com/privkey.pem; # managed by Certbot
# ssl_ciphers EECDH+CHACHA20:EECDH+AESGCM:EDH+AESGCM:AES256+EECDH;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/dh2048_param.pem;
ssl_session_cache builtin:1000 shared:SSL:10m;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options nosniff;
location / {
proxy_pass http://docserver;
proxy_http_version 1.1;
}
}
Some log output from the reverse proxy node:
108.162.xx.xx - - [04/Mar/2025:11:48:17 -0500] "GET /ocs/v2.php/apps/notifications/api/v2/notifications HTTP/2.0" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
172.71.xx.xx - - [04/Mar/2025:11:48:19 -0500] "GET /healthcheck HTTP/2.0" 200 4 "-" "Nextcloud Server Crawler"
172.71.xx.xx - - [04/Mar/2025:11:48:19 -0500] "POST /coauthoring/CommandService.ashx HTTP/2.0" 200 52 "-" "Nextcloud Server Crawler"
172.68.xx.xx - - [04/Mar/2025:11:48:19 -0500] "GET /apps/onlyoffice/empty?doc=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY3Rpb24iOiJlbXB0eSJ9.ghFB818FBanY265leMX7xl82o_mDIFc-Qgf67U9tDWg HTTP/2.0" 200 6940 "-" "Node.js/6.13"
172.68.xx.xx - - [04/Mar/2025:11:48:20 -0500] "POST /converter HTTP/2.0" 200 207 "-" "Nextcloud Server Crawler"
108.162.xx.xx - - [04/Mar/2025:11:48:20 -0500] "PUT /apps/onlyoffice/ajax/settings/address HTTP/2.0" 200 360 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
Log output from podman logs onlyoffice of the non-working instance:
Generating WOPI private key...Done
Generating WOPI public key...Done
* Starting PostgreSQL 16 database server
...done.
* Starting RabbitMQ Messaging Server rabbitmq-server
...done.
Connection to localhost (::1) 5432 port [tcp/postgresql] succeeded!
Connection to localhost (::1) 5672 port [tcp/amqp] succeeded!
psql:/var/www/onlyoffice/documentserver/server/schema/postgresql/removetbl.sql:4: NOTICE: table "doc_callbacks" does not exist, skipping
psql:/var/www/onlyoffice/documentserver/server/schema/postgresql/removetbl.sql:9: NOTICE: function merge_db(pg_catalog.varchar,int2,int8,pg_catalog.timestamp,pg_catalog.varchar,int8,int8) does not exist, skipping
psql:/var/www/onlyoffice/documentserver/server/schema/postgresql/removetbl.sql:10: NOTICE: function merge_db(pg_catalog.varchar,int2,int4,pg_catalog.timestamp,pg_catalog.varchar,int4,int4) does not exist, skipping
psql:/var/www/onlyoffice/documentserver/server/schema/postgresql/removetbl.sql:11: NOTICE: function merge_db(pg_catalog.varchar,int2,int4,pg_catalog.timestamp,int4,int4,text,text) does not exist, skipping
Starting supervisor: supervisord.
* Starting periodic command scheduler cron
...done.
* Starting nginx nginx
...done.
Generating AllFonts.js, please wait...Done
Generating presentation themes, please wait...Done
Generating js caches, please wait...Done
ds:docservice: stopped
ds:docservice: started
ds:converter: stopped
ds:converter: started
* Reloading nginx configuration nginx
...done.
Installing plugins, please wait...Done
* Reloading nginx configuration nginx
...done.
==> /var/log/onlyoffice/documentserver/converter/err.log <==
==> /var/log/onlyoffice/documentserver/converter/out.log <==
[2025-03-04T16:00:08.119] [WARN] [localhost] [docId] [userId] nodeJS - num of CPUs: 4; availableParallelism: undefined
[2025-03-04T16:00:08.121] [WARN] [localhost] [docId] [userId] nodeJS - update cluster with 1 workers
[2025-03-04T16:00:08.134] [WARN] [localhost] [docId] [userId] nodeJS - worker 752 started.
[2025-03-04T16:00:08.135] [WARN] [localhost] [docId] [userId] nodeJS - num of CPUs: 4; availableParallelism: undefined
[2025-03-04T16:00:08.136] [WARN] [localhost] [docId] [userId] nodeJS - update cluster with 1 workers
[2025-03-04T16:00:26.664] [WARN] [localhost] [docId] [userId] nodeJS - num of CPUs: 4; availableParallelism: undefined
[2025-03-04T16:00:26.666] [WARN] [localhost] [docId] [userId] nodeJS - update cluster with 1 workers
[2025-03-04T16:00:26.673] [WARN] [localhost] [docId] [userId] nodeJS - worker 861 started.
[2025-03-04T16:00:26.673] [WARN] [localhost] [docId] [userId] nodeJS - num of CPUs: 4; availableParallelism: undefined
[2025-03-04T16:00:26.674] [WARN] [localhost] [docId] [userId] nodeJS - update cluster with 1 workers
==> /var/log/onlyoffice/documentserver/docservice/err.log <==
==> /var/log/onlyoffice/documentserver/docservice/out.log <==
[2025-03-04T16:00:08.758] [WARN] [localhost] [docId] [userId] nodeJS - Express server starting...
[2025-03-04T16:00:08.764] [WARN] [localhost] [docId] [userId] nodeJS - notifyLicenseExpiration(): expiration date is not defined
[2025-03-04T16:00:08.764] [WARN] [localhost] [docId] [userId] nodeJS - notifyLicenseExpiration(): expiration date is not defined
[2025-03-04T16:00:08.942] [WARN] [localhost] [docId] [userId] nodeJS - Express server listening on port 8000 in production-linux mode. Version: 8.3.1. Build: 25
[2025-03-04T16:00:25.108] [WARN] [localhost] [docId] [userId] nodeJS - Express server starting...
[2025-03-04T16:00:25.112] [WARN] [localhost] [docId] [userId] nodeJS - notifyLicenseExpiration(): expiration date is not defined
[2025-03-04T16:00:25.112] [WARN] [localhost] [docId] [userId] nodeJS - notifyLicenseExpiration(): expiration date is not defined
[2025-03-04T16:00:25.230] [WARN] [localhost] [docId] [userId] nodeJS - Express server listening on port 8000 in production-linux mode. Version: 8.3.1. Build: 25
==> /var/log/onlyoffice/documentserver/nginx.error.log <==
podman logs onlyoffice for the working instance:
Generating WOPI private key...Done
Generating WOPI public key...Done
* Starting PostgreSQL 14 database server
...done.
* Starting RabbitMQ Messaging Server rabbitmq-server
...done.
psql:/var/www/onlyoffice/documentserver/server/schema/postgresql/removetbl.sql:4: NOTICE: table "doc_callbacks" does not exist, skipping
psql:/var/www/onlyoffice/documentserver/server/schema/postgresql/removetbl.sql:9: NOTICE: function merge_db(pg_catalog.varchar,int2,int8,pg_catalog.timestamp,pg_catalog.varchar,int8,int8) does not exist, skipping
psql:/var/www/onlyoffice/documentserver/server/schema/postgresql/removetbl.sql:10: NOTICE: function merge_db(pg_catalog.varchar,int2,int4,pg_catalog.timestamp,pg_catalog.varchar,int4,int4) does not exist, skipping
psql:/var/www/onlyoffice/documentserver/server/schema/postgresql/removetbl.sql:11: NOTICE: function merge_db(pg_catalog.varchar,int2,int4,pg_catalog.timestamp,int4,int4,text,text) does not exist, skipping
Starting supervisor: supervisord.
* Starting periodic command scheduler cron
...done.
* Starting nginx nginx
...done.
Generating AllFonts.js, please wait...Done
Generating presentation themes, please wait...Done
Generating js caches, please wait...Done
ds:docservice: stopped
ds:docservice: started
ds:converter: stopped
ds:converter: started
* Reloading nginx configuration nginx
...done.
Installing plugins, please wait...Done
* Reloading nginx configuration nginx
...done.
==> /var/log/onlyoffice/documentserver/converter/err.log <==
==> /var/log/onlyoffice/documentserver/converter/out.log <==
[2025-03-04T16:01:12.376] [WARN] [localhost] [docId] [userId] nodeJS - num of CPUs: 4; availableParallelism: undefined
[2025-03-04T16:01:12.379] [WARN] [localhost] [docId] [userId] nodeJS - update cluster with 1 workers
[2025-03-04T16:01:12.388] [WARN] [localhost] [docId] [userId] nodeJS - worker 752 started.
[2025-03-04T16:01:12.389] [WARN] [localhost] [docId] [userId] nodeJS - num of CPUs: 4; availableParallelism: undefined
[2025-03-04T16:01:12.389] [WARN] [localhost] [docId] [userId] nodeJS - update cluster with 1 workers
[2025-03-04T16:01:30.718] [WARN] [localhost] [docId] [userId] nodeJS - num of CPUs: 4; availableParallelism: undefined
[2025-03-04T16:01:30.720] [WARN] [localhost] [docId] [userId] nodeJS - update cluster with 1 workers
[2025-03-04T16:01:30.726] [WARN] [localhost] [docId] [userId] nodeJS - worker 861 started.
[2025-03-04T16:01:30.727] [WARN] [localhost] [docId] [userId] nodeJS - num of CPUs: 4; availableParallelism: undefined
[2025-03-04T16:01:30.727] [WARN] [localhost] [docId] [userId] nodeJS - update cluster with 1 workers
==> /var/log/onlyoffice/documentserver/docservice/err.log <==
==> /var/log/onlyoffice/documentserver/docservice/out.log <==
[2025-03-04T16:01:12.764] [WARN] [localhost] [docId] [userId] nodeJS - Express server starting...
[2025-03-04T16:01:12.772] [WARN] [localhost] [docId] [userId] nodeJS - notifyLicenseExpiration(): expiration date is not defined
[2025-03-04T16:01:12.773] [WARN] [localhost] [docId] [userId] nodeJS - notifyLicenseExpiration(): expiration date is not defined
[2025-03-04T16:01:12.916] [WARN] [localhost] [docId] [userId] nodeJS - Express server listening on port 8000 in production-linux mode. Version: 8.2.2. Build: 22
[2025-03-04T16:01:29.196] [WARN] [localhost] [docId] [userId] nodeJS - Express server starting...
[2025-03-04T16:01:29.200] [WARN] [localhost] [docId] [userId] nodeJS - notifyLicenseExpiration(): expiration date is not defined
[2025-03-04T16:01:29.200] [WARN] [localhost] [docId] [userId] nodeJS - notifyLicenseExpiration(): expiration date is not defined
[2025-03-04T16:01:29.318] [WARN] [localhost] [docId] [userId] nodeJS - Express server listening on port 8000 in production-linux mode. Version: 8.2.2. Build: 22
==> /var/log/onlyoffice/documentserver/nginx.error.log <==
Does not seem to be a network issue, since I can netcat in on port 8088 fine, and run the curl healthcheck without issues.
Anyone see what I am missing?
Thanks