75 lines
1.9 KiB
Nix
75 lines
1.9 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
|
|
let
|
|
cfg = config.service.selfhost.nextcloud;
|
|
dataDir = "/mnt/data/nextcloud";
|
|
in
|
|
{
|
|
config = lib.mkIf cfg {
|
|
environment.systemPackages = with pkgs; [
|
|
php
|
|
];
|
|
users = {
|
|
groups.datausers = { };
|
|
users.nextcloud.extraGroups = [
|
|
"datausers"
|
|
];
|
|
};
|
|
};
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"d /mnt/data 2770 root datausers -"
|
|
];
|
|
services = {
|
|
nextcloud = {
|
|
enable = true;
|
|
https = true;
|
|
package = pkgs.nextcloud32;
|
|
hostName = "nextcloud.enium.eu";
|
|
datadir = dataDir;
|
|
config = {
|
|
adminpassFile = "/etc/nextcloud-pass.txt";
|
|
adminuser = "OwnedByTheEniumTeam";
|
|
dbtype = "sqlite";
|
|
};
|
|
extraApps = {
|
|
oidc_login.enable = true;
|
|
};
|
|
settings = {
|
|
trusted_domains = [
|
|
"192.168.1.254"
|
|
"nextcloud.enium.eu"
|
|
];
|
|
default_phone_region = "FR";
|
|
"oidc_login_provider_url" = "https://auth.enium.eu/application/o/nextcloud/";
|
|
"oidc_login_client_id" = "xxxxxxxxxxxx";
|
|
"oidc_login_client_secret" = "yyyyyyyyyyyy";
|
|
"oidc_login_end_session_redirect" = true;
|
|
"oidc_login_auto_redirect" = true;
|
|
"oidc_login_hide_password_form" = true;
|
|
"oidc_login_use_id_token" = true;
|
|
"oidc_login_scope" = "openid profile email";
|
|
"oidc_login_disable_registration" = false;
|
|
"oidc_login_button_text" = "Se connecter avec Enium";
|
|
"oidc_login_default_group" = "";
|
|
"oidc_login_unique_id_claim" = "sub";
|
|
"oidc_login_mapping_displayname" = "name";
|
|
"oidc_login_mapping_email" = "email";
|
|
};
|
|
};
|
|
};
|
|
nginx.virtualHosts."nextcloud.enium.eu" = {
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
locations."~ \.php$".extraConfig = ''
|
|
fastcgi_pass unix:/run/phpfpm-nextcloud.sock;
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|