# Proxmox LXC installer

Maintainer: <https://github.com/doctorjz>

{% hint style="warning" %}
Community pages and scripts are **not maintained, reviewed, or supported by CrossWatch**.

Read them before you run them.

Fixes, updates, and support depend on the original author.
{% endhint %}

### Overview

This installer deploys CrossWatch inside an unprivileged Debian 12 LXC container on Proxmox. It automates the full setup, including package installation, application download, Python environment creation, service registration, and update support.

The result is a working CrossWatch instance that runs as a service and is accessible through the web interface on port `8787`.

### What the script does

The installer performs the following actions:

1. Creates an unprivileged Debian 12 LXC container on Proxmox
2. Applies default container resources, 2 vCPU, 1024 MB RAM, and 8 GB disk
3. Installs the required system packages for CrossWatch
4. Downloads the latest tagged CrossWatch release from GitHub
5. Creates a Python virtual environment and installs all dependencies
6. Creates the persistent config directory at `/config`
7. Links the application data path to `/config`
8. Creates a dedicated `crosswatch` service user
9. Registers CrossWatch as a `systemd` service
10. Starts the service automatically on boot
11. Adds a built in `update` command for future upgrades

### Installation

Run the following command on your Proxmox host:

```bash
bash -c "$(wget -qLO - https://raw.githubusercontent.com/doctorjz/ProxmoxVE/main/ct/crosswatch.sh)"
```

After installation completes, open CrossWatch in your browser:

```
http://<container-ip>:8787
```

### Update

To update CrossWatch later, open the container shell and run:

```bash
update
```

The update command checks for the latest tagged release, installs it, refreshes dependencies, and restarts the service.

### Default container settings

The installer uses the following defaults:

1. OS, Debian 12
2. Container type, unprivileged
3. vCPU, 2
4. Memory, 1024 MB
5. Disk, 8 GB

### Important paths

1. Application directory, `/opt/crosswatch`
2. Persistent config directory, `/config`
3. Linked data directory, `/opt/crosswatch/data`
4. Service name, `crosswatch.service`

### Notes

CrossWatch is configured to listen on port `8787`.

The installer is intended to simplify deployment on Proxmox and avoid manual setup steps inside the container.

### Source

Discussion reference: <https://github.com/cenodude/CrossWatch/discussions/218>
