MyGo 云音乐
Go와 MyGo로 만든 서드파티 네이버 클라우드 뮤직 데스크톱 클라이언트
주사위로 만화 큐를 만들고, 연속성을 고려해 자동으로 읽는 자체 호스팅 ComicPile
ComicPile is a dice-driven reading queue for your comic collection. Build your stack, roll the die, and read what comes up — continuity-aware and self-hosted.
미디어Python · TypeScriptGitHub @JoshCLWren온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A dice-driven comic-book reading tracker that helps you choose what to read next.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Roll to read. Rotate your stack.
Comic Pile is an open-source, dice-driven comic-reading tracker for turning a comic backlog into an actual reading habit. It manages the reading queue, tracks sessions and ratings, and makes "what should I read next?" a roll instead of another round of sorting the pile.README 전문 보기 ↗▶ Try the live demo at comic-pile.vercel.app
Data provided by ComicVine
Roll to read. Rotate your stack.
If Comic Pile helps you pick your next read, star the repo ⭐
Comic Pile is an open-source, dice-driven comic-reading tracker for turning a comic backlog into an actual reading habit. It manages the reading queue, tracks sessions and ratings, and makes "what should I read next?" a roll instead of another round of sorting the pile.
Live app · Deployment and Neon · Contributing · Code of Conduct · MIT License
git clone https://github.com/JoshCLWren/comic-pile.git
cd comic-pile
cp .env.example .env
make setup
make dev
The frontend runs at http://localhost:5173. The FastAPI service and Swagger UI run at http://localhost:8000 and http://localhost:8000/docs.
Comic Pile runs from source against a standard PostgreSQL database. The local path below uses the repository's bundled Docker Compose PostgreSQL service (host port 5435) and does not require Neon. For a hosted Neon database instead, see Self-hosting with Neon.
uvpnpmgit clone https://github.com/JoshCLWren/comic-pile.git
cd comic-pile
cp .env.example .env
Edit .env as needed. The local defaults in .env.example already point at the bundled database:
DATABASE_URL=postgresql+asyncpg://comicpile:comicpile_password@localhost:5435/comicpile
| Variable | Required? | Notes |
|---|---|---|
DATABASE_URL | Yes | Default local: postgresql+asyncpg://comicpile:comicpile_password@localhost:5435/comicpile |
SECRET_KEY | Yes | Generate with python -c "import secrets; print(secrets.token_urlsafe(32))" |
ENVIRONMENT | No (defaults) | development / production / test |
CORS_ORIGINS | Required in production | Comma-separated origins |
COMICVINE_API_KEY | Optional | Used by ComicVine hydrator/backfill scripts (docs/COMICVINE_HYDRATOR.md); not listed in .env.example |
See .env.example for additional optional settings (access-token lifetime, logging, rating system, etc.). Do not invent variable names; only names present in .env.example or existing docs are supported.
make setup starts the local PostgreSQL container, waits for it to be ready, installs Python and frontend dependencies, runs Alembic migrations, and seeds deterministic demo data:
make setup
This uses docker compose up -d db, which exposes PostgreSQL on host port 5435 (container port 5432). Data persists in the postgres_data Docker volume.
If you prefer to manage containers yourself, the equivalent is:
docker compose up -d db
# wait for readiness, then:
uv sync --all-extras
pnpm install --frozen-lockfile
make migrate
make seed-dev
The full Compose stack is also available (docker compose up -d), which additionally runs the API on http://localhost:8003 and pgAdmin on http://localhost:5051. The frontend is not served by Compose; run it separately (step 4).
make dev
This starts the Vite frontend and the FastAPI API together. Alternatively, run only the API with make dev-api.
Comic Vine integration is optional for a basic local run; the app works without it. A key is only needed for live ComicVine hydration/backfill (see docs/COMICVINE_HYDRATOR.md).
To obtain a key:
COMICVINE_API_KEY=your-key uv run python scripts/hydrate_comicvine_issues.py --user-id 1 --live-refresh --output .cache/comicvine-hydrator/user-1-live.json
For local-first runs you can also point at a local ComicVine SQLite snapshot (COMICVINE_LOCAL_DB / COMICPILE_COMICVINE_SQLITE_PATH) and skip the API key entirely.
For local-first runs with the hydrator script, use the --comicvine-db parameter and omit --live-refresh to avoid requiring an API key:
uv run python scripts/hydrate_comicvine_issues.py --user-id 1 --comicvine-db ./localcv.db --output .cache/comicvine-hydrator/user-1-report.json
Other scripts use environment variables for local snapshots:
scripts/backfill_read_comicvine.py uses COMICVINE_LOCAL_DBcomic_pile/local_comicvine.py uses COMICPILE_COMICVINE_SQLITE_PATHAfter make setup + make dev (or the Compose equivalent):
GET http://localhost:8000/api/v1/health/dependenciesA healthy local response from the dependency endpoint confirms the API can reach PostgreSQL. The endpoint is open whenever HEALTH_CHECK_TOKEN is unset, regardless of ENVIRONMENT. In production, set HEALTH_CHECK_TOKEN in the server's environment and send its value in the X-Health-Token header.
Neon remains the maintained production database. For self-hosting on Neon, follow Self-hosting with Neon. The local path above stands on its own without Neon.
Comic Pile is a PostgreSQL application, so local development can use the bundled local database while a hosted installation can use Neon. The maintained production deployment runs on Neon.
The application accepts standard postgresql:// or postgres:// connection strings and normalizes them to the asyncpg driver at runtime. Alembic migrations use the synchronous psycopg driver. See the deployment guide for a complete Neon setup path, including runtime and migration connection guidance.
asyncpgpsycopgmake dev # frontend + API development servers
make dev-api # API only
make migrate # run Alembic migrations
make seed # seed local sample data
make lint # repository lint/type checks
make verify # complete local verification suite
make verify-e2e # Chromium browser validation when required
make tidy # sweep local generated artifacts
Application database access is async PostgreSQL via asyncpg and SQLAlchemy AsyncSession. Alembic migrations are the only supported synchronous database exception. Do not skip or weaken failing tests to force a green build.
Production deploys from main on Vercel. The frontend is static Vite output, API routes are served by FastAPI, and PostgreSQL is hosted by Neon. The production workflow runs database migrations against Neon before deploying the application.
Vercel Preview environments are intentionally unsupported. Fly.io and Railway are not current deployment targets.
app/: FastAPI application and API routescomic_pile/: core queue, roll, session, and reading logicfrontend/: React/Vite frontendalembic/: database migrationstests/: pytest coveragetests_e2e/: maintained browser scenariosscripts/: operational and development utilitiesdocs/: code-coupled documentation and the authoritative documentation indexStart with docs/README.md. It identifies the authoritative repository documentation, what must remain versioned with code, and what belongs in the GitHub Wiki.
For architectural decisions and system overview, see docs/ARCHITECTURE.md. For deployment and self-hosting with Neon, see docs/DEPLOYMENT.md.
Coding agents must also follow AGENTS.md. Autonomous factory workers must follow docs/AUTONOMOUS_FACTORY_POLICY.md and docs/ISSUE_EXECUTION_PROTOCOL.md.
What's New reads the database-backed release ledger. User-facing release notes are published after merge by the dedicated release writer. docs/changelog.md and docs/changelog.d/ are frozen historical migration sources retained only for provenance.
Comic Pile is actively developed in public. Bug reports, focused improvements, documentation fixes, and pull requests are welcome. Start with CONTRIBUTING.md and follow the project's CODE_OF_CONDUCT.md.
MIT. See LICENSE.