你好,InnoCMS:一位 Laravel 社区老员的开源建站之旅

大家好,我是 Laravel 社区论坛的一位老员,对,不是元老,只是我的ID比较小:smile:。在这个由代码编织的社区海洋里,我像许多潜水员一样,默默观察着水面下的精彩世界,偶尔浮出水面,呼吸一下新鲜空气。从业十几年,从 PHP 到 Java,从 Ruby 到 Python,再到 Golang,我几乎尝遍了后端编程语言及开发框架的“满汉全席”。但今天,我带着一颗激动的心和一份小小的自豪,回到了 PHP 和 Laravel 的怀抱,向大家介绍我们的新宝贝 —— InnoCMS,一款基于 Laravel 11 开发,开源免费的企业建站系统。

你好,InnoCMS:一位 Laravel 社区老员的开源建站之旅

始于需求,终于创新

创业之路,总是充满了各种需求和挑战。作为一个程序员和创业者,我深知拥有一个专业且功能齐全的官网对于企业的重要性。在短视频、社交网络、APP、小程序盛行的今天,信息传播的速度和方式不断演变,但无论时代如何变迁,官方网站始终是企业最权威、最全面、最深入的品牌宣传平台与信息展示平台
在寻找合适的建站系统时,我遇到了和许多人一样的问题:要么太复杂,要么受限于各种授权协议。于是,我决定自己动手,丰衣足食。经过半个月的“闭关修炼”,InnoCMS 已经在 GitHub 和 Gitee 同步开源上线。原本只是解决自己的问题,没想到在朋友圈推广后,竟然帮到了很多朋友。这让我深刻体会到:自己用的爽还不够爽,大家都用的爽才是真的爽。

功能不多,简单易用

InnoCMS 的诞生,起初是为了解决我们自己公司官网和产品官网快速上线的燃眉之急。功能虽不多,却足够精炼,每一项都直击要害。但随着时间的推移,我们收到了用户对于自定义功能和页面的需求,这激发了我们进一步创新的灵感。于是,我们引入了插件机制,让 InnoCMS 的功能性和灵活性得到了质的飞跃。

另外,说到创新,InnoCMS 名字中的 inno 正是取自于 innovative 的创新之意。 虽然我们可能没有做出惊天动地的创新,但我们相信,无论做什么产品或者项目,在产品细节上不断改进,量变终会引起质变。正如周鸿祎所说,微创新也是创新,每一次微小的进步,都是向创新迈出的坚实一步。:smile:

我们的核心功能经过精心打磨,包括:

  • 文章管理
    :一个直观的系统,让你轻松撰写、编辑、发布新闻和博客,帮助企业信息更广泛地传播。

你好,InnoCMS:一位 Laravel 社区老员的开源建站之旅

  • 分类系统
    :支持文章无限级分类,通过合理的分类设置,轻松找到所需内容。
  • 单页展示
    :提供个性化的独立页面设计,展现企业特色,吸引潜在客户的目光。
  • 标签系统
    :利用标签来增加内容的灵活性,简化管理和检索过程,提高效率。
  • 核心 view 发布
    :通过artisan publish 发布模板到项目后进行自定义开发,让后续的系统升级变得快速而简单。
  • 后台 blade 编辑
    :为 Laravel 开发者提供了后台模板编辑功能,方便直接在后台进行模板的修改和数据调用。

你好,InnoCMS:一位 Laravel 社区老员的开源建站之旅

  • 针对SEO
    :允许对分类、文章、单页分别设置 TDK 和 slug,加上全站 HTML 后缀静态化,提升网站对搜索引擎的友好度。
  • 多语言支持
    :分类、文章、单页均支持多语言,让网站能够更好地服务于全球用户。
  • 插件式开发
    :采用开放的插件架构,便于根据需求添加新功能,保持系统的可扩展性和灵活性。

你好,InnoCMS:一位 Laravel 社区老员的开源建站之旅

开源精神,共同成长

InnoCMS 致力于提供一个简洁、高效的开源内容管理系统,帮助企业和个人轻松搭建官方网站。我们鼓励开发者加入我们的社区,共同优化和完善系统,让 InnoCMS 成为更多企业建站的优先选择。InnoCMS 的目标不宏达,不做大而全,能让官网开发更简单,解决一部分人的痛点即可。

InnoCMS 采用 OSL 3.0 开源协议,确保了真正的 100% 开源,您可以免费商用,且去除底部版权信息无需额外授权。基于国内开源现实,重要的事情说三遍:smile:

  • 100% 开源,无需授权即可去除底部版权信息!
  • 100% 开源,无需授权即可去除底部版权信息!
  • 100% 开源,无需授权即可去除底部版权信息!

