标准安装在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的
基于RPM的
下载并安装Docker。最低要求版本为18.06.0。官方安装文章 — https://docs.docker.com/engine/installation/
如果之前未安装Docker Compose插件,请安装并启用。官方安装文章 — https://docs.docker.com/compose/install/linux/
我们建议使用非通过snap安装的Docker
要安装Passwork,您需要下载并运行脚本,该脚本将安装所有必需的组件。
创建一个目录并导航到该目录:
复制安装脚本:
检查文件passwork_compose_install.sh的哈希值,以验证文件的真实性:
系统应显示消息passwork_compose_install.sh: OK。
如果您不是以root身份安装,请确保用户是docker组的成员。
您可以使用以下方法检查:
您可以这样将用户添加到docker组:
赋予脚本执行权限并运行它:
该脚本使用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的格式创建日志,并将错误放置其中。
脚本执行完成后
脚本将自动执行docker ps。请检查正在运行的容器列表。如果容器没有启动,请检查安装输出和日志。正确输出的示例:
在构建并运行容器之后,Passwork将可通过以下链接访问:https://your_servername
默认情况下,Passwork使用在安装过程中自动生成的自签名证书,因此当您首次打开页面时,会看到浏览器不信任该网站证书的消息。
选择语言
在第一步,系统将提供选择界面语言的选项。
系统参数检查
参数清单将显示您的服务器上是否安装了所有组件。
数据库连接
默认情况下,Docker中的Passwork连接到名为db的服务,因此在初始安装的第三阶段需要更改连接字符串。
连接字符串为mongodb://db:27017
加密密钥
Passwork将为服务器加密生成一个新的密钥。如果您将Passwork连接到现有数据库,请指定现有的加密密钥。
不要输入在Passwork外部生成的密钥。Passwork使用特殊的安全算法以适当的格式生成新密钥。使用第三方工具生成的密钥可能会导致操作不正确。
许可证密钥
您可以在您的Passwork客户端门户中下载许可证密钥,或者向经理请求。
使用您自己的证书
- 对于由受信任发行机构颁发的证书
- 对于由您组织的域名认证机构颁发的证书
重命名并放置您的SSL证书或认证链到./conf/ssl
privkey.pem — 私钥。
fullchain.pem — 证书\认证链
使用Let's Encrypt
如果您没有证书颁发机构(由受信任中心颁发的证书),但您有服务器的公共DNS名称,您可以配置Let's Encrypt。
编辑文件 - .env 更改并添加以下参数:
保存所做的更改并启动容器。
检查容器日志以获取证书。
颁发证书的示例
重新创建容器,使用新证书更新数据。
使用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或特定组件的配置文件进行更改后,需要重启相应的容器。