{"id":13546525,"url":"https://github.com/plotly/orca","last_synced_at":"2025-10-21T20:04:41.027Z","repository":{"id":30158592,"uuid":"99037241","full_name":"plotly/orca","owner":"plotly","description":"Command line application for generating static images of interactive plotly charts","archived":false,"fork":false,"pushed_at":"2025-01-27T14:23:10.000Z","size":10851,"stargazers_count":303,"open_issues_count":130,"forks_count":41,"subscribers_count":45,"default_branch":"master","last_synced_at":"2025-01-27T15:32:47.069Z","etag":null,"topics":["plotly"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plotly.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"https://plot.ly/products/consulting-and-oem/"}},"created_at":"2017-08-01T19:45:43.000Z","updated_at":"2025-01-27T14:23:12.000Z","dependencies_parsed_at":"2024-11-03T14:42:00.135Z","dependency_job_id":null,"html_url":"https://github.com/plotly/orca","commit_stats":{"total_commits":526,"total_committers":24,"mean_commits":"21.916666666666668","dds":0.7452471482889733,"last_synced_commit":"a852bed22ed7f40d2c74548ef8f41fd840404c43"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plotly%2Forca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plotly%2Forca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plotly%2Forca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plotly%2Forca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plotly","download_url":"https://codeload.github.com/plotly/orca/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246869697,"owners_count":20847177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["plotly"],"created_at":"2024-08-01T12:00:39.497Z","updated_at":"2025-10-21T20:04:41.021Z","avatar_url":"https://github.com/plotly.png","language":"JavaScript","readme":"\u003e Orca support in Plotly.py is deprecated and will be removed after September 2025. Use [Kaleido](https://plotly.com/python/static-image-export/) instead.\n\n# Orca\n\n![orca logo](orca_logo.png)\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://dash.plotly.com/project-maintenance\"\u003e\n    \u003cimg src=\"https://dash.plotly.com/assets/images/maintained-by-plotly.png\" width=\"600px\" alt=\"Maintained by Plotly\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n[![npm version](https://badge.fury.io/js/orca.svg)](https://badge.fury.io/js/orca)\n[![MIT License](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/plotly/orca/blob/master/LICENSE)\n\nOrca is an Electron app that generates images and reports of Plotly things like\nplotly.js graphs, dash apps, dashboards from the command line. Additionally,\nOrca is the backbone of Plotly's Image Server. Orca is also an acronym for\n**Open-source Report Creator App.**\n\nVisit [plot.ly](https://plot.ly) to learn more or visit the [Plotly forum](https://community.plot.ly/).\n\nFollow [@plotlygraphs](https://twitter.com/plotlygraphs) on Twitter for Orca announcements.\n\n## Installation\n\n### Method 1: conda\nIf you have conda installed, you can easily install Orca from the plotly\nconda channel using:\n```\n$ conda install -c plotly plotly-orca\n```\n\nwhich makes the `orca` executable available on the path of current conda\nenvironment.\n\n### Method 2: npm\nIf you have Node.js installed (recommended v8.x), you can easily install Orca\nusing npm as:\n\n```\n$ npm install -g electron@6.1.4 orca\n```\n\nwhich makes the `orca` executable available in your path.\n\n### Method 3: Docker\n\n```\n$ docker pull quay.io/plotly/orca\n```\n\n#### Usage\n\nIf no arguments are specified, it starts an Orca server on port 9091.\nYou can publish the port to the outside world the usual way:\n```\n$ docker run -d -p 9091:9091 quay.io/plotly/orca\n```\nIf the first argument is `graph`,\nit executes the command line application `orca graph`:\n```\n$ docker run -i quay.io/plotly/orca graph --help\n```\n\n### Method 4: Standalone binaries\n\nAlternatively, you can download the standalone Orca binaries corresponding to\nyour operating system from the\n[release](https://github.com/plotly/orca/releases) page. Then, on\n\n#### Mac OS\n\n- Unzip the `mac-release.zip` file.\n- Double-click on the `orca-X.Y.Z.dmg` file. This will open an installation window.\n- Drag the orca icon into the `Applications` folder.\n- Open finder and navigate to the `Applications/` folder.\n- Right-click on the orca icon and select _Open_ from the context menu.\n- A password dialog will appear asking for permission to add orca to your system `PATH`.\n- Enter you password and click _OK_.\n- This should open an _Installation Succeeded_ window.\n- Open a new terminal and verify that the orca executable is available on your `PATH`.\n\n```\n$ which orca\n/usr/local/bin/orca\n\n$ orca --help\nPlotly's image-exporting utilities\n\n  Usage: orca [--version] [--help] \u003ccommand\u003e [\u003cargs\u003e]\n  ...\n```\n\n#### Windows\n\n- Extract the `windows-release.zip` file.\n- In the `release` folder, double-click on `orca Setup X.Y.Z`, this will create an orca icon on your Desktop.\n- Right-click on the orca icon and select _Properties_ from the context menu.\n- From the _Shortcut_ tab, copy the directory in the _Start in_ field.\n- Add this _Start in_ directory to you system `PATH` (see below).\n- Open a new Command Prompt and verify that the orca executable is available on your `PATH`.\n\n```\n\u003e orca --help\nPlotly's image-exporting utilities\n\n  Usage: orca [--version] [--help] \u003ccommand\u003e [\u003cargs\u003e]\n  ...\n```\n\n##### Windows References\n - How to set the path and environment variables in Windows: https://www.computerhope.com/issues/ch000549.htm\n\n#### Linux\n\n- Make the orca AppImage executable.\n\n```\n$ chmod +x orca-X.Y.Z-x86_64.AppImage\n```\n\n- Create a symbolic link named `orca` somewhere on your `PATH` that points\nto the AppImage.\n\n```\n$ ln -s /path/to/orca-X.Y.Z-x86_64.AppImage /somewhere/on/PATH/orca\n```\n\n- Open a new terminal and verify that the orca executable is available on your `PATH`.\n\n```\n$ which orca\n/somewhere/on/PATH/orca\n\n$ orca --help\nPlotly's image-exporting utilities\n\n  Usage: orca [--version] [--help] \u003ccommand\u003e [\u003cargs\u003e]\n  ...\n```\n\n##### Linux Troubleshooting: Cannot open shared object\nThe Electron runtime depends a several common system libraries. These\nlibraries are pre-installed in most desktop Linux distributions\n(e.g. Ubuntu), but are not pre-installed on some server Linux distributions\n(e.g. Ubuntu Server). If a shared library is missing, you will see an error\nmessage like:\n\n```\n$ orca --help\norca: error while loading shared libraries: libgtk-x11-2.0.so.0:\ncannot open shared object file: No such file or directory\n```\n\nThese additional dependencies can be satisfied by installing:\n - The `libgtk2.0-0` and `libgconf-2-4` packages from your distribution's\n software repository.\n - The `chromium-browser` package from your distribution's\n software repository.\n\n##### Linux Troubleshooting: Headless server configuration\nThe Electron runtime requires the presence of an active X11 display server,\nbut many server Linux distributions (e.g. Ubuntu Server) do not include X11\nby default.  If you do not wish to install X11 on your server, you may\ninstall and run orca with Xvfb instead.\n\nOn Ubuntu Server, you can install Xvfb like this:\n```\n$ sudo apt-get install xvfb\n```\n\nTo run orca under Xvfb, replace the symbolic link suggested above with a shell\nscript that runs the orca AppImage executable using the `xvfb-run` command.\n\n```\n#!/bin/bash\nxvfb-run -a /path/to/orca-X.Y.Z-x86_64.AppImage \"$@\"\n```\n\nName this shell script `orca` and place it somewhere on your system `PATH`.\n\n##### Linux References\n - How to add directory to system path in Linux: https://www.computerhope.com/issues/ch001647.htm\n - AppImage: https://appimage.org/\n - Xvfb: https://en.wikipedia.org/wiki/Xvfb\n\n## Quick start\n\nFrom the command line:\nUnix/MacOS:\n\n```\n$ orca graph '{ \"data\": [{\"y\": [1,2,1]}] }' -o fig.png\n```\nWindows:\n\n```\norca graph \"{ \\\"data\\\": [{\\\"y\\\": [1,2,1]}] }\" -o fig.png\n```\ngenerates a PNG from the inputted plotly.js JSON attributes. Or,\n\n```\n$ orca graph https://plot.ly/~empet/14324.json --format svg\n```\n\ngenerates an SVG from a plotly.js JSON hosted on [plot.ly](https://plot.ly/).\n\nWhen running\n\nTo print info about the supported arguments, run:\n\n```\n$ orca --help\n$ orca \u003ccommand\u003e --help\n```\n\nTo call `orca` from a Python script:\n\n```python\nfrom subprocess import call\nimport json\nimport plotly\n\nfig = {\"data\": [{\"y\": [1,2,1]}]}\ncall(['orca', 'graph', json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder)])\n```\n\nTo call `orca` from an R script:\n\n```R\nlibrary(plotly)\n\np \u003c- plot_ly(x = 1:10, y = 1:10, color = 1:10)\norca(p, \"plot.svg\")\n```\n\n## API usage\n\nUsing the `orca` npm module allows developers to build their own\nPlotly exporting tool. We export two Electron app creator methods `run` and\n`serve`.  Both methods return an Electron `app` object (which is an event\nlistener/emitter).\n\nTo create a _runner_ app:\n\n```js\n// main.js\n\nconst orca = require('orca/src')\n\nconst app = orca.run({\n  component: 'plotly-graph',\n  input: 'path-to-file' || 'glob*' || url || '{data: [], layout: {}}' || [/* array of those */],\n  debug: true\n})\n\napp.on('after-export', (info) =\u003e {\n  fs.writeFile('output.png', info.body, (err) =\u003e console.warn(err))\n})\n\n// other available events:\napp.on('after-export-all', () =\u003e {})\napp.on('export-error', () =\u003e {})\napp.on('renderer-error', () =\u003e {})\n```\n\nthen launch it with `electron main.js`\n\nOr, to create a _server_ app:\n\n```js\n// main.js\n\nconst orca = require('orca/src')\n\nconst app = orca.serve({\n  port: 9090,\n  component: 'component name ' || [{\n    name: 'plotly-graph',\n    path: /* path to module if none given, tries to resolve ${name} */,\n    route: /* default to same as ${name} */,\n\n    // other options passed to component methods\n    options: {\n      plotlyJS: '',\n      mathjax: '',\n      topojson: '',\n      mapboxAccessToken: ''\n    }\n  }, {\n    // other component\n  }, {\n    // other component ...\n  }],\n\n  debug: false || true\n})\n\napp.on('after-export', (info) =\u003e {\n  console.log(info)\n})\n\n// other available events:\napp.on('after-connect', () =\u003e {})\napp.on('export-error', () =\u003e {})\napp.on('renderer-error', () =\u003e {})\n```\n\nthen launch it with `electron main.js`\n\n## Plotly's image server\n\nPlotly's image server is dockerized and deployed here. See the `deployment/`\n[README](https://github.com/plotly/orca/tree/master/deployment) for more info.\n\n## System dependencies\n\n**If you don't care about exporting EPS or EMF you can skip this section.**\n\nThe environment you're installing this into may require Poppler for EPS exports and Inkscape for EMF exports.\n\n#### Poppler installation via Aptitude (used by some \\*nix/BSD, e.g. Ubuntu)\n\n```\n$ apt-get install poppler-utils (requires `sudo` or root privileges)\n```\n\n#### Poppler installation via Homebrew (third-party package manager for Mac OS X)\n\n```\n$ brew install poppler\n```\n\n#### Inkscape installation via Aptitude (used by some \\*nix/BSD, e.g. Ubuntu)\n\n```\n$ apt-get install inkscape (requires `sudo` or root privileges)\n```\n\n#### Inkscape installation via Homebrew (third-party package manager for Mac OS X)\n\n```\n$ brew install inkscape\n```\n## Contributing\n\nSee\n[CONTRIBUTING.md](https://github.com/plotly/orca/blob/master/CONTRIBUTING.md).\nYou can also [contact us](https://plot.ly/products/consulting-and-oem/) if you\nwould like a specific feature added.\n\n| Tests and Linux builds | Mac OS build | Windows build | Docker build |\n| --- | --- | --- | --- |\n| [![CircleCI](https://circleci.com/gh/plotly/orca.svg?style=svg)](https://circleci.com/gh/plotly/orca) | [![Build Status](https://travis-ci.org/plotly/orca.svg?branch=master)](https://travis-ci.org/plotly/orca) | [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/plotly/orca?svg=true)](https://ci.appveyor.com/project/AppVeyorDashAdmin/image-exporter) | [![Docker Repository on Quay](https://quay.io/repository/plotly/orca/status \"Docker Repository on Quay\")](https://quay.io/repository/plotly/orca) |\n\n\n## License\n\nCode released under the MIT ©\n[License](https://github.com/plotly/orca/blob/master/LICENSE).\n","funding_links":["https://plot.ly/products/consulting-and-oem/"],"categories":["Set SSH with Github"],"sub_categories":["Install R and RStudio"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplotly%2Forca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplotly%2Forca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplotly%2Forca/lists"}