{"id":18859618,"url":"https://github.com/tortitast/langkeeper","last_synced_at":"2025-07-11T08:40:24.052Z","repository":{"id":191264056,"uuid":"673080413","full_name":"TortitasT/langkeeper","owner":"TortitasT","description":"Keep track of the time you spend programming.","archived":false,"fork":false,"pushed_at":"2024-01-25T08:03:03.000Z","size":744,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T12:21:24.445Z","etag":null,"topics":["actix","htmx"],"latest_commit_sha":null,"homepage":"https://langkeeper.tortitas.eu/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TortitasT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-07-31T20:33:50.000Z","updated_at":"2024-05-17T15:15:35.000Z","dependencies_parsed_at":"2023-08-29T04:37:36.446Z","dependency_job_id":"d49cebf4-7c6b-4abd-9172-7c84ace45b57","html_url":"https://github.com/TortitasT/langkeeper","commit_stats":null,"previous_names":["tortitast/langkeeper"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TortitasT/langkeeper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TortitasT%2Flangkeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TortitasT%2Flangkeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TortitasT%2Flangkeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TortitasT%2Flangkeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TortitasT","download_url":"https://codeload.github.com/TortitasT/langkeeper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TortitasT%2Flangkeeper/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264767401,"owners_count":23660955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actix","htmx"],"created_at":"2024-11-08T04:18:39.866Z","updated_at":"2025-07-11T08:40:23.758Z","avatar_url":"https://github.com/TortitasT.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Langkeeper\n\n[![Tests](https://github.com/TortitasT/langkeeper/actions/workflows/rust.yml/badge.svg)](https://github.com/TortitasT/langkeeper/actions/workflows/rust.yml)\n\nKeep track of the time you spend on each language.\n\n[vscode extension](https://github.com/TortitasT/vscode-langkeeper)\n\n[neovim extension](https://github.com/TortitasT/langkeeper.nvim)\n\n![imagen](https://github.com/TortitasT/langkeeper/assets/102045600/8d0b83fb-2f5f-49f3-a73d-4d043b17fab5)\n\n## Development\n\nCreate database and run migrations (requires diesel_cli).\n\n```bash\ndiesel setup\n```\n\nRun with watch.\n\n```bash\ncargo install cargo-watch\ncargo watch -x \"run serve\"\n```\n\n## Deploy\n\nClone\n\n```bash\ngit clone https://github.com/tortitast/langkeeper\n```\n\nBuild\n\n```bash\ncargo build --release\n```\n\nCopy service\n\n```bash\ncp ./langkeeper.service /etc/systemd/system/\n```\n\nStart service\n\n```bash\nservice langkeeper start\n```\n\n## Tests\n\nRun with logs and in single thread so sqlite database works.\n\n```bash\ncargo test -- --nocapture --test-threads=1\n```\n\n## Diesel with sqlite install on Windows for development\n\nInstall sqlite with chocolatey.\n\n```powershell\nchoco install sqlite\n```\n\nCreate `.lib` with the following command (needs to be run with Visual Studio Development Console for `lib` to be available) on the directory where the `dll` is.\n\n```powershell\ncd C:\\ProgramData\\chocolatey\\lib\\SQLite\\tools\nlib /def:sqlite3.def /out:sqlite3.lib\n```\n\nAdd path to environment variable.\n\n```powershell\n$Env:SQLITE3_LIB_DIR = \"C:\\ProgramData\\chocolatey\\lib\\SQLite\\tools\"\n```\n\nInstall diesel_cli with the following command.\n\n```powershell\ncargo install diesel_cli --no-default-features --features postgres\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftortitast%2Flangkeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftortitast%2Flangkeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftortitast%2Flangkeeper/lists"}