Initial commit: docker compose for frame stack

This commit is contained in:
2026-03-21 23:34:52 +01:00
commit e90d4292d5
4 changed files with 148 additions and 0 deletions

86
README.md Normal file
View File

@@ -0,0 +1,86 @@
# frame-deploy
Docker Compose setup for the full Frame stack:
- **frame-backend** — Go REST API (auth, users, posts)
- **frame-cms** — React/Nginx admin frontend
- **postgres** — PostgreSQL 18
---
## Quick Start
### 1. Clone this repo
```bash
git clone https://git.beatrice.wtf/panic.haus/frame-deploy
cd frame-deploy
```
### 2. Configure the backend
```bash
cp backend.env.example backend.env
```
Edit `backend.env` and at minimum set:
| Variable | What to change |
|---|---|
| `DATABASE_URL` | Leave as-is (points to the `postgres` service) |
| `JWT_SECRET` | **Change this in production** |
| `CORS_ALLOWED_ORIGINS` | URL where frame-cms will be served |
| `FRONTEND_BASE_URL` | Same URL (used in email links) |
| `SMTP_*` | Optional — needed for email verification |
### 3. Pull images and start
```bash
docker compose pull
docker compose up -d
```
Services will be available at:
- **CMS:** http://localhost:3000
- **API:** http://localhost:8080
Ports can be overridden via environment variables before `docker compose up`:
```bash
BACKEND_PORT=9090 CMS_PORT=4000 docker compose up -d
```
### 4. Create an admin user (first time only)
If SMTP is not configured, email verification won't work — you'll need to manually verify the user in the DB:
```bash
docker compose exec postgres psql -U postgres -d appdb \
-c "UPDATE users SET email_verified = true WHERE email = 'your@email.com';"
```
---
## Data persistence
Postgres data is stored in `./data/postgres/` (relative to this directory).
This folder is gitignored — back it up separately.
---
## Updating
```bash
docker compose pull
docker compose up -d
```
---
## Stopping
```bash
docker compose down # stop, keep data
docker compose down -v # stop + remove volumes (destructive)
```