Skip to content

keeping docker-health up to date with main#21

Closed
shark1Martin wants to merge 168 commits intodocker-healthfrom
main
Closed

keeping docker-health up to date with main#21
shark1Martin wants to merge 168 commits intodocker-healthfrom
main

Conversation

@shark1Martin
Copy link
Contributor

holllllyy **** why are there so many conflicts, i gotto fix this crap now...might delete pl, we'll see

haoruizhou and others added 30 commits April 28, 2025 20:06
Revert "adding message receive notification to docker"

This reverts commit 4d24a56.

Reapply "adding message receive notification to docker"

This reverts commit 05346d5.
to only send stopped hearing message once

fallen_once wrong var name
Added WFR25-d3bcc24.dbc CAN database, daq-qrh-checklist.tsx, and initial installer/docker-compose.yml and readme.md files. These additions provide CAN signal definitions, a DAQ checklist UI, and setup instructions for the installer.
need to fix grafana data source selection
Replaced all occurrences of the old InfluxDB datasource UID with 'influxdb-wfr-v2' in the Vehicle Overview dashboard and updated plugin versions. Modified docker-compose to require explicit INFLUXDB_TOKEN. Cleaned up the dashboard import guide, adjusted default dashboard data source, and updated time ranges. Reduced InfluxDB startup wait time in the start script.

change directories in READMEs

Update readme.md
- Implemented a Flask application for uploading CSV and ZIP files containing CSV data.
- Added functionality to track upload progress and send notifications via a webhook.
- Created a Docker Compose configuration for easy deployment.
- Developed a helper module for processing CAN data and streaming to InfluxDB.
- Included front-end components for drag-and-drop file upload and progress display.
- Added necessary CSS and JavaScript for user interface enhancements.
- Created HTML template for the upload interface.
- Included a logo asset for branding.
- Defined dependencies in requirements.txt for project setup.
Removed an erroneous comma in the services array

Updated README on how status check works
- Add automated Docker build pipeline (.github/workflows/docker-build.yml)
- Add code quality checks (.github/workflows/code-quality.yml)
- Add deployment workflow (.github/workflows/deploy.yml)
- Add helper script to pull latest images (pull-latest-images.sh)
- Update README with CI/CD documentation
- Fix startup-data-loader service array syntax error
- Remove duplicate car-to-influx files that were moved to installer/
- These files are now properly located in installer/car-to-influx/
haoruizhou and others added 28 commits November 13, 2025 21:55
Fix CI false failures by suppressing teardown errors in smoke test
gitignore included json from data-downloader
Slackbot container now checks ENABLE_SLACK before starting. The restart policy is set to 'no' with a comment for continuous operation guidance.
* removed sensor fallback range

  - data-downloader/backend/services.py:71 now feeds the sensor collector with fallback start/end timestamps
    derived from the freshly scanned run windows, eliminating the static date dependency and ensuring both
    scanners stay in sync; the helper at data-downloader/backend/services.py:124 safely scans the windows,
    normalizes them to UTC, and only returns a range when it is valid so the SQL chunking logic in backend/
    sql.py stays unchanged and memory-friendly.
  - data-downloader/backend/config.py:31 drops the unused SENSOR_FALLBACK_* settings so the app no longer
    advertises manual fallback tuning knobs that would fight the new automatic behavior.
  - data-downloader/README.md:35 explains the new automatic fallback derived from the date scanner, and data-
    downloader/.env.example:11 removes the obsolete environment variables from the sample configuration to
    keep deploys aligned with the new flow.

* Update installer/data-downloader/backend/services.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Introduces the CSV_RESTART_INTERVAL environment variable to control how many CSV files are processed before the loader restarts itself, improving resource management for large data loads. Updates documentation and implements logic in load_data.py to support this feature.
Removed unnecessary volume mount from docker-compose.yml and added a .dockerignore to exclude data and build artifacts from the Docker build context. Updated Dockerfile to only copy required files, reducing image size and build time.
* Refactor DBC file handling and path resolution

Centralizes DBC file location logic in both file-uploader and startup-data-loader, allowing override via DBC_FILE_PATH environment variable and supporting shared volume mounting. Updates Docker Compose and documentation to reflect new DBC file sharing approach, removes redundant DBC copy from startup-data-loader image, and renames example.dbc to repository root for consistency.

* Standardize DBC file path in Docker containers

Updated docker-compose.yml to use a fixed container path (/installer/example.dbc) for the DBC file, while allowing the host file name to remain flexible. This change simplifies environment variable usage and volume mounting for startup-data-loader and file-uploader services.
* Proxy API requests via nginx and improve frontend API base handling

Added nginx configuration to proxy /api requests to the FastAPI backend, enabling seamless API access from the frontend. Updated frontend API base logic to prefer relative paths when not running on localhost, improving compatibility for deployments on VPS and other hosts. Updated documentation to reflect these changes. Also updated .gitignore to exclude .dbc files except for example.dbc.

* Add timezone support to data download component

Integrates Luxon for robust timezone handling in the data-download component. Input and output timestamps are now interpreted and formatted according to the selected run's timezone, improving accuracy for users in different locales. Updates UI to display the active timezone and ensures payloads use correct ISO strings.

* Preserve input times when switching run selection

When deselecting a run, input timestamps are now converted from the previously selected run's timezone to the local timezone, ensuring user-entered times remain consistent. This improves usability when toggling between run-based and manual time entry.

* Improve time zone handling in data download UI

