{"id":15437522,"url":"https://github.com/victorb/ipfs-website-deployer","last_synced_at":"2025-10-29T00:32:26.966Z","repository":{"id":148376898,"uuid":"168320486","full_name":"victorb/ipfs-website-deployer","owner":"victorb","description":null,"archived":false,"fork":false,"pushed_at":"2019-02-09T12:41:11.000Z","size":20,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T10:51:10.163Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/victorb.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}},"created_at":"2019-01-30T10:01:07.000Z","updated_at":"2022-06-27T16:58:08.000Z","dependencies_parsed_at":"2023-05-19T22:30:41.614Z","dependency_job_id":null,"html_url":"https://github.com/victorb/ipfs-website-deployer","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"b567dddb2a3b4f0cb4fe5a1927b8673bd5cbd741"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorb%2Fipfs-website-deployer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorb%2Fipfs-website-deployer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorb%2Fipfs-website-deployer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorb%2Fipfs-website-deployer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/victorb","download_url":"https://codeload.github.com/victorb/ipfs-website-deployer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251338387,"owners_count":21573548,"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","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-10-01T18:57:40.658Z","updated_at":"2025-10-29T00:32:21.925Z","avatar_url":"https://github.com/victorb.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ipfs-website-deployer\n\nA service that deploys websites over IPFS, hosted in a IPFS-Cluster.\n\n## How it works\n\nipfs-website-deployer is a backend service that connects to your GitHub repositories,\nautomatically builds changes and publishes them over IPFS via ipfs-cluster.\n\nCurrently a deployment of ipfs-website-deployer only supports managing DNS via\none DNSimple account and managing IPFS pins via one ipfs cluster, but in the\nfuture, one deployment might support more accounts. We'll see.\n\nWhen you change a branch or make a PR, ipfs-website-deployer receives the event\nand proceeds to build the change. Once the build is done, it sets a Commit Status\nwith the status of the build, and a preview of the website if it's successful.\n\nIf the `master` branch in a project is changed, it also does the DNS change\nto point to the new website.\n\nIn the case of a new website being created, ipfs-website-deployer also creates\nthe TXT ALIAS record to a public gateway, and creates TLS certificates for the\nwebsite.\n\n## Secrets\n\nThe following values should be kept as environment variables:\n\n```\nBUILD_DIR= # Where to do builds\nIPFS_API= # HTTP address to the IPFS daemon\nGITHUB_APP_ID= # App ID of the GitHub Application\nPRIVATE_KEY_PATH= # Path to private key for the GitHub Application\nDNSIMPLE_TOKEN= # The token for DNSimple access\nDEFAULT_LANDING_PAGE= # Default dnslink record\nCLUSTER_API= # HTTP address to the ipfs-cluster service daemon\nCLUSTER_USERNAME= # Username of IPFS cluster requests\nCLUSTER_PASSWORD= # Password of IPFS cluster requests\n\n```\n\n## Usage\n\nMakefile should build directory\n\nCurrently supports:\n\n- node/npm\n\nNeeds to be integrated with:\n\n- GitHub\n  - As an GitHub application\n- DNSimple\n- IPFS-Cluster\n- Rollbar\n\nSupports:\n\n- Deploy to base32 subdomain\n- Deploy to base32 IPNS subdomain\n\nDownload of IPNS keys if needned\n\nWhere does secrets come from?\n\nWhen the application is installed, the repository owner gets an encryption\nkey they need to use for encrypting the application\n\n## Architecture\n\nThe architecture of the application should allow a flexible addition of new parts.\n\n```\nsrc/\n  builders/\n    hugo/\n    npm/\n  notifiers/\n    github/\n  dns/\n    dnsimple\n  pinning/\n    ipfs-cluster\n  post-deploy/\n    rollbar\n```\n\n## Deploying\n\n- Build server `lein ring uberjar`\n- Copy into infra `cp target/ipfs-website-deployer-0.1.0-SNAPSHOT-standalone.jar infra`\n- Run `terraform apply`\n\n## TODO\n\n- [ ] Have a webhook secret\n- [ ] More unit tests\n- [ ] Automatic HTTPS with Cloudflare\n- [ ] Support ipfs-cluster with basic auth\n- [X] Application ID should be env var\n- [X] DNSimple token should be env var\n- [ ] docker api client doesn't work without docker daemon\n      having access to the online registry\n\n## License\n\nCopyright © 2018 FIXME\n \nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictorb%2Fipfs-website-deployer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvictorb%2Fipfs-website-deployer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictorb%2Fipfs-website-deployer/lists"}