82931684eb
CI / Test (server-http) (pull_request) Successful in 21s
CI / Test (rest) (pull_request) Successful in 23s
CI / Test (store) (pull_request) Successful in 36s
CI / Lint (pull_request) Successful in 27s
CI / Build (windows/amd64) (pull_request) Successful in 26s
CI / Build (linux/arm64) (pull_request) Successful in 23s
CI / Build (linux/amd64) (pull_request) Successful in 1m24s
e2e / Playwright vs docker-compose (pull_request) Failing after 2m52s
P5-01 — Documentation site under docs/book/ rendered with mdBook
(downloaded via Makefile, same static-binary pattern as Tailwind).
Structured chapters: getting started, concepts, operations,
security, reference. `make docs` / `make docs-watch`. Generated
output gitignored.
P5-02 — CONTRIBUTING.md rewritten from placeholder to a full
guide. CODE_OF_CONDUCT.md adapted from Contributor Covenant for a
single-maintainer project. .gitea/issue_template/{bug,feature}.md
and PULL_REQUEST_TEMPLATE.md.
P5-04 — Six README screenshots captured live from a fresh server
bootstrap (login, empty dashboard, add-host, alerts, settings,
audit log). README rewritten to centre the screenshot grid and
link out to the docs site.
P5-05 — SECURITY.md with disclosure policy (3-day ack, 30-day
default window), scope in/out, threat-model summary, operator
hardening checklist. Mirrored as a docs-site chapter.
P5-06 — End-to-end test harness. e2e/compose.e2e.yml brings up
server + sibling Linux agent (alpine + restic) + restic/rest-server.
Agent uses announce-and-approve so Playwright can drive the full
operator flow: bootstrap → login → accept pending → backup →
verify terminal status. Second spec scrapes /metrics to assert
the P6-04 endpoint surface. .gitea/workflows/e2e.yml runs on every
PR; local how-to in docs/e2e.md.
28 lines
926 B
Bash
Executable File
28 lines
926 B
Bash
Executable File
#!/bin/sh
|
|
# Entrypoint for the e2e agent container.
|
|
#
|
|
# Three states:
|
|
# 1. Already enrolled (agent.yaml has a bearer): run the agent.
|
|
# 2. Token supplied via $RM_ENROL_TOKEN: enrol then run.
|
|
# 3. Otherwise: announce against $RM_SERVER and wait for an admin to
|
|
# accept us. The announce flow blocks until accepted, then drops
|
|
# straight into the normal run loop, so this is the test-friendly
|
|
# path.
|
|
set -eu
|
|
|
|
CFG="${RM_AGENT_CONFIG:-/etc/restic-manager/agent.yaml}"
|
|
SERVER="${RM_SERVER:?set RM_SERVER}"
|
|
|
|
if [ -f "$CFG" ] && grep -q '^agent_token:' "$CFG"; then
|
|
exec restic-manager-agent -config "$CFG"
|
|
fi
|
|
|
|
if [ -n "${RM_ENROL_TOKEN:-}" ]; then
|
|
exec restic-manager-agent -config "$CFG" \
|
|
-enroll-server "$SERVER" \
|
|
-enroll-token "$RM_ENROL_TOKEN"
|
|
fi
|
|
|
|
# Announce-and-approve: blocks until an admin accepts, then runs.
|
|
exec restic-manager-agent -config "$CFG" -enroll-server "$SERVER"
|