An open API service indexing awesome lists of open source software.

https://github.com/bradly/recipin

Private recipe extraction and archiving. Join a server or run your own.
https://github.com/bradly/recipin

bookmarking cooking haml no-javascript no-js recipes recipes-website ruby-on-rails

Last synced: about 1 month ago
JSON representation

Private recipe extraction and archiving. Join a server or run your own.

Awesome Lists containing this project

README

          

# Recipin

Private recipe bookmarking.
Join one or run your own.

![Screenshot](https://github.com/bradly/recipin/blob/main/public/chili.png?raw=true)

## Features

- **Clean Interface**: Minimal design with basic CSS and no JavaScript
- **Recipe Extraction**: Automatically parse and save recipes in structured data
- **Ingredient Parsing**: Uses natural language processing to break down ingredient text
- **Privacy-Focused**: No ads, tracking, AI, or social networking
- **Self-Hosted**: Run your own instance or join an existing one

## Technologies

- **Backend**: Ruby on Rails
- **Frontend**: No~de~ JS, a dusting of native CSS, Haml 🤗
- **Parsing**: Python for NLP ingredient processing
- **Database**: SQLite for data storage
- **Deployment**: Kamal with local registry

## Local Setup

```bash
# Clone the repository
git clone git://github.com:bradly/recipin.git
cd recipin

# Install dependencies
bundle install

# Set up the database
rails db:create db:migrate

# Start the development server
bin/dev
```

## Deployment

```bash
# Set required environment variables
export RECIPIN_IP_ADDRESS=your-server-ip

# Deploy for the first time
kamal setup
kamal deploy
```

## Admin access

The `/admin` namespace is protected behind a per-user `admin` Boolean flag. No
interface is provided to toggle this flag in the app itself—you must use the
Rails console (or a direct SQL update) instead:

```ruby
# Promote a user
User.find_by!(email_address: "me@example.com").update!(admin: true)

# Demote a user
User.find_by!(email_address: "me@example.com").update!(admin: false)
```

## Authors

- [@bradly](https://www.github.com/bradly)