.direnv/bin | ||
.github | ||
assets | ||
config | ||
external/user | ||
frontend | ||
internal | ||
logging | ||
migrations | ||
.envrc | ||
.gitignore | ||
.golangci.yaml | ||
.goreleaser.yaml | ||
docker-compose.yaml | ||
Dockerfile | ||
flake.lock | ||
flake.nix | ||
go.mod | ||
go.sum | ||
LICENSE.md | ||
main.go | ||
README.md |
Donetick
Simplify Tasks & Chores, Together!
Donetick is an open-source, user-friendly app designed to help you organize tasks and chores effectively. featuring customizable options to help you and others stay organized
✨ Features
🏰 Group-Based Task Management: Create and manage tasks solo or with your family or friends in shared circles.
✨ One-Sentence Task Creation[Experimental] : Create tasks by simply describing them in a sentence. Donetick will extracts dates, times, and recurrence patterns from your natural language."Take the trash out every Monday and Tuesday at 6:15 pm" will automatically generate the correct task.
🔄 Smart Assignments: Assign tasks to individuals with rotation strategies like random or least completed.
⏰ Recurring Tasks: Automate task scheduling with flexible recurrence options: Daily, weekly, monthly, or yearly.
📅 Custom triggers based on specific days or adaptive patterns using historical completion data.
📈 Progress Tracking: Monitor completion rates and view historical data to track trends.
📢 NFC Tag Support: Write NFC tags to trigger tasks instantly by scanning.
📧 Notifications: Stay on top of tasks with reminders sent via Telegram or Pushover.
📦 Integration: Trigger tasks using external systems through API like viewing tasks directly in supported platforms (e.g., Home Assistant with a custom component).
💿 Labels for Organization: Group and organize tasks with labels. Labels can also be shared within the same group for better collaboration.
🛠️ "Things" Integration: Use entities (numbers, strings, booleans) to trigger tasks, track values, or connect with external systems via webhooks.
🔑 SSO/OIDC Support: Integrate with identity providers using Single Sign-On and OpenID Connect.
🚀 Quick Start
Note
Before running the application, ensure you have a valid
selfhosted.yaml
configuration file. If you don't have one, create aselfhosted.yaml
file based on the example provided here. Place theselfhosted.yaml
file in the/config
directory within your application's root directory
Using Docker
- Pull the latest image:
docker pull donetick/donetick
- Run the container: Replace
/path/to/host/data
with your preferred data directory:docker run -v /path/to/host/data:/donetick-data -p 2021:2021 \ -e DT_ENV=selfhosted \ -e DT_SQLITE_PATH=/donetick-data/donetick.db \ donetick/donetick
Using Docker Compose
Use this template to set up Donetick with Docker Compose:
services:
donetick:
image: donetick/donetick
container_name: donetick
restart: unless-stopped
ports:
- 2021:2021
volumes:
- ./data:/donetick-data
- ./config:/config
environment:
- DT_ENV=selfhosted
- DT_SQLITE_PATH=/donetick-data/donetick.db
Using the Binary
- Download the latest release from the Releases page.
- Extract the file and navigate to the folder:
cd path/to/extracted-folder
- Run Donetick:
DT_ENV=selfhosted ./donetick
🛠️ Development Environment
- Clone the repository:
git clone https://github.com/donetick/donetick.git
- Navigate to the project directory:
cd donetick
- Install dependencies:
go mod download
- Run the app locally:
go run .
🤝 Contributing
Contributions are welcome! If you want to work on something that is not listed as an issue, please open a Discussion first to ensure it aligns with our goals and to avoid any unnecessary effort!
if you have an idea also feel free to use the Discussion
- Pick an issue or open discuss about the contribution
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m 'Add a new feature'
- Push your branch:
git push origin feature/your-feature-name
- Submit a pull request.
🔒 License
This project is licensed under the AGPLv3. See the LICENSE file for more details.
💬 Join the Discussion
For ideas or feature requests, please use GitHub Discussions. We also have a Discord server and a subreddit for those who prefer those platforms!
💡 Support Donetick
If you find it helpful, consider supporting us by starring the repository, contributing code, or sharing feedback!