Home
Softono
recipya-rs

recipya-rs

Open source Rust
33
Stars
2
Forks
40
Issues
1
Watchers
1 week
Last Commit

About recipya-rs

A clean, simple and powerful recipe manager your whole family will enjoy.

Platforms

Web Self-hosted

Languages

Rust

Recipya Rust  

A clean, simple and powerful recipe manager your whole family will enjoy.

Demo Documentation Matrix
build-status-shield contributions-shield

Recipe page screenshot

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

  1. Rust: https://www.rust-lang.org/
  2. Nodejs: https://nodejs.org/en/download/package-manager
  3. PostgreSQL: https://www.postgresql.org/download/ and the pg_cron extension
  4. Diesel: cargo install diesel_cli --no-default-features --features postgres
  5. 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 line
  • cron.database_name = 'recipya' <- New line

Build

  1. Set the environment variables in the .env file. The template is found in /deploy.
  2. 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: