Added linkal service

This commit is contained in:
Julien Malka 2022-09-27 06:58:08 +02:00
parent 49739e585e
commit 6b4b2cbe31
Signed by: Luj
GPG key ID: 6FC74C847011FD83
6 changed files with 213 additions and 28 deletions

104
flake.lock generated
View file

@ -47,6 +47,21 @@
"type": "github"
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -84,9 +99,29 @@
"type": "github"
}
},
"neovim-flake": {
"linkal": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1664252078,
"narHash": "sha256-VI3nLGVn/OEMRTqf7cNYP+FSkXMGf6BmqB8h1KgWawQ=",
"owner": "JulienMalka",
"repo": "Linkal",
"rev": "35784370e386f6a10796beace212877134f351b5",
"type": "github"
},
"original": {
"owner": "JulienMalka",
"ref": "main",
"repo": "Linkal",
"type": "github"
}
},
"neovim-flake": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"neovim-nightly-overlay",
"nixpkgs"
@ -94,11 +129,11 @@
},
"locked": {
"dir": "contrib",
"lastModified": 1664071030,
"narHash": "sha256-nRSzdEqhxQL8eHJIM/x6yxNnFExplHmhDpmQMJFy9MU=",
"lastModified": 1664176858,
"narHash": "sha256-SIF3XyX22GQ2u4AAq5qsVeLZ/2fHSlBX+8hd5IGQ3+Y=",
"owner": "neovim",
"repo": "neovim",
"rev": "2a3cb0893b03aeff4d8c0b2116cbddda53bba5a2",
"rev": "6596f7e136b7ceba2a94c708e2a179ec60b6d048",
"type": "github"
},
"original": {
@ -117,11 +152,11 @@
]
},
"locked": {
"lastModified": 1664093888,
"narHash": "sha256-UMlfdR1LCQUIhuxU5u9SifRcz1W4xG+Z/WS2svI1yHg=",
"lastModified": 1664180387,
"narHash": "sha256-5fT/Nnv4QWVASqjMBKuHZKSFV+YHVH5jbTRakvQivuw=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "f1bceeb452db3a70638a96529829da7768e58acd",
"rev": "b7c02b63405cfc346b1faecc0602aeb7aaf79ee7",
"type": "github"
},
"original": {
@ -132,18 +167,16 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1664029467,
"narHash": "sha256-ir7JbsLp2mqseCs3qI+Z/pkt+Gh+GfANbYcI5I+Gvnk=",
"lastModified": 1663669617,
"narHash": "sha256-yUrzkRDc6P3hsI5TdQ5+q8gnyjadNvaM3MMEsEVS8qk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "893b6b9f6c4ed0c7efdb84bd300a499a2da9fa51",
"rev": "41ac0bd371618db6dd67fd952cc5b3d6a9955a15",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.05",
"repo": "nixpkgs",
"type": "github"
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs-22_05": {
@ -163,11 +196,11 @@
},
"nixpkgs-22_05_2": {
"locked": {
"lastModified": 1664063819,
"narHash": "sha256-5wXa+9uboo7UizMDeUTMoANv3pm0g9ze1NdTleY3rCE=",
"lastModified": 1664201777,
"narHash": "sha256-cUW9DqELUNi1jNMwVSbfq4yl5YGyOfeu+UHUUImbby0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "aee4db5b9eaccd3fb7f16c742685fef9dc355077",
"rev": "00f877f4927b6f7d7b75731b5a1e2ae7324eaf14",
"type": "github"
},
"original": {
@ -177,13 +210,29 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1664107978,
"narHash": "sha256-31I9XnIjXkUa62BM1Zr/ylKMf9eVO5PtoX2mGpmB7/U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "72783a2d0dbbf030bff1537873dd5b85b3fb332f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"locked": {
"lastModified": 1664095446,
"narHash": "sha256-E+Q7G8gFHB2LDPoEps4Gsbddxk6cEyrDpZPYPSRgTbc=",
"lastModified": 1664251460,
"narHash": "sha256-oLlMQAkyfVsk3bZ54PlUQTUlx/rXCYL/GUn6WyogoN0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "1115a93774ff7333a022b4d966473f1e117c3f7b",
"rev": "7e29a69db6154fa793ed9331f6b08c55ed8841c6",
"type": "github"
},
"original": {
@ -195,8 +244,9 @@
"inputs": {
"home-manager": "home-manager",
"homepage": "homepage",
"linkal": "linkal",
"neovim-nightly-overlay": "neovim-nightly-overlay",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_2",
"nur": "nur",
"simple-nixos-mailserver": "simple-nixos-mailserver",
"sops-nix": "sops-nix",
@ -235,11 +285,11 @@
"nixpkgs-22_05": "nixpkgs-22_05_2"
},
"locked": {
"lastModified": 1664080128,
"narHash": "sha256-obau1+3+QiTtNGfoTcbSYB5Z4Gvf4o0Or85yLttSYt8=",
"lastModified": 1664204020,
"narHash": "sha256-LAey3hr8b9EAt3n304Wt9Vm4uQFd8pSRtLX8leuYFDs=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "17f009daf09992d2342657f9bd7b44d877cd00e1",
"rev": "912f9ff41fd9353dec1f783170793699789fe9aa",
"type": "github"
},
"original": {
@ -250,11 +300,11 @@
},
"unstable": {
"locked": {
"lastModified": 1664017330,
"narHash": "sha256-919WZKBTxFdTkzIK6uJXE7hwSPQb7e/ekybxxWaotR4=",
"lastModified": 1664106353,
"narHash": "sha256-HMJP80+DSxFySpWyuxz5+iNozS3+dVt0b4n6YMIU5/8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fde244a8c7655bc28616864e2290ad9c95409c2c",
"rev": "79d3ca08920364759c63fd3eb562e99c0c17044a",
"type": "github"
},
"original": {

View file

@ -31,6 +31,11 @@
inputs.nixpkgs.follows = "nixpkgs";
};
linkal = {
url = "github:JulienMalka/Linkal/main";
flake = true;
};
};
outputs = { self, home-manager, nixpkgs, unstable, sops-nix, neovim-nightly-overlay, nur, ... }@inputs:

View file

@ -38,6 +38,7 @@ in
paperless-ng = prev.pkgs.callPackage ../packages/paperless-ng { };
tailscale = prev.unstable.tailscale;
nodePackages = prev.unstable.nodePackages;
linkal = inputs.linkal.defaultPackage."${system}";
})
inputs.neovim-nightly-overlay.overlay
];

