feat: initialize Infra Manager with React, Tailwind CSS, and Inertia.js
- Added main application entry point (app.jsx) and bootstrap file for React setup. - Created Wiki index page (Index.jsx) for documentation and file management. - Implemented utility functions for formatting and status handling in utils.js. - Set up Blade template (app.blade.php) for Inertia.js integration. - Defined API routes for metrics and terminal access in api.php. - Established console commands for scheduled tasks in console.php. - Created web routes for various application features including authentication, hypervisors, containers, cloud accounts, security, backups, and wiki management in web.php. - Developed setup scripts for Windows (setup.ps1) and Linux (setup.sh) environments. - Configured Tailwind CSS for styling with custom themes and animations in tailwind.config.js. - Set up Vite for asset bundling and development server in vite.config.js.
This commit is contained in:
12
config/activitylog.php
Normal file
12
config/activitylog.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'enabled' => env('ACTIVITY_LOGGER_ENABLED', true),
|
||||
'delete_records_older_than_days' => 365,
|
||||
'default_log_name' => 'default',
|
||||
'default_auth_driver' => null,
|
||||
'subject_returns_soft_deleted_models' => false,
|
||||
'activity_model' => \Spatie\Activitylog\Models\Activity::class,
|
||||
'table_name' => env('ACTIVITY_LOG_TABLE', 'activity_log'),
|
||||
'database_connection' => env('ACTIVITY_LOG_DB_CONNECTION'),
|
||||
];
|
||||
45
config/app.php
Normal file
45
config/app.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'name' => env('APP_NAME', 'Infra Manager'),
|
||||
'version' => env('APP_VERSION', '1.0.0'),
|
||||
'env' => env('APP_ENV', 'production'),
|
||||
'debug' => (bool) env('APP_DEBUG', false),
|
||||
'url' => env('APP_URL', 'http://localhost'),
|
||||
'timezone' => 'UTC',
|
||||
'locale' => 'en',
|
||||
'fallback_locale' => 'en',
|
||||
'faker_locale' => 'en_US',
|
||||
'key' => env('APP_KEY'),
|
||||
'cipher' => 'AES-256-CBC',
|
||||
'maintenance' => ['driver' => 'file'],
|
||||
'providers' => [
|
||||
Illuminate\Auth\AuthServiceProvider::class,
|
||||
Illuminate\Broadcasting\BroadcastServiceProvider::class,
|
||||
Illuminate\Bus\BusServiceProvider::class,
|
||||
Illuminate\Cache\CacheServiceProvider::class,
|
||||
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
|
||||
Illuminate\Cookie\CookieServiceProvider::class,
|
||||
Illuminate\Database\DatabaseServiceProvider::class,
|
||||
Illuminate\Encryption\EncryptionServiceProvider::class,
|
||||
Illuminate\Filesystem\FilesystemServiceProvider::class,
|
||||
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
|
||||
Illuminate\Hashing\HashServiceProvider::class,
|
||||
Illuminate\Mail\MailServiceProvider::class,
|
||||
Illuminate\Notifications\NotificationServiceProvider::class,
|
||||
Illuminate\Pagination\PaginationServiceProvider::class,
|
||||
Illuminate\Pipeline\PipelineServiceProvider::class,
|
||||
Illuminate\Queue\QueueServiceProvider::class,
|
||||
Illuminate\Redis\RedisServiceProvider::class,
|
||||
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
|
||||
Illuminate\Session\SessionServiceProvider::class,
|
||||
Illuminate\Translation\TranslationServiceProvider::class,
|
||||
Illuminate\Validation\ValidationServiceProvider::class,
|
||||
Illuminate\View\ViewServiceProvider::class,
|
||||
Tightenco\Ziggy\ZiggyServiceProvider::class,
|
||||
Spatie\Activitylog\ActivitylogServiceProvider::class,
|
||||
],
|
||||
'aliases' => Illuminate\Support\Facades\Facade::defaultAliases()->merge([
|
||||
'Route' => Illuminate\Support\Facades\Route::class,
|
||||
])->toArray(),
|
||||
];
|
||||
20
config/auth.php
Normal file
20
config/auth.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'defaults' => ['guard' => 'web', 'passwords' => 'users'],
|
||||
|
||||
'guards' => [
|
||||
'web' => ['driver' => 'session', 'provider' => 'users'],
|
||||
'api' => ['driver' => 'sanctum', 'provider' => 'users'],
|
||||
],
|
||||
|
||||
'providers' => [
|
||||
'users' => ['driver' => 'eloquent', 'model' => App\Models\User::class],
|
||||
],
|
||||
|
||||
'passwords' => [
|
||||
'users' => ['provider' => 'users', 'table' => 'password_reset_tokens', 'expire' => 60, 'throttle' => 60],
|
||||
],
|
||||
|
||||
'password_timeout' => 10800,
|
||||
];
|
||||
11
config/cache.php
Normal file
11
config/cache.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'default' => env('CACHE_STORE', 'redis'),
|
||||
'stores' => [
|
||||
'redis' => ['driver' => 'redis', 'connection' => 'cache', 'lock_connection' => 'default'],
|
||||
'file' => ['driver' => 'file', 'path' => storage_path('framework/cache/data'), 'lock_path' => storage_path('framework/cache/data')],
|
||||
'array' => ['driver' => 'array', 'serialize' => false],
|
||||
],
|
||||
'prefix' => env('CACHE_PREFIX', 'infra_cache_'),
|
||||
];
|
||||
47
config/database.php
Normal file
47
config/database.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'default' => env('DB_CONNECTION', 'sqlite'),
|
||||
|
||||
'connections' => [
|
||||
'sqlite' => [
|
||||
'driver' => 'sqlite',
|
||||
'url' => env('DB_URL'),
|
||||
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
||||
'prefix' => '',
|
||||
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
||||
'busy_timeout' => null,
|
||||
'journal_mode' => null,
|
||||
'synchronous' => null,
|
||||
],
|
||||
|
||||
'mysql' => [
|
||||
'driver' => 'mysql',
|
||||
'url' => env('DB_URL'),
|
||||
'host' => env('DB_HOST', '127.0.0.1'),
|
||||
'port' => env('DB_PORT', '3306'),
|
||||
'database' => env('DB_DATABASE', 'infra_manager'),
|
||||
'username' => env('DB_USERNAME', 'root'),
|
||||
'password' => env('DB_PASSWORD', ''),
|
||||
'unix_socket' => env('DB_SOCKET', ''),
|
||||
'charset' => env('DB_CHARSET', 'utf8mb4'),
|
||||
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => true,
|
||||
'strict' => true,
|
||||
'engine' => null,
|
||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
||||
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
||||
]) : [],
|
||||
],
|
||||
],
|
||||
|
||||
'migrations' => ['table' => 'migrations', 'update_date_on_publish' => true],
|
||||
|
||||
'redis' => [
|
||||
'client' => env('REDIS_CLIENT', 'phpredis'),
|
||||
'options' => ['cluster' => env('REDIS_CLUSTER', 'redis'), 'prefix' => env('REDIS_PREFIX', 'infra_')],
|
||||
'default' => ['url' => env('REDIS_URL'), 'host' => env('REDIS_HOST', '127.0.0.1'), 'username' => env('REDIS_USERNAME'), 'password' => env('REDIS_PASSWORD'), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_DB', '0')],
|
||||
'cache' => ['url' => env('REDIS_URL'), 'host' => env('REDIS_HOST', '127.0.0.1'), 'username' => env('REDIS_USERNAME'), 'password' => env('REDIS_PASSWORD'), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_CACHE_DB', '1')],
|
||||
],
|
||||
];
|
||||
36
config/ldap.php
Normal file
36
config/ldap.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'default' => env('LDAP_CONNECTION', 'default'),
|
||||
|
||||
'connections' => [
|
||||
'default' => [
|
||||
'hosts' => [env('LDAP_HOST', '127.0.0.1')],
|
||||
'username' => env('LDAP_USERNAME', ''),
|
||||
'password' => env('LDAP_PASSWORD', ''),
|
||||
'port' => (int) env('LDAP_PORT', 389),
|
||||
'base_dn' => env('LDAP_BASE_DN', ''),
|
||||
'timeout' => 5,
|
||||
'use_ssl' => env('LDAP_SSL', false),
|
||||
'use_tls' => env('LDAP_TLS', false),
|
||||
'use_sasl' => env('LDAP_SASL', false),
|
||||
'version' => 3,
|
||||
'follow_referrals' => false,
|
||||
],
|
||||
],
|
||||
|
||||
'logging' => [
|
||||
'enabled' => env('LDAP_LOGGING', env('APP_DEBUG', false)),
|
||||
'channel' => env('LOG_CHANNEL', 'stack'),
|
||||
],
|
||||
|
||||
'cache' => [
|
||||
'enabled' => env('LDAP_CACHE', false),
|
||||
'driver' => env('LDAP_CACHE_DRIVER', 'file'),
|
||||
'lifetime' => env('LDAP_CACHE_LIFETIME', 3600),
|
||||
],
|
||||
|
||||
'auth' => [
|
||||
'enabled' => env('LDAP_AUTH_ENABLED', false),
|
||||
],
|
||||
];
|
||||
33
config/permission.php
Normal file
33
config/permission.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'models' => [
|
||||
'permission' => Spatie\Permission\Models\Permission::class,
|
||||
'role' => Spatie\Permission\Models\Role::class,
|
||||
],
|
||||
'table_names' => [
|
||||
'roles' => 'roles',
|
||||
'permissions' => 'permissions',
|
||||
'model_has_permissions' => 'model_has_permissions',
|
||||
'model_has_roles' => 'model_has_roles',
|
||||
'role_has_permissions' => 'role_has_permissions',
|
||||
],
|
||||
'column_names' => [
|
||||
'role_pivot_key' => null,
|
||||
'permission_pivot_key' => null,
|
||||
'model_morph_key' => 'model_id',
|
||||
'team_foreign_key' => 'team_id',
|
||||
],
|
||||
'register_permission_check_method' => true,
|
||||
'register_octane_reset_listener' => false,
|
||||
'teams' => false,
|
||||
'use_passport_client_credentials' => false,
|
||||
'display_permission_in_exception' => false,
|
||||
'display_role_in_exception' => false,
|
||||
'enable_wildcard_permission' => false,
|
||||
'cache' => [
|
||||
'expiration_time' => \DateInterval::createFromDateString('24 hours'),
|
||||
'key' => 'spatie.permission.cache',
|
||||
'store' => 'default',
|
||||
],
|
||||
];
|
||||
12
config/queue.php
Normal file
12
config/queue.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'default' => env('QUEUE_CONNECTION', 'redis'),
|
||||
'connections' => [
|
||||
'sync' => ['driver' => 'sync'],
|
||||
'database' => ['driver' => 'database', 'connection' => env('DB_QUEUE_CONNECTION'), 'table' => env('DB_QUEUE_TABLE', 'jobs'), 'queue' => env('DB_QUEUE', 'default'), 'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90), 'after_commit' => false],
|
||||
'redis' => ['driver' => 'redis', 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), 'queue' => env('REDIS_QUEUE', 'default'), 'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90), 'block_for' => null, 'after_commit' => false],
|
||||
],
|
||||
'batching' => ['database' => env('DB_CONNECTION', 'sqlite'), 'table' => 'job_batches'],
|
||||
'failed' => ['driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), 'database' => env('DB_CONNECTION', 'sqlite'), 'table' => 'failed_jobs'],
|
||||
];
|
||||
20
config/session.php
Normal file
20
config/session.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'driver' => env('SESSION_DRIVER', 'redis'),
|
||||
'lifetime' => env('SESSION_LIFETIME', 480),
|
||||
'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false),
|
||||
'encrypt' => env('SESSION_ENCRYPT', false),
|
||||
'files' => storage_path('framework/sessions'),
|
||||
'connection' => env('SESSION_CONNECTION'),
|
||||
'table' => env('SESSION_TABLE', 'sessions'),
|
||||
'store' => env('SESSION_STORE'),
|
||||
'lottery' => [2, 100],
|
||||
'cookie' => env('SESSION_COOKIE', 'infra_session'),
|
||||
'path' => env('SESSION_PATH', '/'),
|
||||
'domain' => env('SESSION_DOMAIN'),
|
||||
'secure' => env('SESSION_SECURE_COOKIE', false),
|
||||
'http_only' => env('SESSION_HTTP_ONLY', true),
|
||||
'same_site' => env('SESSION_SAME_SITE', 'lax'),
|
||||
'partitioned' => env('SESSION_PARTITIONED_COOKIE', false),
|
||||
];
|
||||
Reference in New Issue
Block a user