summaryrefslogtreecommitdiff
path: root/custom
diff options
context:
space:
mode:
Diffstat (limited to 'custom')
-rw-r--r--custom/simp_le.nix26
-rw-r--r--custom/ymir-nginx.nix44
2 files changed, 69 insertions, 1 deletions
diff --git a/custom/simp_le.nix b/custom/simp_le.nix
new file mode 100644
index 00000000..686533a6
--- /dev/null
+++ b/custom/simp_le.nix
@@ -0,0 +1,26 @@
1{ stdenv, writeText
2, simp_le
3, eject
4}:
5dir:
6domain:
7
8let
9 script = writeText "${domain}.sh" ''
10 backupDir=/root/ssl_archive/$(date +'%Y-%m-%d')-$$-${domain}
11 mkdir -p ${dir}
12 cd ${dir}
13 mkdir -p $backupDir
14 for f in account_key.json cert.pem fullchain.pem key.pem privkey.pem; do
15 [[ -e $f ]] && mv $f $backupDir
16 done
17 ${simp_le}/bin/simp_le -d ${domain}:/srv/www/acme/${domain}/ \
18 --email "phikeebaogobaegh@141.li" \
19 -f account_key.json \
20 -f cert.pem \
21 -f fullchain.pem \
22 -f key.pem || { for f in *; do rm $f; done; mv $backupDir/* . && rmdir $backupDir; }
23 [[ -e key.pem ]] && ln -s -f key.pem privkey.pem
24 '';
25in
26 "bash ${script} 2>&1 | ${eject}/bin/logger -p auth.info"
diff --git a/custom/ymir-nginx.nix b/custom/ymir-nginx.nix
index 861b0720..fd7d7e94 100644
--- a/custom/ymir-nginx.nix
+++ b/custom/ymir-nginx.nix
@@ -16,6 +16,18 @@ let
16 uwsgi_param SERVER_PORT $server_port; 16 uwsgi_param SERVER_PORT $server_port;
17 uwsgi_param SERVER_NAME $server_name; 17 uwsgi_param SERVER_NAME $server_name;
18 ''; 18 '';
19
20 favicon = builtins.toFile "favicon" ''
21 location = /favicon.ico {
22 root /srv/www/praseodym.org;
23 }
24 '';
25
26 acme = builtins.toFile "acme" ''
27 location /.well-known/acme-challenge {
28 root /srv/www/acme/$host/;
29 }
30 '';
19in { 31in {
20 services.nginx = { 32 services.nginx = {
21 enable = true; 33 enable = true;
@@ -56,11 +68,28 @@ in {
56 access_log stderr; 68 access_log stderr;
57 error_log stderr; 69 error_log stderr;
58 70
71 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
72 ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
73 ssl_prefer_server_ciphers on;
74 ssl_session_cache shared:SSL:10m;
75 ssl_dhparam /etc/ssl/dhparam.pem;
76
77 server {
78 listen *:80;
79 listen [::]:80;
80 server_name _;
81
82 root /srv/www/praseodym.org;
83 }
84
59 server { 85 server {
60 listen *:80; 86 listen *:80;
61 listen [::]:80; 87 listen [::]:80;
62 server_name dirty-haskell.org www.dirty-haskell.org; 88 server_name dirty-haskell.org www.dirty-haskell.org;
63 89
90 include ${favicon};
91 include ${acme};
92
64 root /srv/www/dirty-haskell.org; 93 root /srv/www/dirty-haskell.org;
65 } 94 }
66 95
@@ -69,6 +98,9 @@ in {
69 listen [::]:443 ssl; 98 listen [::]:443 ssl;
70 server_name dirty-haskell.org; 99 server_name dirty-haskell.org;
71 100
101 include ${favicon};
102 include ${acme};
103
72 ssl_certificate /etc/nginx/ssl/dirty-haskell.org/fullchain.pem; 104 ssl_certificate /etc/nginx/ssl/dirty-haskell.org/fullchain.pem;
73 ssl_certificate_key /etc/nginx/ssl/dirty-haskell.org/privkey.pem; 105 ssl_certificate_key /etc/nginx/ssl/dirty-haskell.org/privkey.pem;
74 106
@@ -80,6 +112,9 @@ in {
80 listen [::]:443 ssl; 112 listen [::]:443 ssl;
81 server_name www.dirty-haskell.org; 113 server_name www.dirty-haskell.org;
82 114
115 include ${favicon};
116 include ${acme};
117
83 ssl_certificate /etc/nginx/ssl/www.dirty-haskell.org/fullchain.pem; 118 ssl_certificate /etc/nginx/ssl/www.dirty-haskell.org/fullchain.pem;
84 ssl_certificate_key /etc/nginx/ssl/www.dirty-haskell.org/privkey.pem; 119 ssl_certificate_key /etc/nginx/ssl/www.dirty-haskell.org/privkey.pem;
85 120
@@ -88,13 +123,20 @@ in {
88 123
89 server { 124 server {
90 listen *:80; 125 listen *:80;
126 listen *:443 ssl;
91 listen [::]:80; 127 listen [::]:80;
92 server_name git.yggdrasil.li www.git.yggdrasil.li; 128 listen [::]:443 ssl;
129 ssl_certificate /etc/nginx/ssl/git.yggdrasil.li/fullchain.pem;
130 ssl_certificate_key /etc/nginx/ssl/git.yggdrasil.li/key.pem;
131 server_name git.yggdrasil.li;
93 132
94 root ${pkgs.cgit}/cgit; 133 root ${pkgs.cgit}/cgit;
95 134
96 try_files $uri @cgit; 135 try_files $uri @cgit;
97 136
137 include ${favicon};
138 include ${acme};
139
98 location @cgit { 140 location @cgit {
99 include ${uwsgi_params}; 141 include ${uwsgi_params};
100 uwsgi_pass unix:/tmp/cgit.sock; 142 uwsgi_pass unix:/tmp/cgit.sock;