前言
这几个月 AI 大模型的迅猛发展真的是直接大洗牌了整个云服务产业啊,国内暂时没看到什么动静,国外的云服务可是不得了,该涨价的涨价,该停售的停售,OVH/Hetzner 的价格都有大幅度的上调,就连在2月底的 Deals 声称将尽可能维持原有性价比的 Netcup 也在近期宣布涨价,平均涨幅超过 13% ,这无疑对各位个人站长的建站资金产生巨大的压力。
本人也是没有大量资金投入互联网建站,在想办法节约成本的同时突然想到自己宿舍还有一台 EasePi A2 的软路由,搭配 iStore OS 近期开始内测的 iStore OS Next 基于 Arabian 内核,可以爽玩 Docker ,于是决定将所有的网站服务都迁移到宿舍的这台软路由中,称其为“宿舍云”,好奇的话,你可以查看我的探针,在部署 Typecho 的时候也折腾了一小阵,于是便决定顺便记录一下,方便各位其他有想法的朋友使用。
正文
前提条件
- 你需要一个可以正常使用Docker Compose的主机
- 你有一丢丢的运维经验
- 你会使用文本编辑器
- 你已经知道如何正确使用反向代理
Compose文件
你可以在你想要的地方新建一个文件夹,将以下内容命名为 docker-compose.yml 文件进行保存:
services:
# PostgreSQL 数据库容器
pgsql-db:
image: postgres:15-alpine
container_name: typecho-pgsql
restart: always
environment:
POSTGRES_DB: typecho_db # 你的 pg 数据库名称
POSTGRES_USER: typecho_user # 你的 pg 数据库账号
POSTGRES_PASSWORD: your_db_password # 请更改为更安全的密码
volumes:
- ./pgsql_data:/var/lib/postgresql/data
# Typecho 应用程序容器
typecho-server:
image: joyqi/typecho:nightly-php8.2-apache # 个人使用的是基于 PHP8.2 的镜像,如果你需要 7.4 版本的直接更改就行
container_name: typecho-server
restart: always
ports:
- "8080:80" # 将主机的 8080 端口映射到容器的 80 端口(可以根据自己需要修改为除了 8080 之外的端口)
depends_on:
- pgsql-db
environment:
TYPECHO_SITE_URL: http://localhost:8080 # 必填:请修改为你的实际域名或 IP(如使用反向代理请填写实际使用的网址)
volumes:
- ./typecho_usr_data:/app # 持久化保存 Typecho 的文件数据(记得把文件中需要修改的内容修改为自己需要的)
部署流程
完成 Compose 文件的准备之后你就可以开始运行你的 Compose 了,终端切换到所在目录后执行:
docker compose up -d
观察命令行,等待 Typecho 的 Compose 启动完成后部署好你自己的反向代理,反向到刚刚 compose 文件中暴露的那个端口,完成后打开浏览器,输入对应地址完成安装程序:

✅到此,你就完成了 Typecho 的部署流程,你已经拥有了一个部署在你的软路由上的个人 Typecho 博客!
怎么上传修改主题和插件等等?
在你 Compose 文件的同目录下,你会发现多出了一个名为 typecho_usr_data 的文件夹,打开后你就会发现里面的文件与目录结构与你正常部署 Typecho 的程序文件与目录结构相同,所以直接按照你正常部署 Typecho 的操作即可,修改后即时生效,无需其他操作。

(如果你不会 Typecho 插件和主题等的基础操作,你可以翻阅其他文章,这不是本篇文章的重点,不再赘述)
我该如何备份迁移我的博客?
正常备份你可以直接使用任意方式打包 Compose 配置文件所在的整个文件夹即可,无需其他操作。
如果你需要迁移,请按以下步骤操作:
终止 Compose ,防止文件损坏和丢失 :
docker compose down- 打包迁移 Compose 配置文件所在的整个文件夹到新目标上。
运行下方指令重启 Compose :
docker compose up -d- 重新配置反向代理等个性化设置,完成。
尾声
我的博客目前就使用这套方案运行,极大降低建站成本,若有相关问题,欢迎在评论区进行交流,我们再见!👋
除特殊声明外,本站所有文章的使用与转载等均遵循 CC BY-NC-SA 4.0 协议,即您可允许再利用者以任何媒介或格式分发、混编、改编和基于本素材进行创作,但仅限用于非商业用途,且必须注明原作者。如果您对本素材进行混编、改编或创作,则必须以相同的许可条款对修改后的素材进行许可。