Bitfocus AS
logo
logo
Bitfocus AS
logo
logo
Sign upSign in

Loading...

Bitfocus

Subscribe to our newsletter

The latest news, articles, and resources, sent to your inbox.

FacebookInstagramGitHubYouTubeLinkedIn

Products

  • Buttons
  • Companion

Integrations

  • Supported Devices
  • Developer Community
  • Connection Development

Support

  • Support Overview
  • Documentation
  • Video Tutorials
  • Community Forum

Sales

  • Resellers & Integrators
  • Buttons Pricing

Updates

  • Case Studies
  • Events & Trade Shows
  • Press Releases
  • Product Updates
  • Webinars

Legal

  • Legal Overview
  • Privacy Policy
  • Buttons EULA
  • Terms & Cookie Policy

Company

  • About us
  • Press kit
  • Careers

© 2026 Bitfocus AS. All rights reserved.

Startup configuration reference
Docs for
Overview
Getting started
What is Bitfocus Buttons?
Install Buttons and get started
Manage your Buttons license
Activate Buttons offline
Find your way around Buttons
Create your first backup
Add an ATEM connection
Choose a control method
Choose an installation path
Install Buttons on Debian or Ubuntu
Understand HA clustering
Kubernetes HA
Update or remove Buttons
Positions
Understand positions
Create a position
Add controls and sections to a position
Create your first button
Use a connection's presets
Build more capable button actions
Add more feedback to a button
Organize controls in a section
Shift Section
Organize controls with a Folder Section
Add a Popover Section
Build and reuse a Shared Section
Build a Router Section
Understand Custom Routers
Custom Router panel
Surfaces
Surface compatibility
Add and attach a surface
Device orientation
Connections
Update a connection's module safely
Monitor and troubleshoot a connection
Router integrations
VideoHub and AJA KUMO
Utah Scientific BPS
Generic SW-P-08
Nevion VideoIPath
Arkona BLADE//runner
Routing
Physical routing
Configure ports and labels
Take a physical route
Understand route status
Topology graph
Routing Presets
Get started with virtual routing
Configure Nested Shapes
Reverse routing
Tielines
Routing Projects
Routing settings
Troubleshoot a route
Tally
Understand the Tally system
Send ATEM tally and labels to a UMD
Interpret Active Tally state
TSL/UMD connections
Diagnose tally problems
NMOS
Understand NMOS in Buttons
Connect Buttons to an NMOS Registry
Built-in Registry Server
Configure NMOS connections
Discover and adopt
Browse the NMOS inventory
Manage NMOS multicast addresses
Diagnose NMOS problems
Understand Cuelists
Build a Cuelist
Read and advance a running Cuelist
Control a Cuelist from a Position
Workflows
Understand workflows
Build your first workflow
Reuse a group of workflow nodes safely
Troubleshoot a workflow
Recipes
Sequence a timed automation
Call an HTTP endpoint from a workflow
REST endpoint
Use variables
Understand variable scope
Understand nested variables
Update expressions for v1.8
Plan and use Tags
Access
Create and manage users
Create roles and assign permissions
Grant access to specific resources
Show different controls by role
Sessions
Set up PIN and NFC sign-in
SSO
Get started with SSO
Connect a generic OIDC provider
Connect LDAP or Active Directory
Map identity claims to roles
Secure a Buttons deployment
Integrations
External control
Connect to Bitfocus Listener
USB Relay
Install USB Relay on Windows
Install USB Relay on macOS
Install USB Relay on Linux
Install USB Relay on a Raspberry Pi
Get started with the Control API
Secure and monitor the Control API
Control API reference
API reference
Administration
Enable and manage installable features
Services and health
Configure and monitor scheduled backups
Restore a backup and verify it
Export or import Buttons configuration
Store and rotate connection secrets
Replace the HTTPS certificate
HA backup and recovery
Settings
Collect support information
Reference
Glossary
Button Inspector reference
Network ports reference
Expressions
Internal actions reference
Routing Presets panel reference
Startup configuration reference
Workflow nodes
Connection workflow nodes
Workflow workflow nodes
Internal workflow nodes
Position workflow nodes
API workflow nodes
Utility workflow nodes

Loading...

Previous
← Routing Presets panel reference
Next
Workflow nodes →
Contact support →
You are viewing documentation for Buttons 1.8.See the docs for Buttons 1.6
Buttons/Reference/Startup configuration reference

