{ config, pkgs, lib, ... }: let stateDir = "/var/lib/overleaf"; in { users = { users.overleaf = { description = "Overleaf LaTeX Server"; useDefaultShell = true; group = "overleaf"; # "Normal" User: for Podman Usage isNormalUser = true; home = stateDir; linger = true; }; groups.overleaf = {}; }; services.caddy.virtualHosts = { "overleaf.ws.kcnhub.com" = { extraConfig = '' reverse_proxy 127.0.0.1:7080 ''; }; }; # Overleaf only officially supports container based installation # For ease of use and compatability we shall follow suit (for now) # An imperative installation is described below, to be updated # to a declarative installation at a later date (with no loss of data) # # Imperative Description: # # Overleaf/toolkit installed in $stateDir: # https://github.com/overleaf/toolkit # # This repository contains scripts to configure # and instantiate overleaf in the same directory # (hence making declarative pure description more difficult) # # These scripts configure a set of containers (docker/podman) # overleaf (sharelatex) # MongoDB # Redis # # These are the things that will need to be migrated, come a declarative port # All Relevant files will be stored in the $stateDir. }