{ config, containerCfg, pkgs, lib, builder, name,... }: let serverCfg = config.syscfg.server; ethercalc_exe = pkgs.ethercalc; settings = pkgs.writeText"settings.json" (builtins.toJSON { title= "\${TITLE:Ethercalc}"; }); image = pkgs.dockerTools.streamLayeredImage { name = "ethercalc"; tag = ethercalc_exe.version; config = { Entrypoint = [ "${ethercalc_exe}/bin/ethercalc" ]; ExposedPorts = { "8080/tcp" = {}; }; }; }; in { paths = []; containers = { server = builder.mkContainer { subdomain = containerCfg.subdomain; imageStream = image; port = 8080; ip = containerCfg.ip; secret = name; extraEnv = { TITLE = "Calc"; PORT = "8080"; DB_TYPE = "postgres"; DB_HOST = builder.host; DB_NAME = "ethercalc_db"; DB_USER = "ethercalc_user"; DB_CHARSET = "utf8mb4"; TRUST_PROXY = "true"; DEFAULT_CALC_TEXT = ""; SKIN_VARIANTS = "super-dark-toolbar light-editor dark-background"; }; overrides = { cmd = [ "--settings" "/etc/ethercalc/settings.json" "--apikey" "./APIKEY.txt" ]; volumes = [ "${settings}:/etc/ethercalc/settings.json" ]; }; }; }; setup = { trigger = "server"; script = pkgs.writeShellScript "setup" '' # Define the command wrapper EXEC="${pkgs.podman}/bin/podman --events-backend=none exec --env-file ${config.sops.secrets."CUSTOM".path} ethercalc-server sh -c" $EXEC "echo \"$APIKEY\" > ./APIKEY.txt" ''; }; }