Run scripts from backend/.
Build locally, then copy binary to EC2 (recommended):
# local machine
cd /home/ws-73/OldFiles/projects/DevBits/backend
TARGET_GOOS=linux TARGET_GOARCH=amd64 ./scripts/build-backend-linux.sh
scp -i <key.pem> ./bin/devbits-api ec2-user@<EC2_PUBLIC_IP>:/tmp/devbits-apiOn the EC2 host:
cd /opt/devbits
# Save any local EC2 edits before pulling
git stash push -u -m "ec2-local-before-pull-$(date +%Y%m%d-%H%M%S)"
git pull origin aws-ready-main
cd backend
sudo mv /tmp/devbits-api ./bin/devbits-api
sudo chown ec2-user:ec2-user ./bin/devbits-api
sudo chmod +x ./bin/devbits-api
sudo ./scripts/install-aws-systemd-service.shIf you intentionally want to discard local EC2 changes instead:
cd /opt/devbits
git reset --hard
git clean -fd
git pull origin aws-ready-main
cd backend
./scripts/deploy-aws-native.shVerify:
sudo systemctl status devbits-api --no-pager
curl -i http://127.0.0.1:8080/healthRun on EC2:
# Service state
sudo systemctl is-active devbits-api
sudo systemctl status devbits-api --no-pager
# Process is listening on 8080
sudo ss -ltnp | grep ':8080'
# Recent service logs
sudo journalctl -u devbits-api -n 150 --no-pager
# Follow logs live while testing app traffic
sudo journalctl -u devbits-api -fDatabase connectivity check (from EC2):
# Ensure PostgreSQL client tools are installed
sudo dnf install -y postgresql15
# Uses DATABASE_URL from backend/.env
cd /opt/devbits/backend
set -a; . ./.env; set +a
psql "$DATABASE_URL" -c "select current_user, current_database();"DNS/public checks (from local machine or EC2):
dig +short devbits.app
curl -i https://devbits.app/health
curl -i https://devbits.app/privacy-policy
curl -i https://devbits.app/.well-known/assetlinks.json
curl -i https://devbits.app/apple-app-site-associationTarget group health check path should return 200:
curl -i http://127.0.0.1:8080/healthDeploy/build:
scripts/build-backend-linux.sh- Build backend binary to
bin/devbits-api.
- Build backend binary to
scripts/install-aws-systemd-service.sh- Install/restart
devbits-apisystemd service.
- Install/restart
scripts/deploy-aws-native.sh- Build + install/restart in one command.
scripts/update-live.sh- Wrapper for
deploy-aws-native.sh.
- Wrapper for
Database scripts (use DATABASE_URL in backend/.env):
scripts/reset-deployment-db.sh--keep-uploadsto keep uploads.scripts/backup-deployment-db.shscripts/restore-deployment-db.sh- restores latest
devbits-db-*.sqland matching uploads archive if present.
Required tools for DB scripts:
- Linux:
postgresqlclient package (psql,pg_dump)