Skip to content

Akkoma

services.akkoma.config

Configuration for Akkoma. The attributes are serialised to Elixir DSL.

Refer to https://docs.akkoma.dev/stable/configuration/cheatsheet/ for configuration options.

Settings containing secret data should be set to an attribute set containing the attribute _secret - a string pointing to a file containing the value the option should be set to.

Type: attribute set of attribute set of (Elixir value)

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":joken".":default_signer"

JWT signing secret.

The attribute _secret should point to a file containing the secret.

This secret can be generated as follows:

$ tr -dc 'A-Za-z0-9-._~' </dev/urandom | head -c 64

Type: secret value

Default

{_secret = "/var/lib/secrets/akkoma/jwt-signer";}

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":logger".":ex_syslogger".level

Log level.

Refer to https://hexdocs.pm/logger/Logger.html#module-levels for options.

Type: non-empty string

Default

":info"

Example

":warning"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma".":frontends"

Frontend configuration.

Users should rely on the default value and prefer to configure frontends through {option}config.services.akkoma.frontends.

Type: Elixir value

Default

lib.mapAttrs (key: val:(pkgs.formats.elixirConf { }).lib.mkMap { name = val.name; ref = val.ref; })config.services.akkoma.frontends;

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma".":instance".description

Instance description. Type: non-empty string

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma".":instance".email

Instance administrator email. Type: non-empty string

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma".":instance".name

Instance name. Type: non-empty string

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma".":instance".static_dir

Directory of static files.

This directory can be built using a derivation, or it can be managed as mutable state by setting the option to an absolute path.

Type: path

Default

Derivation gathering the following paths into a directory:

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma".":instance".upload_dir

Directory where Akkoma will put uploaded files.

Type: absolute path

Default

"/var/lib/akkoma/uploads"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma".":media_proxy".base_url

Base path for the media proxy. Whilst this can just be set to a subdirectory of the main domain, it is now recommended to use a different subdomain.

Type: null or non-empty string

Default

if lib.versionOlder config.system.stateVersion "24.05"then "$\{httpConf.scheme}://$\{httpConf.host}:$\{builtins.toString httpConf.port}"else null;

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma".":media_proxy".enabled

Whether to enable proxying of remote media through the instance's proxy.

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma"."Pleroma.Repo"

Database configuration.

Refer to https://hexdocs.pm/ecto_sql/Ecto.Adapters.Postgres.html#module-connection-options for options.

Type: Elixir value

Default

{adapter = (pkgs.formats.elixirConf { }).lib.mkRaw "Ecto.Adapters.Postgres";socket_dir = "/run/postgresql";username = config.services.akkoma.user;database = "akkoma";}

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma"."Pleroma.Upload".base_url

Base path which uploads will be stored at. Whilst this can just be set to a subdirectory of the main domain, it is now recommended to use a different subdomain.

Type: non-empty string

Default

if lib.versionOlder config.system.stateVersion "24.05"then "$\{httpConf.scheme}://$\{httpConf.host}:$\{builtins.toString httpConf.port}/media/"else null;

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma"."Pleroma.Web.Endpoint".http.ip

Listener IP address or Unix socket path.

The value is automatically converted to Elixir’s internal address representation during serialisation.

Type: absolute path or IPv4 or IPv6 address

Default

"/run/akkoma/socket"

Example

"::1"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma"."Pleroma.Web.Endpoint".http.port

Listener port number.

Must be 0 if using a Unix socket.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default

if isAbsolutePath config.services.akkoma.config.:pleroma"."Pleroma.Web.Endpoint".http.ip then 0 else 4000;

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma"."Pleroma.Web.Endpoint".live_view.signing_salt

LiveView signing salt.

The attribute _secret should point to a file containing the secret.

This salt can be generated as follows:

$ tr -dc 'A-Za-z0-9-._~' </dev/urandom | head -c 8

Type: secret value

Default

{_secret = "/var/lib/secrets/akkoma/liveview-salt";}

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma"."Pleroma.Web.Endpoint".secret_key_base

