Skip to content

Getting Started with OpenAVC

OpenAVC is an open-source control platform for AV spaces. Install it on a PC, mini PC, or server, open a browser, and start building. No proprietary processors or licenses required.

Choose Your Installation Method

MethodBest ForTime
Windows InstallerAV rack PCs, mini PCs, laptops2 minutes
DockerServers, multi-room deployments2 minutes
Linux Install ScriptDedicated Linux machines3 minutes
From SourceDevelopment, contributing5 minutes

All methods are functionally identical. Choose whatever fits your environment.

Windows Installer

The fastest way to get started on Windows.

  1. Download OpenAVC-Setup-x.x.x.exe from GitHub Releases
  2. Run the installer and follow the prompts
  3. OpenAVC starts automatically as a Windows service

What the installer does:

  • Installs to C:\Program Files\OpenAVC
  • Stores project data in C:\ProgramData\OpenAVC
  • Creates a Windows service (OpenAVC) that starts automatically on boot
  • Adds a system tray app for quick access to the web interface
  • Opens Windows Firewall for port 8080
  • Creates Start Menu and optional Desktop shortcuts

After installation, open http://localhost:8080/programmer in your browser to start building.

The Windows installer pre-configures OpenAVC to accept connections from other devices on the network (tablets, phones, other PCs). If you only need local access, no configuration changes are needed.

Docker

Linux Docker hosts only — see Deployment for the Docker Desktop limitation on Windows and Mac. Download the compose file and start it:

Terminal window
curl -fsSL https://raw.githubusercontent.com/open-avc/openavc/main/installer/docker-compose.yml -o docker-compose.yml
docker compose up -d

The compose file ships with network_mode: host and cap_add: NET_RAW so device discovery and mDNS can reach AV equipment on your LAN. Don’t strip those out — discovery won’t work without them.

The container binds to 0.0.0.0 by default (network-accessible). Access at http://<host-ip>:8080/programmer.

For serial/USB device passthrough, add devices: ["/dev/ttyUSB0:/dev/ttyUSB0"] to the compose file.

Linux Install Script

One command to install on any Linux machine:

Terminal window
curl -sSL https://get.openavc.com | sudo bash

This installs OpenAVC to /opt/openavc, creates a systemd service, and starts the server. Data is stored in /var/lib/openavc. The service starts automatically on boot.

After installation:

Terminal window
sudo systemctl status openavc # Check status
sudo journalctl -u openavc -f # View logs

Access at http://localhost:8080/programmer. By default, the server only accepts local connections. To allow network access from tablets and other devices, set the bind address:

Terminal window
sudo systemctl edit openavc
# Add: Environment=OPENAVC_BIND=0.0.0.0
sudo systemctl restart openavc

Install from Source

For development or when you want full control over the installation.

Prerequisites

ToolWhat It DoesWhere to Get It
Python 3.11+Runs the OpenAVC serverpython.org/downloads
Node.js 18+Builds the web interfacesnodejs.org
GitDownloads the OpenAVC source codegit-scm.com

When installing Python, check “Add Python to PATH” when prompted. For Node.js, the default installer settings are fine.

Download and Build

Open a terminal (PowerShell on Windows, Terminal on Mac/Linux) and run:

Terminal window
git clone https://github.com/open-avc/openavc.git
cd openavc
pip install -r requirements.txt
cd web/programmer && npm install && npm run build && cd ../..
cd web/simulator && npm install && npm run build && cd ../..

Start the Server

Terminal window
python -m server.main

This starts the OpenAVC server on port 8080, bound to localhost only.

Access the Web Interface

Once OpenAVC is running, open a browser:

URLPurpose
http://localhost:8080/programmerProgrammer IDE (where you build projects)
http://localhost:8080/panelEnd-user touch panel
http://localhost:8080/api/healthHealth check endpoint

First-time startup: When the server first starts, it initializes in the background. You may briefly see a loading page while the engine starts up. This only takes a few seconds.

HTTPS: OpenAVC ships with HTTPS off — the URLs above use plain HTTP because most deployments run on an isolated AV VLAN. Once you have things running, you can opt in to HTTPS from Settings > Security in the Programmer IDE. After enabling, the IDE is reachable at https://localhost:8443/programmer, and http://localhost:8080/... automatically redirects to the HTTPS URL. See the Deployment guide for the full enable flow.

First Steps: Explore the Demo

When you start OpenAVC for the first time, a set of starter projects are available in the Project Library.

1. Open the Programmer IDE

Navigate to http://localhost:8080/programmer in your browser.

2. Open a Starter Project

Click Program in the sidebar. At the bottom, you’ll see the Project Library with starter projects (Simple Projector, Conference Room, Classroom, Advanced AV Suite). Click Simple Projector and then Open to load it.

3. Explore the Sidebar

The sidebar has these sections:

  • Dashboard. System status overview with device grid, active triggers, tracked variables, and panel access URLs.
  • Program. Create, save, and manage projects. Import/export. Backups.
  • Devices. Connected equipment, driver library, device groups, and network discovery.
  • State. Variables, device states, and activity feed.
  • UI Builder. Visual drag-and-drop panel designer.
  • Macros. Sequence-based automation with triggers.
  • Code. Python scripting and driver editing with Monaco editor.
  • Plugins. Install and configure system plugins.
  • Inter-System. Communication between OpenAVC instances.
  • AI Assistant. AI-powered help and automation (requires cloud connection).
  • Cloud. Cloud platform connection and monitoring.
  • Log. Real-time system log and state changes.
  • Settings. Server configuration (port, bind address, logging).
  • Updates. Check for and install OpenAVC updates.

At the bottom of the sidebar, the Simulate Devices button (play icon) starts the device simulator so you can test without real hardware.

4. Start the Simulator

Click the play button at the bottom of the sidebar. This starts virtual devices that respond to commands just like real hardware. The Simulator UI opens in a new browser tab where you can interact with the virtual devices from the “hardware side.”

5. Check Device State

Click Devices in the sidebar. You’ll see the devices from the starter project. With the simulator running, they should connect automatically and show green indicators. Click a device to see its live state (power, input, lamp hours) and test commands.

6. Test a Command

In the Device View, select the projector and use the command testing panel. Choose “power_on” and click Send. Watch the state update in real-time.

7. Open the Panel UI

Navigate to http://localhost:8080/panel in another tab. This is what end users see on a touchscreen. Press the buttons and watch commands flow through the system.

Accessing from a tablet or phone: By default, the server only accepts connections from the local machine (except for Windows Installer and Docker, which accept network connections out of the box). To open the panel on another device:

  1. Go to Settings in the Programmer IDE sidebar
  2. Change the bind address to 0.0.0.0
  3. Save and restart the server
  4. The Dashboard will show the panel URL with your machine’s IP address (e.g., http://192.168.1.100:8080/panel) that you can open on any device on the same network

Environment Variables

These environment variables override the corresponding system.json settings. Useful for Docker, systemd, and scripted deployments.

VariableDefaultDescription
OPENAVC_PORT8080HTTP server port
OPENAVC_BIND127.0.0.1Bind address (0.0.0.0 for network access)
OPENAVC_PROGRAMMER_PASSWORD(none)Password for Programmer IDE access
OPENAVC_API_KEY(none)API key for REST/WebSocket integrations
OPENAVC_LOG_LEVELinfoLog level (debug, info, warning, error)
OPENAVC_DATA_DIR(platform default)Override data directory location
OPENAVC_LOG_DIR(platform default)Override log directory location

See the Deployment Guide for the full configuration reference.

Next Steps