关于技术的博客很有趣。 拥有自己的博客可以帮助他人,提高自己的技能,甚至可以找到工作。 在热门技术网站上写博客很棒。 显然,您是在Hackernoon上阅读的,所以您知道我这样做。 很有趣。 但是,拥有您的OWN网站来管理您的内容也很重要。 这使您可以自由地完全按照自己的意愿做事,尝试奇怪的应用程序和模式并进行实验。

如果您按照本教程进行操作,则可以以每月5美元的价格拥有自己的静态托管博客。 您只需要一个域名。

注意:我不会得到Digital Ocean的任何补偿或认可,您可以在拥有虚拟机的其他低成本提供商中轻松地做到这一点。 他们只是我喜欢的那个。

创建新机器

我们将首先在以下位置创建一个虚拟机(称为“ Droplet”) 数字海洋。

单击“创建”,然后选择“液滴”。

我为此选择FreeBSD ,如果您决定选择Linux,则说明非常相似。

选择每月5美元的选项:

如果这是一个新博客,它将拥有足够的力量。 选择离您最近的数据中心区域。

对于身份验证,我使用ssh。 这仅意味着您需要在计算机上生成密钥并将密钥上载到Digital Ocean。 但这是与您的计算机进行通信的更安全的选择。

注意: 这是有关 如何 在Windows,Linux或Mac中 生成ssh密钥 的很好的教程

添加您的SSH密钥,就可以开始使用了。

创建DNS条目

您需要创建一些DNS条目。 我将Route53用于DNS,但是您也可以将Digital Ocean用于DNS。

只需确保您的域已映射到Droplet /服务器的IP地址即可。

登录系统

现在,让我们登录到Droplet。 由于我正在使用FreeBSD,因此我将对其进行更新。

freebsd-update fetch install

接下来,我们将安装Git和Nginx。

pkg install git
pkg install nginx

然后我们将运行rehash,因此命令可用。

rehash

添加防火墙规则

您将需要为防火墙设置一些规则。

使用以下命令来更改您的sysrc:

sysrc nginx_enable= "YES"
sysrc firewall_enable= "YES"
sysrc firewall_type= "workstation"
sysrc firewall_myservices= "22/tcp 80/tcp 443/tcp"
sysrc firewall_allowservices= "any"

然后启动防火墙。

sudo nohup service ipfw start >& /tmp/i pfw.log

启动Nginx:

sudo service nginx start

您应该看到以下内容:

现在,Nginx已通过HTTP连接启动并在您的计算机上运行。

设置您的开发机器

我们将使用Hugo生成静态网站。 根据您的开发机器环境,安装会有所不同,因此,无需重复每个平台(Windows / Mac / Linux / BSD)的安装说明,只需遵循以下说明即可:

您需要在系统上安装Golang

然后安装雨果

确保Git 也安装在此计算机上。

创建一个新的雨果网站

现在,让我们创建一个新的网站。 我的被​​称为“ sillyblog”,所以我运行以下命令:

hugo new site sillyblog

雨果(Hugo)并未为您的博客提供默认主题,因此您将需要找到自己喜欢的主题

然后,您只需将主题克隆到刚创建的文件夹内的/ themes文件夹中。

我正在使用“雨果黄昏”主题,所以它看起来像这样:

cd sillyblog/themes
git clone https: //github.com/gyorb/hugo-dusk.git

现在,我需要将该主题添加到我的config.toml文件中。 这将取决于您安装的主题的名称。 大多数情况下,它与.git文件的名称相同。

echo 'theme = "hugo-dusk"' >> config.toml

现在,让我们创建我们的第一篇文章:

hugo new posts/my-first-post.md

请注意,文件名是URL。 所以我的网址是

domain.com/posts/my-first-post/

对于SEO而言,记住这一点很重要。

打开文件content / helloworld.md

它看起来像这样:

---
title: "Helloworld"
date: 2020 -02 -29 T00: 24 : 30 -08 : 00
draft: true
---

您可以在这里编辑您的第一篇文章。

您想将草稿:更改为草稿:准备发布时为false。

hugo serve

