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.

  • xDerEdx@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

    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

    • w2g@alien.topOPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      11 months ago

      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?

  • desnudopenguino@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

    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.