---
description: Deploy ca-grow-ops-manager to multiple environments
---

# Deploying CA Grow Ops Manager

## Prerequisites

- SSH access to target servers (`veridian`, `tangible-aacorn`, etc.)
- Forgejo accessible at <https://git.runfoo.run>

## Deployment Environments

- **Test**: `veridian.runfoo.run` (Staff Testing)
- **Prod**: `tangible-aacorn` (Client Production)
- **Legacy**: `nexus-vector`

## Manual Deployment

// turbo-all

### 1. Run Deployment Script

From your local machine:

```bash
# Deploy to Test (Veridian) - Default
./deploy.sh test

# Deploy to Production (Tangible-Aacorn)
./deploy.sh prod
```

### 2. What happens?

The script will:

1. Push local code to Forgejo.
2. SSH into the target server.
3. Sync the repository.
4. Build and restart containers using Docker Compose.
5. Perform a health check.

## CI/CD (Automatic)

Pushing to `main` triggers the default pipeline defined in `.forgejo/workflows`. Currently, this may target the legacy `nexus-vector` or reference the new servers depending on your `deploy.yml` configuration.

## Troubleshooting

### Deployment Fails

1. **Permission Denied**: Check your SSH keys and access rights to the server.
2. **Environment Issues**: Check `.env` files on the server (`/srv/containers/...`).
3. **Logs**:

   ```bash
   ssh admin@veridian.runfoo.run "cd /srv/containers/ca-grow-ops-manager-test && docker compose logs -f"
   ```

## URLs

- **Test Site**: <http://veridian.runfoo.run:8010> (Example)
- **Repo**: <https://git.runfoo.run/malty/ca-grow-ops-manager>
