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
or download full pack
arcturus-community-ms4-dev-sqlupdates.zip
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
Extract sqlupdates.zip then go to File --> Run SQL file... Run the following SQL files in order:
arcturus_3.0.0-stable_base_database--compact.sql
3_0_0 to 3_5_0.sql
3_5_0 to 4_0_0.sql
4_0_0_pets_EN.sql
4_0_0_permissions.sql
perms_groups.sql
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';
docker compose up assets -d && \
docker compose up assets-build --build && \
docker compose up imgproxy --build -d && \
docker compose up arcturus --build -d
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. then Build and Start Nitrodocker 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
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
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
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.
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';
UPDATE emulator_settings SET `value`='*.example.com' WHERE `key`='websockets.whitelist';
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/'
🇶 Handshake Failed
Login without an SSO ticket is not supported use http://127.0.0.1:3000?sso=123