feat: add aleph deployment workflows#344
Draft
NiKrause wants to merge 35 commits into
Draft
Conversation
# Conflicts: # .github/actions/aleph-vm-deploy/action.yml # go-peer/aleph/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds an Aleph-based deployment path for
universal-connectivity.It introduces:
uc-go-peerworkflow that builds and publishes the RootFS and can optionally deploy and verify a VMgo-peer/aleph/js-peerpublishing through Aleph so the browser client and RootFS manifest can be published as part of the same flowWhy
This is for operating UC as a deployed relay service on Aleph Cloud rather than only as a local or generic peer runtime.
The intended flow is:
uc-go-peerRootFS imagejs-peerwith the RootFS manifestjs-peerwith the final bootstrap dataRequired Repository Configuration
Before using these workflows end to end, the repository needs the following repository secrets and variables.
Secrets
ALEPH_PRIVATE_KEYHex-encoded Ethereum private key for the wallet that signs Aleph messages.
This wallet is used to publish and pin the
js-peersite and the RootFS image on Aleph/IPFS, and also to create Aleph VM instances whendeploy_vm=true.In practice, holding ALEPH on that wallet is enough to use the current hosting model for these artifacts. For example, publishing a
js-peersite plus a RootFS image of roughly< 700 MBdoes not currently require spending under the current Aleph business model, but the wallet still needs to be the account that owns and manages those hosted resources.VM_SSH_PUBLIC_KEYSSH public key that should be authorized inside the deployed Aleph VM.
This is used when
deploy_vm=trueso the resulting instance can be accessed over SSH for inspection, debugging, or recovery.Variables
ALEPH_DOMAINOptional custom domain for the published
js-peersite.When this is set and the workflow runs on
main, the workflow can attach or relink that domain to the latest published site.This requires the DNS setup expected by Aleph custom-domain hosting:
https://aleph-console.testnet.network/computing/custom_domain/setup/#overview
ALEPH_RETENTION_DAYSOptional retention hint for Aleph web hosting uploads.
This controls how long preview or published site artifacts should be retained by the hosting layer when that workflow path supports retention configuration.
ALEPH_VM_CRN_HASHOptional default CRN hash for VM deployment.
If set, the deploy workflow will prefer that specific Aleph CRN instead of selecting one automatically.
Without these values, parts of the workflow may still run, but publish, deploy, SSH access, and custom-domain behavior will not work fully.
Scope
This PR covers the Aleph workflow and operations layer:
.github/actions/aleph-vm-deploy/action.yml.github/workflows/build-aleph-go-peer-rootfs.yml.github/workflows/uc-go-peer-rootfs-reusable.yml.github/workflows/js-peer.ymlgo-peer/aleph/uc-go-peer.jsongo-peer/aleph/relay-probe-policy.jsongo-peer/aleph/README.md