In order to facilitate the workflow of updating static websites on aleph.im from automated tools, following a discussion with @philogicae, we would like to achieve the following:
-
A user can upload and pin a directory on IPFS using aleph-client, for example a static website. See code: aleph-docs/utils/publish-on-aleph.py at main · aleph-im/aleph-docs · GitHub
-
A user can upload a directory and update the custom domain from a single command using aleph-client, instead of using two distinct commands.
aleph site upload ./dist --domain my.example.com
-
A user can add a GitHub action to his repository to upload a directory and update the custom domain. See aleph-docs/.github/workflows/actions.yaml at main · aleph-im/aleph-docs · GitHub
Example:
- name: Upload on aleph.im uses: aleph-im/actions-website@v1 with: path: ./dist domain: my.example.com private_key: ${{ secrets.ALEPH_PRIVATE_KEY }}
-
A bot from aleph.im creates a Pull Request on the user’s repository to suggest how to build and update their website by detecting the project’s build tool and adding the GitHub action above.
The user provides the URL to their repository. The bot clones the repository, analyzes the build tool used (vite, mkdocs, …) and creates the GitHub Actions workflow, potentially using an LLM from Libertai.