Allen/搭建个人网站基本组件安装记录

Created Sat, 16 Dec 2023 23:20:21 +0800 Modified Wed, 20 Dec 2023 00:05:58 +0800
1320 Words

第一次搭建网站,记录一下搭建过程。
使用阿里云虚拟机,安装gitlab、minio和hugo静态网站。

搭建个人网站记录

阿里云申请服务器,域名,ICP备案

  • 登陆阿里云官网购买服务器
    这个没啥好说的,直接登录阿里云官网。支付宝账户登录,掏钱就行。
  • 购买域名
    依然没啥好说的,阿里云域名管理平台申请一个自己喜欢的域名,然后一年掏一次保护费。新申请用户走一遍备案流程,两个工作日就可搞定。
  • 进行网站备案
    这一步是最繁琐的,在ICP备案平台申请开始备案流程。需要打印一个备案承诺书,签字按红手印;念一段话录像;填一堆信息。其中关于网站名称和备注需要很多注意,具体看阿里云说明文档,注意事项非常多,请仔细阅读,避免返工。

安装Gitlab

gitlabg官网安装说明
参考说明

  • 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页面可以管理用户等基础配置。
gitlab_admin
  • Git的使用,后续再开坑吧

安装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_cover
  • minio 使用上跟ceph rgw还是有一些差别,后续再开坑

安装hugo

# 解压后记得把二进制包放到环境变量目录下,后续经常用到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>/"
hugo_quickstart_example