- Automatically finds and installs npm dependencies (package.json) - Automatically finds and installs composer dependencies (composer.json) - Excludes nested dependencies inside node_modules and vendor - Provides colored output and installation summary - Usage: ./install-dependencies.sh
Habland
Habland is a comprehensive multi-emulator development environment for Habbo Hotel retro projects. It serves as a unified research and development workspace containing multiple server implementations, modern client interfaces, and centralized management tools.
[!TIP] > Just want to get started? Check out the Quick Start Guide to get the environment running in minutes.
📚 Core Documentation
- QUICKSTART.md: The fastest way to get servers and clients running.
- DOCKER_SETUP.md: Detailed Docker environment configuration and troubleshooting.
- DOCKER_DEPLOYMENT_SUMMARY.md: Deployment architecture and container details.
- TESTING_SUMMARY.md: Information on testing protocols and status.
🏗️ Project Structure
This repository is organized into distinct modules, each handling a specific part of the retro ecosystem:
🎮 Emulators & Servers
| Directory | Description |
|---|---|
retro/ |
A modern, full-stack environment. See Retro Environment Details below. |
kepler/ |
Kepler emulator setup. See Kepler Environment Details below. |
havana/ |
Havana emulator setup. See Havana Environment Details below. |
roseau/ |
Roseau server implementation. |
🌟 Retro Environment Details
The retro/ directory contains the most advanced and complete implementation.
👉 Read the Deep Dive Documentation
🌌 Kepler Environment Details
The kepler/ directory contains the v14 (2007 era) Shockwave emulator.
👉 Read the Deep Dive Documentation
🌴 Havana Environment Details
The havana/ directory hosts the Havana retro project (v31+).
👉 Read the Deep Dive Documentation
🏛️ Roseau Environment Details
The roseau/ directory implements the v1 (2001 era) server.
👉 Read the Deep Dive Documentation
🛠️ Core Infrastructure Details
The ecosystem is glued together by shared services found in the root and specific folders:
🎛️ Admin Panel (admin-panel/)
A custom Next.js 16 application running on port 3000.
- Tech: React 19, TailwindCSS v4, Dockerode.
- Purpose: Manage Docker containers, view logs, edit configurations, and manage the unified database from a GUI.
🗄️ Unified Database (unified-db/)
A central MariaDB instance that can serve multiple emulators.
- Port:
3306 - Management: Includes phpMyAdmin on port
8081. - Scripts: Contains initialization SQL scripts in
init/.
📦 Habbo Vault (Habbo Vault/)
A general storage directory for tools, plugins, and assets shared across projects.
🗺️ Architecture at a Glance
[Admin Panel (Next.js)] --docker.sock--> [Docker Engine]
| |
| [Containers]
| / / | \
| / / | \
v v v v v
[Unified DB] <----> [Emulators: Arcturus | Havana | Kepler | Roseau]
^ ^ ^ ^
| | | |
+----> [Clients: Cool UI, Nitro React, Havana Web, Roseau Client]
Key flows: the admin panel controls containers via the Docker socket, all emulators share the unified MariaDB instance, and clients talk to their respective emulators (plus asset/CDN services).
🔌 Port Map (host -> container)
| Service | Port | Notes |
|---|---|---|
| unified-db | 3306 | MariaDB |
| phpmyadmin | 8081 | DB admin UI |
| redis | 6379 | Cache/session |
| arcturus-emulator | 30000 | Game server |
| arcturus rcon | 2096 | Remote console |
| havana-server | 12321/12322/12323 | Game / MUS / RCON |
| kepler-server | 13321/13309/13322 | Game / RCON / MUS |
| roseau-server | 37120/37119 | Game / RCON |
| cool-ui | 5174 | Modern client |
| nitro-react | 5173 | Modern client |
| havana-web | 8084 | Web client |
| roseau-client | 8082 | Web client |
| atomcms | 80 / 443 | CMS |
| asset-server | 8083 | Nitro assets |
| admin-panel | 3000 | Management UI |
⚙️ Environment Variables
Copy .env.example to .env and adjust for your host and credentials. A full reference lives in documentation/ENVIRONMENT.md.
🌍 Resources
translation_lists/: A massive project to translate the Arcturus catalog from Spanish to English. See translation_lists/README.md for progress and contributing.
🚀 Getting Started
The recommended way to run the environment is via the provided helper script:
# Start the interactive management menu
./docker-manage.sh
Or start a specific stack directly:
./docker-manage.sh start arcturus
For full instructions, please refer to the Quick Start Guide.