标准安装在Linux上

最低系统要求

Passwork 对服务器资源的要求不高。所需资源(RAM、CPU、HDD)的容量和服务器的数量取决于活跃用户的数量、存储数据的容量以及对系统容错能力的要求。

通用信息

Linux上的标准安装使用Docker。Docker镜像的结构是这样的,所有重要数据都存储在与宿主机共享的目录中,因此您可以停止、删除和创建新的容器。

配置文件也存储在挂载的目录中,因此您可以对组件进行大多数配置更改,而无需直接修改Docker镜像或容器。要做到这一点,请更改必要组件的配置文件并重启容器。

组成

该程序由6个容器组成。一些容器是强制启动的,而其他部分可以通过更改环境变量文件.env中的环境变量COMPOSE_PROFILES来启用或禁用:

Nginx — 基于官方Nginx镜像的镜像。默认情况下会启动。

PHP — 基于Ubuntu的带有PHP和PHP-FPM的镜像。默认情况下会启动。

Cron — 基于PHP镜像的单独容器,用于运行计划任务。默认情况下会启动。

PSMDB — 基于官方Percona Server for MongoDB镜像的镜像。如果使用外部MongoDB/PSMDB,则可以禁用启动。

Postfix — 基于Ubuntu的带有Postfix的镜像。如果通过PHP Mailer发送通知,则可以禁用。

Certbot — 来自Let's Encrypt的官方Certbot镜像。如果您使用的是Let's Encrypt的证书,则需要它。如果您使用其他SSL证书,则可以禁用。

系统更新

基于DEB的

Shell


基于RPM的

Shell


Docker安装

下载并安装Docker。最低要求版本为18.06.0。官方安装文章 — https://docs.docker.com/engine/installation/

如果之前未安装Docker Compose插件,请安装并启用。官方安装文章 — https://docs.docker.com/compose/install/linux/

我们建议使用非通过snap安装的Docker

安装

要安装Passwork,您需要下载并运行脚本,该脚本将安装所有必需的组件。

创建一个目录并导航到该目录:

Shell


复制安装脚本:

Shell


真实性检查

检查文件passwork_compose_install.sh的哈希值,以验证文件的真实性:

Shell


系统应显示消息passwork_compose_install.sh: OK。

用户权限验证和脚本执行

如果您不是以root身份安装,请确保用户是docker组的成员。

您可以使用以下方法检查:

Shell


您可以这样将用户添加到docker组:

Shell


赋予脚本执行权限并运行它:

Shell


该脚本使用apt或dnf,以及curl。如果您的网络中使用代理服务器,您需要添加环境变量:export http_proxy=http://proxy.example.com:8080 export https_proxy=http://proxy.example.com:8080

脚本执行的操作

  • 检查已安装的Docker
  • 检查Docker版本(高于18.06.0)
  • 检查Docker是否正在运行
  • 检查用户是否属于docker组或拥有sudo权限
  • 检查Docker compose插件是否已安装并启用
  • 检查系统是否属于deb或rpm发行版
  • 为了脚本的正确运行安装额外的实用程序curl、unzip和jq
  • 请求输入Passwork客户端证书
  • 检查证书是否符合格式
  • 检查证书的有效性
  • 下载并解压包含docker-compose构建文件的存档
  • 检查环境变量文件并添加证书编号
  • 执行Passwork代码更新脚本
  • 执行docker compose up -d

执行安装脚本的过程

脚本将检查当前用户的权限以及必要组件的版本。如遇错误,脚本将以install_log_date.log的格式创建日志,并将错误放置其中。

Document image


脚本执行完成后

脚本将自动执行docker ps。请检查正在运行的容器列表。如果容器没有启动,请检查安装输出和日志。正确输出的示例:

设置向导

在构建并运行容器之后,Passwork将可通过以下链接访问:https://your_servername

默认情况下,Passwork使用在安装过程中自动生成的自签名证书,因此当您首次打开页面时,会看到浏览器不信任该网站证书的消息。

选择语言

在第一步,系统将提供选择界面语言的选项。

系统参数检查

参数清单将显示您的服务器上是否安装了所有组件。

数据库连接

