{"id":37294715,"url":"https://github.com/deltabadger/deltabadger","last_synced_at":"2026-06-01T01:01:16.017Z","repository":{"id":331813036,"uuid":"1124310424","full_name":"deltabadger/deltabadger","owner":"deltabadger","description":"DCA bot with automatic withdrawals","archived":false,"fork":false,"pushed_at":"2026-05-30T21:25:44.000Z","size":62867,"stargazers_count":34,"open_issues_count":2,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T23:14:17.915Z","etag":null,"topics":["dca","investing","self-hosted"],"latest_commit_sha":null,"homepage":"https://deltabadger.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deltabadger.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-28T19:22:33.000Z","updated_at":"2026-05-30T21:25:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/deltabadger/deltabadger","commit_stats":null,"previous_names":["deltabadger/deltabadger"],"tags_count":206,"template":false,"template_full_name":null,"purl":"pkg:github/deltabadger/deltabadger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deltabadger%2Fdeltabadger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deltabadger%2Fdeltabadger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deltabadger%2Fdeltabadger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deltabadger%2Fdeltabadger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deltabadger","download_url":"https://codeload.github.com/deltabadger/deltabadger/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deltabadger%2Fdeltabadger/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33755369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["dca","investing","self-hosted"],"created_at":"2026-01-16T02:35:52.881Z","updated_at":"2026-06-01T01:01:15.746Z","avatar_url":"https://github.com/deltabadger.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deltabadger\n\n[![Docker Build](https://github.com/deltabadger/deltabadger/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/deltabadger/deltabadger/actions/workflows/docker-publish.yml)\n[![Docker Image](https://img.shields.io/badge/ghcr.io-deltabadger%2Fdeltabadger-blue?logo=docker)](https://github.com/deltabadger/deltabadger/pkgs/container/deltabadger)\n[![License](https://img.shields.io/github/license/deltabadger/deltabadger)](LICENSE)\n\n[Deltabadger](https://deltabadger.com) is a one-stop-shop for investors in crypto and stocks:\n\nNo other tool offers this unique combination:\n\n* **DCA bots** for crypto and stocks\n* **Auto-withdrawals** to keep your assets safe\n* **MCP Server** to connect your exchange accounts to Claude or Claw\n* **Crypto Tax Reporting** tool with no transaction limits\n\nFor tax-reporting, and some more advanced features you'll need a free Coingecko account for market data.\n\n### Quick Start\n\nInstall [Docker Desktop](https://www.docker.com/products/docker-desktop/) for your operating system, and make sure it's running, then run Deltabadger with a single command:\n\n```bash\ndocker run -d --name deltabadger -p 3737:3000 -v deltabadger_data:/app/storage ghcr.io/deltabadger/deltabadger:latest standalone\n```\n\nThat's it! Access the app at `http://localhost:3737`.\n\n\n## Running with Tauri (macOS and Linux)\n\n1. Download release.\n2. Run `./setup.sh` first.\n3. Run `./start.sh` to use the app.\n\nOn Mac, if you close the app, it continues working in the background. You can find it on the topbar.\n\nScripts should work on Linux as well, but have not been tested.\n\nFor Windows, the best way at the moment is to use Docker.\n\nAre you a developer? Jump on the [Telegram channel](https://t.me/deltabadgerchat) and help build the best DCA bot out there.\n\n## Running with Docker Compose\n\nAlternative to the single command above, using Docker Compose:\n\n1. **Download docker-compose.yml:**\n\n```bash\ncurl -O https://raw.githubusercontent.com/deltabadger/deltabadger/main/docker-compose.yml\n```\n\n2. **Start the app:**\n\n```bash\ndocker compose up -d\n```\n\nFirst run downloads the pre-built image. Secrets are auto-generated. Once complete, access the app at `http://localhost:3737`.\n\n3. **Optional: Custom configuration**\n\nCreate `.env.docker` to override defaults (copy from `.env.docker.example` for reference):\n\n```bash\ncurl -O https://raw.githubusercontent.com/deltabadger/deltabadger/main/.env.docker.example\ncp .env.docker.example .env.docker\n# Edit .env.docker as needed\n```\n\n### Updating to a New Version\n\nFirst, stop and remove the old container:\n\n```bash\ndocker stop deltabadger \u0026\u0026 docker rm deltabadger\n```\n\nThen pull the latest image and run:\n\n```bash\ndocker pull ghcr.io/deltabadger/deltabadger:latest\ndocker run -d --name deltabadger -p 3737:3000 -v deltabadger_data:/app/storage ghcr.io/deltabadger/deltabadger:latest standalone\n```\n\nDocker Compose:\n\n```bash\ndocker compose pull\ndocker compose up -d\n```\n\n### Docker Commands Reference\n\n| Command | Description |\n|---------|-------------|\n| `docker compose up -d` | Start in background |\n| `docker compose down` | Stop all containers |\n| `docker compose pull` | Pull latest image |\n| `docker compose logs -f` | View logs (Ctrl+C to exit) |\n| `docker compose logs -f web` | View web server logs only |\n\n### Starting Fresh\n\nIf something goes wrong and you want to reset everything:\n\n```bash\ndocker compose down\ndocker volume rm deltabadger_storage deltabadger_logs\n```\n\n\u003e **Note:** This deletes all data. Volume names may vary — run `docker volume ls` to see all volumes.\n\n### Production Notes\n\nSecrets are auto-generated on first run and stored in `/app/storage/.secrets` (inside the volume). These persist across container restarts and upgrades.\n\nFor production deployments:\n- Use a reverse proxy (nginx, Traefik) for HTTPS\n- Set `APP_ROOT_URL` and `HOME_PAGE_URL` to your domain in `.env.docker`\n\n### Building from Source\n\nIf you prefer to build the image locally instead of using the pre-built one:\n\n```bash\ndocker compose -f docker-compose.build.yml up -d --build\n```\n\n---\n\n## Development Setup\n\n### Requirements\n\n- Ruby 3.4.8\n- Node.js 18.19.1\n\nUse [asdf](https://asdf-vm.com) or your preferred version manager.\n\n### 1. Install dependencies\n\n```bash\nbin/setup\n```\n\n### 2. Database\n\n```bash\nbundle exec rails db:prepare\n```\n\n### 3. Start the app\n\n```bash\nbin/dev\n```\n\nThis starts the Rails server with Solid Queue (background jobs) running in-process via Puma.\n\nAlternatively, run services separately:\n\nTerminal 1 — Rails (with background jobs):\n\n```bash\nrails s\n```\n\nTerminal 2 — JavaScript bundler (optional, for live reloading):\n\n```bash\nnpm run build:watch\n```\n\n### Running tests\n\n```bash\nbin/rails test\n```\n\n---\n\n## Troubleshooting\n\n### Docker: Container won't start\n\nCheck logs for errors:\n\n```bash\ndocker compose logs web\n```\n\nCommon fixes:\n- Make sure Docker Desktop is running\n- Try rebuilding: `docker compose build --no-cache`\n- Reset everything (see \"Starting Fresh\" above)\n\n### Docker: Port already in use\n\nAnother app is using port 3737. Either stop that app, or change the port mapping. For example, to use port 4000:\n\n**Single command:** Change `-p 3737:3000` to `-p 4000:3000`\n\n**Docker Compose:** Set in `.env.docker`:\n```bash\nAPP_PORT=4000\n```\n---\n\n## License\n\n[AGPL-3.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeltabadger%2Fdeltabadger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeltabadger%2Fdeltabadger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeltabadger%2Fdeltabadger/lists"}