Community Apps

Trakstr

By Nostr Dev

A better way to track your time

256MB Updated 25 Apr 2026
nostr time-tracking project-management
Install this app
In your Cloudron dashboard, open the App Store, choose "Community apps" and paste this URL:
https://git.nostrdev.com/trakstr/cloudron-trakstr/raw/branch/master/CloudronVersions.json

Description

Designed for businesses that value privacy and control, Trakstr allows seamless tracking of employee work hours, project allocations, and productivity analysis, all within a secure and private environment.

Screenshot

Recent Changes

  • 1.24.0 (2026-07-07)

  • Features

  • add test for non admin user (81d9f47)

  • helper function for creating worker (981ae36)

  • Bug Fixes

  • correct endpoints (592f80d)

  • create time entry (edd4b7d)

  • cron: gate no-screenshots timeout behind idle master switch (592b200)

  • error codes (8dfed74)

  • explicitly fail apply template sets auth tests (9d37fcd)

  • explicitly fail create time entry live tests (2ee0951)

  • explicitly fail tests (0231831)

  • fail add users to project tests explicitly (dc7b6e8)

  • fail customer consumption tests explicitly (7555cfe)

  • period totals tests seeding (85776a4)

  • refactor (37e6cc4)

  • seed data before tests (1fa8dad)

  • time entry periods tests (c9c121b)

  • use worker identity (cb8bb79)

  • view time entries tests fail explicitly (c389ebb)

  • 1.23.1 (2026-03-13)

  • Bug Fixes

  • cloudron fails due to sharp library (fcbbdb5)

  • 1.23.0 (2026-03-04)

  • Features

  • add and fix tests to allow multiple user project assignments (10d7b5b)

  • add new capabilities to enum (956f307)

  • add role management to role api (3e82d92)

  • add synced trackertimeout capability (c3ce772)

  • capability route to get capabilities (797ca8d)

  • capability-value service (f1ca5f2)

  • controller method for testing capability resolution (85e5771)

  • debug page endpoint (cb8997a)

  • endpoint to get all users assigned to a specific role (4bb3c8c)

  • fallback to default value (4a184e7)

  • functions for capability values (31d5a72)

  • get all users assigned to a specific role in user role table (16ecacb)

  • manualTrackEnabled capability (c4f6b33)

  • methods for time entry lock period and updating default value (3192cbe)

  • migration for capabilities config (bf6585c)

  • model changes (23baf63)

  • predefined options for frontend (ead53f9)

  • predefined values (2210214)

  • predefined values and priority score added to api (4553f45)

  • resolve tracker timeout in cron job (16ae510)

  • route for testing (204f824)

  • screenshotBlur capability (95f9374)

  • seed capability values (d59ebc6)

  • service methods for debug screen (218f43f)

  • support multiple roleids and deduplicate returned results (3b3fcd9)

  • support multiple roleids and endpoint for user roles on a project (db1b527)

  • support multiple roleids and endpoints for user roles on a project (2dc4065)

  • test for duplicate user project roles (44d0c35)

  • tests (88f312a)

  • update and fix migration (3ccf25e)

  • update default value endpoint (4d163cc)

  • update types for value, priorityscore and roleids (d2bddd0)

  • update validation (57d2645)

  • user-role api (1018afc)

  • Bug Fixes

  • 30 minute grace period for time entry (f6ab2be)

  • added role assignment to test (43f9500)

  • audit (95a3b34)

  • audit (0f3ccc0)

  • audit (d0ea0ca)

  • audit (08e48f8)

  • audit vulnerability (7d5e21d)

  • blurring method (4ccba00)

  • blurring strength (e45cd03)

  • capability constraint (6444940)

  • change endpoint name (e5721e3)

  • comments (ce91166)

  • default (2d0f3dc)

  • delete time entry uses lock hours (6983028)

  • endpoint (75ced21)

  • error handling (936b7df)

  • get predefined values from db (742f8de)

  • inlcude all editable capabilities in permissions (5b8dc90)

  • migrations (805fdad)

  • modify update so seeded roles cannot be updated (711b8f8)

  • multiple users format (07de70f)

  • names and descriptions (42780fe)

  • packages (83e5d7f)

  • packages (cf2d032)

  • priority score returned correctly (81386e2)

  • projectid check for tests (ef0ef62)

  • regen capabilities (b6a7c1b)

  • remove hardcoded predefined (8d7499d)

  • remove jsonwebtoken package (41db11d)

  • remove priorityScore from payload (4dba7bc)

  • remove unused endpoint (66626b1)

  • remove unused getalby package (70fe1d5)

  • seeded roles can not be deleted (f9e31e9)

  • start time equals created time (13c2838)

  • test data (4da1a37)

  • types (c4e78ed)

  • verifyAdmin middleware added to role routes (8a8a67e)

  • 1.22.0 (2026-01-08)

  • Features

  • multiple projects selection (8367de2)

  • multiple tasks filter (ab13caf)

  • select multiple customers (89c59f8)

  • Bug Fixes

  • add test to integration (324fd02)

  • audit vulnerabilities (6f6c567)

  • data generation for consistency tests (7c0bb43)

  • false positives (47a43ca)

  • flipped if condition (66fea76)

  • handle month starting at week end (4ddae46)

  • remove test (b4ddcc2)

  • remove unused (53c9a42)

  • start time 5 minutes in future (61815eb)

  • unassign users (780d3da)

  • validation (baa5a33)

  • vulnerabilities (72e96a6)

  • 1.21.0 (2025-12-25)

  • Features

  • update tests (0a47bf1)

  • user breakdown (956d7ca)

  • 1.20.3 (2025-12-24)

  • Bug Fixes

  • round up to seconds (b8823de)

  • 1.20.2 (2025-12-23)

  • Bug Fixes

  • report: add date field in csv export (634ec45)

  • 1.20.1 (2025-12-23)

  • Bug Fixes

  • owner permissions (82b9d2f)

  • permissions (a591da4)

  • time entry service (fa975a3)

  • 1.20.0 (2025-12-16)

  • Features

  • period breakdown endpoints (0fe5765)

  • Bug Fixes

  • 36 hour rule (54aab07)

  • calculations to match time entry (51ab2d4)

  • timezone inconsistency (efd650a)

  • 1.19.0 (2025-12-09)

  • Features

  • accept invitation (86850b8)

  • add roomname and botname (e6acd57)

  • 1.18.0 (2025-12-08)

  • Features

  • add capability to reports endpoint (6be35f6)

  • add duration in hours to csv (bc7c0f2)

  • customer, project, user filter (8439e26)

  • report generation route (d78a19b)

  • test for reports (2781eef)

  • workers data (630a82a)

  • Bug Fixes

  • add user npub to exported (24df2e0)

  • audit (34b9b3d)

  • endpoint (5e19489)

  • filter can include users own id (255a339)

  • filtered userids (21727ee)

  • non admin reports (bd0aef6)

  • prevent overlapping entries submission (f94c283)

  • test working (1fa9e12)

  • update test name (6793823)

  • update tests (81074f1)

  • 1.17.4 (2025-11-27)

  • Bug Fixes

  • update readme (4a1b2c0)

  • 1.17.3 (2025-11-26)

  • Bug Fixes

  • conventional commit forcing (c508b98)

  • 1.17.2 (2025-11-20)

  • Bug Fixes

  • automatic npm audit fix (08b8fe0)

  • update readme (bb6921a)

  • 1.17.1 (2025-11-19)

  • Bug Fixes

  • add start time to update payload (97a7b0c)

  • user can only create time entry for assigned project (eba3e11)

  • 1.17.0 (2025-11-14)

  • Bug Fixes

  • added comment (3982228)

  • package.json (bc6c021)

  • remove cache from release (86c5bb4)

  • remove cache from setup node.js step (6993a3a)

  • removed redundant (2adcd44)

  • update package (6efb0ba)

  • updated packages (4d4eb4a)

  • user npub being updated (e7a039c)

  • Features

  • update hash (8248173)

  • updated hash in test generation (678d7bf)

  • 1.16.0 (2025-11-12)

  • Bug Fixes

  • don't generate test nsec (c1cf7b0)

  • linting (d948223)

  • period totals for user should consider user only (6c971a4)

  • right align numerical cols (78c1663)

  • Features

  • add base query builder for time entries (c49d036)

  • add paginated response (19b29cc)

  • add period to user time entry (efdfd2c)

  • add query parameters to time entries (5f17a33)

  • add test data to CI live test script (dad77ba)

  • add time period queries (728de71)

  • include query end to avoid missing seconds (20c2a1e)

  • swap query builder (8552346)

  • update swagger (162ee66)

  • update swagger docs (85552b5)

  • use monday start week (64ddfa5)

  • 1.15.0 (2025-11-08)

  • Bug Fixes

  • remove dual format (30744de)

  • Features

  • change amount column to currency (6e7ba2a)

  • formatted with backticks and bullets (6aa444c)

  • 1.14.0 (2025-11-05)

  • Bug Fixes

  • change order (8ad8505)

  • change server url (1cd7828)

  • changed mode (fbbd783)

  • default currency to HRS (2fb67e7)

  • test (51c764a)

  • test (80bcf1f)

  • test (9f5a232)

  • try with minimal vars (ff51e6f)

  • Features

  • all months added (e6310d5)

  • new format function added (207454b)

  • previous months (91e43b6)

  • run on main (8371b61)

  • service, controller, route updated to send consumption (ab962f4)

  • table format working (3d2b34d)

  • tests added (0e2793f)

  • tests with coverage (b3b305b)

  • two tables (58b636b)

  • 1.13.0 (2025-10-30)

  • Bug Fixes

  • all tests passing (087bae9)

  • don't run startup logger on migration (f07a773)

  • include customer prefix (d9106fa)

  • Features

  • add semantic release exec package (e778ff3)

  • add version endpoint and startup logging (e3a515c)

  • added interfaces for validation (5c0e0d6)

  • alert shows users budget consumption (c94d6c6)

  • allow env vars (e7df550)

  • switch off sql debug logging in development (78c777e)

  • 1.12.1 (2025-10-28)

  • Bug Fixes

  • forcing release (9900eea)

  • 1.12.0 (2025-10-28)

  • Features

  • replace all caps TRACKSTR with TRAKSTR (fb3270c)

  • replace lowercase trackstr with trakstr (5138c15)

  • replace uppercase Trackstr with Trakstr (2a9c3a5)

  • 1.11.0 (2025-10-28)

  • Features

  • trakstr migration (d18b780)

  • 1.10.1 (2025-10-26)

  • Bug Fixes

  • budget consumption logic for all alerts (677d864)

  • budget remaining (e5465e7)

  • changed first line (2218ed8)

  • removed h after hours and brackets (a5c7145)

  • 1.10.0 (2025-10-24)

  • Bug Fixes

  • added relations to budget table (b1baec7)

  • alert format (d8236bb)

  • billableRate default changed to 1 (6536f7f)

  • matrix alerts include hours upto 2 dp (485141f)

  • single migration instead of two (3de0668)

  • Features

  • active status added to api (bf1498a)

  • add active column to matrix alerts (223e473)

  • add budget fields to customer for add and edit (9055a65)

  • add budget transaction service and routes (1b2e1a9)

  • added test for default role (2cece07)

  • alert format updated (3e35702)

  • cron job checks activity before sending update (044ea60)

  • include budget in customer matrix report (7f538bc)

  • include rate for add and edit user (153cfd0)

  • include route in index (9425990)

  • pause unpause working (ac32404)

  • remove transaction description column (d00790c)

  • test alert for all time (3210a0f)

  • 1.9.0 (2025-10-21)

  • Bug Fixes

  • additional check to exclude zero hour users from alert (2d331d2)

  • enforce protocol from ui (e2d9f9b)

  • include alert type in message (da986d9)

  • remove http (d865998)

  • Features

  • default role set to worker (8284fe3)

  • 1.8.0 (2025-10-20)

  • Bug Fixes

  • add roles (cfeb5e5)

  • added npm ci (26c9576)

  • added userClient to time entries (9a46f28)

  • all users and projects assigned (be23f6c)

  • bad test identities (c1af842)

  • bump package versions (30a1ebd)

  • changed localhost to postgres as db host (7af002b)

  • cleaned up time entry endpoint and corresponding test data script (034bc1d)

  • client authentication (1f02230)

  • client path (0cc0406)

  • client static paths (62a471a)

  • client token authentication (fb4f949)

  • close database connections (8b65777)

  • conflicts (8c28875)

  • continue to return not found if role missing (244a657)

  • correct node version (ebdcce4)

  • create customers and projects both (5712c98)

  • cron job config (6ca21c0)

  • customer fields migration (72d64f2)

  • deny user access to create time entry (af87324)

  • description validation (36f6d24)

  • development build (f7d172e)

  • early name validation (65aa36f)

  • fetch user by npub (a62ad9d)

  • generate compatible keys for testing (cd7acc6)

  • generate test data (a299d66)

  • integration test setup (27bc25d)

  • one migration file instead of 4 (2f7fd64)

  • reduce time delay and increase batch size (a921499)

  • reduced records and removed additional tests (fc16d8c)

  • regenerated package-lock.json (a659c90)

  • remove cleanup logic (e4039c2)

  • remove template attribute from migration (75a4669)

  • removed batches and reduced time delay (0942ee5)

  • removed cleanup logic (4e96257)

  • removed console logs (3aca78f)

  • removed currency and changed note field name (8f37903)

  • removed redundant npm ci (621152b)

  • reorder tasks (5dc9efe)

  • replace npx with npm exec (459797c)

  • replaced with npm run release (17f28cd)

  • return list of users with hex not npub (d639fc9)

  • revert to unsanitized time entry apis compatible with frontend (00ec930)

  • run tests using npm (e975760)

  • status code (257b0ca)

  • task template filtering types (ab2aa7d)

  • throw user errors properly (8db5cc4)

  • update time entry validation and remove capability check on update (b6d4945)

  • use main app datasource for tests, adjust expected responses (66558ee)

  • use user pubkey (6b4f9bd)

  • user and project id validation (69f7177)

  • validate template set id (f377029)

  • verify project exists (3d22504)

  • watch tests (aa4198b)

  • Features

  • add alert type and target id to model and update migration (f4a4973)

  • add api endpoints for templates (2691031)

  • add api for test alert (085a294)

  • add ask templates (203c721)

  • add cron job (5e64823)

  • add customer name to msg (4c5b5fb)

  • add new project manage capabilities (3b69fce)

  • add rate to user model (f4968ad)

  • add route to apply task template set to project (d1012ac)

  • added budget and currency to Customer model and migrations (d0fac0d)

  • added budget transaction model and migration (12c1913)

  • added matrix alert model and api (dc33e1b)

  • auth: fetch current user capabilities (2ad9abe)

  • auth: generate capability enums (3a00039)

  • auth: get user project capability in middleware (2e853a8)

  • auth: middleware and capability check (f4c5579)

  • auth: run capability generationa after migration (2fd5dcf)

  • build with bumped node version (aef49de)

  • change column names (b6446e3)

  • cron job msg according to alert type (7708e50)

  • db setup in release pipeline (b868dbb)

  • db: add role and capability migration (5f68a46)

  • db: seed default roles and capabilities (b2343b1)

  • handle duplicate npub (b039d6d)

  • model: add Role and Capability entities (cc9de80)

  • project: add ProjectUserDTO - user with roleId (79ae2ad)

  • project: assign user with role (cbc47d8)

  • remove task count in favour of templates (6a04c73)

  • restrict task set application to project managers (4b1cdd5)

  • return user roles when finding project (b26424c)

  • routes: add project capabilities route (141d188)

  • routes: add roles router (5d4a966)

  • sanitize time entry API responses (679a267)

  • service: add roles services (8ce16f3)

  • set api/v1 as the base path (23c1fc5)

  • successful build (7557461)

  • successful build with server route (3b3d988)

  • unique task names (e14ffc6)

  • update and get all matrix alerts apis (84fedb3)

  • update api url (c112000)

  • update matrix alert apis to include alert types (4126ef0)

  • update validation (d2a4a94)

  • use capabilities to limit access to the task set apply endpoint (c070cfb)

  • use joi for validation (af6906f)

  • 1.7.0 (2025-09-08)

  • Features

  • screenshots: add omit flags (cdb8818)

  • tasks: sort by recently created (dd54d5e)

  • 1.6.0 (2025-08-26)

  • Features

  • api: update config controller (555cdb0)

  • cron: add screenshots cleanup job (03ba292)

  • db: add migration for screenshot history config (8f3873e)

  • 1.5.0 (2025-08-24)

  • Bug Fixes

  • add authorization check for organization endpoint (f95902c)

  • add authorization checks for user endpoints (96b7006)

  • add authorization checks in screenshot (0d0282b)

  • add authoriztion checks in time activity (3ae6129)

  • add autorization checks and update constraint on columns in project task (3cb7a6e)

  • add autorization checks and update constraint on columns in time entry (9125a29)

  • add Patch in methods array of cors config (8c8dbd1)

  • add query validations for getUsers (0224d72)

  • change snake-case columns to camelCase in UserProjects (e51f47a)

  • customers endpoint fixup (79c47d9)

  • organizations endpoint fixup (5df16ad)

  • project-tasks endpoint fixup (0fc3530)

  • projects endpoints fixup (5f9562a)

  • screenshots endpoint fixup (c75b3e7)

  • time-activity endpoints fixup (8c0271c)

  • time-entry endpoints fixup (e3f9b9e)

  • update contraint on customerId in project (351f250)

  • user-client endpoint fixup (54ef4ff)

  • user-projects endpoint fixup (9720045)

  • users endpoints fixup (6355bfa)

  • Features

  • added isManual column to time entry table (dd72b66)

  • 1.4.0 (2025-07-28)

  • Features

  • verification if client pubkey is same in auth event content field (6526001)

  • 1.3.1 (2025-07-24)

  • Bug Fixes

  • cloudron fails due to sharp library (bae73e1)

  • 1.3.0 (2025-07-24)

  • Features

  • add thee ability ti update time entry's task (8aa9b84)

  • 1.2.0 (2025-07-23)

  • Features

  • save user client's system info (df693db)

  • 1.1.0 (2025-07-22)

  • Bug Fixes

  • docker build fail (677a343)

  • Features

  • save info about userclient when tracking time (4fc10e8)

  • screenshots: thumbnails of lower resolution (626b6d2)

  • 1.0.1 (2025-07-11)

  • Bug Fixes

  • ci issues (9760c7a)

  • package.json removed husky (2b3de7c)

  • update releaserc (1229bb7)

  • 1.0.0 (2025-07-11)

  • ⚠ BREAKING CHANGES

  • ability to fetch inactive users

  • ability to query inactive customers by id

  • ability to query for all customers

  • Features

  • reports controller (51d6b3f)

  • ability to fetch inactive users (59ea4fd)

  • ability to query for all customers (9b240a7)

  • ability to query inactive customers by id (7af58cd)

  • add endpoint to fetch user screenshots with optional date filter and include timestamp in time activity payload (a7099b3)

  • add endpoint to fetch user screenshots with optional date filter and include timestamp in time activity payload (284f465)

  • add organization config screenshotSimilarityScoreThreshold (222c21c)

  • added total logged time to projects endpoint (47a0c68)

  • adding time activity and screenshots connected to a timesheet (ced76b3)

  • adding time entry memo (d970299)

  • admin register a client (client and api) (7352a1f)

  • allow memo field when updating time entry (aa6b865)

  • api project cleanup, added client and user controllers and schemas (fb3ee26)

  • assigning user to projects (0203113)

  • basic inactivity check for time entries (f948102)

  • ci: add action to manually trigger staging deployment (WIP) (4107c16)

  • ci: allow manually triggering package workflow (8cae7ac)

  • ci: deploy staging after package stage (2e59ff2)

  • configurable idle timeout check cron expression (474fdff)

  • customers, projects, activities (4d0b74d)

  • determine similarity score of screenshots (c139e26)

  • enhance API with validation and CORS configuration, add memo field to time entries, using form data for screenshots (5744bb8)

  • get last n screenshots, without the images (bytes) (fa6c9c0)

  • idle timeout configuration setting (c55f8b0)

  • No screenshot timeout stopping timer is configurable in admin page (9adde96)

  • proper hashing (50c352f)

  • register admin, regular user and organizations/getInfo (73aeac1)

  • removed DVM, prepared POW-API folder and README (e980f70)

  • removed Kimai, added projects, customers, activities and timesheets (96fa85b)

  • removed sufficient logs in job-idle-timeout-check and added for which user we ended the time entry (c0f399e)

  • request query 'active' added to getAllProjects (4a35749)

  • returning screenshot similarities in the screenshots (f179743)

  • screenshots by user, /screenshots returns authenticated user todays screenshots (8138f30)

  • stop time entry if no screenshots are not send in 10 minutes (configurable) (559fab3)

  • working docker build API with DB (cae283f)

  • Bug Fixes

  • added user response model (9039005)

  • bringing back user id field, more refactoring is needed to fully implement (65b11fc)

  • customer and user project missing createdAt (3763103)

  • disallow updating duration, screenshotHash, activityHash of timeEntry (063d9eb)

  • do not save screenshots and activities received for ended time entry (408546c)

  • docker-compose.yml (5a78098)

  • get my time activities were missing in the timeactivity router (c91f052)

  • initial customer, project and task keeps getting created (3b08992)

  • model names and signatures changed (7e6c522)

  • only allow up to one time entry per user to have empty end time value (145bf2b)

  • removed leftover jobs from DVM, docker compose prepared (6f73b6f)

  • renaming activity to tasks (cebdc2f)

  • renaming pow (0429415)

  • time activity table missing the type (ca511ac)

  • Code Refactoring

  • calculate duration on server (7f34bb6)

  • hexToNpub throw on falsy values (c239552)

  • remove screenshotHash and activityHash from time entry (ff307ac)

  • remove unused method hashString (0727746)

  • remove unused method privateKeyToHex (c4ba18a)

  • rename pubkeyToHex to npubToHex (cbd6b20)

  • Changelog

  • All notable changes to this project will be documented in this file.

  • The format is based on Keep a Changelog,

  • and this project adheres to Semantic Versioning.

  • [Unreleased]

  • Added

  • Initial semantic versioning setup

  • Automated changelog generation

  • Conventional commits support

  • Changed

  • Project structure now supports semantic releases

  • Fixed

  • N/A

  • Removed

  • N/A

  • This changelog is automatically generated by semantic-release