Startup configuration reference

This page covers configuration that's set at launch, before Buttons is running, for packaged and headless deployments: command-line flags, environment variables, and port derivation. It doesn't cover the in-app Settings pages you configure once Buttons is already running; those are documented throughout the rest of this Settings section.

Headless CLI flags (watchdog-cli)#

The headless Linux binary takes two required positional arguments and a set of flags. Flags can be written as -name or --name, in any position:
watchdog-cli [options] <address> <port>
  • <address>: the listen address: 0.0.0.0 (all interfaces), localhost, or 127.0.0.1. No other value is accepted.
  • <port>: the HTTP port for the editor, 1–65535.
Flag
Default
What it does
-httpsPort
none
HTTPS port for the editor. If omitted, HTTPS uses the HTTP port plus three (for example, HTTP 8000 → HTTPS 8003).
-publicHostname
empty
The hostname this installation is reachable at.
-publicEndpoint
empty
Used for redirecting after signing in.
-logsDir
none
Overrides the logs directory path.
-databaseDir
none
Overrides the database directory path.
-modulesDir
none
Overrides the modules directory path.
-processesFile
none
Points at a specific processes.json file, overriding the PROCESSFILE environment variable.
-migrate
none
When upgrading, imports the configuration shown under that number in the console (only importable configurations are numbered). Use 0 for a new, empty configuration.
-help
none
Shows the full help text and exits.

Note

This page describes watchdog-cli, the headless binary used for Linux and Docker-based deployments. The packaged macOS/Windows desktop app takes no command-line flags at all: its equivalent settings are configured live through its own Environment Settings screen instead, covered next.

Environment variables#

Variable
Controls
Default if unset
PROCESSFILE
Path to the processes.json topology file (see below). Overridden by -processesFile if both are set.
processes.json, relative to the executable
WWW_PORT
Initial HTTP port: only read the very first time the packaged desktop app starts, before it has its own saved configuration.
4440
WWW_HTTPS_PORT
Initial HTTPS port, same first-run-only scope as WWW_PORT.
HTTP port + 3
EDITOR_HOSTNAME
Initial public hostname, same first-run-only scope.
empty
EDITOR_PUBLIC_ENDPOINT
Initial public endpoint, same first-run-only scope.
empty
STORAGE_PATH
Base directory for the login keypair and other stored configuration.
./storage

Note

WWW_PORT, WWW_HTTPS_PORT, EDITOR_HOSTNAME, and EDITOR_PUBLIC_ENDPOINT only matter on the packaged desktop app's very first launch, before it has saved its own configuration file. After that first run, the same settings are edited live through that app's own Environment Settings screen instead: these environment variables have no effect on a system that's already been configured once.

Port derivation#

HTTPS defaults to the HTTP port plus three: set <port> to 8000 and, unless you override it, HTTPS listens on 8003. This same relationship applies whether the port comes from the CLI's positional argument or from WWW_PORT/WWW_HTTPS_PORT on first launch.

Configuration files#

  • The packaged desktop app persists its own settings (listen address, ports, hostname, public endpoint) to a configuration file it manages itself, edited through its Environment Settings screen: not something you hand-edit directly.
  • processes.json describes the full set of child processes Buttons runs and how they're wired together. This file is generated at build time and shipped inside the release package: it's an internal deployment artifact, not a documented, hand-editable configuration surface. The only supported override is its location, via -processesFile or the PROCESSFILE environment variable, useful if you need to point at a custom copy in a containerized deployment.

If you get stuck#

What you see
What to try
You want to see every available flag at a glance.
Run watchdog-cli -help (or --help).
You set WWW_PORT or a related environment variable, but it had no effect.
These only apply on the very first launch before a configuration file exists: after that, change them through the app's own Environment Settings screen instead.
HTTPS is listening on a port you didn't expect.
Confirm whether you set -httpsPort explicitly: without it, HTTPS is always the HTTP port plus three.
You need Buttons to use a custom processes.json.
Point at it with -processesFile or PROCESSFILE rather than editing the shipped copy in place.

Where to go next#

  • Network ports reference, for every port Buttons and its companion tools use, and how these ports fit into the rest.
  • Install Buttons on Debian or Ubuntu
  • First-time setup

Was this helpful?

Was this helpful?

0 of 0 users found this page helpful