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

120 lines
2.8 KiB
Markdown

# Go Vault Quick Start
## TL;DR - Run Vault in Docker Container
### One-Time Setup
```bash
# 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)
```bash
# 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
```bash
# 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)
```bash
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)
```bash
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
```bash
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
```bash
ls -la /home/cmc/files/vaultmsgs/new/
```
### Database connection test
```bash
docker exec -it cmc-prod-go sh
nc -zv cmc-prod-db 3306
```
### Check if directories are mounted
```bash
docker exec -it cmc-prod-go ls -la /var/www/vaultmsgs/
```
## Files Changed
- [Dockerfile.prod.go](../Dockerfile.prod.go) - Added vault binary build
- [docker-compose.prod.yml](../docker-compose.prod.yml) - Added volume mounts for vault directories
- [scripts/vault-cron-prod.sh](vault-cron-prod.sh) - Cron script
See [VAULT_DEPLOYMENT.md](VAULT_DEPLOYMENT.md) for full documentation.