初次搭建网站多次失败后的成功记录
目录

VPS与环境选择 #
2U / 2G / 50GB / 5Mbps,年费约 800–1000 元;域名年费 250–280 元。
- VPS 带宽选择指南
- 注册域名与 Cloudflare 托管
- 自托管平台对比:Cloudron / YunoHost / Sandstorm(推荐使用 Cloudron)
- 1Panel 管理面板
- Nginx UI
- Micro 编辑器
- Caddy 简介
- Docker 中文参考
常见 VPS 平台:LightNode、DigitalOcean、Hostinger、Vultr、野草云(支持支付宝)。我自己通过比价买了野草云的vps,但操作界面、主机体验上比hostinger差太多,但价格差价好几百…也不太适合练手,只适合安装轻量应用。hostinger使用是真的舒服,缺点就是实在太贵了。
2025.11.17补:
免费主机:
关于 VPS 与无服务器部署的思考
如今已经不太推荐使用 VPS。原因很简单:
- 无服务器(Serverless)平台已经相当成熟,不仅提供免费额度,超出部分的计费也十分友好。对于大多数中小型项目而言,这些服务完全能够满足日常需求。
- 在部署策略上,无服务器最理想的场景是静态化服务,例如静态博客或前端页面;若确实需要运行后端服务,国内的云服务商同样提供了价格低廉、性能稳定的选择。
- 相比之下,国外云服务器虽然可以免备案直接使用,但访问速度远不如国内。而若是为了科学上网等用途,选择机场服务通常比自建 VPN 更划算。
综合来看,在当前环境下,VPS的性价比已经大幅下降,不再是首选方案。
bluesky建站部署 #
bluesky启动地址:https://bsky.app
参考内容:
- [軟體教學] 自架 Bluesky PDS 伺服器,促進去中心化社群發展
- 自己架設Bluesky PDS 並使用自己的Domain建立帳號
- https://github.com/bluesky-social/atproto/issues/1752
SMTP 服务邮箱:
bsky.app第三方启动器:https://tabtter.jp
在使用 Resend 发送邮件时,如果出现“域名未验证”的错误,通常是因为 域名验证流程未完成。要正确验证域名,需要注意两点:
- DNS 记录对应:在自己的 DNS 服务商中添加 Resend 提供的域名记录时,必须确保记录的域名(主机名/网域)与 Resend 要求完全一致。
- 控制台验证:添加完 DNS 记录后,还需要回到 Resend 控制台点击 “Verify DNS Record” 进行验证,Resend 才能确认域名已经生效。
只有满足这两步,域名验证成功后,才能正常使用该域名发送邮件。
1#將YOUR_API_KEY_HERE換成上一部給你的 API Keys
2PDS_EMAIL_SMTP_URL=smtps://resend:re_your_key@smtp.resend.com:465/
3#將 admin@example.com 替換成 SMTP 發信地址
4PDS_EMAIL_FROM_ADDRESS=admin@hoochanlon.space
5# 测试效果时,取消邀请机制
6PDS_INVITE_REQUIRED="false"
7# 编辑完,重启服务
8systemctl restart pdsmisskey建站部署 #
和插件重制一样,这行更新慢的程序很多几乎都兼容崩坏。部署真的容易被恶心到。唯一一次“全程成功”的,居然是 Bluesky。反代没域名的情况下还得强制 http 才能看到效果。不过这次总算成功了。
1Panel Docker 超详细 Misskey 部署教程
申请证书使用如下命令,或登录网站: https://dash.cloudflare.com
1sudo apt update
2sudo apt install certbot python3-certbot-nginx -y
3sudo certbot --nginx -d misskey.hoochanlon.spacemastodon建站部署 #
1Panel Docker 部署自己的 Mastodon 实例 安装有问题不成功。最简单最成功的部署mastodon的方法是使用Cloudron。关于Cloudron体验见:Web 自托管平台评测 Cloudron vs YunoHost vs Sandstorm 。
Cloudron初次使用,参考这个教程,注意关闭ipv6:
除mastodon之外,安装简单的平台:https://docs.gotosocial.org/zh-cn/latest/getting_started/installation/container/
Ech0-Noise建站部署 #
Docker 原理图 #
1+-------------------------------------------------+
2| 宿主机 |
3| |
4| 访问地址: http://服务器IP:1314 |
5| |
6| +-----------------------------------------+ |
7| | 容器: Ech0-Noise | |
8| | 应用: Echo Noise | |
9| | 内部端口: 1314 | |
10| | 数据存储卷: /app/data | |
11| +-----------------------------------------+ |
12| 本地挂载路径: /opt/data ------------------> |
13+-------------------------------------------------+常用命令与说明 #
1️⃣ 启动容器(不挂载数据) #
1docker run -d --name Ech0-Noise -p 1314:1314 noise233/echo-noise⚠️ 删除容器后数据会消失,适合测试环境。
2️⃣ 数据持久化挂载 #
1docker stop Ech0-Noise
2docker rm -f Ech0-Noise
3docker run -d --name Ech0-Noise -p 1314:1314 -v /opt/data/noise.db:/app/data/noise.db noise233/echo-noise将宿主机的 /opt/data/noise.db 挂载到容器 /app/data/noise.db 实现持久化。
3️⃣ docker-compose 部署 #
1version: "3"
2
3services:
4 noise:
5 image: noise233/echo-noise
6 container_name: note-noise
7 ports:
8 - "1314:1314"
9 volumes:
10 - ./data:/app/data
11 environment:
12 - LOG_LEVEL=info
13 - DB_TYPE=sqlite
14 - DB_PATH=/app/data/noise.db
15 restart: unless-stopped一键启动:
1docker compose up -dMemos 搭建记录 #
Memos 是轻量级的自托管笔记系统。新版 UI 不太合我意,因此我选择回退旧版。
部署命令 #
1version: "3.8"
2services:
3 memos:
4 image: neosmemo/memos:0.24.0
5 container_name: memos
6 ports:
7 - "5230:5230"
8 volumes:
9 - ./data:/var/opt/memos
10 restart: unless-stopped切换版本命令:
1cd /opt/1panel/www/memos
2docker compose down
3docker stop memos
4docker rm memos
5docker compose up -d旧版 UI 截图:

虽然有不少衍生项目,但个人兴趣不大:
Nginx 反代注意事项 #
若访问反代域名时提示“无法访问”,说明浏览器可能强制使用 HTTPS(443 端口)。
而你只配置了 HTTP(80 端口)。
解决办法:
- 申请 HTTPS 证书(可用 Cloudflare 或 Let’sEncrypt 免费申请)。
- 若浏览器缓存了 HSTS,需清理缓存或使用隐身模式访问。
参考教程:
如何申请 Cloudflare 免费 SSL 证书