97 lines
2.4 KiB
Markdown
97 lines
2.4 KiB
Markdown
---
|
|
type: project
|
|
status: active
|
|
source: git.alwisp.com
|
|
repo: jason/nyaa-crawler
|
|
repo_url: https://git.alwisp.com/jason/nyaa-crawler
|
|
language: TypeScript
|
|
branch: main
|
|
tags: [repo, jason]
|
|
updated: 2026-05-29
|
|
---
|
|
|
|
# nyaa-crawler
|
|
|
|
**Repository:** [jason/nyaa-crawler](https://git.alwisp.com/jason/nyaa-crawler) · branch `main` · TypeScript
|
|
|
|
## Summary
|
|
|
|
Dockerized Nyaa.si anime torrent crawler — tracks shows, polls RSS for new episodes, and auto-downloads torrent files with a dark-themed web UI and SQLite persistence
|
|
|
|
## Current status
|
|
|
|
Active. Synced from Gitea on 2026-05-29.
|
|
|
|
## Documentation overview
|
|
|
|
# nyaa-crawler
|
|
|
|
A dockerized torrent crawler and downloader for [Nyaa.si](https://nyaa.si). Track anime shows, poll for new episodes via RSS, and automatically download `.torrent` files to a host-mounted directory.
|
|
|
|
## Features
|
|
|
|
- Search Nyaa.si and add shows to a watch list
|
|
- Automatic polling for new episodes (configurable interval, default 15 min)
|
|
- Auto-downloads `.torrent` files to a mapped host directory
|
|
- Track episode status: pending, auto-downloaded, or manually marked
|
|
- Bulk-mark episodes as already downloaded
|
|
- Minimal dark-themed web UI
|
|
- SQLite persistence — easy to back up and migrate
|
|
- Unraid-friendly Docker container
|
|
|
|
## Stack
|
|
|
|
- **Backend**: Node.js + TypeScript + Express
|
|
- **Frontend**: React + Vite
|
|
- **Database**: SQLite (`better-sqlite3`)
|
|
- **Scheduler**: `node-cron`
|
|
- **Nyaa integration**: RSS via `fast-xml-parser`
|
|
|
|
## Quick Start (Docker)
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
Open `http://localhost:8082` in your browser.
|
|
|
|
## Quick Start (Development)
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
- Client dev server: `http://localhost:5173` (proxies `/api` to `:3000`)
|
|
- API server: `http://localhost:3000`
|
|
|
|
## Environment Variables
|
|
|
|
| Variable | Default | Description |
|
|
|---|---|---|
|
|
| `PORT` | `3000` | HTTP port |
|
|
| `POLL_INTERVAL_SECONDS` | `900` | Polling frequency (min 60) |
|
|
| `TORRENT_OUTPUT_DIR` | `./data/torrents` | Where `.torrent` files are saved |
|
|
| `DATABASE_PATH` | `./data/db.sqlite` | SQLite database path |
|
|
|
|
## Unraid Deployment
|
|
|
|
```yaml
|
|
services:
|
|
nyaa-watcher:
|
|
image: your-registry/nyaa-watcher:latest
|
|
container_name: nyaa-watcher
|
|
restart: unless-stopped
|
|
environment:
|
|
- PORT=3000
|
|
- POLL_INTERVAL_SECONDS=900
|
|
- TORRENT_OUTPUT_DIR=/data/torrents
|
|
- DATABASE_PATH=/data/db.sqlite
|
|
volumes:
|
|
|
|
…(truncated — see repo)
|
|
|
|
## Notes
|
|
|
|
- Project file auto-created from repo documentation.
|