Added dynamic time zone labels and tooltips to the data download component. Time input fields now display the selected run's time zone or local system time, and chart hover tooltips show UTC-formatted timestamps for clarity.
removed frontend-build, grafana dashboard provision, updated READMEs
local tested ok
better documentation on .env.example
Add image banner to README

Added an image banner to the README file.

Add demo section for data-downloader component

Added a demo section explaining the data-downloader component and its features.
Introduces Cohere-powered code generation and a custom Python sandbox for telemetry analysis. Updates environment variables, documentation, and docker-compose to support new services. Integrates Slackbot with code generator for natural language queries, adds retry logic, and provides setup guides and test scripts.
…#17)

* refactor: remove telegraf service and switch to direct influxdb write

* Update installer/startup-data-loader/load_data.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix formatting in InfluxDB legacy build docs

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add AI code generation and sandbox services

Introduces Cohere-powered code generation and a custom Python sandbox for telemetry analysis. Updates environment variables, documentation, and docker-compose to support new services. Integrates Slackbot with code generator for natural language queries, adds retry logic, and provides setup guides and test scripts.

* prompt guide mounting change

---------

Co-authored-by: WFR DAQ Server (ovh) <westerndaq@gmail.com>
# Conflicts:
#	installer/sandbox/code_generator.py
#	installer/sandbox/docker-compose.yml
#	installer/sandbox/sandbox_server.py
#	installer/slackbot/slack_bot.py
hyphenated directory

Slackbot code clean up

Handle Slack event errors
* Use fixed origin for DATE_BIN alignment

Ensure DATE_BIN uses a fixed origin (config.start) instead of the per-query t0 so bucket boundaries remain consistent across chunked/split queries. Adds a bin_origin variable and updates the SQL DATE_BIN(...) third argument to reference that origin, preventing misaligned bins when scanning runs in multiple segments.

* Use slicks for scanning and sensor discovery

Replace custom InfluxDB SQL scans with the slicks library: add slicks to requirements, delegate data-availability scanning to slicks.scan_data_availability and convert its ScanResult into the flat API dict format, and replace manual sensor SQL queries with slicks.discover_sensors (including fallback behavior). Update service connectivity check to use slicks.connect_influxdb3 / slicks.get_influx_client. Add docstrings and small refactors (private helper renames) while removing direct InfluxDBClient3 SQL query logic.

* Slackbot code clean up

Handle Slack event errors

* Revert "Use slicks for scanning and sensor discovery"

This reverts commit ab09885.

* Sensor scan fallback logic update

_build_sensor_fallback_range now finds the run with the longest duration and uses its time range for the fallback.

* Use slicks for scanning and discovery

* Update CI

* Add status page, timezone fix, test utilities

Add a simple HTML status page at / (app.py) that reports InfluxDB connectivity, runs, sensors and scanner status for quick debugging (imports HTMLResponse). Adjust periodic worker retry behavior to wait 60s after failures and keep the regular interval after successful scans (periodic_worker.py). Fix timezone handling in sensor discovery (sql.py) by converting UTC-aware datetimes to naive datetimes to work around slicks 0.1.3 generating invalid SQL for InfluxDB 3; apply same fix to fallback ranges. Add several debugging/reproduction scripts for inspecting slicks and InfluxDB behavior (installer/data-downloader/testing/*) to help reproduce timestamp/connection issues. Update docker-compose to inject INFLUX_URL, INFLUX_TOKEN and INFLUX_DB into the api and scanner services so slicks child processes can self-configure.

* Add multi-season support to data-downloader

Introduce multi-season configuration and handling across the data-downloader service and frontend. Key changes:

- Config: add SeasonConfig and _parse_seasons to read SEASONS env var; expose seasons in Settings with sensible defaults.
- Backend services: manage per-season Runs/Sensors repositories (file suffixing), return seasons list via /api/seasons, accept optional season parameter for runs/sensors/note/query endpoints, scan all configured seasons and store results per-season, and default to newest season when none provided.
- Influx/query: fetch_signal_series now accepts a database override and service query routes pass season-specific DBs.
- Scanner/Storage: adjust season start/end boundaries (season starts Aug previous year, ends Jan 1 next year); storage filenames include season suffix.
- Periodic worker: support scheduling either by interval or daily time via SCAN_DAILY_TIME env var.
- Frontend: fetch seasons, add season selector UI, propagate selected season to all API calls and adapt visuals (accent color), and add season type to types.
- Docker compose: add SEASONS and SCAN_DAILY_TIME environment wiring and minor formatting fixes.
- .gitignore: ignore installer/data-downloader/data.

Fallbacks and defaults are provided when SEASONS is unset, and scanning continues per-season even if individual season scans fail.

* Data Downloader Flowchart

* Restore lappy_test_image.png

Update .gitignore

* Parse schema.table and pass to DB connector

Handle config.table values that may include a schema (e.g. "iox.WFR25"). server_scanner.scan_runs now splits config.table into schema and table_name and passes them to slicks.connect_influxdb3; it also sets the local table variable to None to rely on the global configuration. sql.fetch_unique_sensors now includes schema and table when connecting as well. These changes ensure the DB connector receives explicit schema/table info and that scanning functions behave correctly when config.table is provided as "schema.table".

* Update requirements.txt
Enables GF_AUTH_PROXY with Cf-Access-Authenticated-User-Email header
so users authenticated through Cloudflare Access are automatically
signed into Grafana with individual accounts. New users are provisioned
as Editor by default. ENABLE_LOGIN_TOKEN disabled to prevent redirect
loops when migrating from the old shared password login.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@shark1Martin
Copy link
Contributor Author

i just created a new branch and called it docker-health-v2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants