Pancake
- 4 Devlogs
- 17 Total hours
An instance/game server panel
An instance/game server panel
I’ve been hard at work actually implementing the API and now we have actual auth routes! To ensure security I’ve gone with a JWT + Refresh token setup, where the refresh token is always in the cookies (and httponly) to avoid token snatching if there’s ever an XSS exploit.
In addition to that I’ve also cleaned up the code a bit and tried my best to make it more semantic and readable so I can actually maintain it :3 This includes some OOP for the responses, errors and requests since that kind of makes my life easier when I want to add more of those!
I’ve attached a screenshot of the signup API call down below since there isn’t much of a visual to show right now :>
Finally, after many long hours, most of the boilerplate code is done and I can now start working on the actual app and API!
The database now has a stable system of migrations and entities allowing for easy database rollbacks and upgrades.
Also we have a cli now :3
For the last few days I’ve been working on making my app into something that doesn’t feel janky for the end user, eg. by adding logging and env overrides!
I’ve also added a database connection, with support for both mysql/mariadb and sqlite since the project will be usable under both mini-circumstances (personal server) or on a larger scale in clusters. Except for that I’ve also added some graceful shutdown stuff, worked on the installer and remade the architecture a bit to make life easier for both me and the user :3
During the last few days I’ve been fighting on and off with static site generation and axum (spoiler warning: I won :O).
After a lot of boilerplate and structuring the project now compiles both the frontend and backend, and bundles it into a self-extracting executable with repair mechanics :>
With the help of conditional compiling I’ve also added a reverse proxy during debug-profile builds that allow me to run the frontend as a development server and proxy all the non-api traffic from axum to it.