Secret key used as a base to generate further secrets for encrypting and signing data.

The attribute _secret should point to a file containing the secret.

This key can generated can be generated as follows:

$ tr -dc 'A-Za-z-._~' </dev/urandom | head -c 64

Type: secret value

Default

{_secret = "/var/lib/secrets/akkoma/key-base";}

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma"."Pleroma.Web.Endpoint".signing_salt

Signing salt.

The attribute _secret should point to a file containing the secret.

This salt can be generated as follows:

$ tr -dc 'A-Za-z0-9-._~' </dev/urandom | head -c 8

Type: secret value

Default

{_secret = "/var/lib/secrets/akkoma/signing-salt";}

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma"."Pleroma.Web.Endpoint".url.host

Domain name of the instance. Type: non-empty string

Default

config.networking.fqdn

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma"."Pleroma.Web.Endpoint".url.port

External port number. Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default

443

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":pleroma"."Pleroma.Web.Endpoint".url.scheme

URL scheme. Type: non-empty string

Default

"https"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":web_push_encryption"

Web Push Notifications configuration.

The necessary key pair can be generated as follows:

$ nix-shell -p nodejs --run 'npx web-push generate-vapid-keys'

Type: Elixir value

Default

{ }

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":web_push_encryption".":vapid_details".private_key

base64-encoded private ECDH key.

The attribute _secret should point to a file containing the secret.

Type: secret value

Default

{_secret = "/var/lib/secrets/akkoma/vapid-private";}

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":web_push_encryption".":vapid_details".public_key

base64-encoded public ECDH key. Type: non-empty string or secret value

Default

{_secret = "/var/lib/secrets/akkoma/vapid-public";}

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.config.":web_push_encryption".":vapid_details".subject

mailto URI for administrative contact. Type: non-empty string

Default

"mailto:${config.services.akkoma.config.":pleroma".":instance".email}"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.dist.address

Listen address for Erlang distribution protocol and Port Mapper Daemon (epmd).

Type: IPv4 or IPv6 address

Default

"127.0.0.1"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.dist.cookie

Erlang release cookie.

If set to null, a temporary random cookie will be generated.

Type: null or secret value

Default

null

Example

{_secret = "/var/lib/secrets/akkoma/releaseCookie";}

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.dist.epmdPort

TCP port to bind Erlang Port Mapper Daemon to. Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default

4369

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.dist.extraFlags

Extra flags to pass to Erlang Type: list of string

Default

[ ]

Example

["+sbwt""none""+sbwtdcpu""none""+sbwtdio""none"]

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.dist.portMax

Upper bound for Erlang distribution protocol TCP port. Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default

65535

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.dist.portMin

Lower bound for Erlang distribution protocol TCP port. Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default

49152

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.enable

Whether to enable Akkoma. Type: boolean

Default

false

Example

true

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.extraPackages

List of extra packages to include in the executable search path of the service unit. These are needed by various configurable components such as:

  • ExifTool for the Pleroma.Upload.Filter.Exiftool upload filter,
  • ImageMagick for still image previews in the media proxy as well as for the Pleroma.Upload.Filters.Mogrify upload filter, and
  • ffmpeg for video previews in the media proxy.

Type: list of package

Default

with pkgs; [ exiftool graphicsmagick-imagemagick-compat ffmpeg_5-headless ]

Example

with pkgs; [ exiftool imagemagick ffmpeg_5-full ]

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.extraStatic

Attribute set of extra packages to add to the static files directory.

Do not add frontends here. These should be configured through {option}services.akkoma.frontends.

Type: null or (attribute set of package)

Default

null

Example

