先决条件

Countly可以安装在Linux服务器上,默认情况下,Node.js将在80端口或443(用于HTTPS),因此需要保证这些端口是空闲的,没有被占用的。

安装方法

方法一:命令安装

以下命令将在你的Ubuntu或CentOS服务器上下载,并安装Countly社区版本。

  1. 最新版本
sudo su - 
wget -qO- http://c.ly/install | bash
  1. 开发版本
sudo su -
wget -qO- http://c.ly/install | bash -s dev

安装时如果报错Failed to download Chromium r549031! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download,可以参考文章Failed to download Chromium r549031! 进行解决。

方法二:通过Digital Ocean单机安装

如果你有一个Digital Ocean账户,那么通过下面的方法也会很快安装Countly社区版。在不到10分钟的时间内就可以运行Countly实例。
在这里插入图片描述

方法三:通过Github或者安装包安装

你可以通过Github下载Countly社区版本:

  • 下载主分支(建议用于技术预览),Github地址
  • 下载最新版本(建议用于安装稳定版本),下载地址

安装过程将会花费10-15分钟,通过你的浏览器访问http://YOUR_SERVER_IP_OR_DOMIN。来创建一个管理员账户并登录仪表板,另外不要忘记下载客户端SDK。

由于MongoDB和32位限制,Countly仅支持64位服务器上的安装。

方法四:通过Docker安装

Docker镜像仅用来测试,目前只支持Countly社区版本,企业版暂不支持。

docker pull countly/countly-server

Countly使用runit来管理docker容器内的多个进程,包括Countly NodeJS,Nginx和MongoDB。
镜像拉取下来后,你可以通过执行以下命令来运行它。

docker run -d -p 32768:80 countly/countly-server

-d表示守护容器,-p表示将主机的端口32768连接到容器的端口80。如果要通过HTTPS使用Countly SDK,则需要连接端口443。
如果你希望容器内部的MongoDB中搜集的数据在Docker停止后不会丢失,你需要执行下面的命令。

mkdir /var/data/mongodb
docker run -d -P -v /var/data/mongodb:/var/lib/mongodb countly/countly-server

这条命令将会绑定主机上的/var/data/mongodb目录到容器中的/var/lib/mongodb。
在第一次启动容器时,它可能会返回MongoDB连接错误(例如500 MongoError:connect ECONNREFUSED 127.0.0.1:27017)。这是正常的,因为MongoDB需要一些时间来为countly数据库预分配文件。如果你看到该错误,只需在一分钟左右重新启动容器。要查看日志,可以使用标准docker logs命令。

配置DNS

虽然Countly服务器可以在没有DNS的情况下工作,但是建议你为服务器分配DNS记录,这样你就不必记住IP地址,例如countly.yourserver.com

配置邮件发送

由于潜在的垃圾邮件问题,你需要确保配置DNS记录,以便从Countly发送的电子邮件不会被邮件系统预防。下面是几个需要提前检查的重要事项:

  1. 确保你的ISP已经输入反向DNS记录,以关联你发送邮件的域名和IP地址。测试你的反向PTR记录。如果你的ISP没有输入正确的反向DNS指针记录,则不太可能发送任何电子邮件。
  2. 检查你域名的SPF记录是否正确。测试你的SPF记录,注意,txt是SPF的正确官方记录类型。
  3. 检查你域名的DKIM记录是否正确,这回显著提高电子邮件的可传递性。测试你的DKIM记录
  4. 如果你运行自己的邮件服务器,请检查以确保你的邮件服务器的IP不在任何电子邮件黑名单上。

我们强烈建议你向mail-tester.com发送测试的邮件,以验证以上所有内容是否正常运行。

使用第三方邮件服务器

如果你要使用第三方电子邮件服务器而不使用Countly服务器的电子邮件功能,请执行以下操作:

  1. 将此文件(Countly目录中的/extend/mail.example.js)重命名为/extend/mail.js
  2. 添加电子邮件服务器信息,例如下面所示:
module.exports = function(mail){
    //define this if you need to send email from some third party service
    mail.smtpTransport = nodemailer.createTransport(smtpTransport({
        host: "example-mailserver-host.com",
        secureConnection: true,
        port: 2525,
        auth: {
            user: "your-mailserver-username",
            pass: "your-mailserver-password"
        }
    }));

配置服务器的监控

当你的服务器出现问题时,例如:缺少足够的RAM,缺少交换空间,磁盘耗尽等。Linux内核可能会导致某些进程终端,或者Countly将无法正常运行。为了确保你拥有健康稳定的服务器,Countly建议使用Server Density,Nagios或者New Relic等监控和警报解决方案。

参考文章:

  1. Installing Countly server
Logo

更多推荐