• Stars
    star
    179
  • Rank 214,039 (Top 5 %)
  • Language Vue
  • License
    GNU General Publi...
  • Created over 4 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

More Repositories

1

pandoc-include

A pandoc filter to allow file and header inclusion
Python
63
star
2

vuetify-markdown-editor

A Vue.js Component for editing and previewing markdown using Vuetify.js
Vue
63
star
3

vscode-modal-editor

Customizable extension to turn VS Code into a modal editor
TypeScript
34
star
4

docker-i3-arch-vnc

A minimum docker image of Arch Linux with i3wm and VNC support.
Shell
18
star
5

markdown-it-code-copy

A markdown-it plugin to add a copy icon in code blocks to copy the code.
JavaScript
16
star
6

remark-mdx-toc

A remark plugin to generate toc and convert it into MDX export
TypeScript
14
star
7

modaled

Build your own minor modes for modal editing in Emacs
Emacs Lisp
11
star
8

chord-dht

A DHT (distributed hash table) implementation in Rust based on Chord with high performance and data replication.
Rust
11
star
9

docker-archlinux-vnc

A docker image of Arch Linux with KDE desktop and VNC support.
Dockerfile
9
star
10

taskwarrior-lib

A Node.js library for interacting with taskwarrior
TypeScript
9
star
11

secret-sharing-cli

A secret sharing command line tool using Shamir's Secret Sharing
Rust
4
star
12

snapshotfs

A fuse-based read-only filesystem to provide a snapshot view (tar archives) of directories or files without actually creating the archives
Rust
4
star
13

org-moderncv

Org exporter for curriculum vitae or cover letter using moderncv
Emacs Lisp
4
star
14

docker-ubuntu-vnc

A docker image of Ubuntu with Xfce desktop and VNC support.
Dockerfile
3
star
15

task.json-cli

Command line todo management app based on task.json format
TypeScript
3
star
16

remark-graphviz-svg

A remark plugin to convert GraphViz code into SVG diagram
TypeScript
3
star
17

jack-alsa-ctl

Control JACK audio with ALSA driver easily
Python
2
star
18

rangefs

A FUSE-based read-only filesystem to map ranges in file to individual files.
Rust
2
star
19

stopwatch

A simple command-line stopwatch using Node.js
JavaScript
2
star
20

LFReader

A self-hosted Local-first Feed Reader written in Python and Preact/React.
TypeScript
2
star
21

concurrent-executor

Executing multiple commands concurrently using Python asyncio
Python
2
star
22

powerline-cpu-temp

A Powerline segment to show CPU temperature
Python
2
star
23

clip-share

Self-hosted service to share clipboard content with other devices.
TypeScript
2
star
24

hex-stream

Simple hex encoder and decoder stream in node.js
JavaScript
2
star
25

ThssDB

A SQL database written in Java from scratch for a database course
Java
2
star
26

nix-config

Personal common Nix configurations
Emacs Lisp
1
star
27

i3-focus-group

Create a group for i3/sway containers to easily switch focus between
Python
1
star
28

task.json-web

Task management app with Web UI written in React.js based on task.json format
TypeScript
1
star
29

THUAI-DefenseOfSky

C++
1
star
30

docker-utilbox

A lightweight docker image to provide utilities
Dockerfile
1
star
31

batch-cmd

Executing multiple commands in batches concurrently and easily
TypeScript
1
star
32

nur-packages

My personal NUR repository
Nix
1
star
33

distributed-serverless-kv

A distributed key-value store with sharding for serverless applications
Go
1
star
34

session-management

Python
1
star
35

vue-iperf3-chart

Plot iperf3 json data using Chart.js and Vue.js
Vue
1
star
36

docker-webwormhole

Automatically built docker image for https://github.com/saljam/webwormhole
1
star
37

alsa-ctl

Control audio using ALSA API easily.
Python
1
star
38

socks5-protocol

A Node.js library (in TypeScript and ESM) to encode/decode messages in SOCKS5 protocol.
TypeScript
1
star
39

markdown-it-mermaid-plugin

A lightweight markdown-it plugin to support mermaid diagram.
JavaScript
1
star
40

transformfs

A read-only FUSE filesystem to transform input files to output files with Lua script.
Rust
1
star