PeerTube
Packages
peertube-plugin-akismet-0.1.1
-
Version: 0.1.1 peertube-plugin-auth-ldap-0.0.12
-
Version: 0.0.12 peertube-plugin-auth-openid-connect-0.1.1
-
Version: 0.1.1 peertube-plugin-auth-saml2-0.0.8
-
Version: 0.0.8 peertube-plugin-auto-block-videos-0.0.2
-
Version: 0.0.2 peertube-plugin-auto-mute-0.0.6
-
Version: 0.0.6 peertube-plugin-hello-world-0.0.22
-
Version: 0.0.22 peertube-plugin-livechat-10.1.2
-
Version: 10.1.2 peertube-plugin-logo-framasoft-0.0.1
-
Version: 0.0.1 peertube-plugin-matomo-1.0.2
-
Version: 1.0.2 peertube-plugin-privacy-remover-0.0.1
-
Version: 0.0.1 peertube-plugin-transcoding-custom-quality-0.1.0
-
Version: 0.1.0 peertube-plugin-transcoding-profile-debug-0.0.5
-
Version: 0.0.5 peertube-plugin-video-annotation-0.0.8
-
Version: 0.0.8 peertube-theme-background-red-0.0.4
-
Version: 0.0.4 peertube-theme-dark-2.5.0
-
Version: 2.5.0 peertube-theme-framasoft-0.0.1
-
Version: 0.0.1
Options
- services.peertube.configureNginx
-
Configure nginx as a reverse proxy for peertube.
- Type:
boolean
- Default:
false
- services.peertube.dataDirs
-
Allow access to custom data locations.
- Type:
list of absolute path
- Default:
[ ]
- services.peertube.database.createLocally
-
Configure local PostgreSQL database server for PeerTube.
- Type:
boolean
- Default:
false
- services.peertube.database.host
-
Database host address or unix socket.
- Type:
string
- Default:
if config.services.peertube.database.createLocally then "/run/postgresql" else null
- services.peertube.database.name
-
Database name.
- Type:
string
- Default:
"peertube"
- services.peertube.database.passwordFile
-
Password for PostgreSQL database.
- Type:
null or absolute path
- Default:
null
- services.peertube.database.port
-
Database host port.
- Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)
- Default:
5432
- services.peertube.database.user
-
Database user.
- Type:
string
- Default:
"peertube"
- services.peertube.enable
-
Whether to enable Peertube.
- Type:
boolean
- Default:
false
- services.peertube.enableWebHttps
-
Whether clients will access your PeerTube instance with HTTPS. Does NOT configure the PeerTube webserver itself to listen for incoming HTTPS connections.
- Type:
boolean
- Default:
false
- services.peertube.group
-
Group under which Peertube runs.
- Type:
string
- Default:
"peertube"
- services.peertube.listenHttp
-
The port that the local PeerTube web server will listen on.
- Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)
- Default:
9000
- services.peertube.listenWeb
-
The public-facing port that PeerTube will be accessible at (likely 80 or 443 if running behind a reverse proxy). Clients will try to access PeerTube at this port.
- Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)
- Default:
9000
- services.peertube.localDomain
-
The domain serving your PeerTube instance.
- Type:
string
- services.peertube.package
-
PeerTube package to use.
- Type:
package
- Default:
pkgs.peertube
- services.peertube.plugins.enable
-
Whether to enable declarative plugin management for PeerTube .
- Type:
boolean
- Default:
false
- services.peertube.plugins.package
-
Base PeerTube package to use when using declarative plugin management. This overrides
services.peertube.package
.- Type:
package
- Default:
pkgs.peertube
- services.peertube.plugins.plugins
-
List of packages with peertube plugins that should be added.
- Type:
list of package
- Default:
[ ]
- services.peertube.redis.createLocally
-
Configure local Redis server for PeerTube.
- Type:
boolean
- Default:
false
- services.peertube.redis.enableUnixSocket
-
Use Unix socket.
- Type:
boolean
- Default:
config.services.peertube.redis.createLocally
- services.peertube.redis.host
-
Redis host.
- Type:
null or string
- Default:
if config.services.peertube.redis.createLocally && !config.services.peertube.redis.enableUnixSocket then "127.0.0.1" else null
- services.peertube.redis.passwordFile
-
Password for redis database.
- Type:
null or absolute path
- Default:
null
- services.peertube.redis.port
-
Redis port.
- Type:
null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)
- Default:
if config.services.peertube.redis.createLocally && config.services.peertube.redis.enableUnixSocket then null else 6379
- services.peertube.secrets.secretsFile
-
Secrets to run PeerTube. Generate one using
openssl rand -hex 32
- Type:
null or absolute path
- Default:
null
- services.peertube.serviceEnvironmentFile
-
Set environment variables for the service. Mainly useful for setting the initial root password. For example write to file: PT_INITIAL_ROOT_PASSWORD=changeme
- Type:
null or absolute path
- Default:
null
- services.peertube.settings
-
Configuration for peertube.
- Type:
JSON value
- services.peertube.smtp.createLocally
-
Configure local Postfix SMTP server for PeerTube.
- Type:
boolean
- Default:
false
- services.peertube.smtp.passwordFile
-
Password for smtp server.
- Type:
null or absolute path
- Default:
null
- services.peertube.user
-
User account under which Peertube runs.
- Type:
string
- Default:
"peertube"
Examples
-
Basic configuration, mainly used for testing purposes.
{ config, pkgs, ... }: let storageBase = "/var/lib/peertube"; storageDir = subdir: "${storageBase}/${subdir}/"; in { environment = { # Sets the initial password of the root user to a fixed value. Make sure to change the password afterwards! etc."peertube-envvars".text = '' PT_INITIAL_ROOT_PASSWORD=changeme ''; }; services.peertube = { enable = true; # The system user & their group under which peertube will run user = "peertube"; group = "peertube"; # Do *NOT* use this in production, follow the docs and properly generate a secret here! i.e. using the output of: # openssl rand -hex 32 # https://docs.joinpeertube.org/install/any-os#peertube-configuration secrets.secretsFile = pkgs.writeText "secrets.txt" "secrets"; # Configure locally-running instances of redis server & database. database.createLocally = true; redis.createLocally = true; # Where we're running localDomain = "localhost"; listenWeb = 9000; # Example settings, adjust as desired settings = { listen = { hostname = "0.0.0.0"; }; log = { level = "debug"; }; storage = { tmp = storageDir "tmp"; logs = storageDir "logs"; cache = storageDir "cache"; plugins = storageDir "plugins"; }; }; plugins = { enable = true; # The plugins you wish to use. plugins = with pkgs; [ peertube-plugin-akismet peertube-plugin-auth-ldap peertube-plugin-auth-openid-connect peertube-plugin-auth-saml2 peertube-plugin-auto-block-videos peertube-plugin-auto-mute peertube-plugin-hello-world peertube-plugin-logo-framasoft peertube-plugin-matomo peertube-plugin-privacy-remover peertube-plugin-transcoding-custom-quality peertube-plugin-transcoding-profile-debug peertube-plugin-video-annotation peertube-theme-background-red peertube-theme-dark peertube-theme-framasoft peertube-plugin-livechat ]; }; # For initial password serviceEnvironmentFile = "/etc/peertube-envvars"; }; systemd.tmpfiles.settings = let dirArgs = { mode = "0700"; inherit (config.services.peertube) user group; }; in { "99-peertube-plugins-test-setup" = { "${storageBase}".d = dirArgs; "${storageDir "tmp"}".d = dirArgs; "${storageDir "logs"}".d = dirArgs; "${storageDir "cache"}".d = dirArgs; "${storageDir "plugins"}".d = dirArgs; }; }; }