CINXE.COM

How to set up and populate an update site

<!DOCTYPE html> <html> <head> <title>How to set up and populate an update site</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=3" /> <meta content="ImageJ Wiki" property="og:site_name"> <meta content="How to set up and populate an update site" property="og:title"> <meta content="article" property="og:type"> <meta content="The ImageJ wiki is a community-edited knowledge base on topics relating to ImageJ, a public domain program for processing and analyzing scientific images, and its ecosystem of derivatives and variants, including ImageJ2, Fiji, and others." property="og:description"> <meta content="https://imagej.github.io/update-sites/setup" property="og:url"> <meta content="https://imagej.github.io/media/icons/imagej2.png" property="og:image"> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="manifest" href="/site.webmanifest"> <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="theme-color" content="#ffffff"> <link rel="stylesheet" href="/assets/css/lightbox.min.css" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.css@7/themes/algolia-min.css"/> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/dygraphs@2.1.0/dist/dygraph.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/dygraphs@2.1.0/dist/dygraph.min.css" /> <link rel="stylesheet" href="/assets/css/main.css" /> <link rel="stylesheet" href="/assets/css/layout.css"/> <link rel="stylesheet" href="/assets/css/includes.css" /> <link rel="stylesheet" href="/assets/css/dock.css"/> <noscript><link rel="stylesheet" href="/assets/css/noscript.css" /></noscript> <link rel="stylesheet" href="/assets/css/page.css" /> </head> <body class="is-preload"> <!-- Top bar --> <section id="top-bar"> <a href="/"><img id="site-logo" src="/media/icons/imagej2.png"></a> <div id="search-panel"> <div id="search-box"></div> </div> </section> <!-- Page-info --> <div class="page-info"> <a href="https://github.com/imagej/imagej.github.io/commits/main/_pages/update-sites/setup.md">Page history</a> <a href="https://github.com/imagej/imagej.github.io/edit/main/_pages/update-sites/setup.md">Edit this page</a> <a href="/editing">How do I edit this website?</a></div> <section id="left-column" class="sidebar dock"> <!-- Menu --> <div class="menu dockable"> <div class="drag-handle"></div><h3>ImageJ Docs</h3> <ul> <li><a href="/downloads">Download</a></li> <li><details><summary>Learn</summary><ul> <li><details><summary><a href="/learn">ImageJ Basics</a></summary><ul> <li><a href="/tutorials">Tutorials</a></li> <li><a href="/learn/user-guides">User Guides</a></li> <li><a href="/learn/keyboard-shortcuts">Keyboard Shortcuts</a></li> <li><a href="/learn/tips-and-tricks">Tips and Tricks</a></li> <li><a href="/learn/troubleshooting">Troubleshooting</a></li> <li><a href="/learn/faq">Frequently Asked Questions</a></li> <li><details><summary><a href="/platforms">Supported Platforms</a></summary><ul> <li><a href="/platforms/windows">Windows</a></li> <li><a href="/platforms/macos">MacOS</a></li> <li><a href="/platforms/linux">Linux</a></li> <li><a href="/platforms/pi">Raspberry Pi</a></li> <li><a href="/platforms/android">Android</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/Supported Platforms --> <li><details><summary><a href="/formats">File Formats</a></summary><ul> <li><a href="/formats/bio-formats">Bio-Formats</a></li> <li><a href="/formats/video">Video formats</a></li> <li><a href="/formats/quicktime">QuickTime</a></li> <li><a href="/formats/tiff">TIFF</a></li> <li><a href="/formats/pdf">PDF</a></li> <li><a href="/formats/dicom">DICOM</a></li> <li><a href="/formats/lsm">Zeiss LSM</a></li> <li><a href="/formats/olympus">Olympus VSI</a></li> <li><a href="/formats/lurawave">Opera Flex</a></li> <li><a href="/formats/fib-sem">FIB-SEM</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/File Formats --> </ul></details></li> <!-- Learn/ImageJ --> <li><details><summary><a href="/imaging">Scientific Imaging</a></summary><ul> <li><a href="/imaging/principles">Principles of Scientific Imaging</a></li> <li><a href="/imaging/annotating-images">Annotating Images</a></li> <li><a href="/imaging/colocalization-analysis">Colocalization</a></li> <li><a href="/imaging/color-image-processing">Color Image Processing</a></li> <li><a href="/imaging/deconvolution">Deconvolution</a></li> <li><a href="/imaging/image-intensity-processing">Image Intensity Processing</a></li> <li><a href="/imaging/particle-analysis">Particle Analysis</a></li> <li><a href="/imaging/registration">Registration</a></li> <li><a href="/imaging/segmentation">Segmentation</a></li> <li><a href="/imaging/stack-slice-manipulations">Stack-slice Manipulations</a></li> <li><a href="/imaging/t-functions">T-functions</a></li> <li><a href="/imaging/tracking">Tracking</a></li> <li><a href="/imaging/visualization">Visualization</a></li> <li><a href="/imaging/z-functions">Z-functions</a></li> </ul></details></li> <!-- Learn/Scientific Imaging --> </ul></details></li> <!-- Learn --> <li><details open><summary><a href="/plugins">Extend</a></summary><ul> <li><a href="/list-of-extensions">List of Extensions</a></li> <li><details open><summary><a href="/update-sites">Update Sites</a></summary><ul> <li><a href="/list-of-update-sites">List of Update Sites</a></li> <li><a href="/update-sites/following">Following an Update Site</a></li> <li><a class="current-page">Creating an Update Site</a></li> <li><a href="/update-sites/tos">Terms of Service</a></li> <li><a href="/update-sites/automatic-uploads">Automatic Upload</a></li> <li><a href="/update-sites/core-uploads">Uploading to Core Sites</a></li> <li><a href="/update-sites/faq">Update Sites FAQ</a></li> <li><a href="/update-sites/stats">Statistics</a></li> </ul></details></li> <!-- Extend/Update Sites --> <li><details><summary><a href="/scripting">Scripting</a></summary><ul> <li><a href="/scripting/basics">Scripting Basics</a></li> <li><a href="/scripting/script-editor">Script Editor</a></li> <li><a href="/scripting/parameters">Parameters</a></li> <li><a href="/scripting/user-input">User Input</a></li> <li><a href="/scripting/auto-imports">Auto Import</a></li> <li><a href="/scripting/templates">Templates</a></li> <li><a href="/scripting/batch">Batch Processing</a></li> <li><a href="/scripting/headless">Running Headlessly</a></li> <li><a href="/scripting/comparisons">Scripting Comparisons</a></li> <li><a href="/scripting/toolbox">Toolbox</a></li> <li><details><summary>Languages</summary><ul> <li><a href="/scripting/beanshell">BeanShell Scripting</a></li> <li><a href="/scripting/groovy">Groovy Scripting</a></li> <li><a href="/scripting/macro">ImageJ Macro</a></li> <li><a href="/scripting/javascript">JavaScript</a></li> <li><a href="/scripting/clojure">Lisp (Clojure)</a></li> <li><a href="/scripting/matlab">MATLAB</a></li> <li><a href="/scripting/jython">Python (Jython)</a></li> <li><a href="/scripting/python">Python (native)</a></li> <li><a href="/scripting/renjin">R (Renjin)</a></li> <li><a href="/scripting/jruby">Ruby (JRuby)</a></li> <li><a href="/scripting/scala">Scala Scripting</a></li> </ul></details></li> <!-- Extend/Scripting/Languages --> </ul></details></li> <!-- Extend/Scripting --> <li><details><summary><a href="/develop">Development</a></summary><ul> <li><a href="/develop/philosophy">Philosophy</a></li> <li><a href="/develop/architecture">Architecture</a></li> <li><a href="/develop/source">Source code</a></li> <li><a href="/develop/project-management">Project management</a></li> <li><a href="/develop/coding-style">Coding style</a></li> <li><a href="/develop/javadoc">Using Javadoc</a></li> <li><a href="/develop/debugging">Debugging</a></li> <li><a href="/develop/wish-list">Wish list</a></li> <li><details><summary>Tools</summary><ul> <li><a href="/develop/github">GitHub</a></li> <li><a href="/develop/maven">Maven</a></li> <li><a href="/develop/ci">CI/CD</a></li> <li><a href="/develop/dotfiles">Dotfiles</a></li> <li><details><summary><a href="/develop/ides">IDEs</a></summary><ul> <li><a href="/develop/eclipse">Eclipse</a></li> <li><a href="/develop/netbeans">NetBeans</a></li> <li><a href="/develop/intellij">IntelliJ IDEA</a></li> <li><a href="/develop/command-line">Command Line</a></li> </ul></details></li> </ul></details></li> <!-- Extend/Development/Tools --> <li><details><summary>Guides</summary><ul> <li><a href="/develop/plugins">Writing plugins</a></li> <li><a href="/develop/improving-the-code">Contributing to a plugin</a></li> <li><a href="/develop/releasing">Development lifecycle</a></li> <li><a href="/develop/building-a-pom">Building a POM</a></li> <li><a href="/develop/debugging-exercises">Hands-on debugging</a></li> <li><a href="/develop/writing-ops">Adding new ops</a></li> <li><a href="/develop/formats">Adding new formats</a></li> <li><a href="/develop/native-libraries">Using native libraries</a></li> <li><a href="/develop/tips">Tips for developers</a></li> <li><a href="/develop/cpp-tips">Tips for C++ developers</a></li> <li><a href="/develop/ij1-plugins">ImageJ 1.x plugins</a></li> <li><a href="/develop/versioning">Versioning</a></li> <li><a href="/develop/logging">Logging</a></li> <li><a href="/develop/uber-jars">Uber-JARs</a></li> </ul></details></li> <!-- Extend/Development/Guides --> <li><details><summary><a href="/develop/git">Git</a></summary><ul> <li><a href="/develop/git/eclipse">Git in Eclipse (EGit)</a></li> <li><a href="/develop/git/mini-howto">Git mini howto</a></li> <li><a href="/develop/git/workshop">Git workshop</a></li> <li><a href="/develop/git/conflicts">Git conflicts</a></li> <li><a href="/develop/git/topic-branches">Git topic branches</a></li> <li><a href="/develop/git/notes">Git notes</a></li> <li><a href="/develop/git/reflogs">Git reflogs</a></li> <li><a href="/develop/git/submodules">Git submodules</a></li> <li><a href="/develop/git/pinpoint-regressions">How to pinpoint regressions</a></li> <li><a href="/develop/git/publish-a-repository">How to publish a git repository</a></li> <li><a href="/develop/git/extract-a-subproject">How to extract a subproject</a></li> </ul></details></li> <!-- Extend/Development/Git --> </ul></details></li> <!-- Extend/Development --> </ul></details></li> <!-- Extend --> <li><details><summary><a href="/contribute">Contribute</a></summary><ul> <li><a href="/contribute/citing">Citing</a></li> <li><a href="/people">Contributors</a></li> <li><a href="/orgs">Organizations</a></li> <li><a href="/contribute/governance">Governance</a></li> <li><a href="/contribute/funding">Funding</a></li> <li><a href="/contribute/fiji">Contributing to Fiji</a></li> <li><details><summary><a href="/licensing">Licensing</a></summary><ul> <li><details><summary><a href="/licensing/open-source">Open Source</a></summary><ul> <li><a href="/licensing/apache">Apache</a></li> <li><a href="/licensing/bsd">BSD</a></li> <li><a href="/licensing/epl">EPL</a></li> <li><a href="/licensing/gpl">GPL</a></li> <li><a href="/licensing/lgpl">LGPL</a></li> <li><a href="/licensing/mit">MIT</a></li> <li><a href="/licensing/public-domain">Public domain</a></li> <li><a href="/licensing/big">BIG</a></li> </ul></details></li> <!-- Contribute/Licensing/Open Source --> <li><a href="/licensing/closed-source">Proprietary</a></li> </ul></details></li> <!-- Contribute/Licensing --> <li><details><summary><a href="/editing">Editing the Wiki</a></summary><ul> <li><a href="/editing/advanced">Advanced Editing</a></li> <li><a href="/editing/buttons">Buttons</a></li> <li><a href="/editing/citations">Citations</a></li> <li><a href="/editing/code">Source Code</a></li> <li><a href="/editing/debugging">Debugging</a></li> <li><a href="/editing/headers">Headers</a></li> <li><a href="/editing/icons">Icons</a></li> <li><a href="/editing/images">Images</a></li> <li><a href="/editing/keys">Keyboard Shortcuts</a></li> <li><a href="/editing/linking">Linking</a></li> <li><a href="/editing/math">Math Expressions</a></li> <li><a href="/editing/menu-paths">Menu Paths</a></li> <li><a href="/editing/navigation">Navigation</a></li> <li><a href="/editing/notices">Notices</a></li> <li><a href="/editing/people">People</a></li> <li><a href="/editing/pitfalls">Pitfalls</a></li> <li><a href="/editing/quizzes">Quizzes</a></li> <li><a href="/editing/statbox">Statbox</a></li> <li><a href="/editing/symbols">Symbols</a></li> <li><a href="/editing/tables">Tables</a></li> <li><a href="/editing/tooltips">Tooltips</a></li> <li><a href="/editing/videos">Videos</a></li> <li><a href="/editing/whitespace">Whitespace</a></li> </ul></details></li> <!-- Contribute/Editing the Wiki --> </ul></details></li> <!-- Contribute --> <li><details><summary><a href="/discuss">Discuss</a></summary><ul> <li><a href="/discuss/bugs">Reporting Issues</a></li> <li><a href="/discuss/mailing-lists">Mailing Lists</a></li> <li><a href="/discuss/chat">Chat</a></li> </ul></details></li> <!-- Discuss --> <li><details><summary>Explore</summary><ul> <li><a href="/news">News</a></li> <li><details><summary><a href="/events">Events</a></summary><ul> <li><a href="/events/presentations">Presentations</a></li> <li><a href="/events/conferences">Conferences</a></li> <li><a href="/events/hackathons">Hackathons</a></li> <li><a href="/events">More...</a></li> </ul></details></li> <!-- Discuss/Events --> <li><details><summary><a href="/libs">Libraries</a></summary><ul> <li><a href="/libs/imagej-ops">ImageJ Ops</a></li> <li><a href="/libs/imagej-common">ImageJ Common</a></li> <li><a href="/libs/imagej-legacy">ImageJ Legacy</a></li> <li><a href="/libs/scijava">SciJava</a></li> <li><a href="/libs/scifio">SCIFIO</a></li> <li><details><summary><a href="/libs/imglib2">ImgLib2</a></summary><ul> <li><a href="/libs/imglib2/getting-started">Getting Started</a></li> <li><a href="/libs/imglib2/accessors">Accessors</a></li> <li><a href="/libs/imglib2/accessibles">Accessibles</a></li> <li><a href="/libs/imglib2/examples">Examples</a></li> <li><a href="/libs/imglib2/workshop-introductory">Introductory Workshop</a></li> <li><a href="/libs/imglib2/workshop-advanced">Advanced Workshop</a></li> <li><a href="/libs/imglib2/matlab">ImgLib2 images in MATLAB</a></li> <li><a href="/libs/imglib2/benchmarks">Benchmarks</a></li> <li><a href="/libs/imglib2/faq">FAQ</a></li> <li><a href="/libs/imglib2/developing">Developing ImgLib2</a></li> <li><a href="/libs/imglib2/discussion">ImgLib2 Discussion</a></li> </ul></details></li> <!-- Explore/Libraries/ImgLib2 --> <li><a href="/libs">More...</a></li> </ul></details></li> <!-- Explore/Libraries --> <li><details><summary><a href="/software">Software</a></summary><ul> <li><a href="/software/nih-image">NIH Image</a></li> <li><a href="/software/imagej">ImageJ</a></li> <li><a href="/software/imagej2">ImageJ2</a></li> <li><a href="/software/fiji">Fiji</a></li> <li><a href="/software">More...</a></li> </ul></details></li> <!-- Explore/Software --> </ul></details></li> <!-- Explore --> </ul> </div> </section> <section id="right-column" class="sidebar dock"> <!-- Vital stats --> <!-- Table of contents --> <div id="toc" class="toc menu dockable"> <div class="drag-handle"></div> <h3>Page contents</h3> <ul data-toc="#content" data-toc-headings="h1,h2,h3,h4,h5,h6"></ul> </div> </section> <!-- Page title --> <div class="container"> <header class="major special"> <a class="project-icon shadowed-box" href="/software/imagej2"><span class="tooltip"><img src="/media/icons/imagej2.png"><span class="tooltiptext" style="top: 80%; left: 25%; width: 20em">This page describes content relating to the ImageJ2 platform. Click the logo for details.</span></span></a> <h1>How to set up and populate an update site</h1> <span class="project-counterweight"> </span> </header> </div> <!-- Nav bar --> <div id="nav-bar"><ul class="shadowed-box"><li><a href="/update-sites/index">Overview</a></li><li><a href="/update-sites/automatic-uploads">Automatic&nbsp;Uploads</a></li><li><a href="/update-sites/core-uploads">Core&nbsp;Sites</a></li><li><a href="/update-sites/faq">FAQ</a></li><li><a href="/update-sites/following">How&nbsp;to&nbsp;Use</a></li><li>How&nbsp;to&nbsp;Create</li><li><a href="/update-sites/tos">TOS</a></li></ul></div> <!-- Main content --> <section id="page" class="main style1"> <div class="container"> <div class="box alt"></div> <div id="content" class="page-content"> <h2 id="introduction">Introduction</h2> <p>This tutorial explains how to <strong>set up a website to distribute your plugins</strong>. It assumes that your plugins are correctly installed in your local <a href="/software/imagej2">ImageJ2</a> setup.</p> <h2 id="rationale">Rationale</h2> <p>See the <a href="/contribute/distributing">Distribution</a> page for a discussion of the benefits of update sites and how they fit in to plugin development.</p> <h2 id="creating-a-hosted-update-site">Creating a hosted update site</h2> <p>The easiest method to provide your macros, scripts and plugins to other users, letting them keep up-to-date in the most convenient manner, is to set up an <a href="/update-sites">update site</a> on the <code class="language-plaintext highlighter-rouge">sites.imagej.net</code> server, hosted at <a href="/orgs/loci">LOCI</a>.</p> <div class="notice" style="font-size: 2; background: #ebf2f8; border-left: 10px solid #67a1fe"><div class="notice-icon"><img src="/media/icons/info.svg" width="32" /></div><div class="notice-content"><p>There are some minimal <em>Terms of Service</em> for hosted update sites. See the <a href="/update-sites/tos">Hosted Update Site Terms of Service</a> for details.</p> </div> </div> <p><strong><em>Please use <a href="https://forum.image.sc/t/requests-for-creating-imagej-update-sites/40051/">this thread on the Image.sc Forum</a> to request new update sites and/or upload account.</em></strong></p> <p>You can also request:</p> <ul> <li>The addition or removal of uploader permissions for a given user to a particular site;</li> <li>A password reset for your upload account.</li> </ul> <p>To start using your update site, in ImageJ2, start the <a href="/plugins/updater">Updater</a> with <span class="bc"><span>Help</span> › <span>Update</span></span> and click on the <span class="app-button">Manage Update Sites</span> button:</p> <p><img src="/media/update-sites/manage-sites.png" width="770" /></p> <h3 id="specifying-your-site">Specifying your site</h3> <p>Click the <span class="app-button">Add Unlisted Site</span> button.</p> <p><img src="/media/update-sites/add-update-site-1.png" width="770" /></p> <p>Using the URL and upload-username obtained above for <a href="#creating-a-hosted-update-site">hosted</a> or <a href="#adding-an-update-site-on-your-own-server">self-owned</a> sites, enter your site’s complete URL in the <strong>URL</strong> column and <code class="language-plaintext highlighter-rouge">webdav:&lt;upload-username&gt;</code> in the <strong>Host</strong> column. Optionally, you can edit the <strong>Name</strong> column for a local nickname to identify your site.</p> <p><img src="/media/update-sites/add-update-site-2.png" width="770" /></p> <h3 id="dedicated-plugin-update-sites">Dedicated plugin update sites</h3> <p>Rather than having a single update site for many plugins, it is highly advised to set up dedicated update sites for each plugin that could be of interest to the community.<br /> Such dedicated update site can have a more intuitive name.<br /> A given upload account can own several update sites. To request a new update site for your user account, post your request on the forum (see <a href="https://forum.image.sc/t/distributing-several-update-sites/21219/2">related post</a>), or on the <a href="https://gitter.im/imagej/imagej">ImageJ Gitter</a>.</p> <h2 id="group-update-site">Group update site</h2> <p>In addition to <a href="/update-sites/setup#creating-a-hosted-update-site">hosted update sites</a>, it is possible for groups of people to share an update site.</p> <p>To create such an update site, post on the <a href="https://forum.image.sc/tags/imagej">Image.sc Forum</a>, or in the <a href="https://gitter.im/imagej/imagej">imagej Gitter channel</a>, requesting the creation of the site on <code class="language-plaintext highlighter-rouge">sites.imagej.net</code>, including the desired name of the site, as well as the upload users to be granted upload permission to the group update site. An administrator will then create the site skeleton and grant those users upload permission to the new site.</p> <h2 id="adding-an-update-site-on-your-own-server">Adding an update site on your own server</h2> <p>If you have an own server or web space with WebDAV, SFTP or SSH access, you can create a directory in that web space and initialize it as an update site, too. Just call the updater with <span class="bc"><span>Help</span> › <span>Update</span></span> and click the <span class="app-button">Manage update sites</span> button:</p> <p><img src="/media/mamed-3.jpg" width="770" /></p> <p>Now press the <span class="app-button">Add</span> button, provide a nick name for your update site, the URL of your web space, and <em>upload information</em>.</p> <p>The <em>upload information</em> depends on the protocol available for uploading:</p> <table> <thead> <tr> <th>Protocol</th> <th>Host</th> <th>Directory on Host</th> </tr> </thead> <tbody> <tr> <td>WebDAV</td> <td><em>webdav:</em>, or *webdav:<webdav-user>*</webdav-user></td> <td><em>.</em></td> </tr> <tr> <td>SFTP</td> <td>*sftp:<sftp-user>@<sftp-host>*</sftp-host></sftp-user></td> <td>*<absolute-path>*</absolute-path></td> </tr> <tr> <td>SSH</td> <td>*ssh:<ssh-user>@<ssh-host>*</ssh-host></ssh-user></td> <td>*<absolute-path>*</absolute-path></td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> </tbody> </table> <p>In case you want to use an SFTP/SSH server, it must have an empty, public web accessible folder where you intend to publish your updates. The ImageJ updater will not create that empty folder.</p> <div class="notice" style="font-size: 2; background: #dedede; border-left: 10px solid #7e7e7e"><div class="notice-icon"><span class="">&#128161;</span></div><div class="notice-content"><p><strong>A note about SSH and <code class="language-plaintext highlighter-rouge">known_hosts</code>:</strong> For ImageJ to connect to your server over SSH, you must have configured your SSH credentials as normal—i.e.: <code class="language-plaintext highlighter-rouge">$HOME/.ssh/known_hosts</code> must contain the host key, and optionally <code class="language-plaintext highlighter-rouge">$HOME/.ssh/config</code> may contain the host configuration/credentials. We recommend that the given host be specified in <code class="language-plaintext highlighter-rouge">$HOME/.ssh/config</code> and equipped with a private key.</p> <p>Note that you need to connect with command-line ssh first, to record the finger-print of the host. It might be necessary to call <code class="language-plaintext highlighter-rouge">ssh-keyscan test.imagej.net &gt;&gt; $HOME/.ssh/known_hosts</code> to ensure the correctly formatted key appears in your configuration file. There is an issue with newer SSH servers offering host keys in <code class="language-plaintext highlighter-rouge">ecdsa-sha2-nistp256</code> format, but the <a href="http://www.jcraft.com/jsch/">JSch</a> library wanting them in <code class="language-plaintext highlighter-rouge">ssh-rsa</code> format instead. If you receive the error <code class="language-plaintext highlighter-rouge">com.jcraft.jsch.JSchException: UnknownHostKey</code> then you might be bitten by this discrepancy; try using the <code class="language-plaintext highlighter-rouge">ssh-keyscan</code> invocation above. If you still have trouble, please write to the <a href="https://forum.image.sc/">Image.sc Forum</a> to troubleshoot further.</p> </div> </div> <p><em>Example:</em> Let’s assume you have SFTP access to a machine known as <em>imagej.example.org</em> to the internet, and let’s assume that you have a user account <em>myself</em> that has write access to the path <em>/var/www/my-update-site/</em> on that machine that is served via http://imagej.example.org/my-update-site/. Then the line you need to add might look like this:</p> <table> <thead> <tr> <th>Name</th> <th>URL</th> <th>Host</th> <th>Directory on Host</th> </tr> </thead> <tbody> <tr> <td>My Update Site</td> <td>http://imagej.example.org/my-update-site/</td> <td>myself@imagej.example.org</td> <td>/var/www/my-update-site/</td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> </tbody> </table> <p>If the update site has not been initialized yet (i.e. if nobody else has initialized that site yet), you will see a dialog like this:</p> <p><img src="/media/update-sites/how-to-setup-a-plugin-distribution-site-6a.jpg" alt="" /></p> <p>Just click <em>OK</em> and let the updater upload an empty file index (it is stored in the file <em>db.xml.gz</em> which is also called the <em>database</em> in the documentation of the updater).</p> <h2 id="uploading-files-to-your-update-site">Uploading files to your update site</h2> <p>Note: you cannot simply copy files to your web space; the updater would miss all kinds of important information, and consequently refuse to accept that update site. You <strong>need</strong> to let the updater handle the file uploading.</p> <h3 id="start-the-updater-and-check-your-update-site">Start the <a href="/plugins/updater">updater</a> and check your update site</h3> <p>First, start the <a href="/plugins/updater">updater</a>:</p> <p><img src="/media/update-sites/how-to-setup-a-plugin-distribution-site-1.jpg" alt="" /></p> <p>Click on the <span class="app-button">Manage Update Sites</span> button and verify:</p> <ul> <li>Your update site is present and enabled</li> <li>The <em>Host</em> column of your update site contains your user name, in the form: <code class="language-plaintext highlighter-rouge">webdav:</code><UploadUsername></UploadUsername></li> </ul> <p>For example:</p> <p><img src="/media/update-sites/personal-update-site-7.png" width="770" /></p> <p>If this info is missing, see <a href="#specifying-your-site">Specifying your site</a>. Once your login information is set you can <span class="app-button">Apply and Close</span> the <code class="language-plaintext highlighter-rouge">Manage Update Sites</code> window.</p> <h3 id="prepare-your-files-for-upload">Prepare your files for upload</h3> <p>The general principle of populating an update site is to add the files of interest to your local Fiji installation, building your desired working state, then synchronizing to the remote update site.</p> <p>Note that there are several guidelines for where these files should be placed, based on their file type:</p> <ul> <li><strong>.jar libraries</strong>: for files used by other libraries or plugins, but not directly present e.g. in the <code class="language-plaintext highlighter-rouge">Plugins</code> menu, they go in the <em>jars</em> folder (or subfolder). If the file is platform-specific, it goes in the corresponding platform subdirectory of the <em>jars</em> folder (e.g. <em>jars/win64</em>).</li> <li><strong>.jar plugins</strong>: new additions to the <code class="language-plaintext highlighter-rouge">Plugins</code> menu belong in the <em>plugins</em> folder (or subfolder). Don’t forget to include an underscore (<code class="language-plaintext highlighter-rouge">_</code>) in the name!</li> <li><strong>.dll, .dylib, etc…</strong>: native libraries belong in a platform-specific subfolder of the <em>lib</em> directory (e.g. <em>lib/win64</em>).</li> <li><strong>.ijm macros</strong>: the files should be in the <em>plugins</em> folder or an appropriately named subfolder thereof. Their parent folder will become the entry name in the <code class="language-plaintext highlighter-rouge">Plugins</code> menu.</li> <li><strong>.py scripts</strong>: they can be either in the <em>jars/Lib</em> or <em>scripts</em> folder (or any subfolder).</li> </ul> <div class="notice" style="font-size: 2; background: #ebf2f8; border-left: 10px solid #67a1fe"><div class="notice-icon"><img src="/media/icons/info.svg" width="32" /></div><div class="notice-content"><p>If you are uploading platform-specific files you will also need to <a href="#editing-metadata">edit the metadata</a>!</p> </div> </div> <p>Out of those folders, the updater might not see them, or they may not be loaded correctly.</p> <p>To see your plugin(s) or file(s) back in the updater, click the <span class="app-button">Advanced Mode</span> button and set the view options:</p> <ul> <li>If your have never uploaded your plugins, select <em>View local-only files</em></li> <li>If you are uploading new versions of your plugins, select <em>View locally modified files only</em></li> </ul> <p>In this example, the plugin we’ll be uploading is contained in <em>A_Jolly_Useful_Plugin.jar</em>.</p> <p>Select the file to upload, click under the <em>Stats/Action</em> column, or right-click (on macOS, <kbd class="key">&#8963; Ctrl</kbd> + <span class="key"><img src="https://upload.wikimedia.org/wikipedia/commons/2/27/LMB_click.svg" /> Left Click</span>) in any column, for the context menu and select <em>Upload to &lt;update site name&gt;</em>.</p> <p><img src="/media/update-sites/upload-to-update-site.png" width="770" /></p> <div class="notice" style="font-size: 2; background: #ebf2f8; border-left: 10px solid #67a1fe"><div class="notice-icon"><img src="/media/icons/info.svg" width="32" /></div><div class="notice-content"><p>The <em>Upload to &lt;update site name&gt;</em> option is only available if you entered your <a href="#start-the-updater-and-check-your-update-site">upload credentials</a> and no other changes are pending. This is to avoid potentially corrupting your ImageJ installation. If the Upload option is not available, select the <em>View changes</em> view and resolve any pending changes - e.g. by updating or reverting to <strong>Keep as-is</strong>.</p> </div> </div> <h3 id="editing-metadata">Editing Metadata</h3> <p>When a file is selected in Advanced Mode, a <em>Details</em> panel becomes available. This allows manual editing of important metadata.</p> <p><img src="/media/update-sites/how-to-setup-a-plugin-distribution-site-15.jpg" width="770" /></p> <div class="notice" style="font-size: 2; background: #ebf2f8; border-left: 10px solid #67a1fe"><div class="notice-icon"><img src="/media/icons/info.svg" width="32" /></div><div class="notice-content"><p>The <em>Details</em> panel can only be edited if you have entered upload credentials for the appropriate update site. After modifying the <em>Details</em> panel you can mark the jar for upload, even though the jar contents itself has not changed.</p> </div> </div> <h4 id="platform-specific-files">Platform-specific Files</h4> <p>Some files in your update site may only be appropriate for specific platforms (e.g. Mac, Windows, Linux): <code class="language-plaintext highlighter-rouge">dll</code> or <code class="language-plaintext highlighter-rouge">dylib</code> files, for example. In that case, the <em>Platform</em> field can be used as a “classifier,” such that the updater will only download the given file if its platform value matches the current platform ImageJ is running on. This allows you to upload platform-specific binaries for all platforms to a single update site.</p> <p><img src="/media/update-sites/change-platform.png" width="770" /></p> <p>Note that this field <em>must</em> have one of the following values:</p> <ul> <li>macosx</li> <li>win32</li> <li>win64</li> <li>linux32</li> <li>linux64</li> </ul> <div class="notice" style="font-size: 2; background: #ffcccb; border-left: 10px solid #f57900"><div class="notice-icon"><img src="/media/icons/warning.png" /></div><div class="notice-content"><p>Platform values other than those in this list will cause your file to <em>never be matched</em>, so it will not show up for any follower of your update site.</p> </div> </div> <h4 id="modifying-dependencies">Modifying Dependencies</h4> <p>The plugin’s dependencies, e.g. <em>ij.jar</em> and <em>someJarOrOther.jar</em>, are automatically determined by the updater. Hence if you require 3rd party packages for your plugin you can place them into the jars folder of ImageJ and the updater will automatically upload them to the site.</p> <div class="notice" style="font-size: 2; background: #ffcccb; border-left: 10px solid #f57900"><div class="notice-icon"><img src="/media/icons/warning.png" /></div><div class="notice-content"><p>Sometimes the updater will mis-detect your dependencies. This may prevent you from uploading to your update site! If a dependency is wrong, you can manually add or delete dependencies from the <em>Details</em> tab to correct the problem. Please <a href="/discuss">let us know</a> when this happens so we can try to improve the updater</p> </div> </div> <h3 id="upload-your-files">Upload your files</h3> <p>Finally, click <em>Apply Changes (upload)</em> to upload your plugin to the server and allow others to access it. If you have dependencies that are not part of ImageJ, the updater will ask you if you want to upload that jar as well. Finally, you will be asked for your login credentials again and the files will be uploaded to the server.</p> <p>Check that your plugins are now registered as ImageJ plugins by selecting the <em>View files of the ‘[your site name here]’ site</em> view option:</p> <p><img src="/media/update-sites/updaterfinalscreen.jpg" width="770" /></p> <p>That’s it - you’re done. Now, anyone who wants a copy of your plugins merely needs to <a href="/update-sites/following">add your update site</a> to the Update manger via the URL you specified, and your plugins will be downloaded and updated in their ImageJ installations just like the standard ImageJ plugins.<br /> For even more visibility and practicability, you can ask to have your update site listed in the Fiji Updater (see section below).</p> <h2 id="removing-files-from-your-update-site">Removing files from your update site</h2> <p>Sometimes you may have libraries or resources that are no longer necessary for your update site. Follow these steps to remove unwanted files.</p> <h3 id="uninstall-local">Uninstall (local)</h3> <p>An ImageJ update site is essentially just a record of the changes/modifications from a base ImageJ distribution. We always populate an update site from our local installation, and for removal that’s no different. The first step is just physically removing the unwanted file(s).</p> <p>In the <span class="app-button">Advanced Mode</span> view of the updater, you can select any installed file and use either the <span class="app-button">Uninstall</span> button, or drop-down menu entry, to mark an item for removal. Then when you <span class="app-button">Apply Changes</span>, the selected item(s) will be deleted from your local filesystem.</p> <p><img src="/media/update-sites/uninstall.png" width="770" /></p> <p>This is functionally equivalent to removing these files manually from your filesystem; feel free to do so before starting your ImageJ application.</p> <h3 id="mark-obsolete-update-site">Mark obsolete (update site)</h3> <p>Once you have removed the undesired files, go back to the <span class="app-button">Advanced Mode</span> view of the updater and find the removed file(s). Using the <em>View uninstalled files only</em> view option can help here - if your file <em>is not</em> showing up on this view then something is off: double-check the file is not present locally.</p> <p>When you find the uninstalled file(s) you can click their <em>Status/Action</em> and change it to <strong>Mark obsolete (xxxxx)</strong>. This option should always have an associated update site name; verify that it matches the update site you will be removing the file from.</p> <p><img src="/media/update-sites/markobsolete.png" width="770" /></p> <p>Marking a file as obsolete will change its status to <strong>Remove it</strong>, and the action button to <span class="app-button">Apply Changes (Upload)</span></p> <h3 id="upload-the-changes">Upload the changes</h3> <p>Now you can proceed with uploading, just as you did when <a href="#upload-your-files">adding new files</a>.</p> <p>This will make a record of the removal in the update site’s metadata, so you can always verify what happened in the future.</p> <h2 id="publishing-your-update-site">Publishing your update site</h2> <p>If you want your update site to be listed in the ImageJ update manager, follow the instructions at this page : <a href="/list-of-update-sites">list of update sites</a> .</p> <h2 id="further-reading">Further Reading</h2> <p>For additional information on common topics regarding update site maintenance, please see the <a href="/update-sites/faq">update site FAQ</a>.</p> <h2 id="troubleshooting">Troubleshooting</h2> <p>If you run into any problems, please <a href="/discuss">let us know</a>!</p> </div> </div> </section> <!-- Footer --> <section id="footer"> <ul class="icons"> <li><a href="https://forum.image.sc/tag/imagej" class="icon alt"><img src="/media/icons/image-sc.png" width="24" style="vertical-align: middle; margin-top: -10px"><span class="label">Forum</span></a></li> <li><a href="https://twitter.com/hashtag/ImageJ" class="icon brands alt fa-twitter"><span class="label">Twitter</span></a></li> <li><a href="https://github.com/imagej" class="icon brands alt fa-github"><span class="label">GitHub</span></a></li> </ul> <ul class="copyright"> <li>Design: <a href="http://html5up.net">HTML5 UP</a></li> </ul> </section> <!-- Hamburger menu --> <nav role="navigation"> <div id="ham-toggle"> <input type="checkbox" /> <span></span> <!-- top bun --> <span></span> <!-- hamburger --> <span></span> <!-- bottom bun --> <ul id="ham-menu"> <div class="menu"><h3>ImageJ Docs</h3> <ul> <li><a href="/downloads">Download</a></li> <li><details><summary>Learn</summary><ul> <li><details><summary><a href="/learn">ImageJ Basics</a></summary><ul> <li><a href="/tutorials">Tutorials</a></li> <li><a href="/learn/user-guides">User Guides</a></li> <li><a href="/learn/keyboard-shortcuts">Keyboard Shortcuts</a></li> <li><a href="/learn/tips-and-tricks">Tips and Tricks</a></li> <li><a href="/learn/troubleshooting">Troubleshooting</a></li> <li><a href="/learn/faq">Frequently Asked Questions</a></li> <li><details><summary><a href="/platforms">Supported Platforms</a></summary><ul> <li><a href="/platforms/windows">Windows</a></li> <li><a href="/platforms/macos">MacOS</a></li> <li><a href="/platforms/linux">Linux</a></li> <li><a href="/platforms/pi">Raspberry Pi</a></li> <li><a href="/platforms/android">Android</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/Supported Platforms --> <li><details><summary><a href="/formats">File Formats</a></summary><ul> <li><a href="/formats/bio-formats">Bio-Formats</a></li> <li><a href="/formats/video">Video formats</a></li> <li><a href="/formats/quicktime">QuickTime</a></li> <li><a href="/formats/tiff">TIFF</a></li> <li><a href="/formats/pdf">PDF</a></li> <li><a href="/formats/dicom">DICOM</a></li> <li><a href="/formats/lsm">Zeiss LSM</a></li> <li><a href="/formats/olympus">Olympus VSI</a></li> <li><a href="/formats/lurawave">Opera Flex</a></li> <li><a href="/formats/fib-sem">FIB-SEM</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/File Formats --> </ul></details></li> <!-- Learn/ImageJ --> <li><details><summary><a href="/imaging">Scientific Imaging</a></summary><ul> <li><a href="/imaging/principles">Principles of Scientific Imaging</a></li> <li><a href="/imaging/annotating-images">Annotating Images</a></li> <li><a href="/imaging/colocalization-analysis">Colocalization</a></li> <li><a href="/imaging/color-image-processing">Color Image Processing</a></li> <li><a href="/imaging/deconvolution">Deconvolution</a></li> <li><a href="/imaging/image-intensity-processing">Image Intensity Processing</a></li> <li><a href="/imaging/particle-analysis">Particle Analysis</a></li> <li><a href="/imaging/registration">Registration</a></li> <li><a href="/imaging/segmentation">Segmentation</a></li> <li><a href="/imaging/stack-slice-manipulations">Stack-slice Manipulations</a></li> <li><a href="/imaging/t-functions">T-functions</a></li> <li><a href="/imaging/tracking">Tracking</a></li> <li><a href="/imaging/visualization">Visualization</a></li> <li><a href="/imaging/z-functions">Z-functions</a></li> </ul></details></li> <!-- Learn/Scientific Imaging --> </ul></details></li> <!-- Learn --> <li><details open><summary><a href="/plugins">Extend</a></summary><ul> <li><a href="/list-of-extensions">List of Extensions</a></li> <li><details open><summary><a href="/update-sites">Update Sites</a></summary><ul> <li><a href="/list-of-update-sites">List of Update Sites</a></li> <li><a href="/update-sites/following">Following an Update Site</a></li> <li><a class="current-page">Creating an Update Site</a></li> <li><a href="/update-sites/tos">Terms of Service</a></li> <li><a href="/update-sites/automatic-uploads">Automatic Upload</a></li> <li><a href="/update-sites/core-uploads">Uploading to Core Sites</a></li> <li><a href="/update-sites/faq">Update Sites FAQ</a></li> <li><a href="/update-sites/stats">Statistics</a></li> </ul></details></li> <!-- Extend/Update Sites --> <li><details><summary><a href="/scripting">Scripting</a></summary><ul> <li><a href="/scripting/basics">Scripting Basics</a></li> <li><a href="/scripting/script-editor">Script Editor</a></li> <li><a href="/scripting/parameters">Parameters</a></li> <li><a href="/scripting/user-input">User Input</a></li> <li><a href="/scripting/auto-imports">Auto Import</a></li> <li><a href="/scripting/templates">Templates</a></li> <li><a href="/scripting/batch">Batch Processing</a></li> <li><a href="/scripting/headless">Running Headlessly</a></li> <li><a href="/scripting/comparisons">Scripting Comparisons</a></li> <li><a href="/scripting/toolbox">Toolbox</a></li> <li><details><summary>Languages</summary><ul> <li><a href="/scripting/beanshell">BeanShell Scripting</a></li> <li><a href="/scripting/groovy">Groovy Scripting</a></li> <li><a href="/scripting/macro">ImageJ Macro</a></li> <li><a href="/scripting/javascript">JavaScript</a></li> <li><a href="/scripting/clojure">Lisp (Clojure)</a></li> <li><a href="/scripting/matlab">MATLAB</a></li> <li><a href="/scripting/jython">Python (Jython)</a></li> <li><a href="/scripting/python">Python (native)</a></li> <li><a href="/scripting/renjin">R (Renjin)</a></li> <li><a href="/scripting/jruby">Ruby (JRuby)</a></li> <li><a href="/scripting/scala">Scala Scripting</a></li> </ul></details></li> <!-- Extend/Scripting/Languages --> </ul></details></li> <!-- Extend/Scripting --> <li><details><summary><a href="/develop">Development</a></summary><ul> <li><a href="/develop/philosophy">Philosophy</a></li> <li><a href="/develop/architecture">Architecture</a></li> <li><a href="/develop/source">Source code</a></li> <li><a href="/develop/project-management">Project management</a></li> <li><a href="/develop/coding-style">Coding style</a></li> <li><a href="/develop/javadoc">Using Javadoc</a></li> <li><a href="/develop/debugging">Debugging</a></li> <li><a href="/develop/wish-list">Wish list</a></li> <li><details><summary>Tools</summary><ul> <li><a href="/develop/github">GitHub</a></li> <li><a href="/develop/maven">Maven</a></li> <li><a href="/develop/ci">CI/CD</a></li> <li><a href="/develop/dotfiles">Dotfiles</a></li> <li><details><summary><a href="/develop/ides">IDEs</a></summary><ul> <li><a href="/develop/eclipse">Eclipse</a></li> <li><a href="/develop/netbeans">NetBeans</a></li> <li><a href="/develop/intellij">IntelliJ IDEA</a></li> <li><a href="/develop/command-line">Command Line</a></li> </ul></details></li> </ul></details></li> <!-- Extend/Development/Tools --> <li><details><summary>Guides</summary><ul> <li><a href="/develop/plugins">Writing plugins</a></li> <li><a href="/develop/improving-the-code">Contributing to a plugin</a></li> <li><a href="/develop/releasing">Development lifecycle</a></li> <li><a href="/develop/building-a-pom">Building a POM</a></li> <li><a href="/develop/debugging-exercises">Hands-on debugging</a></li> <li><a href="/develop/writing-ops">Adding new ops</a></li> <li><a href="/develop/formats">Adding new formats</a></li> <li><a href="/develop/native-libraries">Using native libraries</a></li> <li><a href="/develop/tips">Tips for developers</a></li> <li><a href="/develop/cpp-tips">Tips for C++ developers</a></li> <li><a href="/develop/ij1-plugins">ImageJ 1.x plugins</a></li> <li><a href="/develop/versioning">Versioning</a></li> <li><a href="/develop/logging">Logging</a></li> <li><a href="/develop/uber-jars">Uber-JARs</a></li> </ul></details></li> <!-- Extend/Development/Guides --> <li><details><summary><a href="/develop/git">Git</a></summary><ul> <li><a href="/develop/git/eclipse">Git in Eclipse (EGit)</a></li> <li><a href="/develop/git/mini-howto">Git mini howto</a></li> <li><a href="/develop/git/workshop">Git workshop</a></li> <li><a href="/develop/git/conflicts">Git conflicts</a></li> <li><a href="/develop/git/topic-branches">Git topic branches</a></li> <li><a href="/develop/git/notes">Git notes</a></li> <li><a href="/develop/git/reflogs">Git reflogs</a></li> <li><a href="/develop/git/submodules">Git submodules</a></li> <li><a href="/develop/git/pinpoint-regressions">How to pinpoint regressions</a></li> <li><a href="/develop/git/publish-a-repository">How to publish a git repository</a></li> <li><a href="/develop/git/extract-a-subproject">How to extract a subproject</a></li> </ul></details></li> <!-- Extend/Development/Git --> </ul></details></li> <!-- Extend/Development --> </ul></details></li> <!-- Extend --> <li><details><summary><a href="/contribute">Contribute</a></summary><ul> <li><a href="/contribute/citing">Citing</a></li> <li><a href="/people">Contributors</a></li> <li><a href="/orgs">Organizations</a></li> <li><a href="/contribute/governance">Governance</a></li> <li><a href="/contribute/funding">Funding</a></li> <li><a href="/contribute/fiji">Contributing to Fiji</a></li> <li><details><summary><a href="/licensing">Licensing</a></summary><ul> <li><details><summary><a href="/licensing/open-source">Open Source</a></summary><ul> <li><a href="/licensing/apache">Apache</a></li> <li><a href="/licensing/bsd">BSD</a></li> <li><a href="/licensing/epl">EPL</a></li> <li><a href="/licensing/gpl">GPL</a></li> <li><a href="/licensing/lgpl">LGPL</a></li> <li><a href="/licensing/mit">MIT</a></li> <li><a href="/licensing/public-domain">Public domain</a></li> <li><a href="/licensing/big">BIG</a></li> </ul></details></li> <!-- Contribute/Licensing/Open Source --> <li><a href="/licensing/closed-source">Proprietary</a></li> </ul></details></li> <!-- Contribute/Licensing --> <li><details><summary><a href="/editing">Editing the Wiki</a></summary><ul> <li><a href="/editing/advanced">Advanced Editing</a></li> <li><a href="/editing/buttons">Buttons</a></li> <li><a href="/editing/citations">Citations</a></li> <li><a href="/editing/code">Source Code</a></li> <li><a href="/editing/debugging">Debugging</a></li> <li><a href="/editing/headers">Headers</a></li> <li><a href="/editing/icons">Icons</a></li> <li><a href="/editing/images">Images</a></li> <li><a href="/editing/keys">Keyboard Shortcuts</a></li> <li><a href="/editing/linking">Linking</a></li> <li><a href="/editing/math">Math Expressions</a></li> <li><a href="/editing/menu-paths">Menu Paths</a></li> <li><a href="/editing/navigation">Navigation</a></li> <li><a href="/editing/notices">Notices</a></li> <li><a href="/editing/people">People</a></li> <li><a href="/editing/pitfalls">Pitfalls</a></li> <li><a href="/editing/quizzes">Quizzes</a></li> <li><a href="/editing/statbox">Statbox</a></li> <li><a href="/editing/symbols">Symbols</a></li> <li><a href="/editing/tables">Tables</a></li> <li><a href="/editing/tooltips">Tooltips</a></li> <li><a href="/editing/videos">Videos</a></li> <li><a href="/editing/whitespace">Whitespace</a></li> </ul></details></li> <!-- Contribute/Editing the Wiki --> </ul></details></li> <!-- Contribute --> <li><details><summary><a href="/discuss">Discuss</a></summary><ul> <li><a href="/discuss/bugs">Reporting Issues</a></li> <li><a href="/discuss/mailing-lists">Mailing Lists</a></li> <li><a href="/discuss/chat">Chat</a></li> </ul></details></li> <!-- Discuss --> <li><details><summary>Explore</summary><ul> <li><a href="/news">News</a></li> <li><details><summary><a href="/events">Events</a></summary><ul> <li><a href="/events/presentations">Presentations</a></li> <li><a href="/events/conferences">Conferences</a></li> <li><a href="/events/hackathons">Hackathons</a></li> <li><a href="/events">More...</a></li> </ul></details></li> <!-- Discuss/Events --> <li><details><summary><a href="/libs">Libraries</a></summary><ul> <li><a href="/libs/imagej-ops">ImageJ Ops</a></li> <li><a href="/libs/imagej-common">ImageJ Common</a></li> <li><a href="/libs/imagej-legacy">ImageJ Legacy</a></li> <li><a href="/libs/scijava">SciJava</a></li> <li><a href="/libs/scifio">SCIFIO</a></li> <li><details><summary><a href="/libs/imglib2">ImgLib2</a></summary><ul> <li><a href="/libs/imglib2/getting-started">Getting Started</a></li> <li><a href="/libs/imglib2/accessors">Accessors</a></li> <li><a href="/libs/imglib2/accessibles">Accessibles</a></li> <li><a href="/libs/imglib2/examples">Examples</a></li> <li><a href="/libs/imglib2/workshop-introductory">Introductory Workshop</a></li> <li><a href="/libs/imglib2/workshop-advanced">Advanced Workshop</a></li> <li><a href="/libs/imglib2/matlab">ImgLib2 images in MATLAB</a></li> <li><a href="/libs/imglib2/benchmarks">Benchmarks</a></li> <li><a href="/libs/imglib2/faq">FAQ</a></li> <li><a href="/libs/imglib2/developing">Developing ImgLib2</a></li> <li><a href="/libs/imglib2/discussion">ImgLib2 Discussion</a></li> </ul></details></li> <!-- Explore/Libraries/ImgLib2 --> <li><a href="/libs">More...</a></li> </ul></details></li> <!-- Explore/Libraries --> <li><details><summary><a href="/software">Software</a></summary><ul> <li><a href="/software/nih-image">NIH Image</a></li> <li><a href="/software/imagej">ImageJ</a></li> <li><a href="/software/imagej2">ImageJ2</a></li> <li><a href="/software/fiji">Fiji</a></li> <li><a href="/software">More...</a></li> </ul></details></li> <!-- Explore/Software --> </ul></details></li> <!-- Explore --> </ul> </div> </ul> </div> </nav> <div id="dock-overlay-left" class="dock-overlay" data-dock-target="left-column"></div> <div id="dock-overlay-right" class="dock-overlay" data-dock-target="right-column"></div> <!-- Search results --> <div id="search-results"> <div id="search-hits"></div> <div id="pagination"></div> </div> <!-- Scripts --> <!-- Libraries --> <script src="/assets/js/jquery.min.js"></script> <script src="/assets/js/jquery.scrolly.min.js"></script> <script src="/assets/js/browser.min.js"></script> <script src="/assets/js/breakpoints.min.js"></script> <script src="/assets/js/util.js"></script> <script src="/assets/js/jquery.toc.js"></script> <script src="/assets/js/lightbox.min.js"></script> <!-- Extensions --> <!-- Site code --> <script src="/assets/js/main.js"></script> <script src="/assets/js/dock.js"></script> <script src="/assets/js/code.js"></script> <!-- Anchors --> <script src="https://cdn.jsdelivr.net/npm/anchor-js/anchor.min.js"></script> <script>anchors.add('#page h1, #page h2, #page h3, #page h4, #page h5, #page h6');</script> <!-- Citations --> <script src="https://cdn.jsdelivr.net/npm/citation-js@0.4.0-9"></script> <script src="/assets/js/cite.js"></script> <!-- Search --> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.13.0/dist/algoliasearch-lite.umd.js"></script> <script src="https://cdn.jsdelivr.net/npm/instantsearch.js@4.40.3/dist/instantsearch.production.min.js"></script> <script src="/assets/js/search.js"></script> <script src="/assets/js/search-tweaks.js"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10