DooTask is an open-source online project and task management system for teams that need self-hosted tasks, document collaboration, mind maps, flowcharts, instant messaging, and file management in one PHP application under the AGPL-3.0 licence.
What it is
DooTask is an open-source online project and task management tool that provides document collaboration, online mind maps, online flowcharts, project management, task distribution, instant messaging, and file management. Its messaging function uses asymmetric encryption to make communication more secure. It lives in the PHP ecosystem under the AGPL-3.0 licence and is deployed with Docker v20.10+ and Docker Compose v2.0+, with a default Docker Compose mariadb service for the database. GitHub topics include dootask, project-management, project-manager, remote-work, task-management-system, task-manager, team-chat, to-do, and todo. The repository shows 5,577 stars, 1,071 forks, and 165 open issues. Homepage: https://www.dootask.com.
The concrete problem is fragmentation: project teams otherwise use separate tools for tasks, documents, diagrams, chat, and files. DooTask bundles those functions into one self-hosted application so a team can manage projects, distribute tasks, collaborate on documents, draw online mind maps and flowcharts, chat in real time, and manage files without stitching together separate services. Administrators control deployment, database backup and recovery, SSL, ports, and upgrades through the ./cmd command set.
Key capabilities
- Project management and task distribution, covering to-do and task-management-system workflows from the topic list and tagline.
- Document collaboration tools, online mind maps, and online flowcharts inside the project management environment.
- Instant messaging and team chat, with message functionality using asymmetric encryption.
- File management with persistent upload storage under public/uploads and application store assets under docker/appstore.
- Docker Compose deployment with a default mariadb service; requirements are Docker v20.10+ and Docker Compose v2.0+.
- Administrative and lifecycle commands through ./cmd, including install, up, down, update, reup, repassword, port 80, https, https agent, mysql backup, mysql recovery, uninstall, and help.
- Development and build workflows through ./cmd dev and ./cmd prod, with NodeJs 20+ required for development, and desktop app publishing referenced at .github/workflows/publish.yml.
Who uses it and how
- Remote and distributed teams, as indicated by topics such as remote-work, team-chat, task-manager, task-management-system, and to-do.
- Self-hosters on CentOS, Debian, Ubuntu, macOS, and other Linux/Unix systems; Windows users can install a Linux environment with WSL2 before installation.
- Small deployments following the hardware recommendation of 2+ cores and 4GB+ memory, with MariaDB supplied by the default Docker Compose service.
- Administrators who reset the default administrator password with ./cmd repassword, change the HTTP port with ./cmd port 80, and configure SSL with ./cmd https or Nginx proxy mode with ./cmd https agent.
- Operations teams that migrate by backing up MariaDB with ./cmd mysql backup, copying the database backup file, docker/appstore, and public/uploads to the new project, then restoring with ./cmd mysql recovery.
Getting started
Use the one-line script in an empty directory: curl -fsSL https://raw.githubusercontent.com/kuaifan/dootask/pro/bin/install | bash. Manual deployment clones from GitHub or Gitee, enters dootask, and runs ./cmd install; Docker v20.10+ and Docker Compose v2.0+ are required.
How it compares
The provided facts do not name paid products that DooTask replaces, and they do not name similar tools for comparison. Within this registry, DooTask stands alone in the Business Software / Project & Work Management category on the supplied facts.
When to use it — and when not to
A self-hoster must operate a Docker v20.10+ and Docker Compose v2.0+ stack, a MariaDB service, persistent storage for public/uploads and docker/appstore, and a backup routine before upgrades. Teams unwilling to run Docker and MariaDB, or Windows users unwilling to use WSL2, should not pick it. The README excerpt is deployment-focused and gives little workflow detail beyond installation, migration, and command usage, and the repository shows 165 open issues, so groups needing extensive feature documentation should evaluate that gap first.
project readme (upstream, from github) — read inline
DooTask - Open Source Task Management System
English | 中文文档
QQ Group
Installation Requirements
- Required:
Docker v20.10+ and Docker Compose v2.0+
- Supported Systems:
CentOS/Debian/Ubuntu/macOS and other Linux/Unix systems
- Hardware Recommendation: 2+ cores, 4GB+ memory
- Database: MariaDB (provided by the default Docker Compose
mariadb service)
- Special Note: Windows users can install Linux environment using WSL2 before installing DooTask.
Deploy Project
Option 1: One-line script (recommended)
Run it in an empty directory to clone and install automatically; run it inside an existing installation to check and upgrade:
curl -fsSL https://raw.githubusercontent.com/kuaifan/dootask/pro/bin/install | bash
Option 2: Manual deployment
# 1、Clone the project to your local machine or server
# Clone project from GitHub
git clone --depth=1 https://github.com/kuaifan/dootask.git
# Or you can use Gitee
git clone --depth=1 https://gitee.com/aipaw/dootask.git
# 2、Enter directory
cd dootask
# 3、One-click installation (Custom port installation: ./cmd install --port 80)
./cmd install
Reset Password
# Reset default administrator password
./cmd repassword
Change Port
# This method only changes HTTP port. For HTTPS port, please read SSL configuration below
./cmd port 80
Stop Service
./cmd down
Start Service
./cmd up
Development & Build
Please ensure you have installed NodeJs 20+
# Development mode
./cmd dev
# Build project (This is for web client. For desktop apps, refer to ".github/workflows/publish.yml")
./cmd prod
SSL Configuration
Method 1: Automatic Configuration
# Run command and follow the prompts
./cmd https
Method 2: Nginx Proxy Configuration
# 1、Add Nginx proxy configuration
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 2、Run command (To cancel Nginx proxy configuration: ./cmd https close)
./cmd https agent
Upgrade & Update
Note: Please backup your data before upgrading!
Recommended: use the one-line script (run it inside an existing installation; it pulls the latest code and finishes the upgrade in a single run):
curl -fsSL https://raw.githubusercontent.com/kuaifan/dootask/pro/bin/install | bash
Or use the local command:
./cmd update
- If you encounter 502 errors after upgrade, run
./cmd reup to restart services.
Project Migration
After installing the new project, follow these steps to complete migration:
1、Backup the MariaDB database
# Run command in the old project
./cmd mysql backup
./cmd mysql is the CLI subcommand name; backups run against the MariaDB container.
2、Copy the following files and directories from old project to the same paths in new project
Database backup file
docker/appstore
public/uploads
3、Restore database to new project
# Run command in the new project
./cmd mysql recovery
Uninstall Project
./cmd uninstall
More Commands
./cmd help