nix-home/modules/cloud/writefreely/default.nix

66 lines
1.5 KiB
Nix

{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.cloud.writefreely;
in
{
options.cloud.writefreely = {
enable = mkEnableOption "Enable the write.as instance";
package = mkOption {
type = types.package;
default = pkgs.writefreely;
description = "The writefreely package to use";
};
host = mkOption {
type = types.str;
description = "The hostname for the instance";
};
site.title = mkOption {
type = types.str;
default = "Kagami's Writings";
description = "The site's title";
};
site.description = mkOption {
type = types.str;
default = "Just random Kagami thoughts in written form.";
description = "The site's description";
};
};
config = mkIf cfg.enable (
let
host = cfg.host;
port = 18074;
in
{
# traefik
cloud.traefik.hosts.writefreely = { inherit host port; };
services.writefreely = {
enable = true;
package = cfg.package;
host = cfg.host;
settings = {
server.port = port;
app = {
host = "https://${cfg.host}";
site_name = cfg.site.title;
site_description = cfg.site.description;
single_user = true;
min_username_len = 3;
federation = true;
public_stats = true;
monetization = false;
};
};
database.type = "sqlite3";
admin.name = "nki";
};
}
);
}