Commit 844d88b
[Launcher] Add OctoBot launcher daemon with binary/python/docker backends
New Rust-based daemon that manages OctoBot instances as a system service.
Core features:
- REST API (TCP + Unix socket) for instance lifecycle management
- Binary, Python, and Docker runtime backends
- SSE streaming for start/restart/update progress
- JWT-based token auth with scopes and audit logging
- launchd/systemd/Windows service integration
- Auto-update via signed manifest
Binary backend:
- HTTP probe loop (60s timeout) waits for OctoBot to actually serve port 5001
- Subprocess cwd pinned to instance data_dir
- stdout/stderr always captured to logs/launcher-stdio.log
- startup_timeout_secs configurable via runtime_options
Service management:
- service stop/restart kill free-running daemons via launcher.pid (not just launchctl)
- spawn_daemon always uses ["service", "run"] args; waits 700ms and tails log on early exit
- Supervisor writes/removes launcher.pid around the serve loop
Instance stop:
- NotRunning treated as success in stop_instance route (idempotent stop)
- Backend::stop takes &InstanceSpec so PID file can be found after daemon restart
- BinaryBackend/PythonBackend: SIGTERM via PID file when in-memory child state is lost
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent bbc5635 commit 844d88b
4,192 files changed
Lines changed: 454870 additions & 727 deletions
File tree
- .claude/agents
- .github/workflows
- additional_tests/exchanges_tests
- bin
- docker
- docs
- blog
- content
- developers
- architecture
- environment
- packages
- tentacles-dev
- guides
- octobot-advanced-usage
- octobot-configuration
- octobot-installation
- octobot-interfaces
- telegram
- tradingview
- octobot-trading-modes
- octobot-usage
- investing
- tradingview-strategies-tutorials
- octobot-script
- i18n/fr
- docusaurus-plugin-content-blog
- docusaurus-plugin-content-docs/current
- developers
- architecture
- environment
- tentacles-dev
- guides
- exchanges
- ascendex
- binance
- bingx
- bitget
- bitmart
- bybit
- coinex
- crypto-com
- gateio
- hollaex
- htx
- kucoin
- mexc
- okcoin
- okx
- phemex
- octobot-advanced-usage
- octobot-configuration
- octobot-installation
- octobot-interfaces
- telegram
- tradingview
- octobot-trading-modes
- octobot-usage
- investing
- tradingview-strategies-tutorials
- octobot-script
- docusaurus-plugin-content-pages/terms
- scripts
- src
- components
- HomepageFeatures
- css
- pages
- terms
- theme/BlogPostItem
- static
- images
- blog
- announcing-the-bitmart-and-octobot-partnership
- authors
- automated-trading-bot
- best-crypto-trading-bots
- best-open-source-crypto-trading-bots
- bingx-wheel-of-fortune-event
- chatgpt-strategy-deep-dive
- coinbase-and-binance.us-trading-bot
- following-strategies-in-octobot-cloud
- fomo-meaning
- fud-meaning
- grid-trading
- hodl-meaning
- hollaex-partnership
- how-does-trading-bot-work
- how-to-automate-trading-in-tradingview
- how-to-create-your-tradingview-strategy-with-ai
- how-to-use-a-self-custody-crypto-trading-bot
- introducing-chatgpt-trading-tool
- introducing-cloud-octobot-plans
- introducing-the-investor-plus-plan
- introducing-the-new-octobot-cloud
- introducing-the-new-octobot-mobile-app
- introducing-the-pro-plan
- introducing-the-strategy-designer
- introducing-trading-modes-guides
- invest-with-crypto-baskets
- kucoin-x-octobot-fireside-chat-simplifying-crypto-investment-with-ai
- making-octobot-more-accessible
- mobile-app-revamp
- new-octobot-cloud-plans-and-trading-bots
- octobot-1-0-2-whats-new
- octobot-1-0-4-whats-new
- octobot-2-0-0-whats-new
- octobot-pro-plan-early-access
- octobots-in-octobot-cloud
- one-click-cloud-deployment-with-octobot-1-0-9
- open-source-trading-software
- paper-trading-with-octobot
- profile-sharing-in-octobot-cloud
- safu-meaning
- shape-the-future-with-our-roadmap
- smart-dca-making-of
- strategy-designer-revamp
- trading-on-coinex-with-octobot
- trading-orders
- trading-strategy-automation
- trading-using-chat-gpt
- trading-using-tradingview
- trading-with-ai-introduction
- welcome-to-octobot-blog
- what-are-octobot-rewards-and-how-to-get-them
- what-are-stablecoins
- what-is-dca
- what-is-future-trading
- what-is-spot-trading
- guides
- backtesting
- binance
- chatgpt
- coinbase
- configuration
- dev_env
- hyperliquid
- installation/digitalocean
- interfaces
- kucoin
- octobot-pro
- strategy-designer
- trading-modes
- trading-view
- tradingview-tutos
- investing/pay-with-crypto
- img
- octobot
- automation
- bases
- backtesting
- community
- errors_upload
- models
- supabase_backend
- wallet_backend
- config
- producers
- packages
- agents
- octobot_agents
- agent
- channels
- memory
- channels
- storage
- history
- memory
- team
- channels
- critic
- channels
- judge
- channels
- manager
- channels
- utils
- tests
- util
- async_channel
- async_channel
- channels
- util
- docs
- source
- tests
- backtesting
- octobot_backtesting
- api
- collectors
- exchanges
- social
- comparators
- converters
- data
- importers
- exchanges
- social
- time
- channel
- util
- tests
- api
- comparators
- importers
- producers
- static
- util
- binary
- build_scripts
- scripts
- commons
- octobot_commons
- configuration
- cryptography
- databases
- bases
- database_caches
- databases_util
- document_database_adaptors
- global_storage
- implementations
- relational_databases
- sqlite
- run_databases
- dataclasses
- display
- dsl_interpreter
- operators
- logging
- profiles
- signals
- singleton
- symbols
- tentacles_management
- tests
- tree
- tests
- configuration
- cryptography
- databases
- document_database_adaptors
- global_storage
- relational_databases
- sqlite
- run_databases
- dataclasses
- dsl_interpreter
- operators
- logging
- profiles
- signals
- static
- invalid_profile
- symbols
- tentacles_management
- tree
- copy
- octobot_copy_ts
- octobot_copy
- copiers
- entities
- exchange
- orders_mirroring
- rebalancing
- planner
- rebalancer
- tests/python
- functional_tests
- orders_mirroring
- evaluators
- octobot_evaluators
- api
- evaluators
- channel
- matrix
- channel
- util
- tests
- evaluators
- channel
- matrix
- channel
- requirements
- static
- util
- flow
- octobot_flow
- encryption
- entities
- accounts
- actions
- automations
- community
- jobs
- logic
- actions
- configuration
- dsl
- exchange
- simulator
- sub_portfolio
- parsers
- repositories
- community
- exchange
- simulated_trading
- tests
- functionnal_tests
- actions_reset
- automation_management
- blockchains_actions
- exchanges_actions
- failed_actions
- state_initialization
- trading_modes_actions
- authenticated
- simulator
- jobs
- logic/actions
- parsers
- repositories/community
- launcher
- crates
- octobot-launcher-api
- src
- routes
- octobot-launcher-binary
- src
- octobot-launcher-cli
- src
- tests
- octobot-launcher-config
- src
- octobot-launcher-core
- src
- octobot-launcher-docker
- src
- octobot-launcher-python
- src
- octobot-launcher-service
- src
- octobot-launcher-tests
- tests
- octobot-launcher-update
- src
- node
- octobot_node
- scheduler
- encryption
- workflows
- params
- tests
- scheduler
- task_import
- workflows
- services
- octobot_services
- api
- channel
- interfaces
- bots
- util
- web
- managers
- notification
- notifier
- service_feeds
- services
- util
- tests
- sync
- octobot_sync
- auth
- chain
- sync
- util
- tests
- e2e
- fixtures
- tentacles
- Agent
- sub_agents
- bull_bear_research_agent
- default_critic_agent
- default_memory_agent
- distribution_agent
- real_time_analysis_agent
- risk_agent
- risk_judge_agent
- sentiment_analysis_agent
- signal_agent
- summarization_agent
- technical_analysis_agent
- teams
- default_manager_agent
- simple_ai_evaluator_agents_team
- resources/skills
- sentiment_analysis
- summarization
- technical_analysis
- Automation
- actions
- cancel_open_order_action
- sell_all_currencies_action
- send_notification_action
- stop_strategies_and_pause_trader_action
- stop_trading_action
- conditions
- no_condition_condition
- scripted_condition
- trigger_events
- holding_threshold_event
- tests
- period_check_event
- price_threshold_event
- profitability_threshold_event
- volatility_threshold_event
- tests
- Backtesting
- collectors
- exchanges
- exchange_bot_snapshot_data_collector
- exchange_history_collector
- tests
- exchange_live_collector
- social
- social_history_collector
- social_live_collector
- converters/exchanges/legacy_data_converter
- importers
- exchanges/generic_exchange_importer
- social/generic_social_importer
- Evaluator
- RealTime
- dsl_realtime_evaluator
- config
- resources
- tests
- instant_fluctuations_evaluator
- config
- resources
- Social
- forum_evaluator
- config
- resources
- news_evaluator
- config
- resources
- sentiment_evaluator
- config
- resources
- signal_evaluator
- config
- resources
- tests
- trends_evaluator
- config
- resources
- Strategies
- ai_strategies_evaluator
- config
- resources
- tests
- blank_strategy_evaluator
- config
- resources
- dip_analyser_strategy_evaluator
- config
- resources
- tests
- mixed_strategies_evaluator
- config
- resources
- tests
- move_signals_strategy_evaluator
- config
- resources
- tests
- TA
- ai_evaluator
- config
- resources
- tests
- momentum_evaluator
- config
- resources
- tests
- trend_evaluator
- config
- resources
- tests
- volatility_evaluator
- config
- resources
- Util
- candles_util
- tests
- overall_state_analysis
- pattern_analysis
- statistics_analysis
- text_analysis
- trend_analysis
- Meta
- DSL_operators
- automation_operators
- tests
- blockchain_wallet_operators
- tests
- exchange_operators
- exchange_personal_data_operators
- exchange_public_data_operators
- tests
- exchange_personal_data_operators
- exchange_public_data_operators
- python_std_operators
- tests
- ta_operators
- tests
- Keywords/scripting_library
- TA
- trigger
- UI
- inputs
- plots
- alerts
- backtesting
- configuration
- data
- reading
- exchange_private_data
- writing
- exchanges
- orders
- order_types
- position_size
- settings
- tests
- backtesting
- configuration
- exchanges
- orders
- order_types
- position_size
- static
- test_utils
- Services
- Interfaces
- node_api_interface
- api
- routes
- core
- tests
- core
- node_web_interface
- public
- assets/images
- export-template-examples
- meta-template-examples
- src
- client
- core
- components
- Common
- OctoBots
- Tasks
- ImportSteps
- ui
- hooks
- lib
- __tests__
- routes
- _layout
- octobots
- new
- setup
- utils
- telegram_bot_interface
- tests
- web_interface
- advanced_controllers
- advanced_templates
- api
- controllers
- distributions
- market_making
- node
- prediction_market
- flask_util
- login
- models
- distributions
- market_making
- prediction_market
- plugins
- static
- audio
- css
- components
- distributions
- market_making/js
- prediction_market/js
- img
- community
- tentacles_packages_previews
- distributions/market_making
- lightbox
- overlays
- svg
- tradingview
- js
- common
- components
- lib
- templates
- components
- community
- config
- modals
- tentacles_packages
- distributions
- default
- market_making
- node
- prediction_market
- macros
- tests
- distributions
- util
- websockets
- Notifiers
- telegram_notifier
- twitter_notifier
- web_notifier
- Services_bases
- alternative_me_service
- bird_service
- tests
- coindesk_service
- coingecko_service
- google_service
- gpt_service
- langchain_service
- lunarcrush_service
- node_api_service
- reddit_service
- searxng_service
- tavily_service
- telegram_api_service
- telegram_service
- trading_view_service
- twitter_service
- web_service
- webhook_service
- Services_feeds
- alternative_me_service_feed
- coindesk_service_feed
- coingecko_service_feed
- exchange_service_feed
- google_service_feed
- lunarcrush_service_feed
- reddit_service_feed
- telegram_api_service_feed
- telegram_service_feed
- trading_view_service_feed
- twitter_service_feed
- Trading
- Blockchain_wallet
- bitcoin
- tests
- evm
- tests
- Exchange
- ascendex_websocket_feed
- tests
- ascendex
- resources
- binance_websocket_feed
- tests
- binanceus_websocket_feed
- tests
- binanceus
- resources
- tests
- binance
- resources
- tests
- bingx_websocket_feed
- bingx
- resources
- tests
- bitfinex_websocket_feed
- tests
- bitfinex
- resources
- bitget_websocket_feed
- tests
- bitget
- resources
- tests
- bithumb
- resources
- tests
- bitmart_websocket_feed
- bitmart
- resources
- bitmex
- resources
- tests
- bitso
- resources
- tests
- bitstamp
- resources
- tests
- bybit_websocket_feed
- bybit
- resources
- tests
- coinbase_pro_websocket_feed
- tests
- coinbase_pro
- coinbase_websocket_feed
- coinbase
- resources
- coinex_websocket_feed
- coinex
- resources
- configurable_default_ccxt_rest
- resources
- cryptocom_websocket_feed
- cryptocom
- resources
- gateio_websocket_feed
- tests
- gateio
- resources
- hitbtc
- resources
- tests
- hollaex_autofilled
- config
- hollaex
- config
- resources
- tests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
0 commit comments