{"id":26121911,"url":"https://github.com/ipfs-shipyard/ipfs-cohost","last_synced_at":"2025-08-02T17:06:11.654Z","repository":{"id":35238895,"uuid":"201041155","full_name":"ipfs-shipyard/ipfs-cohost","owner":"ipfs-shipyard","description":"A CLI to co-host websites published to IPFS","archived":false,"fork":false,"pushed_at":"2025-05-01T07:35:02.000Z","size":243,"stargazers_count":26,"open_issues_count":15,"forks_count":4,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-05-01T08:30:07.348Z","etag":null,"topics":["dnslink","ipfs"],"latest_commit_sha":null,"homepage":"","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/ipfs-shipyard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-07T11:57:35.000Z","updated_at":"2025-05-01T07:35:06.000Z","dependencies_parsed_at":"2022-08-08T06:16:29.933Z","dependency_job_id":null,"html_url":"https://github.com/ipfs-shipyard/ipfs-cohost","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ipfs-shipyard/ipfs-cohost","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs-shipyard%2Fipfs-cohost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs-shipyard%2Fipfs-cohost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs-shipyard%2Fipfs-cohost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs-shipyard%2Fipfs-cohost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ipfs-shipyard","download_url":"https://codeload.github.com/ipfs-shipyard/ipfs-cohost/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs-shipyard%2Fipfs-cohost/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268423872,"owners_count":24248107,"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-02T02:00:12.353Z","response_time":74,"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":["dnslink","ipfs"],"created_at":"2025-03-10T14:37:22.468Z","updated_at":"2025-08-02T17:06:11.605Z","avatar_url":"https://github.com/ipfs-shipyard.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ipfs-cohost 🌐✨🤝\n\nA CLI to co-host websites published to [IPFS].\n\nIf your domain has a [DNSlink] to a CID, then `ipfs-cohost` will let others pin it to their IPFS node.\n\n## Usage\n\nPass it the list of domains you want to cohost. It finds the CID from the [DNSLink] for that domain and starts cohosting the domains. By default, we use a [full cohosting]. You can force the domains to be lazily cohosted by using the flag `--lazy`.\n\n```console\n$ ipfs-cohost add ipfs.io docs.ipfs.io awesome.ipfs.io\n🔌 Using local ipfs daemon via http api\n📍 docs.ipfs.io    QmNrbogjGZWgUSrbmHXydwc5b51oJQsBfHA2RkNRVf2ikc 6.86 MB\n📍 awesome.ipfs.io QmPHrA6RT2j7bEcBrdeV2z6ZWrchDguw9wBchHPr6VZcFS 7.6 MB\n📍 ipfs.io         QmYb3dbymigAPcaiQUgnPxbwgMKjvxVBrrxSvFHwbZLVkq 10 MB\n📦 Total size 24.5 MB for 3 domains\n🤝 Co-hosting 3 domains via IPFS.\n```\n\nPassing the `--silent` options will prevent any logging.\n\n```console\n$ ipfs-cohost add ipfs.io --silent\n```\n\n### Remove cohosted website\n\nYou can remove one or more websites at once:\n\n```console\n$ ipfs-cohost rm ipfs.io docs.ipfs.io awesome.ipfs.io\n🔌 Using local ipfs daemon via http api\n✔  ipfs.io no longer cohosted.\n✔  docs.ipfs.io no longer cohosted.\n✔  awesome.ipfs.io no longer cohosted.\n```\n\nYou can also remove every website you have cohosted:\n\n```console\n$ ipfs-cohost rm --all\n🔌 Using local ipfs daemon via http api\n✔ All cohosted websites removed.\n```\n\n### List cohosted websites and snapshots\n\nUse `ls` with no arguments to list the cohosted domains:\n\n```console\n$ ipfs-cohost ls\n🔌 Using local ipfs daemon via http api\n📍 Lazily cohosted domains:\n      docs.ipfs.io\n      ipfs.io\n📍 Fully cohosted domains:\n      arewedistributedyet.com\n      awesome.ipfs.io\n      ipfs.io\n```\n\nUse `ls` with domains as arguments to list the snapshots for each domain:\n\n```console\n$ ipfs-cohost awesome.ipfs.io\n🔌 Using local ipfs daemon via http api\n⏱ Full snapshots for ipfs.io:\n      2019-10-06_095057\n      2019-10-05_135342\n```\n\n### Sync the current domains\n\nCheck if you have the most up to date version of each website and updates the snapshots.\n\n```console\n$ ipfs-cohost sync\n🔌 Using local ipfs daemon via http api\n✔  Snapshots synced!\n```\n\n### Prune\n\nDelete all snapshots but the last `n`. If `n` is not provided, all snapshots but the last one will be deleted.\n\n```console\n$ ipfs-cohost prune [n]\n🔌 Using local ipfs daemon via http api\n✔  Cohosted websites cleaned!\n```\n\n### Only add latest copies\n\nIn some situations, you might want to be able to provide a strict list of domains you want to have one and only snapshot per domain. You can use `ipfs-cohost latest \u003cdomain\u003e...` as a short hand for `ipfs-cohost rm --all \u0026\u0026 ipfs-cohost add \u003cdomain\u003e...`. All flags apply.\n\n### Could you do these with a few lines of bash?\n\nYes. All of this commands can be reproducible via bash commands. Please take a look at the [cohosting SPEC](https://github.com/ipfs-shipyard/cohosting/blob/master/SPEC.md) to know which `ipfs` commands are equivalent to these ones.\n\n## Install\n\nWith `node` \u003e= 10.15 and `npm` \u003e 6.9 installed , you can install `ipfs-cohost` via `npm`\n\n```console\n# install it\n$ npm i -g ipfs-cohost\n\n# run it\n$ ipfs-cohost add docs.ipfs.io blog.ipfs.io ipfs.io\n```\n\nYou can run the latest version of `ipfs-cohost` without explicitly installing it via `npx`\n\n```console\n$ npx ipfs-cohost add docs.ipfs.io blog.ipfs.io ipfs.io\n```\n\n[IPFS]: https://ipfs.io\n[DNSLink]: https://dnslink.io\n[full cohosting]: https://github.com/ipfs-shipyard/cohosting/blob/master/SPEC.md#lazy-and-full-cohosting\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipfs-shipyard%2Fipfs-cohost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipfs-shipyard%2Fipfs-cohost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipfs-shipyard%2Fipfs-cohost/lists"}