ITGOIT - Wiki

Habbo Hotel Retro

Recommended domain setup when using reverse proxies like traefik.

Server Local Domain
MorningStar WebSocket ws://127.0.0.1:2096 game.example.com
Assets Server http://127.0.0.1:8080 assets.example.com
CMS http://127.0.0.1:8081 example.com
Nitro Client http://127.0.0.1:3080 game.example.com
cd /home/myusername/docker
git clone https://github.com/Gurkengewuerz/nitro-docker.git && \
cd nitro-docker/ && \
git clone https://git.krews.org/morningstar/arcturus-morningstar-default-swf-pack.git assets/swf/ && \
git clone https://github.com/krewsarchive/default-assets.git assets/assets/ && \
wget https://github.com/billsonnn/nitro-react/files/10334858/room.nitro.zip && \
unzip -o room.nitro.zip -d assets/assets/bundled/generic && \
find . -type f -name 'example-*' | while read -r file; do new_file=$(echo "$file" | sed 's/example-//'); cp -rf "$file" "$new_file" && rm "$file"; done

Configure the .env to your needs

docker compose up db -d
  1. Download SQL updates:

sqlupdates.zip

or download full pack

arcturus-community-ms4-dev-sqlupdates.zip

  1. Manually initialize database with HeidiSQL.

Default login creditentions using HeidySQL:
Network type: MariaDB or MySQL (TCP/IP)
Library: libmariadb.dll
Hostname /IP: IMPORT_SERVER_URL_HERE
User: arcturus_user
Password: arcturus_pw
Port: 3310
Databases: Separated by semicolon

For the popup: Really auto-detect file encoding? click on Yes

  1. Update emulator settings with HeidiSQL
UPDATE emulator_settings SET `value`='http://127.0.0.1:8080/usercontent/camera/' WHERE  `key`='camera.url';
UPDATE emulator_settings SET `value`='/app/assets/usercontent/camera/' WHERE  `key`='imager.location.output.camera';
UPDATE emulator_settings SET `value`='/app/assets/usercontent/camera/thumbnail/' WHERE  `key`='imager.location.output.thumbnail';

UPDATE emulator_settings SET `value`='http://127.0.0.1:8080/api/imageproxy/0x0/http://img.youtube.com/vi/%video%/default.jpg' WHERE  `key`='imager.url.youtube';

UPDATE emulator_settings SET `value`='0' WHERE `key`='console.mode';

UPDATE emulator_settings SET `value`='/app/assets/usercontent/badgeparts/generated/' WHERE  `key`='imager.location.output.badges';
UPDATE emulator_settings SET `value`='/app/assets/swf/c_images/Badgeparts' WHERE  `key`='imager.location.badgeparts';


  1. Start Asset Server, Build assets locally, Arcturus Community Emulator and Nitro
docker compose up assets -d && \
docker compose up assets-build --build && \
docker compose up imgproxy --build -d && \
docker compose up arcturus --build -d
docker compose up nitro --build -d

habbo-downloader requires Node.js 15.0 or higher you can install the newest version with the following command:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash && \
nvm install node

Update to latest production

apt install npm -y && \
npm i -g habbo-downloader && \
rm -rf assets/swf/gordon/PRODUCTION && \
habbo-downloader --output ./assets/swf --domain com --command badgeparts && \
habbo-downloader --output ./assets/swf --domain com --command badges && \
habbo-downloader --output ./assets/swf --domain com --command clothes && \
habbo-downloader --output ./assets/swf --domain com --command effects && \
habbo-downloader --output ./assets/swf --domain com --command furnitures && \
habbo-downloader --output ./assets/swf --domain com --command gamedata && \
habbo-downloader --output ./assets/swf --domain com --command gordon && \
habbo-downloader --output ./assets/swf --domain com --command hotelview && \
habbo-downloader --output ./assets/swf --domain com --command icons && \
habbo-downloader --output ./assets/swf --domain com --command mp3 && \
habbo-downloader --output ./assets/swf --domain com --command pets && \
habbo-downloader --output ./assets/swf --domain com --command promo && \
cp -n assets/swf/dcr/hof_furni/icons/* assets/swf/dcr/hof_furni && \
mv assets/swf/gordon/PRODUCTION* assets/swf/gordon/PRODUCTION && \
docker compose up assets-build --build

Replace --domain de with your own country code
For example if you want Dutch then do --domain nl
Here is a list of supported country codes:
Portugese --domain com.br
Turkish --domain com.tr
English --domain com
German --domain de
Spanish --domain es
Finnish --domain fi
French --domain fr
Italian --domain it
Dutch --domain nl

Update Languages

habbo-downloader --output ./assets/translation --domain com --command gamedata && \
cd ./assets/translation && \
cp -rf gamedata/external*.txt ../swf/gamedata/ && \
cd ../.. && \
docker compose up assets-build --build && \
cd ./assets/translation && \
python FurnitureDataTranslator.py && \
python SQLGenerator.py && \
python external_text.py --domain com
docker compose restart arcturus

Build AtomCMS

change .cms.env to your needs

docker compose up cms --build -d
docker compose exec cms php artisan key:generate

Open the CMS in the browser by default http://127.0.0.1:8081 and do the basic setup.

  1. Update website settings with HeidiSQL
UPDATE website_settings SET `value` = 'http://127.0.0.1:8080/api/imager/?figure=' WHERE  `key` = 'avatar_imager';
UPDATE website_settings SET `value` = 'http://127.0.0.1:8080/swf/c_images/album1584' WHERE  `key` = 'badges_path';
UPDATE website_settings SET `value` = 'http://127.0.0.1:8080/usercontent/badgeparts/generated' WHERE  `key` = 'group_badge_path';
UPDATE website_settings SET `value` = 'http://127.0.0.1:8080/swf/dcr/hof_furni' WHERE  `key` = 'furniture_icons_path';

UPDATE website_settings SET `value` = 'arcturus' WHERE  `key` = 'rcon_ip';
UPDATE website_settings SET `value` = '3001' WHERE  `key` = 'rcon_port';

UPDATE website_settings SET `value` = '4' WHERE  `key` = 'min_staff_rank';
UPDATE website_settings SET `value` = '5' WHERE  `key` = 'min_maintenance_login_rank';
UPDATE website_settings SET `value` = '6' WHERE  `key` = 'min_housekeeping_rank';

Whitelist Domain

  1. Update emulator settings with HeidiSQL Change example.com to your domain
UPDATE emulator_settings SET `value`='*.example.com' WHERE  `key`='websockets.whitelist';

Create an archive/backup

Optional.

bash ./export_containers.sh
docker compose exec backup backup-now
7z a -mx=9 nitro-$(date -d "today" +"%Y%m%d_%H%M").7z ./ '-x!db/data' '-x!.git/' '-x!logs/' '-x!cache/'

FAQ

🇶 Handshake Failed
🅰️ Login without an SSO ticket is not supported use http://127.0.0.1:3000?sso=123