太好了,现在我们在本地计算机上运行了一个博客。

您可以取消服务,并生成一个新站点,只需输入

hugo

您的网站将生成到“公共”文件夹中。

设置部署

创建一个github仓库

返回您博客的/ public目录(对我来说是“ sillyblog”)

初始化存储库。

git init

然后,进行第一次提交。

git commit -m "first commit"

您将需要在github上添加博客的远程来源。 对我来说,我将其命名为“ simpleblog”,但您的名字将有所不同。

git remote add origin https: //github.com/JeremyMorgan/simpleblog.git

然后将文件推送到Github。 (请注意,您可以根据需要删除Github步骤并将其直接推送到服务器)。

git push -u origin master

现在,您应该看到文件已推送到您的Github存储库。

设置我们的服务器

现在我们需要设置服务器。 为新站点创建一个文件夹,并将“ example.com”替换为您的网站名称。

mkdir -p /usr/local/www/example.com/html

确保并将Nginx的目录所有权更改为www。

sudo chown -R www:www /usr/local/www/example.com

现在,您可以将站点直接克隆到该文件夹​​中。 (这是每次发布时要执行的操作。)

git clone https: //github.com/JeremyMorgan/simpleblog.git /usr/local/www/example.com/html/

最后,您需要编辑nginx.conf,以便将域名定向到该文件夹​​。

vi /usr/local/etc/nginx/nginx.conf

并添加以下内容:(用您的域名替换我的域名)

server {access_log / var /log/nginx/sillyblog.jeremymorgan.com.access.log;error_log / var /log/nginx/sillyblog.jeremymorgan.com.error.log;listen  80 ;server_name sillyblog.jeremymorgan.com;location / {root /usr/local/www/sillyblog.jeremymorgan.com/html;index index.html index.htm;}}
}

这可能位于文件底部:

现在保存文件并重新加载Nginx:

service nginx reload

还有中提琴! 我们的网站开通了!!

但这是端口80上HTTP 。 不能那样

安装Let's Encrypt for SSL

我们将使用Let's Encrypt安装证书。 关于Let's Encrypt的一件很酷的事情是cert是免费的(尽管您应该捐赠 ),而certbot几乎会为您完成所有配置。

您需要安装certbot:

pkg install py37-certbot-dns-digitalocean
pkg install py37-certbot-nginx

然后,使用--nginx标志运行它:

certbot certonly --nginx

它会问您一些问题:

然后它将自动对您的Nginx conf进行修改:

最后,该网站已启用,并带有https!

结论

在本教程中,我们:

  • 设置Digital Ocean VM
  • 已安装的Nginx
  • 在我们的本地计算机上安装了Hugo
  • 雨果创建了一个新站点
  • 使用Git将其推送到我们的新服务器。

此工作流程可能有所不同,但这足以开始。 在此工作流程中,我们在本地计算机上构建工件,并使用Gi​​t存储工件并将其移动到服务器。 另一种(更好的)替代方法可能是将整个Hugo文件夹存储在git repo中,然后将其提交到服务器并在此之后构建工件。

我不想过多地加载本教程,但是在以后的教程中,我们将进行类似的设置,并对它进行一些CI / CD调整。

如果您进行了设置,请告诉我! 我一直在寻找有关我的教程的反馈。

From: https://hackernoon.com/build-your-own-blog-at-dollar5-a-month-a-step-by-step-guide-1gnv32yj

