ma deployment: add board.euer, rss.euer

This commit is contained in:
makefu 2020-03-13 10:42:39 +01:00
parent f88e30e5ad
commit 3e27de38fc
No known key found for this signature in database
GPG Key ID: 36F7711F3FC0F225
5 changed files with 135 additions and 0 deletions

View File

@ -0,0 +1,15 @@
let
fqdn = "board.euer.krebsco.de";
port = 13113;
in {
services.restya-board = {
enable = true;
virtualHost.listenPort = port;
};
services.nginx.virtualHosts."${fqdn}" = {
enableACME = true;
forceSSL = true;
locations."/".proxyPass = "http://localhost:${toString port}";
};
}

View File

@ -0,0 +1,39 @@
{ lib, ... }:
with lib;
let
port = ident: toString (28000 + ident);
instances = [ 1 2 3 4 5 6 7 8 9 ];
in {
services.nginx.recommendedProxySettings = true;
services.nginx.virtualHosts."warrior.gum.r".locations = let
# TODO location "/" shows all warrior instances
proxy = ident:
{
"/warrior${toString ident}/" = {
proxyPass = "http://localhost:${port ident}/";
# rewrite ^/info /warrior${toString ident}/info;
extraConfig = ''
sub_filter "http://warrior.gum.r/info" "http://warrior.gum.r/warrior${toString ident}/info";
sub_filter_once off;
'';
};
};
in
foldl' mergeAttrs {} (map proxy instances);
docker-containers = let
container = ident:
{ "archiveteam-warrior${toString ident}" = {
image = "archiveteam/warrior-dockerfile";
ports = [ "127.0.0.1:${port ident}:8001" ];
environment = {
DOWNLOADER = "makefu";
SELECTED_PROJECT = "auto";
CONCURRENT_ITEMS = "6";
WARRIOR_ID = toString ident;
};
};
};
in
foldl' mergeAttrs {} (map container instances);
}

View File

@ -0,0 +1,43 @@
{ config, lib, pkgs, ... }:
# more than just nginx config but not enough to become a module
let
wsgi-sock = "${workdir}/uwsgi-gecloudpad.sock";
workdir = config.services.uwsgi.runDir;
gecloudpad = pkgs.python3Packages.callPackage ./gecloudpad.nix {};
in {
services.uwsgi = {
enable = true;
user = "nginx";
# runDir = "/var/lib/photostore";
plugins = [ "python3" ];
instance = {
type = "emperor";
vassals = {
gecloudpad = {
type = "normal";
pythonPackages = self: with self; [ gecloudpad ];
socket = wsgi-sock;
};
};
};
};
services.nginx = {
enable = lib.mkDefault true;
virtualHosts."pad.binaergewitter.de" = {
enableACME = true;
forceSSL = true;
locations = {
"/".extraConfig = ''
expires -1;
uwsgi_pass unix://${wsgi-sock};
uwsgi_param UWSGI_CHDIR ${gecloudpad}/${pkgs.python.sitePackages};
uwsgi_param UWSGI_MODULE gecloudpad.main;
uwsgi_param UWSGI_CALLABLE app;
include ${pkgs.nginx}/conf/uwsgi_params;
'';
};
};
};
}

View File

@ -0,0 +1,24 @@
{ lib, pkgs, fetchFromGitHub, ... }:
with pkgs.python3Packages;buildPythonPackage rec {
name = "gecloudpad-${version}";
version = "0.2.3";
propagatedBuildInputs = [
flask requests
];
src = fetchFromGitHub {
owner = "binaergewitter";
repo = "gecloudpad";
rev = "master";
sha256 = "0p9lcphp3r7hyypxadzw4x9ix6d0anmspxnjnj0v2jjll8gxqlhf";
};
meta = {
homepage = https://github.com/binaergeiwtter/gecloudpad;
description = "server side for gecloudpad";
license = lib.licenses.wtfpl;
};
}

View File

@ -0,0 +1,14 @@
let
fqdn = "rss.euer.krebsco.de";
in {
services.tt-rss = {
enable = true;
virtualHost = fqdn;
selfUrlPath = "https://${fqdn}";
};
services.nginx.virtualHosts."${fqdn}" = {
enableACME = true;
forceSSL = true;
};
}