inova/nova-admin
Composer 安装命令:
composer require inova/nova-admin
包简介
多站点复用的通用后台底座:广告、站点设置、ads.txt、robots.txt、后台中文、登录与默认管理员(Laravel 12 + Filament 5)。
README 文档
README
多站点复用的通用后台底座(Laravel 12 + Filament 5):广告管理、站点设置、静态页面、ads.txt、robots.txt、后台中文、账号密码登录、默认管理员、后台 Logo 跳前台。
一、新建项目从零接入
1. 创建 Laravel 项目并安装本包
composer create-project laravel/laravel:^12.0 mysite
cd mysite
composer require inova/nova-admin
不指定版本号时,Composer 会安装 Packagist 上兼容当前项目的最新稳定版本。
nova-admin 已依赖 Filament 5,不需要再单独执行
composer require filament/filament。
Laravel 12 新项目默认使用 SQLite;改用 MySQL 等数据库时,先正确配置
.env。
2. 一键安装
php artisan nova-admin:install
该命令会自动创建并接入默认的 admin Panel、发布配置、执行包内及项目待运行迁移、
创建默认管理员、填充示例广告、初始化 robots.txt 和站点设置,发布 Filament / Livewire
静态资源,并创建 storage 软链。
无需单独安装 Filament Panel,也无需手动修改 AdminPanelProvider.php。
安装命令还会将后台生成的 public/robots.txt、public/ads.txt 和
public/vendor/livewire 加入项目 .gitignore。项目已初始化 Git 时,会同时取消对 Laravel 默认
public/robots.txt 的跟踪。
3. 启动验证
php artisan serve
访问 http://127.0.0.1:8000/admin → 用 nova / nova 登录,即可看到:
广告管理、站点设置、静态页面、Ads.txt、Robots.txt、系统日志六个后台入口。
上线前请立即在后台修改默认管理员密码。
二、接入后你立即拥有
| 能力 | 入口 |
|---|---|
| 广告管理(一位多条、按创建顺序输出、启用) | 后台「广告管理」 |
| 站点设置(基础/SEO/媒体/品牌) | 后台「站点设置」 |
| 静态页面(关于/隐私/条款等富文本落地页,可增删改) | 后台「静态页面」 |
| ads.txt 编辑 | 后台「Ads.txt」+ GET /ads.txt |
| robots.txt 编辑(含默认模板) | 后台「Robots.txt」+ GET /robots.txt |
| sitemap.xml(静态条目 + 项目注册动态来源,带缓存) | GET /sitemap.xml |
| 系统日志(查看尾部 / 下载 / 删除,兼容单文件与按天分割) | 后台「系统日志」 |
| 账号密码登录 | /admin/login(账号字段可配) |
| 后台中文 | 自动 |
| 默认管理员 | nova / nova |
| Logo 点击跳前台 | 后台左上角品牌 |
三、前台使用
{{-- 放在 <head> 内,输出该广告位的 head_code --}} <x-ad-head position="global_head" /> {{-- 放在页面展示位置,输出 body_code;无生效广告时不产生 DOM --}} <x-ad-body position="home_banner1" />
site_config('site_name'); // 读站点配置 // Facade use Inova\NovaAdmin\Facades\SiteConfig; SiteConfig::get('site_name', 'default'); SiteConfig::set('site_name', 'My Site'); // string SiteConfig::set('ads_enabled', true, 'boolean'); // 按 type 存取
静态页面
后台「静态页面」管理关于、隐私政策、服务条款等富文本落地页。安装时按
nova-admin.static_pages.presets 预置一批页面,后台可继续增删改。
前台按 slug 读取(仅返回已启用页面,未找到或已停用返回 null):
@php($page = static_page('privacy-policy')) @if ($page) <h1>{{ $page->title }}</h1> <div class="prose">{!! $page->content !!}</div> @endif
对应路由可在项目自行定义,例如:
// routes/web.php Route::get('/page/{slug}', function (string $slug) { abort_unless($page = static_page($slug), 404); return view('pages.show', compact('page')); })->name('static-page');
content为富文本 HTML,输出用{!! !!}(内容由后台管理员录入,可信)。
Sitemap
包自带 GET /sitemap.xml(robots.txt 默认模板已指向它)。静态条目在 config
nova-admin.sitemap.urls 配置;动态内容在项目 AppServiceProvider::boot 注册:
use Inova\NovaAdmin\Facades\Sitemap; Sitemap::register(fn () => Article::published()->get()->map(fn ($a) => [ 'loc' => route('articles.show', $a), 'lastmod' => $a->updated_at, // 可选,DateTime 或字符串 'priority' => '0.7', // 可选;changefreq 同理 ]));
输出带缓存(sitemap.cache_ttl,默认 1800 秒),内容更新后可执行
php artisan nova-admin:clear-sitemap-cache 立即刷新;项目自带 sitemap 时置
sitemap.enabled = false 关闭包路由。
四、命令
php artisan nova-admin:install # 接入 Panel、建表并初始化 php artisan nova-admin:create-admin [--force] # 创建/重置默认管理员 php artisan ad:seed [--off] # 填充测试广告(先清空)/ 禁用广告 php artisan nova-admin:clear-sitemap-cache # 清 sitemap 缓存
五、配置
发布后编辑 config/nova-admin.php,常用项:
'panel' => ['id' => 'admin'], 'ad_positions' => [ /* 自定义广告位枚举 */ ], 'navigation' => ['group' => '站点设置', 'sort' => 90], 'admin' => ['default_name' => 'nova', 'login_field' => 'name'], 'admin_brand' => ['logo_link_to_front' => true, 'front_url' => '/', 'new_tab' => true], 'ads_txt' => ['enabled' => true, 'empty_behavior' => 'delete'], 'robots_txt' => ['enabled' => true, 'sitemap_url' => null], 'static_pages' => [ 'enabled' => true, 'presets' => [ /* slug => 标题,安装时预置;置 enabled=false 关闭整个功能 */ ], ],
六、新项目如何扩展后台功能
- 加纯业务功能(如 Game / Destination):项目正常写 Filament Resource/Page,与本包并列注册,互不干扰。
- 给包的表加字段:项目写补充 ALTER 迁移加列,在项目自己的 Resource/Service 中使用扩展后的模型。
- 简单业务配置:直接走
site_configs键值(SiteConfig::set),无需建表。 - 定制包页面视图:发布
vendor:publish --tag=nova-admin-views后修改 Blade。
生产部署注意(必读,否则后台登录会挂)
本包的后台(含登录页)基于 Filament / Livewire。某些面板生成的 Nginx 配置会用静态
location 拦截所有 .js 请求,导致 Livewire 的 /livewire/livewire.js 路由 404 ——
表现为后台登录页点击无反应、所有 Livewire 交互失效。
nova-admin:install 会自动把前端资源发布为物理文件:
php artisan filament:assets # Filament 静态资源 → public/ php artisan livewire:publish --assets # Livewire JS → public/vendor/livewire/
升级 Filament / Livewire 后需重新执行以上命令,并确保 public/vendor/livewire 归属 web
用户(如 chown -R www:www public/vendor/livewire)。
站点设置的 Favicon / Logo 上传存储在 storage/app/public/site/,需要 storage 软链
(nova-admin:install 已自动创建;手动执行 php artisan storage:link),
并保证 storage/ 归属 web 用户、软链 public/storage 随站点一起部署。
若生产启用了 opcache.validate_timestamps=0,更新后还需 reload php-fpm 重置 OPcache。
升级
composer update inova/nova-admin php artisan migrate
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-24