You'll need to configure the r_ecipe_s_backend/config/config.toml (see the config.toml.dist) file for an example.
If you use the docker compose to spin up a postgres instance, you can set the password used there
you'll need the sqlx cli you'll need the perseus cli
Run migrations
cd r_ecipe_s_backend
sqlx run migrationsyou'll need to run migrations to compile. Then run the backend:
cargo runthen run the frontend (you will need the perseus cli)
cd r_ecipe_s_frontend
perseus build
When perseus first runs it will create it's own r_ecipe_s_frontend/.perseus/Cargo.toml where it defines empty
workspaces. The backend depends on this workspace, but is in its own workspace. To fix things
just remove [workspaces] from the r_ecipe_s_frontend/.perseus/Cargo.toml
for now it's a little clunky. Need to compile the frontend, but now compile the backend with
cargo build --release --target=x86_64-unknown-linux-gnuOn MacOS you will need the x86_64-unknown-linux-gnu linker from brew
Then copy the executable from the root: target/x86_64-unknown-linux-gnu/release/main to docker/
Copy the directory r_ecipe_s_frontend/.perseus/dist to docker/.
Copy r_ecipe_s_frontend/index.html to docker/.
Copy r_ecipe_s_frontend/static to docker/.
We currently have to do this in order to have a small build context for fly
tailwindcss-to-rust --input frontend/css/tailwind.css --tailwind-config frontend/tailwind.config.js --output r_ecipe_s_style/src/generated.rs --rustfmtThen you need to make everything pub in the generated file instead of pub(crate).
Now tailwind can scan a specific dependency without scanning the whole generated rust file
From the docker directory run to create the app
flyctl launchIt may ask something about using the existing config IIRC.
You will need a postgres deployment, a meilisearch deployment and secrets for the credentials for these:
flyctl secrets create API_KEY={API_KEY} R_ECIPE_S_DB_PASSWORD={DB_PASSWORD} R_ECIPE_S_SEARCH_API_KEY={MEILIESEARCH_KEY}Then run to the following propagate the new env variables
flyctl deploy