Sign inSign up

devslaveux/kbot-stack:v3

Manifest digest

sha256:9f96d43e4f992aef48d44fffb9cc520f6c7b42bdc39a95fb0c926ec14691b681

Last pushed

2 months by devslaveux

Type

Compose

Manifest digest

sha256:9f96d43e4f992aef48d44fffb9cc520f6c7b42bdc39a95fb0c926ec14691b681

Compose file content

# KalshiBot5k — one-command deploy (OCI artifact, no files to ship).
#
# Publish (maintainer, after ./publish.sh pushes the images):
#     docker compose -f dist/docker-compose.yml publish -y --with-env devslaveux/kbot-stack:latest
#
# Run on ANY machine (after `docker login -u devslaveux` with a read-only token):
#     docker compose -f oci://docker.io/devslaveux/kbot-stack:latest up -d
#     -> open http://localhost:8080 and install your Kalshi key in Settings.
#
# Settings + credentials + trade data persist in named volumes (kbot-config, kbot-data) — there
# are NO host files to copy. The `environment:` block is the baked default config (safe: demo +
# dry-run + paused); anything you save in the dashboard is written to the volume and overrides it.
name: kalshibot5k
services:
  backend:
    image: devslaveux/kbot-backend:v3
    pull_policy: always
    environment:
      TZ: UTC
      # settings (.env) + private key live in the persisted volume; the dashboard writes them
      KBOT_ENV_FILE: /app/config/.env
      KALSHI_PRIVATE_KEY_PATH: /app/config/kalshi_private_key.pem
      # --- safe defaults for a fresh deploy (dashboard-saved values override these) ---
      KALSHI_ENV: demo
      DRY_RUN: "true"
      START_PAUSED: "true"
      RESET_ON_START: "false"
      LOSS_CAP_ENABLED: "true"
      MAX_DAILY_LOSS_DOLLARS: "15.0"
      MAX_CONCURRENT_POSITIONS: "10"
      # --- churned micro-cashout strategy ---
      STRATEGY_MODE: scalp
      SCALP_MAKER: "true"
      SCALP_TAKER_ENTRY: "true"     # hybrid: buy in immediately (no adverse selection) + fee-free maker TP
      SCALP_NO_OPPOSING: "true"     # never hold YES + NO at once across the correlated crypto book
      SCALP_SIGNAL_MODE: recent15m
      SCALP_RECENT_CLOSES_N: "3"
      SCALP_PROFIT_TARGET_CENTS: "6"
      SCALP_STOP_ENABLED: "true"
      SCALP_MAX_ENTRIES_PER_WINDOW: "3"
      SCALP_MIN_ENTRY_MINS_LEFT: "5"
      SCALP_CONTRACTS_15M: "1"
      SCALP_CONTRACTS_1H: "2"
      PRICE_MIN_CENTS: "40"
      PRICE_MAX_CENTS: "60"
      SCALP_MAX_SPREAD_CENTS: "6"
      SCALP_FORCE_EXIT_MINS: "2.0"
      SCALP_MAX_HOLD_SEC: "6600"    # must exceed SMART_AGE_TIGHTEN_SEC (90) or the age-tightened
                                    # stop is unreachable (near-close gating skips the smart branch)
      SCALP_ENTRY_FRAC: "1.0"
      SCALP_STAGGER_SEC: "5.0"
      STOP_CHECK_INTERVAL_SECONDS: "0.25"
      SCAN_INTERVAL_SECONDS: "4"
      ONE_POSITION_PER_EVENT: "true"
      WATCH_SERIES: KXBTC,KXETH,KXSOL,KXXRP,KXDOGE,KXBTC15M,KXETH15M,KXSOL15M,KXXRP15M,KXDOGE15M
      DISCOVERY_MODE: hybrid
      DISCOVERY_CATEGORIES: Crypto
      MIN_VOLUME: "50"
    volumes:
      - kbot-config:/app/config     # .env + private key (dashboard-managed; persisted)
      - kbot-data:/app/data         # trade/state files (persisted)
    ports:
      - "8000:8000"
    restart: unless-stopped

  dashboard:
    image: devslaveux/kbot-dashboard:v3
    pull_policy: always
    ports:
      - "8080:80"     # open http://localhost:8080
    depends_on:
      - backend
    restart: unless-stopped

volumes:
  kbot-config:
  kbot-data:

Docker commands

docker compose -f oci://devslaveux/kbot-stack:v3 up

Use the above command to pull and run the Compose file. Learn more.

Images used

Image


Pulls

1.4K

Stars

0

Last Updated

2 months

Image


Pulls

1.3K

Stars

0

Last Updated

2 months