# Runnable service

A step of the [Cloud application](https://gradus.kazet.blog/tree/cloud-application) tree on Gradus, in the Environment setup area: First commit to first deploy.

Page: https://gradus.kazet.blog/tree/cloud-application/step/runnable-service

Add a package manifest with a lockfile and one entrypoint that starts an HTTP server with a health route, reading its port from the environment, so the service runs locally with a single command.

Usually comes after: [Language toolchain](https://gradus.kazet.blog/tree/cloud-application/step/language-toolchain).

Leads to: [Continuous integration](https://gradus.kazet.blog/tree/cloud-application/step/ci-pipeline), [Unit tests](https://gradus.kazet.blog/tree/cloud-application/step/unit-tests), [Routing & middleware](https://gradus.kazet.blog/tree/cloud-application/step/routing-and-middleware).

## Prompt for your AI assistant

```
Set up a package manifest and lockfile for this project in the appropriate ecosystem, with pinned dependency versions. Add a single entrypoint that starts a minimal HTTP server with a /health route returning 200, reading the port from the PORT environment variable. Document the one command that runs it locally in the README.
```

Every step of the tree: https://gradus.kazet.blog/tree/cloud-application/llms.txt
