Add stack for shopify faucet #33
@ -0,0 +1,29 @@
|
|||||||
|
services:
|
||||||
|
faucet:
|
||||||
|
restart: unless-stopped
|
||||||
|
image: cerc/laconic-shopify-faucet:local
|
||||||
|
command: ["bash", "-c", "./start-faucet.sh"]
|
||||||
|
environment:
|
||||||
|
CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
|
||||||
|
CERC_LACONICD_RPC_ENDPOINT: ${CERC_LACONICD_RPC_ENDPOINT:-http://laconicd:26657}
|
||||||
|
CERC_FAUCET_KEY: ${CERC_FAUCET_KEY}
|
||||||
|
CERC_LACONICD_CHAIN_ID: ${CERC_LACONICD_CHAIN_ID:-laconic_9000-1}
|
||||||
|
CERC_LACONICD_PREFIX: ${CERC_LACONICD_PREFIX:-laconic}
|
||||||
|
CERC_LACONICD_GAS_PRICE: ${CERC_LACONICD_GAS_PRICE:-1}
|
||||||
|
volumes:
|
||||||
|
- faucet-data:/app/db
|
||||||
|
- ../config/laconic-shopify-faucet/start-faucet.sh:/app/start-faucet.sh
|
||||||
|
- ../config/laconic-shopify-faucet/config-template.toml:/app/environments/config-template.toml
|
||||||
|
ports:
|
||||||
|
- 3000
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 10
|
||||||
|
start_period: 5s
|
||||||
|
extra_hosts:
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
faucet-data:
|
@ -0,0 +1,12 @@
|
|||||||
|
[upstream]
|
||||||
|
rpcEndpoint = "REPLACE_WITH_CERC_LACONICD_RPC_ENDPOINT"
|
||||||
|
chainId = "REPLACE_WITH_CERC_LACONICD_CHAIN_ID"
|
||||||
|
prefix = "REPLACE_WITH_CERC_LACONICD_PREFIX"
|
||||||
|
gasPrice = "REPLACE_WITH_CERC_LACONICD_GAS_PRICE"
|
||||||
|
faucetKey = "REPLACE_WITH_CERC_FAUCET_KEY"
|
||||||
|
denom = "alnt"
|
||||||
|
|
||||||
|
[server]
|
||||||
|
port=3000
|
||||||
|
enableRateLimit=false
|
||||||
|
dbDir = "db"
|
29
stack-orchestrator/config/laconic-shopify-faucet/start-faucet.sh
Executable file
29
stack-orchestrator/config/laconic-shopify-faucet/start-faucet.sh
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
config_template=$(cat environments/config-template.toml)
|
||||||
|
target_config="./environments/local.toml"
|
||||||
|
|
||||||
|
# Check if faucet key is set
|
||||||
|
if [ -z "${CERC_FAUCET_KEY:-}" ]; then
|
||||||
|
echo "Error: CERC_FAUCET_KEY is not set. Exiting..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Using laconicd RPC endpoint: $CERC_LACONICD_RPC_ENDPOINT"
|
||||||
|
|
||||||
|
FAUCET_CONFIG=$(echo "$config_template" | \
|
||||||
|
sed -E "s|REPLACE_WITH_CERC_FAUCET_KEY|${CERC_FAUCET_KEY}|g; \
|
||||||
|
s|REPLACE_WITH_CERC_LACONICD_CHAIN_ID|${CERC_LACONICD_CHAIN_ID}|g; \
|
||||||
|
s|REPLACE_WITH_CERC_LACONICD_PREFIX|${CERC_LACONICD_PREFIX}|g; \
|
||||||
|
s|REPLACE_WITH_CERC_LACONICD_GAS_PRICE|${CERC_LACONICD_GAS_PRICE}|g; \
|
||||||
|
s|REPLACE_WITH_CERC_LACONICD_RPC_ENDPOINT|${CERC_LACONICD_RPC_ENDPOINT}|g; ")
|
||||||
|
|
||||||
|
echo "$FAUCET_CONFIG" > $target_config
|
||||||
|
echo "Starting faucet..."
|
||||||
|
node dist/index.js
|
5
stack-orchestrator/container-build/cerc-laconic-shopify-faucet/build.sh
Executable file
5
stack-orchestrator/container-build/cerc-laconic-shopify-faucet/build.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Build cerc/laconic-shopify-faucet
|
||||||
|
source ${CERC_CONTAINER_BASE_DIR}/build-base.sh
|
||||||
|
docker build -t cerc/laconic-shopify-faucet:local ${build_command_args} ${CERC_REPO_BASE_DIR}/laconic-faucet
|
121
stack-orchestrator/stacks/laconic-shopify-faucet/README.md
Normal file
121
stack-orchestrator/stacks/laconic-shopify-faucet/README.md
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
# laconic-shopify-faucet
|
||||||
|
|
||||||
|
Instructions for running the laconic faucet
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
* Clone the stack repo:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so fetch-stack git.vdb.to/cerc-io/testnet-laconicd-stack
|
||||||
|
```
|
||||||
|
|
||||||
|
* Clone the laconic-faucet respository:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-shopify-faucet setup-repositories
|
||||||
|
```
|
||||||
|
|
||||||
|
* Build the container image:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-shopify-faucet build-containers
|
||||||
|
```
|
||||||
|
|
||||||
|
This should create the `cerc/laconic-shopify-faucet` image locally
|
||||||
|
|
||||||
|
## Create a deployment
|
||||||
|
|
||||||
|
* Create a spec file for the deployment:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-shopify-faucet deploy init --output laconic-shopify-faucet-spec.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
* Edit `network` in the spec file to map container ports to host ports as required:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
network:
|
||||||
|
ports:
|
||||||
|
faucet:
|
||||||
|
- '3000:3000'
|
||||||
|
```
|
||||||
|
|
||||||
|
* Create a deployment from the spec file:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-shopify-faucet deploy create --spec-file laconic-shopify-faucet-spec.yml --deployment-dir laconic-shopify-faucet-deployment
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
* Inside the `laconic-shopify-faucet-deployment` deployment directory, open `config.env` file and set following env variables:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Private key of a funded faucet account
|
||||||
|
CERC_FAUCET_KEY=
|
||||||
|
|
||||||
|
# Optional
|
||||||
|
|
||||||
|
# laconicd RPC endpoint (default: http://laconicd:26657)
|
||||||
|
CERC_LACONICD_RPC_ENDPOINT=
|
||||||
|
|
||||||
|
# laconicd chain id (default: laconic_9000-1)
|
||||||
|
CERC_LACONICD_CHAIN_ID=
|
||||||
|
|
||||||
|
# laconicd address prefix (default: laconic)
|
||||||
|
CERC_LACONICD_PREFIX=
|
||||||
|
|
||||||
|
# laconicd gas price (default: 1)
|
||||||
|
CERC_LACONICD_GAS_PRICE=
|
||||||
|
```
|
||||||
|
|
||||||
|
## Start the deployment
|
||||||
|
|
||||||
|
```bash
|
||||||
|
laconic-so deployment --dir laconic-shopify-faucet-deployment start
|
||||||
|
```
|
||||||
|
|
||||||
|
## Check status
|
||||||
|
|
||||||
|
* To list down and monitor the running container:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# With status
|
||||||
|
docker ps
|
||||||
|
|
||||||
|
# Check logs for a container
|
||||||
|
docker logs -f <CONTAINER_ID>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Run
|
||||||
|
|
||||||
|
* Request tokens from the faucet for an account:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -X POST http://localhost:3000/faucet \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"address": "<laconicd_address>"}'
|
||||||
|
|
||||||
|
# Expected output:
|
||||||
|
# {"success":true,"txHash":"<tx_hash>"}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Clean up
|
||||||
|
|
||||||
|
* Stop the `laconic-shopify-faucet` service running in the background:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Stop the docker container
|
||||||
|
laconic-so deployment --dir laconic-shopify-faucet-deployment stop
|
||||||
|
```
|
||||||
|
|
||||||
|
* To stop the service and also delete data:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Stop the docker containers
|
||||||
|
laconic-so deployment --dir laconic-shopify-faucet-deployment stop --delete-volumes
|
||||||
|
|
||||||
|
# Remove deployment directory (deployment will have to be recreated for a re-run)
|
||||||
|
rm -r laconic-shopify-faucet-deployment
|
||||||
|
```
|
@ -0,0 +1,9 @@
|
|||||||
|
version: "1.0"
|
||||||
|
name: laconic-shopify-faucet
|
||||||
|
description: "Faucet for shopify app"
|
||||||
|
repos:
|
||||||
|
- git.vdb.to/cerc-io/laconic-faucet@shopify
|
||||||
|
containers:
|
||||||
|
- cerc/laconic-shopify-faucet
|
||||||
|
pods:
|
||||||
|
- laconic-shopify-faucet
|
Loading…
Reference in New Issue
Block a user