mirror of
https://github.com/juspay/services-flake.git
synced 2024-09-17 15:28:33 +03:00
docs(guide): dataDir init; unix-domain socket length limitation (#144)
--------- Co-authored-by: Sridhar Ratnakumar <3998+srid@users.noreply.github.com>
This commit is contained in:
parent
8c25972cfb
commit
fb48b6b612
4
doc/guide.md
Normal file
4
doc/guide.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
# Guide
|
||||||
|
|
||||||
|
- [[datadir]]#
|
33
doc/guide/datadir.md
Normal file
33
doc/guide/datadir.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# Data directory
|
||||||
|
|
||||||
|
`dataDir` is a an option present in all the services, allowing users to specify the directory where a given service will store its data files. Essentially, it is to persist the state of the service even when you exit the `process-compose` window.
|
||||||
|
|
||||||
|
The `dataDir` of these services tend to take *relative* paths, which are usually relative to the project root. As such, when you run these services using `nix run`, their data files are created relative to whichever directory you are in. If you want these data files to always reside relative to the project directory, instead of using `nix run` consider wrapping the process-compose packages in script, via either [mission-control](https://community.flake.parts/mission-control) module or a [justfile](https://just.systems/). `services-flake` uses the latter.
|
||||||
|
|
||||||
|
{#default-structure}
|
||||||
|
## Default data directory structure
|
||||||
|
|
||||||
|
Let's say your project defines the following services:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
# Inside `perSystem.process-compose.<name>`
|
||||||
|
services.postgres.pg.enable = true;
|
||||||
|
services.redis.rd.enable = true;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The data directory structure will look like this:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
|-- data
|
||||||
|
| |-- pg
|
||||||
|
| |-- rd
|
||||||
|
```
|
||||||
|
|
||||||
|
## Gotchas
|
||||||
|
|
||||||
|
{#socket-path}
|
||||||
|
### Unix-domain socket path is too long
|
||||||
|
|
||||||
|
unix socket length is limited to [about 100 chars](https://linux.die.net/man/7/unix). If your data directory is nested too deep, you will have to set `dataDir` option of the service to a shorter path as a workaround.
|
Loading…
Reference in New Issue
Block a user