Compare commits
4 commits
36aa0cd3e9
...
52bfc64933
Author | SHA1 | Date | |
---|---|---|---|
Dmitry Voronin | 52bfc64933 | ||
Dmitry Voronin | e3e00e8f6a | ||
Dmitry Voronin | 1c81f394c6 | ||
Dmitry Voronin | 80d544b9ed |
|
@ -1,32 +1,50 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.syncthing;
|
cfg = config.module.syncthing;
|
||||||
in {
|
in {
|
||||||
# NOTE: Access at `http://localhost:8384`.
|
config = lib.mkIf cfg.enable {
|
||||||
options.module.syncthing = {
|
environment.systemPackages = with pkgs; [ syncthing ];
|
||||||
enable = lib.mkEnableOption "the file sync.";
|
services.syncthing = {
|
||||||
dataDir = lib.mkOption {
|
inherit (cfg) enable dataDir user group openDefaultPorts;
|
||||||
default = "/home/${cfg.user}/sync";
|
systemService = true;
|
||||||
type = lib.types.str;
|
settings = lib.recursiveUpdate cfg.settings {
|
||||||
};
|
devices = {
|
||||||
settings = lib.mkOption {
|
"desktop" = { id = "767Z675-SOCY4FL-JNYEBB6-5E2RG5O-XTZR6OP-BGOBZ7G-XVRLMD6-DQEB2AT"; };
|
||||||
default = { };
|
"home" = { id = "L5A5IPE-2FPJPHP-RJRV2PV-BLMLC3F-QPHSCUQ-4U3NM2I-AFPOE2A-HOPQZQF"; };
|
||||||
type = lib.types.attrs;
|
"phone" = { id = "6RO5JXW-2XO4S3E-VCDAHPD-4ADK6LL-HQGMZHU-GD6DE2O-6KNHWXJ-BCSBGQ7"; };
|
||||||
};
|
};
|
||||||
user = lib.mkOption {
|
folders = let
|
||||||
default = "voronind";
|
everyone = lib.mapAttrsToList (n: v: n) config.services.syncthing.settings.devices;
|
||||||
type = lib.types.str;
|
in {
|
||||||
};
|
"save" = {
|
||||||
group = lib.mkOption {
|
path = "${cfg.dataDir}/save";
|
||||||
default = "users";
|
devices = [
|
||||||
type = lib.types.str;
|
"desktop"
|
||||||
};
|
"home"
|
||||||
openDefaultPorts = lib.mkOption {
|
# "work"
|
||||||
default = true;
|
];
|
||||||
type = lib.types.bool;
|
};
|
||||||
|
"photo" = {
|
||||||
|
path = "${cfg.dataDir}/photo";
|
||||||
|
devices = [
|
||||||
|
"home"
|
||||||
|
"phone"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"tmp" = {
|
||||||
|
path = "${cfg.dataDir}/tmp";
|
||||||
|
devices = everyone;
|
||||||
|
};
|
||||||
|
"document" = {
|
||||||
|
path = "${cfg.dataDir}/document";
|
||||||
|
devices = everyone;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,9 +26,8 @@
|
||||||
# dns.enable = true;
|
# dns.enable = true;
|
||||||
socksListenAddress = {
|
socksListenAddress = {
|
||||||
IsolateDestAddr = true;
|
IsolateDestAddr = true;
|
||||||
|
addr = "0.0.0.0";
|
||||||
port = 9050;
|
port = 9050;
|
||||||
# addr = cfg.address;
|
|
||||||
# port = cfg.torport;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
};
|
};
|
||||||
extraApps = {
|
extraApps = {
|
||||||
inherit (config.services.nextcloud.package.packages.apps)
|
inherit (config.services.nextcloud.package.packages.apps)
|
||||||
contacts calendar onlyoffice;
|
contacts calendar;
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
allow_local_remote_servers = true;
|
allow_local_remote_servers = true;
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
# NOTE: Imperative part:
|
|
||||||
# 1. You need to change PSQL tables owner from root to onlyoffice, too. They don't do that automatically for some reason.
|
|
||||||
# 2. TODO: Generate JWT secret at /var/lib/onlyoffice/jwt, i.e. 9wLfMGha1YrfvWpb5hyYjZf8pvJQ3swS
|
|
||||||
# SEE: https://git.voronind.com/voronind/nixos/issues/74
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
# services.onlyoffice = {
|
|
||||||
# enable = true;
|
|
||||||
# hostname = "office.voronind.com";
|
|
||||||
# jwtSecretFile = "/var/www/onlyoffice/jwt";
|
|
||||||
#
|
|
||||||
# postgresName = "onlyoffice";
|
|
||||||
# postgresUser = "onlyoffice";
|
|
||||||
# # postgresPasswordFile = "${pkgs.writeText "OfficeDbPassword" dbName}";
|
|
||||||
# # rabbitmqUrl = "amqp://guest:guest@${config.container.module.rabbitmq.address}:${toString config.container.module.rabbitmq.port}";
|
|
||||||
# };
|
|
||||||
}
|
|
|
@ -11,7 +11,6 @@
|
||||||
"invidious"
|
"invidious"
|
||||||
"mattermost"
|
"mattermost"
|
||||||
"nextcloud"
|
"nextcloud"
|
||||||
"onlyoffice"
|
|
||||||
"paperless"
|
"paperless"
|
||||||
"privatebin"
|
"privatebin"
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,48 +1,32 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.syncthing;
|
cfg = config.module.syncthing;
|
||||||
in {
|
in {
|
||||||
config = lib.mkIf cfg.enable {
|
# NOTE: Access at `http://localhost:8384`.
|
||||||
environment.systemPackages = with pkgs; [ syncthing ];
|
options.module.syncthing = {
|
||||||
services.syncthing = {
|
enable = lib.mkEnableOption "the file sync.";
|
||||||
inherit (cfg) enable dataDir user group openDefaultPorts;
|
dataDir = lib.mkOption {
|
||||||
systemService = true;
|
default = "/home/${cfg.user}/sync";
|
||||||
settings = lib.recursiveUpdate {
|
type = lib.types.str;
|
||||||
devices = {
|
};
|
||||||
"desktop" = { id = "767Z675-SOCY4FL-JNYEBB6-5E2RG5O-XTZR6OP-BGOBZ7G-XVRLMD6-DQEB2AT"; };
|
settings = lib.mkOption {
|
||||||
"home" = { id = "L5A5IPE-2FPJPHP-RJRV2PV-BLMLC3F-QPHSCUQ-4U3NM2I-AFPOE2A-HOPQZQF"; };
|
default = { };
|
||||||
"phone" = { id = "6RO5JXW-2XO4S3E-VCDAHPD-4ADK6LL-HQGMZHU-GD6DE2O-6KNHWXJ-BCSBGQ7"; };
|
type = lib.types.attrs;
|
||||||
};
|
};
|
||||||
folders = {
|
user = lib.mkOption {
|
||||||
"save" = {
|
default = "voronind";
|
||||||
path = "${cfg.dataDir}/save";
|
type = lib.types.str;
|
||||||
devices = [
|
};
|
||||||
"desktop"
|
group = lib.mkOption {
|
||||||
"home"
|
default = "users";
|
||||||
# "work"
|
type = lib.types.str;
|
||||||
];
|
};
|
||||||
};
|
openDefaultPorts = lib.mkOption {
|
||||||
"photo" = {
|
default = true;
|
||||||
path = "${cfg.dataDir}/photo";
|
type = lib.types.bool;
|
||||||
devices = [
|
|
||||||
"home"
|
|
||||||
"phone"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"tmp" = {
|
|
||||||
path = "${cfg.dataDir}/tmp";
|
|
||||||
devices = [
|
|
||||||
"desktop"
|
|
||||||
"home"
|
|
||||||
"phone"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
} cfg.settings;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
(mkLink "Camera" "fa-camera" "https://camera.voronind.com")
|
(mkLink "Camera" "fa-camera" "https://camera.voronind.com")
|
||||||
(mkLink "Printer" "fa-print" "https://printer.voronind.com")
|
(mkLink "Printer" "fa-print" "https://printer.voronind.com")
|
||||||
(mkLink "Router" "fa-route" "https://router.voronind.com")
|
(mkLink "Router" "fa-route" "https://router.voronind.com")
|
||||||
|
(mkLink "Sync" "fa-sync" "https://sync.voronind.com")
|
||||||
])
|
])
|
||||||
(mkGroup "Bookmark" "fa-bookmark" [
|
(mkGroup "Bookmark" "fa-bookmark" [
|
||||||
(mkLink "2gis" "fa-map-location-dot" "https://2gis.ru")
|
(mkLink "2gis" "fa-map-location-dot" "https://2gis.ru")
|
||||||
|
|
Loading…
Reference in a new issue