English
Projects & Services
A project groups related services, usually those of one application. The project itself does not run: only its services start and stop.
A service is a process Runeya can start, stop and watch. It carries its command or commands, its working directory, its variables, its log parsers, and the agent it runs on.
Declaring a service
A service needs a name and a command. The other fields are optional.
| Field | What it is for |
|---|---|
| Commands | A service can hold several (dev, build, test…), each with its label and, if needed, its own directory. |
| Ports | The ports the service occupies. They are available in its variables, for example {{service.PORT}}. |
| Groups | Free-form tags to organize a project's services. |
| Local URLs | Domains served locally, each mapped to a port (see the Traefik proxy in agent settings). |
| Auto-restart | Restart the service automatically when it exits with an error. |
| Health check | An HTTP request or a command run at a regular interval. Its result shows in the UI. |
| Shortcuts | One-off commands run on demand from the service page. |
| Log sources | Files, MongoDB or MySQL, in addition to standard output. See Log sources. |
Native or Docker
A service runs either directly on the agent's machine or in a Docker container. The image can come from a registry or be built on the spot, and commands can run when the container starts. The service's other settings are the same in both cases.
Controlling a service
The buttons on a service's page start, stop and restart it.
- Stop sends SIGTERM, then SIGKILL if the process is still running after 10 seconds. This delay gives a server time to close its connections.
- Delete removes the service's configuration, never your files.
A service is stopped, starting, running or errored. When a health check is configured, its health (healthy, unhealthy, unknown) is tracked separately. A service can be running and unhealthy at the same time.