Get started with Volteec
Volteec is a read-only UPS status viewer. It connects to your self-hosted Volteec Backend. No accounts by default. No cloud by default.
If you get stuck, email [email protected].
What you need
- A UPS connected to a machine on your network.
- A running Volteec Backend instance reachable from your iPhone/iPad.
- A backend server URL and an API token (Authorization: Bearer token).
- (Optional) Relay credentials if you want push notifications.
Setup steps
1) Prepare a UPS data source (NUT)
Connect your UPS to a machine on your network and configure NUT (Network UPS Tools). Make sure you can list UPS names (for example with upsc -l <NUT_HOST>). You will use those names in NUT_UPS.
2) Run the Volteec Backend
Run the backend in Docker with Postgres. Copy .env.example to .env and set at least: API_TOKEN, DEVICE_TOKEN_KEY, and your NUT settings (NUT_HOST, NUT_UPS). Then run migrations and start the app.
Verify the backend:
GET /healthreturnsokGET /readyreturnsreadyGET /v1/statusworks withAuthorization: Bearer <API_TOKEN>
3) Ensure client reachability
Your iPhone/iPad must be able to reach the backend URL. If you access it remotely, use secure remote access (for example a VPN or a secure reverse proxy) and HTTPS.
4) Add the server in the app
In Volteec, add a server and enter the backend server URL and API token exactly as configured in the backend .env.
5) Test and verify
Use “Test Connection” in the app. If the backend is configured correctly, you should see your UPS list and status updating. You can also verify directly with the backend API (GET /v1/ups with Bearer auth).
Push notifications (optional)
Volteec works without push. If you want push alerts, you must configure Relay credentials in the backend (RELAY_TENANT_ID, RELAY_TENANT_SECRET, RELAY_SERVER_ID) using the values provided by the app. Without Relay, Volteec remains a read-only status viewer.
Troubleshooting quick checks
If “Test Connection” fails
- Confirm the backend URL is correct and reachable from the same network (or via your secure remote access).
- Confirm the token matches
API_TOKENand you are sendingAuthorization: Bearer <token>. - Confirm backend readiness:
GET /readyreturnsready.
If /ready is not ready
- Confirm Postgres is running and migrations were executed.
- Confirm
API_TOKENis set. If it is missing, the backend runs in degraded mode and/v1/*routes are disabled.
If the UPS is missing
- Confirm
NUT_HOSTandNUT_UPSare correct (UPS names must match your NUT server). - Confirm the backend can reach NUT on port
3493(or your configuredNUT_PORT). - Check backend logs for NUT connection errors/timeouts.
Need help?
Email us and include your iOS version, backend version, how you run it (Docker/other), and the exact error message.
