{"id":50659267,"url":"https://github.com/bradly/recipin","last_synced_at":"2026-06-08T01:07:57.703Z","repository":{"id":220996524,"uuid":"751927561","full_name":"bradly/recipin","owner":"bradly","description":"Private recipe extraction and archiving. Join a server or run your own.","archived":false,"fork":false,"pushed_at":"2025-11-26T18:58:46.000Z","size":2797,"stargazers_count":6,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-29T13:13:38.627Z","etag":null,"topics":["bookmarking","cooking","haml","no-javascript","no-js","recipes","recipes-website","ruby-on-rails"],"latest_commit_sha":null,"homepage":"https://recipin.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bradly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-02T16:24:42.000Z","updated_at":"2025-11-26T18:58:50.000Z","dependencies_parsed_at":"2024-03-11T03:25:51.943Z","dependency_job_id":"3b9cab8a-b196-4197-9eac-da2a3e2f873b","html_url":"https://github.com/bradly/recipin","commit_stats":null,"previous_names":["bradly/recipin"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bradly/recipin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradly%2Frecipin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradly%2Frecipin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradly%2Frecipin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradly%2Frecipin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bradly","download_url":"https://codeload.github.com/bradly/recipin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradly%2Frecipin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34043838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bookmarking","cooking","haml","no-javascript","no-js","recipes","recipes-website","ruby-on-rails"],"created_at":"2026-06-08T01:07:57.629Z","updated_at":"2026-06-08T01:07:57.695Z","avatar_url":"https://github.com/bradly.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Recipin\n\nPrivate recipe bookmarking. \nJoin one or run your own.\n\n![Screenshot](https://github.com/bradly/recipin/blob/main/public/chili.png?raw=true)\n\n## Features\n\n- **Clean Interface**: Minimal design with basic CSS and no JavaScript\n- **Recipe Extraction**: Automatically parse and save recipes in structured data\n- **Ingredient Parsing**: Uses natural language processing to break down ingredient text\n- **Privacy-Focused**: No ads, tracking, AI, or social networking\n- **Self-Hosted**: Run your own instance or join an existing one\n\n## Technologies\n\n- **Backend**: Ruby on Rails\n- **Frontend**: No~de~ JS, a dusting of native CSS, Haml 🤗\n- **Parsing**: Python for NLP ingredient processing\n- **Database**: SQLite for data storage\n- **Deployment**: Kamal with local registry\n\n## Local Setup\n\n```bash\n# Clone the repository\ngit clone git://github.com:bradly/recipin.git\ncd recipin\n\n# Install dependencies\nbundle install\n\n# Set up the database\nrails db:create db:migrate\n\n# Start the development server\nbin/dev\n```\n\n## Deployment\n\n```bash\n# Set required environment variables\nexport RECIPIN_IP_ADDRESS=your-server-ip\n\n# Deploy for the first time\nkamal setup\nkamal deploy\n```\n\n## Admin access\n\nThe `/admin` namespace is protected behind a per-user `admin` Boolean flag. No\ninterface is provided to toggle this flag in the app itself—you must use the\nRails console (or a direct SQL update) instead:\n\n```ruby\n# Promote a user\nUser.find_by!(email_address: \"me@example.com\").update!(admin: true)\n\n# Demote a user\nUser.find_by!(email_address: \"me@example.com\").update!(admin: false)\n```\n\n## Authors\n\n- [@bradly](https://www.github.com/bradly)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradly%2Frecipin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradly%2Frecipin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradly%2Frecipin/lists"}