How to Update TrendRadar: A Complete Guide for Source, Docker, and MCP Deployments

Updating TrendRadar involves pulling the latest source code from the sansan0/TrendRadar repository, migrating your config/config.yaml to match any new schema requirements, and refreshing Docker images if running containerized deployments.

This guide covers every update path for the TrendRadar open-source project, whether you run it directly from Python, use Docker Compose, or operate the optional MCP server. Each method preserves your existing reports and data while bringing in new features and security fixes.


Update Methods Overview

TrendRadar supports three primary deployment patterns, each with its own update workflow:

Method Best For Update Complexity
Source Code Development, customization Low — git pull and config check
Docker Compose Production, server deployments Low — image pull and container recreate
MCP Server AI/LLM integrations Low — separate image update

Source Code Updates

The core Python application lives in the trendradar/ directory with entry point at trendradar/__main__.py. When updating from source, you pull the latest commits and verify configuration compatibility.

Step 1: Pull Latest Commits


# Navigate to your local repository

cd /path/to/TrendRadar

# Pull latest changes from master branch

git pull origin master

Step 2: Verify Configuration Migration

Starting with v2.0.0, the configuration schema changed significantly. The legacy push_window and analysis_window top-level keys are no longer valid.

Open your configuration file and update to the new format:

nano config/config.yaml

Old format (pre-v2.0.0):

push_window: 3600
analysis_window: 86400

New format (v2.0.0+):

schedule:
  preset: always_on
  # or use: preset: fixed_window with explicit timing

The sample configuration at [config/config.yaml](https://github.com/sansan0/TrendRadar/blob/master/config/config.yaml) in the repository always reflects the current schema.

Step 3: Verify Installation


# Run version check via module execution

python -m trendradar --version

Docker and Docker Compose Updates

For containerized deployments, TrendRadar publishes images to Docker Hub as wantcat/trendradar. The Docker Compose orchestration is defined in docker/docker-compose.yml.

Step 1: Pull Latest Images


# Pull the main TrendRadar image

docker pull wantcat/trendrador

# Or, using Docker Compose from the docker directory

cd docker
docker compose pull

Step 2: Recreate Containers

Force recreation ensures new image layers are active and old environment doesn't persist:

cd docker
docker compose up -d --force-recreate

Step 3: Verify Running Version


# Check container logs for version banner

docker logs trendradar

The [docker/docker-compose.yml](https://github.com/sansan0/TrendRadar/blob/master/docker/docker-compose.yml) file includes service definitions for both the main application and persistent volumes for report storage.


MCP Server Updates

The optional Model Context Protocol (MCP) server enables AI assistant integrations. It runs as a separate container image: wantcat/trendradar-mcp.

Update the MCP Server


# Pull latest MCP image

docker pull wantcat/trendradar-mcp

# Recreate only the MCP service

cd docker
docker compose up -d mcp --force-recreate

The MCP server configuration is typically handled through environment variables in your Docker Compose override or .env file, separate from the main config.yaml.


Data Preservation and Migration

Updating TrendRadar does not delete existing data. The following components persist across updates:

Component Location Persistence Method
HTML reports output/index.html and dated files Host filesystem or Docker volume
SQLite database data/trendradar.db (default) Local file or configured S3 backend
User configuration config/config.yaml Manual migration required on schema changes

The storage abstraction in [trendradar/storage/base.py](https://github.com/sansan0/TrendRadar/blob/master/trendradar/storage/base.py) handles both local SQLite and remote S3 backends, ensuring data portability across update scenarios.


Troubleshooting Common Update Issues

Configuration Validation Errors

If you see errors about missing keys after update, your config.yaml likely uses the old schema:


# Validate your config against the sample

diff config/config.yaml config/config.yaml.sample

Docker Image Pull Failures


# Force fresh authentication and pull

docker logout
docker login
docker pull wantcat/trendradar:latest

Database Migration Issues

For major version jumps, manual SQLite migration may be required:


# Backup before any manual migration

cp data/trendradar.db data/trendradar.db.backup.$(date +%Y%m%d)

Summary

  • Source updates use git pull origin master followed by config.yaml migration for v2.0.0+ schema changes.
  • Docker updates pull wantcat/trendradar:latest and recreate containers with docker compose up -d --force-recreate.
  • MCP server updates follow the same pattern using wantcat/trendradar-mcp.
  • All data persists automatically — only configuration requires manual attention during schema changes.

Frequently Asked Questions

How do I know if my config.yaml needs migration?

Check for the schedule: key in your config. If you see top-level push_window or analysis_window keys instead, you're using the pre-v2.0.0 format and must migrate to the new schema documented in the sample [config/config.yaml](https://github.com/sansan0/TrendRadar/blob/master/config/config.yaml).

Can I update TrendRadar without stopping my scheduled runs?

Yes. For Docker deployments, the docker compose up -d --force-recreate command performs a rolling-style restart with minimal downtime. For source deployments, the application only runs when explicitly invoked, so updates won't interrupt inactive schedules.

What happens to my historical reports when I update?

Nothing — reports are preserved. The output/ directory and its contents remain intact across updates. New runs simply append fresh reports. If you wish to clear old data, you must manually remove files from the output directory.

Is the MCP server updated separately from the main application?

Yes. The MCP server (wantcat/trendradar-mcp) is a distinct Docker image with its own release cycle. While major versions typically align, you should pull and recreate the MCP service independently using docker compose up -d mcp --force-recreate to ensure you have the latest AI integration capabilities.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →