Deploy a cloud-free CCU appliance, verify its radio and WebUI locally, then choose controlled public or private remote access
OpenCCU is a free, open-source operating system for running a Homematic IP and HomeMatic-compatible smart-home hub under your control. This tutorial covers an initial x86_64 OpenCCU OVA installation on Proxmox VE, including release verification, appliance import, networking, USB radio assignment, first boot, local testing, backups, updates, and troubleshooting. After the local deployment works, it explains how to publish the WebUI through a Localtonet HTTP tunnel and when our private VPN Manager is the safer design. The example release is date-stamped so it does not appear permanently current.
๐ What's in this guide
Understand the deployment architecture

OpenCCU, formerly known as RaspberryMatic, is a cloud-free smart-home platform compatible with eQ-3 Homematic IP and HomeMatic devices. It targets compatibility with the vendor's CCU3 platform while adding operating-system, WebUI, stability, connectivity, and management improvements. OpenCCU can run on supported physical devices, generic 64-bit hardware, container platforms, and hypervisors such as Proxmox VE.
In this design, Proxmox VE runs the OpenCCU virtual appliance. The guest connects to a LAN bridge, obtains an address through DHCP, and serves the CCU WebUI over HTTP. The unqualified address http://openccu/ uses HTTP's standard port 80 unless you have deliberately placed another proxy in front of OpenCCU or changed the working endpoint.
Homematic communication is a separate part of the design. OpenCCU can detect supported RF hardware such as an HmIP-RFUSB or other supported radio interfaces. A physical USB device connected to the Proxmox host must be assigned to the OpenCCU virtual machine before the guest can use it. Other radio designs can have different connection requirements, so confirm the selected device against OpenCCU's supported-device documentation.
Remote access should be added only after the WebUI and radio hardware work locally. For an HTTP tunnel, the Localtonet client runs on a separate supported machine that can reach the OpenCCU guest. The client establishes an outbound connection to our relay and forwards the public HTTPS address to the verified local HTTP target. The available OpenCCU evidence does not establish a supported method for installing the Localtonet client inside the appliance itself.
Complete the Proxmox import, local WebUI setup, radio detection, backup, and restart test before configuring remote access. This prevents a local appliance problem from being mistaken for a tunnel problem.
Requirements, architecture choice, and release verification
Supported platform and tutorial scope
OpenCCU lists Proxmox VE as a supported virtualized environment and publishes builds for x86_64 and aarch64 systems. This tutorial's reproducible import procedure covers an initial x86_64 Proxmox installation using the standalone OVA. That is the normal choice for an x86_64 Proxmox host.
The project also publishes a generic aarch64 appliance identified for Proxmox VE. It is a separate ZIP artifact and is not interchangeable with the x86_64 OVA. An aarch64 Proxmox installation must use the architecture-specific image procedure in the current OpenCCU Proxmox VE installation documentation. Do not boot the x86_64 OVA on an ARM host, and do not substitute a Raspberry Pi, OCI, LXC, or generic x86 image for the appliance procedure below.
You need administrative access to Proxmox VE, an unused VM ID, a storage target that supports virtual-machine disks, and a bridge connected to the intended LAN. The guest must be able to obtain an address through DHCP during initial startup. You also need enough available host resources for the appliance settings imported from the Open Virtualization Format descriptor.
The OVA contains an OVF descriptor and virtual disk that define the initial appliance hardware profile. Import that descriptor rather than creating an empty VM and guessing a firmware mode, controller, disk geometry, or boot device. Review the resulting CPU and memory allocation before startup, but do not replace the imported boot configuration with generic settings.
Select the correct release asset
OpenCCU release filenames follow the pattern OpenCCU-X.XX.XX.YYYYMMDD-<TARGET>. For an initial x86_64 Proxmox installation, use the standalone file ending in .ova. The release may also contain a file ending in -ova.zip. These are different downloadable assets with different checksums.
As a dated example, the OpenCCU release published on September 19, 2026 is 3.89.11.20260919. It was identified as a security bugfix release. Its relevant assets are:
| Asset | Purpose | Published SHA-256 for the September 19, 2026 release |
|---|---|---|
OpenCCU-3.89.11.20260919.ova |
Standalone OVA for an initial virtual-appliance installation | 3a6b2069cf7aa5ba7770d2dc9d167fab18fe09c5a8e2ae59ca256aa2361b844c |
OpenCCU-3.89.11.20260919-ova.zip |
ZIP release archive for the OVA target | f68c1acb8ea55e24f4dccfe5f8c5251f97bde69c43dfb7518c6b8f5a37332cdf |
OpenCCU-3.89.11.20260919-generic-aarch64.zip |
Generic aarch64 appliance, including the separate Proxmox ARM path | bc58e287840af98e8a6f44cacd476d6524daa2b508159ed6260693d2f00593cb |
These values apply only to the named September 19, 2026 files. A newer release will have different filenames and checksum values. Check the current OpenCCU releases page before installation, read the release notes, and compare your download with the checksum published beside that exact asset.
Verify the file you actually downloaded
If you downloaded the standalone OVA on Linux, verify the OVA itself:
sha256sum OpenCCU-3.89.11.20260919.ova
If you downloaded the ZIP archive, verify the ZIP before extracting it:
sha256sum OpenCCU-3.89.11.20260919-ova.zip
On Windows PowerShell, use the corresponding filename:
Get-FileHash .\OpenCCU-3.89.11.20260919.ova -Algorithm SHA256
Get-FileHash .\OpenCCU-3.89.11.20260919-ova.zip -Algorithm SHA256
Do not compare the ZIP's digest with the standalone OVA checksum. Extracting an archive changes which file is being measured. If the result does not exactly match the checksum associated with that filename, stop and download the asset again.
Prepare the radio and local network
Confirm that the intended RF module is supported by OpenCCU and decide how it will connect to the guest. For a USB device, connect it to the Proxmox host and identify it by vendor and product identity before assigning it. Avoid selecting a device only by a temporarily assigned bus number if Proxmox offers a stable vendor/device selection.
The OpenCCU guest also needs a virtual network interface connected to the correct Proxmox bridge. DHCP should be available for first boot. If the automation environment uses VLANs or restrictive firewall rules, OpenCCU must still be able to communicate with the local clients, integrations, and hardware required by your design.
Prepare a separate Localtonet client
The optional remote-access phase requires a Localtonet account and a supported client device that can reach OpenCCU over the LAN. A small managed VM, server, or always-on device can perform this role. The device-specific authentication token is a secret and must be omitted from screenshots, shell history, issue reports, and shared notes.
Install OpenCCU on Proxmox VE
An OVA is a tar archive containing an OVF descriptor and one or more virtual disks. Proxmox imports the OVF definition into a new VM and places the disk on the storage you select. Perform the following work from a controlled administrative session on the Proxmox host.
Download and verify the standalone x86_64 OVA
Download the current standalone OpenCCU-<version>.ova asset from the official release. Verify its SHA-256 digest against the checksum published for that exact OVA. If you downloaded -ova.zip instead, verify the ZIP with the ZIP checksum and extract it before continuing.
Place the appliance in a working directory on the Proxmox host
Transfer the verified OVA to a temporary directory with enough space for the archive and extracted virtual disk. Keep the filename unchanged so the release and target remain clear during import.
Extract the OVA
Extract the archive in the working directory. Confirm that the result includes an .ovf descriptor and its referenced virtual disk before attempting the Proxmox import.
Import the OVF into an unused Proxmox VM ID
Use Proxmox's OVF import function with an unused VM ID, the extracted .ovf file, and a VM-capable storage target. The import reads the appliance definition and creates the guest with its virtual disk. Storage names and VM IDs belong to your environment, so verify them in Proxmox rather than copying placeholders literally.
Review the imported virtual hardware
Open the new VM in Proxmox and confirm that the imported system disk is present and selected as a boot device. Retain the appliance-defined initial hardware profile. Confirm that the CPU and memory allocations fit within the host's available capacity and that no installation ISO or unrelated disk is attached.
Connect the network interface to the intended bridge
Attach the VM's network interface to the LAN-facing bridge used for OpenCCU management and automation traffic. Confirm that the virtual interface is connected and that DHCP is available on this network. Do not expose the guest by attaching it directly to an untrusted public network.
Assign the supported USB radio device
Keep the VM stopped. In the VM's Hardware view, use Add, then USB Device. Select the intended radio by its USB vendor/device identity when available, verify that it is the correct physical module, and add it to the guest. Do not pass through a USB controller containing unrelated host devices unless that broader assignment is intentional and supported by your design.
Start OpenCCU and observe the first boot
Start the VM and watch the Proxmox console for boot progress. OpenCCU initializes the appliance, brings up networking, and detects supported Homematic or Homematic IP RF modules presented to it. Allow first boot to finish before assuming that a temporarily unavailable WebUI indicates a failure.
Open the WebUI over the local network
From a LAN browser, open http://openccu/. This uses port 80 because no alternative port is present in the URI. If the hostname does not resolve, find the DHCP-assigned address and open http://<openccu-address>/.
The exact shell syntax for the OVF import depends on your VM ID, extracted descriptor filename, and Proxmox storage name. Those are local administrative values, not universal OpenCCU defaults. The current OpenCCU Proxmox guide is authoritative if its import method or required appliance settings change.
Importing the OVF preserves the appliance definition and boot disk relationship. Manually creating an empty VM and attaching files with guessed firmware, controller, or boot settings introduces avoidable differences from the supported appliance path.
Verify OpenCCU locally before remote access
A green Proxmox running state proves only that the virtual machine process started. It does not prove that OpenCCU completed initialization, received an address, serves the correct page, retained its configuration, or detected the radio.
Confirm the DHCP address and WebUI
Find the guest's address through the authoritative DHCP server, router, appliance console, or available Proxmox guest information. Record it and confirm that it belongs to the intended network. Then test both forms separately:
http://openccu/
http://<openccu-dhcp-address>/
The hostname can fail even when the appliance is healthy because local name resolution differs between networks. If the IP address works and the hostname does not, continue with the IP address while resolving the naming issue.
Verify the content, not only the status code
The browser must display the OpenCCU CCU WebUI, not a Proxmox login, router page, another server, or a generic proxy response. Complete the current first-use administration prompts presented by your installed release. Configure a strong administrative credential before considering any external access.
Verify radio detection separately
Check that OpenCCU recognizes the expected radio interface. A missing radio with a working WebUI usually points to physical connectivity, device support, or Proxmox assignment rather than an HTTP problem. Confirm that the USB device still appears under the VM hardware and has not been attached to another guest.
Test from the future Localtonet client host
The machine that will run Localtonet must reach the exact OpenCCU target. From that machine, request the local WebUI at the private address. A standard HTTP request can confirm the endpoint without exposing credentials:
curl -I http://<openccu-dhcp-address>/
A valid HTTP response establishes transport reachability, but also use a browser to verify that the page and login workflow function correctly. If the browser address is simply http://192.0.2.10/, for example, the Localtonet target port is 80. Use another port only when the tested local URL explicitly contains one, such as http://192.0.2.10:8080/.
Restart and repeat the checks
Perform one controlled restart. Verify that the VM boots, receives the expected address, displays the WebUI, retains its administration settings, and detects the radio again. If a stable management address is required, create a DHCP reservation using your DHCP server's documented process.
| Verification point | Success criterion | Failure layer |
|---|---|---|
| Proxmox guest | The VM starts without a storage or boot error. | Import, disk, or virtual hardware |
| Network | OpenCCU receives an address on the intended LAN. | Bridge, DHCP, VLAN, or firewall |
| WebUI | The private address displays the expected CCU interface. | OpenCCU startup or local HTTP path |
| Radio | The expected supported RF module is detected. | Hardware, compatibility, or passthrough |
| Persistence | The same checks pass after a controlled restart. | Lifecycle or nonpersistent configuration |
| Client-host reachability | The Localtonet host can open the exact private target. | Routing, segmentation, or local policy |
Configure, migrate, back up, and update OpenCCU
Complete local administration first
Finish the administration and security configuration shown by the installed WebUI before pairing production devices or enabling remote access. Use only the accounts, permissions, add-ons, and integrations required by the deployment. Do not rely on assumed default credentials or screen labels from an older release.
The official OpenCCU administration documentation covers ongoing WebUI administration. Record the installed release, Proxmox VM ID, storage, bridge, DHCP reservation, radio model, assigned USB identity, installed add-ons, and backup location in your operating notes.
Restore an existing CCU deployment carefully
OpenCCU documents backup interchangeability with the vendor CCU firmware and supports restoring an existing CCU backup as a migration path. Preserve an untouched copy of the original backup outside the appliance. Confirm that required add-ons and integrations are suitable for the destination release before restoration.
After restoring, verify devices, programs, system variables, add-ons, radio communication, and external integrations while the original controller remains recoverable. Do not run two controllers in a way that creates conflicting radio or integration behavior.
Consult the official OpenCCU backup and restore documentation for the current WebUI sequence and migration limitations.
Use both application and hypervisor recovery
An OpenCCU backup protects the smart-home configuration in a portable form. A Proxmox backup or snapshot protects a VM state tied to the virtualized deployment. A snapshot is not a substitute for exporting a current OpenCCU backup, and an application backup does not preserve every hypervisor setting.
Before an upgrade, restore, add-on change, or major radio reconfiguration, create an OpenCCU backup and an appropriate Proxmox recovery point. Store important backups outside the guest so a failed virtual disk does not remove both the service and its only recovery copy.
Update using the correct release type
Review release notes before updating, especially when a release contains security fixes. Use the update asset and mechanism documented for an existing OpenCCU appliance. The standalone OVA is intended for initial installation and should not be treated automatically as an in-place update package.
Follow the OpenCCU firmware update documentation, then repeat the installation verification checklist: boot, private address, WebUI, authentication, radio detection, devices, automations, integrations, and remote access if enabled.
Configure remote access with Localtonet
Localtonet can expose a reachable local service without inbound router port forwarding, firewall changes, a public IP address, or a separate public-facing reverse proxy. For OpenCCU, our client should run on another managed device that can reach the appliance at its tested private address.
The normal target is the OpenCCU private IP address on port 80 because http://openccu/ is an unqualified HTTP URI. If your verified deployment uses an explicit different port, enter that tested port instead. Do not point the tunnel at the Proxmox interface or router.
Install and run the Localtonet client
Install our client on a supported machine that can open the OpenCCU private URL. Keep this device online whenever the tunnel is required.
Open the HTTP Tunnel page and select Process Type
Create an HTTP tunnel and choose the Process Type shown in the dashboard: Random Sub Domain, Custom Sub Domain, or Custom Domain. All three publish the configured content through a public HTTPS address. Available options can vary by account or plan.
Select the AuthToken device
Select the device-specific authentication token for the client that can reach OpenCCU. Never expose the token in screenshots, articles, source repositories, support posts, or browser URLs.
Select an available server
Choose an available Localtonet relay server or region from the current dashboard. Do not copy a server code from an old tutorial because available values can change.
Enter the verified local IP address and port
Enter the OpenCCU guest's private address and port 80 when the working local URL uses ordinary HTTP without an explicit port. If your tested URL contains another port, enter that exact value. The target must produce the OpenCCU WebUI from the Localtonet client host.
Start the tunnel
Creating the configuration does not start it. Use the Start button and confirm that both the selected client and tunnel show a connected or running state.
Test the assigned public HTTPS address
Use a device on a genuinely external network. Confirm that the assigned URL reaches the OpenCCU login, that authentication succeeds, and that normal navigation does not redirect to an unusable private hostname. Stop the tunnel after testing if permanent exposure is unnecessary.
See the Localtonet HTTP tunnel documentation for the current interface. The dashboard is authoritative for field names, available relay servers, process types, and account-specific options.
External acceptance criteria
Treat the tunnel as verified only when all of the following are true:
- The test uses a network outside the OpenCCU LAN.
- The public URL uses HTTPS and loads the expected OpenCCU interface.
- Anonymous visitors cannot administer the system.
- The intended OpenCCU account can authenticate and navigate normally.
- The URL does not expose Proxmox, a router, or another local service.
- Stopping the tunnel makes the public endpoint unavailable.
- Local OpenCCU access remains available for recovery.
Choose between a public HTTP endpoint and private VPN access
OpenCCU controls a sensitive smart-home environment. A Localtonet HTTP tunnel encrypts the public browser connection at the tunnel edge and forwards it to the configured local target, but transport exposure and application authentication are different controls. A public HTTPS address does not create OpenCCU users, strengthen their passwords, or decide what an authenticated administrator may change.
Review the current OpenCCU security advice before remote exposure. Keep the appliance current, configure strong WebUI authentication, remove unused accounts, apply least privilege where the installed release supports it, and avoid weakening OpenCCU firewall or API restrictions merely to make a proxy test pass.
When an HTTP tunnel is appropriate
An HTTP tunnel can be practical when an authorized administrator needs temporary browser access and installing a private-network client on the remote device is not suitable. It publishes one web target and can be started only for the maintenance window.
Use this design only after confirming that OpenCCU itself requires authentication. Treat the public URL as discoverable, even if its hostname is difficult to guess. Do not use obscurity as the access-control layer.
When VPN Manager is preferable
Localtonet VPN Manager is a private mesh VPN with granular firewall rules. It is preferable when OpenCCU is used only by known administrators, when long-lived access is required, or when the WebUI should not exist at a public URL at all. Authorized devices join the private network and reach OpenCCU through allowed private routes.
VPN Manager is the VPN option in our platform. An ordinary HTTP tunnel is not a VPN and should not be described as one. The two approaches solve different access problems.
| Design | Who can reach the entry point | Best fit | Primary security responsibility |
|---|---|---|---|
| Local-only OpenCCU | Devices with LAN reachability | No remote administration requirement | LAN segmentation, OpenCCU accounts, and local device security |
| Localtonet HTTP tunnel | Internet clients that know or discover the public URL | Controlled or temporary browser access to one web target | OpenCCU authentication, updates, exposure duration, and target accuracy |
| Localtonet VPN Manager | Authorized private mesh members allowed by VPN firewall rules | Persistent administration by known devices without a public WebUI URL | Mesh membership, firewall rules, device security, and OpenCCU authentication |
Reverse-proxy behavior and recovery access
A tunnel or reverse proxy can change the public hostname and external scheme seen by the browser. Test login, navigation, redirects, cookies, and logout from the public URL. If OpenCCU redirects to a private hostname, generates an unusable absolute URL, or requires custom certificate behavior, stop the public deployment and follow the OpenCCU guidance for remote access and custom HTTPS certificates. Do not add unverified forwarded headers or mark arbitrary internet addresses as trusted networks.
Keep a working local recovery path. Do not perform a remote network, firewall, certificate, radio, or authentication change that could lock you out unless someone can recover the system locally. Create a current backup before material changes.
The target is the OpenCCU guest's verified HTTP endpoint only. Proxmox administration has different privileges and security requirements. A tunnel pointed at the wrong private address can expose a much more powerful management service.
Minimum security checklist
- Install a current OpenCCU release and review security-related release notes.
- Require OpenCCU application authentication before creating a public tunnel.
- Use separate credentials for OpenCCU, Proxmox, and Localtonet administration.
- Grant only the access needed for the remote task.
- Protect the Localtonet device token as a secret.
- Expose only the OpenCCU WebUI target.
- Keep local recovery access and a current backup.
- Stop or delete unused HTTP tunnels.
- Prefer VPN Manager when only known devices need continuing access.
Troubleshoot OpenCCU and Localtonet by layer
The OpenCCU VM does not boot
Confirm that the asset matches the host architecture and that its checksum is correct. Verify that the OVF import completed, the imported disk exists, the disk is on available storage, and the expected boot device remains selected. Read the Proxmox task output and guest console before changing virtual hardware.
The VM starts but has no reachable WebUI
Confirm that the virtual network interface is connected to the intended bridge and that DHCP issued an address. Try the private IP instead of http://openccu/. If the IP works, investigate local name resolution rather than reinstalling OpenCCU.
If neither address works, check VLAN membership, bridge configuration, DHCP, guest startup, and local firewall policy. Do not create a tunnel until the private IP works from the Localtonet client host.
The WebUI works but the radio is missing
Verify the exact radio model against OpenCCU's supported-device information. Confirm that the USB device is physically connected and listed in the VM hardware. Shut down the VM before correcting the assignment. Check whether another VM or host process owns the device and whether its USB identity changed after reconnecting it.
The OpenCCU address changes
Create a DHCP reservation using the authoritative procedure for your router or DHCP server. After an address change, retest the new target from the Localtonet client and update the tunnel configuration only after confirming that the new address displays OpenCCU.
The Localtonet tunnel exists but is unavailable
A created tunnel is not necessarily running. Confirm that the selected Localtonet client is connected, the correct AuthToken device is selected, the relay server is currently valid, and the tunnel has been started. Verify that the client machine remains powered on and has outbound connectivity.
The public URL shows the wrong page
Stop the tunnel immediately and check the local IP address and port. The target must be the OpenCCU guest, not the Proxmox host, router, Localtonet client, or another application. Open the identical target locally from the Localtonet client machine before restarting the tunnel.
The local page works but the public login fails
Test from a genuinely external network and record redirects without sharing private or public identifiers. Confirm that OpenCCU authentication works locally with the same account. If the external browser is redirected to openccu or a private address, review the current OpenCCU reverse-proxy, remote-access, and certificate guidance rather than disabling authentication or broadening trusted networks.
An update breaks access
First determine whether the failure exists locally. If the private WebUI is unavailable, troubleshoot OpenCCU, the VM, and networking before touching Localtonet. If local access works, check whether the address, port, authentication behavior, or redirect behavior changed. Restore only from a recovery point whose consequences you understand.
| Symptom | First decisive check | Likely layer |
|---|---|---|
| Import fails | Verify architecture, checksum, extracted OVF, storage, and task output | Release asset or Proxmox import |
| VM runs but has no address | Check bridge connection and DHCP lease | Virtual networking |
| IP works but hostname fails | Open the DHCP address directly | Local name resolution |
| WebUI works but radio is absent | Check OpenCCU support and USB assignment | Hardware or passthrough |
| Client host cannot open OpenCCU | Test the private IP and port from that host | Routing, VLAN, or firewall |
| Public URL is offline | Check client connection and tunnel running state | Localtonet lifecycle |
| Public URL shows another service | Stop the tunnel and verify target IP and port | Incorrect tunnel target |
Frequently asked questions
Is OpenCCU available for Proxmox VE?
Yes. OpenCCU lists Proxmox VE as a supported virtualized environment. The project publishes an OVA for virtual-appliance installation and a separate generic aarch64 appliance. Use the artifact matching the Proxmox host architecture.
Should I download the OVA or the OVA ZIP?
For an initial x86_64 appliance import, the standalone .ova is the direct input. The -ova.zip file is a separate release archive. Verify whichever file you download against its own published checksum, then extract the ZIP if necessary. The two checksums are not interchangeable.
Can I use the x86_64 OVA on an aarch64 Proxmox host?
No. Use the separately published generic aarch64 appliance and its current OpenCCU Proxmox procedure. Architecture-specific artifacts are not interchangeable.
Which port does the OpenCCU WebUI use?
The documented address http://openccu/ uses standard HTTP port 80 because no other port is specified. Enter port 80 in the Localtonet target unless your working deployment uses a different explicit port. Verify the exact URL from the Localtonet client host first.
Does a running WebUI prove that the radio works?
No. WebUI availability and RF module detection are separate checks. Confirm the supported radio appears inside OpenCCU after Proxmox assigns the physical device to the guest.
Can I restore a backup from an existing CCU?
OpenCCU documents backup interchangeability with vendor CCU firmware. Preserve the original backup, confirm add-on and release compatibility, and verify devices, programs, variables, integrations, and radio communication before retiring the previous controller.
Must the Localtonet client run inside OpenCCU?
No. Run our client on a separate supported machine that can reach the OpenCCU private address. The available evidence does not establish a supported Localtonet client installation inside the OpenCCU appliance.
Does creating a Localtonet tunnel make it active?
No. Select the client, configure the HTTP target, and then use the Start button. The endpoint remains available only while the selected client is connected and the tunnel is running.
Should I use an HTTP tunnel or VPN Manager?
Use an HTTP tunnel when you deliberately need a public HTTPS entry point to the authenticated WebUI, especially for temporary browser access. Prefer VPN Manager when only known devices need ongoing access and OpenCCU should remain private. An HTTP tunnel is not a VPN.
Do I need router port forwarding or a public IP address?
No. The Localtonet client establishes an outbound connection to our relay. The client still needs outbound internet connectivity and local network access to the OpenCCU target.
Connect your verified OpenCCU deployment with Localtonet
Import the OpenCCU appliance, confirm its WebUI and radio locally, create a recoverable backup, and choose the access model that matches your risk. Use an HTTP tunnel for controlled public browser access or VPN Manager when the administration interface should remain private to authorized devices.
Get Started Free โ