services: daemon: image: ghcr.io/minhoyoo-iotrust/waiaas:latest container_name: waiaas-daemon ports: - "127.0.0.1:3100:3100" volumes: - waiaas-data:/data environment: - WAIAAS_DATA_DIR=/data - WAIAAS_DAEMON_HOSTNAME=0.0.0.0 restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3100/health"] interval: 30s timeout: 5s start_period: 10s retries: 3
services: daemon: image: ghcr.io/minhoyoo-iotrust/waiaas:latest container_name: waiaas-daemon ports: - "127.0.0.1:3100:3100" volumes: - waiaas-data:/data environment: - WAIAAS_DATA_DIR=/data - WAIAAS_DAEMON_HOSTNAME=0.0.0.0 restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3100/health"] interval: 30s timeout: 5s start_period: 10s retries: 3
services: daemon: image: ghcr.io/minhoyoo-iotrust/waiaas:latest container_name: waiaas-daemon ports: - "127.0.0.1:3100:3100" volumes: - waiaas-data:/data environment: - WAIAAS_DATA_DIR=/data - WAIAAS_DAEMON_HOSTNAME=0.0.0.0 restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3100/health"] interval: 30s timeout: 5s start_period: 10s retries: 3
services: daemon: secrets: - master_password - solana_rpc_mainnet - ethereum_rpc_mainnet environment: - WAIAAS_MASTER_PASSWORD_FILE=/run/secrets/master_password - WAIAAS_RPC_SOLANA_MAINNET_FILE=/run/secrets/solana_rpc_mainnet - WAIAAS_RPC_EVM_ETHEREUM_MAINNET_FILE=/run/secrets/ethereum_rpc_mainnet secrets: master_password: file: ./secrets/master_password.txt solana_rpc_mainnet: file: ./secrets/solana_rpc_mainnet.txt ethereum_rpc_mainnet: file: ./secrets/ethereum_rpc_mainnet.txt
services: daemon: secrets: - master_password - solana_rpc_mainnet - ethereum_rpc_mainnet environment: - WAIAAS_MASTER_PASSWORD_FILE=/run/secrets/master_password - WAIAAS_RPC_SOLANA_MAINNET_FILE=/run/secrets/solana_rpc_mainnet - WAIAAS_RPC_EVM_ETHEREUM_MAINNET_FILE=/run/secrets/ethereum_rpc_mainnet secrets: master_password: file: ./secrets/master_password.txt solana_rpc_mainnet: file: ./secrets/solana_rpc_mainnet.txt ethereum_rpc_mainnet: file: ./secrets/ethereum_rpc_mainnet.txt
services: daemon: secrets: - master_password - solana_rpc_mainnet - ethereum_rpc_mainnet environment: - WAIAAS_MASTER_PASSWORD_FILE=/run/secrets/master_password - WAIAAS_RPC_SOLANA_MAINNET_FILE=/run/secrets/solana_rpc_mainnet - WAIAAS_RPC_EVM_ETHEREUM_MAINNET_FILE=/run/secrets/ethereum_rpc_mainnet secrets: master_password: file: ./secrets/master_password.txt solana_rpc_mainnet: file: ./secrets/solana_rpc_mainnet.txt ethereum_rpc_mainnet: file: ./secrets/ethereum_rpc_mainnet.txt
mkdir -p secrets
chmod 700 secrets # Create master password (generates wallet encryption key)
openssl rand -base64 32 > secrets/master_password.txt # Add RPC endpoints for mainnet access
echo "https://api.mainnet-beta.solana.com" > secrets/solana_rpc_mainnet.txt
echo "https://eth-mainnet.alchemyapi.io/v2/your-key" > secrets/ethereum_rpc_mainnet.txt # Restrict file permissions
chmod 600 secrets/*.txt
mkdir -p secrets
chmod 700 secrets # Create master password (generates wallet encryption key)
openssl rand -base64 32 > secrets/master_password.txt # Add RPC endpoints for mainnet access
echo "https://api.mainnet-beta.solana.com" > secrets/solana_rpc_mainnet.txt
echo "https://eth-mainnet.alchemyapi.io/v2/your-key" > secrets/ethereum_rpc_mainnet.txt # Restrict file permissions
chmod 600 secrets/*.txt
mkdir -p secrets
chmod 700 secrets # Create master password (generates wallet encryption key)
openssl rand -base64 32 > secrets/master_password.txt # Add RPC endpoints for mainnet access
echo "https://api.mainnet-beta.solana.com" > secrets/solana_rpc_mainnet.txt
echo "https://eth-mainnet.alchemyapi.io/v2/your-key" > secrets/ethereum_rpc_mainnet.txt # Restrict file permissions
chmod 600 secrets/*.txt
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d
# Update RPC endpoint
echo "https://new-rpc-endpoint.com" > secrets/solana_rpc_mainnet.txt # Reload configuration (sends SIGHUP to daemon)
docker compose kill -s SIGHUP daemon
# Update RPC endpoint
echo "https://new-rpc-endpoint.com" > secrets/solana_rpc_mainnet.txt # Reload configuration (sends SIGHUP to daemon)
docker compose kill -s SIGHUP daemon
# Update RPC endpoint
echo "https://new-rpc-endpoint.com" > secrets/solana_rpc_mainnet.txt # Reload configuration (sends SIGHUP to daemon)
docker compose kill -s SIGHUP daemon
# 1. Create new master password
openssl rand -base64 32 > secrets/master_password_new.txt # 2. Migrate wallets to new password (requires downtime)
docker compose down
docker compose -f docker-compose.yml -f docker-compose.secrets.yml run --rm daemon migrate-master-password # 3. Replace old password file
mv secrets/master_password_new.txt secrets/master_password.txt
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d
# 1. Create new master password
openssl rand -base64 32 > secrets/master_password_new.txt # 2. Migrate wallets to new password (requires downtime)
docker compose down
docker compose -f docker-compose.yml -f docker-compose.secrets.yml run --rm daemon migrate-master-password # 3. Replace old password file
mv secrets/master_password_new.txt secrets/master_password.txt
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d
# 1. Create new master password
openssl rand -base64 32 > secrets/master_password_new.txt # 2. Migrate wallets to new password (requires downtime)
docker compose down
docker compose -f docker-compose.yml -f docker-compose.secrets.yml run --rm daemon migrate-master-password # 3. Replace old password file
mv secrets/master_password_new.txt secrets/master_password.txt
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d
docker run -d \ --name waiaas \ -p 127.0.0.1:3100:3100 \ -v waiaas-data:/data \ -e WAIAAS_AUTO_PROVISION=true \ ghcr.io/minhoyoo-iotrust/waiaas:latest # Retrieve auto-generated password
docker exec waiaas cat /data/recovery.key
docker run -d \ --name waiaas \ -p 127.0.0.1:3100:3100 \ -v waiaas-data:/data \ -e WAIAAS_AUTO_PROVISION=true \ ghcr.io/minhoyoo-iotrust/waiaas:latest # Retrieve auto-generated password
docker exec waiaas cat /data/recovery.key
docker run -d \ --name waiaas \ -p 127.0.0.1:3100:3100 \ -v waiaas-data:/data \ -e WAIAAS_AUTO_PROVISION=true \ ghcr.io/minhoyoo-iotrust/waiaas:latest # Retrieve auto-generated password
docker exec waiaas cat /data/recovery.key
# Extract auto-generated password
MASTER_PASSWORD=$(docker exec waiaas cat /data/recovery.key) # Create proper secret file
echo "$MASTER_PASSWORD" > secrets/master_password.txt
chmod 600 secrets/master_password.txt # Redeploy with secrets overlay
docker compose down
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d # Remove recovery.key file
docker exec waiaas rm /data/recovery.key
# Extract auto-generated password
MASTER_PASSWORD=$(docker exec waiaas cat /data/recovery.key) # Create proper secret file
echo "$MASTER_PASSWORD" > secrets/master_password.txt
chmod 600 secrets/master_password.txt # Redeploy with secrets overlay
docker compose down
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d # Remove recovery.key file
docker exec waiaas rm /data/recovery.key
# Extract auto-generated password
MASTER_PASSWORD=$(docker exec waiaas cat /data/recovery.key) # Create proper secret file
echo "$MASTER_PASSWORD" > secrets/master_password.txt
chmod 600 secrets/master_password.txt # Redeploy with secrets overlay
docker compose down
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d # Remove recovery.key file
docker exec waiaas rm /data/recovery.key
git clone https://github.com/minhoyoo-iotrust/WAIaaS.git
cd WAIaaS
mkdir -p secrets && chmod 700 secrets
git clone https://github.com/minhoyoo-iotrust/WAIaaS.git
cd WAIaaS
mkdir -p secrets && chmod 700 secrets
git clone https://github.com/minhoyoo-iotrust/WAIaaS.git
cd WAIaaS
mkdir -p secrets && chmod 700 secrets
openssl rand -base64 32 > secrets/master_password.txt
chmod 600 secrets/master_password.txt
openssl rand -base64 32 > secrets/master_password.txt
chmod 600 secrets/master_password.txt
openssl rand -base64 32 > secrets/master_password.txt
chmod 600 secrets/master_password.txt
echo "https://your-solana-rpc.com" > secrets/solana_rpc_mainnet.txt
echo "https://your-ethereum-rpc.com" > secrets/ethereum_rpc_mainnet.txt
chmod 600 secrets/*.txt
echo "https://your-solana-rpc.com" > secrets/solana_rpc_mainnet.txt
echo "https://your-ethereum-rpc.com" > secrets/ethereum_rpc_mainnet.txt
chmod 600 secrets/*.txt
echo "https://your-solana-rpc.com" > secrets/solana_rpc_mainnet.txt
echo "https://your-ethereum-rpc.com" > secrets/ethereum_rpc_mainnet.txt
chmod 600 secrets/*.txt
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d
curl http://127.0.0.1:3100/health
# Should return {"status": "healthy"}
curl http://127.0.0.1:3100/health
# Should return {"status": "healthy"}
curl http://127.0.0.1:3100/health
# Should return {"status": "healthy"} - Clone and setup secrets: - Generate master password: - Add RPC endpoints: - Deploy with secrets: - Verify deployment: