Code on chunk was getting too big. So I restructured things into smaller slepau
(atoms).
This was the right step given the explosion of functionality since the project began and all the ideas that have come up since then.
Based on the idea of slepau (atoms). We've made a cargo virtual (because it has no binary of itself) workspace as a top level. And all slepau are inside the slepau
folder.
Our scripts can be run with Nushell, which is multi-platform. So make sure it's installed.
Development is currently happening on Arch Linux, so that's the only platform these steps have been tested at.
The way this works requests reach Nginx, then get routed to either the static files (web apps), or the running rust services (backend).
So for things to work, Nginx has to be running, there have to be some web static files built, and the rust service you're using has to be running.
Web Apps
- Build and watch for changes:
run_web watch
Nginx
run_nginx
Rust Services
run_auth
run_chunk
run_media
For more information, just read the scripts on scripts
folder.
- Get build dependencies
apt install ffmpeg nginx
- (Optional, the script will add it automatically) Add this line to /etc/hosts
127.0.0.1 auth.local chunk.local media.local
- Run
curl --proto '=https' --tlsv1.2 -sSf https://talebox.dev/standalone.sh | sh
which will download, extract, and run the standalone project for the first time. That's it!
Slepau rust projects.
Slepau web projects.
Where all environment variables are set for running slepau on development/production.
It also holds project regex. So they can be shared between rust and javascript.
As well as nginx (an http reverse proxy server) configuration files.
Nushell scripts to automate run/stop/deploy actions.
Slepau temporary savefiles/cache when running locally for debugging/testing.
All production files generated after build_all
is executed.
Dockerfiles.
For the svg icons. I've heavily relied on Bootstrap Icons. Credit goes to them for these.