diff --git a/flake.lock b/flake.lock index 20c4f70..ceb859b 100644 --- a/flake.lock +++ b/flake.lock @@ -333,17 +333,17 @@ "proj": "proj" }, "locked": { - "lastModified": 1777418659, - "narHash": "sha256-kxrsCfoRc6pc45t9P4np6HjPNx3a6A7KZclsL0g/aWE=", + "lastModified": 1777520933, + "narHash": "sha256-8gSnitV1AuAvVc+gbWS1sKt1rmW5v7/Pd9ZRP05vu18=", "owner": "Gleipnir-Technology", "repo": "nidus-sync", - "rev": "f3af19f03a2b839cbf534234738b3f1bd6535f7d", + "rev": "839ed138ca734d05a2f2763be096717d327c5050", "type": "github" }, "original": { "owner": "Gleipnir-Technology", "repo": "nidus-sync", - "rev": "f3af19f03a2b839cbf534234738b3f1bd6535f7d", + "rev": "839ed138ca734d05a2f2763be096717d327c5050", "type": "github" } }, diff --git a/flake.nix b/flake.nix index 9a84a94..049f1af 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,7 @@ type = "github"; owner = "Gleipnir-Technology"; repo = "nidus-sync"; - rev = "f3af19f03a2b839cbf534234738b3f1bd6535f7d"; + rev = "839ed138ca734d05a2f2763be096717d327c5050"; }; nixos-facter-modules.url = "github:numtide/nixos-facter-modules"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; diff --git a/modules/system/nidus-sync.nix b/modules/system/nidus-sync.nix index 7e822d5..a0f08f1 100644 --- a/modules/system/nidus-sync.nix +++ b/modules/system/nidus-sync.nix @@ -9,6 +9,7 @@ let dataDirectoryString = "/mnt/bigdisk/nidus-sync"; group = nidusName; nidusName = "nidus-sync"; + nidusNameSentryUpload = "nidus-sentry-symbol-upload"; nidusNameSocket = "${nidusName}"; nidusNameWebserver = "${nidusName}-webserver"; nidus-sync-pkg = inputs.nidus-sync.packages.x86_64-linux.default; @@ -38,6 +39,7 @@ in { environment.systemPackages = with pkgs; [ ffmpeg nidus-sync-pkg + sentry-cli ]; services.caddy.virtualHosts."${cfg.domainNameReport}" = { extraConfig = '' @@ -101,6 +103,19 @@ in { restartUnits = ["${nidusNameWebserver}.service"]; sopsFile = ../../secrets/${cfg.environment}/${nidusName}.env; }; + systemd.services."${nidusNameSentryUpload}" = { + description = "Upload source maps to Sentry"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + EnvironmentFile = "${environmentFile}"; + Type = "oneshot"; + }; + script = '' + ${pkgs.sentry-cli}/bin/sentry-cli releases files ${inputs.nidus-sync.rev} upload-sourcemaps ${nidus-sync-pkg}/share/frontend/ --rewrite --log-level=info + ''; + }; systemd.services."${nidusNameWebserver}" = { after=["${nidusNameSocket}.socket" "network.target"]; description="Nidus Sync Webserver"; diff --git a/secrets/staging/nidus-sync.env b/secrets/staging/nidus-sync.env index 0e77acd..811c898 100644 --- a/secrets/staging/nidus-sync.env +++ b/secrets/staging/nidus-sync.env @@ -23,8 +23,12 @@ OPENAI_API_KEY=ENC[AES256_GCM,data:VpGLvn6YP05qw3V92rG2iGlSLfU5IeuLHzP2+5Ehqcjuj PHONE_NUMBER_RMO=ENC[AES256_GCM,data:jBJ3iGseNDop6Aaq2g==,iv:vRfyGz5sKpj7Fz7GQNbiykXqmK/XnN8TXn5O5Qb+vHw=,tag:viJfNf50MWY7DLbXGj47qQ==,type:str] PHONE_NUMBER_SUPPORT=ENC[AES256_GCM,data:MSnzNKCZHqKFTPYL,iv:sztT6efmHUfAQN76ZriJm/thHAW8uoIbo1gk4/IXjTc=,tag:Q81u13BjfdSM3a9hj/BZZg==,type:str] POSTGRES_DSN=ENC[AES256_GCM,data:lqx2+L+nY0Swni5XaEGMPpBz98Hwn4jFyxzhbVyVp2PXUfwfW+sD9xJaQ4h795BT47WSvX5/Ar0/mg==,iv:msF2RO8fd+l2I+iviV4FoydXWiMl1rUmN7oy+C5ivDs=,tag:iCooPP2M7Uz1ohJOrUb4dQ==,type:str] +SENTRY_AUTH_TOKEN=ENC[AES256_GCM,data:iShouxf46206p/RoAEJvNwVNv91CBLeErrBAztHavcmq0XqgKVms4Mi0k6mIyDdtDEAewYjhnmfj46nr+KG/0A==,iv:EuIDOrm41tCKyYNyWtoKMZfxW/a//+e1OI78dHbVsmc=,tag:sjeSKOaGiAiJ8LIM1Ag+QA==,type:str] SENTRY_DSN=ENC[AES256_GCM,data:Hjf+Ij8XHbGVfVh0xR+9pzriw5NQAQo67eHBT9gKeQ897KuA94fcPqWGPy+NgCcD6myDglSCNwl1YC9RJn2/7hNKc9Y5+EWu,iv:px6t/GmaE0IJHtAtR92LMwx+oNxxmCIoewjn88EOvYA=,tag:nYIJNw+5dpsHeHz3F58AEg==,type:str] SENTRY_DSN_FRONTEND=ENC[AES256_GCM,data:Oz6xEUKbc0IUyVl80jeSTSj8WwiNq6m+rXrOuqcaeuBbtFST9BPMOYQchCbIbQ44jkAvBjinEsM3HPRIKX4v/6KW9rDVduEC,iv:tMnHDzuA/CrPokAbnOPF2H92jnSKLNt59553IW0I35o=,tag:cTlj66Nt0uv2ZXU1lYN2kg==,type:str] +SENTRY_ORG=ENC[AES256_GCM,data:GV1ak0OK15GOXamJ,iv:SqomeJLMR2PNoipWz8H6adBPwvYQpa0FXUgT4b+gzSA=,tag:2wxkXy8ZlGrN7WA0nsEQHg==,type:str] +SENTRY_PROJECT=ENC[AES256_GCM,data:j7AMNTtX19Sj6/6QYq1nPVw0XNVDVw==,iv:BucY8cj1G4EKMbfBQ6VeicxDRsHq2gtjJ7wnpkRNQI4=,tag:QR1/rVSaPNcU5Iz/r7mxaQ==,type:str] +SENTRY_URL=ENC[AES256_GCM,data:axEBEsKhFnyrC1HgwV5WXJVKh/PWI2XXwVFAE38Y4wTYcZ+brKo=,iv:vyuL2k1N9dXIDPFColIWDvnfezP+A8JZYDCSrEUk7NA=,tag:wWXMZ1gjOhRSlQrNwESH3A==,type:str] STADIA_MAPS_API_KEY=ENC[AES256_GCM,data:WTO3OQX10LPXZ8M+pEMwYHC1r7rKqVOiIY6J3+c6aXfO7X/4,iv:vOGPbWEH9VwzwDn3FU1ybiHX04xMIDHX+VjAg6zLndM=,tag:CArpz30t/NEH3Y0woXlZiQ==,type:str] TEXT_PROVIDER=ENC[AES256_GCM,data:ChNb+KkG,iv:ialk+dLpWMlr9xRLIE73q4mpLuAKKjd7pEmFskfceEc=,tag:x2nql51ej9AydyvPQj76ow==,type:str] TWILIO_ACCOUNT_SID=ENC[AES256_GCM,data:na7gW39L9j+VHjyFb9Cj46O+wvBwF41wczeH2e8cjVUk8Q==,iv:Oo2ddHWoZvhQ0TCI96uo3KnD70HMO+3dhMePupaINZM=,tag:Gix4rIcl8l7e7hXE2RfxdA==,type:str] @@ -52,7 +56,7 @@ sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb2 sops_age__list_7__map_recipient=age167q6r28ws6wrpjwxnt4ap2fgs6d9cyvrdhzl2wflr2tnsw5xapxq36n2ec sops_age__list_8__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvR1NnUmxVL0w2STJvVDhq\nT3JKYlZJZW5ZS2Q1eHBDMVM2SEVJY2ZPdGk0CnRBK1RKaSt1WEhnNHVhMzY2RXdw\nbUMrVXIzQXAzTjQ0K0l5azlEWWtoblEKLS0tIFN6bnhSVGJHb1lSVVF1WEdGd0hW\nTGpVME5iMTNjd0diOWhKYTFuMHFTS3MKibwqgBftT4l3bVrB7e8RYgGNeuLwAkUn\n16OIGtnnGaByPQ76C/itJmocr5qyGt+Gv13iu48hpf0w3xK/tnzelQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_8__map_recipient=age1924evks66k9g6c4zcnn2ghjcxpe0fzw2y9j253xredkwqnw9p5qqjcvjqt -sops_lastmodified=2026-04-21T23:59:04Z -sops_mac=ENC[AES256_GCM,data:yBi7SHi7INTJwM47LqXcWkwOV5rXoC0fMWLqd/ui+sgGDqWJQm1CJoDSDx1Db6GKP1cgfTW9xZgAcf+Im9hkdKbtairH9zEKyrH2SAar2rGbmVQeSjeKpgRS7+3kXcZ147zRrdHTMwIBKHUHKGuvtOYTZnzH1fjbkVWEHYZ8jbo=,iv:yxRifBX5TF2phxtsfCQJ/jVsmXn9paUtQyenu9e6jKw=,tag:A+WJQdbAg3EmHjOiK5zN7w==,type:str] +sops_lastmodified=2026-04-30T03:41:58Z +sops_mac=ENC[AES256_GCM,data:n4ds3T29X6ZvIoNwfFluSMNs11eepL/e20L9dpbVXR+RPjVza+gR4GL/jbHDifyNxylbuoe6yu3x/io3XWtHQt8WRW8n+TQjOEnM7YCrEu4C59fKtzMvntb6SsNuGYgHhhG/CUytTtGOua11PHISODGmaepGkbsPu2v+hsWucaU=,iv:jW5UhFsBgqxA/MzK4zjYRFcDmdlZDve3MjIzPFHZtDA=,tag:r3mtqnpBv8o1+5JXN30rLg==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1