任务战士Web视图
twweb的Python项目详细描述
twweb是Taskwarrior’sweb接口。
它的目标是由单个用户在面向Internet的Web服务器上运行(它 目前只支持一个注册用户和一个taskrc)。它 包括移动优先响应设计和 PWA。
屏幕截图
快速测试
通过运行开发服务器,您可以快速检查twweb是否适合您的需要 在您的计算机上本地。
$ tox -e dev
运行此命令后,可以在localhost:5000上访问twweb。你 可以这样更改开发服务器侦听的端口:
$ tox -e dev -- --port=3333
使用Docker安装
twweb提供了一个docker图像。您可以快速构建容器并运行 这样的图像:
# docker build . -t twweb # docker run -p 5456:5456 twweb
之后,您应该可以在浏览器中打开twweb的地址 localhost:5456。映像保留^{tt3}内的所有数据和配置$ 目录,因此最好将其作为卷装入:
# docker run -v data:/data -p 5456:5456 twweb
Docker映像将用twweb的设置预先填充/data,只要 找不到配置文件。其他设置(uwsgi配置和 当/data作为主机目录装入时,不会预先填充taskrc)。
在使用以下环境首次运行之前,可以更改设置 变量(与其默认值一起列出):
- TWWEB_SETTINGS[/data/twweb.cfg]:twweb配置文件的路径。
- TWW_CFG_SECRET[空]:twweb用于加密的密钥。如果这是 空,图像将在第一次运行时生成随机机密。把它空着放进去 大多数情况下。
- TWW_CFG_PIN[twweb]:用于注册第一个用户的pin。你 可能应该更改它
- TWW_CFG_DB_ENGINE[sqlite]
- TWW_CFG_DB_HOST[/data/twweb.db]
- TWW_CFG_TW_TASKRC[/data/taskrc]
示例:
# docker run -v data:/data -p 5456:5456 \ -e TWW_CFG_SECRET=extraSecret1122 \ -e TWW_CFG_PIN=supersecret \ twweb
您也可以通过Docker合成来构建和运行图像。
手动安装
要安装twweb,需要一个能够运行python应用程序的web服务器。 您还需要一个数据库,但是sqlite应该很好,因为twweb不存储 很多。显然你还需要一个工作任务战士。
我们将在virtualenv中安装所有必需的组件。在你开始之前,你 应该选择并创建将放置twweb的目录。暂时 我们假设/var/www/example.com/twweb,其中“example.com”部分是 通常替换为域的名称。
$ sudo mkdir -p /var/www/example.com/twweb $ sudo chown $USER:www-data /var/www/example.com/twweb $ chmod 775 /var/www/example.com/twweb $ cd /var/www/example.com/twweb
以上命令为twweb目录创建并设置适当的权限。 当遵循这种安装方法时,twweb本身将需要编写 此目录中的权限,因此我们将组权限更改为 rwx。
taskwarrior配置
对于taskwarrior,请为您的 服务器。请记住,您需要一个task可执行文件,它将 在将运行twweb的用户的$PATH中可用(通常是www-data)。
例如,对于基于debian的发行版,下面的命令应该执行 技巧:
$ sudo apt install task
现在创建一个单独的taskrc和task目录,taskwarrior将在其中存储 其数据:
$ mkdir -m 775 task && chown $USER:www-data task $ echo "data.location=`pwd`/task" > taskrc
如果要使用与任务服务器的同步,可以将 此目录中的证书并在新创建的 taskrc文件。
安装UWSGI
现在我们将在新的virtualenv中安装twweb和uwsgi:
$ virtualenv -p python3 venv $ venv/bin/pip install twweb uwsgi $ inst=`find venv -name twweb -type d`
最后一个命令保存twweb包所在目录的路径 位于。这不是严格要求,但以后会很方便。通常是 将在类似venv/lib/python3.5/site-packages/twweb的目录中找到。
在git存储库中的utils目录中有各种示例 配置文件。其中之一是twweb-uwsgi.ini,这是一种配置 为Uwsgi。你可以根据自己的喜好进行编辑,但原来的应该可以 也很好。将其复制到当前目录。
现在我们l创建twweb的配置文件,名为twweb.cfg。我们将添加一个 自定义SECRET_KEY和PIN到它(非常重要)。我们也会指出 sqlite数据库到我们的目录,taskrc到先前创建的目录:
SECRET_KEY = 'this should be secret and complex' PIN = 'additional password used for first register' DB_ENGINE = 'sqlite' DB_HOST = '/var/www/example.com/twweb/twweb.db' TW_TASKRC = '/var/www/example.com/twweb/taskrc'
例如,必须通过TWWEB_SETTINGS环境变量指向它 这边:
$ export TWWEB_SETTINGS=`pwd`/twweb.cfg
就这样!您可以使用venv/bin/uwsgi --initwweb-uwsgi.ini运行twweb。 日志存储在/var/log/uwsgi/twweb.log中。
现在您必须配置您的web服务器(例如apache或nginx)来转发 所有对你的uwsgi应用程序的请求。例如,对于nginx,可以添加如下内容 那:
location /update { include uwsgi_params; uwsgi_pass unix:/run/uwsgi/twweb.socket }