====== Cantaloupe standalone server (Ubuntu 18.04, Cantaloupe 4.0.3) over KVM ======
* Ubuntu server 18.04 LTS (from ISO)
* 20GB virtualdisk mounted as / (root)
* 1TB virtualdisk mounted as /srv
* 2.5TB iScsi mounted as /mnt/data
* Set IPv4 (2 interfaces) and IPv6
* Java 8
apt install openjdk-8-jdk
* download
wget https://github.com/medusa-project/cantaloupe/releases/download/v4.0.3/cantaloupe-4.0.3.zip
unzip cantaloupe-4.0.3.zip
sudo mv cantaloupe-4.0.3 /opt/
sudo useradd -d /srv/home -s /bin/false cantaloupe
sudo mkdir /srv/cache /srv/log /srv/home /srv/tmp
sudo chown -R cantaloupe:cantaloupe /opt/cantaloupe-4.0.3 /srv/cache /srv/log /srv/home /srv/tmp
* Kakadu Native libraries (Optional)
Check Java Library Path with:
java -XshowSettings:properties
sudo cp /opt/cantaloupe-4.0.3/deps/Linux-x86-64/lib/libkdu_* /usr/lib/
* settings
cd /opt/cantaloupe-4.0.3
sudo cp cantaloupe.properties.sample cantaloupe.properties
sudo nano -w cantaloupe.properties
* Start as service
nano -w /etc/systemd/system/cantaloupe.service
[Unit]
Description=Cantaloupe Image Server
[Service]
Type=simple
User=cantaloupe
ExecStart=/usr/bin/java -Dcantaloupe.config=/opt/cantaloupe-4.0.3/cantaloupe.properties -Xmx12g -jar /opt/cantaloupe-4.0.3/cantaloupe-4.0.3.war
ExecStop=/usr/bin/killall -9 cantaloupe-4.0.3.war
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable cantaloupe.service
service cantaloupe start
* enable delegates script
sudo nano -w cantaloupe.properties
delegate_script.enabled = true
source.delegate = true
FilesystemSource.BasicLookupStrategy.path_prefix = /mnt/
sudo nano -w delegates.rb
def source(options = {})
identifier = context['identifier']
if identifier.include? "http"
'HttpSource'
else
'FilesystemSource'
end
end
The identifier for local file in /mnt/data (i.e. test.png) must be data%2Ftest.png
* share data with front-end
Local:
sudo chown -R IIIF_user:IIIF_user /mnt/data
On front-end:
apt install sshfs
mkdir /mnt/datac
chown -R FE_user:FE_user /mnt/datac
sudo -u FE_user sshfs -o idmap=user -o IdentityFile=/somepath/id_rsa IIIF_user@IIIF_IP:/mnt/data /mnt/datac
or
nano -w /etc/fstab
sshfs#IIIF_user@IIIF_IP:/mnt/data /mnt/datac fuse defaults,_netdev,user,idmap=user,IdentityFile=/somepath/id_rsa,allow_other,default_permissions,uid=FE_user_UID,gid=FE_user_GID 0 0