第一次搭建网站,记录一下搭建过程。
使用阿里云虚拟机,安装gitlab、minio和hugo静态网站。
搭建个人网站记录
阿里云申请服务器,域名,ICP备案
- 登陆阿里云官网购买服务器
这个没啥好说的,直接登录阿里云官网。支付宝账户登录,掏钱就行。 - 购买域名
依然没啥好说的,阿里云域名管理平台申请一个自己喜欢的域名,然后一年掏一次保护费。新申请用户走一遍备案流程,两个工作日就可搞定。 - 进行网站备案
这一步是最繁琐的,在ICP备案平台申请开始备案流程。需要打印一个备案承诺书,签字按红手印;念一段话录像;填一堆信息。其中关于网站名称和备注需要很多注意,具体看阿里云说明文档,注意事项非常多,请仔细阅读,避免返工。
安装Gitlab
- gitlab 官网下载安装脚本,并安装
# 安装相关的依赖包
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates
# 安装配置邮箱服务(我跳过了)
sudo apt-get install -y postfix
# 安装Gitlab软件包到存储库并安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
# 修改配置文件并重载服务
sudo vim /etc/gitlab/gitlab.rb
...
# external_url 'http://gitlab.example.com'
external_url 'http://192.168.xx.xxx:6001' # 根据自己的IP和port设置
...
sudo gitlab-ctl reconfigure # 重新生成配置
sudo gitlab-ctl restart # 重启服务
sudo gitlab-ctl status #检查服务状态
# 最终结果应该类似下面
root@hostname:~# gitlab-ctl status
run: alertmanager: (pid 1311) 165042s; run: log: (pid 1298) 165042s
run: gitaly: (pid 1319) 165042s; run: log: (pid 1296) 165042s
run: gitlab-exporter: (pid 1314) 165042s; run: log: (pid 1300) 165042s
run: gitlab-kas: (pid 1321) 165042s; run: log: (pid 1307) 165042s
run: gitlab-workhorse: (pid 1309) 165042s; run: log: (pid 1302) 165042s
run: logrotate: (pid 195692) 3041s; run: log: (pid 1297) 165042s
run: nginx: (pid 1303) 165042s; run: log: (pid 1294) 165042s
run: node-exporter: (pid 1315) 165042s; run: log: (pid 1301) 165042s
run: postgres-exporter: (pid 1312) 165042s; run: log: (pid 1295) 165042s
run: postgresql: (pid 1313) 165042s; run: log: (pid 1299) 165042s
run: prometheus: (pid 1318) 165042s; run: log: (pid 1305) 165042s
run: puma: (pid 1322) 165042s; run: log: (pid 1308) 165042s
run: redis: (pid 1306) 165042s; run: log: (pid 1293) 165042s
run: redis-exporter: (pid 1323) 165042s; run: log: (pid 1316) 165042s
run: sidekiq: (pid 1317) 165042s; run: log: (pid 1304) 165042s
- gitlab 初始密码
# 初始密码被放在了这个目录,会在初次执行reconfigure后24h删除
/etc/gitlab/initial_root_password
# 以root身份登陆页面,访问http://<hostname>:<port>/admin
# 不知道怎么从初始页面跳转到管理页面,最后只能手动输入admin后缀访问。admin页面可以管理用户等基础配置。

- Git的使用,后续再开坑吧
安装minio
- minio官网下载minio二进制包 minio下载地址
# 下载二进制包,就可以直接运行起来
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /mnt/data --console-address ":9001"
- supervisor 托管启动
# 方便管理,我们还是使用supervisor托管一下吧。比较方便。、
apt install superviosr # ubuntu/Debian 用apt,centos/redhat 用yum
# 编写托管配置文件
root@hostname:~# cat /etc/supervisor/conf.d/minio.conf
[program:minio]
environment=MINIO_ACCESS_KEY="username",MINIO_SECRET_KEY="passwd",MINIO_DOMAIN="s3.<domain name>" # 最好还是配置上域名,否则s3cmd访问会有奇奇怪怪的问题
command = /usr/local/minio/minio server /usr/local/minio/data --console-address ":<port>" # 根据自己情况配置
autostart = true
autorestart = true
startsecs = 5
stopasgroup = true
killasgroup = true
stdout_logfile_maxbytes = 50MB
stdout_logfile_backups = 10
stdout_logfile = /var/log/supervisor/minio.log
stderr_logfile=/var/log/supervisor/minio-error.log
# 重载启动服务
supervisorctl reload
supervisorctl status
root@hostname:~# supervisorctl status
minio RUNNING pid 1104, uptime 1 day, 22:30:50

- minio 使用上跟ceph rgw还是有一些差别,后续再开坑
安装hugo
-
hugo官网下载二进制包 二进制包github下载地址
-
启动第一个测试网页 官网 quick start
# 解压后记得把二进制包放到环境变量目录下,后续经常用到hugo命令
hugo new site quickstart
cd quickstart
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
echo "theme = 'ananke'" >> hugo.toml
hugo new content posts/my-first-post.md
#编辑 content/posts/my-first-post.md
root@hostname:hugo/quickstart# cat content/posts/my-first-post.md
+++
title = 'My First Post'
date = 2023-12-11T16:12:35+08:00
draft = true
+++
## Introduction
This is **bold** text, and this is *emphasized* text.
Visit the [Hugo](https://gohugo.io) website!
# 启动测试服务
# -D include content marked as draft 效果不是很清楚,但还是加上
# --baseURL 参数最好加上,否则在引用图片,跳转的时候会直接跳到http://localhost
hugo server -D --bind="0.0.0.0" -p <port> --baseURL="http://<hostname>:<port>/"
