Skip to content

rsomonte/taskerbot

Repository files navigation

Tasker Bot

Tasker Bot is a Discord bot designed to help users track and maintain personal objectives with streaks and submission limits. You can add this bot to your own Discord server or app to empower your community with goal tracking and accountability.

Commands

/create_objective

Create a new objective for yourself.
Options:

  • name (string, required): The name of your objective.
  • frequency (string, required): How often you can submit this objective. Choices are:
    • daily
    • weekly
    • monthly

Example:


/submit

Submit an image as proof of completing an objective.
Options:

  • image (attachment, required): The image to submit as evidence.
  • objective (string, required): The name of the objective you are submitting for (must match an objective you created).

Example:

  • The bot will enforce the frequency you set for each objective.
  • If you try to submit too soon, it will tell you when you can submit again.
  • Streaks are tracked and displayed for consecutive completions.

/list_objectives

List all your current objectives, including their frequency, streaks, and when you can next submit.

Example:


/delete_objective

Delete one of your objectives forever.
Options:

  • name (string, required): The name of the objective you want to delete.

Example:


/rename

Rename one of your objectives.
Options:

  • current_name (string, required): The current name of the objective you want to rename.
  • new_name (string, required): The new name for the objective.

This command allows you to change the name of an existing objective while preserving all its data including streak count, submission history, and frequency settings.


Features

  • Personal Objectives: Each user can create and manage their own objectives.
  • Submission Limits: Objectives can be submitted daily, weekly, or monthly.
  • Streak Tracking: Keep track of your consecutive completions for extra motivation.
  • Image Proof: Require an image as evidence for each submission.
  • Permanent Deletion: Remove objectives you no longer want to track.

Add Tasker Bot to Your Server

You can add Tasker Bot to your Discord server or apps section and start using these commands right away!


Self-Hosting with Docker

You can run Tasker Bot on your own server using Docker and Docker Compose. This is the recommended way to deploy for personal or private use.

Prerequisites

Setup Steps

  1. Clone the repository:

    git clone https://github.com/rsomonte/taskerbot.git
    cd taskerbot
  2. Create a .env file: Copy your Discord bot credentials into a .env file in the project root:

    APP_ID=your_discord_app_id
    DISCORD_TOKEN=your_discord_bot_token
    PUBLIC_KEY=your_discord_public_key
    BOT_TOKEN=your_discord_bot_token
    PORT=3000
  3. Configure Discord Developer Portal:

    • Go to your Discord Developer Portal
    • Select your bot application
    • Navigate to "General Information" and set the Interactions Endpoint URL to:
      https://your-domain.com/interactions
      
    • Replace your-domain.com with your actual server's domain or IP address
  4. Start the bot:

    docker-compose up -d

The bot will be available on port 3000. Make sure this port is accessible from the internet so Discord can send interaction events to your bot.

The SQLite database will be stored in the data/ directory and persisted between restarts.

Updating

To update your bot, pull the latest code and rebuild:

git pull
docker-compose up -d --build

Stopping

To stop the container:

docker-compose down

Disclaimer

All objectives and related data are stored in a database managed by the bot owner. While your data is not shared with third parties, the server administrator has access to the stored information. Please use the bot with this in mind if privacy is a concern.