This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / 5pkgs / timeful / package.nix
2.0 kB 71 lines
1{ 2 lib, 3 applyPatches, 4 buildGoModule, 5 buildNpmPackage, 6 fetchFromGitHub, 7 makeWrapper, 8}: 9 10let 11 version = "0-unstable-2026-10-01"; 12 13 # self-host.patch (AGPL-3.0 §13: this directory is the corresponding source 14 # linked from the footer and the landing page): 15 # - strips Google Tag Manager, Publift/Primis ads, the paywall and the 16 # landing page's YouTube/Vimeo embeds and GitHub star button 17 # - replaces the Google/Outlook/email-OTP sign-in page with GitHub OAuth 18 # (GET /api/auth/github, GITHUB_CLIENT_ID/GITHUB_CLIENT_SECRET) 19 # - makes the listen address configurable via LISTEN_ADDR (upstream 20 # hardcodes ":3002" on all interfaces) 21 src = applyPatches { 22 src = fetchFromGitHub { 23 owner = "schej-it"; 24 repo = "timeful.app"; 25 rev = "23b7e7ead1d279ea5d8f431199a230c2dfbe0c1a"; 26 hash = "sha256-Yp2dkz4+QZ9pqZXOM4srZsCiu/TGLQXGNZtsRd5Dx+U="; 27 }; 28 patches = [ ./self-host.patch ]; 29 }; 30 31 frontend = buildNpmPackage { 32 pname = "timeful-frontend"; 33 inherit version; 34 src = "${src}/frontend"; 35 36 npmDepsHash = "sha256-eHitoSJUPX2mhlOgGrECCUp0zhKFxgsfxkY7+BmeHak="; 37 38 # No PostHog key and no Google/Microsoft OAuth client baked in; sign-in 39 # goes through the server-side GitHub flow instead. 40 installPhase = '' 41 runHook preInstall 42 cp -r dist $out 43 runHook postInstall 44 ''; 45 }; 46in 47buildGoModule { 48 pname = "timeful"; 49 inherit version src; 50 51 modRoot = "server"; 52 subPackages = [ "." ]; 53 vendorHash = "sha256-dl9JURh6pCB7P+jAWcjlPZwmkKPqV7EaOJZSwJYwcFQ="; 54 55 nativeBuildInputs = [ makeWrapper ]; 56 57 postInstall = '' 58 mv $out/bin/server $out/bin/timeful 59 wrapProgram $out/bin/timeful --set-default FRONTEND_DIST ${frontend} 60 ''; 61 62 passthru = { inherit frontend; }; 63 64 meta = { 65 description = "Availability poll to find the best time for a group to meet (formerly Schej)"; 66 homepage = "https://github.com/schej-it/timeful.app"; 67 license = lib.licenses.agpl3Only; 68 mainProgram = "timeful"; 69 platforms = lib.platforms.linux; 70 }; 71}