默认情况下,Docker中的Passwork连接到名为db的服务,因此在初始安装的第三阶段需要更改连接字符串。

连接字符串为mongodb://db:27017

加密密钥

Passwork将为服务器加密生成一个新的密钥。如果您将Passwork连接到现有数据库,请指定现有的加密密钥。

不要输入在Passwork外部生成的密钥。Passwork使用特殊的安全算法以适当的格式生成新密钥。使用第三方工具生成的密钥可能会导致操作不正确。

许可证密钥

您可以在您的Passwork客户端门户中下载许可证密钥,或者向经理请求。

设置您自己的SSL证书

使用您自己的证书

  • 对于由受信任发行机构颁发的证书
  • 对于由您组织的域名认证机构颁发的证书

重命名并放置您的SSL证书或认证链到./conf/ssl

privkey.pem — 私钥。

fullchain.pem — 证书\认证链

使用Let's Encrypt

如果您没有证书颁发机构(由受信任中心颁发的证书),但您有服务器的公共DNS名称,您可以配置Let's Encrypt。

编辑文件 - .env 更改并添加以下参数:

USE_LETSENCRYPT=true [email protected] DOMAIN=example.com COMPOSE_PROFILES="local_notify,mongo,certbot"

保存所做的更改并启动容器。

Shell


检查容器日志以获取证书。

Shell


颁发证书的示例

重新创建容器,使用新证书更新数据。

Shell


使用Let's Encrypt的证书,Passwork将通过HTTPS协议可用。

脚本和命令

脚本

update.sh — 执行应用程序代码的更新到您的许可证中可用的最新版本。

db-backup.sh — 执行备份到备份文件夹。

db-restore.sh — 执行备份恢复。如果没有提供备份名称,将显示可用备份的列表。

collect-log.sh — 执行组件日志的收集。这是出于调试目的以及将日志发送给技术支持服务所必需的。

collect-conf.sh — 收集组件的配置文件。这是出于调试目的以及将配置文件发送给技术支持服务所必需的。

命令

docker compose stop — 停止服务

docker compose restart — 重新启动服务

docker compose start — 启动已停止的服务

docker compose down — 移除服务。数据,包括数据库和配置文件,将被保留。

参数和设置

描述

大多数设置可以通过.env中的环境变量或修改单独组件的配置文件来完成。

参数

描述 

默认值

CERT

Passwork证书编号。用于升级脚本,以从客户门户中检索应用程序文件

XXX-XXX-XXX-XXX-XXXXXXXXXXXX

USE_LETSENCRYPT

是否使用certbot来发行SSL证书

false

LETSENCRYPT_STAGING

certbot的测试模式。对于调试很有用,因为Let's Encrypt对请求的数量有限制。默认为true,以避免因DNS记录配置错误或其他原因导致的错误。建议首先使用测试环境。

true

LETSENCRYPT_REG_EMAIL

Let's Encrypt的电子邮件

DOMAIN

Let's Encrypt的域名

ALIAS_CONTAINERS_NAME

容器名前缀

"passwork_"

COMPOSE_PROFILES

允许您启用/禁用服务启动的Compose配置文件

"local_notify,mongo"

PHP_CONF_DIR

PHP配置目录

./conf/php

PHP_LOG_DIR

PHP日志目录

./log/php

APP_DIR

Passwork应用程序目录

./www/latest (symlink to the latest version)

APP_LOG_DIR

应用程序日志目录

./log/app

KEYS_DIR

存放许可证密钥及主应用程序配置文件的目录

./conf/keys

NGINX_CONF_DIR

Nginx配置目录

./conf/nginx

NGINX_LOG_DIR

Nginx日志目录

./log/nginx

SSL_DIR

包含SSL证书的目录

./conf/ssl

MONGO_DATA_DIR

包含mongo数据的目录

./data/mongo

CUSTOM_CA_DIR

用于额外根证书的目录(例如,用于LDAPS)

./conf/custom_ca

POSTFIX_LOG_DIR

Postfix日志目录

./log/postfix

POSTFIX_CONF_DIR

Postfix配置目录

./conf/postfix

应用设置

在对.env或特定组件的配置文件进行更改后,需要重启相应的容器。

Shell

Shell