`#!nix { "emoji/blobs.gg" = pkgs.akkoma-emoji.blobs_gg; "static/terms-of-service.html" = pkgs.writeText "terms-of-service.html" '' … ''; "favicon.png" = let rev = "697a8211b0f427a921e7935a35d14bb3e32d0a2c"; in pkgs.stdenvNoCC.mkDerivation { name = "favicon.png";

src = pkgs.fetchurl {
  url = "https://raw.githubusercontent.com/TilCreator/NixOwO/${rev}/NixOwO_plain.svg";
  hash = "sha256-tWhHMfJ3Od58N9H5yOKPMfM56hYWSOnr/TGCBi8bo9E=";
};

nativeBuildInputs = with pkgs; [ librsvg ];

dontUnpack = true;
installPhase = ''
  rsvg-convert -o $out -w 96 -h 96 $src
'';

}; } `

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.frontends

Akkoma frontends. Type: attribute set of (submodule)

Default

{primary = {package = pkgs.akkoma-frontends.akkoma-fe;name = "akkoma-fe";ref = "stable";};admin = {package = pkgs.akkoma-frontends.admin-fe;name = "admin-fe";ref = "stable";};}

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.frontends.<name>.name

Akkoma frontend name. Type: non-empty string

Example

"akkoma-fe"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.frontends.<name>.package

Akkoma frontend package. Type: package

Example

pkgs.akkoma-frontends.akkoma-fe

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.frontends.<name>.ref

Akkoma frontend reference. Type: non-empty string

Example

"stable"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.group

Group account under which Akkoma runs. Type: non-empty string

Default

"akkoma"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.initDb.enable

Whether to automatically initialise the database on startup. This will create a database role and database if they do not already exist, and (re)set the role password and the ownership of the database.

This setting can be used safely even if the database already exists and contains data.

The database settings are configured through {option}config.services.akkoma.config.":pleroma"."Pleroma.Repo".

If disabled, the database has to be set up manually:

CREATE ROLE akkoma LOGIN;

CREATE DATABASE akkoma
  OWNER akkoma
  TEMPLATE template0
  ENCODING 'utf8'
  LOCALE 'C';

\connect akkoma
CREATE EXTENSION IF NOT EXISTS citext;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

Type: boolean

Default

true

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.initDb.password

Password of the database user to initialise the database with.

If set to null, no password will be used.

The attribute _secret should point to a file containing the secret.

Type: null or secret value

Default

null

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.initDb.username

Name of the database user to initialise the database with.

This user is required to have the CREATEROLE and CREATEDB capabilities.

Type: non-empty string

Default

config.services.postgresql.superUser

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.initSecrets

Whether to initialise non‐existent secrets with random values.

If enabled, appropriate secrets for the following options will be created automatically if the files referenced in the _secrets attribute do not exist during startup.

  • {option}config.":pleroma"."Pleroma.Web.Endpoint".secret_key_base
  • {option}config.":pleroma"."Pleroma.Web.Endpoint".signing_salt
  • {option}config.":pleroma"."Pleroma.Web.Endpoint".live_view.signing_salt
  • {option}config.":web_push_encryption".":vapid_details".private_key
  • {option}config.":web_push_encryption".":vapid_details".public_key
  • {option}config.":joken".":default_signer"

Type: boolean

Default

true

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.installWrapper

Whether to install a wrapper around pleroma_ctl to simplify administration of the Akkoma instance.

Type: boolean

Default

true

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx

Extra configuration for the nginx virtual host of Akkoma.

If set to null, no virtual host will be added to the nginx configuration.

Type: null or (submodule)

Default

null

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.acmeFallbackHost

Host which to proxy requests to if ACME challenge is not found. Useful if you want multiple hosts to be able to verify the same domain name.

With this option, you could request certificates for the present domain with an ACME client that is running on another host, which you would specify here.

Type: null or string

Default

null

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.acmeRoot

Directory for the ACME challenge, which is public. Don't put certs or keys in here. Set to null to inherit from config.security.acme.

Type: null or string

Default

"/var/lib/acme/acme-challenge"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.addSSL

Whether to enable HTTPS in addition to plain HTTP. This will set defaults for listen to listen on all interfaces on the respective default ports (80, 443).

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.basicAuth

Basic Auth protection for a vhost.

WARNING: This is implemented to store the password in plain text in the Nix store.