View file

@ -53,12 +53,13 @@
};
};
mailserver.enable = true;
linkal.enable = true;
};
# make the tailscale command usable to users
environment.systemPackages = [ pkgs.tailscale ];
environment.systemPackages = [ pkgs.tailscale pkgs.linkal ];
# enable the tailscale service
services.tailscale.enable = true;

View file

@ -0,0 +1,95 @@
{
"calendars": {
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/LLWm8qK9iC5YGrrR": {
"name": "Délégation Générale",
"short_name": "DG"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/2KGkWzBJGorxzyTW": {
"name": "La Nuit de l'ENS",
"short_name": "La Nuit"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/w442JdS5AaQ6czrP": {
"name": "Écriv'ENS"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/fRtjDkjrZyn6fxd8": {
"name": "K-Fêt",
"color": "#c63b52",
"default_location": "K-Fêt"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/gsZtZK8c9EmREofn": {
"name": "Ernestophone"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/dTHrXnYgsEoSTjWB": {
"name": "Évènements (COF)",
"short_name": "COF"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/bCgRFByHLiCCNc55": {
"name": "Assemblées Générales (COF)",
"short_name": "AG COF"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/r4yJZDHjwNtH8wkR": {
"name": "BdA"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/ZtWm3MYSi388k2yk": {
"name": "DDR"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/T5WoHbs4FT5A945Z": {
"name": "CinéClub"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/6SHG6cg9d7S3qqwD": {
"name": "Club Inutile ☔",
"initial": false
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/Ekjb4kDqMMqwJXZF": {
"name": "Rentrée des départements",
"short_name": "Dpt"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/8SKP62tQJP65K8EW": {
"name": "Conférences de recherche",
"short_name": "Conf"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/PnRXqeq4SsSC33FM": {
"name": "Visites de bibliothèques",
"short_name": "Bibli",
"initial": false
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/NWPtiEiz62LTtjo2": {
"name": "Amphis de rentrée",
"short_name": "Prés. de rentrée"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/JiRt58aJXay9kfyk": {
"name": "Réunions de rentrée des Masters",
"short_name": "Masters"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/5Rb4bRjCDcsFjDdQ": {
"name": "Activités pour les étudiants internationaux",
"short_name": "Internationaux"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/62wKfQRrLNz2WXjt": {
"name": "Divers"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/TFjE83ASCMK9rfRi": {
"name": "BandarrêtdurgENS",
"short_name": "Banda"
},
"https://cloud.eleves.ens.fr/remote.php/dav/public-calendars/TyMrLaPPDzT7yAGC": {
"name": "BDS"
},
"https://nuage.beta.rz.ens.wtf/remote.php/dav/public-calendars/5WrcagPPARQ3BD87": {
"name": "Club réseau",
"default_location": "Cave d'hackENS"
},
"https://nuage.beta.rz.ens.wtf/remote.php/dav/public-calendars/TFEAKjAgNFQZpNjo": {
"name": "hackENS",
"default_location": "Cave d'hackENS"
},
"https://framagenda.org/remote.php/dav/public-calendars/TFjE83ASCMK9rfRi": {
"name": "BandarrêtdurgENS",
"short_name": "Banda"
},
"https://framagenda.org/remote.php/dav/public-calendars/T5WoHbs4FT5A945Z": {
"name": "CinéClub"
}
}
}

View file

@ -0,0 +1,33 @@
{ lib, pkgs, config, ... }:
with lib;
let
cfg = config.luj.linkal;
port = 4145;
in
{
options.luj.linkal = {
enable = mkEnableOption "activate linkal service";
};
config = mkIf cfg.enable {
systemd.services.linkal = {
description = "linkal";
wantedBy = [ "multi-user.target" ];
serviceConfig.Type = "simple";
serviceConfig.ExecStart = "${pkgs.linkal}/bin/linkal --calendar-file ${./calendars.json}";
};
luj.nginx.enable = true;
services.nginx.virtualHosts."calendar.ens.malka.sh" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://localhost:${toString port}";
};
};
};
}