BaldissaraMatheus / Tasks.md

A self-hosted, Markdown file based task management board
https://hub.docker.com/r/baldissaramatheus/tasks.md
MIT License
468 stars 15 forks source link
agile kanban markdown project-management self-hosted task-management

logo Tasks.md

A self-hosted, Markdown file based task management board.

Demo

⭐ Features

πŸ‹ Installation

Docker

Paste this command:

docker run -d \
  --name tasks.md \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TITLE="" \
  -e BASE_PATH="" \
  -e LOCAL_IMAGES_CLEANUP_INTERVAL=1440 \
  -p 8080:8080 \
  -v /path/to/tasks/:/tasks/ \
  -v /path/to/config/:/config/ \
  --restart unless-stopped \
  baldissaramatheus/tasks.md

Remove the environment variables you don't want to keep (all of them are optional, PUID and PGID are recommended), replace /path/to/something with directories that exist in your filesystem and then execute it. The environment variables are the following:

docker-compose

version: "3"
services:
  tasks.md:
    image: baldissaramatheus/tasks.md
    container_name: tasks.md
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - /path/to/tasks:/tasks
      - /path/to/config:/config
    restart: unless-stopped
    ports:
      - 8080:8080

Use the Docker section above as reference for setting up variables and volumes.

Source code

Open a terminal instance in the frontend directory and another one in the backend directory, then in both of them run npm install and npm start.

🎨 Customize

All CSS files are available in the stylesheets directory under the config volume, any custom style is recommended to be added to custom.css file. It already comes with 3 color themes: Adwaita, Nord and Catppuccin. To use them, change the first line of /stylesheets/custom.css to the path of the color theme you want, then hard-reload the browser (Ctr+F5). You can find the built-in themes under /stylesheets/color-themes.

πŸ“ Files structure

The way directories and files are organized in Tasks.md is quite simple. Every lane you add within the app is a directory in your filesystem and every task is file.

So if your tasks look like this:

Screenshot of the app. There are 3 lanes, Backlog, Sprint and Done. Within Done there is one file named "Something something"

Your files should look like this:

Screenshot of a file explorer showing 3 folders: Backlog, Sprint and Done Screenshot of file explorer within a folder called "Done", containing one file named "Something something"

More details (and it how it looks within Obsidian) can be found here.

πŸ’» Technology stack

With the goal of having a good mix of performance and maintainability, the application was built with SolidJS and Koa. It also uses Stacks-Editor for text editing and serve-static to serve the css files as-is.

πŸ”¨ Contribute

Bugfixes and new features requests

Feel free to create issues for encountered bugs or to request new features, just make sure to include a proper label. Also give a thumbs up to the issues you feel that are relevant to be implemented for the next releases.

Development

If you want to contribute to its development, select one of the existing issues, develop your solution and submit a pull request, it will eventually be reviewed and may be merged with the existing code. If you're not confident about your solution, discuss your ideas in a related issue or publish a draft pull request.