Hey guys,
I want to do my first little project. Asking the title question probably means I’m in over my head, but we shall see!
Here’s what I want to do: On my raspberry pi 4 B 4GB (currently only running pihole), I want to host a small webapp to track game statistics for a game I play with friends somewhat regularly.
There should be: Authorization (login form), a database to keep track of the games played, a simple UI where a ranking and other stats are displayed and a form to enter new games.
The only thing I have experience with is SQL, Python and FastAPI (very little). The raspberry pi is running ubuntu server.
SO, what do I need to look into to get this off the ground? Here are my thoughts so far:
Docker to have everything working together and easy to deploy.
Cloudflare DNS so as not to expose my home network IP to the internet.
SQLite as a database to keep the game records.
FastAPI to handle requests.
React for frontend (also to learn about Javascript)
Nginx as a reverse proxy (not even sure what this means)
Am I missing something? Is what I want to do possible only with the technologies I listed?
Also, could you give some general advice on the security aspect? What do I definitely have to do so as not to endanger my home network? The webapp is only to be used by around 10 close friends.
Sorry for all the questions, I hope this is the right place and not too much.
For small personal projects I like to use pocketbase. (https://pocketbase.io) It uses Sqlite under the hood and provides a good admin interface, allows static file hosting, creates an API for your tables automatically which you can secure with security rules and has several authentication providers built in.
Edith: typo
This seems super cool. I really like having an admin interface too, as I’m currently struggling to truncate a table out of a jupyter notebook with sqlalchemy haha
Am I understanding correctly that this would replace both sqlite and FastAPI in my original setup idea?
Django is a good py web framework. Sqlite should suffice for such a small app. Once you get a bunch of users and writing action, a rdbms like postgress might be required.