nixos-configs/machine/empyrean/amanuensis.nix

51 lines
1.3 KiB
Nix

# Configuration for the Amanuensis service
{ config, pkgs, ... }:
# Set up python
with pkgs;
let amanuensis-requires = python-packages: with python-packages; [
flask flask_login flask_wtf gunicorn
];
python3-with-amanuensis-requires = python3.withPackages amanuensis-requires;
in
{
# Create a user for the server process to run under
users.users.amanuensis = {
isNormalUser = true;
group = "amanuensis";
description = "Amanuensis server user";
packages = [ python3-with-amanuensis-requires ];
};
users.groups.amanuensis = {};
# Create the server process systemd unit
systemd.services.amanuensis = {
enable = true;
description = "Amanuensis Lexicon server";
path = [ python3-with-amanuensis-requires ];
serviceConfig = {
Type = "simple";
ExecStart = "/home/amanuensis/Amanuensis/run.sh";
Restart = "on-failure";
User = "amanuensis";
WorkingDirectory = "/home/amanuensis";
};
wantedBy = [ "multi-user.target" ];
};
# Configure nginx to forward to the server at the lexicon subdomain
services.nginx.virtualHosts."lexicon.alogoulogoi.com" = {
enableACME = true;
forceSSL = true;
extraConfig = ''
access_log /var/log/nginx/access.lexicon.log;
'';
locations."/".extraConfig = ''
proxy_buffering off;
proxy_pass http://localhost:8000/;
'';
};
}