dootask Documentation

DooTask是一款开源在线项目任务管理工具,提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具;同时消息功能使用非对称加密技术让你的沟通更安全。

RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy dootask on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name dootask --restart always dootask/appstore:0.6.0
Configured Services & Ports
⚙️ php
image: kuaifan/php:swoole-8.4
⚙️ nginx
image: nginx:alpine
🔌 Ports: ${APP_PORT}:80, ${APP_SSL_PORT:-0}:443
⚙️ redis
image: redis:alpine
⚙️ mariadb
image: mariadb:10.7.3
⚙️ appstore
image: dootask/appstore:0.6.0
docker-compose.yml
yaml (docker-compose.yml)
services:
  php:
    container_name: "dootask-php-${APP_ID}"
    image: "kuaifan/php:swoole-8.4"
    shm_size: 2G
    ulimits:
      core:
        soft: 0
        hard: 0
    volumes:
      - shared_data:/usr/share/dootask
      - ./docker/crontab/crontab.conf:/etc/supervisor/conf.d/crontab.conf
      - ./docker/php/php.conf:/etc/supervisor/conf.d/php.conf
      - ./docker/php/license.conf:/etc/supervisor/conf.d/license.conf
      - ./docker/php/php.ini:/usr/local/etc/php/php.ini
      - ./docker/logs/supervisor:/var/log/supervisor
      - ./:/var/www
    environment:
      LANG: "C.UTF-8"
      MODE: "production"
      MYSQL_HOST: "${DB_HOST}"
      MYSQL_PORT: "${DB_PORT}"
      MYSQL_DB_NAME: "${DB_DATABASE}"
      MYSQL_USERNAME: "${DB_USERNAME}"
      MYSQL_PASSWORD: "${DB_PASSWORD}"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:${LARAVELS_LISTEN_PORT}/health"]
      interval: 5s
      timeout: 5s
      retries: 5
    networks:
      - extnetwork
    depends_on:
      mariadb:
        condition: service_healthy
      redis:
        condition: service_healthy
    restart: unless-stopped

  nginx:
    container_name: "dootask-nginx-${APP_ID}"
    image: "nginx:alpine"
    ports:
      - "${APP_PORT}:80"
      - "${APP_SSL_PORT:-0}:443"
    environment:
      APP_SCHEME: "${APP_SCHEME:-auto}"
    volumes:
      - ./docker/nginx/default.conf:/etc/nginx/templates/default.conf.template
      - ./:/var/www
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/health"]
      interval: 5s
      timeout: 5s
      retries: 5
    depends_on:
      php:
        condition: service_healthy
    networks:
      - extnetwork
    restart: unless-stopped

  redis:
    container_name: "dootask-redis-${APP_ID}"
    image: "redis:alpine"
    volumes:
      - redis_data:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 5s
      retries: 5
    networks:
      - extnetwork
    restart: unless-stopped

  mariadb:
    container_name: "dootask-mariadb-${APP_ID}"
    image: "mariadb:10.7.3"
    volumes:
      - ./docker/mysql/repassword.sh:/etc/mysql/repassword.sh
      - ./docker/mysql/conf.d:/etc/mysql/conf.d
      - ./docker/mysql/data:/var/lib/mysql
    environment:
      MYSQL_PREFIX: "${DB_PREFIX}"
      MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
      MYSQL_DATABASE: "${DB_DATABASE}"
      MYSQL_USER: "${DB_USERNAME}"
      MYSQL_PASSWORD: "${DB_PASSWORD}"
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "${DB_USERNAME}", "-p${DB_PASSWORD}"]
      interval: 5s
      timeout: 5s
      retries: 5
    networks:
      - extnetwork
    restart: unless-stopped

  appstore:
    container_name: "dootask-appstore-${APP_ID}"
    privileged: true
    image: "dootask/appstore:0.6.0"
    volumes:
      - shared_data:/usr/share/dootask
      - ${HOST_DOCKER_SOCK:-/var/run/docker.sock}:/var/run/docker.sock
      - ./:/var/www
    environment:
      HOST_PWD: "${PWD}"
      HOST_DOCKER_SOCK: "${HOST_DOCKER_SOCK:-/var/run/docker.sock}"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/health"]
      interval: 5s
      timeout: 5s
      retries: 5
    networks:
      - extnetwork
    restart: unless-stopped

networks:
  extnetwork:
    name: "dootask-networks-${APP_ID}"

volumes:
  shared_data:
    name: "dootask-shared-data-${APP_ID}"
  redis_data:
    name: "dootask-redis-data-${APP_ID}"

Technical Documentation: kuaifan/dootask

ℹ️ Provenance: Hybrid Fusion: kuaifan/dootask (README + 1 In-Tree Chapters) · CodeWiki Reference · Recency: Active (< 180 days)

1. Project Overview & Quickstart (kuaifan/dootask)

DooTask - Open Source Task Management System

English | 中文文档

QQ Group

  • Group Number: 546574618

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:

bash
curl -fsSL https://raw.githubusercontent.com/kuaifan/dootask/pro/bin/install | bash

Option 2: Manual deployment

bash
# 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

bash
# Reset default administrator password
./cmd repassword

Change Port

bash
# This method only changes HTTP port. For HTTPS port, please read SSL configuration below
./cmd port 80

Stop Service

bash
./cmd down

Start Service

bash
./cmd up

Development & Build

Please ensure you have installed NodeJs 20+

bash
# 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

bash
# Run command and follow the prompts
./cmd https

Method 2: Nginx Proxy Configuration

bash
# 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):

bash
curl -fsSL https://raw.githubusercontent.com/kuaifan/dootask/pro/bin/install | bash

Or use the local command:

bash
./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

bash
# 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

bash
# Run command in the new project
./cmd mysql recovery

Uninstall Project

bash
./cmd uninstall

More Commands

bash
./cmd help

2. In-Tree Documentation Chapters (kuaifan/dootask)

DooTask - Open Source Task Management System

English | 中文文档

QQ Group

  • Group Number: 546574618

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:

bash
curl -fsSL https://raw.githubusercontent.com/kuaifan/dootask/pro/bin/install | bash

Option 2: Manual deployment

bash
# 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

bash
# Reset default administrator password
./cmd repassword

Change Port

bash
# This method only changes HTTP port. For HTTPS port, please read SSL configuration below
./cmd port 80

Stop Service

bash
./cmd down

Start Service

bash
./cmd up

Development & Build

Please ensure you have installed NodeJs 20+

bash
# 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

bash
# Run command and follow the prompts
./cmd https

Method 2: Nginx Proxy Configuration

bash
# 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):

bash
curl -fsSL https://raw.githubusercontent.com/kuaifan/dootask/pro/bin/install | bash

Or use the local command:

bash
./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

bash
# 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

bash
# Run command in the new project
./cmd mysql recovery

Uninstall Project

bash
./cmd uninstall

More Commands

bash
./cmd help

--- METRICS ---