# TaskLine A simple to-do app focused on tasks that can be completed within a specific time span. ## Development Create a OAuth client at [google](https://console.cloud.google.com/) Create vapid keys for webpush this can be done via `npx web-push generate-vapid-keys` ```dotenv #Nuxt NUXT_GOOGLE_CLIENT_ID= NUXT_GOOGLE_CLIENT_SECRET= BETTER_AUTH_URL=http://localhost:3000 #BETTER_AUTH_DATABASE_PATH=postgres://devuser:devpassword@localhost:5432/devdb NUXT_PUBLIC_WEBPUSH_PUBLIC_KEY= #Api API_WEBPUSH_PRIVATE_KEY= #API_DATABASE_URL=postgres://devuser:devpassword@localhost:5432/devdb ``` run `just dev` to start the nuxt dev server and the api server ## Deployment via Nix ### flake.nix ```nix inputs = { ... taskline.url = "git+https://tangled.org/tobinio.dev/task-line?ref="; ... }; ``` ### configuration.nix ```nix systemd.services.taskline-backend = { description = "TaskLine Backend"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = "${inputs.taskline.packages.${pkgs.system}.backend}/bin/api"; }; }; systemd.services.taskline-frontend = { description = "TaskLine Frontend"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = "${pkgs.nodejs_22}/bin/node ${inputs.taskline.packages.${pkgs.system}.frontend}/server/index.mjs"; }; }; ``` ## .env example ```dotenv # Nuxt NUXT_GOOGLE_CLIENT_ID= NUXT_GOOGLE_CLIENT_SECRET= BETTER_AUTH_SECRET= BETTER_AUTH_URL= BETTER_AUTH_DATABASE_PATH= NUXT_PUBLIC_WEBPUSH_PUBLIC_KEY= NUXT_PUBLIC_API_BASE= # Api API_WEBPUSH_PRIVATE_KEY= API_DATABASE_URL= API_AUTH_API_BASE= API_SELF_API_BASE= ```