-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the official wiki for JustBingo!
This guide covers all aspects of setting up and running JustBingo with both supported backend variants: Node.js and PocketBase (recommended).
You'll also find details on frontend configuration, authentication, and customization.
JustBingo is a bingo platform supporting two backend options:
- Included Node.js Backend: Simple and quick to run.
- PocketBase Backend (Recommended): Modern, user-friendly, and allows easy admin management.
-
Clone the repository:
git clone https://github.com/spj2401Dev/JustBingo.git cd JustBingo -
Navigate to the backend directory:
cd src -
Install dependencies:
npm install
-
Environment Variables:
Copy.env.exampleto.envand adjust as needed (admin logins via simple Auth and Port/Ip). -
Running the Server:
npm start
The backend should now be running and accessible to the frontend.
- There is just the one "user" which can be configured in the .env. Other forms of user management are with the Node.JS backend option not supported
- Drag either of the appsettings.json template from the setup folder into the root of the public folder. (YES ALL DATA ENTERED IS PUBLIC!)
- Configure the file and set the
usingBackendto true and put the correct Url in.
-
Download PocketBase for your platform.
-
Initialize PocketBase:
./pocketbase serve
PocketBase will launch a web admin interface at
http://localhost:8090/_/. -
Create the Scheme manually like described in the Setup folder in the project, or import this scheme: pb_schema.json
Please Note: This only contains the bingoFields and bingoGrids scheme. The users scheme needs to be configured manually. For a JustBingo instance its recomended to:
- Set API Rules of the users collection to
@request.auth.id != ""for all the different methodes except the Update rule. I would disable that. - Just Ignore the verified field. JustBingo completly ignores that meaning no emails need to be send out.
- Also you can delete the
avatarfields if you want, because its not used.
- Drag either of the appsettings.json template from the setup folder into the root of the public folder. (YES ALL DATA ENTERED IS PUBLIC!)
- Configure the file and set the
usingPocketBaseto true and put the correct Url of your PocketBase instance in.
- After starting the Frontend via some static Web Server, navigate to
/admin. There you can log in with your Pocketbase SuperUser (basically the same Login you use for Pocketbase)
Please keep in mind: Both PocketBase SuperUsers and regular Pocketbase Users can log into your JustBingo instance. The Users created in JustBingo are regular users in PocketBase, meaning those users won't be able to log into PocketBase. They can just log into JustBingo, which is recommended if you want to invite people to build Bingo Grids.
The Fontend is supposed to be run on an Static Web Server like Nginx or even Github Pages if you want to. Like already mentioned in the seperate Setup steps, the Frontend requires a appsettings.json folder in the root of the public folder.
{
"usingPocketBase": true,
"pocketBaseUrl": "http://127.0.0.1:8090",
"usingBackend": false,
"backendUrl": "http://localhost:3000"
}- Set the respective
usingPocketBaseorusingBackendto true. (No you cannot use both.) Then configure the right URLs. As easy as that. - Keep in mind. This file is publicly hosted and every client will access it when loading. Do not put any sensitive Url/Data into that file.
Also like already mentioned in the Setup Steps:
-
Superuser:
- Use your initial PocketBase credentials to log into the
/adminpanel in JustBingo. - Superuser has full admin rights in both PocketBase and JustBingo.
- Use your initial PocketBase credentials to log into the
-
Normal Users:
- Users created through JustBingo’s signup/login are created in PocketBase as standard users.
- These users cannot access the PocketBase admin panel.
- They have access only to their JustBingo account.
- Is not really "Auth". Just uses HTTP Basic Authentication with one Login configured in the .env.
Happy Bingo-ing!