Self-hosted Responsive Web UI for Taskwarrior based on Vue.js and Koa.js
Find a file
2022-09-29 13:24:57 -04:00
.github/workflows ci: fix ci 2022-02-07 21:06:46 -05:00
backend Allow overriding TASKRC/TASKDATA using environment variables 2022-04-23 11:03:11 +02:00
docker fix(docker): set production after build 2020-07-17 19:13:50 -07:00
frontend chore(deps): bump vuetify from 2.6.3 to 2.6.10 in /frontend 2022-09-21 22:25:43 +00:00
nginx fix: fix nginx conf path 2021-09-27 17:32:14 -04:00
screenshots docs: add screenshots 2020-08-05 11:30:51 +08:00
.dockerignore Add docker and git ignore files 2022-04-19 13:53:09 +02:00
.gitignore chore: update gitignore 2020-07-17 00:34:32 -07:00
Dockerfile fix: set env variables in docker image 2022-09-29 13:23:07 -04:00
LICENSE Initial commit 2020-06-29 19:07:45 -07:00
README.md docs: remove invalid badge 2022-09-29 13:24:57 -04:00

Taskwarrior-webui

Docker Image Size

Responsive Web UI for Taskwarrior based on Vue.js and Koa.js.

Screenshots

Screenshot 1

Screenshot 2

Features

  • Responsive layouts
  • Material Design UI
  • PWA support
  • Easy to deploy (using Docker)
  • Support for multiple types of tasks
  • Support for light and dark themes
  • Sync with a taskserver

Deployment

First pull the docker image:

docker pull dcsunset/taskwarrior-webui

Then run it with the command:

docker run -d -p 8080:80 --name taskwarrior-webui \
	-v $HOME/.taskrc:/.taskrc -v $HOME/.task:/.task \
	dcsunset/taskwarrior-webui

Manually deploy

First build the frontend:

cd frontend
npm install
npm run build
npm run export

Then build and start the backend:

cd backend
npm install
npm run build
npm start

Then install nginx or other web servers to server frontend and proxy requests to backend (you can refer to nginx/nginx.conf).

Configuration

The following environment variable may be set:

  • TASKRC - the location of the .taskrc file, /.taskrc by default when run in production mode
  • TASKDATA - the location of the .task directory, /.task by default when run in production mode

Development

First start the server at backend:

cd backend
npm install
npm run dev

Then start the dev server at frontend:

cd frontend
npm install
npm run dev

Then the frontend will listen at port 8080.

Contributing

Contributions are very welcome! Please create or comment on an issue to discuss your ideas first before working on any PR.

I've been very busy recently and may not be able to handle every issue timely. So I'm also looking for maintainers who are interested in this project. Feel free to open an issue if you have any interest.

FAQ

Sync with a taskserver

This Web UI supports auto sync with a taskd server by calling the task sync command periodically. In order to use this function, first you need to follow the instructions to configure both the taskserver and client manually until the task sync can be executed successfully. Then remember to map the client configurations (.taskrc and .task) into the container.

License

GPL-3.0 License