搭建 webhooks 自动部署 Github 代码至自建 Linux 服务器

最近发现了一个 Go 写的 Webhook 库,一个json文件就能完成配置,用起来非常方便,于是就动手给博客服务器加上了自动部署的 webhook。

下载

adnanh/webhook 就是上面说到的库了,Ubuntu 17.04 及之后的版本可以直接通过 apt install webhook, 而较老的版本或其他分支,可以直接在 Release 页面下载对应的预编译版本或者克隆下来从源码编译。

json配置文件

首先创建一个 json 配置文件。

[
    {
        "id": "deploy-repo",
        "execute-command": "/path/to/deploy.sh",
        "response-message": "Executing deploy script",
        "trigger-rule": {
            "and": [{
                "match": {
                    "type": "payload-hash-sha1",
                    "secret": "my-secert",
                    "parameter": {
                        "source": "header",
                        "name": "X-Hub-Signature"
                    }
                }
            }, {
                "match": {
                    "type": "value",
                    "value": "refs/heads/master",
                    "parameter": {
                        "source": "payload",
                        "name": "ref"
                    }
                }
            }]
        }
    }
]

继续阅读搭建 webhooks 自动部署 Github 代码至自建 Linux 服务器

使用 service worker 和 Workbox 缓存页面

Service worker 是一个在后台运行的脚本,主要用于浏览器和服务器之间的网络交互,从而实现一些新功能。而 Workbox 则是 Google 基于这项功能开发的一个库,使一些常用的功能做到了开箱即用。这两天研究了一番之后用他们给博客加上了缓存功能,于是写个文记录一番。

继续阅读使用 service worker 和 Workbox 缓存页面

自动备份数据库至 Google Drive

最近的正好腾讯云硬盘故障事件闹得沸沸扬扬,提醒了大家备份的重要性。借此机会,介绍一下本站的备份方案。

本来在 WordPress 上备份数据库还是挺简单的,直接搜一搜插件就好了,但是我数据库里还有其他服务的表(并不推荐这么做。。。),因此选择了定时任务来进行这个操作

继续阅读自动备份数据库至 Google Drive

Laravel 5.6 生产环境优化

因为 Larvel 开发方便, API 简洁,一直是我的主力 Web 开发框架。但其实 Laravel 的性能也就一般般,所以在布置 Laravel 应用到生产环境时,用下面这些优化技巧(大概)可以提升性能。这里以 Laravel 5.5+ (PHP >= 7.0.0) 为例,而 PHP7 以下还是直接升级 PHP 吧,效果会好很多。

继续阅读Laravel 5.6 生产环境优化

在响应式布局中嵌入 SVG

最近遇到一个需要使用 SVG 并兼容 IE11 的场景,发现在 Chrome 下表现正常的代码在 IE 中却无法缩放,四处搜索一番最终发现了这个利用 position 和 padding 的解决方案。虽然需要根据每个SVG调整 padding 的数值,但好处是纯 CSS 实现,并且在 img 或 object 标签引用或直接内嵌 svg 代码的情况下都能使用,恰好符合我的需要。

继续阅读在响应式布局中嵌入 SVG

聊聊博客架构

搭独立博客似乎就是一个不断折腾的过程,那我就来聊聊折腾的结果,以供参考。

服务器

网站的服务器用的是 DigitalOcean 乞丐版,目前是5刀一个月,1GB 内存,25GB 硬盘。刚开始搭博客的时候,5刀一个月的plan还只有 512MB 内存,经常会出现程序因为内存不足被杀掉的惨剧。最近DigitalOcean升级了配置到 1GB,就好了很多。

继续阅读聊聊博客架构

为seewang.me启用HTTP2

想必大家都已经听说过了HTTP2的各好处,安全,性能,等等等等。。。
而在Nginx上启用HTTP2又特别简单

首先你得满足这些条件:

Nginx > 1.9.5
OpenSSL > 1.0.2

然后只要在服务器配置文件中的,把 http2 加在后面 listen 443 ssl就OK了

server {
    listen 80;
    server_name seewang.me www.seewang.me;
    return 301 https://seewang.me$request_uri;
}
server {
    listen 443 ssl http2;
    server_name seewang.me www.seewang.me;

    #rest of config...
}

要验证HTTP2,可以在Chrome开发者工具中的网络选项卡,只要在下面的标题中右键,然后选中协议,就能看到使用的协议了

Chrome Developer Tools

免费SSL证书——Let’s Encrypt

刚架这个博客的时候就顺便弄了 SSL 证书,用的 StartCom,申请之后除了一年一续,也没去多管。前几天续了证书以后发现 Chrome 仍然不认,查了一下才知道原来 StartCom 作死,已经被 Chrome 和 Firefox 拉黑了。

于是乎又是一番搜索,发现了现在用的 Let’s Encrypt。

和 StartCom 不同的是,Let’s Encrypt 提供了一个可以在服务器上运行的程序,签发证书,自动配置 HTTPS(虽然并没有成功),方便了很多。

根据官方文档,下下来跑一遍就可以了

    wget https://dl.eff.org/certbot-auto
    chmod a+x certbot-auto
    ./certbot-auto

但是并不认我Nginx的配置,于是只能先拿证书,再手动配置了。

    ./certbot-auto certonly

过程中会提示输出域名和 wwwroot 地址等信息,一步一步来就可以了。具体可以参考官网(https://letsencrypt.org/),总的来说还算是轻松愉快的。

CentOS更新软件包重复错误

这两天在用yum更新CentOS的时候,出现了软件包重复现错误。虽然已经不是第一次遇到这个问题,但距上次遇到时已经过了很久,早已忘记当时是如何解决的了,结果又花了好久才得以解决,这次吸取教训记下来,以免再忘。。。

错误信息大致如下:

继续阅读CentOS更新软件包重复错误

Linux学习笔记(十二)——vim编辑器详解

在 Linux 下最常用的文本编辑器莫过于 vim,而这篇文章就会介绍 vim 编辑器的使用方法。vi 是 Visual Interface 的缩写,而 vim (VI iMproved) 则是其增加版本。

与其他编辑器不同,vim 编辑器拥有三种模式

  • 编辑模式(命令模式)
  • 输入模式
  • 末行模式

每种模式都有其各自的用途与操作方式。

继续阅读Linux学习笔记(十二)——vim编辑器详解