nextcloud for calendars
This commit is contained in:
parent
c5c4ff3925
commit
6fe1b261d5
8 changed files with 102 additions and 82 deletions
|
|
@ -12,6 +12,7 @@
|
||||||
./git.nix
|
./git.nix
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./networking.nix
|
./networking.nix
|
||||||
|
./nextcloud.nix
|
||||||
./services.nix
|
./services.nix
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
46
host/roam/nextcloud.nix
Normal file
46
host/roam/nextcloud.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
secrets,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
hostName = "nextcloud.hdohmen.de";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.nextcloud = {
|
||||||
|
enable = true;
|
||||||
|
inherit hostName;
|
||||||
|
package = pkgs.nextcloud32;
|
||||||
|
https = true;
|
||||||
|
configureRedis = true;
|
||||||
|
datadir = "/data/nextcloud";
|
||||||
|
database.createLocally = true;
|
||||||
|
extraAppsEnable = true;
|
||||||
|
extraApps = {
|
||||||
|
inherit (config.services.nextcloud.package.packages.apps)
|
||||||
|
news
|
||||||
|
contacts
|
||||||
|
calendar
|
||||||
|
tasks
|
||||||
|
;
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
adminuser = "admin";
|
||||||
|
adminpassFile = config.age.secrets.nextcloud-admin-password.path;
|
||||||
|
dbtype = "pgsql";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts.${hostName} = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
age.secrets.nextcloud-admin-password = {
|
||||||
|
file = secrets.roam."nextcloud-admin-password.age";
|
||||||
|
owner = "nextcloud";
|
||||||
|
group = "nextcloud";
|
||||||
|
mode = "440";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -5,11 +5,12 @@
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
nginx = {
|
nginx = {
|
||||||
# recommendedTlsSettings = true;
|
|
||||||
# recommendedProxySettings = true;
|
|
||||||
# recommendedOptimisation = true;
|
|
||||||
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
recommendedTlsSettings = true;
|
||||||
|
recommendedProxySettings = true;
|
||||||
|
recommendedOptimisation = true;
|
||||||
|
|
||||||
virtualHosts.default = {
|
virtualHosts.default = {
|
||||||
serverName = "_";
|
serverName = "_";
|
||||||
default = true;
|
default = true;
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,17 @@ in
|
||||||
userName = "henridohmen";
|
userName = "henridohmen";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
"Nextcloud" = {
|
||||||
|
thunderbird = {
|
||||||
|
enable = true;
|
||||||
|
color = "#FFBE6F";
|
||||||
|
};
|
||||||
|
remote = {
|
||||||
|
type = "caldav";
|
||||||
|
url = "https://nextcloud.hdohmen.de/remote.php/dav/calendars/henri/default/";
|
||||||
|
userName = "henri";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
accounts.contact.accounts = {
|
accounts.contact.accounts = {
|
||||||
"Kontakte" = {
|
"Kontakte" = {
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,16 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
|
let
|
||||||
|
mkSubOption =
|
||||||
|
of: name:
|
||||||
|
mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = of;
|
||||||
|
description = "Enables" ++ name;
|
||||||
|
};
|
||||||
|
mkDesktopOption = mkSubOption config.hd.desktop.enable;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
options.home = lib.mkOption {
|
options.home = lib.mkOption {
|
||||||
# used by /home/default.nix
|
# used by /home/default.nix
|
||||||
|
|
@ -19,85 +29,19 @@ with lib;
|
||||||
description = "Common NixOS configuration of all desktops.";
|
description = "Common NixOS configuration of all desktops.";
|
||||||
};
|
};
|
||||||
|
|
||||||
audio = {
|
audio.enable = mkDesktopOption "audio configuration";
|
||||||
enable = mkOption {
|
gpg.enable = mkDesktopOption "GPG configuration";
|
||||||
type = types.bool;
|
network.enable = mkDesktopOption "network configuration";
|
||||||
default = config.hd.desktop.enable;
|
security.enable = mkDesktopOption "security configuration";
|
||||||
description = "Enable audio configuration";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gpg = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = config.hd.desktop.enable;
|
|
||||||
description = "Enable GPG configuration";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
network = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = config.hd.desktop.enable;
|
|
||||||
description = "Enable network configuration";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
security = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = config.hd.desktop.enable;
|
|
||||||
description = "Enable desktop security configuration";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
software = {
|
software = {
|
||||||
enable = mkOption {
|
enable = mkDesktopOption "software installation";
|
||||||
type = types.bool;
|
development.enable = mkSubOption config.hd.desktop.software.enable "development software";
|
||||||
default = config.hd.desktop.enable;
|
|
||||||
description = "Enable software installation";
|
|
||||||
};
|
|
||||||
|
|
||||||
development = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = config.hd.desktop.software.enable;
|
|
||||||
description = "Enable development software";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
windowManager = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = config.hd.desktop.enable;
|
|
||||||
description = "Enable window manager configuration";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
accounts = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = config.hd.desktop.enable;
|
|
||||||
description = "Enable desktop user accounts";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = config.hd.desktop.enable;
|
|
||||||
description = "Enable font configuration";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = config.hd.desktop.enable;
|
|
||||||
description = "Enable desktop services";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
windowManager.enable = mkDesktopOption "window manager configuration";
|
||||||
|
accounts.enable = mkDesktopOption "desktop user accounts";
|
||||||
|
fonts.enable = mkDesktopOption "font configuration";
|
||||||
|
services.enable = mkDesktopOption "desktop services";
|
||||||
|
syncthing.enable = mkDesktopOption "syncthing settings";
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
{ lib, var, ... }:
|
|
||||||
{
|
{
|
||||||
|
lib,
|
||||||
|
var,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
lib.mkIf config.hd.desktop.syncthing.enable {
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = lib.mkDefault true;
|
enable = lib.mkDefault true;
|
||||||
user = "hd";
|
user = "hd";
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ let
|
||||||
secrets = [
|
secrets = [
|
||||||
"roam/rclone-conf"
|
"roam/rclone-conf"
|
||||||
"roam/firefox-sync-secret"
|
"roam/firefox-sync-secret"
|
||||||
|
"roam/nextcloud-admin-password"
|
||||||
"hd-password"
|
"hd-password"
|
||||||
"tlskey"
|
"tlskey"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
11
secrets/roam/nextcloud-admin-password.age
Normal file
11
secrets/roam/nextcloud-admin-password.age
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 ydxpSQ iWfVti14xdYQoQcONqeWzMxyIEMKwn0d0IVGyMG1knk
|
||||||
|
4be8tW7qIltggtFOpFFMAqtXzZ0J7nGWX9c5lakobko
|
||||||
|
-> ssh-ed25519 IbE9zA PdTnWT8kxLGuXOUEsOEjDltqs8nAclso3U1KRvBsOAw
|
||||||
|
bMivwzoemXiW7uph8LWF5gbnOiulbwMNoJGllZGL5fM
|
||||||
|
-> ssh-ed25519 gbs8eg c79Pw+20bBwl72bZQUiSTXdjFSUvqZVN8kinu18qqTw
|
||||||
|
mw/VdLeZIit6QiPV9fpBq8JYgZGRLmkUUo1ulXlHpKw
|
||||||
|
-> ssh-ed25519 FTMbvw zBCK0W/t/WwOl7XVkor93oRq9ybjoalYoUEVRgLU+n0
|
||||||
|
yWMzPgXmZ63q0MYvt5v968PEgAEK3nr6GL+WM0aHBqw
|
||||||
|
--- xCcYFUPNbBgvN/74BxiaxZNwpPOfFUvNNwRLoGZ+3Vk
|
||||||
|
B<EFBFBD>IiA¿ê%uõÖH€¸F«¨cÞ1Æß% ¦ z*é”-<2D>0ñ_ø¸SúJ~ýö
|
||||||
Loading…
Add table
Add a link
Reference in a new issue