👉 点击下面链接,开启你的官网建设之旅!

本作品采用《CC 协议》,转载必须注明作者和本文链接
专注开源电商系统开发
本帖由 MArtian 于 2周前 加精
空山
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 43

可以,页面挺好看

3周前 评论
空山 (楼主) 3周前

简洁实用的,试用下

3周前 评论
空山 (楼主) 3周前

网站不错,简单大方 :+1: :+1:

3周前 评论
空山 (楼主) 3周前

挺好的:+1:

3周前 评论
空山 (楼主) 3周前

加油,加星
希望多加几套好看的网页模板,有不同的风格。。。

3周前 评论
空山 (楼主) 3周前
MissYou-Coding

站长回到了 PHP 和 Laravel 的怀抱。 应该算自主创业了吧

3周前 评论
空山 (楼主) 3周前
slowlyo

laravel 的 cms 等好久了 :+1:

3周前 评论
空山 (楼主) 3周前

激情永在!!!致敬

3周前 评论
JaguarJack

支持下。可以简化下安装,可以通过 artisan 或者 webui

3周前 评论
空山 (楼主) 3周前

:+1:致敬,我也有一个modstart 欢迎交流

2周前 评论
yangweijie

编辑器 支持word wps 复制粘贴图片 内容 就领先全球了

2周前 评论
空山 (楼主) 2周前
yangweijie (作者) 2周前

写的挺好的,感谢楼主的无私贡献。

    public function images(UploadImageRequest $request): JsonResponse
    {
        $image    = $request->file('image');
        $type     = $request->file('type', 'common');
        $filePath = $image->store("/{$type}", 'public');
        $realPath = "/storage/$filePath";

        $data = [
            'url'   => asset($realPath),
            'value' => $realPath,
        ];

        return json_success('上传成功', $data);
    }

这里是value感觉没必要生成个/storage/,一般储存的时候就储存后面一截,使用的时候判断是不是完全url,完全url就使用,非完全url就 Storage::disk("public")->url( $filePath)就行了。

我想作者的本意是为了插入富文本,直接返回可以使用的相对地址,我感觉这种情况还是插入完整url合适一些,要搬迁储存系统批量替换域名就行了,当然考虑大多数企业站规模不大,也没有单独配置储存的必要,这种做法在此处应该也是合适的。

不过联想到如果是一个大型站点,我觉得富文本还是插入完全url合适,非富文本就储存不带/storeage/的路径,欢迎大家聊聊自己的方案

2周前 评论
空山 (楼主) 2周前

楼主方便告知你这个panel的前端是用的哪个开源项目吗 还是自己写的

2周前 评论
空山 (楼主) 2周前
空山 (楼主) 2周前
唐章明 (作者) 2周前

这个风格不错,自己一直想搞个newdede,哈哈,laravel安装太麻烦了,一般小白搞不定,dede的安装就很轻松,可惜dede现在开始搞钓鱼执法,唉

2周前 评论
空山 (楼主) 2周前
wongvio (作者) 2周前
mengdodo

都用上laravel了,能叫轻量级?

1周前 评论
空山 (楼主) 1周前

使用 mix 是因为 vite 不合适吗?我注意到 front 和 panel 都是需要打包的,用到了 mix 而非现在默认的 vite,而我自己也折腾了一个 CMS 系统,苦于搞不定同时打包前后台的前端资源。

// 这是你们的 webpack.mix.js,非常简单
mix.sass('innopacks/front/resources/css/bootstrap/bootstrap.scss', 'public/build/css/bootstrap.css');
mix.sass('innopacks/front/resources/css/app.scss', 'public/build/css/app.css');
mix.js('innopacks/front/resources/js/app.js', 'public/build/js/app.js');

// panel
mix.sass('innopacks/panel/resources/css/bootstrap/bootstrap.scss', 'public/build/panel/css/bootstrap.css');
mix.sass('innopacks/panel/resources/css/app.scss', 'public/build/panel/css/app.css');
mix.js('innopacks/panel/resources/js/app.js', 'public/build/panel/js/app.js');
1周前 评论
空山 (楼主) 3天前
happyqian_ah

不错,支持一下。

4天前 评论

有个疑问,管理后台直接在线编辑blade模板,改错了都撤不回来了

4天前 评论
空山 (楼主) 3天前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!