DigitalOcean Droplet Setup
Bring-up procedure for the Atrium off-chain services droplet (Phase 7).
Droplet Spec
- Region: NYC1 (or closest to Arbitrum Sepolia RPC)
- Size: s-2vcpu-4gb ($24/mo)
- OS: Ubuntu 24.04 LTS
- Monitoring: enabled
Initial Setup
# SSH in as root
ssh root@<droplet-ip>
# Create service user
useradd -m -s /bin/bash atrium
mkdir -p /srv/atrium /var/log/{notifier,vigil-keeper,lantern-attestor}
chown -R atrium:atrium /srv/atrium /var/log/{notifier,vigil-keeper,lantern-attestor}
# Install Node.js 20 LTS
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
# Install PM2
npm install -g pm2
# Install Doppler CLI
curl -Ls https://cli.doppler.com/install.sh | sh
Deploy Services
su - atrium
# Clone and build
cd /srv/atrium
git clone <repo-url> .
cd services/notifier && npm ci && npm run build && cd ../..
cd services/vigil-keeper && npm ci && npm run build && cd ../..
cd services/lantern-attestor && npm ci && npm run build && cd ../..
# Configure Doppler
doppler login
doppler setup --project atrium --config staging
Environment Variables (via Doppler)
Notifier
SCRIBE_URLSENDGRID_API_KEYDISCORD_WEBHOOK_URLTELEGRAM_BOT_TOKENSENTRY_DSN
Vigil-Keeper
KEEPER_PRIVATE_KEYARBITRUM_SEPOLIA_RPCVIGIL_ADDRESSSENTRY_DSN
Lantern-Attestor
LANTERN_ATTESTOR_ADDRESSCOFFER_ADDRESSSCRIBE_URLARBITRUM_SEPOLIA_RPCLANTERN_SIGNER_KEYWEB3_STORAGE_TOKENSENTRY_DSN
Start Services
# Start all three via PM2
cd /srv/atrium/services/notifier && pm2 start ecosystem.config.cjs
cd /srv/atrium/services/vigil-keeper && pm2 start ecosystem.config.cjs
cd /srv/atrium/services/lantern-attestor && pm2 start ecosystem.config.cjs
# Save PM2 process list for auto-restart on reboot
pm2 save
pm2 startup systemd -u atrium --hp /home/atrium
Monitoring
pm2 status
pm2 logs atrium-notifier --lines 50
pm2 monit
Rotation / Updates
cd /srv/atrium && git pull
cd services/notifier && npm ci && npm run build
pm2 restart atrium-notifier
# Repeat for other services