跳转到主要内容

快速开始

如何快速上手本项目

在阅读本文档其他部分前,建议先阅读本部分,对本项目有一个大概了解。

什么是 ImQi1 CMS

其实这些话我已经在其他地方说过很多次了。

我从 2022 年开始建站,用过很多管理系统。最初我在淘宝上买了数百个建站模板,逐个挑选,最后选出我最喜欢的一个模板,算是梦的开始。接着我尝试了 Halo 框架,它界面美观,部署容易,我跟着教程,记录了数个月的文章,最后却因不会使用 Docker、没有处理好挂载卷和持久化等原因丢失了所有的数据。于是我又换到了 Typecho,这也是我使用时间最久的一个框架。我使用过很多主题,用的时间最久的是火喵的 MyLife 主题,但是实在受不了高 TTFB,我就下定决心换一个主题。于是我以 Saammaa 的 Citizen 主题为原型,自己不断仿造别人的样式加样式、加功能,也算是打造了一个尽量符合自己理想的 CMS 样子。但它的很多功能都要围绕着 Typecho 生态做开发,且 PHP 的速度还是太慢,所以我在今年(2026 年)4 月决定,自己从零打造一个属于自己的 CMS。

起初我不打算将此 CMS 开源,因为现在随着 AI 的发展,建站的成本已经相当低,我喜欢有自己理解、融合每个人特色的站点或内容,而不是将博客当做知识库纯为好看将站点装裱得花里胡哨,而缺乏真正内容的网站(这也是我加友链的原则)。后来我认识的朋友足够多,我自己开发的功能也足够丰富,我觉得现在我的源码已经足够复杂,不再是一键就能搭建好的了。所以我希望我开源以后,有人能将我用心实现的功能融合自己的创新,创建出比我更优秀的网站,这样我才觉得开源才有意义。为什么互联网发展地如此迅速,为什么如今的 AI 层出不穷,越来越强,就是因为一有人在某一方面有创新,就会将思想开源或分享。这样各大开发者或科技巨头都可以相互学习,整个互联网生态才会进步地如此飞快。

最后,我仍然想给此文档留一定的门槛,不写傻瓜式的教程,仍然是为了防止某些我不喜欢的人使用此 CMS,也留给真正想学习技术、探索代码的朋友一些思考的空间。

ImQi1 CMS 是一款基于 Nuxt 4 的、提供文章、独立页面、评论、留言板、分类、标签、单用户、RSS 订阅、邮件订阅、友链等常用博客功能的全栈内容管理系统,还提供了轮播图、瀑布流、图片灯箱、实况照片、音乐播放器、旅行足迹地图等更多功能,并具备覆盖全部模块的后台界面。ImQi1 CMS 将数据存储于 PostgreSQL 数据库中,采用 SSR + ISR 架构,渲染结果缓存 30 分钟后过期;可选择配置基于 Redis 的缓存(未配置时 ISR 自动降级到文件系统、搜索缓存关闭),并且当相关写接口被触发时,对应缓存还会即时失效,保证数据和缓存的一致性。除 Web 主站外,仓库还以子模块形式包含基于 uni-app 的小程序端(H5 / 微信 / 支付宝三端),并支持 PWA 离线访问。ImQi1 CMS 支持基于 Nodejs 或 Docker 部署,并可将静态资源托管于 CDN(目前仅支持 COS)。

界面预览

在线预览

开发环境搭建

在部署到生产环境之前,你需要在本地先运行起来,打包命令也是在本地运行的。当然,你也可以在服务器中安装依赖并打包,但我仍然建议你在本地先试试看。

由于 Nuxt 是一个重量级依赖,它无论是启动 dev 还是 build,在 Windows 上都特别慢。如果你有 MacOS 或 Linux 机器,建议在它们上面开发。

环境要求

Nodejs ≥ 20、PostgreSQL ≥ 14、Bun ≥ 1.3、Redis(可选,本地开发基本使用不到缓存)。

作者的环境是 bun 1.4.0、Nodejs v24.19.0(npm 为 11.17.0)、Postgresql 16.3,开发系统有 Linux 和 Windows,PostgreSQL 都是在 Docker 中安装的。

Nodejs 安装这里不介绍,请前往 Nodejs 官方网站 下载并安装。

bun 安装也不介绍,请前往 bun 官方网站 下载并安装。

安装 PostgreSQL

PostgreSQL 在 Windows 上不太好安装,这里给出在 Docker 中安装的方法。没装过 Docker 的话,先去 Docker 官网 装 Docker Desktop,Windows 上建议启用 WSL2 后端。

安装:

Bashdocker run -d --name imqi1-postgres --restart unless-stopped -e POSTGRES_USER=imqi1 -e POSTGRES_PASSWORD=imqi1_pg_password -e POSTGRES_DB=imqi1-cms -p 5432:5432 -v imqi1-pg-data:/var/lib/postgresql/data postgres:16

查看是否起来了:

Bashdocker exec imqi1-postgres pg_isready -U imqi1

pg_isready 输出 accepting connections 就说明好了。

准备项目

从 Github 上克隆此项目:

Bashgit clone https://github.com/imqi1-github/imqi1-cms.git

复制一份环境变量模板:

Bashcp .env.example .env

数据库连接是必填的,其余(Redis、COS、高德地图、部署相关)不填也能启动,模板里每段都有注释说明。

INIDB_HOST="localhost"
DB_PORT="5432"
DB_USER="imqi1"
DB_PASSWORD="imqi1_pg_password"
DB_NAME="imqi1-cms"

安装依赖:

Bashbun install

scripts 目录是独立的子包,需要单独安装一次:

Bashbun run scripts:install

初始化数据库:

Bashbun run db:init

生成 Prisma 客户端:

Bashbunx prisma generate

启动开发服务器

Bashbun run dev

默认访问地址为 http://localhost:3000,管理后台位于 /admin。用户名为 admin,密码为 123456