如何在CentOS 7上安装Oxwall
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
Wekan是使用Meteor JavaScript框架构建的看板。它被认为是Trello的开源和自托管替代方案,提供几乎相同的功能。它允许您创建基于卡的“待办事项”管理列表。在协作环境中工作时,Wekan对于提高生产力非常有帮助。Wekan具有完全响应的Web界面,并且可以多种语言进行主动翻译。
在本教程中,我们将使用wekan.example.com指向Vultr实例的域名作为域名。请确保将所有示例域名都替换为实际的示例域名。
使用指南如何更新Ubuntu 16.04更新基本系统。系统更新后,继续安装依赖项。
Wekan仅支持Node.js LTS version 4.8。要安装Node.js,我们将使用节点版本管理器。安装nvm运行安装程序脚本。
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
要立即开始使用nvm,请运行此程序。
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
如果nvm已成功安装,则您应该能够检查其版本。
user@vultr:~$ nvm --version
0.33.4
安装Node.js。
nvm install v4.8
设置Node.js的默认版本。
nvm use node
如果Node.js已成功安装,则您应该能够检查其版本。
node -v
您将看到此输出。
user@vultr:~$ node -v
v4.8.4
NVM仅为当前用户安装Node.js。为了使Node.js可以全局访问,请运行此命令。
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr
Node.js的现在作为/usr/bin/node。
user@vultr:~$ sudo which node
/usr/bin/node
MongoDB是免费的开源NoSQL数据库服务器。与使用表来组织数据的传统数据库不同,MongoDB是面向文档的,并且使用不带模式的类似JSON的文档。Wekan使用MongoDB来存储其数据。
Wekan仅与兼容MongoDB version 3.2。创建一个新的存储库文件。
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
导入MongoDB公共GPG密钥并更新软件包列表。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt update
安装MongoDB。
sudo apt install -y mongodb-org
启动MongoDB并使其自动启动。
sudo systemctl start mongod
sudo systemctl enable mongod
默认情况下,MongoDB服务器中未启用身份验证。任何有权访问服务器终端的用户都将具有MongoDB安装的全部特权。为了保护数据库服务器并限制非特权用户的访问,我们将需要在服务器上设置身份验证。
MongoDB提供了一个mongo外壳程序,用于在MongoDB上运行查询。切换到mongo外壳。
mongo
使用root特权创建一个新的MongoDB用户。您可以使用您选择的任何用户名。请确保替换密码。
db.createUser(
{
user: "admin",
pwd: "StrongAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)
您应该看到以下输出。
user@vultr:~$ mongo
MongoDB shell version: 3.2.17
connecting to: test
Welcome to the MongoDB shell.
...
2017-09-30T18:11:40.274+0000 I CONTROL [initandlisten]
> db.createUser(
... {
... user: "admin",
... pwd: "StrongAdminPassword",
... roles: [ { role: "root", db: "admin" } ]
... }
... )
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
通过按“ Ctrl+C” 将MongoDB命令界面退出到Linux终端。
编辑MongoDB配置文件。
sudo nano /etc/mongod.conf
在文件末尾添加以下行。
security:
authorization: enabled
重新启动MongoDB,以使配置更改生效。
sudo systemctl restart mongod
现在已经启用了安全性,您可以通过使用mongo命令再次切换到mongo shell来测试其是否正常工作。这次,如果您运行查询(例如show dbs显示数据库列表),则会看到一条消息,报告授权失败。sudo在以刚创建的新用户身份测试登录后,再次退出该用户。
以administrator您刚创建的用户身份登录。
mongo -u admin -p
提供用于成功登录的用户密码。为wekan数据库创建一个新用户,该用户将用于存储Wekan数据。
use wekan
db.createUser(
{
user: "wekan",
pwd: "StrongPassword",
roles: ["readWrite"]
}
)
确保StrongPassword用强密码代替。您将看到以下输出。
user@vultr:~$ mongo -u admin -p
MongoDB shell version: 3.2.17
Enter password:
connecting to: test
...
2017-09-30T18:13:26.007+0000 I CONTROL [initandlisten]
>
> use wekan
switched to db wekan
> db.createUser(
... {
... user: "wekan",
... pwd: "StrongPassword",
... roles: ["readWrite"]
... }
... )
Successfully added user: { "user" : "wekan", "roles" : [ "readWrite" ] }
在新版发行非常频繁的情况下,请在Github上查看指向Wekan发行版的最新链接。从Github下载最新版本的Wekan,替换指向安装程序包的链接。
cd ~
wget https://github.com/wekan/wekan/releases/download/v0.44/wekan-0.44.tar.gz
将下载的档案解压缩到名为的新目录中wekan。
mkdir wekan
tar xzvf wekan-*.tar.gz -C wekan
安装Node.js依赖项。
cd wekan/bundle/programs/server && npm install
Wekan服务器从环境变量读取配置。运行以下命令以将配置设置为环境变量。
export MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
export ROOT_URL='http://wekan.example.com'
export MAIL_URL='smtp://user:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=4000
确保替换wekan已创建用户的MongoDB密码。另外,根据您的SMTP服务器设置更新邮件URL。如果您尚未准备好电子邮件服务器,则以后可以随时更改此配置。
立即启动应用程序。
cd ~/wekan/bundle
node main.js
现在,您可以转到来访问该应用程序http://wekan.example.com:4000。您将看到用于登录Wekan看板的界面。
对于生产用途,建议设置反向代理以在标准HTTP端口上为应用程序systemd提供服务,并提供用于管理应用程序过程的服务。在本教程中,我们将使用Nginx Web服务器作为反向代理,并使用免费加密的Let's Encrypt进行保护。
将Certbot PPA存储库添加到系统。
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
安装Nginx和Certbot,这是Let's Encrypt CA的客户端应用程序。
sudo apt -y install certbot nginx
注意:用于从Let's Encrypt CA获得证书的域名必须指向服务器。客户端在颁发证书之前验证域权限。
生成SSL证书。
sudo certbot certonly --standalone -d wekan.example.com
生成的证书很可能存储在/etc/letsencrypt/live/wekan.example.com/目录中。SSL证书将存储为fullchain.pem,而私钥将存储为privkey.pem。
让我们加密证书在90天后过期,因此建议使用Cronjob设置证书的自动续订。Cron是一项系统服务,用于运行定期任务。
打开cron作业文件。
sudo crontab -e
在文件末尾添加以下行。
30 5 * * * /usr/bin/certbot renew --quiet
上面的cron作业每天凌晨5:30运行。如果证书到期,它将自动更新它们。
创建一个新的虚拟主机。
sudo nano /etc/nginx/sites-available/wekan.example.com.conf
用以下内容填充文件。
upstream wekan {
server 127.0.0.1:4000;
}
server {
listen 80;
listen [::]:80;
server_name wekan.example.com;
location / {
if ($ssl_protocol = "") {
rewrite ^ https://$server_name$request_uri? permanent;
}
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name wekan.example.com;
add_header Strict-Transport-Security "max-age=15768000";
ssl_certificate /etc/letsencrypt/live/wekan.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wekan.example.com/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
error_page 497 https://$host:$server_port$request_uri;
location / {
proxy_pass http://wekan;
proxy_http_version 1.1;
proxy_set_header Host $host:$server_port;
proxy_set_header Referer $http_referer;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_send_timeout 86400;
proxy_read_timeout 86400;
}
}
wekan.example.com在上述配置中,用您的实际域名替换。
启用新添加的站点。
sudo ln -s /etc/nginx/sites-available/wekan.example.com.conf /etc/nginx/sites-enabled/wekan.example.com.conf
重新启动Nginx,以使更改生效。
sudo systemctl restart nginx
启用Nginx以在启动时自动启动。
sudo systemctl enable nginx
创建一个新用户以运行该进程。
sudo adduser wekan --shell /usr/sbin/nologin --home /opt/wekan
现在将所有文件移动到/opt/wekan目录。
sudo mv ~/wekan/* /opt/wekan/
向新创建的用户提供文件的所有权。
sudo chown -R wekan:wekan /opt/wekan
Wekan不从任何配置文件中获取数据。而是从环境变量访问它。我们将创建一个新文件来存储环境变量。包含环境变量的文件将通过Systemd服务传递。
创建一个新文件来存储环境变量。
sudo nano /opt/wekan/config.env
用以下内容填充文件。
MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.example.com'
MAIL_URL='smtp://user:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=4000
HTTP_FORWARDED_COUNT=1
请确保替换username和password。
wekan通过运行向用户提供所有权。
sudo chown -R wekan:wekan /opt/wekan/config.env
为Wekan systemd服务创建一个新的服务文件。
sudo nano /etc/systemd/system/wekan.service
用以下内容填充文件。
[Unit]
Description=Wekan Server
After=syslog.target
After=network.target
[Service]
Type=simple
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
RestartSec=10
ExecStart=/usr/bin/node /opt/wekan/bundle/main.js
EnvironmentFile=/opt/wekan/config.env
ExecReload=/bin/kill -USR1 $MAINPID
RestartSec=10
User=wekan
Group=wekan
WorkingDirectory=/opt/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan
[Install]
WantedBy=multi-user.target
保存文件并退出编辑器。现在,您可以轻松启动Wekan。
sudo systemctl start wekan
使Wekan能够在启动时自动启动。
sudo systemctl enable wekan
查看Wekan服务状态。
sudo systemctl status wekan
现在,您可以在上访问Wekan实例https://wekan.example.com。首先创建一个新帐户。创建帐户后,您可以对新创建的用户启用管理访问权限。以管理用户身份登录MongoDB Shell。
mongo -u wekan -p --authenticationDatabase "wekan"
现在选择wekan数据库并更新对象以将用户提升为admin用户。
use wekan
db.users.update({username:'admin_user'},{$set:{isAdmin:true}})
请确保将其替换admin_user为您创建的用户的实际用户名。从管理界面,您将能够禁用自我注册并更新SMTP设置。
恭喜,您已在您的Vultr Ubuntu实例上成功安装了Wekan Kanban板。
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战
使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)
Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。
使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具
简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。
使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由
朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性
Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。
使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示
简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin
在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区
使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量
本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio
Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据
使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何
使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有
使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。
FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o
简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息