Runner for checking Internet Computer replica proposals
Clone, then do "npm install" in both fargate_task and lambda.
If you want to run the fargate_task, inside it:
npx runner
If you want to run the lambda:
- in index.mjs make sure you call
handler();
- then run it:
node index.mjs
It requires you to create an AWS Secrets, an AWS Parameter Store and a cloud server (like Hetzner).
Pretty much, the lambda is checking the open proposals, and if open, stores the new ids on the Parameter Store. Then on the fargate task:
- it uses the ssh key access in AWS Secrets to call the Hetzner server and run it.
- and the mail credentials on AWS Secrets to send email results.
Cloud server should have the capacity and OS requested by the replica script.
It should already have installed:
- podman
It requires that you have access to it through ssh console. Then please update AWS SECRETS and the config.js file of the fargate_task.
AWS Fargate runs a task, that is a Docker image.
That image is stored in AWS ECR public repository: https://gallery.ecr.aws/i2c0e4t6
If you don't have access, feel free to request access to Tiago or to create a public repo on your own (and update the commands below to your url).
-
Ensure you have aws cli and Docker desktop installed. Sign in with any account on your Docker Desktop.
-
Command to generate authentication token:
- aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/i2c0e4t6
-
Commands to update it (after authentication):
- docker build -t runner-replica . (or, if on M1/M2: docker buildx build --platform=linux/amd64 -t runner-replica .)
- docker tag runner-replica:latest public.ecr.aws/i2c0e4t6/runner-replica:latest
- docker push public.ecr.aws/i2c0e4t6/runner-replica:latest
v0:
- setup Hetzner
- copy manual script
- improve format
v1:
- run long task (AWS Fargate)
- add DSCVR notifier of result
- add email notifier
v1.1:
- add automatic trigger (AWS Lambda)
v2:
- make it easy for anyone to fork and config with their credentials