cmc-sales/scripts/VAULT_QUICKSTART.md
2025-11-23 10:39:57 +11:00

2.8 KiB

Go Vault Quick Start

TL;DR - Run Vault in Docker Container

One-Time Setup

# 1. Rebuild Docker image with vault binary
cd ~/src/cmc-sales
docker compose -f docker-compose.prod.yml build cmc-prod-go
docker compose -f docker-compose.prod.yml up -d cmc-prod-go

# 2. Verify vault binary exists
docker exec -t cmc-prod-go ls -lh /root/vault

# 3. Test run manually
docker exec -t cmc-prod-go ./vault --mode=local \
  --vaultdir=/var/www/vaultmsgs/new \
  --processeddir=/var/www/vaultmsgs/cur \
  --emaildir=/var/www/emails \
  --dbhost=cmc-prod-db \
  --dbuser=cmc \
  --dbpass="xVRQI&cA?7AU=hqJ!%au" \
  --dbname=cmc

# 4. Copy cron script to server
# (assuming you're on your local machine)
scp scripts/vault-cron-prod.sh cmc@sales.cmctechnologies.com.au:~/scripts/
ssh cmc@sales.cmctechnologies.com.au
chmod +x ~/scripts/vault-cron-prod.sh
mkdir -p ~/logs

# 5. Add to crontab
crontab -e
# Add: */5 * * * * /home/cmc/scripts/vault-cron-prod.sh

Manual Run (for testing)

# Run vault once
docker exec -t cmc-prod-go ./vault --mode=local \
  --vaultdir=/var/www/vaultmsgs/new \
  --processeddir=/var/www/vaultmsgs/cur \
  --emaildir=/var/www/emails \
  --dbhost=cmc-prod-db \
  --dbuser=cmc \
  --dbpass="xVRQI&cA?7AU=hqJ!%au" \
  --dbname=cmc

Monitor Logs

# Watch the log file
tail -f ~/logs/vault-go.log

# Check cron is running
crontab -l
ps aux | grep cron

Command Variations

Local Mode (filesystem processing)

docker exec -t cmc-prod-go ./vault --mode=local \
  --vaultdir=/var/www/vaultmsgs/new \
  --processeddir=/var/www/vaultmsgs/cur \
  --emaildir=/var/www/emails \
  --dbhost=cmc-prod-db \
  --dbuser=cmc \
  --dbpass="xVRQI&cA?7AU=hqJ!%au" \
  --dbname=cmc

Gmail Index Mode (requires OAuth setup)

docker exec -t cmc-prod-go ./vault --mode=index \
  --gmail-query="is:unread newer_than:1d" \
  --credentials=credentials.json \
  --token=token.json \
  --dbhost=cmc-prod-db \
  --dbuser=cmc \
  --dbpass="xVRQI&cA?7AU=hqJ!%au" \
  --dbname=cmc

Troubleshooting

Vault binary not found

docker compose -f docker-compose.prod.yml build cmc-prod-go
docker compose -f docker-compose.prod.yml up -d cmc-prod-go

Check what's in vaultmsgs/new

ls -la /home/cmc/files/vaultmsgs/new/

Database connection test

docker exec -it cmc-prod-go sh
nc -zv cmc-prod-db 3306

Check if directories are mounted

docker exec -it cmc-prod-go ls -la /var/www/vaultmsgs/

Files Changed

See VAULT_DEPLOYMENT.md for full documentation.