Build and render social links in the info modal using localized site content. Detect the preferred locale (localStorage or document lang, fallback to 'en') and fetch content via getSiteContent(locale). Parse keys social.<id>.(url|text|icon|order), apply defaults (labels and ordering via DEFAULT_SOCIAL_ORDER), support icons, and render with separators. Cache per-locale rendering using data attributes to avoid unnecessary rebuilds, and invoke it from injectInfoSections so links appear when the modal opens.
FurryPlace
FurryPlace (styled lowercase) is a free unofficial open source backend for wplace. We aim to give the freedom and flexibility for all users to be able to make their own private wplace experience for themselves, their friends, or even their community.
Warning
This is a work-in-progress. Expect unfinished features and bugs. Please help us by posting issues in #help-n-support on our Discord server or by contributing pull requests. Thanks!
macOS
Getting Started
This is where you will be preparing your machine to run FurryPlace.
- install brew, node and git
- run
git clone --recurse-submodules https://github.com/FurryPlaceteam/FurryPlace - cd into the FurryPlace directory
- run
npm i && brew install mariadb caddy nss - brew will then spit out a command to inform you on how to start it. if it doesn't, run
brew services start mariadb && brew services start caddy
Configuring and building the database
- run
sudo mysql_secure_installation - it will then ask you for your current root password. just hit enter
- hit 'n' when it asks you to switch to unix_socket authentication
- hit 'y' when it asks you to change your root password. for demonstration purposes, i have made my password 'password'. (do not do this)
- when it asks you to remove anonymous users, hit 'y'
- it will ask you if you want to disallow remote root logins, this is entirely up to you.
- hit 'y' when it asks you to remove the test database
- finally, hit 'y' when it asks you to reload configuration.
- copy the .env.example file on the root directory and rename it to .env where
root:passwordis, replacepasswordwith your password. - you can now run
npx prisma migrate deploy - next,
npx prisma generate - NEXT,
npx prisma db push - then you can run
npm run dev - in another terminal, cd to the same root directory and run
caddy run --config Caddyfile
Spinning up your server
You will be required to configure an SSL certificate if you plan to use this in production. However, if you are only using this with you and your friends, you can simply navigate to https://{IP}:8080 NOTE: FurryPlace is only hosted over HTTPS. you will run into HTTP error 400 if you attempt to load the website over HTTP.
Updating your database
In the event that the database schematic changes, you simply need to run npm run db:push to update your database schema.
Frontend backup monkey patches
If you need to tweak the rules that ship with the compiled backup frontend, edit scripts/monkey-patch/rules.json and run npm run patch:frontend-rules. You can reorder, add, or remove entries from the per-locale rules arrays, adjust the headings, and translate the footer text. The script will regenerate the monkey-patch block inside frontend-backup/_app/immutable/nodes/4.CrDfIbdR.js, so you can re-run it safely after pulling new builds.