以每月5美元的价格建立自己的博客[分步指南]相关推荐

  1. 如何自己动手建立自己的博客网站

    您可能想知道成为一个专业的博主是什么样子,但问题是您不知道如何写博客.您只能想到那些好处:设定自己的工作时间,做自己的老板,可以穿着睡衣在家里工作.但"如何做"这一部分仍然让很多人 ...

  2. 使用wordpress建立企业或博客网站新手教程

    前言   wordpress个开源的,知名的,拥有无数的插件和主题的知名blog/CMS php程序.全球数百万的网站通过wordpress建立或修改. 现在非常多的企业网站使用wordpress来建 ...

  3. 阿里云ecs云服务器建立wordpress个人博客教程

    最近流行自媒体,许多朋友也都想建立一个wordpress博客.建立个人博客我们一般都用虚拟主机的多,毕竟便宜,国外的也不需要备案.但是,如果想要长久做下去,博客速度快一些的,我还是建议大家用阿里云的e ...

  4. Hexo 建立你的博客

    利用hexo建立你的博客 准备条件 node运行环境; git环境(需要去github上拉取代码,同时以后也可以用这个把代码push到github上去) 开始工作 1.全局安装hexo 如果npm太慢 ...

  5. 国际象棋简单ai_建立简单国际象棋AI的分步指南

    国际象棋简单ai by Lauri Hartikka 通过劳里·哈蒂卡(Lauri Hartikka) 建立简单国际象棋AI的分步指南 (A step-by-step guide to buildin ...

  6. 在git上建立自己的博客

    怎样在github上建立自己的博客呢,git上有教程,教程地址:https://hexo.io/zh-cn/docs/

  7. 3个月时间,5名黑客找出苹果55个漏洞,赚了5万多美元,还写了篇博客记录全程

    大数据文摘出品 作者:刘俊寰.朱科锦.lin 昨天,翘首期待的iPhone12终于面世,不管是回归经典方框设计,还是首次推出小屏mini版,都让苹果玩家大呼过瘾. 不过,在今年这场别开生面的发布会之前 ...

  8. 美元汇率问题 酒馆浪人的博客

    1251: 美元汇率(dollars) 时间限制: 1 Sec   内存限制: 128 MB 提交: 16   解决: 7 [ 提交][ 状态][ 讨论版] 题目描述 在以后的若干天里戴维将学习美元与 ...

  9. linux 建立vnc,51CTO博客-专业IT技术博客创作平台-技术成就梦想

    vncserver的配置 vncserver:就是以图形化的方式去远程登录控制主机 由于linux的版本不一样安装的包也可能有所不同,其实就是名字不一样而已, 不管是linux的什么版本,如果你想安装 ...

最新文章

  1. python使用matplotlib可视化、自定义设置Y轴刻度标签字体的大小( setting axis ticks size in matplotlib y axis)
  2. python安装包为什么这么小-为什么你的Python包老是装不上?收下这个网站就对了...
  3. mingw msys 编译 libzip
  4. 《Linux》解决Linux端口被占用
  5. 小白入职AI数据工程师
  6. C语言之结构体(2)
  7. 虚拟化--051 vsphere linux搭建NTP服务器搭建
  8. 【转载】通过SQL获取MSSQL的数据库相关信息收藏
  9. matplotlib 设置标注方向,更改matplotlib中绘图的轴,标记和标签的颜色
  10. 【云原生之Docker实战】使用docker部署Wiznote私人笔记系统
  11. Sql Server 2005 64位安装包
  12. 旋转合并照片墙-特效照片墙
  13. 如何全备份android固件,如何一键备份安卓手机操作系统
  14. DirectX11 SDK下载地址
  15. How to Avoid Branching on the GPU 如何在GPU避免分支
  16. 51单片机C语言程序100例分析(1)IO+C语言+头文件
  17. python第三周笔记_第三周 day3 python学习笔记
  18. 网页制作期末大作业成品 HTML5+CSS大作业——简约个性高逼格博客(5页) web网页制作期末大作业模板
  19. android类加载
  20. Pix4D mapper如何添加最简单方式添加坐标系

热门文章

  1. 铕掺杂稀土氧化物空心荧光微球/含稀土配合物荧光聚苯乙烯微球/荧光双响应稀土钒酸盐微球的制备方法
  2. 飞机大战C语言代码百度云,C语言代码实现飞机大战
  3. 一封金融信创生态实验室的感谢信
  4. RESTful接口详解
  5. 架构师之修炼内功篇-系统性能优化 .
  6. 全系统学习web前端(一)关于http/html
  7. Flask学习系列(三)
  8. Java实践(零)---ASCII码表
  9. python数据统计_Python数据分析--Iris数据集实战
  10. 导出excel数据查询超时问题排查