This repository contains a self-hosted recipe web application implemented in Ruby On Rails.
Runtime docker images are available.
- Recipe management with images and OCR text recognition
- AI-powered OCR text cleanup using GPT-4 Mini
- Tagging and search functionality
- Auth0 authentication
- AWS S3 file storage
- Responsive UI with Tailwind CSS
rake db:create
rake db:migrate
Restore dump
pg_restore -d reeper_development -h db -Upostgres file.dump
Create .env.local
file with AWS credentials
# .env.local
AWS_ACCESS_KEY_ID=AAAAAAA
AWS_SECRET_ACCESS_KEY=BBBBB
For the GPT-powered OCR text cleanup feature, configure your OpenAI API key:
Development:
# Option 1: Environment variable (recommended)
export OPENAI_API_KEY=your_openai_api_key_here
# Option 2: Rails credentials
EDITOR="code --wait" rails credentials:edit
# Add: openai_api_key: your_openai_api_key_here
Production/Dokku:
dokku config:set your-app-name OPENAI_API_KEY=your_actual_openai_api_key_here
# Optional: Override cleanup prompts per language
dokku config:set your-app-name OPENAI_CLEANUP_PROMPT_EN="Your custom English prompt..."
dokku config:set your-app-name OPENAI_CLEANUP_PROMPT_DE="Your custom German prompt..."
Optional Configuration:
OPENAI_CLEANUP_PROMPT_EN
: Override the default English cleanup promptOPENAI_CLEANUP_PROMPT_DE
: Override the default German cleanup prompt
Start dev-server, css build, js build
bin/dev
yarn build:css --watch
yarn build --watch
Use provided docker-compose.prod.yml
file for startup of postgres db and container for the rails app. Don't forget to set AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, OPENAI_API_KEY
and db passwords. To change name of S3 bucket (reeper) and region (eu-central-1) use S3_BUCKET_NAME
and S3_BUCKET_REGION
environment variables.