Files
grm/docs/user/faq.md
T

2.7 KiB

FAQ

How do I obtain the Gitea registration token?

There are three levels of registration tokens, depending on which repositories the runner should serve:

  • Instance-level — Site Administration → Actions → Runners → Create Registration Token. The runner will handle jobs from all repositories.
  • Organization-level — Organization → Settings → Actions → Runners → Create Registration Token. The runner will only handle jobs from repositories in that organization.
  • Repository-level — Repository → Settings → Actions → Runners → Create Registration Token. The runner will only handle jobs from that specific repository.

Set the token as GITEA_REGISTRATION_TOKEN in your .env file or pass it via --token on the command line.

What is the REPO_TOKEN and do I need it?

REPO_TOKEN is a Gitea admin API token used for optional post-install verification. When set, GRM queries the Gitea API after installation to confirm the runner appears in the runner list. This is purely informational — the integration test passes/fails based on the .runner file and systemd service, not the API check.

To generate one: Settings → Applications → Generate New Token, with the admin scope (or at minimum read:user, read:repository, read:admin).

If you skip it, GRM will still verify the runner correctly — it just won't show the extra API confirmation.

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.