···
description = "Cachet Slack emoji/profile cache";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
119
+
path = [ pkgs.git ];
121
-
mkdir -p ${cfg.dataDir}/data
122
-
mkdir -p ${cfg.dataDir}/app
123
-
chown -R cachet:services ${cfg.dataDir}
124
-
chmod -R g+rwX ${cfg.dataDir}
122
+
cd ${cfg.dataDir}/app
124
+
if [ ! -d .git ]; then
125
+
${pkgs.git}/bin/git clone ${cfg.repository} .
'' + lib.optionalString cfg.autoUpdate ''
126
-
if [ ! -d ${cfg.dataDir}/app/.git ]; then
127
-
${pkgs.git}/bin/git clone ${cfg.repository} ${cfg.dataDir}/app
129
-
cd ${cfg.dataDir}/app && ${pkgs.git}/bin/git pull
128
+
${pkgs.git}/bin/git pull
131
+
if [ ! -f src/index.ts ]; then
132
+
echo "No code found at ${cfg.dataDir}/app/src/index.ts"
136
+
echo "Installing dependencies..."
137
+
${pkgs.unstable.bun}/bin/bun install
137
-
WorkingDirectory = "${cfg.dataDir}/app";
EnvironmentFile = cfg.secretsFile;
"PORT=${toString cfg.port}"
"DATABASE_PATH=${cfg.dataDir}/data/cachet.db"
144
-
ExecStart = "${pkgs.unstable.bun}/bin/bun run src/index.ts";
150
+
ExecStart = "${pkgs.bash}/bin/bash -c 'cd ${cfg.dataDir}/app && ${pkgs.unstable.bun}/bin/bun run src/index.ts'";
155
+
serviceConfig.ExecStartPre = [
156
+
"+${pkgs.writeShellScript "cachet-setup" ''
157
+
mkdir -p ${cfg.dataDir}/data
158
+
mkdir -p ${cfg.dataDir}/app
159
+
chown -R cachet:services ${cfg.dataDir}
160
+
chmod -R g+rwX ${cfg.dataDir}
services.caddy.virtualHosts.${cfg.domain} = {