发布我们的MVP

本周是一个重要的里程碑:我们将把MVP投入生产,并提供给所有人。

本文将说明如何获取(在这种情况下为plannipoker.com),获取服务器(以托管我们的应用程序)以及配置所有内容,直到www.plannipoker.com启用(现在可以尝试!)。

您可以通过许多提供商获得域名,而您选择的域名通常取决于您所居住的国家。最著名的是GoDaddy.com,NameCheap.com等,但是我今天要使用英国提供商FastHosts.co.uk只是因为我使用它们已有多年了。

首先,您需要注册(我们在这里不介绍),然后选择一个域:

查找域名并非易事,尤其是.com域名,因为大多数好名字都已被使用。 不必费心尝试字典中的任何内容,您将不得不发挥您的想象力。

理想情况下,大多数域名扩展(.com,.co.uk,.fr等)中都可以使用一个好的域名,因此,如果您打算在新的大型公司中注册,则可以稍后(或为了安全起见)购买接管世界。

如下所示,“ plannipoker”随处可见,这使其成为一个不错的域名。

获取服务器后,我们将返回此处配置域以指向服务器的IP。

同样,您有很多选择。 最受欢迎的服务器是Amazon AWS和Digital Oceans,但最终,您将购买服务器,选择要在其上安装的操作系统(我们将与Ubuntu一起使用),然后进行配置。

对于Plannipoker,我们将使用一个较小的欧洲公司Scaleway,因为它们专用的服务器易于启动且非常便宜(每月2欧元)。

我们在此处创建一个帐户,然后登陆仪表板:

单击“创建服务器”,选择所需的服务器类型(我们现在打算购买最便宜的服务器)。

然后选择要在您的计算机上安装的发行版(Linux版本):我们在这里使用Ubuntu:

几分钟后,您的服务器将准备就绪:

但是,在能够连接到它之前,您需要为Scaleway提供您的公共SSH密钥:从信息中心转到“凭据”:

然后,在您的终端上,复制您的SSH公钥:

然后回到Scaleway,粘贴您的密钥:

这将确保您无需任何密码即可通过SSH连接到服务器。

现在,我们的域(plannipoker.com)不知道服务器在哪里。 我们需要对其进行配置,以明确告诉他www.plannipoker.com应该指向51.15.244.70。

为此,请返回Fasthosts.co.uk(或您的域注册商所处的任何位置),并创建一个新的A记录:

您将需要创建其中两个,一个用于“ www”,一个用于不创建任何内容(将其保留为空白),以便将www.plannipoker.com和plannipoker.com都重定向到我们的服务器。

说到这,请打开您的终端并通过SSH登录到服务器:

当然,您需要用服务器的IP替换IP。

如果您稍微了解Linux,那么您可能会注意到我们在这里以root用户身份连接,我们的服务器还没有非root用户。 让我们解决这个问题,因为以root身份进行所有操作都是危险且不明智的做法。

创建用户

创建用户可以通过以下几个命令完成:(不要键入任何以#开头的行,它们是注释)

  #我们添加新用户“ antoine” 
adduser antoine#我们将此新用户添加到sudo组中,以便该用户可以
#执行sudo命令(超级用户命令)
usermod -aG sudo antoine#然后我们切换到新用户尝试
su-antoine#我们对新用户执行sudo命令以确保
#有效
须藤ls -la / root

新增金钥

我们的新用户不知道我们的SSH密钥,因此我们需要添加它:

  mkdir .ssh 
光盘./.ssh
vimauthorized_keys

进入VIM编辑器后,按“ I”进入插入模式,粘贴您的SSH密钥(与我们之前在Scaleway界面上粘贴的相同),然后按“ Esc”进入命令模式,然后按“:wq”。写下更改并退出。

离开VIM后,键入命令“退出”,这将使您返回到根会话,然后再次“退出”以返回到本地终端。

现在,使用新用户重新连接到服务器

  ssh antoine@11.22.33.44 

现在,我们必须安装一些软件:

  • Nginx:这是我们的Web服务器,类似于IIS或Apache
  • Git:您知道这一点,我们将使用它来获取我们的代码
  • 纱线:您也应该知道这一点,我们将使用它来获取依赖项
  • NVM:此将用于安装和管理Node
  • PM2:这将帮助我们运行后端程序,并使它保持活动状态

首先,让我们安装Nginx和Git:

  sudo apt更新 
sudo apt安装nginx git

然后,我们将为代码创建目录:

  cd / var / www 
苏多·麦克迪尔·普兰尼帕克
猪antoine:antoine ./plannipoker

请注意,我们如何将此目录上的用户权限(使用chown)更改为新用户(在本例中为“ antoine”):这将使签出代码和必要时修改某些文件变得更加容易,而不必使用sudo 。

此时,您应该位于“ / var / www”中,并且可以将代码克隆到plannipoker目录中:

  git clone https://github.com/antoinejaussoin/plannipoker.git 

安装纱

安装Yarn会稍微复杂一些:请复制粘贴这些内容,因为Yarn在APT中不直接可用:

  curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg |  sudo apt键添加- 
回声“ deb https://dl.yarnpkg.com/debian/稳定主” sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get更新&& sudo apt-get安装yarn

如果在安装有关apt-transport-https的Yarn时遇到错误:

sudo apt-get install apt-transport-https

然后再试一次

安装NVM

NVM是管理节点版本的最佳工具。

运行以下命令:

  curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | 重击 

一旦结束,请运行以下命令,以便无需关闭SSH会话并开始新的会话即可使用NVM:

 导出NVM_DIR =“ $ HOME / .nvm” 
[-s“ $ NVM_DIR / nvm.sh”] && \。 “ $ NVM_DIR / nvm.sh”#这将加载nvm
[-s“ $ NVM_DIR / bash_completion”] && \。 “ $ NVM_DIR / bash_completion”#这将加载nvm bash_completion

最后,安装最新版本的Node v8:

  nvm安装8 

我们就快到了!

润纱

让我们运行Yarn来安装我们的依赖项:

  cd / var / www / plannipoker 

然后构建我们的项目(客户端和服务器端);

 纱线结实 

安装并运行PM2

如前所述,PM2将帮助我们运行后端程序并确保其保持活动状态(例如,如果崩溃则自动重新启动它)。

要安装,请执行以下操作:

  npm i -g pm2 

然后,转到我们的后端(服务器)构建的程序,并从PM2启动它:

  cd / var / www / plannipoker / server / dist / server 
pm2启动index.js

您应该得到类似的内容:

配置Nginx

现在,我们需要提供我们的静态文件(我们的React应用程序,使用Javascript),并将所有API调用重定向到我们的后端。 为此,我们将使用Nginx。

Nginx使用一个配置文件,您需要将其放入/ etc / nginx / sites-available中 。 在您创建到/ etc / nginx / site-enabled的符号链接之前,Nginx不会使用此配置文件。

这使您可以通过删除符号链接轻松禁用其中之一。

  cd / etc / nginx / sites-available 
须藤vim plannipoker

然后按“ I”进入插入模式,并粘贴以下配置:

我不会详细介绍它是如何工作的(可能值得一整本书),但这应该足以使您了解如何为自己的项目复制相同的内容。

一旦配置了Nginx,就创建我正在谈论的符号链接:

  sudo ln -s / etc / nginx / sites-available / plannipoker / etc / nginx / sites-enabled / plannipoker 

然后,重新加载Nginx,使其采用以下新配置:

  sudo nginx -s重新加载 

此时,如果您在浏览器中打开域的URL,则应启动并运行您的应用程序!