Private recipe bookmarking. Join one or run your own.
- 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
- Backend: Ruby on Rails
- Frontend: No
deJS, a dusting of native CSS, Haml 🤗 - Parsing: Python for NLP ingredient processing
- Database: SQLite for data storage
- Deployment: Kamal and Docker for VPS hosting
# 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
# Set required environment variables
export DOCKER_USERNAME=your-docker-username
export RECIPIN_IP_ADDRESS=your-server-ip
# Deploy for the first time
kamal setup
kamal deploy
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:
# 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)