Commit Graph
100 Commits
Author SHA1 Message Date
root e4b7eec79f fix: move interactive prompt before unbuffer exec so read works 2026-06-24 12:39:50 +02:00
root f47dddfa56 docs: add NITRO_BRANCH and NITRO_SITE_URL to README config table 2026-06-24 12:36:41 +02:00
root 3ed476d374 feat: make site URL and branch configurable in update script 2026-06-24 12:33:34 +02:00
root 9ac93ef299 fix: set last_username_change default when creating users 2026-06-24 12:15:37 +02:00
root bc8f2111b5 Enable classmap-authoritative for faster autoloading 2026-06-20 15:38:10 +02:00
root 3aba997a96 Fix ThemeService: use prependLocation instead of addLocation so theme views take priority 2026-06-20 15:30:52 +02:00
root 043854cf3d Modernize: remove unused deps, replace qirolab/laravel-themer with custom ThemeService, drop doctrine/dbal
- Remove whichbrowser/parser, mockery/mockery, fruitcake/laravel-debugbar,
  itsgoingd/clockwork (all unused)
- Replace qirolab/laravel-themer (dev-master) with custom App\Services\ThemeService
  and App\Providers\ThemeServiceProvider
- Drop doctrine/dbal: rewrite all ->change() calls in 8 migrations to raw
  DB::statement('ALTER TABLE ... MODIFY ...') SQL
- RenameColumn() kept intact (works without dbal in Laravel 13)
- Fix 2026_04_04 migration: inverted column-exists logic corrected
- Clear bootstrap cache to remove stale references to removed packages
2026-06-20 15:25:49 +02:00
root 53f88b840a Modernize dependencies: replace abandoned packages, update versions
- Replace flowframe/laravel-trend with direct Eloquent DB queries
- Replace srmklive/paypal (abandoned) with new PayPalService using PayPal REST API v2 via Guzzle
- Remove old config/paypal.php, migrate to config('habbo.paypal.*')
- Update blade templates to use habbo.paypal config
- Bump npm packages to latest: @inertiajs/react, axios, esbuild, eslint, sass, tailwindcss, etc.
- Run composer update and yarn upgrade
2026-06-20 15:01:48 +02:00
root 7c72ed82b6 Revert TypeScript migration - keep JS/JSX 2026-06-18 17:06:54 +02:00
root e6d92f27b3 Migrate JavaScript to TypeScript with full type safety
- Rename all .js/.jsx files to .ts/.tsx across resources/js and theme dirs
- Add TypeScript 6.0 with strict mode, tsconfig.json
- Add type definitions for Inertia page props, Alpine.js, Turbolinks
- Update vite.config.js entries to .ts/.tsx extensions
- Update all Blade @vite() calls to match new .ts/.tsx entry points
- Add TypeScript ESLint config (replacing unused Vue plugin)
- Add @types/react, @types/react-dom, @types/lodash
- Add typecheck script and integrate into check pipeline
- Full tsc --noEmit, ESLint, and production build pass cleanly
2026-06-18 17:00:00 +02:00
root 4aa6f01779 fix: suppress MariaDB SSL warning for passwordless login 2026-06-16 20:16:56 +02:00
root 272dde72bc fix: auto-restart via PM2 fallback when systemd not found 2026-06-16 20:13:45 +02:00
root 53e69a656b refactor: add update tracking, dir checks, and safer cleanup 2026-06-16 20:09:56 +02:00
root ec153e2eda refactor: improvements to update script 2026-06-16 20:01:35 +02:00
root ae1bbba6e2 fix: checkout main before git pull in update script 2026-06-16 19:49:05 +02:00
root 3b3551d48c Fix permissions script to chown entire project directory and use chmod -R 2026-06-10 12:15:06 +02:00
root 5288dbd917 fix: remove static modifier from getTitle() to match non-static parent method 2026-06-08 21:22:31 +02:00
root 5d58e12fc7 Add Dutch translations for all missing translation keys and fix hardcoded English labels 2026-06-08 21:16:03 +02:00
root a7bd30fd34 Bump CDN versions: fancybox @4, fontawesome 7.2.0 2026-06-08 19:20:38 +02:00
root 430d502e2a Add CDN and staff config vars to .env.example files 2026-06-08 19:14:53 +02:00
root 0b6f14d5bf Fix remaining issues: CDN config, min_staff_rank defaults, blade views
- Centralize all CDN URLs in config('habbo.cdn.*') with env overrides
- Replace hardcoded CDN URLs in 12+ blade views (fancybox, sweetalert2,
  alpinejs, fontsource, fontawesome, html2canvas)
