Add admin console with login, dashboard, content/config/plugin/user management
File-based admin panel accessible at /admin.php with: - Session-based auth with bcrypt hashing and brute-force protection - Dashboard with site statistics and quick actions - Content manager: browse, create, edit, delete files - Config editor with JSON validation - Plugin overview with status indicators - User management: add, remove, change passwords - CSRF protection on all forms, path traversal prevention - Updated README (NL/EN) and guides with admin documentation
This commit is contained in:
@@ -1,57 +1,17 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'name' => 'CodePress Admin Console',
|
||||
'name' => 'CodePress Admin',
|
||||
'version' => '1.0.0',
|
||||
'debug' => $_ENV['APP_DEBUG'] ?? false,
|
||||
'timezone' => 'Europe/Amsterdam',
|
||||
|
||||
// Security
|
||||
'security' => [
|
||||
'jwt_secret' => $_ENV['JWT_SECRET'] ?? throw new \RuntimeException('JWT_SECRET environment variable must be set'),
|
||||
'jwt_expiration' => 3600, // 1 hour
|
||||
'session_timeout' => 1800, // 30 minutes
|
||||
'max_login_attempts' => 5,
|
||||
'lockout_duration' => 900, // 15 minutes
|
||||
],
|
||||
|
||||
// Database
|
||||
'database' => [
|
||||
'type' => 'sqlite',
|
||||
'path' => __DIR__ . '/../database/admin.db',
|
||||
'backup_path' => __DIR__ . '/../storage/backups/',
|
||||
],
|
||||
|
||||
// CodePress Integration
|
||||
'codepress' => [
|
||||
'path' => __DIR__ . '/../../',
|
||||
'content_dir' => __DIR__ . '/../../public/content/',
|
||||
'templates_dir' => __DIR__ . '/../../engine/templates/',
|
||||
'plugins_dir' => __DIR__ . '/../../plugins/',
|
||||
],
|
||||
|
||||
// Email
|
||||
'mail' => [
|
||||
'host' => $_ENV['MAIL_HOST'] ?? 'localhost',
|
||||
'port' => $_ENV['MAIL_PORT'] ?? 587,
|
||||
'username' => $_ENV['MAIL_USERNAME'] ?? '',
|
||||
'password' => $_ENV['MAIL_PASSWORD'] ?? '',
|
||||
'from' => $_ENV['MAIL_FROM'] ?? 'admin@codepress.local',
|
||||
'from_name' => 'CodePress Admin',
|
||||
],
|
||||
|
||||
// Storage
|
||||
'storage' => [
|
||||
'uploads_path' => __DIR__ . '/../storage/uploads/',
|
||||
'logs_path' => __DIR__ . '/../storage/logs/',
|
||||
'cache_path' => __DIR__ . '/../storage/cache/',
|
||||
],
|
||||
|
||||
// UI Settings
|
||||
'ui' => [
|
||||
'theme' => 'bootstrap',
|
||||
'items_per_page' => 20,
|
||||
'date_format' => 'd-m-Y H:i',
|
||||
'timezone' => 'Europe/Amsterdam',
|
||||
],
|
||||
];
|
||||
// Paths
|
||||
'admin_root' => __DIR__ . '/../',
|
||||
'codepress_root' => __DIR__ . '/../../',
|
||||
'content_dir' => __DIR__ . '/../../content/',
|
||||
'config_json' => __DIR__ . '/../../config.json',
|
||||
'plugins_dir' => __DIR__ . '/../../plugins/',
|
||||
'admin_config' => __DIR__ . '/admin.json',
|
||||
'log_file' => __DIR__ . '/../storage/logs/admin.log',
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user