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.
- Host: GitHub
- URL: https://github.com/bradly/recipin
- Owner: bradly
- License: agpl-3.0
- Created: 2024-02-02T16:24:42.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-11-26T18:58:46.000Z (7 months ago)
- Last Synced: 2025-11-29T13:13:38.627Z (7 months ago)
- Topics: bookmarking, cooking, haml, no-javascript, no-js, recipes, recipes-website, ruby-on-rails
- Language: Ruby
- Homepage: https://recipin.com
- Size: 2.67 MB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Recipin
Private recipe bookmarking.
Join one or run your own.

## 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)