Files
GopherGate/deployment.md
T
hobokenchicken b7df3108fa
CI / Lint (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Build (push) Has been cancelled
docs: update README, TODO, and deployment docs
README: Added hierarchical routing, classifier bucket mapping, two-level
dispatch, model groups table, DeepSeek language note, deploy script, and
updated model names to match current models.dev registry.

TODO: Added 15 completed items covering model groups, routing, dispatch,
and provider fixes from May 7 session.

deployment.md: Added deploy.sh instructions.
2026-05-07 14:07:52 -04:00

70 lines
1.6 KiB
Markdown

# Deployment Guide (Go)
This guide covers deploying the Go-based GopherGate.
## Environment Setup
1. **Mandatory Configuration:**
Create a `.env` file from the example:
```bash
cp .env.example .env
```
Ensure `LLM_PROXY__ENCRYPTION_KEY` is set to a secure 32-byte string.
2. **Data Directory:**
The proxy stores its database in `./data/llm_proxy.db` by default. Ensure this directory exists and is writable.
## Binary Deployment
### 1. Build
```bash
go build -o gophergate ./cmd/gophergate
```
### 2. Run
```bash
./gophergate
```
### Quick Deploy Script
A `deploy.sh` script is provided for production restarts:
```bash
./deploy.sh
```
This script will:
1. Stop any running gophergate process
2. Pull latest changes from git
3. Build the application
4. Start it in the background (logs to `gophergate.log`)
If the build fails, the previous binary is left untouched and the script exits.
## Docker Deployment
The project includes a multi-stage `Dockerfile` for minimal image size.
### 1. Build Image
```bash
docker build -t gophergate .
```
### 2. Run Container
```bash
docker run -d \
--name gophergate \
-p 8080:8080 \
-v $(pwd)/data:/app/data \
--env-file .env \
gophergate
```
## Production Considerations
- **SSL/TLS:** It is recommended to run the proxy behind a reverse proxy like Nginx or Caddy for SSL termination.
- **Backups:** Regularly backup the `data/llm_proxy.db` file.
- **Monitoring:** Monitor the `/health` endpoint for system status.
- **Logs:** When started with `deploy.sh` or `nohup`, logs are written to `gophergate.log`.