Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mtgscan-cards/monolithic

Repository files navigation

mtgscan.cards Monolithic

A very simple web app for scanning and organizing MTG cards.

DeepWiki docs MDD

Deploy Frontend

Deploy Backend

Stack

  • Frontend: Vite + React w/ TypeScript
  • Backend: Python Flask
  • Database: PostgreSQL (via pg_pool)
  • Deployment: Docker Compose, Gunicorn, Static Site Host
  • CI/CD: GitHub Actions + self-hosted runner

Setup

1. Configure Environment Variables

Frontend (/vite-frontend/.env)

VITE_HCAPTCHA_SITEKEY=1234-1234-1234-1234
VITE_GOOGLE_CLIENT_ID=4321-4321-4321-4321.apps.googleusercontent.com
VITE_API_URL=http://localhost:5000
VITE_GITHUB_APP_CLIENT_ID=0987654321
VITE_FRONTEND_URL=http://localhost:5173

Backend (/core-backend-service/.env)

POSTGRES_USER=dbuser
POSTGRES_PASSWORD=dbpass
POSTGRES_DB=mtgdb
POSTGRES_HOST=mtg-db
POSTGRES_PORT=5432

HCAPTCHA_SECRET=0x0000000000000000000000000000000000000000
FAILED_ATTEMPTS_THRESHOLD_BACKOFF=3
FAILED_ATTEMPTS_THRESHOLD_BAN=5
BACKOFF_DURATION=10
BAN_DURATION=300

GOOGLE_CLIENT_ID=123456.apps.googleusercontent.com
GITHUB_APP_CLIENT_ID=1234567
GITHUB_APP_CLIENT_SECRET=1234567

FRONTEND_URL=http://localhost:5173
REFRESH_TOKEN_EXPIRE_DAYS=30

JWT_SECRET=replace-this-with-a-secure-key
FLASK_SECRET_KEY=replace-this-with-a-secure-key

FLASK_ENV=development
LOG_FILE_PATH=/app/logs/app.log
LOG_LEVEL=INFO

INFER_SERVICE_URL=http://descriptor-infer-service:5001

Backend (/inference-service/.env)

POSTGRES_USER=mtguser
POSTGRES_PASSWORD=mtgpass
POSTGRES_DB=mtgdb
POSTGRES_HOST=mtg-db
POSTGRES_PORT=5432

# Scheduler & Redis lock support
REDIS_HOST=mtg-redis

# Optional log config
LOG_FILE_PATH=/app/logs/app.log
LOG_LEVEL=INFO

HF_UPLOAD_TOKEN=hf_xxxx

2. Deployment

docker-compose up -d --build
cd /vite-frontend
npm run dev

LICENSE

This Project: mtgscan-cards/monolithic Is Licensed under the GNU General Public License v3.0 See LICENSE for details.