nixos/litestream: convert manual chapter to MD

pennae d075d2c2 ce319f60

Changed files
+79 -29
nixos
modules
services
network-filesystems
+3
nixos/modules/services/network-filesystems/litestream/default.nix
···
};
users.groups.litestream = {};
};
+
+
# Don't edit the docbook xml directly, edit the md and generate it:
+
# `pandoc litestream.md -t docbook --top-level-division=chapter --extract-media=media -f markdown-smart --lua-filter ../../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > litestream.xml`
meta.doc = ./litestream.xml;
}
+52
nixos/modules/services/network-filesystems/litestream/litestream.md
···
+
# Litestream {#module-services-litestream}
+
+
[Litestream](https://litestream.io/) is a standalone streaming
+
replication tool for SQLite.
+
+
## Configuration {#module-services-litestream-configuration}
+
+
Litestream service is managed by a dedicated user named `litestream`
+
which needs permission to the database file. Here's an example config which gives
+
required permissions to access [grafana database](#opt-services.grafana.settings.database.path):
+
```
+
{ pkgs, ... }:
+
{
+
users.users.litestream.extraGroups = [ "grafana" ];
+
+
systemd.services.grafana.serviceConfig.ExecStartPost = "+" + pkgs.writeShellScript "grant-grafana-permissions" ''
+
timeout=10
+
+
while [ ! -f /var/lib/grafana/data/grafana.db ];
+
do
+
if [ "$timeout" == 0 ]; then
+
echo "ERROR: Timeout while waiting for /var/lib/grafana/data/grafana.db."
+
exit 1
+
fi
+
+
sleep 1
+
+
((timeout--))
+
done
+
+
find /var/lib/grafana -type d -exec chmod -v 775 {} \;
+
find /var/lib/grafana -type f -exec chmod -v 660 {} \;
+
'';
+
+
services.litestream = {
+
enable = true;
+
+
environmentFile = "/run/secrets/litestream";
+
+
settings = {
+
dbs = [
+
{
+
path = "/var/lib/grafana/data/grafana.db";
+
replicas = [{
+
url = "s3://mybkt.litestream.io/grafana";
+
}];
+
}
+
];
+
};
+
};
+
}
+
```
+24 -29
nixos/modules/services/network-filesystems/litestream/litestream.xml
···
-
<chapter xmlns="http://docbook.org/ns/docbook"
-
xmlns:xlink="http://www.w3.org/1999/xlink"
-
xmlns:xi="http://www.w3.org/2001/XInclude"
-
version="5.0"
-
xml:id="module-services-litestream">
-
<title>Litestream</title>
-
<para>
-
<link xlink:href="https://litestream.io/">Litestream</link> is a standalone streaming
-
replication tool for SQLite.
-
</para>
-
-
<section xml:id="module-services-litestream-configuration">
-
<title>Configuration</title>
-
+
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="module-services-litestream">
+
<title>Litestream</title>
<para>
-
Litestream service is managed by a dedicated user named <literal>litestream</literal>
-
which needs permission to the database file. Here's an example config which gives
-
required permissions to access <link linkend="opt-services.grafana.settings.database.path">
-
grafana database</link>:
-
<programlisting>
+
<link xlink:href="https://litestream.io/">Litestream</link> is a
+
standalone streaming replication tool for SQLite.
+
</para>
+
<section xml:id="module-services-litestream-configuration">
+
<title>Configuration</title>
+
<para>
+
Litestream service is managed by a dedicated user named
+
<literal>litestream</literal> which needs permission to the
+
database file. Here's an example config which gives required
+
permissions to access
+
<link linkend="opt-services.grafana.settings.database.path">grafana
+
database</link>:
+
</para>
+
<programlisting>
{ pkgs, ... }:
{
-
users.users.litestream.extraGroups = [ "grafana" ];
+
users.users.litestream.extraGroups = [ &quot;grafana&quot; ];
-
systemd.services.grafana.serviceConfig.ExecStartPost = "+" + pkgs.writeShellScript "grant-grafana-permissions" ''
+
systemd.services.grafana.serviceConfig.ExecStartPost = &quot;+&quot; + pkgs.writeShellScript &quot;grant-grafana-permissions&quot; ''
timeout=10
while [ ! -f /var/lib/grafana/data/grafana.db ];
do
-
if [ "$timeout" == 0 ]; then
-
echo "ERROR: Timeout while waiting for /var/lib/grafana/data/grafana.db."
+
if [ &quot;$timeout&quot; == 0 ]; then
+
echo &quot;ERROR: Timeout while waiting for /var/lib/grafana/data/grafana.db.&quot;
exit 1
fi
···
services.litestream = {
enable = true;
-
environmentFile = "/run/secrets/litestream";
+
environmentFile = &quot;/run/secrets/litestream&quot;;
settings = {
dbs = [
{
-
path = "/var/lib/grafana/data/grafana.db";
+
path = &quot;/var/lib/grafana/data/grafana.db&quot;;
replicas = [{
-
url = "s3://mybkt.litestream.io/grafana";
+
url = &quot;s3://mybkt.litestream.io/grafana&quot;;
}];
}
];
···
};
}
</programlisting>
-
</para>
-
</section>
-
+
</section>
</chapter>