Introduction
A clean, simple and powerful recipe manager web application for unforgettable family recipes, empowering you to curate and share your favorite recipes. It is focused on simplicity for the whole family to enjoy.
:warning: Important Note
The Recipya project is currently being rewritten in Rust as announced here. The Rust project is not ready for production nor to selfhost. The user interface is better than the the original.
Features
- Manage your favorite recipes
- Import recipes from around the web
- Digitize paper recipes
- Organize your recipes into cookbooks
- Works seamlessly with Nextcloud Cookbook
- Automatic conversion to your preferred measurement system (imperial/metric)
- Calculate nutritional information automatically
- Print any recipe in your collection
- Prevent your device from going to sleep while viewing a recipe
- Follows your system's theme (light/dark)
- Cross-compiled for Windows, Linux, and macOS
Getting Started
Installation (todo later)
The installation instructions are written in the installation section of the documentation.
Building the Project
Prerequisites
- Rust: https://www.rust-lang.org/
- Nodejs: https://nodejs.org/en/download/package-manager
- PostgreSQL: https://www.postgresql.org/download/ and the pg_cron extension
- Diesel:
cargo install diesel_cli --no-default-features --features postgres - cargo-metask:
cargo install cargo-metask
PostgreSQL extensions:
Add the following to /var/lib/pgsql/data/postgresql.conf once pg_cron is installed:
shared_preload_libraries = 'pg_cron'<- Uncomment this linecron.database_name = 'recipya'<- New line
Build
- Set the environment variables in the
.envfile. The template is found in /deploy. - Run recipya:
cargo run server
Development Container
You may use the devcontainer to help develop Recipya. The DATABASE_URL environment variable in your
.env file would be DATABASE_URL = "postgres://postgres:postgres@localhost:5432".
Development
Database
Run diesel migration run to run all pending migrations.
Run diesel migration generate {migration_name} to create a new SQL migration under crates/repository/src/migrations when changes to the database need to be done.
Run diesel migration redo to rerun the latest migration.
Frontend
Run cargo task web-install-deps to install the npm dependencies.
Run cargo task web-build to build the frontend.
Contributing
Contributions are always welcome! Please open an issue, start a discussion, open a pull request or send an email at [email protected]. The same applies if you have any feedback or need support.
You can also join our development and support channel on the Matrix space: #recipya:matrix.org. Matrix is similar to Discord but is open source.
Sponsors
I am grateful for any support that motivates me to continue developing this project and to host it reliably.
You can sponsor me on GitHub Sponsors or Buy Me a Coffee.
Your support is greatly appreciated! A third of donations will be sent to the Armed Forces of Ukraine 🇺🇦
This project is supported by these kind people:
Inspiration
This project was mainly coded to blasting the following albums:
- 1914 - Viribus Unitis
- 4am
- Abysmal Dawn - Phylogenesis
- Archspire - Bleed the Future
- Archspire - Too Fast to Die
- Astralborne - Eternity's End
- Atavistia - Cosmic Warfare
- Beast In Black - Dark Connection
- Cattle Decapitation - Terrasite
- Desoration - NON
- Ensiferum - From Afar
- Fires in the Distance - Echoes From Deep November
- Kalmah - Swamplord
- Lofi Girl - lofi hip hop radio
- Lofi Girl - synthwave radio
- Mozart - Requiem Dm
- Necrophobic - In the Twilight Grey
- Pain - You Only Live Twice
- Sonata Arctica - Talviyö
- Wintersun - Wintersun
- Wintersun - Time I & II
