A project for me to get more experience combining traditional server side rendering with a build step to generate static frontend assets.
FileShare allows you to deploy a self-contained binary that serves as a file sharing host. It's designed to be invite only for trusted friends and family. Unique links are generated for each file uploaded and they're assigned to individual users.
Copy .env.example to .env or setup matching environment variables to configure the service. You'll need a working
PostgreSQL database. There's a docker-compose.yml file included for convenience.
Follow the installation steps to configure your environment variables.
go build -o fileshareFirst you'll want to generate a token, since it's invite only.
./fileshare invite create Run the service itself.
./fileshareLogin and create a new user with the token you generated.
http(s)://<host>:<port>/login?invite_token=<token>
Promote your new user.
./fileshare user promoteEverything in static_generated is built from the frontend directory. The frontend directory is built using Vite and Typescript. The backend is built using Go and Chi.