- Fix font-awesome 7.0.0 (non-existent) -> config with 6.7.0 default
- Centralize all hardcoded min_staff_rank defaults (3 and 7) to config
- Add MIN_STAFF_RANK and MIN_STAFF_RANK_LOGIN env variables
2026-06-08 19:11:28 +02:00
root b6fb43cba1 Fix remaining issues: pagination, throttle, i18n, config defaults, indexes
- Add pagination to ShopController (50 per page)
- Add throttle:3,10 to radio application store route
- Replace mixed Dutch/English labels in RadioWizardController (English only)
- Replace Dutch error messages in RadioController and RadioSetupController
- Add config('habbo.defaults.avatar_look') for SocialAuthController
- Remove hardcoded default stream URL from RadioSetupController
- Add database indexes for radio_listener_points.earned_at and bans.ip
2026-06-08 19:03:39 +02:00
root 4094f0fb14 Fix 40+ codebase issues: security, performance, duplication, dead code, and routes
HIGH:
- Add missing import RadioSongRequestFormRequest (fixes crash on POST)
- Add Purify XSS sanitization for article full_story
- Fix duplicate radio API routes (/api/radio vs /api/radio/v2)
- Add try-catch guards in InstallationController for missing records

MEDIUM:
- Fix N+1: eager load comments.user in ArticleController::show()
- Fix GuestbookController authorization logic
- Remove dead doSetup() method and duplicate route
- Extract shared HasRadioDefaults trait (remove code duplication)
- Use named routes in ForceStaffTwoFactorMiddleware
- Fix WebsiteHelpCenterTicket::isOpen() (no permission leak)
- Enable  on WebsiteHelpCenterTicket (matches schema)
- Replace WebsiteTeam::all()->pluck() with direct pluck()
- Replace CatalogPage::all()->pluck() with direct pluck()
- Replace WebsiteBadge::all() with direct pluck()
- Add throttle middleware to guestbook store, logo-generator, radio embed

LOW:
- Remove unused imports
- Remove dead /inertia-test route
- Consolidate cache keys in RadioController
2026-06-08 18:56:34 +02:00
root 6eeb85fcf2 Improvements: fix duplicate seeder, add missing seeders, remove redundant $with, add migration down(), optimize queries 2026-06-08 18:33:24 +02:00
root 9bb2e4246b Add migration to fix NULL last_username_change values and enforce default 0 2026-06-08 18:11:32 +02:00
root 4ba236249d Remove redundant UpdateLastUsernameChangeSeeder (column already defaults to 0) 2026-06-08 18:08:06 +02:00
root 392bb96ea0 Fix gamedata alias, add ads.txt, update script for radio/custom-themes/ads 2026-06-07 20:24:30 +02:00
root ff04270b41 fix: protect furni.asset.icon.url from being overwritten on update 2026-06-07 19:00:50 +02:00
root 482996429d fix: preserve catalog icon URLs after Nitro-V3 update
- Add Fase 3 to sync merged configs to dist/configuration/
- Add Fase 4 to force critical URLs (image.library.url, hof.furni.url, etc.)
- Add NITRO_* env vars with current server defaults
- Prevent git pull from overwriting icon URL config with example values
2026-06-07 18:37:44 +02:00
root 4a4110a478 chore: update manifest and Nitro update script 2026-06-07 17:10:26 +02:00
root 2f363eb106 Clean up old .jar files after emulator update keeping only the latest 2026-06-07 16:51:22 +02:00
root 618615a8b1 fix: preserve .example key order in merge-config, including nested objects 2026-06-07 16:45:05 +02:00
root ef559ce64b Auto-stash before git pull and sync .example configs to live files
- All git pull commands now auto-stash local changes first
- .example configs are now merged with live files in Nitro's
  public/configuration directory to keep them 100% complete
