Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
81 lines
1.9 KiB
Markdown
81 lines
1.9 KiB
Markdown
# Szurubooru {#module-services-szurubooru}
|
|
|
|
An image board engine dedicated for small and medium communities.
|
|
|
|
## Configuration {#module-services-szurubooru-basic-usage}
|
|
|
|
By default the module will execute Szurubooru server only, the web client only contains static files that can be reached via a reverse proxy.
|
|
|
|
Here is a basic configuration:
|
|
|
|
```nix
|
|
{
|
|
services.szurubooru = {
|
|
enable = true;
|
|
|
|
server = {
|
|
port = 8080;
|
|
|
|
settings = {
|
|
domain = "https://szurubooru.domain.tld";
|
|
secretFile = /path/to/secret/file;
|
|
};
|
|
};
|
|
|
|
database = {
|
|
passwordFile = /path/to/secret/file;
|
|
};
|
|
};
|
|
}
|
|
```
|
|
|
|
## Reverse proxy configuration {#module-services-szurubooru-reverse-proxy-configuration}
|
|
|
|
The preferred method to run this service is behind a reverse proxy not to expose an open port. For example, here is a minimal Nginx configuration:
|
|
|
|
```nix
|
|
{
|
|
services.szurubooru = {
|
|
enable = true;
|
|
|
|
server = {
|
|
port = 8080;
|
|
# ...
|
|
};
|
|
|
|
# ...
|
|
};
|
|
|
|
services.nginx.virtualHosts."szurubooru.domain.tld" = {
|
|
locations = {
|
|
"/api/".proxyPass = "http://localhost:8080/";
|
|
"/data/".root = config.services.szurubooru.dataDir;
|
|
"/" = {
|
|
root = config.services.szurubooru.client.package;
|
|
tryFiles = "$uri /index.htm";
|
|
};
|
|
};
|
|
};
|
|
}
|
|
```
|
|
|
|
## Extra configuration {#module-services-szurubooru-extra-config}
|
|
|
|
Not all configuration options of the server are available directly in this module, but you can add them in `services.szurubooru.server.settings`:
|
|
|
|
```nix
|
|
{
|
|
services.szurubooru = {
|
|
enable = true;
|
|
|
|
server.settings = {
|
|
domain = "https://szurubooru.domain.tld";
|
|
delete_source_files = "yes";
|
|
contact_email = "example@domain.tld";
|
|
};
|
|
};
|
|
}
|
|
```
|
|
|
|
You can find all of the options in the default config file available [here](https://github.com/rr-/szurubooru/blob/master/server/config.yaml.dist).
|