ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Wekan 在 CentOS 7 / RHEL 7 上的 Snap 安装、HTTPS 代理与配置指南

Wekan 在 CentOS 7 / RHEL 7 上的 Snap 安装、HTTPS 代理与配置指南 Wekan 在 CentOS 7 / RHEL 7 上的 Snap 安装、HTTPS 代理与配置指南【免费下载链接】wekanThe Open Source kanban, built with Meteor. GitHub issues/PRs are only for FLOSS Developers, not for support, support is at https://wekan.fi/commercial-support/ . PR source translation to imports/i18n/data/en.i18n.json, other translations at https://app.transifex.com/wekan/wekan项目地址: https://gitcode.com/GitHub_Trending/we/wekan本指南面向运行 CentOS 7、RHEL 7 及更新版本的 64 位 Linux 服务器讲解如何使用 Snap 包管理器完整部署开源看板系统 Wekan基于 Meteor 构建涵盖 snapd 的安装、Wekan 的核心参数root-url、port、邮件、LDAP、Matomo 等配置、Caddy 自动 HTTPS 反向代理、服务管理与数据备份。阅读完成后你将能够在 Enterprise Linux 系的服务器上独立搭建一条安装—配置—上线—运维的完整链路并理解每个 Snap 配置键的底层含义与默认值。为什么选择 Snap 方式部署 WekanWekan 的官方文档在 docs/Platforms/FOSS/Container/Snap/CentOS-7.md 中明确给出了针对 CentOS 7 / RHEL 7 的推荐路径Snap 安装一条命令完成安装自带自动更新机制由 snapd 守护进程统一管理 Wekan、内置 MongoDB 与 Caddy 三个服务的生命周期Docker 或 Bash/SystemD 安装作为替代方案适合已有容器化或脚本化运维体系的场景。需要特别提醒的是Snap 版的 Wekan 属于持续跟随上游提交的版本文档中称之为 bleeding edge任何提交到 wekan 仓库的代码都会直接进入 Snap 渠道。因此在生产环境使用前需要自行评估风险并且务必保留每日备份备份方案见 docs/Backup/Backup.md。如果安全要求苛刻文档建议将 Wekan 放在防火墙之后不向互联网开放任何端口。一、安装 snapdCentOS 7 / RHEL 7 专属步骤CentOS 7 默认仓库中没有 snapd需要通过 EPEL 与 COPR 仓库启用。以 root 身份执行以下命令文档对应的完整命令序列sudo su yum makecache fast yum install yum-plugin-copr epel-release yum copr enable ngompa/snapcore-el7 yum install snapd systemctl enable --now snapd.socket其中yum copr enable ngompa/snapcore-el7启用了社区维护的实验性 CentOS 7 Snap 构建仓库snapcore-el7启用后即可通过 yum 直接安装 snapd最后一条命令用于开机自启并立即启动snapd 的 socket这是 Snap 体系正常工作的前提。两条针对 CentOS 7 的已知注意事项记录于原文档务必留意SELinux 与 Nginx如果不用 Caddy 而改用 Nginx 作为 Wekan 前置反向代理CentOS 7 默认开启的 SELinux 可能导致 Nginx 出现 Permission denied 错误此时需要按对应 issue 的说明禁用 SELinux 或调整相关布尔值snapd 更新源Enterprise Linux 的 snapd 更新通过 Fedora EPEL 渠道发布可关注 snapd-updates-in-fedora-epel 的相关论坛公告了解更新节奏。二、安装 Wekan 并设置 root-url安装本身只有一条命令但必须紧接着设置 root-url否则后续打开卡片、跳转链接等功能会因 URL 基准错误而失效snap install wekan snap set wekan root-urlhttps://boards.example.comroot-url的取值格式为(subdomain.)example.com(/suburl)即可以是主域名、子域名也可以带子路径。从 Snap 的配置实现snap-src/bin/config可以看到它的默认值是http://127.0.0.1含义就是仅本机访问一旦要对外提供访问必须显式设置为真实对外地址。关于 root-url 的更多组合示例参见 docs/Platforms/Webserver/Settings.md常见场景如下局域网 IP 指定端口sudo snap set wekan root-urlhttp://192.168.10.100:5000仅本机访问开发/调试sudo snap set wekan root-urlhttp://localhost:5000Nginx 或 Caddy 反向代理在前sudo snap set wekan root-urlhttps://example.com或带子路径sudo snap set wekan root-urlhttps://example.com/wekan当 Nginx/Caddy 在前时root-url 必须填写代理对外暴露的真实地址而非内网端口因为 Wekan 的 Node.js 进程本身只跑 HTTP无 SSLSSL 终结由前置 Web 服务器完成。Nginx 与 Snap 组合的子路径配置细节参见 docs/Platforms/Webserver/Nginx.md。三、设置 Wekan 监听端口Wekan 的 HTTP 服务默认监听8080端口配置键port的默认值见 snap-src/bin/config。典型做法是对外直连时用 80放在 Caddy/Nginx 之后时改为内网端口 3001snap set wekan port3001 systemctl restart snap.wekan.wekan修改后必须重启 Wekan 服务才能生效。当运行在 Nginx 或 Caddy 之后时这个本地端口不需要暴露到互联网仅由反向代理在内网访问。四、配置 Snap 自动更新Wekan Snap 的自动更新由 snapd 统一调度。原文档给出的经典配置是把更新窗口限定在凌晨 02:00–04:00snap set core refresh.schedule02:00-04:00更新的实际时机有三种Wekan 发布后的一段时间内、预设的调度时间窗口内或手动执行sudo snap refresh强制更新。更新的配套文档 docs/Platforms/FOSS/Container/Snap/Install.md 进一步给出了更精细的调度示例与新版推荐做法# 每周日 02:00-04:00 更新一次 snap set core refresh.schedulesun,02:00-04:00 # 每月最后一个周日 02:00-04:00 更新 snap set core refresh.schedulesun5,02:00-04:00新版推荐改用refresh.timer机制对应 wekan 仓库 issue 5402 的讨论来替代旧的refresh.schedule如果出于某种原因需要彻底关闭 Snap 自动更新可以在/etc/hosts中追加一行127.0.0.1 api.snapcraft.io来阻断 Snap 商店通信。注意阻断更新会同时使安全补丁无法到达需自行权衡。五、配置邮件发送SMTPWekan 的通知邮件通过mail-url与mail-from两个键配置sudo snap set wekan mail-urlsmtps://user:passmailserver.example.com:453 sudo snap set wekan mail-fromWekan Boards supportexample.com从 snap-src/bin/config 可以看到这两个键的默认值为空且还支持mail-service、mail-service-user、mail-service-password等进阶键可对接 Gmail 等内置邮件服务商。另外较新的 Snap 版本还提供了mail-tls-ca-cert信任的自签名/内部 CA 证书与mail-tls-servername证书校验的服务器名两个键用于对接证书不完全符合常规验证的邮件服务器——注意文档强调证书验证永远不会被关闭这两个键只是指定信任哪个证书、按哪个名字校验。邮件排障的完整指南各服务商配置示例与测试方法参见 docs/Features/Email/Troubleshooting-Mail.md。此外新版 Wekan 也支持在管理面板的 Admin Panel / People / E-mail 中启用内置邮箱设置不启用时则沿用这里的MAIL_URL/MAIL_FROM环境变量对应 Snap 的mail-url/mail-from。六、企业级集成LDAP、Matomo 与 Rocket.Chat OAuth2LDAP 登录启用 LDAP 的核心键如下完整 LDAP 键清单见 Supported-settings-keys.md 的 LDAP 小节sudo snap set wekan ldap-enabletrue sudo snap set wekan default-authentication-methodldap sudo snap set wekan ldap-fullname-fieldCN从 snap-src/bin/config 的键定义看LDAP 相关键极为丰富涵盖连接ldap-host、ldap-port、ldap-encryption、ldap-ca-cert、ldap-reject-unauthorized、认证ldap-authentification、ldap-user-authentication、ldap-user-authentication-field、同步ldap-background-sync、ldap-sync-user-data、ldap-sync-group-roles、字段映射ldap-username-field、ldap-fullname-field、ldap-email-field等 60 余项可直接支撑企业 AD/OpenLDAP 的复杂目录结构。LDAP 功能由独立的 wekan-ldap 包提供。Matomo 网站统计分析Wekan 支持与开源分析平台 Matomo 集成相关键snap-src/bin/config 与 Supported-settings-keys.md 的 Matomo 小节sudo snap set wekan matomo-addresshttps://matomo.example.com/ sudo snap set wekan matomo-site-id25 sudo snap set wekan matomo-with-usernametrue sudo snap set wekan matomo-do-not-trackfalse其中matomo-do-not-track默认值为true尊重用户不追踪请求matomo-with-username默认值为false默认不向 Matomo 上报用户名。Rocket.Chat 提供 OAuth2 登录如果企业内部已用 Rocket.Chat 作为统一入口且 Rocket.Chat 本身接了 LDAP/SAML/Google 等身份源那么可以让 Rocket.Chat 作为 OAuth2 提供方为 Wekan 提供登录实现同一批用户、同一套凭据在两个系统中复用。完整配置方法见 OAuth2 登录文档涉及oauth2-enabled、oauth2-client-id、oauth2-secret、oauth2-server-url、oauth2-auth-endpoint、oauth2-userinfo-endpoint、oauth2-token-endpoint等键。七、可选启用 Caddy让每个站点自动 HTTPSCaddy 是 Wekan Snap 内置的可选反向代理组件Snap 中的 Caddy 1 版本仅限个人非商业用途商业使用需要相应许可证可联系 Wekan 维护者启用商业版。启用后它会自动申请 Lets Encrypt 免费证书为 Wekan 提供 HTTPS 终结与 WebSocket 转发。1) 编辑 Caddy 配置nano /var/snap/wekan/common/Caddyfile2) 配置域名与代理将配置文件首行替换为你的域名(subdomain.)example.com(/suburl)不要带 http/https 前缀。官方推荐的基础配置boards.example.com { tls { alpn http/1.1 } proxy / localhost:3001 { websocket transparent } }tls { alpn http/1.1 }的作用是关闭 HTTP/2 协商Firefox 的 Inspect 控制台不支持 HTTP/2关闭后可避免 Firefox 中显示 wss WebSocket 报错Chrome 控制台支持 HTTP/2不受影响proxy / localhost:3001将流量转发到本机 3001 端口的 Wekan 进程websocket保证 WebSocket 长连接看板实时更新依赖它transparent保留原始请求头这里使用的是免费的 Lets Encrypt 证书也可以改用免费的 CloudFlare 通配符证书或任意自有证书步骤见 docs/Platforms/Webserver/Caddy.md。Caddy 还支持静态文件目录浏览例如把 Wekan 的下载目录挂到独立域名# Files have these permissions: # chown root:root /var/snap/wekan/common/download.example.com download.example.com { root /var/snap/wekan/common/download.example.com browse }3) 启用 Caddy 自动 HTTPSsnap set wekan caddy-enabledtruecaddy-enabled的默认值为falsesnap-src/bin/config设置为true后 snapd 会启动内置的 Caddy 服务。配套的caddy-bind-port键默认3001指定 Caddy 期望的后端端口该值也会同步写入 Caddyfile。使用 Caddy 2 的替代方案禁用内置 Caddy 1、改用系统级 Caddy 2同样记录在 docs/Platforms/Webserver/Caddy.md 中核心是caddy-enabledfalseport3001root-urlhttps://boards.example.com。八、服务管理与故障恢复重启 / 检查服务Wekan Snap 实际包含两个 systemd 服务单元# Wekan 应用服务 sudo systemctl status snap.wekan.wekan # 内置 MongoDB 服务 sudo systemctl status snap.wekan.mongodb二者都支持 status / start / stop / restart 四个子命令。修改任何 Snap 配置后按 Supported-settings-keys.md 末尾的说明wekan / mongo / caddy 服务会被自动重启以生效若未自动重启可手动执行sudo systemctl restart snap.wekan.wekan检查 Snap 接口连接snap interfaces该命令用于确认 Wekan 所需的所有 Snap 接口网络、系统等均已正确连接。停用 / 重新启用升级或排查异常时常用的断电重启式恢复手段sudo snap disable wekan sudo snap enable wekan修改 MongoDB 端口如果 27019 端口被其他应用占用可以迁移内置 MongoDB 的监听端口sudo snap set wekan mongodb-port27019注意mongodb-port的默认值就是 27019snap-src/bin/config如与其他应用冲突可改为任意空闲端口相关键还有mongodb-bind-ip默认127.0.0.1仅本机监听与mongodb-bind-unix-socket默认优先使用 Unix Socket 绑定可设为nill字符串禁用或设为指向$SNAP_DATA/shared目录的相对路径以对接外部 MongoDB 实例。安全复位顺序完整安装流程文档建议在安装与配置后执行一次Reboot再执行snap disable/enable wekan的复位操作以确保所有服务单元与 Socket 处于干净状态。九、MongoDB CLI 与数据备份直连内置 MongoDB安装 MongoDB 3.2.x 的客户端工具后即可直连 Snap 内置的 MongoDBmongo --port 27019每日备份强烈建议原文档反复强调务必保留每日备份。基于 MongoDB 客户端的备份/恢复方法见 docs/Platforms/FOSS/Container/Snap/Backup-and-restore.md#!/bin/bash now$(date %Y-%m-%d_%H.%M.%S) mkdir -p backups/$now cd backups/$now mongodump --port 27019 # 源码安装则改用: mongodump --port 27017 cd .. zip -r $now.zip $now cd ../.. echo \nBACKUP DONE. echo Backup is at directory backups/${now}. echo Backup is also archived to .zip file backups/${now}.zip手动备份先停服务再 dump保证数据一致性sudo snap stop wekan.wekan mongodump --port 27019 sudo snap start wekan.wekan恢复同样先停服务sudo snap stop wekan.wekan mongorestore -d wekan --drop --port 27019 sudo snap start wekan.wekan若恢复时遇到已有索引存在的报错改用mongorestore -d wekan --drop --noIndexRestore --port 27019。此外 Snap 还提供内置的数据库备份命令普通用户即可执行备份产物存放于/var/snap/wekan/common/db-backupswekan.database-backup # 备份 wekan.database-list-backups # 列出备份 wekan.database-restore FULL-PATH-TO-BACKUP-FILENAME # 恢复注意这类Snap 内备份的可靠性低于 mongodump 方案且会随snap remove wekan一并消失生产环境请以 mongodump/mongorestore 为准。十、添加用户与常见运维入口添加用户注册流程见 Adding-users.md忘记密码处理见 Forgot-Password.md查看全部可配置键wekan.help | less查看当前生效的 Snap 配置sudo snap get wekan查看键的默认值可直接阅读 Snap 的配置定义文件 snap-src/bin/config其中每个键都有DESCRIPTION_*说明、DEFAULT_*默认值、KEY_*snap set 使用的键名三组定义。关键配置键速查表以下默认值均取自 snap-src/bin/config与 Supported-settings-keys.md 中的说明一致Snap 配置键作用默认值root-urlWekan 对外完整 URL如https://example.com、http://127.0.0.1http://127.0.0.1portWekan HTTP 监听端口8080mongodb-port内置 MongoDB 端口27019mongodb-bind-ipMongoDB 绑定地址127.0.0.1mail-urlSMTP 服务器地址含账号密码空mail-from邮件发件人名称与地址空caddy-enabled是否启用内置 Caddy 服务falsecaddy-bind-portCaddy 期望的后端端口3001disable-mongodb是否禁用内置 MongoDB对接外部数据库时用falsewith-api是否启用 Wekan API关闭后 JSON 导出不可用truecorsAccess-Control-Allow-Origin响应头空禁用browser-policy-enabled浏览器安全策略iframe 嵌入限制等truetrusted-url允许以 iframe 嵌入 Wekan 的受信 URL空matomo-address/matomo-site-id/matomo-do-not-track/matomo-with-usernameMatomo 统计分析配置空 / 空 /true/false结语在 CentOS 7 / RHEL 7 上通过 Snap 部署 Wekan 是一条安装快、更新自动、组件自洽的路径snapd 负责拉起 Wekan、内置 MongoDB 与 Caddy 三个服务所有对外行为都由snap set wekan keyvalue这组统一语法控制键的默认值与说明可直接在 snap-src/bin/config 中查阅。生产上线的三件事不要遗漏正确设置 root-url、配置每日 mongodump 备份、在防火墙与反向代理Caddy/Nginx之后暴露服务。在此基础上LDAP、Matomo、Rocket.Chat OAuth2 等企业级集成都可以通过配置键平滑接入让 Wekan 真正成为团队看板基础设施的一部分。【免费下载链接】wekanThe Open Source kanban, built with Meteor. GitHub issues/PRs are only for FLOSS Developers, not for support, support is at https://wekan.fi/commercial-support/ . PR source translation to imports/i18n/data/en.i18n.json, other translations at https://app.transifex.com/wekan/wekan项目地址: https://gitcode.com/GitHub_Trending/we/wekan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表