Type: attribute set of string

Default

{ }

Example

{user = "password";};

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.basicAuthFile

Basic Auth password file for a vhost. Can be created via: {command}htpasswd -c <filename> <username>.

WARNING: The generate file contains the users' passwords in a non-cryptographically-securely hashed way.

Type: null or path

Default

null

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.default

Makes this vhost the default.

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.enableACME

Whether to ask Let's Encrypt to sign a certificate for this vhost. Alternately, you can use an existing certificate through {option}useACMEHost.

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.extraConfig

These lines go to the end of the vhost verbatim.

Type: strings concatenated with "\n"

Default

""

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.forceSSL

Whether to add a separate nginx server block that redirects (defaults to 301, configurable with redirectCode) all plain HTTP traffic to HTTPS. This will set defaults for listen to listen on all interfaces on the respective default ports (80, 443), where the non-SSL listens are used for the redirect vhosts.

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.globalRedirect

If set, all requests for this host are redirected (defaults to 301, configurable with redirectCode) to the given hostname.

Type: null or string

Default

null

Example

"newserver.example.org"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.http2

Whether to enable the HTTP/2 protocol. Note that (as of writing) due to nginx's implementation, to disable HTTP/2 you have to disable it on all vhosts that use a given IP address / port. If there is one server block configured to enable http2, then it is enabled for all server blocks on this IP. See https://stackoverflow.com/a/39466948/263061.

Type: boolean

Default

true

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.http3

Whether to enable the HTTP/3 protocol. This requires using pkgs.nginxQuic package which can be achieved by setting services.nginx.package = pkgs.nginxQuic; and activate the QUIC transport protocol services.nginx.virtualHosts.<name>.quic = true;. Note that HTTP/3 support is experimental and not yet recommended for production. Read more at https://quic.nginx.org/ HTTP/3 availability must be manually advertised, preferably in each location block.

Type: boolean

Default

true

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.http3_hq

Whether to enable the HTTP/0.9 protocol negotiation used in QUIC interoperability tests. This requires using pkgs.nginxQuic package which can be achieved by setting services.nginx.package = pkgs.nginxQuic; and activate the QUIC transport protocol services.nginx.virtualHosts.<name>.quic = true;. Note that special application protocol support is experimental and not yet recommended for production. Read more at https://quic.nginx.org/

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.kTLS

Whether to enable kTLS support. Implementing TLS in the kernel (kTLS) improves performance by significantly reducing the need for copying operations between user space and the kernel. Required Nginx version 1.21.4 or later.

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.listen

Listen addresses and ports for this virtual host. IPv6 addresses must be enclosed in square brackets. Note: this option overrides addSSL and onlySSL.

If you only want to set the addresses manually and not the ports, take a look at listenAddresses.

Type: list of (submodule)

Default

[ ]

Example

[{addr = "195.154.1.1";port = 443;ssl = true;}{addr = "192.154.1.1";port = 80;}{addr = "unix:/var/run/nginx.sock";}]

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.listen.*.addr

Listen address. Type: string

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.listen.*.extraParameters

Extra parameters of this listen directive. Type: list of string

Default

[ ]

Example

["backlog=1024""deferred"]

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.listen.*.port

Port number to listen on. If unset and the listen address is not a socket then nginx defaults to 80.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default

null

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.listen.*.proxyProtocol

Enable PROXY protocol. Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.listen.*.ssl

Enable SSL. Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.listenAddresses

Listen addresses for this virtual host. Compared to listen this only sets the addresses and the ports are chosen automatically.

Note: This option overrides enableIPv6

Type: list of string

Default

[ ]

Example

["127.0.0.1""[::1]"]

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations

Declarative location config Type: attribute set of (submodule)

Default

{ }

Example

{"/" = {proxyPass = "http://localhost:3000";};};

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.alias

Alias directory for requests.

Type: null or path

Default

null

Example

"/your/alias/directory"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.basicAuth

Basic Auth protection for a vhost.

WARNING: This is implemented to store the password in plain text in the Nix store.

