Deploying Tasks.md
Introduction
Tasks.md is a self-hosted task board application that stores tasks in Markdown files. It provides a Kanban-style interface while keeping your data in plain text files that can be version-controlled, edited with any text editor, and synced across devices.
Key highlights of Tasks.md:
- Markdown Storage: Tasks stored as plain Markdown files
- Kanban Board: Visual task management with drag-and-drop
- File-Based: No database required, just text files
- Version Control: Works great with Git
- Portable Data: Your data is never locked in
- Offline Capable: Works without internet connection
- Customizable Columns: Define your own workflow columns
- Tags and Due Dates: Organize with tags and deadlines
- Dark Mode: Easy on the eyes
- Lightweight: Minimal resource requirements
This guide walks through deploying Tasks.md on Klutch.sh using Docker.
Why Deploy Tasks.md on Klutch.sh
Deploying Tasks.md on Klutch.sh provides several advantages:
Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds Tasks.md without complex orchestration.
Persistent Storage: Attach persistent volumes for your Markdown task files.
HTTPS by Default: Secure access to your task board from anywhere.
GitHub Integration: Connect your configuration repository for automatic redeployments.
Prerequisites
Before deploying Tasks.md on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your Tasks.md configuration
- Basic familiarity with Docker and containerization concepts
Deploying Tasks.md on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 8080
Create Your Repository
Create a new GitHub repository with a Dockerfile for Tasks.md:
FROM brunoamaral/tasks-md:latest
ENV PUID=1000ENV PGID=1000
EXPOSE 8080
VOLUME ["/tasks"]Push to GitHub
Initialize and push your repository to GitHub with your Dockerfile.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project.
Create a New App
Within your project, create a new app and connect your GitHub repository.
Configure HTTP Traffic
In the deployment settings:
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
PUID | 1000 |
PGID | 1000 |
Attach Persistent Volumes
Add the following volumes:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/tasks | 1 GB | Markdown task files |
Deploy Your Application
Click Deploy to start the build process.
Access Tasks.md
Once deployment completes, access Tasks.md at your app URL.
Configuration
Board Setup
Configure your task board:
- The board reads from Markdown files in the
/tasksdirectory - Each file represents a board or project
- Columns are defined in the file header
Markdown Format
Tasks are stored in Markdown format:
# My Project
## Todo- [ ] Task one- [ ] Task two @due(2024-12-31)
## In Progress- [ ] Working on this #important
## Done- [x] Completed taskTask Syntax
Tasks support various metadata:
- [ ]- Uncompleted task- [x]- Completed task@due(YYYY-MM-DD)- Due date#tag- Tags@priority(high)- Priority level
Using with Git
Sync your tasks with Git:
- Mount a Git repository as the tasks directory
- Commit changes to version control
- Pull on other devices to sync
Additional Resources
Conclusion
Deploying Tasks.md on Klutch.sh gives you a lightweight task board with plain-text storage, automatic builds, persistent storage, and secure HTTPS access. Keep your tasks in version-controllable Markdown files while enjoying a visual Kanban interface.