{"id":26468636,"url":"https://github.com/tokyo-lei/easykoa2","last_synced_at":"2026-04-13T00:02:01.332Z","repository":{"id":283190904,"uuid":"950651045","full_name":"Tokyo-Lei/EasyKoa2","owner":"Tokyo-Lei","description":"基于Koa2开发的博客系统","archived":false,"fork":false,"pushed_at":"2025-03-19T01:21:55.000Z","size":6834,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-19T02:28:47.273Z","etag":null,"topics":["javascript","koa2","nodejs","sqlite"],"latest_commit_sha":null,"homepage":"http://www.tokyos.cn","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tokyo-Lei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-18T13:40:18.000Z","updated_at":"2025-03-19T01:22:44.000Z","dependencies_parsed_at":"2025-03-19T02:38:55.010Z","dependency_job_id":null,"html_url":"https://github.com/Tokyo-Lei/EasyKoa2","commit_stats":null,"previous_names":["tokyo-lei/easykoa2"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokyo-Lei%2FEasyKoa2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokyo-Lei%2FEasyKoa2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokyo-Lei%2FEasyKoa2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokyo-Lei%2FEasyKoa2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tokyo-Lei","download_url":"https://codeload.github.com/Tokyo-Lei/EasyKoa2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244460247,"owners_count":20456301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","koa2","nodejs","sqlite"],"created_at":"2025-03-19T16:14:41.347Z","updated_at":"2026-04-13T00:02:01.037Z","avatar_url":"https://github.com/Tokyo-Lei.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EasyKoa2 Blog 轻量级博客系统\n\n一个基于 Koa2 的轻量级博客系统，使用 SQLite 作为数据库，结合 art-template 模板引擎提供灵活的前端展示。系统支持文章管理、分类管理、标签管理、单页管理等功能，适合个人或小型团队快速搭建博客网站。\n\n演示: www.tokyos.cn\n\n## 功能特点\n\n- **轻量级架构**：基于 Koa2 构建，资源占用低，启动迅速\n- **零配置数据库**：使用 SQLite 存储数据，无需额外数据库配置\n- **响应式设计**：前端界面基于 Bootstrap 5，支持移动端和桌面端\n- **SEO 友好**：自定义页面标题、描述、关键词，文章 URL 支持拼音别名\n- **内容管理**：\n  - 文章管理：支持发布、编辑、删除、分类与标签关联\n  - 分类管理：支持多级分类结构和自定义排序\n  - 标签管理：灵活标记文章，方便内容归类和查找\n  - 单页管理：独立页面（如\"关于我们\"）的创建与编辑，支持设置首页展示\n- **文件上传**：支持图片上传，自动生成缩略图\n- **系统管理**：\n  - 站点设置：自定义站点名称、描述、关键词等\n  - 数据备份：支持数据库备份和恢复\n  - 缓存管理：提高系统响应速度\n\n## 安装与部署\n\n### 系统要求\n\n- Node.js 14.0 或更高版本\n- 支持 SQLite 的操作系统环境\n\n### 安装步骤\n\n1. 克隆代码库：\n\n```bash\ngit clone https://github.com/yourusername/web5.git\ncd web5\n```\n\n2. 安装依赖：\n\n```bash\n# 使用 npm\nnpm install\n\n# 或使用 yarn\nyarn install\n```\n\n3. 配置环境变量：\n\n复制 `.env.example` 文件（如果存在）为 `.env`，或创建新的 `.env` 文件，并根据需要修改配置：\n\n```\n# 应用环境\nNODE_ENV=development\n\n# 端口\nPORT=3000\n\n# 前端视图目录名称\nFRONTEND_DIR=tokyo\n\n# 后台访问路径（默认为admin，可自定义修改提高安全性）\nADMIN_PATH=admin\n```\n\n4. 启动应用：\n\n```bash\n# 开发模式\nnpm run dev\n\n# 或生产模式\nnpm start\n```\n\n5. 访问应用：\n\n- 前台：http://localhost:3000\n- 后台：http://localhost:3000/admin\n\n### Docker 部署（可选）\n\n如果您偏好使用 Docker，可以按照以下步骤部署：\n\n```bash\n# 构建镜像\ndocker build -t web5-blog .\n\n# 运行容器\ndocker run -p 3000:3000 -d web5-blog\n```\n\n## 使用说明\n\n### 后台管理\n\n1. 访问 `http://localhost:3000/admin` 进入管理界面\n2. 默认账号密码为 admin/admin（首次使用请立即修改）\n3. 通过管理界面可以：\n   - 管理文章：发布、编辑、删除文章\n   - 管理分类：创建、编辑分类结构\n   - 管理标签：创建、编辑、删除标签\n   - 单页管理：创建独立页面，如\"关于我们\"、\"联系方式\"等\n   - 系统设置：修改站点信息、管理员账号等\n\n### 前台功能\n\n- 首页展示最新文章\n- 分类浏览：按分类查看文章\n- 标签浏览：按标签查看相关文章\n- 文章详情：查看完整文章内容\n- 单页浏览：查看独立页面内容\n\n## 开发指南\n\n### 目录结构\n\n```\nweb5/\n├── app/                  # 应用核心代码\n│   ├── controllers/      # 控制器\n│   ├── models/           # 数据模型\n│   ├── public/           # 静态资源\n│   ├── routes/           # 路由配置\n│   ├── utils/            # 工具函数\n│   └── views/            # 视图模板\n├── config/               # 配置文件\n├── data/                 # 数据存储（SQLite 数据库文件）\n├── node_modules/         # 依赖库\n├── .editorconfig         # 编辑器配置\n├── .env                  # 环境变量\n├── .gitattributes        # Git 属性配置\n├── .gitignore            # Git 忽略配置\n├── app.js                # 应用入口\n├── package.json          # 项目配置\n└── README.md             # 项目说明\n```\n\n### 扩展开发\n\n1. 添加新路由：在 `app/routes/` 目录下创建或修改路由文件\n2. 开发新控制器：在 `app/controllers/` 目录下创建控制器文件\n3. 添加新模型：在 `app/models/` 目录下创建模型文件\n4. 创建新视图：在 `app/views/` 目录下创建模板文件\n\n## 配置文件说明\n\n项目根目录下的点(.)开头文件是各种配置文件，它们的作用如下：\n\n- **`.env`**: 环境变量配置文件，包含应用的基本配置，如端口、环境和管理路径等。\n- **`.gitignore`**: Git 版本控制忽略规则，指定不纳入版本控制的文件和目录。\n- **`.editorconfig`**: 编辑器配置文件，确保不同编辑器下保持一致的代码风格。\n- **`.gitattributes`**: Git 属性配置，定义文件的属性，如行尾处理、二进制文件识别等。\n- **`.pnp.cjs` 和 `.pnp.loader.mjs`**: Yarn 的 Plug'n'Play 功能相关文件，用于优化依赖管理。\n- **`.yarn/`**: Yarn 相关的缓存和配置目录，包含依赖的二进制文件和插件。\n\n## 数据库管理\n\n系统使用 SQLite 数据库，数据文件存储在 `data/` 目录下。\n\n### 备份与恢复\n\n1. 备份数据：在后台管理界面中使用备份功能，或直接复制 `data/` 目录下的数据库文件。\n2. 恢复数据：在后台管理界面上传备份文件，或直接替换 `data/` 目录下的数据库文件。\n\n## 贡献指南\n\n欢迎贡献代码或提交问题：\n\n1. Fork 本项目\n2. 创建您的功能分支 (`git checkout -b feature/amazing-feature`)\n3. 提交您的更改 (`git commit -m 'Add some amazing feature'`)\n4. 推送到分支 (`git push origin feature/amazing-feature`)\n5. 创建一个 Pull Request\n\n## 许可证\n\n本项目采用 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件。\n\n## 联系方式\n\n如有任何问题或建议，请通过以下方式联系：\n\n- 项目问题跟踪：[GitHub Issues](https://github.com/yourusername/web5/issues)\n- 邮箱：kyomini@qq.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftokyo-lei%2Feasykoa2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftokyo-lei%2Feasykoa2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftokyo-lei%2Feasykoa2/lists"}