昨天自己去做了 1
次核酸,这周还有 2
次
本文其实去年就想写了,但真正动手是今年
3
月份,老苏在CentOS 7
上安装非常顺利,但是在群晖上却遇到了一些问题,所以就搁置了。之后好几位网友跟老苏提到DooTask
,原本是想基于官方的cmd
脚本改一个适合在群晖上运行的版本,奈何水平太菜,所以直到今天也只能通过一次一次输入命令行来完成安装。 😂
什么是 DooTask ?
DooTask
是一款轻量级的开源在线项目任务管理工具,提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具。
官方提供了在线 demo
:https://www.dootask.com
可以先去体验,如果合适再考虑是否需要自己搭建。
如果你不是在群晖上安装,建议使用官方的教程和脚本,简单高效,不容易出错。
老苏是在 DS3617xs
上安装的,其中
docker
的版本是 20.10.3, build b35e731
docker-compose
的版本是 1.28.5, build 1bbbad71
之所以要写版本是因为按照官方的教程,在使用 ./cmd install
一键安装时,会显示 docker-compose
版本过低
按照官方的要求,Docker Compose
需要 v2.0+
如果只是屏蔽版本检测又会出现其他一堆的错误,所以老苏有两个选择:
docker-compose
,但老苏查了一下,似乎并有满足要求的版本;docker-compose up -d
来一键启动,需要很多命令行操作,但似乎这是目前唯一的选择;事实证明,并不需要
Docker Compose v2.0+
也是可以安装成功的
在你开始之前,老苏有必要提醒大家,后面均为命令行操作,如果遇到问题,没有点基础排查起来可能会比较困难,老苏本人也是一样,所以如果不是特别需要,不建议在群晖上安装。
套件中心
→ 设置
--> 套件来源
--> 新增
- 名称:随意;
- 位置:
http://packages.synocommunity.com/
套件中心
--> 社群
,找到并安装套件 Git
用 SSH
客户端连到群晖,依次执行下面的命令
# 进入 docker 目录
cd /volume2/docker
# 国内用户使用gitee克隆项目到您的本地或服务器
git clone https://gitee.com/aipaw/dootask.git
# 国外用户还是用github
git clone https://github.com/kuaifan/dootask.git
# 进入目录
cd dootask
# 创建 .env 文件
cp .env.docker .env
从 .env.docker
复制出 .env
,并按下面老苏给的示例进行修改,需要修改的参数不多,其中:
APP_URL
:为主机 IP
,也就是群晖主机的 IP
,如果反代,这里也不用修改;APP_PORT
:是应用访问的端口,默认为 2222
,不冲突的话就保持默认好了;DB_PASSWORD
:数据库的密码;COMPOSE_HTTP_TIMEOUT
:这一行是老苏新增的,主要解决执行 docker-compose up -d
可能存在的超时问题;下图就是曾经出现过的超时错误
APP_NAME=DooTask
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_SCHEME=auto
APP_URL=http://192.168.0.197
APP_ID=220813
APP_IPPR=172.68.0
APP_PORT=2222
LOG_CHANNEL=stack
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST="${APP_IPPR}.5"
DB_PORT=3306
DB_DATABASE=dootask
DB_USERNAME=dootask
DB_PASSWORD=123456
DB_ROOT_PASSWORD=UbtzwQUh2Kkv
DB_PREFIX=pre_
BROADCAST_DRIVER=log
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST="${APP_IPPR}.4"
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
LARAVELS_LISTEN_IP=0.0.0.0
LARAVELS_LISTEN_PORT=20000
COMPOSE_HTTP_TIMEOUT=1000
原本老苏并不打算修改 docker-compose.yml
,但发现不修改的话,在导入数据库表操作时会报错👇
因此还是需要修改 docker-compose.yml
中的 mariadb
部分,考虑到篇幅,老苏只贴了相关的部分:
MYSQL_ROOT_HOST: "0.0.0.0"
,解决不能远程访问,导致导入表出错的问题; mariadb:
container_name: "dootask-mariadb-${APP_ID}"
image: "mariadb:10.7.3"
# ports: # mysql ports item
# - "33062:3306" # mysql ports value
volumes:
- ./docker/mysql/repassword.sh:/etc/mysql/repassword.sh
- ./docker/mysql/conf.d:/etc/mysql/conf.d
- ./docker/mysql/data:/var/lib/mysql
environment:
TZ: "Asia/Shanghai"
MYSQL_PREFIX: "${DB_PREFIX}"
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
MYSQL_DATABASE: "${DB_DATABASE}"
MYSQL_USER: "${DB_USERNAME}"
MYSQL_PASSWORD: "${DB_PASSWORD}"
MYSQL_ROOT_HOST: "0.0.0.0"
networks:
extnetwork:
ipv4_address: "${APP_IPPR}.5"
restart: unless-stopped
准备工作完成后,就可以开始启动了
# 创建数据库目录
mkdir -p ./docker/mysql/data
# 修改数据库目录权限
chmod -R 775 ./docker/mysql/data
# 创建日志目录
mkdir -p ./docker/log/supervisor
# 修改日志目录权限
chmod -R 775 ./docker/log/supervisor
# 一键启动
docker-compose up -d
# 如果遇到错误,可以一键删除之后再一键启动
docker-compose down
先不要着急访问,因为现在访问肯定是返回错误页面的
还需要我们做最后的一些配置工作
先检测所有的容器是否都已经正常启动
下图中数据库就有存在问题,正在不断重启,至于原因老苏也不知道
如果一切正常的话,就可以进行下面的操作了
# 进入 PHP 容器
docker-compose exec -u root php /bin/bash
# ----以下命令在容器内执行----
# 安装 composer 依赖
## 1.修改 composer 的全局配置文件,使用国内源
composer config repo.packagist composer https://packagist.phpcomposer.com
## 2.安装依赖
composer install
## 3.取消全局配置
composer config --unset repos.packagis
# 生成 APP_KEY
php artisan key:generate
# 切换模式到 production
php bin/run --mode=prod
# 数据库操作
php artisan migrate --seed
# 退出容器
exit
看到 Database seeding completed successfully.
,说明数据库导入成功了
在浏览器中输入 http://群晖IP:2222
就能看到登录界面
第一次需要先注册账号
如果出现 System error
提示,很可能是数据库有问题
注册成功
自动跳转到主界面
接下来你就可以新建项目、添加人员,分发任务等等。
DooTask
支持反代,但是不支持在非标端口运行,因为在 https://dt.laosu.ml:444/manage/dashboard
中你会发现,javascript
被截掉了端口
<script src="//dt.laosu.ml/js/language.all.js">script>
<script src="//dt.laosu.ml/js/scroll-into-view.min.js">script>
老苏不是程序员,所以只能用 Cloudflared
来映射到公网。
这个项目在其他 linux
平台上安装,最大的难度可能是安装支撑环境,比如 php
、docker
等,但是项目本身的安装很简单,官方提供了脚本,可以完成安装、删除、备份、改端口、重置密码、升级等操作。
而在群晖上,不需要考虑环境,但是没有了脚本的支持,安装起来比较麻烦,不细心的话比较容易出错,各种操作只能自己手动完成了。
等有空了再看看他们家的 WookTeam
,一款轻量级的在线团队协作工具,安装似乎更简单一些。
kuaifan/dootask: DooTask是一款轻量级的开源在线项目任务管理工具,提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具。
地址:https://github.com/kuaifan/dootask
DooTask
地址:https://www.dootask.com/How to Update Docker Compose on a Synology NAS - WunderTech
地址:https://www.wundertech.net/how-to-update-docker-compose-on-a-synology-nas/
基于 Swoole 实现高性能 HTTP 服务器 | 快速入门 | Swoole 从入门到实战教程
地址:https://laravelacademy.org/post/9801?page=2
Packagist / Composer 中国全量镜像
地址:https://pkg.xyz/
Host ‘172.18.0.1’ is not allowed to connect to this MySQL server · Issue #275 · docker-library/mysql
地址:https://github.com/docker-library/mysql/issues/275#issuecomment-812897091