Type: attribute set of string

Default

{ }

Example

{user = "password";};

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.basicAuthFile

Basic Auth password file for a vhost. Can be created via: {command}htpasswd -c <filename> <username>.

WARNING: The generate file contains the users' passwords in a non-cryptographically-securely hashed way.

Type: null or path

Default

null

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.extraConfig

These lines go to the end of the location verbatim.

Type: strings concatenated with "\n"

Default

""

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.fastcgiParams

FastCGI parameters to override. Unlike in the Nginx configuration file, overriding only some default parameters won't unset the default values for other parameters.

Type: attribute set of (string or path)

Default

{ }

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.index

Adds index directive.

Type: null or string

Default

null

Example

"index.php index.html"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.priority

Order of this location block in relation to the others in the vhost. The semantics are the same as with lib.mkOrder. Smaller values have a greater priority.

Type: signed integer

Default

1000

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.proxyPass

Adds proxy_pass directive and sets recommended proxy headers if recommendedProxySettings is enabled.

Type: null or string

Default

null

Example

"http://www.example.org/"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.proxyWebsockets

Whether to support proxying websocket connections with HTTP/1.1.

Type: boolean

Default

false

Example

true

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.recommendedProxySettings

Enable recommended proxy settings.

Type: boolean

Default

config.services.nginx.recommendedProxySettings

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.return

Adds a return directive, for e.g. redirections.

Type: null or string or signed integer

Default

null

Example

"301 http://example.com$request_uri"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.root

Root directory for requests.

Type: null or path

Default

null

Example

"/your/root/directory"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.locations.<name>.tryFiles

Adds try_files directive.

Type: null or string

Default

null

Example

"$uri =404"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.onlySSL

Whether to enable HTTPS and reject plain HTTP connections. This will set defaults for listen to listen on all interfaces on port 443.

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.quic

Whether to enable the QUIC transport protocol. This requires using pkgs.nginxQuic package which can be achieved by setting services.nginx.package = pkgs.nginxQuic;. Note that QUIC support is experimental and not yet recommended for production. Read more at https://quic.nginx.org/

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.redirectCode

HTTP status used by globalRedirect and forceSSL. Possible usecases include temporary (302, 307) redirects, keeping the request method and body (307, 308), or explicitly resetting the method to GET (303). See https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections.

Type: integer between 300 and 399 (both inclusive)

Default

301

Example

308

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.rejectSSL

Whether to listen for and reject all HTTPS connections to this vhost. Useful in default server blocks to avoid serving the certificate for another vhost. Uses the ssl_reject_handshake directive available in nginx versions 1.19.4 and above.

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.reuseport

Create an individual listening socket . It is required to specify only once on one of the hosts.

Type: boolean

Default

false

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.root

The path of the web root directory.

Type: null or path

Default

null

Example

"/data/webserver/docs"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.serverAliases

Additional names of virtual hosts served by this virtual host configuration.

Type: list of string

Default

[ ]

Example

["www.example.org""example.org"]

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.serverName

Name of this virtual host. Defaults to attribute name in virtualHosts.

Type: null or string

Default

null

Example

"example.org"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.sslCertificate

Path to server SSL certificate. Type: path

Example

"/var/host.cert"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.sslCertificateKey

Path to server SSL certificate key. Type: path

Example

"/var/host.key"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.sslTrustedCertificate

Path to root SSL certificate for stapling and client certificates. Type: null or path

Default

null

Example

"${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.nginx.useACMEHost

A host of an existing Let's Encrypt certificate to use. This is useful if you have many subdomains and want to avoid hitting the rate limit. Alternately, you can generate a certificate through {option}enableACME. Note that this option does not create any certificates, nor it does add subdomains to existing ones – you will need to create them manually using .

Type: null or string

Default

null

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.package

The akkoma package to use. Type: package

Default

pkgs.akkoma

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix

services.akkoma.user

User account under which Akkoma runs. Type: non-empty string

Default

"akkoma"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/web-apps/akkoma.nix