mirror of
https://github.com/juspay/services-flake.git
synced 2024-09-19 08:17:11 +03:00
docs(start): Improve a bit
This commit is contained in:
parent
24a7b57527
commit
f7e6af5ec3
17
doc/start.md
17
doc/start.md
@ -17,18 +17,22 @@ nix run
|
|||||||
## Existing project
|
## Existing project
|
||||||
|
|
||||||
services-flake uses [process-compose-flake](https://community.flake.parts/process-compose-flake) to manage the services. Let's first import the `flake-parts` modules provided by `process-compose-flake` and `services-flake` in your flake:
|
services-flake uses [process-compose-flake](https://community.flake.parts/process-compose-flake) to manage the services. Let's first import the `flake-parts` modules provided by `process-compose-flake` and `services-flake` in your flake:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
{
|
{
|
||||||
|
# 1. Add the inputs
|
||||||
inputs.process-compose-flake.url = "github:Platonic-Systems/process-compose-flake";
|
inputs.process-compose-flake.url = "github:Platonic-Systems/process-compose-flake";
|
||||||
inputs.services-flake.url = "github:juspay/services-flake";
|
inputs.services-flake.url = "github:juspay/services-flake";
|
||||||
...
|
...
|
||||||
outputs = inputs:
|
outputs = inputs:
|
||||||
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
imports = [
|
imports = [
|
||||||
|
# 2. Import the flake-module
|
||||||
inputs.process-compose-flake.flakeModule
|
inputs.process-compose-flake.flakeModule
|
||||||
];
|
];
|
||||||
perSystem = { ... }: {
|
perSystem = { ... }: {
|
||||||
process-compose."default" = {
|
# 3. Create the process-compose configuration, importing services-flake
|
||||||
|
process-compose."myservices" = {
|
||||||
imports = [
|
imports = [
|
||||||
inputs.services-flake.processComposeModules.default
|
inputs.services-flake.processComposeModules.default
|
||||||
];
|
];
|
||||||
@ -37,25 +41,28 @@ services-flake uses [process-compose-flake](https://community.flake.parts/proces
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
As an example, let's add the `redis` service to your flake:
|
As an example, let's add the `redis` service to your flake:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
# Inside `perSystem.process-compose.default`
|
# Inside `perSystem.process-compose."myservices"`
|
||||||
{
|
{
|
||||||
services.redis."r1".enable = true;
|
services.redis."r1".enable = true;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Time to run the service:
|
Time to run the service:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
nix run
|
nix run .#myservices
|
||||||
```
|
```
|
||||||
|
|
||||||
## Under the hood
|
## Under the hood
|
||||||
|
|
||||||
- The `services-flake` module configures [process settings](https://community.flake.parts/process-compose-flake#usage) for a service. In simple terms, it handles stuff like health checks, restart policies, setup scripts, etc. by using the easy to configure APIs provided by `process-compose-flake`.
|
- The `services-flake` module configures [process settings](https://community.flake.parts/process-compose-flake#usage) for a service. In simple terms, it handles stuff like health checks, restart policies, setup scripts, etc. by using the easy to configure APIs provided by `process-compose-flake`.
|
||||||
- The `process-compose-flake` module uses these settings to generate `packages.${system}.default`[^how-default] (`nix run` above, runs this package by default), which runs [process-compose](https://github.com/F1bonacc1/process-compose) with the generated YAML configuration[^sample-config].
|
- The `process-compose-flake` module uses these settings to generate `packages.${system}.myservices`[^how-default] (`nix run .#myservices` above, [runs](https://nixos.asia/en/nix-first#run) this package by default), which runs [process-compose](https://github.com/F1bonacc1/process-compose) with the generated YAML configuration[^sample-config].
|
||||||
|
|
||||||
[^how-default]: `default` is the name of the process group that is derived from `process-compose.<name>` in `perSystem.process-compose`.
|
[^how-default]: `myservices` is the name of the process group that is derived from `process-compose.<name>` in `perSystem.process-compose`.
|
||||||
|
|
||||||
[^sample-config]: See the example configuration from the [getting started](https://f1bonacc1.github.io/process-compose/intro/) section of the process-compose docs.
|
[^sample-config]: See the example configuration from the [getting started](https://f1bonacc1.github.io/process-compose/intro/) section of the process-compose docs.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user