kbin

Decentralized content aggregator and microblogging platform running on the Fediverse network.

This project is funded by NLnet through these subgrants:

Options

programs.kbin
programs.kbin.enable

Whether to enable kbin.

Type:
boolean
Default:
false
services.kbin.domain

Domain to serve on.

Type:
string
Default:
"localhost"
services.kbin.enable

Whether to enable Kbin.

Type:
boolean
Default:
false
services.kbin.group

Primary group of the user running Kbin.

Type:
string
Default:
"kbin"
services.kbin.package

The kbin package to use.

Type:
package
Default:
pkgs.kbin
services.kbin.secrets

Paths to files containing secrets, keyed by the respective environment variable.

Type:
attribute set of (null or absolute path)
Default:
{ }
services.kbin.secrets.APP_SECRET

Path to a file that contains the secret APP_SECRET.

Type:
null or absolute path
Default:
null
services.kbin.secrets.MERCURE_JWT_SECRET

Path to a file that contains the secret MERCURE_JWT_SECRET.

Type:
null or absolute path
Default:
null
services.kbin.secrets.OAUTH_ENCRYPTION_KEY

Path to a file that contains the secret OAUTH_ENCRYPTION_KEY.

Type:
null or absolute path
Default:
null
services.kbin.secrets.OAUTH_PASSPHRASE

Path to a file that contains the secret OAUTH_PASSPHRASE.

Type:
null or absolute path
Default:
null
services.kbin.secrets.POSTGRES_PASSWORD

Path to a file that contains the secret POSTGRES_PASSWORD.

Type:
null or absolute path
Default:
null
services.kbin.secrets.RABBITMQ_PASSWORD

Path to a file that contains the secret RABBITMQ_PASSWORD.

Type:
null or absolute path
Default:
null
services.kbin.secrets.REDIS_PASSWORD

Path to a file that contains the secret REDIS_PASSWORD.

Type:
null or absolute path
Default:
null
services.kbin.settings

Enviroment variables used to configure Kbin.

Type:
attribute set of string
services.kbin.user

User to run Kbin as.

Type:
string
Default:
"kbin"

Examples

{ ... }:
{
  networking.firewall.allowedTCPPorts = [ 80 ];

  services = {
    kbin = {
      enable = true;
      # settings.APP_DEBUG = "1";
    };

    postgresql = {
      enable = true;
      authentication = "host all all 127.0.0.1/32 trust";
      ensureUsers = [
        {
          name = "kbin";
          ensureDBOwnership = true;
        }
      ];
      ensureDatabases = [ "kbin" ];
      enableTCPIP = true;
    };
  };
}