2.3. Verifying the install
After starting the service, run through the checks below to confirm that the server came up cleanly, loaded the configuration, and accepts API calls.
2.3.1. Service state
# systemctl status toa-server.service
# journalctl -u toa-server.service --since "-2 min" --no-pager
On a healthy startup the journal contains, among Spring Boot’s own banner and autoconfiguration output:
a line confirming the external configuration was imported, mentioning
file:/opt/toa-server/config/toa-server.yml;for each configured domain, a line from
TemplateServiceshowing that the template catalogue was loaded (either from the localpathor downloaded from the configuredurl);Tomcat started on port 8080andStarted TOAServerApplication in N.NNN seconds.
If the startup log shows a BeanCreationException or a
ConfigurationPropertiesBindException, the root cause is almost
always a typo in toa-server.yml. Correct it and restart with
systemctl restart toa-server.service.
2.3.2. Smoke test - listing domains
GET /domains returns the list of configured domain codes and is
the cheapest end-to-end check. From the server host itself:
$ curl -s http://127.0.0.1:8080/domains | jq
{
"items": [
{ "code": "production", "name": "Production domain" }
]
}
The response must list every domain declared in
toa-server.yml. An empty items array means the configuration
was loaded but no domain was parsed - check the YAML indentation.
2.3.3. Smoke test - through the reverse proxy
Repeat the call through the public HTTPS origin used by the add-in, which confirms the proxy forwarding is in place:
$ curl -s https://addin.customer.cz/api/domains | jq
The two responses must be identical. A mismatch (for example a 404
from the proxy path) means the location /api/ block in the
reverse proxy is missing or misconfigured - review
Hosting the task pane.
2.3.4. Data root
On the first successful request the server creates a subdirectory
per configured domain under dataRoot:
$ sudo -u toa-server ls /var/lib/toa-server/data
production
If the server user cannot create that directory, import requests
will fail with 500 errors later; fix permissions on the data
root before continuing.