Add /docs/ directory with user and technical documentation extracted from README, AGENTS.md, and source code. Add scripts/sync_wiki.py to sync docs to Gitea wiki via API. Add scripts/doc_coverage.py to check CLI commands, modules, and CI scripts are documented. Add sync-wiki.yml workflow for auto-sync on merge and release. Slim down README.md to lean entry point. 28 new unit tests, 100% coverage maintained. Closes GRM-36
1.7 KiB
FAQ
How do I obtain the Gitea registration token?
The runner registration token is obtained from your Gitea instance: Admin → Actions → Runners → Create Registration Token. Set it as GITEA_REGISTRATION_TOKEN in your .env file or pass it via --token on the command line.
How do I skip the sudo password prompt for automation?
Configure passwordless sudo on the remote host and pass --no-ask-become-pass to the CLI command. This is recommended for CI/CD pipelines.
Can I run multiple runners on the same host?
Yes. Each runner instance is fully isolated with its own system user (grm-<name>), rootless Docker daemon, data directory, and systemd user service. Install additional runners with different --name values and manage them independently by name.
Why does my runner appear offline after installation?
Check that GITEA_URL and GITEA_REGISTRATION_TOKEN are correct, verify the runner service is running with sudo -u grm-<name> systemctl --user status gitea-runner, and check the logs for registration errors. You can also confirm the runner appears as Online in the Gitea UI under Actions → Runners.
What does the "Event loop is closed" warning mean?
This is a harmless cleanup traceback from Molecule's Docker driver when the test process is interrupted. It does not indicate a test failure.
Where are runner connection details stored?
GRM stores each runner's connection details (host, user, SSH key, Gitea URL) in a local JSON registry at ~/.local/share/grm/runners.json. After installation, lifecycle commands work by runner name only — you can override any stored value by passing the corresponding flag.