diff --git a/default.nix b/default.nix index e68533d..28e90ab 100644 --- a/default.nix +++ b/default.nix @@ -39,10 +39,17 @@ let # Copy all application files cp -r $src/* $out/opt/usda-vision/ - # Remove any existing .env files and create symlink to /var/lib location + # Remove any existing .env files rm -f $out/opt/usda-vision/management-dashboard-web-app/.env rm -f $out/opt/usda-vision/.env - ln -s /var/lib/usda-vision/.env $out/opt/usda-vision/management-dashboard-web-app/.env + + # Update docker-compose.yml to use /var/lib/usda-vision/.env + if [ -f $out/opt/usda-vision/docker-compose.yml ]; then + ${pkgs.gnused}/bin/sed -i 's|env_file:.*management-dashboard-web-app/\.env|env_file: /var/lib/usda-vision/.env|g' \ + $out/opt/usda-vision/docker-compose.yml + ${pkgs.gnused}/bin/sed -i 's|\./management-dashboard-web-app/\.env|/var/lib/usda-vision/.env|g' \ + $out/opt/usda-vision/docker-compose.yml + fi # Create convenience scripts mkdir -p $out/bin @@ -126,6 +133,12 @@ in wants = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; + # Only start if .env file exists and is not empty + unitConfig = { + ConditionPathExists = "/var/lib/usda-vision/.env"; + ConditionPathIsReadWrite = "/var/lib/usda-vision/.env"; + }; + preStart = '' # Ensure .env file exists with defaults if empty if [ ! -s /var/lib/usda-vision/.env ]; then