PHPackages                             dedermus/open-admin-core - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. dedermus/open-admin-core

ActiveLibrary[Admin Panels](/categories/admin)

dedermus/open-admin-core
========================

Ядро админки для Laravel 13

v2.0.10(1y ago)5568412MITPHPPHP ^8.2

Since Apr 2Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/dedermus/open-admin-core)[ Packagist](https://packagist.org/packages/dedermus/open-admin-core)[ Docs](https://github.com/dedermus/open-admin-core.git)[ RSS](/packages/dedermus-open-admin-core/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (8)Versions (13)Used By (12)

 [ ![open-admin](https://camo.githubusercontent.com/346b9bad5f80dd5d09a3bccbbf196d6b337dbc95162541b19ce63543ba9076b0/68747470733a2f2f6f70656e2d61646d696e2e6f72672f6766782f6c6f676f2e706e67) ](https://github.com/dedermus/open-admin-core)

⛵`open-admin-core` - это конструктор административного интерфейса для Laravel, который поможет вам создать CRUD-функции всего с помощью нескольких строк кода.

Данный конструктор является форком проекта  и адаптирован для Bootstrap 5.3.

 [Документация](https://github.com/dedermus/open-admin-core) | [Расширения](https://github.com/dedermus/open-admin-core)

 [ ![Packagist](https://camo.githubusercontent.com/bf41f0955ca4923bb8defe356705b632089ad9a503d8219a7e97f08db700c264/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f64656465726d75732f6f70656e2d61646d696e2d636f72652e7376673f6d61784167653d3235393230303026267374796c653d666c61742d737175617265) ](https://packagist.org/packages/dedermus/open-admin-core) [ ![Total Downloads](https://camo.githubusercontent.com/c0b1bfd5dc5dd5634d34cf1a026fd6d7e502feeb238f6ad0d8e6707f781f9d87/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f64656465726d75732f6f70656e2d61646d696e2d636f72652e7376673f7374796c653d666c61742d737175617265) ](https://packagist.org/packages/dedermus/open-admin-core) [ ![Awesome Laravel](https://camo.githubusercontent.com/6cc6459afcc114423c0412c1b4ceb73abf547c737f57edc9cb88f9512c8bab93/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f417765736f6d652d4c61726176656c2d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265) ](https://gitlab.com/dedermus/open-admin-core)

---

Возможности
-----------

[](#возможности)

- ✅ **Bootstrap 5.3** — современный адаптивный интерфейс
- ✅ **CRUD конструктор** — создание админки в несколько строк кода
- ✅ **Управление ролями и правами** — гибкая система RBAC
- ✅ **Восстановление пароля** — полный цикл сброса пароля через email
- ✅ **AJAX формы** — без перезагрузки страницы, с прелоадерами
- ✅ **Безопасность** — throttle, логирование, принудительный выход из всех устройств
- ✅ **Email уведомления** — с информацией об IP, времени, браузере и ОС
- ✅ **Журнал операций** — логирование действий администраторов
- ✅ **Расширения** — медиа-менеджер, редактор, конструктор страниц и другие

---

Требования
----------

[](#требования)

- PHP ^8.2
- Laravel &gt;= 12.0
- Fileinfo PHP Extension
- База данных: MySQL 8.0+ или PostgreSQL 12+

---

Установка
---------

[](#установка)

### 1. Создание нового проекта Laravel

[](#1-создание-нового-проекта-laravel)

```
composer create-project laravel/laravel example-app
cd example-app
```

### 2. Настройка приложения

[](#2-настройка-приложения)

Отредактируйте файл `config/app.php`:

```
'url' => env('APP_URL', null),
'asset_url' => env('ASSET_URL', null),
'timezone' => 'Europe/Moscow',
'locale' => 'ru',
```

Создайте символическую ссылку для публичных файлов:

```
php artisan storage:link
```

### 3. Настройка базы данных

[](#3-настройка-базы-данных)

**PostgreSQL (рекомендуется)**В файле `.env`:

```
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=your_database
DB_USERNAME=postgres
DB_PASSWORD=postgres
```

**Для оптимальной работы установите расширение pg\_trgm:**

```
CREATE EXTENSION IF NOT EXISTS pg_trgm;
```

Проверить наличие расширения:

```
SELECT extname FROM pg_extension;
```

**MySQL**

В файле `.env`:

```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=root
DB_PASSWORD=root
```

Для MySQL 8.0+ рекомендуется использовать `utf8mb4_unicode_ci`:

```
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
```

### 4. Установка пакета

[](#4-установка-пакета)

```
composer require dedermus/open-admin-core
```

### 5. Публикация ресурсов

[](#5-публикация-ресурсов)

```
php artisan vendor:publish --provider="OpenAdminCore\Admin\AdminServiceProvider"
```

Эта команда опубликует:

- Конфигурацию в `config/admin.php`
- Языковые файлы в `resources/lang`
- Миграции в `database/migrations`
- Ассеты в `public/vendor/open-admin`

### 6. Настройка дисков для загрузки файлов

[](#6-настройка-дисков-для-загрузки-файлов)

В файле `config/filesystems.php` добавьте или обновите диски:

```
'disks' => [
    // ... другие диски

    'uploads' => [
        'driver' => 'local',
        'root' => public_path('uploads'),
        'url' => env('APP_URL').'/uploads',
        'visibility' => 'public',
        'throw' => false,
        'permissions' => [
            'file' => [
                'public' => 0644,
                'private' => 0600,
            ],
            'dir' => [
                'public' => 0755,
                'private' => 0700,
            ],
        ],
    ],

    'admin' => [
        'driver' => 'local',
        'root' => public_path('uploads'),
        'url' => env('APP_URL').'/uploads',
        'visibility' => 'public',
        'throw' => false,
        'permissions' => [
            'file' => [
                'public' => 0644,
                'private' => 0600,
            ],
            'dir' => [
                'public' => 0755,
                'private' => 0700,
            ],
        ],
    ],
],
```

### 7. Настройка HTTPS (опционально)

[](#7-настройка-https-опционально)

В файле `config/admin.php`:

```
'https' => env('ADMIN_HTTPS', true),
```

### 8. Завершение установки

[](#8-завершение-установки)

```
php artisan admin:install
```

Эта команда выполнит:

- Запуск всех миграций (`php artisan migrate`)
- Заполнение таблиц начальными данными (пользователь admin, роли, разрешения)
- Создание директории `app/Admin` со следующей структурой:

```
app/Admin/
├── Controllers/
│   ├── HomeController.php
│   ├── AuthController.php
│   └── ExampleController.php
├── bootstrap.php
└── routes.php

```

### 9. Доступ к админ-панели

[](#9-доступ-к-админ-панели)

Откройте в браузере: `http://localhost/admin`

**Учетные данные по умолчанию:**

- Логин: `admin`
- Пароль: `admin`

|⚠️ Важно: После первого входа обязательно смените пароль администратора!

### Восстановление пароля

[](#восстановление-пароля)

Пакет поддерживает функционал восстановления пароля через email. Для его работы необходимо:

1. **Настроить отправку email** в файле `.env`:

```
MAIL_MAILER=smtp
MAIL_HOST=smtp.mail.ru
MAIL_PORT=465
MAIL_USERNAME=your-email@example.com
MAIL_PASSWORD=your-password
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=your-email@example.com
MAIL_FROM_NAME="Admin Panel"
```

2. Убедиться, что у пользователей заполнен email. Если email отсутствует, пользователь не сможет восстановить пароль.
3. Настроить параметры восстановления в `config/admin.php`:

```
'auth' => [
    'password_reset' => [
    'enabled' => true,           // Включить/отключить функционал
    'expire' => 60,              // Время жизни ссылки (минут)
    'throttle' => 3,             // Максимум попыток
    'throttle_decay_minutes' => 60, // Время блокировки после превышения
    ],
],
```

4. Настроить логирование в config/logging.php:

```
'channels' => [
    'password_reset' => [
    'driver' => 'daily',
    'path' => storage_path('logs/password-reset.log'),
    'level' => 'info',
    'days' => 30,
    ],
],
```

**Процесс восстановления**

1. Пользователь нажимает "Забыли пароль?" на странице входа
2. Вводит логин или email
3. На почту приходит ссылка для сброса пароля
4. Пользователь переходит по ссылке и устанавливает новый пароль
5. **После успешного сброса:**

    - Происходит принудительный выход из всех устройств
    - На почту приходит уведомление с информацией:

        - Время изменения пароля
        - IP-адрес
        - Браузер, ОС и тип устройства
6. Пользователь перенаправляется на страницу входа

**Безопасность**

✅ Ограничение количества попыток (throttle)

✅ Токены сброса имеют ограниченное время жизни

✅ Общие сообщения об успехе (не сообщаем, существует ли пользователь)

✅ Логирование всех попыток в отдельный канал

✅ Принудительный выход из всех устройств после сброса

✅ Email-уведомление с информацией об IP и устройстве

✅ AJAX-отправка форм с защитой от двойной отправки

5. Очистка устаревших токенов:

```
php artisan admin:clear-resets
```

Рекомендуется добавить эту команду в расписание (cron):

```
// app/Console/Kernel.php
protected function schedule(Schedule $schedule)
{
$schedule->command('admin:clear-resets')->daily();
}
```

**Процесс восстановления пароля**

1. Пользователь нажимает "Забыли пароль?" на странице входа
2. Вводит логин или email
3. Если учетная запись существует и имеет email, отправляется ссылка на сброс
4. Пользователь переходит по ссылке и устанавливает новый пароль
5. После успешного сброса выполняется перенаправление на страницу входа

**Безопасность**

- Ограничение количества попыток (throttle)
- Токены сброса имеют ограниченное время жизни
- Общие сообщения об успехе (не сообщаем, существует ли пользователь)
- Логирование всех попыток в отдельный канал
- Пароль должен соответствовать требованиям безопасности (минимум 8 символов)

---

### Конфигурация

[](#конфигурация)

Основные настройки находятся в файле `config/admin.php`:

**Параметр****Описание****Значение по умолчанию**`directory`Директория админки`app/Admin``route.prefix`Префикс маршрутов`admin``database.users_table`Таблица пользователей`admin_users``database.roles_table`Таблица ролей`admin_roles``database.permissions_table`Таблица разрешений`admin_permissions``database.menu_table`Таблица меню`admin_menu``database.operation_log_table`Журнал операций`admin_operation_log`---

### Команды админ-панели

[](#команды-админ-панели)

Пакет предоставляет набор Artisan-команд для управления админ-панелью:

**Команда****Описание**`php artisan admin`Список всех доступных команд`php artisan admin:install`Установка админ-панели`php artisan admin:uninstall`Удаление админ-панели`php artisan admin:create-user`Создание нового пользователя`php artisan admin:reset-password`Сброс пароля пользователя`php artisan admin:make {model}`Генерация контроллера для модели`php artisan admin:form {name}`Генерация виджета формы`php artisan admin:action {name}`Генерация действия`php artisan admin:permissions`Генерация разрешений на основе таблиц`php artisan admin:generate-menu`Генерация меню на основе маршрутов`php artisan admin:menu`Вывод структуры меню`php artisan admin:config`Сравнение конфигурации с оригиналом`php artisan admin:minify`Минификация CSS и JS ассетов`php artisan admin:extend {extension}`Создание расширения`php artisan admin:import {extension}`Импорт расширения`php artisan admin:dev-links`Создание символических ссылок для разработки`php artisan admin:publish`Публикация ресурсов---

### Примеры использования команд

[](#примеры-использования-команд)

**Создание контроллера для модели Post:**

```
php artisan admin:make "App\Models\Post" --title="Статьи"
```

После выполнения команды будет создан контроллер `app/Admin/Controllers/PostController.php` с готовыми методами для CRUD операций.

**Добавление маршрута в** `app/Admin/routes.php`:

```
$router->resource('posts', PostController::class);
```

**Генерация разрешений для таблицы** `posts`:

```
php artisan admin:permissions --tables=posts
```

---

### Обновление

[](#обновление)

Обновление до новой версии пакета:

```
composer update dedermus/open-admin-core
php artisan vendor:publish --tag=open-admin-assets --force
php artisan view:clear
php artisan config:clear
```

---

### Расширения

[](#расширения)

Пакет поддерживает расширения, адаптированные для Bootstrap 5.3:

**Расширение****Описание**helpersИнструменты для разработкиmedia-managerУправление файламиconfigМенеджер конфигурацииgrid-sortableСортируемые таблицыCkeditorВизуальный редакторapi-testerТестирование APIschedulingУправление задачамиphpinfoИнформация о PHPlog-viewerПросмотр логовpage-designerКонструктор страницreporterОтчеты об ошибкахredis-managerУправление Redis**Установка расширения**

```
composer require dedermus/helpers
php artisan admin:import helpers
```

### Локализация

[](#локализация)

**№****Код****Язык****RTL**1enАнглийский❌2ruРусский❌3ukУкраинский❌4deНемецкий❌5esИспанский❌6frФранцузский❌7zh\_CNКитайский (упрощённый)❌8zh\_TWКитайский (традиционный)❌9plПольский❌10itИтальянский❌11jaЯпонский❌12ptПортугальский❌13pt-BRПортугальский (Бразилия)❌14trТурецкий❌15nlНидерландский❌16idИндонезийский❌17msМалайский❌18koКорейский❌19heИврит✅20faПерсидский (фарси)✅21bnБенгальский❌22azАзербайджанский❌23arАрабский✅### Поддержка RTL (справа налево)

[](#поддержка-rtl-справа-налево)

Для поддержки языков с направлением письма справа налево:

1. Откройте файл `vendor/dedermus/open-admin-core/src/Traits/HasAssets.php`
2. В массиве `$baseCss` замените:

    - `bootstrap.min.css` → `bootstrap.rtl.min.css`
    - `AdminLTE.min.css` → `AdminLTE.rtl.min.css`

---

### Устранение неполадок

[](#устранение-неполадок)

#### Проблема: `Class "OpenAdminCore\Admin\AdminServiceProvider" not found`

[](#проблема-class-openadmincoreadminadminserviceprovider-not-found)

**Решение:** Запустите composer dump-autoload:

```
composer dump-autoload
```

#### Проблема: Ошибка при миграции с PostgreSQL

[](#проблема-ошибка-при-миграции-с-postgresql)

**Решение:** Убедитесь, что установлено расширение pg\_trgm:

```
CREATE EXTENSION IF NOT EXISTS pg_trgm;
```

#### Проблема: Ошибка 404 при доступе к админке

[](#проблема-ошибка-404-при-доступе-к-админке)

**Решение:** Проверьте файл app/Admin/routes.php и убедитесь, что префикс маршрутов в config/admin.php совпадает с URL.

---

### Лицензия

[](#лицензия)

`open-admin-core` распространяется под лицензией The MIT License (MIT).

###  Health Score

44

—

FairBetter than 91% of packages

Maintenance64

Regular maintenance activity

Popularity22

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Recently: every ~10 days

Total

12

Last Release

564d ago

Major Versions

v0.2.0-alpha → v1.0.12024-06-04

v1.0.1 → v2.0.12024-08-28

PHP version history (3 changes)v0.2.0-alphaPHP ~7.3|~8.0

v2.0.1PHP ^8.1

v2.0.2PHP ^8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/18327515?v=4)[Aleksandr Lomovtsev](/maintainers/dedermus)[@dedermus](https://github.com/dedermus)

---

Top Contributors

[![henzel](https://avatars.githubusercontent.com/u/6071449?v=4)](https://github.com/henzel "henzel (2 commits)")[![dedermus](https://avatars.githubusercontent.com/u/18327515?v=4)](https://github.com/dedermus "dedermus (1 commits)")

---

Tags

laravelgridopenformadminfreeopen-admin

### Embed Badge

![Health badge](/badges/dedermus-open-admin-core/health.svg)

```
[![Health](https://phpackages.com/badges/dedermus-open-admin-core/health.svg)](https://phpackages.com/packages/dedermus-open-admin-core)
```

###  Alternatives

[open-admin-org/open-admin

open-admin. Open-source Laravel Admin panel. No pro or paid package, free &amp; open. Based on laravel-admin, with special thanks to z-song

28670.1k22](/packages/open-admin-org-open-admin)[encore/laravel-admin

laravel admin

11.2k3.1M447](/packages/encore-laravel-admin)[dcat-plus/laravel-admin

dcat-plus admin

1433.7k9](/packages/dcat-plus-laravel-admin)[printnow/laravel-admin

Dcat admin 永久分叉版 / 支持 Laravel 10-13, PHP 版本限制 &gt;= 8.1（支持 PHP 8.5）

472.4k](/packages/printnow-laravel-admin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
