81 lines
1.8 KiB
Nix
81 lines
1.8 KiB
Nix
{
|
|
...
|
|
}:
|
|
let
|
|
vars = import ../vars.nix;
|
|
in
|
|
{
|
|
systemd.tmpfiles.rules = [
|
|
"d ${vars.docker_configs}/camofox-browser 0750 root root - -"
|
|
];
|
|
|
|
containers.camofox-browser = {
|
|
autoStart = true;
|
|
privateNetwork = false;
|
|
bindMounts = {
|
|
camofox-browser = {
|
|
hostPath = "${vars.docker_configs}/camofox-browser";
|
|
mountPoint = "/var/lib/camofox-browser";
|
|
isReadOnly = false;
|
|
};
|
|
};
|
|
config =
|
|
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
{
|
|
networking.hostName = "camofox-browser";
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
ffmpeg
|
|
git
|
|
nodejs
|
|
python3Packages.yt-dlp
|
|
];
|
|
|
|
systemd.services.camofox-browser = {
|
|
description = "Camofox browser server";
|
|
wantedBy = [ "multi-user.target" ];
|
|
after = [ "network.target" ];
|
|
environment = {
|
|
CAMOFOX_HOST = "127.0.0.1";
|
|
CAMOFOX_PORT = "9377";
|
|
HOME = "/var/lib/camofox-browser";
|
|
};
|
|
path = with pkgs; [
|
|
bash
|
|
coreutils
|
|
git
|
|
nodejs
|
|
];
|
|
serviceConfig = {
|
|
Restart = "always";
|
|
RestartSec = "5s";
|
|
WorkingDirectory = "/var/lib/camofox-browser";
|
|
};
|
|
script = ''
|
|
set -eu
|
|
|
|
app_dir=/var/lib/camofox-browser/app
|
|
|
|
if [ ! -d "$app_dir/.git" ]; then
|
|
git clone --depth 1 https://github.com/jo-inc/camofox-browser "$app_dir"
|
|
fi
|
|
|
|
cd "$app_dir"
|
|
|
|
if [ ! -d node_modules ]; then
|
|
npm install
|
|
fi
|
|
|
|
exec npm start
|
|
'';
|
|
};
|
|
|
|
system.stateVersion = lib.mkDefault "24.05";
|
|
};
|
|
};
|
|
}
|