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
| Method | Best For | Time |
|---|---|---|
| Windows Installer | AV rack PCs, mini PCs, laptops | 2 minutes |
| Docker | Servers, multi-room deployments | 2 minutes |
| Linux Install Script | Dedicated Linux machines | 3 minutes |
| From Source | Development, contributing | 5 minutes |
All methods are functionally identical. Choose whatever fits your environment.
Windows Installer
The fastest way to get started on Windows.
- Download
OpenAVC-Setup-x.x.x.exefrom GitHub Releases - Run the installer and follow the prompts
- 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:
curl -fsSL https://raw.githubusercontent.com/open-avc/openavc/main/installer/docker-compose.yml -o docker-compose.ymldocker compose up -dThe 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:
curl -sSL https://get.openavc.com | sudo bashThis 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:
sudo systemctl status openavc # Check statussudo journalctl -u openavc -f # View logsAccess 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:
sudo systemctl edit openavc# Add: Environment=OPENAVC_BIND=0.0.0.0sudo systemctl restart openavcInstall from Source
For development or when you want full control over the installation.
Prerequisites
| Tool | What It Does | Where to Get It |
|---|---|---|
| Python 3.11+ | Runs the OpenAVC server | python.org/downloads |
| Node.js 18+ | Builds the web interfaces | nodejs.org |
| Git | Downloads the OpenAVC source code | git-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:
git clone https://github.com/open-avc/openavc.gitcd openavcpip install -r requirements.txtcd web/programmer && npm install && npm run build && cd ../..cd web/simulator && npm install && npm run build && cd ../..Start the Server
python -m server.mainThis starts the OpenAVC server on port 8080, bound to localhost only.
Access the Web Interface
Once OpenAVC is running, open a browser:
| URL | Purpose |
|---|---|
| http://localhost:8080/programmer | Programmer IDE (where you build projects) |
| http://localhost:8080/panel | End-user touch panel |
| http://localhost:8080/api/health | Health 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, andhttp://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:
- Go to Settings in the Programmer IDE sidebar
- Change the bind address to
0.0.0.0 - Save and restart the server
- 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.
| Variable | Default | Description |
|---|---|---|
OPENAVC_PORT | 8080 | HTTP server port |
OPENAVC_BIND | 127.0.0.1 | Bind 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_LEVEL | info | Log 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
- Programmer Overview. Learn the IDE and core concepts
- Devices and Drivers. Add equipment and manage drivers
- Device Simulator. Test without real hardware
- UI Builder. Design touch panel pages
- Macros and Triggers. Build automation without code
- Scripting Guide. Write Python automation scripts
- Deployment Guide. Production deployment, configuration, and security
- Creating Drivers. Build drivers for your AV equipment