# Stoatchat Deployment - Seattle VM

Stoatchat is a self-hosted Discord/Slack alternative (Revolt.chat fork) deployed on the Seattle VM at st.vish.gg.

## Server Information

- **Host**: Seattle VM (YOUR_WAN_IP)
- **Location**: /root/stoatchat
- **Repository**: https://github.com/stoatchat/stoatchat.git
- **Domain**: st.vish.gg (and subdomains)

## Quick Status Check

```bash
# SSH to Seattle VM first
ssh root@YOUR_WAN_IP

# Check all services
ps aux | grep revolt
ss -tlnp | grep -E "(14702|14703|14704|14705|14706|7880)"

# Test endpoints locally
curl -k https://api.st.vish.gg/ --resolve api.st.vish.gg:443:127.0.0.1
curl -k https://files.st.vish.gg/ --resolve files.st.vish.gg:443:127.0.0.1
curl -k https://proxy.st.vish.gg/ --resolve proxy.st.vish.gg:443:127.0.0.1
curl -k https://voice.st.vish.gg/ --resolve voice.st.vish.gg:443:127.0.0.1
```

## Service URLs

- **Main App**: https://st.vish.gg (frontend - placeholder currently)
- **API**: https://api.st.vish.gg
- **WebSocket Events**: wss://events.st.vish.gg
- **File Server**: https://files.st.vish.gg
- **Media Proxy**: https://proxy.st.vish.gg
- **Voice/Video**: wss://voice.st.vish.gg

## Architecture on Seattle VM

```
Internet → Cloudflare → Seattle VM (YOUR_WAN_IP)
                            │
                         Nginx (443/80)
                            │
                    ┌───────┼───────┐
                    │       │       │
              Stoatchat   Docker   System
              Services   Services  Services
                    │       │       │
                ┌───┼───┐   │   ┌───┼───┐
                │   │   │   │   │   │   │
              API Events Files Redis MongoDB MinIO
             14702 14703 14704 6380  27017  14009
                    │
                LiveKit
                 7880
```

## Current Status: ✅ OPERATIONAL

All services are running and tested on Seattle VM. The setup is production-ready except for the frontend client.

## Files in this Directory

- `docker-compose.yml` - Infrastructure services (Redis, MongoDB, MinIO, LiveKit)
- `Revolt.overrides.toml` - Main configuration file
- `livekit.yml` - LiveKit voice/video configuration
- `nginx-config.conf` - Nginx reverse proxy configuration
- `DEPLOYMENT_GUIDE.md` - Complete step-by-step deployment instructions
- `MIGRATION_GUIDE.md` - Instructions for moving to a new server
- `TROUBLESHOOTING.md` - Common issues and solutions
- `SERVICE_MANAGEMENT.md` - Start/stop/restart procedures

## Service Management

### Starting Services
```bash
cd /root/stoatchat

# Start infrastructure services
docker-compose up -d

# Stoatchat services are built and run as binaries
# They should auto-start, but if needed:
./target/debug/revolt-delta &    # API server
./target/debug/revolt-bonfire &  # Events WebSocket
./target/debug/revolt-autumn &   # File server
./target/debug/revolt-january &  # Media proxy
./target/debug/revolt-gifbox &   # GIF service
```

### Checking Status
```bash
# Check processes
ps aux | grep revolt

# Check ports
ss -tlnp | grep -E "(14702|14703|14704|14705|14706|7880)"

# Check Docker services
docker-compose ps

# Check nginx
systemctl status nginx
```

Last verified: 2026-02-11