node-export-server  by highcharts

CLI tool for converting Highcharts.JS charts to static images

created 9 years ago
364 stars

Top 78.6% on SourcePulse

GitHubView on GitHub
Project Summary

This project provides a Node.js-based server for converting Highcharts.JS charts into static image files (PNG, JPEG, SVG, PDF). It's designed for developers needing to automate chart generation for reports, caching, or embedding in documents, and offers flexibility as a CLI tool, HTTP server, or Node.js module.

How It Works

The server leverages Puppeteer to control a headless Chrome instance, rendering Highcharts charts from SVG or JSON input. It manages a pool of worker processes for efficient parallel processing of export requests, allowing for configurable worker counts and timeouts to optimize performance and resource utilization.

Quick Start & Requirements

Highlighted Details

  • Supports PNG, JPEG, SVG, and PDF output formats.
  • Can be configured via CLI arguments, environment variables, or JSON files.
  • Offers an HTTP server mode for self-hosting and reducing reliance on the public Highcharts export service.
  • Includes options for SSL, rate limiting, and proxy configuration.
  • Allows dynamic switching of Highcharts versions via an authenticated API endpoint.

Maintenance & Community

The project is maintained by Highcharts. Further community interaction details are not explicitly provided in the README.

Licensing & Compatibility

  • License: MIT.
  • A valid Highcharts License is required for exports.

Limitations & Caveats

  • Disallows xlink:href in SVG by default for security, requiring explicit configuration (OTHER_ALLOW_XLINK_HREF=true) to allow it.
  • Has an upload limit defaulting to 3MB, configurable via SERVER_MAX_UPLOAD_SIZE.
  • Requires system fonts to be installed for proper chart rendering.
Health Check
Last commit

2 weeks ago

Responsiveness

1+ week

Pull Requests (30d)
1
Issues (30d)
3
Star History
2 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.