# Nitro Docker installation Nitro docker is a quick-to-setup docker environment for the [nitro client](https://github.com/billsonnn/nitro-react) with [Arcturus Community Emulator](https://git.krews.org/morningstar/Arcturus-Community). It can be run on Windows, Linux or OSX just with a few commands. It is inspired by [Holo5/nitro-docker](https://github.com/Holo5/nitro-docker). The default configuration can run on localhost. **This Repository uses `ms4/dev` branch!** **This Repository uses a [forked version](https://git.gurkengewuerz.de/nitro/nitro) of Nitro with bug-fixes and more features!** ## Requirements - Install docker desktop (and for windows, enable WSL support) [from here](https://www.docker.com/get-started/). - Clone this repository ## Build 1. Download default assets ```bash # 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 ``` 2. Take a look at `.env` file an configure to your needs 3. Start database ⚠ **The database port is exposed to `3010` by default** ⚠ ```bash # start database docker compose up db -d ``` 4. Manually initialize database Setup using `arcturus/arcturus_3.0.0-stable_base_database--compact.sql` and the correct SQL Updates from [Arcturus sqlupdates](https://git.krews.org/morningstar/Arcturus-Community/-/tree/ms4/dev/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 5. 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. ```sql -- 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'; ``` 6. Start Asset Server ```bash # start asset server docker compose up assets -d ``` 7. Build assets locally ```bash # build the nitro assets docker compose up assets-build --build ``` 8. Build and Start Arcturus Community Emulator ```bash # start Arcturus emulator docker compose up arcturus --build -d ``` 9. 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. 10. Build and Start Nitro ```bash # 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. ```bash 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 ```bash docker compose up assets-build --build ``` ## Update Languages ```bash 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 ```bash 7z a -mx=9 nitro-$(date -d "today" +"%Y%m%d_%H%M").7z ./ ```