8c584efab710f9fbb3758551bde9cb93b8f6d944
AtomCMS Remco Epicnabbo Edition
⚡ 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 dataGET /api/online-users— Online users listGET /api/online-count— Online user countGET /api/radio/current-dj— Current DJ infoGET /api/radio/now-playing— Current songGET /api/radio/listeners— Listener countGET /api/radio/shouts— Recent shoutsGET /api/radio/points— Points dataGET /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
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 servingopen_file_cache- File descriptor cachinggzip- Automatic compression for JSON/JS/CSS
🧑💻 Developer Tools
Yarn Scripts
# 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
# 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
Languages
PHP
58.5%
Blade
30.2%
JavaScript
7.6%
CSS
3%
Shell
0.6%
Other
0.1%
