Giter Club home page Giter Club logo

taskwarrior-webui's Introduction

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

Using docker (recommended)

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

Enter http://127.0.0.1:8080 (replace 127.0.0.1 with your ip address if running on a remote server).

If you want to use already existing taskwarrior data, use :z or :Z labels. See here.

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

If your configuration file contains absolute path to your home directory like /home/xxx/ca.cert.pem, you may want to mount files to the same paths in the container using the following command:

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

Configurations

The following environment variables 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

Remember to mount your files to the corresponding locations when you set TASKRC or TASKDATA to a different value.

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).

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

taskwarrior-webui's People

Contributors

constantin1489 avatar corrodedhash avatar dcsunset avatar dependabot[bot] avatar flaktack avatar jludwig avatar joshmock avatar paraidomat avatar rubdos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.