DooTask: a self-hosted office suite that installs in one line
DooTask是一款开源在线项目任务管理工具,提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具;同时消息功能使用非对称加密技术让你的沟通更安全。
At a glance
- What is it?
- DooTask is KuaiFan's AGPL-3.0 licensed open source project and task management system, combining document collaboration, online mind maps and flowcharts, task distribution, instant messaging with asymmetric encryption, and file management. It deploys through a single Docker script on a Swoole, nginx, Redis and MariaDB stack, with a Vue 3 web client and Electron desktop sibling.
- Who is it for?
- Choose DooTask when a team wants a self-hosted collaboration platform covering tasks, documents, diagrams and chat in one deployment, and can run Docker with the documented two-core, four-gigabyte floor. Choose a hosted SaaS project tool when you want no servers at all, and a dedicated PM suite when deep Gantt or agile reporting outweighs built-in messaging.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 17 days ago.
- What is it written in?
- Mainly PHP, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Tasks, documents, diagrams and encrypted chat in one box
DooTask is an open source online project and task management tool whose scope reads like a compressed office suite: document collaboration tools, online mind mapping, online flowcharts, project management, task distribution, instant messaging and file management. The distinguishing security claim is at the end of that list, the messaging uses asymmetric encryption technology so communication is safer, which the frontend dependency list backs with an OpenPGP library. The project is developed by KuaiFan, licensed AGPL-3.0, published with a demo site at dootask.com, and interestingly the default branch is named pro, the open core's development trunk. Community support runs through a QQ group, number 546574618, which also says something about the primary audience.
One curl line, or clone and ./cmd install
The requirements are modest and explicit: Docker v20.10+ and Docker Compose v2.0+, CentOS, Debian, Ubuntu, macOS or other Linux and Unix systems, two or more cores with four or more gigabytes of memory, and MariaDB provided by the default compose stack rather than assembled by hand, with Windows users routed through WSL2. The recommended path is a one-line script that behaves contextually, cloning and installing in an empty directory, checking and upgrading inside an existing one:
curl -fsSL https://raw.githubusercontent.com/kuaifan/dootask/pro/bin/install | bashThe manual alternative is three steps, a shallow clone from GitHub or the Gitee mirror, enter the directory, and install, with a custom port available as ./cmd install --port 80. That the same one-line script serves both first installation and later upgrades is a small design decision that removes an entire category of operational divergence.
./cmd as the entire operations surface
Day-two operations route through a single wrapper: ./cmd repassword resets the default administrator password, ./cmd port changes the HTTP port, ./cmd down and ./cmd up stop and start the stack, ./cmd update pulls and applies an upgrade, ./cmd reup restarts services when 502 errors appear after an upgrade, and ./cmd uninstall removes everything. The database is reached through the same wrapper, ./cmd mysql backup and ./cmd mysql recovery being subcommands that run against the MariaDB container, and ./cmd help lists the rest. This is the pattern that makes Docker deployments administrable by people who are not container engineers, one verb-shaped command family, consistent naming, no compose-file archaeology for routine tasks, and the README documents each verb with one line and no ceremony.
HTTPS either automatically or behind nginx
TLS configuration offers two documented routes. The automatic path is interactive:
# Run command and follow the prompts
./cmd httpsThe proxy path suits deployments behind an existing nginx, adding three forwarding headers, X-Forwarded-Host, X-Forwarded-Proto and X-Forwarded-For, to the outer configuration and then informing DooTask:
# 2、Run command (To cancel Nginx proxy configuration: ./cmd https close)
./cmd https agentThe cancel form, ./cmd https close, is documented alongside, which is the detail that separates operations documentation that has been used from documentation that has only been written. Port changes interact with this layer too, the README noting that ./cmd port adjusts HTTP only and HTTPS requires the SSL configuration path.
Swoole, healthchecks and a four-service stack
The docker-compose file describes a compact production topology. The PHP service runs a custom image, kuaifan/php:swoole-8.4, pairing PHP 8.4 with the Swoole coroutine runtime that Laravel applications use for long-lived workers, with a two-gigabyte shared memory allocation and supervisor-managed crontabs mounted in. Nginx on Alpine fronts it and publishes the app ports, Redis and MariaDB complete the stack, and every service carries a curl-based healthcheck on a five-second interval. The dependency wiring uses Compose condition syntax, php waits for mariadb and redis to be service_healthy, nginx waits for php, so startup order is enforced by readiness rather than by sleep-and-hope. Environment plumbing runs through Laravel-standard variables, DB_HOST through DB_PASSWORD, redis and mail settings, with the whole shape confirming this is a Laravel application industrialized for containers.
Vue 3, micro-app and an Electron sibling
The web client is a Vue 3 application on the element-sea component library, with echarts for visualization, markdown-it plus KaTeX for rich text and formulas, CodeMirror for editing, jsPDF for export, and dexie and localforage for IndexedDB persistence. Among the dependencies sits @micro-zoe/micro-app, the micro frontend framework, indicating that parts of the interface are composed as embedded sub-applications rather than one monolithic bundle. Development requires Node.js 20 or newer and runs through the same command wrapper, ./cmd dev and ./cmd prod, with linting over the assets tree and a language consistency check among the npm scripts. Beyond the browser, an electron directory plus a publish workflow produce desktop applications, so the same product ships as web and native client.
Migrations, monthly releases and AGPL obligations
Migration between installations is a documented three-step: back up with ./cmd mysql backup, copy the database backup file plus the docker/appstore and public/uploads directories to the same paths in the new installation, and restore with ./cmd mysql recovery, preserving the application store and uploaded files alongside the data itself. Release cadence is steady, v1.8.89 on 2026-07-20, v1.9.18 on 2026-08-20 and v1.9.36 on 2026-09-10, with the last push on 2026-09-13, and a CHANGELOG tracks the sequence. Engineering hygiene includes phpstan with a committed baseline, phpunit tests, StyleCI and language checking across the translation directories. The AGPL-3.0 license is the main adoption consideration for businesses: offering it as a network service carries source-disclosure obligations, and the README's backup-before-upgrade warning is the operational one.
Editorial conclusion
Choose DooTask when a team wants a self-hosted collaboration platform covering tasks, documents, diagrams and chat in one deployment, and can run Docker with the documented two-core, four-gigabyte floor. Choose a hosted SaaS project tool when you want no servers at all, and a dedicated PM suite when deep Gantt or agile reporting outweighs built-in messaging. Verify first that Docker 20.10+ and Compose 2.0+ are available, plan the backup-before-upgrade step the README insists on, and read the AGPL-3.0 terms before embedding it into a commercial offering.
Frequently asked questions
What is DooTask?
DooTask is an AGPL-3.0 licensed open source online project and task management system from KuaiFan, combining document collaboration, online mind maps and flowcharts, task distribution, instant messaging with asymmetric message encryption, and file management. It deploys through Docker with MariaDB included in the stack.
How do you install DooTask?
Install Docker v20.10+ and Docker Compose v2.0+, then run curl -fsSL https://raw.githubusercontent.com/kuaifan/dootask/pro/bin/install | bash in an empty directory, or clone the repository and run ./cmd install. Windows users should set up a Linux environment through WSL2 first.
How do you upgrade or migrate DooTask?
Back up your data first, then rerun the one-line install script inside the existing installation or run ./cmd update; if 502 errors appear afterward, ./cmd reup restarts the services. For migration, run ./cmd mysql backup, copy the backup plus the docker/appstore and public/uploads directories to the new project, and restore with ./cmd mysql recovery.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/kuaifan-dootask)