{"id":22165639,"url":"https://github.com/textileio/hugo-ipfs-blog","last_synced_at":"2026-01-04T18:47:15.953Z","repository":{"id":97400086,"uuid":"248054418","full_name":"textileio/hugo-ipfs-blog","owner":"textileio","description":null,"archived":false,"fork":false,"pushed_at":"2020-03-17T20:16:18.000Z","size":8,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-29T21:51:24.195Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/textileio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-03-17T19:20:00.000Z","updated_at":"2020-05-06T06:43:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"c5158084-d947-4085-a6bc-5a928370b91d","html_url":"https://github.com/textileio/hugo-ipfs-blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textileio%2Fhugo-ipfs-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textileio%2Fhugo-ipfs-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textileio%2Fhugo-ipfs-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textileio%2Fhugo-ipfs-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/textileio","download_url":"https://codeload.github.com/textileio/hugo-ipfs-blog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245304873,"owners_count":20593626,"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-12-02T05:15:50.551Z","updated_at":"2026-01-04T18:47:15.913Z","avatar_url":"https://github.com/textileio.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Hugo Blog published with IPFS\n===============================\n\nThis repo provides an example setup to publish your [Hugo](https://gohugo.io/) project on IPFS and mirror those changes over a freely provided or custom domain name.\n\n# Install the Textile CLI\n\nYou'll need to install Textile on your local machine. To do so, download the binary for your computer here, [https://github.com/textileio/textile/releases/latest](https://github.com/textileio/textile/releases/latest).\n\n_Apple users: Textile is not signing the build with Apple developer keys, you'll need to authorize the app to run in your security settings. Download the Darwin build and go through the install steps (untar, cd, `./install`). Next, run a Textile command once, e.g. `textile --help`. This will fail due to permissions. Go to System Preferences -\u003e Security. In the bottom right, click to allow Textile to run anyway. Run `textile --help` again, confirm your decision, and you'll not be prompted again._\n\n# Create a Textile login and team\n\nTextile uses passwordless login for all users, giving them remote IPFS pinning for their projects.\n\n`textile login`\n\nFollow the instructions.\n\n`textile whoami`\n\nShould now show you your account. If you think you'll want to collaborate with others, you should create a team and then enter you team before creating projects and buckets.\n\n`textile team add \u003cNAME\u003e`\n\nFollowed by\n\n`textile switch`\n\n# Initialize a Textile Project\n\nAll Buckets are part of Projects. To make Project management easy, you can initialize a Project in the any directory. Then, each time you are working in that directory with Textile, it will know which project it is working with.\n\n`cd \u003cHUGO PROJECT DIRECTORY\u003e`\n\n`textile project init \u003cUNIQUE PROJECT NAME\u003e`\n\nThis will create a file `./.textile/config.yml`. If you are using Git, you should commit this file to your code history.\n\n# Push your Hugo build to a Bucket\n\nFirst, you should build your Hugo for production.\n\n`hugo -D`\n\nBy default, this will build your site in the `public` directory. This is the directory you will push to a Bucket. \n\n`textile bucket push public/* \u003cUNIQUE BUCKET NAME\u003e`\n\nThat's it! You now have the contents of your `public` folder pinned to a remote IPFS node. You can explore the data using the data explorer. Your Bucket URL can be found using,\n\n`https://cloud.textile.io/dashboard/\u003cPROJECT NAME\u003e/\u003cBUCKET NAME\u003e`\n\nYour site will be rendered on the Gateway. You can view your live site using the URL,\n\n`https://\u003cBUCKET NAME\u003e.textile.cafe/`\n\n# Add Continuous Integration\n\nIf you are using GitHub, you can use GitHub Actions to update your Bucket automatically now. Here's how you can do it.\n\n### Setup your Textile permissions\n\n1. Get your Auth token. You're account auth token can be found at `$HOME/.textile/auth.yml`. That file will contain the string `token:\u003cYOUR_PRIVATE_TOKEN\u003e. Copy that value.\n2. Add a Secret to your GitHub project. Go to your GitHub project. Click Settings. Click Secret. Add a secret named, `TEXTILE_AUTH_TOKEN`. For the value, enter the string from `YOUR_PRIVATE_TOKEN` above.\n3. Be sure you've committed and pushed the `.textile/config.yml` folder and file to your GitHub project. \n\n### Add GitHub Actions\n\nTextile curates a few Actions in the GitHub Marketplace. If your site uses the default Hugo build settings, this step should be easy.\n\n1. Download this repo.\n2. Copy the contents of `.github/` into your own GitHub repo in the same location (i.e. `.github/` -\u003e `.github/`).\n3. In each of the four YML files created above, change the value `BUCKET_NAME: 'hugo-ipfs-blog'` from `hugo-ipfs-blog` to the Bucket name you created above.\n4. Add and commit these new files to your repo. Push the changes to GitHub.\n\nNow, all new changes to your Master branch will update your primary Bucket. In addition, you can use ephemeral Buckets created for each of your PRs so you can view and review your website changes before pushing them live.\n\nIf you want to update your custom domain using your new IFPS content, follow the [Cloudflare DNSLink setup instructions here](https://blog.textile.io/ethden-using-ci-to-publish-your-webpage-using-ipfs-and-textile-buckets/).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftextileio%2Fhugo-ipfs-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftextileio%2Fhugo-ipfs-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftextileio%2Fhugo-ipfs-blog/lists"}