aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2021-05-08 20:17:41 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2021-05-08 20:17:41 +0200
commitef118cb3c8cf44011004d9eb9074d47610f154fc (patch)
tree7d0d3197151dc729b93aaad06e33a56eb679bab1 /modules
parentf036e975b2b775605a3115393c47552cd56b8163 (diff)
downloadNix-ef118cb3c8cf44011004d9eb9074d47610f154fc.tar.gz
Nix-ef118cb3c8cf44011004d9eb9074d47610f154fc.tar.zst
Nix-ef118cb3c8cf44011004d9eb9074d47610f154fc.zip
Add a first gemini capsule
Diffstat (limited to 'modules')
-rw-r--r--modules/private/default.nix1
-rw-r--r--modules/private/gemini/default.nix26
-rw-r--r--modules/private/gemini/public/index.gmi70
-rw-r--r--modules/private/monitoring/default.nix2
-rw-r--r--modules/private/system/eldiron.nix1
5 files changed, 99 insertions, 1 deletions
diff --git a/modules/private/default.nix b/modules/private/default.nix
index 54b9f15..8542e20 100644
--- a/modules/private/default.nix
+++ b/modules/private/default.nix
@@ -16,6 +16,7 @@ set = {
16 openldapReplication = ./databases/openldap_replication.nix; 16 openldapReplication = ./databases/openldap_replication.nix;
17 17
18 websites = ./websites; 18 websites = ./websites;
19 gemini = ./gemini;
19 20
20 21
21 # Personal websites 22 # Personal websites
diff --git a/modules/private/gemini/default.nix b/modules/private/gemini/default.nix
new file mode 100644
index 0000000..ffe8a12
--- /dev/null
+++ b/modules/private/gemini/default.nix
@@ -0,0 +1,26 @@
1{ lib, config, pkgs, ... }:
2let
3 configFile = pkgs.writeText "config.yaml" ''
4 listen: ":1965"
5 hosts:
6 immae.eu:
7 cert: /var/lib/acme/immae/full.pem
8 key: /var/lib/acme/immae/key.pem
9 paths:
10 - path: /
11 root: ${./public}
12 '';
13in
14{
15 options.myServices.gemini.enable = lib.mkEnableOption "enable Gemini capsule";
16 config = lib.mkIf config.myServices.gemini.enable {
17 networking.firewall.allowedTCPPorts = [ 1965 ];
18 systemd.services.gemini = {
19 description = "Gemini capsule server";
20 wantedBy = [ "multi-user.target" ];
21 after = [ "network.target" ];
22 serviceConfig.ExecStart = "${pkgs.twins}/bin/twins -config ${configFile}";
23 serviceConfig.Type = "simple";
24 };
25 };
26}
diff --git a/modules/private/gemini/public/index.gmi b/modules/private/gemini/public/index.gmi
new file mode 100644
index 0000000..034a0d9
--- /dev/null
+++ b/modules/private/gemini/public/index.gmi
@@ -0,0 +1,70 @@
1# Immae
2
3## Présentation
4
5Dans le but de promouvoir la décentralisation des données personnelles et l’usage de logiciels open source, je propose un hébergement de divers services utiles. Ces services sont basés sur du code libre et déployés sur des systèmes libres également.
6
7Je suis un particulier, et dans la mesure de mes capacités, j’essaye toujours de fournir des services à ma famille et à mes amis proches en remplacement de services non libres fournis par les géants du web. J’ai décidé de faire le nécessaire pour étendre ces services à un public plus large, avec pour but de conserver une qualité suffisante.
8
9Lorsque c’est possible, les programmes que je développe sont également libres de droits (ce n’est pas toujours dépendant de ma volonté ou tributaire de ma disponibilité pour rendre le code accessible)
10
11Depuis juin 2019 je fais partie du collectif CHATONS, dont je respecte en particulier la charte:
12=> https://chatons.org CHATONS
13
14## Tarifs
15
16Je ne cherche pas à faire de profits en proposant ces services. Cependant, l’hébergement de ces services n’est pas gratuit, et maintenir ces services à un niveau de qualité suffisant demande de l’investissement en temps. Ainsi, selon l’usage désiré, le niveau de personnalisation et support dont vous avez besoin et les moyens à votre disposition et votre volonté, une participation pourra être demandée afin d’y accéder.
17=> https://www.immae.eu/licences_et_tip.html Tips
18
19## Services proposés
20
21Voici une liste non exhaustive de services que je propose :
22
23* Mastodon
24* Nextcloud
25* Calendrier/Contacts et synchronisation
26* Hébergement de vidéos (Mediagoblin)
27* Hébergement de vidéos (Peertube)
28* Kanboard
29* Flux RSS
30* "Lire plus tard" (wallabag)
31* Partage de liens (Shaarli)
32* Raccourcisseur d’URLs
33* Édition de texte collaborative
34* Réseau social
35* Hébergement de dépôts git privés et publics, gestion d’issues
36* Messagerie instantanée (XMPP/Jabber)
37* Comptes e-mails avec domaines personnalisés, IMAP/SMTP, MX backup
38* Hébergement et administration de sites web privés
39* Comptes shell protégés
40
41Un tableau de bord des services est disponible :
42=> https://tools.immae.eu Tableau de bord des services
43
44Je propose également de l’aide à distance (ou de visu si la distance est faible), pour l’usage de ces outils ou d’autres problèmes liés à l’informatique.
45
46Si vous ne voyez pas ce que vous voulez dans la liste, nous pourrons essayer de trouver une solution ensemble. Je suis ouvert aussi bien sûr à la création de nouveaux services (la liste est encore incomplète et d’autres services sont déjà prévus), dans le cadre défini en haut : basé sur des applications libres.
47
48=> https://status.immae.eu État des services
49
50## Comment faire ?
51
52Vous devez commencer par accepter les conditions générales dgutilisation :
53=> https://www.immae.eu/CGU Conditions générales d’utilisation
54Elles ne contiennent rien d’inhabituel mais elles ont été écrites par moi-même, donc sans jargon juridique. Elles vous permettront de décider si les garanties proposées sont en accord avec ce que vous pouvez vous permettre.
55
56Ensuite, contactez-moi avec vos vœux :
57=> https://www.immae.eu/contacts_fr.html Page de contact
58
59## Infrastructure et open source
60
61Dans le but de pouvoir décemment offrir une qualité de service suffisante sans pour autant y passer mes journées, l’installation des services est gérée via NixOS, permettant d’assurer la reproductibilité et l’automatisation des installations.
62
63Cette configuration est stockée publiquement dans un dépôt git, réutilisable et améliorable librement (avec probablement quelques ajustements).
64=> https://git.immae.eu/cgit/perso/Immae/Config/Nix.git/ Dépôt git de la configuration
65
66
67=> https://www.immae.eu/contacts_fr.html Page de contact
68=> https://www.immae.eu/CGU Conditions générales d’utilisation
69=> https://www.immae.eu/mentions.html Mentions légales
70=> https://www.immae.eu/licences_et_tip.html Quelques informations sur les licences utilisées et tips
diff --git a/modules/private/monitoring/default.nix b/modules/private/monitoring/default.nix
index 12e94c9..6c7462f 100644
--- a/modules/private/monitoring/default.nix
+++ b/modules/private/monitoring/default.nix
@@ -27,7 +27,7 @@ let
27 interface = "eth0"; 27 interface = "eth0";
28 }; 28 };
29 eldiron = { 29 eldiron = {
30 processWarn = "250"; processAlert = "400"; 30 processWarn = "400"; processAlert = "500";
31 loadWarn = "1.0"; loadAlert = "1.2"; 31 loadWarn = "1.0"; loadAlert = "1.2";
32 interface = "eth0"; 32 interface = "eth0";
33 }; 33 };
diff --git a/modules/private/system/eldiron.nix b/modules/private/system/eldiron.nix
index fdc3692..4fb18a0 100644
--- a/modules/private/system/eldiron.nix
+++ b/modules/private/system/eldiron.nix
@@ -111,6 +111,7 @@
111 myServices.dns.enable = true; 111 myServices.dns.enable = true;
112 myServices.certificates.enable = true; 112 myServices.certificates.enable = true;
113 myServices.websites.enable = true; 113 myServices.websites.enable = true;
114 myServices.gemini.enable = true;
114 myServices.mail.enable = true; 115 myServices.mail.enable = true;
115 myServices.ejabberd.enable = true; 116 myServices.ejabberd.enable = true;
116 myServices.vpn.enable = true; 117 myServices.vpn.enable = true;