Deployment
Oidis Builder uploads built packages to deploy servers (Oidis Hub instances) using the deploy task.
Three server profiles are supported: prod, eap, and dev.
Server Configuration
Configure deploy servers in package.conf.jsonp (or private.conf.jsonp for credentials):
"deploy": {
"server": {
"prod": {
"location": "https://hub.oidis.io",
"user": "",
"pass": ""
},
"eap": {
"location": "https://hub.eap.oidis.io",
"user": "",
"pass": ""
},
"dev": {
"location": "https://hub.dev.oidis.io",
"user": "",
"pass": ""
}
},
"agentsHub": "https://services.oidis.io",
"chunkSize": 0
}
Never commit credentials (user, pass) to git. Put them in private.conf.jsonp which is excluded from version control.
In private.conf.jsonp:
Io.Oidis.Builder.DAO.Resources.Data({
$interface: "IProjectSolution",
"deploy": {
"server": {
"prod": { "user": "myuser", "pass": "mytoken" },
"dev": { "user": "myuser", "pass": "mytoken" },
"eap": { "user": "myuser", "pass": "mytoken" }
}
}
});
Basic Deploy Commands
oidis deploy # deploy to EAP (default)
oidis deploy:dev # deploy to dev server
oidis deploy:eap # deploy to EAP server
oidis deploy:prod # deploy to production server
When no action is specified, deploy runs:
config-deploy:<type>— upload project configuration filestarget-deploy:<type>— upload the build package (ZIP archive)
The package is uploaded in chunks (deploy.chunkSize controls chunk size in bytes, 0 = auto).
A config-deploy on a running Hub application does not reach the application's runtime: EnvironmentHelper parses each JSONP configuration once and keeps it for the lifetime of the process. Press Reset configs cache in the dashboard Registry tab afterwards — it drops the cache for the whole runtime, so the SPA, the standalone pages and everything else serve the deployed content. A full deploy restarts the application, so there the button is not needed.
Package Management Actions
Use --action to perform operations on already-deployed packages instead of uploading:
List Packages
oidis deploy:prod --action=list
oidis deploy:prod --action=list --filter=name=my-project
oidis deploy:dev --action=list --filter=name=my-project,version=2026.0.1
oidis deploy:eap --action=list --filter=platform=app-linux-nodejs
Output: a table with columns Id, Name, Platform, Version, BuildTime, Release.
Filter fields:
| Field | Description |
|---|---|
name | Project/application name |
version | Package version |
platform | Build platform (e.g., app-win-nodejs) |
release | Release name |
buildtime | Build timestamp |
id | Package ID |
Get Download URL
oidis deploy:prod --action=geturl --filter=name=my-project,version=2026.0.1
oidis deploy:prod --action=geturl --id=42
Prints the direct download URL for the matched package.
Redeploy (Copy Between Servers)
Copy a package from one server to another:
oidis deploy:eap --action=redeploy --filter=name=my-project --upload-to=prod
oidis deploy:prod --action=redeploy --id=42 --upload-to=dev
oidis deploy:prod --action=redeploy --id=42 --upload-to=https://my-custom-hub.io
--upload-to accepts: dev, eap, prod (uses configured server URL), or a direct URL.
Get API Methods
For Node.js packages — retrieves registered API methods:
oidis deploy:prod --action=getmethods --filter=name=my-project
Deploy in Build Pipeline
Deployment can be integrated into the build pipeline. The build task does not deploy automatically — you must run deploy separately after a successful build:
oidis build prod && oidis deploy:prod
Or configure CI to run them in sequence:
oidis rebuild-eap
oidis deploy:eap
Update Deploy
The updates section in deploy configures update delivery to agents via Oidis Hub:
"deploy": {
"updates": [
{
"name": "my-update",
"skipped": false,
"register": "hub",
"location": {
"path": {
"prod": "https://hub.oidis.io",
"dev": "https://hub.dev.oidis.io"
},
"projectName": "my-project",
"releaseName": "Win64",
"platform": "app-win-nodejs"
},
"agents": [
{
"hub": "https://hub.oidis.io",
"name": "my-agent",
"profile": "prod"
}
],
"app": {
"name": "MyApp",
"path": "C:/Program Files/MyApp",
"args": ["--production"]
},
"postDeployScript": "resource/scripts/post-deploy.js"
}
]
}
Run with:
oidis task update-deploy
Authentication
The deploy task signs in to the deploy server automatically using user and pass from the server
config. Authentication uses Oidis Hub's AuthManagerConnector (JWT-based token).
If credentials are empty, the deploy proceeds without authentication (for publicly accessible servers).
Chunk Upload
Large packages are uploaded in chunks to avoid HTTP timeouts. Configure chunk size:
"deploy": {
"chunkSize": 5242880
}
Value is in bytes. Default (0) lets the server determine the chunk size. Recommended: 5242880 (5 MB).
solutionsLocation
solutionsLocation defines where the default solution is deployed for oidis run. Set in
private.conf.jsonp:
"solutionsLocation": "D:/deployed-apps/my-project"
This is typically the path where a locally installed/running instance of the app resides. The run
task uses this path to find and restart the app after a dev build.
See also: Docker and CI | Build Process | Configuration