Something went wrong. Try again.
A simple to-do app focused on tasks that can be completed within a specific time span. taskline.tobinio.dev
Something went wrong. Try again.
Rust 56%
Vue 27%
TypeScript 15%
Nix <1%
CSS <1%
Just <1%
JavaScript <1%
<1%
Shell <1%
README.md
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
Create vapid keys for webpush this can be done via npx web-push generate-vapid-keys
#Nuxt
NUXT_GOOGLE_CLIENT_ID=<google_client_id>
NUXT_GOOGLE_CLIENT_SECRET=<google_client_secret>
BETTER_AUTH_URL=http://localhost:3000
#BETTER_AUTH_DATABASE_PATH=postgres://devuser:devpassword@localhost:5432/devdb
NUXT_PUBLIC_WEBPUSH_PUBLIC_KEY=<public_key>
#Api
API_WEBPUSH_PRIVATE_KEY=<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 #
inputs = {
...
taskline.url =
"git+https://tangled.org/tobinio.dev/task-line?ref=<current_version>";
...
};
configuration.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 #
# Nuxt
NUXT_GOOGLE_CLIENT_ID=<google_client_id>
NUXT_GOOGLE_CLIENT_SECRET=<google_client_secret>
BETTER_AUTH_SECRET=<secret>
BETTER_AUTH_URL=<base_url>
BETTER_AUTH_DATABASE_PATH=<path_to_database>
NUXT_PUBLIC_WEBPUSH_PUBLIC_KEY=<public_key>
NUXT_PUBLIC_API_BASE=<api_base>
# Api
API_WEBPUSH_PRIVATE_KEY=<private_key>
API_DATABASE_URL=<database_url>
API_AUTH_API_BASE=<auth_api_base>
API_SELF_API_BASE=<self_api_base>