m 1 wry: serve euer wiki
This commit is contained in:
parent
23424a3a2a
commit
84ebd8c021
@ -164,6 +164,7 @@ with lib;
|
|||||||
dc = "makefu"; #dc = "cac";
|
dc = "makefu"; #dc = "cac";
|
||||||
extraZones = {
|
extraZones = {
|
||||||
"krebsco.de" = ''
|
"krebsco.de" = ''
|
||||||
|
wiki.euer IN A ${head nets.internet.addrs4}
|
||||||
wry IN A ${head nets.internet.addrs4}
|
wry IN A ${head nets.internet.addrs4}
|
||||||
io IN NS wry.krebsco.de.
|
io IN NS wry.krebsco.de.
|
||||||
graphs IN A ${head nets.internet.addrs4}
|
graphs IN A ${head nets.internet.addrs4}
|
||||||
@ -189,6 +190,7 @@ with lib;
|
|||||||
"paste.wry.retiolum"
|
"paste.wry.retiolum"
|
||||||
"paste.retiolum"
|
"paste.retiolum"
|
||||||
"wry.retiolum"
|
"wry.retiolum"
|
||||||
|
"wiki.makefu.retiolum"
|
||||||
];
|
];
|
||||||
tinc.pubkey = ''
|
tinc.pubkey = ''
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
-----BEGIN RSA PUBLIC KEY-----
|
||||||
@ -215,9 +217,8 @@ with lib;
|
|||||||
extraZones = {
|
extraZones = {
|
||||||
"krebsco.de" = ''
|
"krebsco.de" = ''
|
||||||
euer IN A ${head nets.internet.addrs4}
|
euer IN A ${head nets.internet.addrs4}
|
||||||
euer.blog IN A ${head nets.internet.addrs4}
|
share.euer IN A ${head nets.internet.addrs4}
|
||||||
gum IN A ${head nets.internet.addrs4}
|
gum IN A ${head nets.internet.addrs4}
|
||||||
euer.wiki IN A ${head nets.internet.addrs4}
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
nets = {
|
nets = {
|
||||||
|
@ -20,6 +20,9 @@ in {
|
|||||||
|
|
||||||
# Reaktor
|
# Reaktor
|
||||||
../2configs/Reaktor/simpleExtend.nix
|
../2configs/Reaktor/simpleExtend.nix
|
||||||
|
|
||||||
|
# other nginx
|
||||||
|
../2configs/nginx/euer.wiki.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
krebs.build = {
|
krebs.build = {
|
||||||
@ -28,8 +31,6 @@ in {
|
|||||||
host = config.krebs.hosts.wry;
|
host = config.krebs.hosts.wry;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
krebs.Reaktor.enable = true;
|
krebs.Reaktor.enable = true;
|
||||||
|
|
||||||
# bepasty to listen only on the correct interfaces
|
# bepasty to listen only on the correct interfaces
|
||||||
@ -59,6 +60,7 @@ in {
|
|||||||
networking = {
|
networking = {
|
||||||
firewall.allowPing = true;
|
firewall.allowPing = true;
|
||||||
firewall.allowedTCPPorts = [ 53 80 443 ];
|
firewall.allowedTCPPorts = [ 53 80 443 ];
|
||||||
|
firewall.allowedUDPPorts = [ 655 ];
|
||||||
interfaces.enp2s1.ip4 = [{
|
interfaces.enp2s1.ip4 = [{
|
||||||
address = external-ip;
|
address = external-ip;
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
|
114
makefu/2configs/nginx/euer.wiki.nix
Normal file
114
makefu/2configs/nginx/euer.wiki.nix
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
ssl_cert = "/root/secrets/wildcard.krebsco.de.crt";
|
||||||
|
ssl_key = "/root/secrets/wildcard.krebsco.de.key";
|
||||||
|
user = config.services.nginx.user;
|
||||||
|
group = config.services.nginx.group;
|
||||||
|
fpm-socket = "/var/run/php5-fpm.sock";
|
||||||
|
hostname = config.krebs.build.host.name;
|
||||||
|
tw-upload = pkgs.tw-upload-plugin;
|
||||||
|
base-dir = "/var/www/wiki.euer";
|
||||||
|
base-cfg = "${base-dir}/twconf.ini";
|
||||||
|
wiki-dir = "${base-dir}/store/";
|
||||||
|
backup-dir = "${base-dir}/backup/";
|
||||||
|
# contains:
|
||||||
|
# user1 = pass1
|
||||||
|
# userN = passN
|
||||||
|
tw-pass-file = "/root/secrets/tw-pass.ini";
|
||||||
|
external-ip = head config.krebs.build.host.nets.internet.addrs4;
|
||||||
|
internal-ip = head config.krebs.build.host.nets.retiolum.addrs4;
|
||||||
|
in {
|
||||||
|
services.phpfpm = {
|
||||||
|
# phpfpm does not have an enable option
|
||||||
|
poolConfigs = {
|
||||||
|
euer-wiki = ''
|
||||||
|
user = ${user}
|
||||||
|
group = ${group}
|
||||||
|
listen = ${fpm-socket}
|
||||||
|
listen.owner = ${user}
|
||||||
|
listen.group = ${group}
|
||||||
|
env[twconf] = ${base-cfg};
|
||||||
|
pm = dynamic
|
||||||
|
pm.max_children = 5
|
||||||
|
pm.start_servers = 2
|
||||||
|
pm.min_spare_servers = 1
|
||||||
|
pm.max_spare_servers = 3
|
||||||
|
chdir = /
|
||||||
|
# errors to journal
|
||||||
|
php_admin_value[error_log] = 'stderr'
|
||||||
|
php_admin_flag[log_errors] = on
|
||||||
|
catch_workers_output = yes
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.prepare-tw = {
|
||||||
|
wantedBy = [ "local-fs.target" ];
|
||||||
|
before = [ "phpfpm.service" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = pkgs.writeScript "prepare-tw-service" ''
|
||||||
|
#!/bin/sh
|
||||||
|
mkdir -p "${wiki-dir}" "${backup-dir}"
|
||||||
|
|
||||||
|
# write the base configuration
|
||||||
|
cat > "${base-cfg}" <<EOF
|
||||||
|
[users]
|
||||||
|
$(cat "${tw-pass-file}")
|
||||||
|
[directories]
|
||||||
|
backupdir = ${backup-dir}
|
||||||
|
savedir = ${wiki-dir}
|
||||||
|
EOF
|
||||||
|
chown -R ${user}:${group} "${base-dir}"
|
||||||
|
chmod 700 -R "${base-dir}"
|
||||||
|
'';
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = "yes";
|
||||||
|
TimeoutSec = "0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
krebs.nginx = {
|
||||||
|
enable = mkDefault true;
|
||||||
|
servers = {
|
||||||
|
euer-wiki = {
|
||||||
|
listen = [ "${external-ip}:80" "${external-ip}:443 ssl"
|
||||||
|
"${internal-ip}:80" "${internal-ip}:443 ssl" ];
|
||||||
|
server-names = [
|
||||||
|
"wiki.euer.krebsco.de"
|
||||||
|
"wiki.makefu.retiolum"
|
||||||
|
"wiki.makefu"
|
||||||
|
];
|
||||||
|
extraConfig = ''
|
||||||
|
gzip on;
|
||||||
|
gzip_buffers 4 32k;
|
||||||
|
gzip_types text/plain application/x-javascript text/css;
|
||||||
|
ssl_certificate ${ssl_cert};
|
||||||
|
ssl_certificate_key ${ssl_key};
|
||||||
|
default_type text/plain;
|
||||||
|
|
||||||
|
if ($scheme = http){
|
||||||
|
return 301 https://$server_name$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
'';
|
||||||
|
locations = [
|
||||||
|
(nameValuePair "/" ''
|
||||||
|
root ${wiki-dir};
|
||||||
|
expires -1;
|
||||||
|
autoindex on;
|
||||||
|
'')
|
||||||
|
(nameValuePair "/store.php" ''
|
||||||
|
root ${tw-upload};
|
||||||
|
client_max_body_size 200M;
|
||||||
|
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||||
|
fastcgi_pass unix:${fpm-socket};
|
||||||
|
include ${pkgs.nginx}/conf/fastcgi_params;
|
||||||
|
include ${pkgs.nginx}/conf/fastcgi.conf;
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user