{"id":22480260,"url":"https://github.com/pinatacloud/pinata-ghost-storage","last_synced_at":"2025-08-24T18:37:04.679Z","repository":{"id":97732585,"uuid":"515210742","full_name":"PinataCloud/pinata-ghost-storage","owner":"PinataCloud","description":"A Ghost blogging platform storage adapter that allows you to store and serve media on IPFS through Pinata","archived":false,"fork":false,"pushed_at":"2022-07-18T14:22:13.000Z","size":32,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-08T11:07:30.170Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PinataCloud.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}},"created_at":"2022-07-18T14:07:57.000Z","updated_at":"2023-03-25T20:17:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"a4296f16-7329-40a7-87ca-29905c56aaf1","html_url":"https://github.com/PinataCloud/pinata-ghost-storage","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PinataCloud/pinata-ghost-storage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinataCloud%2Fpinata-ghost-storage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinataCloud%2Fpinata-ghost-storage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinataCloud%2Fpinata-ghost-storage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinataCloud%2Fpinata-ghost-storage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PinataCloud","download_url":"https://codeload.github.com/PinataCloud/pinata-ghost-storage/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinataCloud%2Fpinata-ghost-storage/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269372796,"owners_count":24406274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"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":[],"created_at":"2024-12-06T15:20:24.704Z","updated_at":"2025-08-08T05:45:21.761Z","avatar_url":"https://github.com/PinataCloud.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Pinata Ghost Storage Adapter \n\nThis storage adapter allows you to customize your self-hosted Ghost instance to store media on [Pinata](https://pinata.cloud). Pinata is an [IPFS](https://ipfs.io) media platform. \n\n### How To Use \n\nIn the directory where you're running your local instance of Ghost, run the following: \n\n```\nmkdir -p ./content/adapters/storage\n```\n\nChange into that new directory: \n\n```\ncd contact/adapters/storage\n```\n\nClone this repository: \n\n```\ngit clone https://github.com/PinataCloud/pinata-ghost-storage\n```\n\nChange into the newly cloned repo: \n\n```\ncd pinata-ghost-storage\n```\n\nInstall dependencies: \n\n```\nnpm i\n```\n\nNow, you need to configure your Ghost environment. Back at the root of the directory where Ghost is running, find your `config.development.json` (or staging or production if you have multiple config files) and open it in a code editor. Add the following to the main config object: \n\n```json\n  \"storage\": {\n    \"active\": \"pinata-ghost-storage\",\n    \"pinata-ghost-storage\": {\n      \"gatewayUrl\": \"https://yourgatewayurl.com\", \n      \"pinataKey\": \"Pinata API Key\", \n      \"pinataSecret\": \"Pinata API Secret\"\n    }\n  },\n```\n\nYou can get an API key and secret by signing up for Pinata and going to the API Keys page. The Gateway URL should either be a Dedicated Gateway through Pinata or a public gateway. Note: if you use a public gateway, performance will be significantly slower than when using a Dedicated Gateway. \n\nSave the config file, then restart your local Ghost instance to apply the changes. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinatacloud%2Fpinata-ghost-storage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpinatacloud%2Fpinata-ghost-storage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinatacloud%2Fpinata-ghost-storage/lists"}