Add Dockerfile, TrueNAS SCALE compose file and image publishing on release
CI / test (push) Successful in 57s
Release / release (push) Successful in 2m34s

This commit is contained in:
Veillax committed 2026-10-27 18:36:06 -06:00
1 parent 6ff6f5f4c7
commit e0694b2374
5 files changed
+79 -6

No files matched your search

+18 -5
View File
@@ -31,15 +31,28 @@ There are two flags only: `-listen` and `-data`. There is no config file or envi
## Running in Docker
Mount the Docker socket (this gives the container control of Docker, which is what the start/stop buttons need) and, for host metrics, run it with the host's `/proc` visible:
Tagged releases publish an image to this server's container registry (`git.veillax.com/veillax/beach`).
To build one yourself: `sh deploy/build.sh && docker buildx build -t beach .`.
Mount the Docker socket (this gives the container control of Docker, which is what the start/stop buttons need):
```
docker run -d --name beach -p 127.0.0.1:8095:8095 -v beach:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
beach -data /data/beach.db
docker run -d --name beach -p 127.0.0.1:8095:8095 -v beach:/data -v /var/run/docker.sock:/var/run/docker.sock git.veillax.com/veillax/beach:latest
```
(There is no published image yet: build one from `go build` output in a `scratch`/`distroless` image.)
CPU, memory, load and uptime are the host's even inside a container; the filesystem list is the container's own,
so on TrueNAS rely on its API for pools and disks.
## TrueNAS SCALE
1. Apps, then Discover Apps, then Custom App, then Install via YAML. Paste [deploy/docker-compose.yml](deploy/docker-compose.yml)
and change the data path to a dataset (for example `/mnt/<pool>/apps/beach`).
2. If the registry is private, add it under Apps, Configuration, Docker Registry Settings first.
3. Open `http://<truenas-ip>:8095`, create the administrator, then in **Settings** add TrueNAS (`https://<truenas-ip>`
and an API key from Credentials, API Keys; tick "self-signed certificate" if needed), Docker, and Hammerhead.
smartctl in the container needs the disks passed in (`privileged: true`); TrueNAS's API already reports SMART data and
temperatures, so you can leave it off.
## Security notes