# AtomCMS Remco Epicnabbo Edition
Atom CMS ### The Ultimate Retro Hotel CMS **Modern • Fast • Self-Repairing** [![Discord](https://img.shields.io/badge/Discord-Join%20Server-5865F2?style=flat&logo=discord&logoColor=white)](https://discord.gg/pP6HyZedAj) [![Laravel](https://img.shields.io/badge/Laravel-13.x-FF2D20?style=flat&logo=laravel&logoColor=white)](https://laravel.com) [![PHP](https://img.shields.io/badge/PHP-8.1+-777BB4?style=flat&logo=php&logoColor=white)](https://php.net) [![Code Quality](https://img.shields.io/badge/Code%20Quality-A+-green?style=flat)](https://github.com/atom-retros/atomcms)
--- ## ⚡ Quick Start ```bash # 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 ```bash # 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 ```bash # 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 ### Gamedata Symlinks 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 | ### Recommended Nginx Optimizations 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 ```bash # Build yarn build # Build all themes yarn build:atom # Build atom theme only yarn build:dusk # Build dusk theme only yarn build:all # Build both themes # 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 everything yarn lint:fix:all # Fix everything yarn format # Format everything yarn format:check # Check formatting # Check yarn check # Full check yarn check:php # Check PHP syntax yarn check:security # Check security yarn check:deps # Check outdated packages # Cache yarn clean # Clear cache yarn rebuild # Clean + install + build ``` ### PHP Commands ```bash # 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 3) ./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 Optimizations This CMS is fully optimized: | Optimization | Description | | ---------------------- | --------------------------------- | | **Vite 8** | Fastest build tool | | **esbuild** | Faster minification | | **Better chunking** | Optimal code splitting | | **Gzip + Brotli** | Compression (~70% smaller) | | **Resource hints** | DNS prefetch, preconnect, preload | | **HTTP/2** | Faster network requests | | **Console removed** | Smaller JS bundles | | **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