This commit is contained in:
JamBox
2026-02-15 21:03:42 -08:00
parent 5e5eb20618
commit 6488eac108
6 changed files with 169 additions and 3 deletions

87
README.md Normal file
View File

@@ -0,0 +1,87 @@
# Server Stack
Production infrastructure for **tessavb.com**, **jamesvanboxtel.com**, and developer services.
## Architecture
Runs on a GCP `e2-micro` (Debian 12, Always Free Tier) at `35.230.59.34`.
| Service | Container | Domain | Port |
|---------|-----------|--------|------|
| Reverse Proxy / SSL | `caddy` | — | 80, 443 |
| Git Hosting | `gitea` | git.jamesvanboxtel.com | 3000 (internal) |
| Tessa's Site | `tessavb-app` | tessavb.com | 8080 (internal) |
| James's Site | `jamesvanboxtel-app` | jamesvanboxtel.com | 8080 (internal) |
**Caddy** auto-provisions Let's Encrypt SSL certificates and routes traffic to containers via Docker labels. **Gitea** provides private git hosting. Both apps are Node/Express placeholder sites.
## Directory Structure
```
server-stack/
docker-compose.yml # All service definitions
deploy.sh # Auto-deploy script (git pull + rebuild)
hooks.json # Webhook daemon config
.gitignore # Excludes data dirs from git
apps/
tessavb/ # tessavb.com source code
Dockerfile
server.js
package.json
data/ # SQLite/persistent data (gitignored)
jamesvanboxtel/ # jamesvanboxtel.com source code
Dockerfile
server.js
package.json
data/ # SQLite/persistent data (gitignored)
caddy_data/ # Caddy SSL certs + config (gitignored)
gitea_data/ # Gitea database + repos (gitignored)
```
## Manual Deploy
From your Mac:
```bash
cd /Users/jamesvanboxtel/Programming/websites/server-stack
git add -A && git commit -m "description" && git push
```
On the server (SSH):
```bash
cd ~/server-stack && git pull origin main && docker-compose up -d --build
```
## Auto Deploy (Not Yet Configured)
Once the webhook daemon is set up, pushing to Gitea will automatically trigger `deploy.sh`, which pulls and rebuilds containers. See TASKS.md for setup steps.
## Useful Commands
```bash
# View running containers
docker ps
# View logs for a service
docker logs caddy
docker logs gitea
docker logs tessavb-app
# Restart everything
docker-compose down && docker-compose up -d
# Rebuild a single app after code changes
docker-compose up -d --build tessavb-app
```
## DNS Records
**jamesvanboxtel.com** (Namecheap):
- `@` A `35.230.59.34`
- `git` A `35.230.59.34`
**tessavb.com** (Namecheap):
- `@` A `35.230.59.34`
## GCP Firewall
Ingress rule `allow-http` permits TCP ports 80, 443 from `0.0.0.0/0`.