Support
How do I install the server?
The quickest way is Docker:
docker run -d --name opencctv --restart unless-stopped --network host -v opencctv:/data ghcr.io/codextde/opencctv:latest
Without Docker, run curl -fsSL https://opencctv.codext.de/install.sh | sh on Linux or macOS, or irm https://opencctv.codext.de/install.ps1 | iex in PowerShell on Windows. Then open http://<server-ip>:8080 and create the admin account. More options on the home page.
The app can't reach my server.
- Check that your phone is in the same network as the server, or connected through your gateway or VPN.
- Open
http://<server-ip>:8080in the phone's browser. If that fails too, a firewall on the server is blocking port 8080. - On iPhone, allow "Local Network" for OpenCCTV in Settings > Privacy & Security > Local Network.
- Pairing by QR code is the most reliable way: in the web UI, open Users & devices and scan the code with the app.
How do I add a Tapo camera?
- In the Tapo app, open the camera, tap the gear icon, then Advanced Settings > Camera Account, and create a username and password. This is not your TP-Link ID.
- In OpenCCTV, add a camera, choose TP-Link Tapo and enter the camera's IP address and that account.
- Optional: enter your TP-Link cloud password to enable two-way audio.
No SD card or Tapo Care subscription is needed. Pan and tilt models (C200, C210, C500 and similar) are controlled over ONVIF.
How do I add UniFi Protect cameras?
Use the UniFi Protect import in the web UI: enter the IP of your console (UDM, UNVR or Cloud Key) and a local Protect user. OpenCCTV enables RTSP on the cameras and adds them. Protect keeps running alongside. A local user (not your Ubiquiti cloud account) works best.
My camera isn't listed. Will it work?
Probably, if it offers RTSP or ONVIF. Choose "ONVIF camera" to discover the stream automatically, or "Other" and paste the RTSP URL from the manufacturer's manual. Cameras that can only send video can push RTMP or RTSP to the server; OpenCCTV shows the target URL after you save.
Cloud-only cameras such as Ring, Arlo, Blink or Nest have no local stream and do not work. eufy cameras need RTSP enabled under Storage > NAS (RTSP); Wyze cameras need the official RTSP firmware.
Push notifications don't arrive.
- Allow notifications for OpenCCTV in the system settings and turn them on in the app.
- Check that motion detection and notifications are enabled for the camera on the server.
- After a notification, the camera waits for the cooldown set on the server before sending the next one.
- The server needs internet access to send notifications through Expo's push service.
How do I watch my cameras remotely?
Either run a second OpenCCTV as a gateway on a VPS or in Coolify and link your home server to it in Settings > Remote access, or use a VPN such as Tailscale or WireGuard and add the server's VPN address in the app. Neither needs port forwarding.
How do I upload to Google Drive, S3 or my NAS?
In the web UI, open Storage and add a target. For Google Drive you sign in once with your Google account; for S3, SMB, SFTP, FTP and WebDAV you enter the address and credentials. Each target has its own retention in days. Use "Test" before saving.
How do I update the server?
Docker: docker pull ghcr.io/codextde/opencctv:latest, then remove and start the container again with the same command. Your data stays in the volume.
Installer: run the install command again. It replaces the binary and restarts the server.
I forgot the admin password.
On the server, run opencctv reset-password <username>. It prints a new random password; add a second argument to set one yourself. Restart the server afterwards if it was running.
How do I remove my data?
In the app, remove the server from the server list; the app deletes its stored address and token. On the server, delete the data directory (the Docker volume, ~/.opencctv or %APPDATA%\OpenCCTV) and the recordings in your storage targets. We hold no copy of your data.
Is OpenCCTV free?
Yes. Server and apps are open source under the MIT license, without ads, subscriptions or in-app purchases.
Contact
Found a bug or have a feature request? Please open an issue on GitHub and include the server version (Settings > System), your platform and the camera model. For anything else, email kontakt@codext.de.
Please don't send us recordings, snapshots or passwords.