Skip to content

Invidious

services.invidious.address

The IP address Invidious should bind to.

Type: string

Default

if config.services.invidious.nginx.enable then "127.0.0.1" else "0.0.0.0"

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

services.invidious.database.createLocally

Whether to create a local database with PostgreSQL.

Type: boolean

Default

true

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

services.invidious.database.host

The database host Invidious should use.

If null, the local unix socket is used. Otherwise TCP is used.

Type: null or string

Default

null

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

services.invidious.database.passwordFile

Path to file containing the database password.

Type: null or string

Default

null

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

services.invidious.database.port

The port of the database Invidious should use.

Defaults to the the default postgresql port.

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

Default

config.services.postgresql.settings.port

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

services.invidious.domain

The FQDN Invidious is reachable on.

This is used to configure nginx and for building absolute URLs.

Type: null or string

Default

null

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

services.invidious.enable

Whether to enable Invidious. Type: boolean

Default

false

Example

true

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

services.invidious.extraSettingsFile

A file including Invidious settings.

It gets merged with the settings specified in {option}services.invidious.settings and can be used to store secrets like hmac_key outside of the nix store.

Type: null or string

Default

null

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

services.invidious.hmacKeyFile

A path to a file containing the hmac_key. If null, a key will be generated automatically on first start.

If non-null, this option overrides any hmac_key specified in {option}services.invidious.settings or via {option}services.invidious.extraSettingsFile.

Type: null or path

Default

null

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

services.invidious.http3-ytproxy.enable

Whether to enable http3-ytproxy for faster loading of images and video playback.

If {option}services.invidious.nginx.enable is used, nginx will be configured automatically. If not, you need to configure a reverse proxy yourself according to https://docs.invidious.io/improve-public-instance/#3-speed-up-video-playback-with-http3-ytproxy.

Type: boolean

Default

false

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

services.invidious.http3-ytproxy.package

The http3-ytproxy package to use. Type: package

Default

pkgs.http3-ytproxy

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

services.invidious.nginx.enable

Whether to configure nginx as a reverse proxy for Invidious.

It serves it under the domain specified in {option}services.invidious.settings.domain with enabled TLS and ACME. Further configuration can be done through {option}services.nginx.virtualHosts.${config.services.invidious.settings.domain}.*, which can also be used to disable AMCE and TLS.

Type: boolean

Default

false

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

services.invidious.package

The invidious package to use. Type: package

Default

pkgs.invidious

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

services.invidious.port

The port Invidious should listen on.

To allow access from outside, you can use either {option}services.invidious.nginx or add config.services.invidious.port to {option}networking.firewall.allowedTCPPorts.

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

Default

3000

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

services.invidious.serviceScale

How many invidious instances to run.

See https://docs.invidious.io/improve-public-instance/#2-multiple-invidious-processes for more details on how this is intended to work. All instances beyond the first one have the options channel_threads and feed_threads set to 0 to avoid conflicts with multiple instances refreshing subscriptions. Instances will be configured to bind to consecutive ports starting with {option}services.invidious.port for the first instance.

Type: signed integer

Default

1

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

services.invidious.settings

The settings Invidious should use.

See config.example.yml for a list of all possible options.

Type: JSON value

Default

{ }

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