{"id":47109944,"url":"https://github.com/stratum-mining/sv2-ui","last_synced_at":"2026-04-14T22:01:19.129Z","repository":{"id":335530094,"uuid":"1146157231","full_name":"stratum-mining/sv2-ui","owner":"stratum-mining","description":"Stratum V2 applications UI","archived":false,"fork":false,"pushed_at":"2026-04-14T20:20:23.000Z","size":825,"stargazers_count":5,"open_issues_count":22,"forks_count":21,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-14T21:22:42.234Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stratum-mining.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-30T17:41:57.000Z","updated_at":"2026-04-14T20:11:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"89d3139e-911d-4378-9069-cfdebbf899a6","html_url":"https://github.com/stratum-mining/sv2-ui","commit_stats":null,"previous_names":["stratum-mining/sv2-ui"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/stratum-mining/sv2-ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum-mining%2Fsv2-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum-mining%2Fsv2-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum-mining%2Fsv2-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum-mining%2Fsv2-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stratum-mining","download_url":"https://codeload.github.com/stratum-mining/sv2-ui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum-mining%2Fsv2-ui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31817128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"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":[],"created_at":"2026-03-12T16:47:25.277Z","updated_at":"2026-04-14T22:01:19.086Z","avatar_url":"https://github.com/stratum-mining.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SV2 UI\n\nA unified setup wizard and monitoring dashboard for Stratum V2 mining.\n\n## Quick Start (Docker)\n\n```bash\ndocker run --rm \\\n  --name sv2-ui \\\n  -p 8080:8080 \\\n  -e HOST_HOME=$HOME \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -v sv2-config:/app/data/config \\\n  stratumv2/sv2-ui:main\n```\n\nThen open **http://localhost:8080**. On first run, you'll be guided through the setup wizard.\n\n**Flags explained:**\n- `--rm` removes the container on exit so you can re-run without conflicts\n- `-e HOST_HOME=$HOME` is required for JD mode to locate your Bitcoin Core socket\n- `-v /var/run/docker.sock:...` lets sv2-ui manage Translator and JDC containers\n- `-v sv2-config:/app/data/config` persists your configuration across restarts\n\nStopping with **Ctrl+C** will also stop the Translator and JDC containers automatically.\n\n### macOS (Docker Desktop)\n\n```bash\ndocker run --rm --name sv2-ui -p 8080:8080 \\\n  -e HOST_HOME=$HOME \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -v sv2-config:/app/data/config \\\n  stratumv2/sv2-ui:main\n```\n\n### macOS (Colima / OrbStack)\n\nMount the appropriate Docker socket for your setup:\n\n```bash\n# Colima\ndocker run --rm --name sv2-ui -p 8080:8080 \\\n  -e HOST_HOME=$HOME \\\n  -v $HOME/.colima/default/docker.sock:/var/run/docker.sock \\\n  -v sv2-config:/app/data/config \\\n  stratumv2/sv2-ui:main\n\n# OrbStack\ndocker run --rm --name sv2-ui -p 8080:8080 \\\n  -e HOST_HOME=$HOME \\\n  -v $HOME/.orbstack/run/docker.sock:/var/run/docker.sock \\\n  -v sv2-config:/app/data/config \\\n  stratumv2/sv2-ui:main\n```\n\n## Development\n\n```bash\n# Install dependencies (includes server workspace)\nnpm install\n\n# Make sure Docker Desktop / Docker Engine is running\n\n# Start frontend + backend\nnpm run dev\n```\n\nThen open **http://localhost:5173**. On first run, you'll be guided through the setup wizard.\n\nThe backend auto-detects common local Docker sockets, including `/var/run/docker.sock` and `~/.docker/run/docker.sock`. To override detection, set `DOCKER_SOCKET_PATH` or `DOCKER_HOST` before starting the server.\n\n## What It Does\n\n1. **Setup Wizard** - Guides you through configuration\n   - Choose Solo or Pool mining\n   - Choose whether templates come from your own node or from a pool\n   - Select a pool when using pool-provided templates\n   - Set the expected hashrate for initial difficulty tuning\n   - Configure your username/Bitcoin address\n   - For JD mode: select OS, Bitcoin network, and auto-compute the IPC socket path\n   - Bitcoin Core IPC is currently supported on Linux and macOS only; Windows is not supported yet\n\n2. **Docker Orchestration** - Starts and manages containers\n   - Translator Proxy (SV1 to SV2 translation)\n   - JD Client (for custom block templates, optional)\n   - Graceful shutdown: Ctrl+C stops all containers\n\n3. **Monitoring Dashboard** - Real-time stats\n   - Pool connection status (e.g. \"Connected to Braiins\")\n   - Total hashrate from connected miners\n   - Active workers\n   - Shares to pool\n   - Hashrate history chart\n\n## Deployment Modes\n\n**Pool Mining (No-JD)**\n```\nPool ← Translator ← SV1 Miners\n```\n\n**Pool Mining with Job Declaration**\n```\nPool ← JDC ← Translator ← SV1 Miners\n        ↑\n   Bitcoin Core (your node creates block templates)\n```\n\n**Solo Mining**\n```\nSolo Pool ← Translator ← SV1 Miners\n```\n\n**Sovereign Solo Mining**\n```\nBitcoin Core ← JDC ← Translator ← SV1 Miners\n```\n\n## Supported Pools\n\n| Pool | Mode | Status |\n|------|------|--------|\n| Braiins Pool | Pool (No-JD) | Available |\n| SRI Solo Pool | Pool (JD) / Solo | Testing |\n| Blitzpool | Solo | Available |\n| Sovereign Solo Mining | Solo (JD) | Available |\n\n## Building the Docker Image\n\n```bash\ndocker build -t sv2-ui:test .\n\ndocker run --rm --name sv2-ui -p 8080:8080 \\\n  -e HOST_HOME=$HOME \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -v sv2-config:/app/data/config \\\n  sv2-ui:test\n```\n\n## Project Structure\n\n```\nsv2-ui/\n├── src/                    # React frontend\n│   ├── components/\n│   │   ├── setup/          # Setup wizard steps\n│   │   ├── settings/       # Settings page components\n│   │   ├── data/           # Dashboard components\n│   │   └── ui/             # Base UI primitives\n│   ├── hooks/              # React hooks\n│   └── pages/              # Page components\n├── server/                 # Node.js backend\n│   └── src/\n│       ├── index.ts        # Express API + graceful shutdown\n│       ├── docker.ts       # Docker orchestration\n│       └── config-generator.ts  # TOML config generation\n├── Dockerfile              # Multi-stage build (with tini for signal handling)\n└── public/                 # Static assets\n```\n\n## Docker Images Used\n\n- `stratumv2/translator_sv2:main` - Translator Proxy\n- `stratumv2/jd_client_sv2:main` - JD Client\n\n## Ports\n\n| Port | Service | Description |\n|------|---------|-------------|\n| 8080 | sv2-ui (Docker) | Web UI |\n| 5173 | sv2-ui (dev) | Vite dev server |\n| 3001 | sv2-ui (dev) | Backend API |\n| 34255 | Translator | SV1 miners connect here |\n| 9092 | Translator | Monitoring API |\n| 34265 | JDC | Translator connects here (JD mode) |\n| 9091 | JDC | Monitoring API (JD mode) |\n\n## Tech Stack\n\n- **React 18** + **TypeScript** - Frontend\n- **Vite** - Build tool\n- **Tailwind CSS** - Styling\n- **React Query** - Data fetching\n- **Express** - Backend API\n- **Dockerode** - Docker orchestration\n\n## Related Projects\n\n- [stratum-mining/sv2-apps](https://github.com/stratum-mining/sv2-apps) - Translator, JDC, Pool, JDS\n- [stratum-mining/stratum](https://github.com/stratum-mining/stratum) - SV2 protocol implementation\n\n## License\n\nMIT OR Apache-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratum-mining%2Fsv2-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstratum-mining%2Fsv2-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratum-mining%2Fsv2-ui/lists"}