# FCloud3 **Repository Path**: au114514/fcloud3 ## Basic Information - **Project Name**: FCloud3 - **Description**: 基于aspNetCore和vue3的内容管理系统 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 5 - **Created**: 2023-10-02 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: Csharp, Vue, Aspnet, dotNET, CMS ## README # FCloud3 ## TODO - 将单元测试框架更换为`xUnit`或`nUnit`,当前测试的多DataRow用法无法更新到`MSTest`的4.x.x版本 - 将CORS配置项移到配置文件中 - 考虑修改更好看的语法后,启用“模板”语法 - 替换掉”颜色字/块“、”边框“等丑陋的语法 ## 概述 本项目是一套基于`asp.netCore`和`vue3`和内容管理系统,其主要功能介于`博客/维基/贴吧`之间 - 用户可在线编辑文本内容(称为词条)、上传图片等文件。词条支持markdown语法,可插入图片或表格。 - 词条中的表格可选择上传xlsx文件,或通过内置的表格编辑器编辑。 - 词条可以自动生成提到的其他词条的链接。 - 词条内容的变动均有操作记录,可查看每次编辑新增/删去的文字部分。 - 可通过目录系统分门别类整理词条和文件,目录可多层嵌套。 - 作者可自由控制允许编辑的范围,允许或拒绝用户/用户组编辑自己的全部或单个词条/目录,实现互不干扰的团体协作。 - 首页可显示最新更新词条,词条下方有评论区,可成为互动性强的社交平台。 - 可部署在windows或linux(docker) - 构建docker镜像无需梯子 查看主要使用案例: http://wiki.jowei19.com ## 架构 1. 后端基于[asp.netCore](https://dotnet.microsoft.com/zh-cn/apps/aspnet) 2. ORM使用[EntityFramework](https://learn.microsoft.com/zh-cn/ef/),支持sqlite和sqlserver 3. 前端使用[vue3](https://vuejs.org)+[ts](https://typescriptlang.org)+[vite](https://vite.dev) 4. 身份验证使用[JWT](https://jwt.io) 5. 图像处理使用[ImageSharp](https://sixlabors.com/products/imagesharp/) 6. excel和word文件导入导出使用[NPOI](https://www.nuget.org/packages/NPOI) 7. 资源文件可选择存储在自己的服务器或[阿里云OSS](https://www.aliyun.com/product/oss) ## 安装 ### 前提条件 1. [Visual Studio](https://visualstudio.microsoft.com/zh-hans/) 尽可能新版 + web应用开发负载 2. [node客户端](https://nodejs.org/en) 尽可能新版,并确认命令行中有npm命令可用 3. [git客户端](https://git-scm.com/downloads) 用来下载代码和记录改动 4. (可选)visual studio code用来编辑前端代码 5. 关于网页应用的基本常识 6. 对`IIS`(Windows)或`docker`+`nginx或apache`(Linux)基本用法的理解,知道怎么把域名指向服务器上特定服务 7. 一台有公网ip的服务器,一个域名 注意:visual studio和node客户端是装在自己电脑上的,除非你的服务器特别强,否则请不要往服务器上装 ### 步骤 1. 在命令行中输入`git clone 【本仓库链接】` 2. 进入前端文件夹(/FCloud3.AppFront/FCloud3Front),在命令行中输入 ``` npm config set registry https://registry.npmmirror.com(设置npm国内镜像) npm ci npm run build ``` 如果需要调试前端项目,见前端文件夹内的Readme文件 3. 双击项目根目录的sln文件,进入`Visual Studio` 4. 按appsettings.json中的注释调整配置文件 - (如果需要)更改数据库连接字符串,不作配置默认使用sqlite - (如果需要)阿里云OSS账号密码,不作配置默认使用服务器本地文件存储(Data/FileStorage文件夹) - **必须**更改总密码(MasterAdminCode) - **必须**更改jwt密钥(Jwt:SecretKey) 5. 点击`Visual Studio`顶部绿色启动按钮启动调试,检查是否正常 6. 在浏览器地址栏访问`调试域名/init/<配置文件内的总密码>/initDb`以初始化数据库 - 有点蠢...如果不是自己的电脑,记得删除浏览器历史记录,密码会留在里面 7. 准备服务器环境 - windows服务器:安装[.net9.0 hosting bundle](https://dotnet.microsoft.com/zh-cn/download/dotnet/9.0) (9.0内尽可能新版) - 在IIS中新建站点,并指向程序目录 - 为程序目录添加Users用户组完全控制授权(或者折腾iis权限,让程序能读写当前目录就行) - linux服务器:安装`docker`和`nginx或apache`(之类的反向代理) - 在`nginx或apache`新建站点,并指向`33442`/`33443`端口 8. 停止调试,导出程序文件 - windows服务器:找到`Visual Studio`右侧`解决方案管理器`最底部的`9.App/FCloud3.App`并右键点击它,点击弹出菜单的`发布(B)`即可选择位置导出,将导出的程序文件移动到服务器上(建议使用webDeploy,也可以直接远程桌面粘贴过去) - linux服务器:使用`docker build . -t fcloud3`命令取用项目根目录的Dockerfile构建本项目镜像 - 注:使用的镜像源均无需梯子可直连 9. 尝试启动并进入网站 - windows服务器:点击IIS中的站点启动按钮 - linux服务器:使用`docker run -d -v fcloud3data:/app/Data -p 33442:8080 -p 33443:8081 fcloud3`命令, - `-v fcloud3data:/app/Data`将会把`/app/Data`数据持久化保存在名为`fcloud3data`的volumn内。 - `-p 33442:8080`将会把容器内的8080端口映射到宿主机的`33442`端口 - 如果容器启动后立刻自己关了,检查json配置文件的json语法是否有误 10. 在浏览器地址栏访问`域名/init/<配置文件内的总密码>/initDb`以初始化数据库(即使调试时做过,这时也必须做) 11. 在浏览器地址栏访问`域名/init/<配置文件内的总密码>/initUser`以注册初始用户 - 用户名为`admin` - 密码为`fcloud987123` - 权限为超级管理员 - **立即登录和修改密码,不要保留原始密码** ## 注意 - 命令行启动时,请确保命令行工作目录(pwd)和程序文件目录(exe所在的目录)一致,否则可能会出现各种问题 - **部署或使用遇到问题欢迎提出issue或者PR** - 需要帮助请加qq群:798877093 Au的软件开发交流群 - `robots.txt`位于`/FCloud3.AppFront/FCloud3Front/public`中,默认情况下不允许任何爬虫,请按需自行修改 ## 主要缺陷 - 只能单实例部署(内部的“编辑互斥锁”为sqlite实现,不能跨实例互斥) - 没有代码生成器和布局设计器,二次开发较为麻烦 - 词条内容为动态加载,无法被搜索引擎抓取(完全没有SEO) ## 特别感谢 - 我父母和网友璃夜:帮我渡过困难时期 - 我父亲:给我提供了服务器和域名 - 微软:免费给我使用vs,vsc和.net工具链 - typeScript(也是微软家的):使我脱离js弱类型苦海 - 尤雨溪等:vue YYDS - 旋头,滨蜀:积极提供和传达了大量建议 - 我的用户们:鼓励我持续精进技艺 [高性能、MIT开源、跨平台:.net](https://dotnet.microsoft.com) [web开发必会前端框架:vue3](https://vuejs.org) ## 开源许可证 Apache-2.0