Find a file
2025-02-02 10:55:47 -05:00
.github Add push trigger to GitHub Actions workflow for main branch 2025-01-20 22:17:14 -05:00
assets Update README.md with screenshot 2024-12-23 11:12:42 -05:00
config Merge pull request #96 from rmblau/main 2025-01-18 20:01:04 -05:00
external/user Move to Donetick Org, first commit 2024-06-30 21:41:41 -04:00
frontend Update frontend handler to serve static files from embedded FS for selfhosted option 2024-07-24 23:55:23 -04:00
internal Merge branch 'main' of https://github.com/donetick/donetick 2025-02-02 10:55:47 -05:00
logging Move to Donetick Org, first commit 2024-06-30 21:41:41 -04:00
migrations Recreate UserNotificationTarget from scratch 2024-12-14 02:53:51 -05:00
.gitignore chore: Add .vscode/launch.json to .gitignore 2024-07-24 00:48:15 -04:00
.golangci.yaml Add GolangCI configuration for linting and testing 2025-01-20 22:15:14 -05:00
.goreleaser.yaml add back linux_arm64 2024-11-16 16:11:17 -05:00
docker-compose.yaml Update environment variable names in config and docker-compose 2024-07-24 01:09:58 -04:00
Dockerfile Improved Dockerfile 2024-11-23 16:46:46 +00:00
go.mod - Assign default circle to user when leaving a circle 2024-12-14 02:15:51 -05:00
go.sum - Assign default circle to user when leaving a circle 2024-12-14 02:15:51 -05:00
LICENSE.md Move to Donetick Org, first commit 2024-06-30 21:41:41 -04:00
main.go Add Support to consume/redeem points 2025-01-14 11:21:04 -05:00
README.md Update README.md 2025-01-19 18:01:46 -05:00

drawingDonetick

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

Screenshot

GitHub Workflow Status GitHub release (latest by date) Docker Pulls

Discord Reddit


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 intelligently extracts dates, times, and recurrence patterns from your natural language. For example, "Change water filter every 6 months" or "Take the trash out every Monday and Tuesday at 6:15 pm" will automatically generate the correct tasks.

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


🚀 Quick Start

Note

Before running the application, ensure you have a valid selfhosted.yaml configuration file. If you don't have one, create a selfhosted.yaml file based on the example provided here. Place the selfhosted.yaml file in the /config directory within your application's root directory

Using Docker

  1. Pull the latest image:
    docker pull donetick/donetick
    
  2. 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

  1. Download the latest release from the Releases page.
  2. Extract the file and navigate to the folder:
    cd path/to/extracted-folder
    
  3. Run Donetick:
    DT_ENV=selfhosted ./donetick 
    

🛠️ Development Environment

  1. Clone the repository:
    git clone https://github.com/donetick/donetick.git
    
  2. Navigate to the project directory:
    cd donetick
    
  3. Install dependencies:
    go mod download
    
  4. 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

  1. Pick an issue or open discuss about the contribution
  2. Fork the repository.
  3. Create a new branch:
    git checkout -b feature/your-feature-name
    
  4. Make your changes and commit them:
    git commit -m 'Add a new feature'
    
  5. Push your branch:
    git push origin feature/your-feature-name
    
  6. 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!

Discord Reddit

Github Discussion


💡 Support Donetick

If you find it helpful, consider supporting us by starring the repository, contributing code, or sharing feedback!