- Removed unused getTargetName function from merge-config.cjs
2026-06-07 16:36:15 +02:00
root 1db80e76fe chore: clean up repo structure and polish docs
- Rewrite .gitignore in English with proper patterns for build artifacts, storage files, and IDE files
- Remove tracked build assets (hash-based) and storage files from git
- Update LICENSE copyright to 2026 Remco (Epicnabbo)
- Fix clone URLs in README (remove placeholder gitea-server)
- Sync docs/INSTALL.md with README installation guide
2026-06-06 20:12:08 +02:00
root 51e3876ed9 fix: correct file permissions for www-data access 2026-06-06 19:40:48 +02:00
root 483342602f chore: update composer and npm dependencies to latest versions
- composer.json: 19 package version bumps (laravel/framework ^13.11,
  filament/filament ^5.6, pestphp/pest ^4.7, phpunit ^12.5, etc.)
- package.json: 22 package version bumps (eslint ^10, flowbite 4.0,
  vite ^8.0, tailwindcss 4.3, sass 1.100, etc.)
2026-06-06 19:24:34 +02:00
root ccbd200464 feat: auto-merge all Nitro config .example files with missing key detection 2026-06-06 16:38:48 +02:00
root 834908df9f fix: always sync Gamedata configs from latest .example files 2026-06-06 16:30:24 +02:00
root 434f58d5aa fix: use systemctl cat instead of list-units for reliable service detection 2026-06-06 16:24:44 +02:00
root 4c085ac7eb Move .env.install to docs/INSTALL.md as Markdown 2026-06-06 14:35:22 +02:00
root bbefdce290 Add safety note to update-NitroV3 tutorial 2026-06-06 14:31:44 +02:00
root 5b8d1cda7d Move CHANGELOG to docs/ and add English update-NitroV3 tutorial with troubleshooting 2026-06-06 14:29:54 +02:00
root ea2160132a Nitro V3 update: CLI-only (Linux), settings via .env
- Moved Nitro V3 update from web UI (Commandocentrum) to CLI-only
- Removed configure paths form and runUpdateNitrov3() from admin panel
- update-Nitrov3.sh now loads .env automatically from its directory
- Added all NITRO_* env vars to .env.example.linux and .env
- Removed configurable paths from database (replaced by .env)
- Updated README and CHANGELOG
2026-06-06 14:11:50 +02:00
root 2ac1264b93 Fix: SQL import exclude backup dir, replace process substitution with pipe, error handling in loop 2026-06-05 23:20:12 +02:00
root 0f0de43da5 Fix: mariadb-dump || echo instead of hard fail on missing tables 2026-06-05 23:17:03 +02:00
root 1ee60405ce Cleanup: clean_node_modules helper, yarn cache clean || true, remove duplicate blocks 2026-06-05 23:13:15 +02:00
root 78704190bc Fix: rm -rf node_modules fallback to sudo on permission denied + chown safety 2026-06-05 23:09:01 +02:00
root f109b1f764 Fix: check if jar exists after mvn package, clear error message 2026-06-05 23:03:47 +02:00
root af2f76d9db Fix: mariadb-dump --skip-lock-tables --force for missing tables 2026-06-05 23:01:59 +02:00
root 6f11cae3ca Fix: unbound variable _UNBUFFERED () 2026-06-05 23:00:45 +02:00
root 16b2f5bbb7 Fix: unbuffer for realtime output, set -euo pipefail + trap for 0 errors guarantee 2026-06-05 22:59:24 +02:00
root 6e437be6d1 Improve update-Nitrov3.sh: realtime output, strict yarn install, perms fix, extra validation 2026-06-05 22:56:20 +02:00
root 4f4f40ac99 Fix radio Filament: actions() must receive array not Closure 2026-06-04 21:04:28 +02:00
root be6a578f5e Fix radio Filament: recordActions->actions, toolbarActions->headerActions, EmbedCode statePath 2026-06-04 20:59:40 +02:00
root 4d8d22f40a Security: admin radio routes now require auth+admin.security, CORS default no longer wildcard, README security section 2026-06-04 20:46:07 +02:00
root 8a324b3082 README: security note on sudoers, restricted chown path, install polish 2026-06-04 20:36:20 +02:00
root f7fe86efeb Refactor HotelApiController into 6 focused controllers + FurniEditorController Eloquent migration 2026-06-04 20:32:15 +02:00
root 36887244e6 Fix config/app.php missing semicolon (caused 500) 2026-06-04 20:22:51 +02:00
root 9b5c655c68 High priority fixes: PayPal env(), RadioApiKey Bearer-only, User restrict, SettingsService TTL, PHPStan config, + fix 7 broke points (forceFill) 2026-06-04 20:17:45 +02:00
root b2bb1811d0 Medium priority fixes: CORS from env, shared HasRadioSettings trait, lazy RconService, validated() fixes, LogoGenerator hardening, DB indexes, user profile consistency, radio rank N+1 fix 2026-06-04 20:05:36 +02:00
root 4b6872e5e0 Low priority fixes: debug comments, Fortify cleanup, badge cost setting, profile query merge, User model fixes, VPN constructor cleanup, PayPal POST, PII removal, Dutch→English translations, duplicate rank check, CHANGELOG 2026-06-04 19:57:01 +02:00
root 66cbd46f37 Add 'What's New in V3' section to README 2026-06-04 19:41:48 +02:00
root 889cec60e9 Clean README in Arcturus style: badges, tables, quick start, clear sections 2026-06-04 19:37:10 +02:00
root 8ce3fcca85 Bulletproof installation: Redis, build-essential, DB user creation, PHP tuning, SSL, firewall, verification 2026-06-04 19:34:06 +02:00
root b8a15c8412 Compact and correct README: PHP 8.5, php8.5-fpm, Ubuntu 26.04, remove changelogs 2026-06-04 19:31:54 +02:00
root 82d00ad11d Rename .env.example to .env.install with step-by-step guide, update README 2026-06-04 19:30:24 +02:00
root c468040792 Add .env.example.linux and .env.example.windows, remove .env.standard, update README 2026-06-04 19:27:53 +02:00
root 4487084614 Update README: PHP 8.5, Ubuntu 26.04 2026-06-04 19:24:51 +02:00
root e96e2a0fd3 Remove all XAMPP support from CMS (files, references, configs) 2026-06-04 19:22:01 +02:00
root 4378144f45 Remove server IP from README, use placeholder 2026-06-04 19:19:02 +02:00
root 59188a5f2c XAMPP warning in English 2026-06-04 19:18:19 +02:00
root ff364992ca Add XAMPP security warning: not supported, extremely unsafe for production 2026-06-04 19:17:18 +02:00
root 2997486662 Rewrite README: document Nitro V3 update system, sudoers config, Commandocentrum; remove outdated content 2026-06-04 19:14:40 +02:00
root f76f30e88f Nitro V3 Update: configureerbare paths via Commandocentrum + sudoers fix 2026-06-04 18:56:08 +02:00
root 1f04979ffe Remove all auto-update functionality (commands, services, widgets, blades, translations) 2026-06-03 22:54:39 +02:00
root 1f9af5279a fix: add DEFAULT 0 to last_username_change column, seeder, fillable, and factory 2026-05-27 20:23:06 +02:00
root 7814176358 docs: update changelog (May 27, 2026) 2026-05-27 17:18:56 +02:00
root 56616d084c fix: add Dashboard/Homepage translations and OPcache troubleshooting to README 2026-05-27 17:16:47 +02:00
root e34300a8a1 Add /client/* to CORS paths 2026-05-26 19:15:50 +02:00
root e2422e9a16 Add CORS_ALLOWED_ORIGINS to .env.example 2026-05-26 19:02:58 +02:00
root a65db47c85 Add changelog to README 2026-05-26 17:25:01 +02:00
root af2c79ac59 Restore PHP 8.5 constraint (system runs PHP 8.5.6) 2026-05-26 17:09:30 +02:00
root e754858c84 Remove nonexistent PHP 8.5 constraint, restrict CORS allowed_headers 2026-05-26 17:08:31 +02:00
root 769abddeca Disable Boost browser_logs_watcher by default, remove old browser.log 2026-05-26 17:05:17 +02:00
root c0077a6039 Fix session same_site to use env, fix Article model import, remove unused traits 2026-05-26 16:59:49 +02:00
root d8ea6d214f Fix robots.txt to block crawlers from admin/cms paths 2026-05-26 16:54:11 +02:00
root 55b5aab458 Security fixes: remove dangerous public scripts, add .htaccess hardening, disable log-viewer by default, remove root index.php 2026-05-26 16:52:09 +02:00
root 93e6f6a273 Add (bool) type casts to all boolean env() calls across config files 2026-05-26 16:40:52 +02:00
root f5c21e36f1 Add (bool) type casts to all boolean env() calls in config/habbo.php 2026-05-26 16:37:29 +02:00
root b50de1f7ce Fix debug banner condition to use config('app.debug') directly instead of habbo config 2026-05-26 16:33:41 +02:00
root 45848cb4c5 Remove auto-recovery mechanism that caused race conditions with view cache 2026-05-26 16:05:58 +02:00
root 4aa574e75e docs: rewrite README in English with Linux/Windows setup guides and add auto-install scripts 2026-05-25 15:25:46 +02:00
root 943d5bfc38 feat: install and configure Inertia.js with React
- Install inertia-laravel, @inertiajs/react, react, @vitejs/plugin-react
- Add HandleInertiaRequests middleware registered in web group
- Create Inertia root template (resources/views/app.blade.php)
- Add React entry point and page components (resources/js/)
- Add Inertia demo route (/inertia-test)
- HomeController reverted to Blade (index page stays original)
- Remove inertia-test2 test route
2026-05-25 15:15:14 +02:00
root 4ce68720bb fix: disable APP_DEBUG in production, fix .htaccess structure, add .gitignore cleanup
- Set APP_DEBUG=false in .env to prevent stack trace leakage
- Use strict comparison (===) for MD5 password migration check
- Fix duplicate rewrite rules and orphaned closing tag in .htaccess
- Remove leftover test files (cookies.txt, ci_test.txt, test-registration.php)
- Remove duplicate package-lock.json (using yarn only)
- Update .gitignore for above files
2026-05-25 14:30:37 +02:00
root 4e07aa3580 fix: register anonymous component path for filament-components view cache 2026-05-24 19:29:48 +02:00
root bf3b474ee1 feat: complete configuration and database upgrade to native mariadb driver 2026-05-24 18:43:57 +02:00
root eea81a3e9a Fix middleware class collision (RadioApiKey -> alias), add missing setup.do and setup.reset routes, fix SSE int type cast 2026-05-24 14:20:22 +02:00
root 261a5e63c6 Fix SSE listeners type cast, replace Blade tab component with Alpine.js tabs in DjModeration, use wire:confirm instead of onclick 2026-05-24 14:15:44 +02:00
root 0c6c558a59 Add radio embed widget, SSE real-time, song history, moderation panel, and Auto DJ
- Embed widget: standalone iframe player with dark/light/transparent themes, copy-paste embed code admin page
- Real-time SSE: streaming now-playing/listeners/dj events, replaces polling in radio-player and embed
- Song history: auto-records song changes to radio_song_plays table, Filament resource to view
- DJ moderation: unified panel for shouts approval, song request queue, DJ applications
- Auto DJ: playlist management with round-robin playback when no DJ is live
- Refactored radio-player Alpine component to use EventSource API with auto-reconnect
2026-05-24 14:07:32 +02:00
root 5476dce882 Add multi-step radio wizard with Shoutcast/Icecast/AzureCast support and multi-language translations
- New 5-step RadioWizardController with session-based wizard flow
- Enhanced RadioStreamService with Shoutcast/Icecast/ AzureCast auto-detection
- Connection test functionality for stream, now-playing, and listeners
- Wizard views for all 5 steps with step indicator navigation
- All 21 language files updated with wizard translation keys (NL/EN + placeholders)
- Wizard link added to existing radio setup page
- Routes registered under /admin/radio/wizard/*
2026-05-24 13:12:57 +02:00