Configuring Your Application
Your application isn't just about the code — it's also about how it runs. This section covers the essential configurations that define its behaviour, from environment variables and deployment files, to worker processes and background jobs.
Here, you'll learn how to set up and fine-tune your app's internal mechanics to ensure smooth operation.
Configuration Methods
Deploio provides multiple ways to configure your application:
1. nctl (CLI)
Using the nctl CLI tool, you can configure your application through commands. This is ideal for automation and scripting, for example retrieving environment variables from your current platform, and applying them at application creation.
# Example: Creating an app with configuration
nctl create app my-app --project my-project \
--env=DATABASE_URL:"postgres://user:password@host/db" \
--build-env=NODE_ENV:"production" \
--port=3000 \
--basic-auth
app is short for application. nctl also works if you use the long name nctl create application my-app ....
2. Cockpit (GUI)
The Deploio Cockpit provides a user-friendly interface for configuring your application.
Once the application is created, you can go to the Application page, and use the tabs, and the edit page to configure the application.
The following tabs are available for configuration:
Application Tabs
| Tab | Description |
|---|---|
| Git | Configure the git repository URL and authentication details for your application |
| Hosts | Manage deployment hosts and view DNS configuration records (TXT and CNAME) for your domain registrar |
| Configuration | Manage environment variables, build variables, and basic application settings (auth, port, replicas, size). Shows the source of each setting (default ordeploio.yaml) |
| Static Egress | Configure static IP addresses for outbound traffic.Learn more about static egress |
| Jobs | View worker and scheduled jobs. For configuration, useCLI or deploio.yaml |
| Dockerfile Build | View build options for Dockerfile-based applications. Configure using--dockerfile-path and --dockerfile-build-context flags. Learn more about Dockerfile builds |
| Logs | Access real-time application logs |
| Builds | Monitor build status and history |
| Releases | Track application releases and their status |
Edit page
You can also use the edit button on the top right of the page to edit the application.

Here you can add a deploy job, worker jobs, scheduled jobs, as well as the basic configuration for your application (port, replicas, size, basic auth, etc).
3. deploio.yaml
A Git-tracked configuration file that can be stored alongside your application code. It can be stored alongside your application code, and will be read by the build system when building the application.
This allows you to have all the configuration in one YAML file, and not have to use the CLI or Cockpit to configure your application.
The deploio.yaml file specifies the default values. If you overwrite a setting in the admin GUI or command line, they take precedence over the defaults from the file.
You can use this file to:
- Define default environment variables
- Enable basic authentication
- Set application configuration (e.g. size, port, replicas)
- Set up a deploy job
- Define background jobs (workers)
- Define scheduled jobs (cron jobs)
Below is an example of a deploio.yaml file. You can see an up-to-date list of fields that can be used in the API docs.
# Application size (micro, mini, standard-1, standard-2)
size: micro
# Port the app is listening on.
port: 8080
## Sets the amount of replicas of the running app.
replicas: 1
# Env variables which are passed to the app at runtime.
env:
- name: RESPONSE_TEXT
value: "Hello from a Deploio app!"
# enables basic authentication for the application - recommended to protect applications that are not yet productive
enableBasicAuth: true
# A job that runs before a new release gets deployed.
deployJob:
name: "hello"
command: echo "Hello from a Deploio app!
# A job that runs in the background non-stop.
workerJobs:
- name: "sidekiq-worker"
command: "bundle exec sidekiq -e production -C config/sidekiq.yml"
# A job that is set to run at specific times.
scheduledJobs:
- name: "daily-backup"
schedule: "0 3 * * *"
command: /app/backup.sh
4. Procfile
Deploio only supports the web process type in Procfile. The worker and release process types are not supported. We strongly recommend using deploio.yaml instead, which provides full support for all process types including:
- Web processes
- Worker jobs
- Deploy jobs
- Scheduled jobs
For local development, you can use Procfile.dev to maintain your development environment configuration.
A Procfile is a simple text file that specifies the commands that should be executed to start your application. Each line in the Procfile follows the format:
<process type>: <command>
Process Types
web: The main web process that handles HTTP requests. This is the only process type supported in Procfile.worker: Not supported in Procfile. Usedeploio.yamlto configure worker jobs instead.release: Not supported in Procfile. Usedeploio.yamlto configure deploy jobs instead.
Example
web: bundle exec puma -C config/puma.rb
A number of configuration options use the cron syntax. You can see more information about the syntax here.
Configuration Topics
Process Failure Handling
Deploio automatically handles process failures for both web and worker processes:
- If a process crashes or becomes unreachable on its specified port, Deploio will automatically attempt to restart it
- A back-off strategy is implemented, which increases the time between restart attempts until it eventually gives up
- This applies to both web and worker processes
Environment Variables
Environment variables allow you to customize your application's behavior between environments (e.g. development, staging production) without changing code.