基于CF的DNS相关api自动申请SSL证书
acme.sh的准备
acme.sh
在serv00上面不需要root权限也可以自由调用,所以挺好的。
#安装acme.sh(serv00)
curl https://get.acme.sh | sh -s [email protected]
./acme.sh --install -m [email protected]
#安装socat
apt install socat
#绑定指令
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh
1:SSL证书部署到serv00面板
1.在CF的个人用户界面申请一个DNS相关token,勾选你需要调整的域名的“区域”。导出为临时用户变量:export CF_Token="CFtoken123456abcdef"
2.申请ssl证书:acme.sh --issue --dns dns_cf -d exampledomain.com --standalone -k ec-256
3.部署ssl证书到需要部署业务的网站/文件目录下:
acme.sh --installcert -d exampledomain.com \
--key-file /usr/home/USER/domains/ssl/site/site1.key \
--fullchain-file /usr/home/USER/domains/ssl/site/site1.crt --ecc
4.serv00用的是devil的panel,所以查了一下文档,直接把上面的证书绑定到对于网站的目录就能用了。
devil ssl www add 123.456.789.000 /usr/home/USER/domains/ssl/site/site1.crt /usr/home/USER/domains/ssl/site/site1.key site.com
记得替换上面代码里面比较奇怪的地方。
另外本地香橙派部署类似业务也可以用这招。
2:在serv00安装memos
首先一键安装pm2
:
bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh)
关ssh,再开。
然后从panel开网站,然后申请两个连续的端口开放,其中较小的一个作为网站反代端口使用。
首先按上面的操作把ssl的那一套搞定。
然后在网站的public_html
路径下运行:
API_URL="https://api.github.com/repos/k0baya/memos-binary/releases/latest"
DOWNLOAD_URL=$(curl -s $API_URL | jq -r ".assets[] | select(.name == \"memos-freebsd-amd64.tar.gz\") | .browser_download_url")
curl -L $DOWNLOAD_URL -o memos-freebsd-amd64.tar.gz
tar -xzvf memos-freebsd-amd64.tar.gz && rm memos-freebsd-amd64.tar.gz && chmod +x memos
因为连外部mysql比较麻烦,所以就直接用SQLite:
# 假定你的数据文件打算存储在 /home/username/domains/examplesite.com/public_html/data
# 新建数据文件夹
mkdir -p /home/username/domains/examplesite.com/public_html/data
# 测试运行
./memos --mode prod --port PORT --data /home/username/domains/examplesite.com/public_html/data
# 使用 pm2 管理
pm2 start ./memos --name memos -- --mode prod --port PORT --data /home/username/domains/examplesite.com/public_html/data
PORT
需要替换成你刚才反代申请使用的端口(小的那个)。
为了避免别人下你的数据库,你需要弄一个阻止访问的.htaccess
:
<FilesMatch "\.db$">
Order Allow,Deny
Deny from all
</FilesMatch>
memos更新:
pm2 stop memos
rm /home/username/domains/examplesite.com/public_html/memos
#按照上面的下载脚本重新下新版本
API_URL="https://api.github.com/repos/k0baya/memos-binary/releases/latest"
DOWNLOAD_URL=$(curl -s $API_URL | jq -r ".assets[] | select(.name == \"memos-freebsd-amd64.tar.gz\") | .browser_download_url")
curl -L $DOWNLOAD_URL -o memos-freebsd-amd64.tar.gz
tar -xzvf memos-freebsd-amd64.tar.gz && rm memos-freebsd-amd64.tar.gz && chmod +x memos
pm2 restart memos
上述内容中下载脚本来自:https://blog.rappit.site/2024/01/27/serv00_logs 感谢。
memos自定义
抄的。
自定义CSS:
body{font-family: "LXGW WenKai Screen", sans-serif !important;}
#root>div:nth-child(1) {
background-image: url('https://randompic.chukogals.top/');
background-position: center;
background-size: cover;
background-attachment: fixed;
}
#root>div>div.justify-center {
background-color: rgba(244 244 245 / 30%) !important;
}
#root main,
#root header,
#root aside {
background-color: rgba(244 244 245 / 60%) !important;
}
.dark #root>div>div.justify-center {
background-color: rgba(39 39 42 / 30%) !important;
}
.dark #root main,
.dark #root header,
.dark #root aside {
background-color: rgba(39 39 42 / 60%) !important;
}
.dark .memo-content-wrapper>.expand-btn-container>div.absolute {
background-color: rgba(39 39 42 / 30%) !important;
}
#root main>div:nth-child(1)>div:nth-child(1)>div:nth-child(2) {
background-color: transparent !important;
}
#root>div:nth-child(1)>div:nth-child(2)>div:nth-child(1) {
z-index: 20;
}
#root header {
min-height: 100vh;
}
#root main>div {
justify-content: space-between;
}
两个功能,一个是美化+自定义随机图背景;另外一个是替换字体(霞鹜文楷),下面的脚本也是替换字体。
自定义脚本:
function changeFont() {
const link = document.createElement("link");
link.rel = "stylesheet";
link.type = "text/css";
link.href = "https://cdn.staticfile.org/lxgw-wenkai-screen-webfont/1.7.0/lxgwwenkaiscreen.css";
document.head.append(link);
};
changeFont()
frp相关配置文件写法和使用
frp服务端
frps.toml
写法:
bindPort = 7000
vhostHTTPPort = 7600
vhostHTTPSPort = 7601
然后建立系统服务并启动:vim /lib/systemd/system/frps.service
用i切换到插入,然后键入以下内容:
[Unit]
Description=frp service client
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/frp/frps -c /root/frp/frps.toml
Restart=always
RestartSec=10s
[Install]
WantedBy=multi-user.target
然后按esc,再键入:wq
保存退出。
然后启动服务三连:
systemctl daemon-reload
systemctl start frps
systemctl status frps
如果正常启动再用:systemctl enable frps
。
frp客户端
frpc.toml
写法:
serverAddr = "8.8.8.8"
serverPort = 7000
[[test]]
name = "test-service"
type = "https"
custom_domains = ["domain.com"]
[[test.plugin]]
type = "https2http"
localAddr = "127.0.0.1:1234"
crtPath = "/root/frp/ssl/site1/site1.crt"
keyPath = "/root/frp/ssl/site1/site1.key"
hostHeaderRewrite = "127.0.0.1"
requestHeaders.set.x-from-where = "frp"
建立系统服务并启动:vim /lib/systemd/system/frpc.service
[Unit]
Description=frp service client
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/frp/frpc -c /root/frp/frpc.toml
Restart=always
RestartSec=10s
[Install]
WantedBy=multi-user.target
启动服务三连:
systemctl daemon-reload
systemctl start frpc
systemctl status frpc
正常启动再用:systemctl enable frpc
。
涉及修改某端配置文件的时候,用systemctl restart frpc
/systemctl restart frps
即可。