From f6bb3993f4ff37c7912e6c516a36198c470b3335 Mon Sep 17 00:00:00 2001 From: sam Date: Fri, 21 Aug 2026 06:46:07 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20rename=20compose=20file=20to=20compose.?= =?UTF-8?q?yml=20=E2=80=94=20plain=20'docker=20compose=20up=20-d'=20discov?= =?UTF-8?q?ery?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++++++++++++++----------- docker-compose.agent.yml => compose.yml | 8 +++---- 2 files changed, 20 insertions(+), 17 deletions(-) rename docker-compose.agent.yml => compose.yml (94%) diff --git a/README.md b/README.md index a6d8996..75003b2 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,8 @@ git clone https://gitea.noctools.nz/noctools/onlyscans-agent-kit.git cd onlyscans-agent-kit cp .env.agent.example .env # edit .env: AGENT_IDENTITY / AGENT_PASSWORD -docker compose -f docker-compose.agent.yml up -d -docker logs -f onlyscans-agent +docker compose up -d +docker compose logs -f ``` The worker image pulls anonymously — no `docker login` required. @@ -39,7 +39,7 @@ The worker image pulls anonymously — no `docker login` required. `authenticated to PocketBase …` — that's it. (The agent's location is carried by its central record; nothing local participates.) A rejected password is FATAL by design — check `AGENT_IDENTITY` / -`AGENT_PASSWORD` in `.env` and `docker compose -f docker-compose.agent.yml up -d --force-recreate`. +`AGENT_PASSWORD` in `.env` and `docker compose up -d --force-recreate`. **Verify centrally:** Sam confirms the agent flips **online** on the central `/agents` page within ~90 s, then queues a pinned test scan against @@ -47,13 +47,13 @@ your location — `claimed_by` should show the agent username. ## Upgrades -The compose file pins an image tag. To upgrade: `git pull` this repo, -bump the tag + `AGENT_VERSION` in `docker-compose.agent.yml` if Sam hasn't -already, then: +The compose file pins an image tag. To upgrade: `git pull` this repo +(the tag + `AGENT_VERSION` in `compose.yml` are usually already bumped +centrally), then: ```bash -docker compose -f docker-compose.agent.yml pull -docker compose -f docker-compose.agent.yml up -d +docker compose pull +docker compose up -d ``` The agent re-authenticates and resumes polling. @@ -62,11 +62,13 @@ The agent re-authenticates and resumes polling. - **Host-network variant** (scan the site LAN directly, ARP-level discovery, non-routed subnets): swap the service to `network_mode: host` - per the commented block in `docker-compose.agent.yml`. + per the commented block in `compose.yml`. - **Second agent on the same box:** each agent needs its OWN credentials — - copy the compose file AND create a second env file (`.env-agent2`), then - run it with `docker compose --env-file .env-agent2 -f - docker-compose.agent2.yml up -d`. In the copy, change the project `name:` + copy `compose.yml` to `compose.agent2.yml` AND create a second env file + (`.env-agent2`), then run it with `docker compose --env-file .env-agent2 + -f compose.agent2.yml up -d` (plain `docker compose up -d` always + operates on the first agent only — `compose.agent2.yml` is not + auto-discovered, which is the safe direction). In the copy, change the project `name:` and `container_name` (and `WORKER_HEALTH_PORT` under host networking) per the comments in the file. Two agents sharing one `.env` would share one auth record — unsupported and silently wrong. @@ -78,7 +80,8 @@ The agent re-authenticates and resumes polling. | Symptom | Meaning | |---|---| -| `no configuration file provided: not found` | You ran a follow-up `docker compose logs`/`ps` without `-f docker-compose.agent.yml` — the kit's compose file has a non-default name, so it isn't auto-discovered. Re-run with `-f docker-compose.agent.yml`, or use plain `docker logs onlyscans-agent` (the container itself is fine) | +| `no configuration file provided: not found` | You're not in the kit directory (`compose.yml` is auto-discovered only from the directory you run in). `cd` into the `onlyscans-agent-kit` clone, or use plain `docker logs onlyscans-agent` (the container itself is fine) | +| Upgraded from an older kit (`docker-compose.agent.yml`)? | The compose file was renamed to `compose.yml` — `git pull` removes the old one. Use plain `docker compose up -d` / `logs -f` from now on; your `.env` is untouched | | Container exits ~1 s after start | Bad `AGENT_IDENTITY` or `AGENT_PASSWORD` — fatal by design; fix `.env` and recreate | | Agent shows **offline** centrally (`/agents`) | Container down, or no egress to `scan-api.noctools.nz:443` — check `docker logs onlyscans-agent` | | Scans stay queued | Agent online but for a different location, or targets unreachable from the container's network — try the host-network variant | diff --git a/docker-compose.agent.yml b/compose.yml similarity index 94% rename from docker-compose.agent.yml rename to compose.yml index 4545713..aedc76f 100644 --- a/docker-compose.agent.yml +++ b/compose.yml @@ -6,17 +6,17 @@ # 2. /agents → New agent: username (e.g. "chch-1") + that location. The # password is shown ONCE — put it in .env as AGENT_PASSWORD below. # -# Then on this host: +# Then on this host (from this directory): # cp .env.agent.example .env (fill AGENT_IDENTITY / AGENT_PASSWORD) -# → docker compose -f docker-compose.agent.yml up -d +# → docker compose up -d (compose auto-discovers this file + .env) # The worker image pulls anonymously from the public registry — no # `docker login` needed. (Fallback if the registry is ever re-privatized: # Sam will send login instructions with the kit credentials.) # Full walkthrough: README.md in this repo. # (Running a SECOND agent on the same box: each agent needs its OWN -# credentials — copy this file to e.g. docker-compose.agent2.yml AND create +# credentials — copy this file to e.g. compose.agent2.yml AND create # a second env file (.env-agent2), then run it with -# `docker compose --env-file .env-agent2 -f docker-compose.agent2.yml up -d`. +# `docker compose --env-file .env-agent2 -f compose.agent2.yml up -d`. # In the copy, change the project `name:` and `container_name` below — # otherwise compose project + container collide with the first agent. Two # agents sharing one .env would share one auth record — unsupported and