惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
Recorded Future
Recorded Future
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
Y
Y Combinator Blog
N
News | PayPal Newsroom
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Help Net Security
Help Net Security
博客园 - Franky
SecWiki News
SecWiki News
Recent Announcements
Recent Announcements
T
Troy Hunt's Blog
The Register - Security
The Register - Security
The Last Watchdog
The Last Watchdog
Webroot Blog
Webroot Blog
S
Security Affairs
博客园 - 司徒正美
S
Schneier on Security
I
InfoQ
博客园_首页
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Threat Research - Cisco Blogs
Forbes - Security
Forbes - Security
腾讯CDC
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic
Cloudbric
Cloudbric
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
Recent Commits to openclaw:main
Recent Commits to openclaw:main
B
Blog
V
Vulnerabilities – Threatpost
C
Check Point Blog
Google DeepMind News
Google DeepMind News
Google Online Security Blog
Google Online Security Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cisco Blogs
Schneier on Security
Schneier on Security
O
OpenAI News
K
Kaspersky official blog

Ridic

一个关于映射度的问题 买原版书遇到的坑 区域不变性及相关应用 Klein瓶的高维推广 待解决的问题 一些待整理的资料 记录一些想看的书和课程 在服务器中部署Overleaf 高等代数习题课-记录 关于学习过程的“参数权重”设置 从今天开始写一些东西 不定积分练习 国内Docker镜像代理 《上海高考指南》数学部分阅读与分析 函数关于两点对称问题 数学笔记-第八周 数学笔记-第七周 二模前复习总结 6 数学笔记-第六周 将 word 中的 Mathtype 公式转为 Latex 原创一题 为什么高中数学题越来越难 有趣的开源项目整理 5 4 3 上海高考数学压轴题 2023年普通高中学业水平模拟测试 2 1 典型难题整理 Linux 相关操作 参加 TACA 考试 一些导数题 博客加入数学公式支持 新买的乒乓球拍 数学综合卷 利用BurpSuite和Charles进行抓包 关于window.opener 2023上海英语春考 解决Mac开机界面壁纸不同的问题 迁移到了新域名 期中考复习试卷 关于 友链 Helloworld 随时随地写代码--基于Code-server部署自己的云开发环境 GAN CFOP 学校的电脑 嘀咕
使用 Git Hook 将网站部署到服务器
Tom · 2023-01-28 · via Ridic

最近开始使用 hexo 和 hugo 写博客,静态博客相对于 Wordpress, Typecho 等的好处包括速度的安全性,但在部署和易用性方面可能略逊一筹,这也是劝退很多新手的主要原因。

如何将 hexo 和 hugo 发布到自己的云服务器,最直观的做法便是在本地用hexo g生成静态网页文件,再将其通过 FTP 等方式上传。但这样的方法看起来简单,实则操作起来麻烦,也不能保证传输的准确性,于是得想想其他方法。

既然无法很好做到传输,那么可以直接将博客的写作环境搭建在服务器本地中。具体做法是直接在服务器中安装 code-server 进行编写、编译,这样免去了传输的过程。并且 code-server 是一个“行走的”开发环境,在任何设备上访问自己的 code-server 地址就可以便捷地进行开发。

code-server 的具体使用方法可参考:

日期: 2022-06-25   标签: #部署  #折腾 

前言 在平时的学习工作中,我们经常会用到代码编辑器,Vscode已经成为我们的首选。但是本地编辑器有个弊端就是当我们在家庭和公司之间移动的时候 ......

还有一种方法是下文要讲的 Git Hook 部署。使用这种方法可以将文件一键推送到服务器中。目前我写博客便是两种方法的结合,即在 code-server 中进行编码写作,编译后通过 git 推送到另一台云服务器中。

1.安装 git

2.创建 git 用户

为了安全,我们创建一个 git 用户以专门运行 git 服务。

3.创建证书登录

将计算机中的~/.ssh/id_rsa.pub文件里的内容添加到服务器的/home/git/.ssh/authorized_keys中。添加公钥之后可以防止每次 push 都输入密码。

如果你之前没有生成过公钥,则可能就没有id_rsa.pub文件,具体的生成方法,可以 参考这里

4.初始化 Git 仓库

可以将其放在/var/repo/blog.git目录下:

mkdir /var/repo
cd /var/repo
git init --bare blog.git

使用--bare参数,Git 就会创建一个裸仓库,裸仓库没有工作区,我们不会在裸仓库上操作,它只为共享而存在。

5.配置 Git Hook

我们这里要配置的是post-receive的 hook ,在整个 git 操作完成后被运行。

blog.git/hooks目录下新建一个post-receive文件:

cd /var/repo/blog.git/hooks
vim post-receive

post-receive文件中写入如下内容:

#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

注意,这里的/var/www/hexo要换成你的部署目录,并且必须是空目录,否则 git 推送时会报错;并且也要赋予 git 用户操作这个文件夹的权限,或者直接将其chmod 777

设置这个文件的可执行权限:

6.改变拥有者

改变blog.git目录的拥有者为git用户:

chown -R git:git blog.git

7.禁用 shell 登录权限

出于安全考虑,我们要让git用户不能通过shell登录。编辑/etc/passwd,在/etc/passwd中找到类似下面的一行:

git:x :1001:1001:,,,:/home/git:/bin/bash

将其改为

git:x :1001:1001:,,,:/home/git:/usr/bin/git-shell

这样就可以通过 ssh 正常使用 git ,而无法登录 shell 。

至此,服务器端的配置就完成了。

本地配置

hexo

deploy:
  type: git
  repo: git@服务器ip:/var/repo/blog.git
  branch: master

如果ssh端口不是80怎么办? 可不能在上面的ip后直接加上端口号,因为:后的内容会被解析,这就导致报错。

可以在本地 ssh 的 config(~/.ssh/config) 中进行设置:

Host myServer
  HostName 你的ip
  Port 你的ssh端口

然后 hexo 中配置:

deploy:
  type: git
  repo: git@myServer:/var/repo/blog.git
  branch: master

就可以了。