### Local Project Setup: Environment Configuration Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/README.md Copy the example environment file and edit it to configure your specific settings. ```bash cp .env.example .env && vim .env ``` -------------------------------- ### Start Electron Desktop App Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/desktop-package.md Navigate to the Electron desktop application directory, install dependencies, and run the development server. This command also automatically starts the backend service. ```bash cd apps/dsa-desktop npm install npm run dev ``` -------------------------------- ### Install and Build Desktop Application Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/AGENTS.md Navigates to the desktop application directory, installs dependencies, and builds the application. ```bash cd ../dsa-desktop npm install npm run build ``` -------------------------------- ### Local Project Setup: Cloning and Installation Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/README.md Steps to clone the project repository and install its Python dependencies using pip. ```bash git clone https://github.com/ZhuLinsen/daily_stock_analysis.git && cd daily_stock_analysis pip install -r requirements.txt ``` -------------------------------- ### Install and Lint Web Frontend Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/AGENTS.md Navigates to the web frontend directory, installs dependencies, and runs linting checks. ```bash cd apps/dsa-web npm ci npm run lint ``` -------------------------------- ### Start the Service Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/README.md Commands to launch the web interface and background analysis services. ```bash python main.py --webui # 启动 Web 界面 + 执行定时分析 python main.py --webui-only # 仅启动 Web 界面 ``` -------------------------------- ### Server Configuration Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Command to start the server with custom host and port settings. ```bash python main.py --serve-only --host 0.0.0.0 --port 8888 ``` -------------------------------- ### Start Web Service Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Launch the web UI with or without automatic analysis. Specify host and port for custom network configurations. ```bash python main.py --webui ``` ```bash python main.py --webui-only ``` ```bash python main.py --webui --host 0.0.0.0 --port 8080 ``` -------------------------------- ### Manual Frontend Build Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/README.md Commands to manually install dependencies and build the frontend application. ```bash cd ./apps/dsa-web npm install && npm run build cd ../.. ``` -------------------------------- ### Install Backend Dependencies and Linters Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/AGENTS.md Installs necessary Python packages for the backend and sets up linting tools like flake8 and pytest for code quality checks. ```bash pip install -r requirements.txt ``` ```bash pip install flake8 pytest ``` -------------------------------- ### Configure Pushover Notifications Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Example of setting Pushover user key and API token. ```bash PUSHOVER_USER_KEY=your_user_key PUSHOVER_API_TOKEN=your_api_token ``` -------------------------------- ### Configure Slack Incoming Webhook Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Example of setting the Slack Webhook URL. ```bash SLACK_WEBHOOK_URL=https://hooks.slack.com/services/T.../B.../xxx ``` -------------------------------- ### Clone Repository and Configure Environment Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Steps to clone the project repository and set up environment variables by copying and editing the example configuration file. ```bash git clone https://github.com/ZhuLinsen/daily_stock_analysis.git cd daily_stock_analysis cp .env.example .env vim .env # 填入 API Key 和配置 ``` -------------------------------- ### Build React UI for Desktop Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/desktop-package.md Navigate to the React UI directory, install dependencies, and build the project for deployment. The output is placed in the 'static/' directory. ```bash cd apps/dsa-web npm install npm run build ``` -------------------------------- ### Verify Backend Environment Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/CLAUDE.md Commands to install dependencies, run CI gates, and execute tests. ```bash pip install -r requirements.txt pip install flake8 pytest ./scripts/ci_gate.sh python -m pytest -m "not network" python -m py_compile ``` -------------------------------- ### Build Electron Desktop Application Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/desktop-package.md Navigate to the Electron desktop application directory, install its dependencies, and run the build script. This prepares the application for packaging. ```bash cd apps/dsa-desktop npm install npm run build ``` -------------------------------- ### Configure Slack Bot API Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Example of setting Slack Bot token and channel ID. ```bash SLACK_BOT_TOKEN=xoxb-... SLACK_CHANNEL_ID=C01234567 ``` -------------------------------- ### Start Docker Containers for Stock Analysis Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Commands to launch Docker containers for the stock analysis project in different modes: web service, analyzer, or both. ```bash docker-compose -f ./docker/docker-compose.yml up -d server # Web 服务模式(推荐,提供 API 与 WebUI) docker-compose -f ./docker/docker-compose.yml up -d analyzer # 定时任务模式 docker-compose -f ./docker/docker-compose.yml up -d # 同时启动两种模式 ``` -------------------------------- ### Configure Discord Webhook Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Example of setting the Discord Webhook URL environment variable. ```bash DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/xxx/yyy ``` -------------------------------- ### Run Stock Analysis with Command-Line Arguments Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Examples of running the main analysis script with various command-line arguments to control analysis scope, data fetching, notifications, and execution modes. ```bash python main.py # 完整分析(个股 + 大盘复盘) python main.py --market-review # 仅大盘复盘 python main.py --no-market-review # 仅个股分析 python main.py --stocks 600519,300750 # 指定股票 python main.py --dry-run # 仅获取数据,不 AI 分析 python main.py --no-notify # 不发送推送 python main.py --schedule # 定时任务模式 python main.py --force-run # 非交易日也强制执行(Issue #373) python main.py --debug # 调试模式(详细日志) python main.py --workers 5 # 指定并发数 ``` -------------------------------- ### Run Uvicorn Server Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/AGENTS.md Starts the FastAPI server using Uvicorn. Useful for development with hot reloading. ```bash uvicorn server:app --reload --host 0.0.0.0 --port 8000 ``` -------------------------------- ### Start API Service and Run Analysis Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Launch the FastAPI API service and execute a full analysis run simultaneously using this command. ```bash python main.py --serve ``` -------------------------------- ### Get Portfolio Snapshot Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Retrieve current holdings and PnL, supporting different cost calculation methods. ```bash curl "http://localhost:8000/api/v1/portfolio/snapshot?account_id=1&cost_method=fifo" ``` -------------------------------- ### Configure Discord Bot API Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Example of setting Discord Bot credentials and interaction public key. ```bash DISCORD_BOT_TOKEN=your_bot_token DISCORD_MAIN_CHANNEL_ID=your_channel_id ``` ```bash DISCORD_INTERACTIONS_PUBLIC_KEY=your_public_key ``` -------------------------------- ### Configure Docker Environment Variables Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Example of setting scheduling behavior via Docker environment variables. ```bash docker run -e SCHEDULE_ENABLED=true -e SCHEDULE_RUN_IMMEDIATELY=false ... ``` -------------------------------- ### One-Click Windows Packaging Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/desktop-package.md This PowerShell script automates the entire Windows packaging process, including building the React UI, installing Python dependencies, PyInstaller packaging for the backend, and electron-builder for the desktop application. ```powershell powershell -ExecutionPolicy Bypass -File scripts\build-all.ps1 ``` -------------------------------- ### Install Project Dependencies Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Instructions for installing Python dependencies using pip or conda, ensuring necessary libraries like pypinyin and openpyxl are included. ```bash # Python 3.10+ 推荐 pip install -r requirements.txt # 或使用 conda conda create -n stock python=3.10 conda activate stock pip install -r requirements.txt ``` -------------------------------- ### Start API Service Only Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Start only the FastAPI API service without initiating an analysis run. Analysis can be triggered manually via API calls. ```bash python main.py --serve-only ``` -------------------------------- ### API Interaction Examples Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Examples of using curl to interact with the stock analysis API, including health checks, analysis triggers, and backtesting operations. ```bash # 健康检查 curl http://127.0.0.1:8000/api/health # 触发分析(A股) curl -X POST http://127.0.0.1:8000/api/v1/analysis/analyze \ -H 'Content-Type: application/json' \ -d '{"stock_code": "600519"}' # 查询任务状态 curl http://127.0.0.1:8000/api/v1/analysis/status/ # 触发回测(全部股票) curl -X POST http://127.0.0.1:8000/api/v1/backtest/run \ -H 'Content-Type: application/json' \ -d '{"force": false}' # 触发回测(指定股票) curl -X POST http://127.0.0.1:8000/api/v1/backtest/run \ -H 'Content-Type: application/json' \ -d '{"code": "600519", "force": false}' # 查询整体回测表现 curl http://127.0.0.1:8000/api/v1/backtest/performance # 查询单股回测表现 curl http://127.0.0.1:8000/api/v1/backtest/performance/600519 # 分页查询回测结果 curl "http://127.0.0.1:8000/api/v1/backtest/results?page=1&limit=20" ``` -------------------------------- ### Market Overview Report Example Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/README.md An example of a market overview report, summarizing the performance of major indices and sector performance. This is used for daily market recaps. ```text 🎯 2026-01-10 大盘复盘 📊 主要指数 - 上证指数: 3250.12 (🟢+0.85%) - 深证成指: 10521.36 (🟢+1.02%) - 创业板指: 2156.78 (🟢+1.35%) 📈 市场概况 上涨: 3920 | 下跌: 1349 | 涨停: 155 | 跌停: 3 🔥 板块表现 领涨: 互联网服务、文化传媒、小金属 领跌: 保险、航空机场、光伏设备 ``` -------------------------------- ### Stock Analysis Report Example Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/README.md An example of a detailed stock analysis report, including market sentiment, performance expectations, risk alerts, and catalysts. This format is used for individual stock analysis. ```text 🎯 2026-02-08 决策仪表盘 共分析3只股票 | 🟢买入:0 🟡观望:2 🔴卖出:1 📊 分析结果摘要 ⚪ 中钨高新(000657): 观望 | 评分 65 | 看多 ⚪ 永鼎股份(600105): 观望 | 评分 48 | 震荡 🟡 新莱应材(300260): 卖出 | 评分 35 | 看空 ⚪ 中钨高新 (000657) 📰 重要信息速览 💭 舆情情绪: 市场关注其AI属性与业绩高增长,情绪偏积极,但需消化短期获利盘和主力流出压力。 📊 业绩预期: 基于舆情信息,公司2025年前三季度业绩同比大幅增长,基本面强劲,为股价提供支撑。 🚨 风险警报: 风险点1:2月5日主力资金大幅净卖出3.63亿元,需警惕短期抛压。 风险点2:筹码集中度高达35.15%,表明筹码分散,拉升阻力可能较大。 风险点3:舆情中提及公司历史违规记录及重组相关风险提示,需保持关注。 ✨ 利好催化: 利好1:公司被市场定位为AI服务器HDI核心供应商,受益于AI产业发展。 利好2:2025年前三季度扣非净利润同比暴涨407.52%,业绩表现强劲。 📢 最新动态: 【最新消息】舆情显示公司是AI PCB微钻领域龙头,深度绑定全球头部PCB/载板厂。2月5日主力资金净卖出3.63亿元,需关注后续资金流向。 --- 生成时间: 18:00 ``` -------------------------------- ### Basic Environment Configuration Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Configure essential settings like the stock list, data source tokens, and logging directory and level. ```bash STOCK_LIST=600519,000001,AAPL,hk00700 ``` ```bash TUSHARE_TOKEN=your_token_here ``` ```bash LOG_DIR=./logs ``` ```bash LOG_LEVEL=INFO ``` -------------------------------- ### GitHub Actions Workflow Schedule Configuration Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/DEPLOY.md Example of how to configure the cron schedule for the GitHub Actions workflow. The provided example runs the workflow from Monday to Friday at 18:00 Beijing time (10:00 UTC). ```yaml schedule: - cron: '0 10 * * 1-5' # UTC 时间,+8 = 北京时间 ``` -------------------------------- ### GET /api/v1/backtest/results Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Queries backtest results with pagination. ```APIDOC ## GET /api/v1/backtest/results ### Description Queries backtest results with pagination. ### Method GET ### Endpoint /api/v1/backtest/results ### Parameters #### Query Parameters - **page** (integer) - Optional - Page number - **limit** (integer) - Optional - Results per page ``` -------------------------------- ### Build Web and Desktop Applications Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/CLAUDE.md Commands for linting and building the frontend and desktop components. ```bash cd apps/dsa-web npm ci npm run lint npm run build cd ../dsa-desktop npm install npm run build ``` -------------------------------- ### GET /api/v1/analysis/status/{task_id} Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Queries the status of a specific analysis task. ```APIDOC ## GET /api/v1/analysis/status/{task_id} ### Description Queries the status of a specific analysis task. ### Method GET ### Endpoint /api/v1/analysis/status/{task_id} ### Parameters #### Path Parameters - **task_id** (string) - Required - The ID of the task to query ``` -------------------------------- ### 检查进程状态 Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/DEPLOY.md 使用 `ps aux` 命令检查 `main.py` 进程是否正在运行。 ```bash ps aux | grep main.py ``` -------------------------------- ### Initialize Git Repository and Push to GitHub Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/DEPLOY.md Steps to initialize a local Git repository, add files, commit changes, and push to a newly created GitHub repository. Ensure you replace placeholder URLs with your actual repository details. ```bash # Initialize git(如果还没有) cd /path/to/daily_stock_analysis git init git add . git commit -m "Initial commit" ``` ```bash # 创建 GitHub 仓库并推送 # 在 GitHub 网页上创建新仓库后: git remote add origin https://github.com/你的用户名/daily_stock_analysis.git git branch -M main git push -u origin main ``` -------------------------------- ### GET /api/v1/history Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Retrieves a paginated list of historical analysis records. ```APIDOC ## GET /api/v1/history ### Description Retrieves a paginated list of historical analysis records. ### Method GET ### Endpoint /api/v1/history ### Parameters #### Query Parameters - **stock_code** (string) - Optional - Filter by stock code. - **start_date** (string) - Optional - Filter by start date (YYYY-MM-DD). - **page** (integer) - Optional - Page number. - **limit** (integer) - Optional - Number of items per page. ### Response #### Success Response (200) - **total** (integer) - Total number of records. - **page** (integer) - Current page number. - **limit** (integer) - Items per page. - **items** (array) - List of historical records. #### Response Example { "total": 45, "page": 1, "limit": 20, "items": [ { "id": 123, "stock_code": "600519", "stock_name": "贵州茅台", "sentiment_score": 75, "operation_advice": "观望" } ] } ``` -------------------------------- ### Create Portfolio Account Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Initialize a new investment portfolio account. ```bash curl -X POST "http://localhost:8000/api/v1/portfolio/accounts" \ -H "Content-Type: application/json" \ -d '{ "name": "A股主账户", "broker": "华泰证券", "market": "cn", "base_currency": "CNY" }' ``` -------------------------------- ### Command Line Interface Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Instructions for running the stock analysis tool from the command line. ```APIDOC ## 基本运行 ### Description 命令行接口用于运行股票分析工具。 ### Usage ```bash # 正常运行分析 python main.py # 调试模式(详细日志) python main.py --debug # 仅获取数据不进行 AI 分析 python main.py --dry-run # 指定分析特定股票 python main.py --stocks 600519,000001,AAPL ``` ``` -------------------------------- ### Configure System Crontab Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/full-guide.md Example of using system Cron to schedule the analysis task. ```bash crontab -e # 添加:0 18 * * 1-5 cd /path/to/project && python main.py ``` -------------------------------- ### GET /api/v1/analysis/status/{task_id} Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Retrieves the status and results of a specific asynchronous analysis task. ```APIDOC ## GET /api/v1/analysis/status/{task_id} ### Description Queries the status and results of a single analysis task. ### Method GET ### Endpoint /api/v1/analysis/status/{task_id} ### Parameters #### Path Parameters - **task_id** (string) - Required - The unique identifier of the task ### Response #### Success Response (200) - **task_id** (string) - Task identifier - **status** (string) - Current status (e.g., processing, completed) - **progress** (integer) - Completion percentage - **result** (object) - Analysis result if completed ``` -------------------------------- ### GET /api/health Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/openclaw-skill-integration.md Performs a health check on the Daily Stock Analysis API service. ```APIDOC ## GET /api/health ### Description Checks if the Daily Stock Analysis API service is running and healthy. ### Method GET ### Endpoint /api/health ### Response #### Success Response (200) Typically returns a simple JSON object indicating the service is operational, e.g., `{"status": "ok"}`. #### Response Example ```json { "status": "ok" } ``` ### Error Handling - **503 Service Unavailable**: If the service is not running or experiencing issues. ``` -------------------------------- ### 直接运行 Web 管理界面 Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/DEPLOY.md 仅启动 Web 管理界面,需要先在 .env 文件中设置 WEBUI_HOST=0.0.0.0。 ```bash python main.py --webui-only ``` -------------------------------- ### Build Web Frontend Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/AGENTS.md Builds the production-ready assets for the web frontend. ```bash npm run build ``` -------------------------------- ### 重启 Docker 容器 Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/FAQ.md 在手动修改 .env 配置文件后,通过重启容器使配置生效。 ```bash docker-compose down && docker-compose up -d ``` -------------------------------- ### Define LiteLLM YAML Routing Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/LLM_CONFIG_GUIDE_EN.md Example configuration for model lists and parameters in a YAML file. ```yaml model_list: - model_name: my-smart-model litellm_params: model: openai/deepseek-chat api_base: https://api.deepseek.com/v1 api_key: "os.environ/MY_CUSTOM_SECRET_KEY" # Fetch from environment vars for security # Ollama local model (no api_key needed) - model_name: ollama/qwen3:8b litellm_params: model: ollama/qwen3:8b api_base: http://localhost:11434 ``` -------------------------------- ### 安装 Docker (Ubuntu/Debian) Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/DEPLOY.md 安装 Docker 和 Docker Compose 的命令,并添加当前用户到 docker 用户组。 ```bash curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER ``` -------------------------------- ### Get Portfolio Risk Report Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Retrieve a risk assessment report for a specific portfolio account. ```bash curl "http://localhost:8000/api/v1/portfolio/risk?account_id=1" ``` -------------------------------- ### 启动 Docker Compose 服务 Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/deploy-webui-cloud.md 使用 `docker-compose` 命令启动服务。`-f ./docker/docker-compose.yml up -d` 启动所有服务,`up -d server` 仅启动 Web 界面服务。 ```bash docker-compose -f ./docker/docker-compose.yml up -d ``` ```bash docker-compose -f ./docker/docker-compose.yml up -d server ``` -------------------------------- ### 调整 Docker 内存限制 Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/DEPLOY.md 在 `docker-compose.yml` 文件中调整容器的内存限制。 ```yaml deploy: resources: limits: memory: 1G ``` -------------------------------- ### Retrieve Backtest Performance Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Get performance statistics for backtesting, either globally or for a specific stock. ```bash # 整体表现 curl "http://localhost:8000/api/v1/backtest/performance?eval_window_days=10" # 单股表现 curl "http://localhost:8000/api/v1/backtest/performance/600519" ``` -------------------------------- ### GET /api/v1/stocks/{stock_code}/quote Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Retrieves real-time market quote data for a specific stock. ```APIDOC ## GET /api/v1/stocks/{stock_code}/quote ### Description Retrieves real-time market quote data for a specific stock. ### Method GET ### Endpoint /api/v1/stocks/{stock_code}/quote ### Parameters #### Path Parameters - **stock_code** (string) - Required - The stock code to retrieve data for. ### Response #### Success Response (200) - **stock_code** (string) - The stock code. - **current_price** (float) - Current market price. - **change** (float) - Price change. - **change_percent** (float) - Percentage change. - **volume** (integer) - Trading volume. #### Response Example { "stock_code": "600519", "current_price": 1680.50, "change": 38.50, "change_percent": 2.35 } ``` -------------------------------- ### Run Local CI Gate Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/README.md Commands to install dependencies and execute local CI checks for the backend. ```bash pip install -r requirements.txt pip install flake8 pytest ./scripts/ci_gate.sh ``` -------------------------------- ### 检查 Nginx 配置并重载 Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/deploy-webui-cloud.md 使用 `nginx -t` 命令检查 Nginx 配置文件的语法错误,然后使用 `systemctl reload nginx` 重载配置。 ```bash sudo nginx -t sudo systemctl reload nginx ``` -------------------------------- ### 本地前端构建验证 Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/deploy-webui-cloud.md 在 `apps/dsa-web` 目录下执行 `npm ci`、`npm run lint` 和 `npm run build` 来验证本地前端构建流程。 ```bash cd apps/dsa-web npm ci npm run lint npm run build ``` -------------------------------- ### Get LLM Usage Summary Source: https://context7.com/zhulinsen/daily_stock_analysis/llms.txt Retrieve token consumption statistics for LLM operations over a specified period. ```bash curl "http://localhost:8000/api/v1/usage/summary?period=month" ``` -------------------------------- ### Server Deployment Commands Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/DEPLOY.md Commands for backing up the project on the source server and deploying it on the target server using Git and Docker Compose. ```bash cd /opt/stock-analyzer tar -czvf stock-analyzer-backup.tar.gz .env data/ logs/ reports/ ``` ```bash mkdir -p /opt/stock-analyzer cd /opt/stock-analyzer git clone . tar -xzvf stock-analyzer-backup.tar.gz docker-compose -f ./docker/docker-compose.yml up -d ``` -------------------------------- ### Configure Ollama Channel Mode Source: https://github.com/zhulinsen/daily_stock_analysis/blob/main/docs/LLM_CONFIG_GUIDE_EN.md Setup for local models using Ollama without an API key. ```env # 1. Enable channel mode, declare ollama channel LLM_CHANNELS=ollama # 2. Configure Ollama address (default local port 11434) LLM_OLLAMA_BASE_URL=http://localhost:11434 LLM_OLLAMA_MODELS=qwen3:8b,llama3.2 # 3. Specify primary model LITELLM_MODEL=ollama/qwen3:8b ```