root cbe189fd96 refactor: extract action classes, add Blade components, reduce Commandocentrum
- Create EmulatorControlAction and NitroControlAction classes
- Extract business logic from Commandocentrum controller methods
- Add Blade components for status cards, diagnostics, and summary cards
- Replace shell_exec with file_get_contents in config reading
- Remove duplicate methods and unused code
- Commandocentrum reduced from 2033 to 1780 lines
2026-05-19 20:57:31 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00
2026-05-09 17:32:17 +02:00

AtomCMS Remco Epicnabbo Edition

Atom CMS

The Ultimate Retro Hotel CMS

Modern • Fast • Self-Repairing

Discord Laravel PHP Code Quality


Quick Start

# Interactive mode (asks for confirmation before each step)
php artisan atom:check --fix

# Auto mode (fixes everything automatically without asking)
php artisan atom:check --auto

# Fix gamedata symlinks for optimal client performance
php artisan atom:fix-gamedata-symlinks

🎯 Features

📻 Radio Station

  • DJ applications & rank system
  • Live DJ sessions with schedule/rooster
  • Song requests & voting
  • Shoutbox
  • Listener points & leaderboard
  • Contests & giveaways
  • Radio banners & history

🛒 Shop

  • Product catalog with categories
  • Virtual currency purchases
  • Voucher/promo codes
  • PayPal integration
  • Order history

👥 Community

  • Articles with comments, reactions & tags
  • Photo gallery
  • Leaderboard
  • Teams & team applications
  • Staff page & staff applications
  • Rare values tracker
  • Badge draw/lottery system

🎮 Hotel Client

  • Nitro (HTML5) client support
  • Flash client support
  • FindRetros integration
  • VPN/proxy checker

👤 User System

  • Public profiles with guestbook
  • Two-Factor Authentication (2FA)
  • Referral system with rewards
  • Account & password settings
  • Session logs

🎫 Help Center

  • Support ticket system with replies & status management
  • Website rules
  • FAQ with categories

🎨 Themes

  • Atom — Default theme
  • Dusk — Dark theme

🔧 Filament Admin Panel

  • User & ban management
  • Radio management (applications, schedules, ranks, shouts, history, banners)
  • Shop & order management with charts
  • Article & tag management
  • Emulator settings, texts & catalog editors
  • Chatlog viewer (rooms & private messages)
  • Word filters & moderation tools
  • Housekeeping permissions
  • Website navigation & settings
  • Camera/photo management

🌐 API Endpoints

  • GET /api/user/{username} — Fetch user data
  • GET /api/online-users — Online users list
  • GET /api/online-count — Online user count
  • GET /api/radio/current-dj — Current DJ info
  • GET /api/radio/now-playing — Current song
  • GET /api/radio/listeners — Listener count
  • GET /api/radio/shouts — Recent shouts
  • GET /api/radio/points — Points data
  • GET /api/radio/points/leaderboard — Points leaderboard

🚀 Master Repair Tool

The atom:check command performs over 100 deep system checks and offers to fix them automatically.

Diagnostic Checks

Section What it Checks
Environment .env, APP_KEY, Debug mode, Composer security
Database Tables, columns, migrations, seeders, settings, radio, admin
PHP Stack Extensions, PHP.ini, config cache, session
Web Server Apache/Nginx/IIS config, SSL
System Permissions, firewall ports
Assets Frontend, Redis, Cron, Queue, Supervisor, Vite
HTTP Errors 400, 401, 403, 404, 419, 429, 500, 502, 503, 504

Auto-Fix Steps

Step Action
1 Environment (.env, APP_KEY)
2 Clear all caches
3 Fix permissions
4 Run migrations
5 Run seeders
6 Fix storage (symlink, directories)
6b Fix Radio tables
7 Fix Gamedata symlinks
8 Create admin user
9 Web server config (.htaccess, etc.)
10 PHP config & extensions
11 Build assets (npm)
12 Fix HTTP errors

Platform Support

