2025-08-08 17:00:47 -04:00
|
|
|
{ config, pkgs, self, ... }:
|
|
|
|
|
|
|
|
|
|
let
|
|
|
|
|
versioncontrol_compose_dir = pkgs.stdenv.mkDerivation {
|
|
|
|
|
name = "versioncontrol_compose_dir";
|
|
|
|
|
src = self + "/assets/compose/versioncontrol";
|
|
|
|
|
dontUnpack = true;
|
|
|
|
|
installPhase = ''
|
|
|
|
|
mkdir -p $out
|
|
|
|
|
cp -r $src/* $out/
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
in
|
|
|
|
|
{
|
|
|
|
|
networking.firewall.allowedTCPPorts = [ 2222 ];
|
|
|
|
|
|
|
|
|
|
systemd.services.versioncontrol_stack = {
|
|
|
|
|
description = "Gitea via Docker Compose";
|
|
|
|
|
after = [ "network-online.target" "docker.service" ];
|
|
|
|
|
wants = [ "network-online.target" "docker.service" ];
|
|
|
|
|
serviceConfig = {
|
|
|
|
|
WorkingDirectory = "${versioncontrol_compose_dir}";
|
|
|
|
|
|
|
|
|
|
# Stop left over container by the same name
|
|
|
|
|
ExecStartPre = "${pkgs.bash}/bin/bash -c '${pkgs.docker-compose}/bin/docker-compose down || true'";
|
|
|
|
|
|
2025-08-08 18:18:47 -04:00
|
|
|
# Start the services using Docker Compose
|
2025-08-08 17:00:47 -04:00
|
|
|
ExecStart = "${pkgs.docker-compose}/bin/docker-compose up -d";
|
|
|
|
|
|
2025-08-08 18:18:47 -04:00
|
|
|
# Stop and remove containers on shutdown
|
2025-08-08 17:00:47 -04:00
|
|
|
ExecStop = "${pkgs.docker-compose}/bin/docker-compose down";
|
|
|
|
|
|
|
|
|
|
RemainAfterExit = true;
|
|
|
|
|
TimeoutStartSec = 0;
|
|
|
|
|
};
|
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
|
};
|
|
|
|
|
}
|