{"id":27935920,"url":"https://github.com/karped1em/steam-code-gate","last_synced_at":"2026-04-25T21:33:10.825Z","repository":{"id":250654095,"uuid":"805459625","full_name":"KARPED1EM/Steam-Code-Gate","owner":"KARPED1EM","description":"Displays Steam login codes received via email in real time on a web page","archived":false,"fork":false,"pushed_at":"2025-09-29T08:07:27.000Z","size":32,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-29T10:08:57.022Z","etag":null,"topics":["email","flask","python","steam","website"],"latest_commit_sha":null,"homepage":"https://stm.leever.cn","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KARPED1EM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-24T16:11:17.000Z","updated_at":"2025-09-29T08:26:47.000Z","dependencies_parsed_at":"2025-05-07T06:51:23.422Z","dependency_job_id":null,"html_url":"https://github.com/KARPED1EM/Steam-Code-Gate","commit_stats":null,"previous_names":["karped1em/steam-code-gate"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/KARPED1EM/Steam-Code-Gate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KARPED1EM%2FSteam-Code-Gate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KARPED1EM%2FSteam-Code-Gate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KARPED1EM%2FSteam-Code-Gate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KARPED1EM%2FSteam-Code-Gate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KARPED1EM","download_url":"https://codeload.github.com/KARPED1EM/Steam-Code-Gate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KARPED1EM%2FSteam-Code-Gate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32278249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["email","flask","python","steam","website"],"created_at":"2025-05-07T06:51:16.266Z","updated_at":"2026-04-25T21:33:10.820Z","avatar_url":"https://github.com/KARPED1EM.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 🚪 Steam Code Gate\n\n**Steam Verification Code Hosting Service**  \nDisplay Steam email verification codes and OTP (Steam TOTP) in a centralized web interface.\n\n\u003cbr/\u003e\n\nEnglish | [简体中文](./README.zh-CN.md)\n\n\u003cbr/\u003e\n\n![Python](https://img.shields.io/badge/python-3.13%2B-blue?style=flat-square)\n![FastAPI](https://img.shields.io/badge/FastAPI-0.128%2B-009688?style=flat-square)\n![Docker](https://img.shields.io/badge/docker-ready-2496ED?style=flat-square\u0026logo=docker\u0026logoColor=white)\n![License](https://img.shields.io/github/license/karped1em/steam-code-gate?style=flat-square)\n\n\u003c/div\u003e\n\n---\n\n## ✨ Features\n\n- 👥 **Multi-user System**  \n  Guest / Admin / Super Admin roles supported\n\n- 🔐 **Multi-account Hosting**  \n  Manage multiple Steam accounts simultaneously\n\n- 🔄 **Dual Verification Modes**  \n  Email verification codes and Steam TOTP (OTP)\n\n- 🛡️ **Permission Control**  \n  Guests access via passcode, admins manage their own accounts, super admins manage all\n\n- ⚡ **Automatic Updates**  \n  OTP auto-refresh, email codes fetched on demand with debounce protection\n\n---\n\n## 🔑 Default Credentials (Important)\n\nOn first startup, the system provides a built-in administrator account:\n\n```\nUsername: admin\nPassword: admin123\n````\n\n⚠️ **For security reasons, please change the password immediately after login.**\n\n---\n\n## 🧱 Tech Stack\n\n- **Backend**: FastAPI · SQLAlchemy · SQLite  \n- **Frontend**: Jinja2 · Vanilla JavaScript  \n- **Authentication**: JWT · bcrypt  \n- **Architecture**: Repository · DTO · SOLID  \n\n---\n\n## 🚀 Docker Deployment (Recommended)\n\nNo local Python environment required.\n\nCreate `compose.yml`:\n\n```yaml\nservices:\n  steam-code-gate:\n    image: karped1em/steam-code-gate:latest\n    container_name: steam-code-gate\n    restart: unless-stopped\n\n    ports:\n      - \"13780:8000\"\n\n    environment:\n      DATABASE_PATH: \"/data/scg.db\"\n      JWT_SECRET_KEY: \"please-change-me\"\n\n    volumes:\n      - scg-data:/data\n\nvolumes:\n  scg-data:\n    name: steam-code-gate-data\n````\n\nStart:\n\n```bash\ndocker compose up -d\n```\n\nOpen in browser:\n\n```\nhttp://\u003cSERVER-IP\u003e:13780\n```\n\n\u003e ⚠️ Make sure to change `JWT_SECRET_KEY` to a strong random value.\n\n---\n\n## 🧪 Local Development\n\nYou may configure environment variables using a `.env` file.\n\nExample `.env`:\n\n```env\nDATABASE_PATH=./scg.db\nJWT_SECRET_KEY=dev-secret\n```\n\nStart the application:\n\n```bash\nuv run python run.py\n```\n\nOpen:\n\n```\nhttp://localhost:8000\n```\n\n---\n\n## ⚙️ Configuration\n\n### Environment Variables (Required)\n\n\u003e ❗ Both environment variables are **mandatory** and must not be empty.\n\u003e The application will refuse to start if any of them is missing or empty.\n\n| Name             | Description               |\n| ---------------- | ------------------------- |\n| `DATABASE_PATH`  | SQLite database file path |\n| `JWT_SECRET_KEY` | JWT secret key            |\n\n### Database\n\nSQLite database file will be created automatically on first startup.\n\n---\n\n## 📦 Upgrade\n\nPull the latest image and restart:\n\n```bash\ndocker compose pull\ndocker compose up -d\n```\n\nData stored in volumes will not be affected.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarped1em%2Fsteam-code-gate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarped1em%2Fsteam-code-gate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarped1em%2Fsteam-code-gate/lists"}