任务战士Web视图

twweb的Python项目详细描述


twweb是Taskwarrior’sweb接口。

它的目标是由单个用户在面向Internet的Web服务器上运行(它 目前只支持一个注册用户和一个taskrc)。它 包括移动优先响应设计和 PWA

屏幕截图

Login screenList of tasksAlternate view for task listNew task screen

快速测试

通过运行开发服务器,您可以快速检查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_KEYPIN到它(非常重要)。我们也会指出 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
}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java下载并将位图设置为列表视图   java有用于MyBatis XML sqlmaps的Javadoc样式的文档工具吗?   放置属性文件的位置,以便java命令在类路径中看到它   使用jschexception验证false的java SSH有时会失败   java如何在Android中使用MPAndroidChart定制饼图?   java如何使用R.String初始化字符串。文本   BeanValidation的java上下文相关验证   java反射:通过反射加载的类中的常量变量   安卓 Java使用相同的规则压缩多个字符串   公告命令中的java换行符不工作   带有整数、字符串和项目符号列表的java txt文件(1.)   arraylist Connect四代码(Java)列放置不工作   用于多个报告的java jasper页面编号   java如何消除Nimbus LAF中按钮周围的空间?   安卓 setImageResource内置自定义ArrayAdapter。lang.NullPointerException   java Android将Json转换为ArrayList多级可扩展列表视图   java Eclipse,Web工具平台,导致JSP中找不到元素错误,但一切正常