Entrypoint now fetches RSWAG_SMTP_PASSWORD from claude-ops /mail folder if SMTP_PASSWORD is not already set. This allows the rSwag container to get its SMTP credentials without needing direct write access to the .env file. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| backend | ||
| backlog | ||
| config | ||
| designs | ||
| frontend | ||
| spaces | ||
| .env.example | ||
| .gitignore | ||
| CLAUDE.md | ||
| README.md | ||
| docker-compose.dev.yml | ||
| docker-compose.prod.yml | ||
| docker-compose.yml | ||
README.md
rSwag
Merchandise store for the rSpace ecosystem at rswag.online
Stack
- Frontend: Next.js 15 + shadcn/ui + Tailwind CSS + Geist font
- Backend: FastAPI + SQLAlchemy + Alembic
- Database: PostgreSQL
- Payments: Mollie (EU data residency)
- Fulfillment: Printful (apparel) + Prodigi (stickers/prints)
- AI Design: Gemini API for on-demand design generation
Architecture
rswag.online
│
▼
Cloudflare Tunnel → Traefik
│ │
▼ ▼
Next.js (3000) FastAPI (8000)
│
┌───────────────┼───────────────┐
▼ ▼ ▼
PostgreSQL Mollie POD APIs
Development
Quick Start
cp .env.example .env
# Edit .env with your API keys
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
# Backend: http://localhost:8000
# Frontend: http://localhost:3000
Local Development (without Docker)
# Backend
cd backend
pip install -e .
uvicorn app.main:app --reload
# Frontend
cd frontend
pnpm install
pnpm dev
Project Structure
rswag/
├── backend/ # FastAPI Python backend
│ ├── app/
│ │ ├── api/ # Route handlers
│ │ ├── models/ # SQLAlchemy ORM
│ │ ├── schemas/ # Pydantic models
│ │ ├── services/ # Business logic
│ │ └── pod/ # POD provider clients
│ └── alembic/ # Database migrations
├── frontend/ # Next.js 15 frontend
│ ├── app/ # App Router pages
│ ├── components/ # React components
│ └── lib/ # Utilities
├── designs/ # Design assets (in-repo)
│ ├── stickers/
│ ├── shirts/
│ └── misc/
└── config/ # POD provider config
Deployment
Deployed on Netcup RS 8000 via Docker Compose with Traefik reverse proxy.
ssh netcup "cd /opt/apps/rswag && git pull && docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build"