{"id":16369749,"url":"https://github.com/dcsunset/taskwarrior-webui","last_synced_at":"2025-05-07T17:48:49.520Z","repository":{"id":39903959,"uuid":"275972717","full_name":"DCsunset/taskwarrior-webui","owner":"DCsunset","description":"Self-hosted Responsive Web UI for Taskwarrior based on Vue.js and Koa.js","archived":false,"fork":false,"pushed_at":"2024-07-05T21:57:53.000Z","size":2323,"stargazers_count":183,"open_issues_count":23,"forks_count":24,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-12T02:56:06.244Z","etag":null,"topics":["docker","self-hosted","taskwarrior","web-ui"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DCsunset.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2020-06-30T02:07:44.000Z","updated_at":"2024-10-05T12:47:56.000Z","dependencies_parsed_at":"2024-04-04T01:26:37.806Z","dependency_job_id":"58d79bdd-854c-441e-9582-e40658d6733f","html_url":"https://github.com/DCsunset/taskwarrior-webui","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DCsunset%2Ftaskwarrior-webui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DCsunset%2Ftaskwarrior-webui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DCsunset%2Ftaskwarrior-webui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DCsunset%2Ftaskwarrior-webui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DCsunset","download_url":"https://codeload.github.com/DCsunset/taskwarrior-webui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252931035,"owners_count":21827102,"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":["docker","self-hosted","taskwarrior","web-ui"],"created_at":"2024-10-11T02:56:15.853Z","updated_at":"2025-05-07T17:48:49.501Z","avatar_url":"https://github.com/DCsunset.png","language":"Vue","readme":"# Taskwarrior-webui\n\n[![Docker Image Size](https://badgen.net/docker/size/dcsunset/taskwarrior-webui)](https://hub.docker.com/r/dcsunset/taskwarrior-webui)\n\nResponsive Web UI for Taskwarrior based on Vue.js and Koa.js.\n\n## Screenshots\n\n![Screenshot 1](./screenshots/Screenshot1.png)\n\n![Screenshot 2](./screenshots/Screenshot2.png)\n\n## Features\n\n* Responsive layouts\n* Material Design UI\n* PWA support\n* Easy to deploy (using Docker)\n* Support for multiple types of tasks\n* Support for light and dark themes\n* Sync with a taskserver\n\n\n## Deployment\n\n### Using docker (recommended)\n\nFirst pull the docker image:\n(Note that taskwarrior v2 and v3 are not compatible with each other.\nChoose based on your current data version.)\n```sh\n# For taskwarrior 3\ndocker pull dcsunset/taskwarrior-webui:3\n# For taskwarrior 2\ndocker pull dcsunset/taskwarrior-webui\n```\n\nThen run it with the command:\n```sh\ndocker run -d -p 8080:80 --name taskwarrior-webui \\\n\t-v $HOME/.taskrc:/.taskrc -v $HOME/.task:/.task \\\n\tdcsunset/taskwarrior-webui:3\n```\n\nFinally, open `http://127.0.0.1:8080` with your browser (replace `127.0.0.1` with your ip address if running on a remote server).\n\nIf you want to use already existing taskwarrior data in another container, use `:z` or `:Z` labels. See\n[here](https://stackoverflow.com/questions/35218194/what-is-z-flag-in-docker-containers-volumes-from-option/35222815#35222815).\n```\n# e.g.\ndocker run -d -p 8080:80 --name taskwarrior-webui \\\n\t-v $HOME/.taskrc:/.taskrc:z -v $HOME/.task:/.task:z \\\n\tdcsunset/taskwarrior-webui\n```\n\nIf your configuration file contains absolute path to your home directory like `/home/xxx/ca.cert.pem`,\nyou may want to mount files to the same paths in the container using the following command:\n\n```sh\ndocker run -d -p 8080:80 --name taskwarrior-webui \\\n\t-e TASKRC=$HOME/.taskrc -e TASKDATA=$HOME/.task \\\n\t-v $HOME/.taskrc:$HOME/.taskrc -v $HOME/.task:$HOME/.task \\\n\tdcsunset/taskwarrior-webui\n```\n\n## Configurations\n\nThe following environment variables may be set:\n * `TASKRC` - the location of the `.taskrc` file, `/.taskrc` by default when run in _production_ mode\n * `TASKDATA` - the location of the `.task` directory, `/.task` by default when run in _production_ mode\n\nRemember to mount your files to **the corresponding locations** when you set `TASKRC` or `TASKDATA` to a different value.\n\n### Manually deploy\n\nFirst build the frontend:\n\n```\ncd frontend\nnpm install\nnpm run build\nnpm run export\n```\n\nThen build and start the backend:\n\n```\ncd backend\nnpm install\nnpm run build\nnpm start\n```\n\nThen install nginx or other web servers\nto server frontend and proxy requests to backend\n(you can refer to `nginx/nginx.conf`).\n\n## Development\n\nFirst start the server at backend:\n\n```\ncd backend\nnpm install\nnpm run dev\n```\n\nThen start the dev server at frontend:\n\n```\ncd frontend\nnpm install\nnpm run dev\n```\n\nThen the frontend will listen at port 8080.\n\n## Contributing\n\nContributions are very welcome!\nPlease create or comment on an issue to discuss your ideas first before working on any PR.\n\nI've been very busy recently and may not be able to handle every issue timely.\nSo I'm also looking for maintainers who are interested in this project.\nFeel free to open an issue if you have any interest.\n\n## FAQ\n\n### Sync with a taskserver\n\nThis Web UI supports auto sync with a taskd server\nby calling the `task sync` command periodically.\nIn order to use this function,\nfirst you need to follow the [instructions](https://taskwarrior.org/docs/taskserver/setup.html)\nto configure both the taskserver and client manually until the `task sync` can be executed successfully.\nThen remember to map the client configurations (`.taskrc` and `.task`) into the container.\n\n### Authentication\n\nThough authentication is not supported directly,\nit is possible to use basic auth by configuring nginx (or you can even use your own reverse-proxy to do it).\n\nFor example, you can modify the file `nginx/server.conf` as below:\n\n```nginx\nserver {\n  listen 80;\n  listen [::]:80;\n\n  # add auth\n  auth_basic           \"Protected page\";\n  auth_basic_user_file /etc/htpasswd;\n\n  # remaining part unchanged\n  ...\n}\n```\n\nThen mount the file and `htpasswd` file:\n\n```shell\ndocker run -d -p 8080:80 --name taskwarrior-webui \\\n\t-v $HOME/.taskrc:/.taskrc -v $HOME/.task:/.task \\\n    -v $PWD/server.conf:/etc/nginx/conf.d/default.conf \\\n    -v $PWD/htpasswd:/etc/htpasswd \\\n\tdcsunset/taskwarrior-webui\n```\n\n## License\n\nGPL-3.0 License\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcsunset%2Ftaskwarrior-webui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdcsunset%2Ftaskwarrior-webui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcsunset%2Ftaskwarrior-webui/lists"}