Hacking
Typhon is written in Rust. It consists of four packages:
typhon-coreis the core logic of Typhontyphon-webappis the frontend applicationtyphon-typesis a common library shared between the twotyphonis the server and the main package
Development environment
This documentation assumes that you are using Nix, so you can simply run
nix-shell at the root of the project to enter the development environment.
Experimental features "nix-command" and "flakes" need to be enabled in your Nix
configuration for the server to run properly. Nix >= 2.18 is also required but
it is provided by the Nix shell.
The following instructions assume that you are inside the Nix development environment.
Dependencies
Typhon uses Actix for the web server and
Diesel for the database management. The webapp is written
with Leptos. Typhon is built with cargo-leptos.
Building & Running
If you are building Typhon for the first time, first go to
typhon-webapp/assets and run npm install.
Then, to build Typhon, go to the root of the project and run:
build
To run Typhon, create /nix/var/nix/gcroots/typhon/ and make sure that you have
write access to the directory. Then go to the root of the project and run:
watch
The server will be available at http://localhost:3000, with the admin password
set to password. The server will be compiled automatically at each
modification of the code.
Formatting
Before submitting changes to Typhon, be sure to format the code using the
format command.