Skip to main content

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
}
warning

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:

  1. config-deploy:<type> — upload project configuration files
  2. target-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:

FieldDescription
nameProject/application name
versionPackage version
platformBuild platform (e.g., app-win-nodejs)
releaseRelease name
buildtimeBuild timestamp
idPackage 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