New Official APT Repository: Faster Access to the Latest IIPImage Releases for Debian & Ubuntu

The IIPImage server has been part of the official Debian and official Ubuntu distributions for a number of years: indeed since the Ubuntu Quantal Quetzal 12.10 release in 2012. However, new iipsrv releases can sometimes take a considerable time to be made available in the stable versions of Debian or Ubuntu. To enable users to gain faster access to the latest IIPImage releases, an official IIPImage APT repository has been put in place to provide the latest IIPImage packages as soon as they are released.

Users can now get faster access to the latest version of iipsrv with all the latest features and enhancements without having to wait for the official Debian or Ubuntu distro freezes.

The packages are based on updated versions of the original Debian builds and include all available features in an easy to install package. These packages are configured to provide full TIFF, JPEG2000 and JPEG input support as well as TIFF, PNG, WebP and AVIF output. They also provide both a fully configured IIP URL endpoint at the URL /iipsrv/iipsrv.fcgi as well as a new ready-to-use IIIF Image API v3 endpoint at /iiif/.

Packages are available for 64-bit intel (amd64) for Debian version 12 (bookworm) and the latest version 13 (trixie). For Ubuntu, packages are available for LTS versions 22.04 (jammy) and 24.04 (noble). As well as for all Ubuntu versions since the last LTS: 24.10 (oracular), 25.04 (plucky) and the current 25.10 (questing).

Installation

The easiest way to use this repository and to enable automatic updates of IIPImage is to first download and install the repository signing key and apt sources list.

Debian Download:

Ubuntu Download:

Now install the downloaded deb package using dpkg:

sudo dpkg -i iipimage-keyring_1.0.0-1+<version>_all.deb

This will install a new IIPImage sources listing in /etc/apt/sources.list.d/iipimage.sources as well as the signing key. The Suites parameter can be modified when updating Debian or Ubuntu versions.

Once installed, update your apt repositories:

sudo apt update

You can now install the latest version of the IIPImage server for your distribution as you would any other package:

sudo apt install iipimage-server

This will install the iipsrv executable as well as the necessary systemd service files and will automatically start an instance of iipsrv bound to localhost port 9000. The configuration parameters for iipsrv can be found in /etc/default/iipsrv. To start, stop or restart the systemd service, the standard systemd syntax can be used. For example:

sudo systemd stop iipsrv

Note that the iipsrv binary is now installed in the more standard location of /usr/sbin/iipsrv rather than in /usr/lib/cgi-bin/iipsrv.fcgi as in previous versions of the Debian package.

A separate and optional documentation package is available in the the iipimage-doc package which provides a copy of the doxygen-generated documentation in /usr/share/doc/iipimage-server/html/. This can be installed with:

sudo apt install iipimage-doc

Web Server Integration

The iipsrv instance listens for FCGI requests. To enable full HTTP access, a web server must be used. To facilitate this, there are packages available for Apache, Lighttpd and Nginx. The Apache and Lighttpd packages fully configure the respective web servers and provide automatic and immediate access to the IIPImage endpoints. Nginx requires an extra manual step. To install the packages for each web server:

Apache

sudo apt install iipimage-apache-conf

This automatically enables Apache proxy forwarding via mod_proxy_fcgi to map the iipsrv URLs to the running instance of iipsrv (started by systemd). If Apache is already running, nothing further needs to be done. Otherwise start Apache:

sudo systemctl start apache2

Lighttpd

sudo apt install iipimage-lighttpd-conf

As with Apache, this automatically enables proxy forwarding on port 9000 to the running instance of iipsrv. If Lighttpd is not already running, start it:

sudo systemctl start lighttpd

Nginx

sudo apt install iipimage-nginx-conf

This installs a snippets file in /etc/nginx/snippets/iipsrv-nginx.conf. To enable iipsrv on Nginx you will need to manually modify your site configuration file in /etc/nginx/sites-enabled/ (on a fresh installation there will be only a single default site config file).

To enable iipsrv, simply add the following line to your site configuration towards the end of the server section:

include snippets/iipsrv-nginx.conf;

You should therefore have a site configuration that looks like this:

# Default server configuration
#
server {
  listen 80 default_server;
  listen [::]:80 default_server;

  # Other directives
  ...

  # IIPImage
  include snippets/iipsrv-nginx.conf;
}

Start (or restart) Nginx to enable:

sudo systemctl restart nginx

Testing

All three web server configurations provide identical iipsrv URLs  with a standard iipsrv service at /iipsrv/iipsrv.fcgi and a new dedicated IIIF v3 endpoint at /iiif/

If the packages have been installed locally, visit http://localhost/iipsrv/iipsrv.fcgi to see the iipsrv landing page.

Using an External Webserver

If you already have a web server on a different machine (for example, when running a single front-end web server), it is not necessary to install or configure an extra web server on the machine that hosts iipsrv. You can simply proxy requests from your front-end web server directly to the iipsrv instance running on port 9000. To do this, see the proxy forwarding section of the server documentation for details on how to configure this for different web servers.  You will also need to change the HOST parameter in /etc/default/iipsrv from the default localhost to 0.0.0.0 to make iipsrv is visible to your front-end web server.

Automatic Updates

Updates of IIPImage are fully automated and new releases of iipsrv will automatically install when performing a standard apt upgrade.

Note that when performing a distribution upgrade to a newer version of Debian or Ubuntu, 3rd party package sources are disabled by default. Make sure the package source in /etc/apt/sources.list.d/iipimage.sources is re-enabled after a distribution upgrade and change the Suites parameter to the codename of the new distribution. You will then be able to upgrade your version of iipsrv to that built for this new distribution.

Package Development

The Debian build configuration source files can be found in the Debian Salsa git repository. If you wish to build your own customized packages based on these sources, you will first need to install the necessary Debian package build tools, then run the following set of commands:

# Create working directory
mkdir iipimage
cd iipimage

# Get latest debian package build directory
curl "https://salsa.debian.org/ruven/iipimage/-/archive/master/iipimage-master.tar.bz2?ref_type=heads&path=debian" | tar jxf - --strip-components=1

# Download the upstream iipsrv sources
uscan -d

# Update debian/changelog to desired Debian or Ubuntu version codename and make any other customizations

# Build .dsc package descriptor
dpkg-source --build .

# Unpack source files and apply Debian patches
cd ..
dpkg-source -x iipimage_1.3-1.dsc

# Enter this newly created directory
cd iipimage-1.3

# Build .deb packages
dpkg-buildpackage -us -uc

If you find any packaging issues or wish to propose any improvements, don’t hesitate to open an issue the main IIPImage Github repository or propose a merge request to the Debian IIPImage git repository.