.. _install-verify: ===================== 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. Service state ============= .. code-block:: console # 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 ``TemplateService`` showing that the template catalogue was loaded (either from the local ``path`` or downloaded from the configured ``url``); * ``Tomcat started on port 8080`` and ``Started 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``. 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: .. code-block:: console $ 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. 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: .. code-block:: console $ 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 :ref:`client-hosting`. Data root ========= On the first successful request the server creates a subdirectory per configured domain under ``dataRoot``: .. code-block:: console $ 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.