Kazarma
Matrix bridge for the ActivityPub network
Declared in: projects/Kazarma/default.nix
Demo
Implement missing demoOptions
services.kazarma
- 
  
  
Whether to enable Kazarma.
- Type:
 boolean- Default:
 false- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
The kazarma package to use.
- Type:
 package- Default:
 pkgs.kazarma- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
Configuration for Kazarma, will be passed as environment variables. See https://docs.kazar.ma/administrator-guide/configuration.
- Type:
 open submodule of attribute set of string- Default:
 { }- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
ActivityPub server domain name.
- Type:
 string- Default:
 "localhost"- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
Database name.
- Type:
 string- Default:
 "kazarma"- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
Database host address.
- Type:
 string- Default:
 "127.0.0.1"- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
Database password. It's recommended to use systemd.services.kazarma.environmentFiles instead.
- Type:
 string- Default:
 "kazarma"- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
Database user.
- Type:
 string- Default:
 "kazarma"- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
Kazarma host address.
- Type:
 string- Default:
 "localhost"- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
Matrix server domain name.
- Type:
 string- Default:
 "localhost"- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
Matrix server URL.
- Type:
 string- Default:
 "http://127.0.0.1:8008"- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
Kazarma port.
- Type:
 string- Default:
 "4000"- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 - 
  
  
The Erlang Distribution cookie. It's recommend to use a long and randomly generated string such as:
head -c 40 /dev/random | base32. It's also recommended to only use alphanumeric characters and underscores.- Type:
 string- Declared in:
 - projects/Kazarma/services/kazarma/module.nix
 
 
services.kazarma.enable
services.kazarma.package
services.kazarma.settings
services.kazarma.settings.ACTIVITY_PUB_DOMAIN
services.kazarma.settings.DATABASE_DB
services.kazarma.settings.DATABASE_HOST
services.kazarma.settings.DATABASE_PASSWORD
services.kazarma.settings.DATABASE_USERNAME
services.kazarma.settings.HOST
services.kazarma.settings.MATRIX_DOMAIN
services.kazarma.settings.MATRIX_URL
services.kazarma.settings.PORT
services.kazarma.settings.RELEASE_COOKIE
Examples
Enable kazarma
{ config, pkgs, ... }: let kazarmaCfg = config.services.kazarma.settings; # https://docs.kazar.ma/administrator-guide/erlang-release#configure # openssl rand -hex 64 ACCESS_TOKEN = "4f85399b28b835cbd031e8cafb4b30e89cb2462df0aac15024b1e4d0bc75a656f1388a5b61103dec7dac80081b71a18bfe16b4f6c90238d3c9a22bd56e433d32"; HOMESERVER_TOKEN = "e830634167755875c63f92bf33558e0a25f9b57ab8e8d9810ecf1d8c02c6e9f8bb928541fb122ac78e8d9673a923eead7d22c7fe826c86689deba58c227fa3d7"; SECRET_KEY_BASE = "69c359e216fc4bde402905cdcae0b86bfe3ad16277d40241fe2afcdfb991fa6996424970b12ffd877e5263148bbf275d8520bcf692a3741a6d858ca6e9f5087b"; in { services.kazarma = { enable = true; settings = { RELEASE_COOKIE = "CDODIMOGYEETMVEJAAFQNXNQ7RE6VWBVD4IGN5GTAA6U4WPNVFPQ===="; inherit ACCESS_TOKEN HOMESERVER_TOKEN SECRET_KEY_BASE; }; }; systemd.services.kazarma = { requires = [ "postgresql.target" "matrix-synapse.service" "honk.service" ]; after = [ "postgresql.target" "matrix-synapse.service" "honk.service" ]; }; services.postgresql = { enable = true; initialScript = let synapseDbCfg = config.services.matrix-synapse.settings.database.args; in pkgs.writeText "init-sql-script" '' CREATE ROLE "${kazarmaCfg.DATABASE_USERNAME}" LOGIN PASSWORD '${kazarmaCfg.DATABASE_PASSWORD}'; CREATE DATABASE "${kazarmaCfg.DATABASE_DB}" OWNER "${kazarmaCfg.DATABASE_USERNAME}"; CREATE ROLE "${synapseDbCfg.user}" LOGIN PASSWORD '${synapseDbCfg.password}'; CREATE DATABASE "${synapseDbCfg.database}" OWNER "${synapseDbCfg.user}" TEMPLATE template0 LC_COLLATE = "C" LC_CTYPE = "C"; ''; }; # ActivityPub server services.honk = { enable = true; username = "username"; servername = "servername"; passwordFile = pkgs.writeText ''honk-password'' "password"; }; services.matrix-synapse = { enable = true; settings = { database = { name = "psycopg2"; args.password = "matrix-synapse"; }; app_service_config_files = [ # https://docs.kazar.ma/administrator-guide/homeserver-configuration (pkgs.writeText "kazarma.yaml" ( builtins.toJSON { id = "Kazarma"; url = "http://${kazarmaCfg.HOST}:${kazarmaCfg.PORT}/matrix/"; as_token = ACCESS_TOKEN; hs_token = HOMESERVER_TOKEN; sender_localpart = "_kazarma"; namespaces = { aliases = [ { exclusive = true; regex = "#_ap_.+___.+"; } ]; users = [ { exclusive = true; regex = "@_ap_.+___.+"; } ]; }; } )) ]; }; }; }
Declared in: projects/Kazarma/services/kazarma/examples/basic.nix
This project is funded by NLnet through these subgrants:
- Entrust
 - Kazarma-Release
 - Review
 - Kazarma
 
Related links: