nitro-docker/README.md

4.0 KiB

Nitro Docker installation

Nitro docker is a quick-to-setup docker environment for the nitro client with Arcturus Community Emulator. It can be run on Windows, Linux or OSX just with a few commands. It is inspired by Holo5/nitro-docker.
The default configuration can run on localhost.

This Repository uses ms4/dev branch!

Requirements

  • Install docker desktop (and for windows, enable WSL support) from here.
  • Clone this repository

Build

  1. Download default assets
# download SWFs
git clone https://git.krews.org/morningstar/arcturus-morningstar-default-swf-pack.git assets/swf/
# download assets
git clone https://github.com/krewsarchive/default-assets.git assets/assets/
# WEE WOO WEE WOO DO NOT FORGET THIS!
wget https://github.com/billsonnn/nitro-react/files/10334858/room.nitro.zip
unzip room.nitro.zip -d assets/assets/bundled/generic
  1. Take a look at .env file an configure to your needs

  2. Start database
    The database port is exposed to 3010 by default

# start database
docker compose up db -d
  1. Manually initialize database
    Setup using arcturus/arcturus_3.0.0-stable_base_database--compact.sql and the correct SQL Updates from Arcturus sqlupdates. The first database come from mysql/dumps, it's the base Arcturus database for 3.0.X with just a default SSO ticket (123) useable via http://127.0.0.1:1080?sso=123

  2. Update emulator settings
    Disable console mode for Arcturus because we are using docker. To update the arcturus database preferably use rcon. To update a user_ table disconnect the user. To update the emulator_settings table stop the server.

-- update value path to the assets server
UPDATE emulator_settings SET `value`='http://127.0.0.1:8080/usercontent/camera/' WHERE  `key`='camera.url';
-- do not touch the following values - they use docker volume paths
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`='0' WHERE `key`='console.mode';
  1. Start Asset Server
# start asset server
docker compose up assets -d
  1. Build assets locally
# build the nitro assets
docker compose up assets-build --build
  1. Build and Start Arcturus Community Emulator
# start Arcturus emulator
docker compose up arcturus --build -d
  1. Update nitro/renderer-config.json and nitro/ui-config.json values to your setup. If the deployment is buggy or throws any errors check the json files for updates.

  2. Build and Start Nitro

# start nitro server
docker compose up nitro --build -d

Next setup reverse proxies for your nginx or traefik server. You should disable proxy side caching.

Update to latest production

Update a few assets since we want the most up to date assets as possible.

npm i -g habbo-downloader
rm -rf assets/swf/gordon/PRODUCTION
habbo-downloader --output ./assets/swf --domain com --command SEE_LIST_BELOW
cp -n assets/swf/dcr/hof_furni/icons/* assets/swf/dcr/hof_furni
mv assets/swf/gordon/PRODUCTION* assets/swf/gordon/PRODUCTION
badgeparts
badges
clothes
effects
furnitures
gamedata
gordon
hotelview
icons
mp3
pets
promo

After all update nitro files

docker compose up assets-build --build

Update Languages

habbo-downloader --output ./assets/translation --domain de --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
# run SQL file
# restart emulator

Create an archive/backup

7z a -mx=9 nitro-$(date -d "today" +"%Y%m%d_%H%M").7z ./