{"id":27100783,"url":"https://github.com/cat-ling/painterest","last_synced_at":"2026-02-19T04:30:57.919Z","repository":{"id":284792288,"uuid":"956079259","full_name":"Cat-Ling/painterest","owner":"Cat-Ling","description":"A fork (clone) of https://codeberg.org/thirtysix/painterest","archived":false,"fork":false,"pushed_at":"2025-03-31T14:15:15.000Z","size":161,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-09T12:03:17.630Z","etag":null,"topics":["binternet","frontend","painterest","photos","pins","pinterest","privacy-frontend","web"],"latest_commit_sha":null,"homepage":"https://painterest.yemoja.xyz/","language":"Python","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/Cat-Ling.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2025-03-27T17:00:37.000Z","updated_at":"2025-03-31T14:17:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"0b064620-e95a-4afc-acd1-6e3672718e02","html_url":"https://github.com/Cat-Ling/painterest","commit_stats":null,"previous_names":["cat-ling/painterest"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Cat-Ling/painterest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cat-Ling%2Fpainterest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cat-Ling%2Fpainterest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cat-Ling%2Fpainterest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cat-Ling%2Fpainterest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cat-Ling","download_url":"https://codeload.github.com/Cat-Ling/painterest/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cat-Ling%2Fpainterest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29603036,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T04:01:40.476Z","status":"ssl_error","status_checked_at":"2026-02-19T04:01:12.960Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["binternet","frontend","painterest","photos","pins","pinterest","privacy-frontend","web"],"created_at":"2025-04-06T13:37:30.983Z","updated_at":"2026-02-19T04:30:57.863Z","avatar_url":"https://github.com/Cat-Ling.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🩸 Painterest\n\nPrivacy-respecting, anonymous, NoJS-supporting Pinterest frontend.\nBased on [disinterest](https://codeberg.org/ayuxia/disinterest).\n\n## 🌐 Instances\n\nSee [instances.json](instances.json) file.\n\n## ✨ Features\n\n- [ ] API\n  - [x] Search\n  - [ ] Retrieval of specific pins\n    - [x] Basic information (name, description, image and tags)\n    - [ ] Comments\n  - [x] Image proxy\n  - [ ] Search by tags\n\n- [ ] Frontend\n  - [ ] Homepage\n  - [x] Search (NoJS)\n  - [x] Search (JS/Infinite scroll)\n  - [ ] Pins\n    - [x] Regular pins\n    - [x] Business pins\n    - [ ] Video pins\n    - [x] Pins from other sites\n    - [ ] Comments\n\n## 🚀 Deployment\n\nClone repository:\n\n```sh\ngit clone https://codeberg.org/thirtysix/painterest.git\ncd painterest\n```\n\n### 🐳 With Docker\n\n```sh\ndocker build . -t painterest\ndocker compose up -d\n```\n\n### 💻 Without containerization\n\n```sh\npython3 -m venv .venv\n. .venv/bin/activate\npip install -r requirements.lock\nuvicorn src.main:app --no-access-log --proxy-headers --forwarded-allow-ips '*' --host 0.0.0.0 --port 8889\n```\n\n### 🛡️ Running behind a reverse proxy\n\nTo run the app behind a reverse proxy, ensure that the appropriate proxy headers are added.\nBelow is a sample configuration for NGINX:\n\n```text\nlocation / {\n    proxy_pass http://127.0.0.1:8889;\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n}\n```\n\n## 📄 Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) file.\n\n## 🔧 Development\n\nInstall Rye by following\nthe [installation guide](https://rye.astral.sh/guide/installation/).\n\nUse `rye sync` to install dependencies and required Python version.\n\nUse `rye run dev` to start development server which will reload on every change to source code.\n\nUse `rye check --fix` and `rye fmt` to lint and format code. Assumed to be run before each commit\nto guarantee code quality.\n\nUse `rye run basedpyright` to ensure typing is correct.\n\n## 📜 License\n\nThis project is licensed under the AGPLv3+ license - see the [license file](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcat-ling%2Fpainterest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcat-ling%2Fpainterest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcat-ling%2Fpainterest/lists"}