Reference · Beta
Abotlogixfile.json field reference
The public snake_case fields accepted by the current VPServ parser, with exact parser defaults and practical requirements.
Root fields
| Field | Status | Parser default | Use |
|---|---|---|---|
project_name | Optional with a default | The saved project name supplied by VPServ | A readable name for the prepared project. When it is omitted, VPServ uses the project title it passed to the parser. |
app_url | Optional with a default | http://127.0.0.1:8000 | The project URL VPServ can present for opening. It does not change a service command or configure a tunnel port. |
services | Required | None | The array of processes VPServ should prepare and start. Each service needs a name and a command array; a working service also needs an executable as its first command item. |
setup_commands | Optional with a default | [] | One-time command argument arrays that run before services. Omit this field when no preparation is needed. |
tunnel | Optional | Absent / no tunnel | Named Cloudflare tunnel configuration. Local-only projects can omit it entirely. |
The parser requires services. It supplies defaults for the optional fields above, so do not add empty fields simply because a Kotlin model has a non-null property.
services
services is the required array of processes VPServ should prepare and start when the user taps Run Environment. Place services in the order the project needs them processed.
| Field | Status | Parser default | Use |
|---|---|---|---|
name | Required | None | A readable service label used to identify the configured process. |
command | Required | None | A required argument array. For a working service, put the executable first, followed by one argument per array item. |
delay_after_start_ms | Optional with a default | 0 | A fixed pause in milliseconds after the service launch step. It is not a service health check. |
init_scripts | Optional with a default | [] | Existing project-root-relative .sql files for the MariaDB initialization path. Omit it when no SQL initialization is needed. |
tool_id | Optional with a default | The basename of command[0] | An advanced override for supported-tool lookup. Most project authors can omit it and let VPServ use the service executable name. |
{
"name": "php_server",
"command": [
"php",
"-S",
"0.0.0.0:8000",
"-t",
"."
]
}| Correct | Incorrect |
|---|---|
| One executable and one array item per argument | One complete shell command stored as one command item |
| ["php", "-S", "0.0.0.0:8000", "-t", "."] | ["php -S 0.0.0.0:8000 -t ."] |
The first item is the executable. Every remaining item is one argument. The exact argument '.' resolves to the selected project folder. VPServ resolves a relative executable through its private runtime.
setup_commands
setup_commands is an optional list of command argument arrays. Use it only for one-time preparation such as installing project dependencies, preparing project files, or running a supported build step. Commands run before services, in listed order, and use the synchronous setup path.
{
"setup_commands": [
[
"python3.13",
"-m",
"pip",
"install",
"-r",
"{home}/requirements.txt"
]
]
}tunnel
tunnel is optional. Omit it for a local-only project. An enabled tunnel uses the named Cloudflare tunnel path: VPServ prepares cloudflared before services, then starts the configured named tunnel after the service loop and its fixed post-service wait.
| Field | Status | Parser default | Use |
|---|---|---|---|
enabled | Optional with a default | false | Turns the configured named tunnel workflow on or off. |
domain | Conditionally required | "" | The public hostname for a usable enabled named tunnel. The parser accepts an empty value, but an enabled tunnel needs a configured hostname. |
token | Conditionally required | "" | The named tunnel credential for a usable enabled tunnel. Never commit a real token. |
{
"tunnel": {
"enabled": true,
"domain": "app.example.com",
"token": "YOUR_CLOUDFLARE_TUNNEL_TOKEN"
}
}Supported placeholders
| Placeholder | Supported in | Meaning |
|---|---|---|
| {usr} | setup_commands and services | VPServ's internal usr location |
| {bin} | setup_commands only | VPServ's internal binary location |
| {home} | setup_commands and services | The selected project folder |
| . | An exact argument in setup_commands and services | The selected project folder |
For MariaDB initialization, init_scripts only processes existing project-root-relative files whose names end in .sql. VPServ uses the MariaDB client and socket path for that work; it is not a generic shell, Python, JavaScript, PostgreSQL, or Redis script runner.