Quick start
Requirements
- iOS 17+ / iPadOS 17+ / macOS 14+
- Your service’s manifest URL (over HTTPS)
- An access token, if the panel is private
Connecting a service
- Settings → Choose service → Add.
- Enter the manifest URL, for example
https://panel.example.com/vaktor/manifest.json(or scan a QR code). - If the panel is private — sign in on the server-driven login page; tokens go
into an isolated vault (
refresh— in Keychain). - Vaktor loads the manifest, shows the tabs, and opens on the first page.
Minimal contract
Manifest:
{
"contract_version": "0.1.0",
"service": {
"id": "demo",
"name": "Demo",
"root_page": "/pages/home"
}
}
Page /pages/home:
{
"contract_version": "0.1.0",
"page": {
"id": "home",
"title": "Summary",
"items": [
{
"type": "section",
"header": "Status",
"items": [
{
"type": "status",
"label": "Database",
"role": "success"
},
{
"type": "metric",
"title": "Online",
"value": "128",
"trend": "+12%",
"sentiment": "positive"
}
]
}
]
}
}
Without
tabs — a single page from
root_page with no tab bar. Add tabs to get several
sections. See Service manifest.Dev mode
To debug a contract you can load a local page fixture by URL — without registering a service. Edit the JSON → drag it into the app → see the render immediately.