-`install/` contains the in-container install logic
## OpenCode LXC
`ct/opencode.sh` creates a Debian LXC and installs the `opencode` CLI for a normal user.
It now follows the upstream `community-scripts` host-side flow more closely, including the standard `Default Install`, `Advanced Install`, and `User Defaults` entry points.
### What it does
- picks a Debian 12 template from your configured Proxmox storages
- creates an unprivileged LXC with sensible defaults for a coding box
- installs common CLI tooling (`git`, `ripgrep`, `fd`, `curl`, `build-essential`)
- installs OpenCode via the official installer
- creates a writable `/workspace` directory owned by the `opencode` user
- enables a systemd-managed OpenCode web interface on boot
You can also use the upstream-style `var_*` overrides, for example `var_cpu`, `var_ram`, `var_disk`, `var_brg`, `var_net`, `var_ctid`, and `var_hostname`.
### Common Variables
-`CTID` default `120`
-`HOSTNAME` default `opencode`
-`CORES` default `2`
-`MEMORY` default `4096`
-`DISK_GB` default `12`
-`BRIDGE` default `vmbr0`
-`IP_CONFIG` default `dhcp`
-`TEMPLATE_STORAGE` auto-selects first storage with `vztmpl`
-`CONTAINER_STORAGE` auto-selects first storage with `rootdir`
-`OPENCODE_USER` default `opencode`
-`OPENCODE_VERSION` empty means latest release
-`OPENCODE_WEB_HOSTNAME` default `0.0.0.0`
-`OPENCODE_WEB_PORT` default `4096`
-`OPENCODE_SERVER_USERNAME` default `opencode`
-`OPENCODE_SERVER_PASSWORD` optional basic-auth password for the web UI
-`SSH_PUBLIC_KEY_FILE` optional path to a host public key file to inject into the CT
### Community-Scripts Behavior
- supports the standard `community-scripts` settings flow on the Proxmox host
- supports `default.vars` and app-default handling from the shared `build.func` base
- still accepts the legacy environment variable names documented above for quick one-shot runs
### After Creation
```bash
pct enter 120
su - opencode
opencode
```
The web interface is started automatically at boot and listens on `http://<ct-ip>:4096` by default.
Then configure a provider inside OpenCode with `/connect`, or set your provider credentials manually.