2021年10月

背景

最近工作上同时推进的项目比较多,有些跟踪不过来,特别是不同的项目进展的程度也不一样,简单纸笔工具也不直观。
想起之前用过看板系统,比较适合这种情况。

选定

但试用的几款要么部署太复杂、要么功能太简单,还有些在线的数据全在缓存里,数据很容易丢。
最终选定了kanboard。
kanboard仅依赖php,单人使用的话数据库可以用sqlite,只要db目录有写入权限就行了。

kanboard banner

部署

为了避免再折腾域名、端口啥的,直接丢到typecho目录下,通过子目录访问就行了,群晖管理页面再给http组配置上data目录的写入权限。

data.png

齐活!

排错1

浏览器访问,duang,一个大错误提示,“只支持php 7.2以上”。
再跑到群晖后台,安装php7.4;webStation中给这个虚拟主机配置使用php 7.4。

php7.4.png

再重新访问,OK了

排错2

用了两天,确实不错。
又发现了子任务的故障,新建子任务没问题,但是一点击开始子任务或者完成子任务,就提示数据库错误。

Internal Error: SQL Error: SQLSTATE[HY000]: General error: 1 no such
table: main.task_has_subtasks #4858

搜索了一番,原来是老早就有的问题,貌似子任务表结构设计的有问题,issue里也给了解决方案。
把数据库文件拿到本地,用sqlite管理工具运行修复脚本,把修复好的数据库再放回去覆盖即可。
管理工具:sqlite-tools-win32-x86-3360000.zip
修复脚本保存为fix.sql

ALTER TABLE subtask_time_tracking RENAME TO subtask_time_tracking_old;
    
    CREATE TABLE subtask_time_tracking (
        "id"    INTEGER,
        "user_id"    INTEGER NOT NULL,
        "subtask_id"    INTEGER NOT NULL,
        "start"    INTEGER DEFAULT 0,
        "end"    INTEGER DEFAULT 0,
        "time_spent"    REAL DEFAULT 0,
        FOREIGN KEY("user_id") REFERENCES "users"("id") ON DELETE CASCADE,
        FOREIGN KEY("subtask_id") REFERENCES "subtasks"("id") ON DELETE CASCADE
    );
    
    INSERT INTO subtask_time_tracking SELECT * FROM subtask_time_tracking_old;

运行过程:

sqlite3.exe db.slite
    .read fix.sql

排错3

启用插件:

  • kanboard自带有插件商店,管理员可以直接安装;
  • 官方文档关于插件的设置说明不对,正确的做法是:
  1. config.php中设置PLUGINS_INSTALLER为true;
  2. 授予plugins目录访问权
`chmown www-data:www-data plugins`

https://github.com/benbusby/whoogle-search
Snipaste_2022-04-02_15-36-01.JPG

  1. 安装:

    sudo pip install whoogle-search
  2. 启动文件/lib/systemd/system/whoogle.service

    [Unit]
    Description=Whoogle
    After=network.target
    [Service]
    Type=simple
    User=root
    WorkingDirectory={whoogle-search所在目录}
    ExecStart={whoogle-search路径} --host 127.0.0.1 --port 5000 --userpass {访问用户名:密码}
    ExecReload=/bin/kill -HUP $MAINPID
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
  3. 启动&自启动

    systemctl start whoogle
    systemctl enable whoogle
  4. nginx反代
    nginx虚拟服务器设置

    server {
     server_name 子域名;
     location / {
         proxy_pass 目标URL;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
     }
    }

    重启nginx,设置https

    systemctl restart nginx
    certbot --nginx
  5. 参考
    https://zhen.bushini.de/15026.html