Auto-detects: Linux, Windows IIS, XAMPP, WAMP, Apache, Nginx


📥 Installation

# 1. Clone
git clone https://github.com/your-repo/atomcms.git
cd atomcms

# 2. Install dependencies
composer install
npm install

# 3. Run the repair tool
php artisan atom:check --fix

🛠️ Usage

# Check only (no changes)
php artisan atom:check

# Interactive fix (asks before each step)
php artisan atom:check --fix

# Automatic fix (no questions)
php artisan atom:check --auto

# Force platform detection
php artisan atom:check --platform=nginx

# Dutch language
php artisan atom:check --fix --lang=nl

# Fix gamedata symlinks for bundled assets
php artisan atom:fix-gamedata-symlinks

# Preview what symlinks would be created (dry-run)
php artisan atom:fix-gamedata-symlinks --dry-run

Performance Optimization

The atom:fix-gamedata-symlinks command creates symlinks in the Gamedata directory to point to optimized bundled assets. This significantly improves load times for the game client.

Symlink Target Purpose
effect bundled/effect Avatar effects
furniture bundled/furniture Furniture assets
generic bundled/generic Generic assets
pet bundled/pet Pet assets
figure bundled/figure Avatar figures
generic_custom bundled/generic Custom generic assets

The following optimizations are already configured:

  • sendfile on - Kernel-level file serving
  • open_file_cache - File descriptor caching
  • gzip - Automatic compression for JSON/JS/CSS

🧑‍💻 Developer Tools

Yarn Scripts

# Build
yarn build              # Bouw alle thema's
yarn build:atom        # Bouw alleen atom theme
yarn build:dusk        # Bouw alleen dusk theme
yarn build:all         # Bouw beide thema's

# Development
yarn dev               # Start dev server
yarn dev:atom         # Dev server atom theme

# Code Quality
yarn lint              # Check JS/Vue
yarn lint:fix         # Fix JS/Vue
yarn lint:css         # Check CSS
yarn lint:css:fix     # Fix CSS
yarn lint:all         # Check alles
yarn lint:fix:all     # Fix alles

yarn format           # Formatteer alles
yarn format:check     # Check formatting

# Check
yarn check            # Volledige check
yarn check:php       # Check PHP syntax
yarn check:security  # Check beveiliging
yarn check:deps     # Check verouderde packages

# Cache
yarn clean            # Verwijder cache
yarn rebuild          # Clean + install + build

PHP Commands

# Auto-fix code style
php artisan atom:fix-code

# Fix gamedata symlinks (run after installing client assets)
php artisan atom:fix-gamedata-symlinks

# Static analysis (PHPStan Level 9)
./vendor/bin/phpstan analyse

# Build frontend assets
yarn build:atom
yarn build:dusk

# Development mode
yarn dev:atom
yarn dev:dusk

# Format code
yarn format

Performance Optimalisaties

Deze CMS is volledig geoptimaliseerd:

Optimalisatie Beschrijving
Vite 8 Snelste build tool
esbuild Snellere minificatie
Better chunking Optimalere code splitting
Gzip + Brotli Compressie (~70% kleiner)
Resource hints DNS prefetch, preconnect, preload
HTTP/2 Snellere netwerk requests
Console verwijderd Kleinere JS bestanden
Caching Vite cache + optimizedeps

📦 Tech Stack

  • Backend: Laravel 13
  • Frontend: React 19 + Alpine.js
  • Build: Vite 8
  • CSS: TailwindCSS 4
  • Linting: ESLint + Stylelint + Prettier

🤝 Credits

  • Remco (Epicnabbo) - Core Maintainer, System Architecture
  • Kasja - Design & Themes
  • Kani - RCON & API
  • Atom Community - Testing & Feedback
Made with ❤️ for the Retro Community
S
Description
No description provided
Readme MIT 126 MiB
Languages
PHP 58.5%
Blade 30.2%
JavaScript 7.6%
CSS 3%
Shell 0.6%
Other 0.1%