Public Repository

Last pushed: 3 months ago
Short Description
Official repository of FSI Server, a realtime image resizing, publishing and management solution.
Full Description

What is FSI Server?

FSI Server is a comprehensive web image server enabling you to manage all your images easily and deliver them to your audience fast, reliably and very flexibly.
You only need to charge FSI Server with a single high-resolution source image and all requested variations including different sizes, colors or formats will be created on the fly, in real-time. FSI Server additionally enables you to add zoom, 360° spins, image galleries and many more features to unlock the full potential of your image presentation. FSI Server has been designed for high traffic environments and offers a wide range of scalability and fail-over options.

For more information and related manuals and tutorials, please go to

How to use FSI Server

How to run a quick test installation of FSI Server

$ docker run --rm -it -p 8080:8080 -t neptunelabs/fsi-server

This command is solely for quickly testing your FSI Server, which you can afterwards access via http://localhost:8080/fsi/interface/

You can log into the FSI Server web interface with the default credentials admin/admin. If you would like to lear more about the interface and how to use it, please got to the FSI Server online manual.

Please note that this is just for testing purposes and not persitent. For a persitent installation, please see below.

Create Persistent Data Directory on your host

Since FSI Server is usually used to manage a large amount of images, we recommend creating a persitent directory for storing the images on your host.

This also has the advantage that it is easier to change the container for an update while preserving the image storage.

$ mkdir -p /opt/fsi-data

Create Persistent Data Structure in /opt/fsi-data

$ docker run --rm -t -i -v /opt/fsi-data:/srv/fsi/mounts neptunelabs/fsi-server fsi create_persistent

This creates the persitent data structure in /opt/fsi-data.

Create FSI Server Container and start it

$ docker run --name fsi-server -p 8080:8080 -v /opt/fsi-data:/srv/fsi/mounts -t neptunelabs/fsi-server

fsi-server is the name assigned to the container, -v defines that there will be a volume mounted at /opt/fsi-data so you have persistent access to config files, storage/connectors etc. even if the container is removed.

Run FSI Server benchmark

$ docker exec -it fsi-server bin/fsi benchmark

Please keep in mind that for a full benchmark (including the Storage benchmark) a minimum storage of 50GB need to be available.

It is also possible to benchmark only certain parts of FSI Server, for example:

$ docker exec -it fsi-server bin/fsi benchmark encoder

List of available commands for benchmark:
all, cache, image, encoder, swap, storage, io

default: all


FSI Server dynamically generates images in different formats, dimensions and qualities – in real-time. You only have to upload one high resolution source image for each image used on a website, costly and time consuming manual image preparation gets obsolete.
The variations are retrieved by a web application directly from FSI Server using HTTP queries. FSI Server provides an extensive range of HTTP commands allowing full control over the delivered image data.

Dynamic Image URL Request Examples:

Defines the height of the image displayed to 200 pixels, width will be adjusted accordingly.

Adds a Contrast effect to the image.

Crops the image.

With the accompanying viewers you can deliver outstanding zoom and spin image quality to mobile devices as well as desktop computers.
Display your images using responsive image zoom on touch devices, use fly-out zoom on desktop devices, present galleries or interactive e-catalogues – FSI Server is the all in one device independent solution of your choice.

Using FSI TouchZoom

FSI TouchZoom greatly enhances the browsing experience on touchscreen devices.
Standard websites use fixed size images, which get blurry when pinch zooming into the website.
Using FSI TouchZoom, the images are loaded dynamically in a crisp and clear version according to the device resolution and display density.

For implementing FSI TouchZoom to your website, you just need to add the fsitouchzoom.js script to the corresponding HTML document where you would like to load the images dynamically.


<script type="text/javascript" src="http://localhost:8080/fsi/viewer/applications/touchzoom/js/fsitouchzoom.js"></script>
<img src="http://localhost:8080/fsi/server?type=image&source=sample-images%2FLittle-Bee.jpg&width=400&height=267&quality=98&format=jpeg" width="400" height="267" />

Using FSI Viewer JS

FSI Viewer JS provides zoom and 360° spins entirely based on JavaScript technology. Product presentations become more vivid and compelling since you are able to view the product from all sides and explore every detail of an image with fast and smooth zoom.
The viewer can be used on any device, such as standard desktop devices, touch screen displays, iOS™, Android™ and Windows™ smartphones and tablets.

Implementing FSI Viewer JS to your website is easy, you just need to do the following two steps:

  1. Embed the fsiviewer.js script
  2. Initialize the viewer

Add the fsiviewer.js script to the head of the document and a custom <fsi-viewer> tag to the part of your document body where the zoom and/or 360° spin should be displayed.


<script type="text/javascript" src="http://localhost:8080/fsi/viewer/applications/viewer/js/fsiviewer.js"></script>
<fsi-viewer width="400" height="300" src="sample-images/Little-Bee.jpg" skin="silver" plugins="FullScreen,Resize">
//here you can place the fallback content in case the browser cannot display the viewer, e,g,:
<b>Sorry</b>, your browser is not capable of running FSI Viewer JS

Using FSI Server in production mode


You can download the software and try it as long as you like. There are no feature limitations or performance restrictions in the unregistered version, besides watermarks being displayed. We also provide a free 60 day key for testing purposes without watermarks, you can see how the get one here.

After the trial period expired you can add a full licence key.

Our solution is flexible and can be tailored to your needs and business – whether you are a small, medium or large enterprise, if you have a small or a big amount of page impressions monthly – our editions cover all of those cases. You can choose to install the software on your own hardware or use dedicated servers or shared hosting services provided by us – we offer a tailored setup matching your requirements. You can learn more about the available options here.

Assign RAM to FSI Server while creating the container

$ docker run --name fsi-server -d -e "XMX=4g" -p 8080:8080 -v /opt/fsi-data:/srv/fsi/mounts -t neptunelabs/fsi-server

Connect to FSI Server from an application in another docker container (e.g. Solr)

Please note that the following steps need to be done BEFORE the FSI Server container is created.

Pull Solr

$ docker pull solr:6-alpine

We reccomend to use the alpine version of Solr since this version uses less space than the normal version.

Create Solr core

$ docker run --rm -t -i -v /opt/fsi-data:/srv/fsi/mounts neptunelabs/fsi-server fsi create_solr_core

Start a Solr Server Container with FSI Server Core

$ docker run --name fsi-solr -d -p --restart=always -v /opt/fsi-data/solr-core/fsi-server:/opt/solr/server/solr/fsi-server -t solr:6-alpine

Create FSI Server container, link it with Solr and start it

$ docker run -d --name fsi-server -p 8080:8080 --restart=always -v /opt/fsi-data:/srv/fsi/mounts --link fsi-solr:solr -t neptunelabs/fsi-server

Configuring FSI Server, creating connectors, etc.

For in-depth information on how to configure FSI Server, please visit the FSI Server online manual.

Docker Pull Command