Checklist for a Meshly-ready Matrix node.
Run through these checks before you hand the node to real users. They focus on what Meshly currently needs most: a reachable client API, a matching Matrix domain, and a working login flow.
Run through these checks before you hand the node to real users. They focus on what Meshly currently needs most: a reachable client API, a matching Matrix domain, and a working login flow.
80, 443, and 8448 are open on the VPS firewall.127.0.0.1:8008 or 127.0.0.1:8081, confirm the installer selected alternate local ports and that your active proxy snippet matches them.curl https://your-homeserver.example/_matrix/client/versions
curl https://your-homeserver.example/_matrix/client/v3/login \
-H 'Content-Type: application/json' \
-d '{"type":"m.login.password","identifier":{"type":"m.id.user","user":"your-user"},"password":"your-password"}'
If login succeeds, keep the access_token and use it to test whoami.
curl https://your-homeserver.example/_matrix/client/v3/account/whoami \
-H "Authorization: Bearer <access-token>"
If you are still using the transitional matrix-only admin flow, also confirm that your active HTTPS vhost forwards /_synapse/admin and that this check returns JSON rather than a reverse-proxy 404.
curl https://your-homeserver.example/_synapse/admin/v1/server_version \
-H "Authorization: Bearer <access-token>"
For meshly-full deployments, confirm that the business API is reachable and that the app can discover capabilities without exposing the raw Synapse Admin API.
curl https://your-homeserver.example/_meshly/client/v1/health
curl https://your-homeserver.example/_meshly/client/v1/capabilities \
-H "Authorization: Bearer <meshly-or-matrix-token>"
Before relying on Meshly for attendance records, also open the generated INSTALLATION_SUMMARY.txt and confirm that it explicitly reports time-tracking persistence as verified on a persistent Docker volume mounted at /data.
meshly-full, keep /_synapse/admin off the public internet and expose only /_meshly/client.meshly-full, keep the time-tracking ledger on a persistent Docker volume and treat a missing /data mount as a deployment blocker, not a minor warning.matrix-only, only expose /_synapse/admin if you accept the security trade-off for the transitional in-app admin view.