add caps to container and nix

This commit is contained in:
XenGi 2024-08-08 00:50:33 +02:00
parent 1978208b61
commit adb0190b3f
Signed by: xengi
SSH key fingerprint: SHA256:jxWM2RTHvxxcncXycwwWkP7HCWb4VREN05UGJTbIPZg
2 changed files with 34 additions and 2 deletions

View file

@ -2,10 +2,11 @@
Description=sanic - chaos music control Description=sanic - chaos music control
[Container] [Container]
AddCapability=CAP_NET_BIND_SERVICE
AutoUpdate=registry AutoUpdate=registry
ContainerName=sanic ContainerName=sanic
Group=sanic Group=sanic
HealthCmd=/usr/bin/curl localhost:8080/echo HealthCmd=/usr/bin/curl localhost:443/echo
HealthInterval=2m HealthInterval=2m
HealthOnFailure=restart HealthOnFailure=restart
HealthRetries=5 HealthRetries=5
@ -14,7 +15,7 @@ Image=registry.gitlab.com/xengi/sanic/sanic:latest
LogDriver=journald LogDriver=journald
Network=host Network=host
NoNewPrivileges=true NoNewPrivileges=true
PublishPort=8080 PublishPort=443
Pull=always Pull=always
User=sanic User=sanic
Volume=/etc/sanic/config.ini:/config.ini Volume=/etc/sanic/config.ini:/config.ini
@ -25,3 +26,4 @@ TimeoutStartSec=900
[Install] [Install]
WantedBy=multi-user.target default.target WantedBy=multi-user.target default.target

30
services.nix Normal file
View file

@ -0,0 +1,30 @@
{ self, ...}: {config, lib, pkgs, ...}:
let
cfg = config.services.sanic;
format = pkgs.formats.ini { };
in
{
options.services.sanic = {
enable = mkEnableOption (lib.mdDoc "sanic");
settings = mkOption {
type = format.type;
default = { };
description = lib.mkDoc ''
'';
};
};
config = mkIf cfg.enable {
systemd.services.sanic = {
description = "chaos music control";
wantedBy = [ "multi-user.target" "default.target" ];
serviceConfig = {
DynamicUser = true;
ExecStart = "${self.packages.${pkgs.system}.default}/bin/sanic";
Restart = "on-failure";
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
};
};
};
}