PicApport-Server Guide
Here you’ll find all information about server configuration and parameters.
A detailed description of the server installation under different operating systems and the directory structure of the picapport server can bet found in the PicApport Installation Guide
Quick start installation of PicApport
Start of picapport.exe (Windows)
The .exe file can be copied to a directory of your hard drive. (A Java runtime environment version 8 is recommended )
Install and start of picapport.jar
The .jar file can be copied to a directory of your hard drive. (A Java runtime environment version 8 is recommended )
Example CMD-file for Oracle Jre on Windows with memory configuration
java -Xms512m -Xmx1024m -jar picapport.jar |
Example Linux Script Debian Headless
- -DTRACE=INFO is optional (Values: ERROR, INFO, WARNING, DEBUG)
- -Duser.home is optional an may be used to set the database directory.
java -Xms512m -Xmx1024m -DTRACE=INFO -Duser.home=/opt/picapport -cp picapport.jar de.contecon.picapport.PicApport -configfile=/opt/picapport/.picapport/picapport.properties -pgui.enabled=false |
Since Version 5.0 this also works:
java -Xms512m -Xmx1024m -Duser.home=/opt/picapport -jar picapport-headless.jar |
Server configuration
The configuration is done via an optional Java .properties file. The file is located as follows:
- if program parameter -configfile is set, then this file will be loaded. (The file must exist.)
- in the directory user.home/.picapport/picapport.properties
- then in the directory user.dir//picapport.properties (current directory)
- then PicApport will be started without .properties file with the defaults described below.
- see https://en.wikipedia.org/wiki/.properties for more information about the java .properties file format. (escaping of backslash etc…)
All properties set in picapport.properties may be overwritten from the command line.
Java-System properties
picapport.directory | .picapport | 3.2 | YES | Name of picapport directory |
user.home | java system dependent | 1.0 | YES | Path to user home directory. Dependent on operating system. |
picapport.home | not set | 3.2.2 | YES | Overwrites user.home but only if there does not already exist |
General rules for the Java .properties file format
- The encoding of a .properties file is ISO-8859-1
- Entries are generally expected to be a single line of the form, one of the following:
- propertyName=propertyValue
- propertyName=propertyValue
- propertyName = propertyValue
- White space at the beginning of the line is also ignored.
- Important: The backslash character must be escaped as a double backslash. For example: path=c:\\myphotos\\2017
- Lines that start with the comment characters ! or # are ignored. Blank lines are also ignored.
- The property value is generally terminated by the end of the line. White space following the property value is not ignored, and is treated as part of the property value.
- The characters newline, carriage return, and tab can be inserted with characters \n, \r and \t respectively.
- UNICODE characters can be entered as they are in a Java program, using the \u prefix. For example, \u002c.
This is needed e.g. for special Latin charters. You’ll find a Unicode table here: https://www.compart.com/en/unicode
Parameter in picapport.properties
Name | Default value | Verison | Imple | Description |
---|---|---|---|---|
General server parameter | ||||
server.port | 80 Since version 6.2 port 8080 is used as | 1.0 | YES | IP-Port for server access: |
server.contextpath | not set (empty) | 7.0 | YES | Optional parameter to set the context path for the URL’s of a PicApport server. Typically, PicApport’s URL schema is as follows:
If the server.contextpath is set this changes as follows: server.contextpath=/myphotos
The server.contextpath must start with a slash and must not end with a slash. If yo use this feature, make sure that you use the PicApport – Designs provided for Version 7 or later. |
server.bind.n | not set | 1.0 | YES | IP-Stack used to contact the |
server.theme | not set (a) | 1.0 | YES | Default JQuery Theme |
server.photobuffer | not set (3) | 1.0 | YES | Number of photos loaded into |
server.autoupdate.photobuffer | not set (100) | 5.2 | YES | If „Newest with auto update“ has been selected for sorting |
server.external.address.for.shared.links | not set (default: current server address | 6.2 | YES | Is the PicApport server reachable with different IP-Adresses (e.g. local WLAN and external DynDNS-address), This paramter can also be set with the web-interface of the User-Management. User-group „Shared photos“ just click on the button Example: server.external.address.for.shared.links=http://onlinedemo.picapport.de:80 |
server.max. concurrent.imageio | not set (3) | 1.3 | YES | Number of concurrent Image IO’s in the server (Number of uncompressed images in server memory) |
server.max.concurrent.shares.per.session | not set (3) | 6.2 | YES | Number of shared links (shares) that can be displayed |
server.cookie. timeout.seconds | not set (default = 60*60*24*100 = 100 days) | 5.0 | YES | Validity of credentials stored in cookies (User has saved logon in browser) A Value of 0 (zero) deactivates the option to save the logon in the browser |
server.session.timeout.seconds | not set (default = 30 * 60 seconds = 30 minutes) | 7.2 | YES | Time until a session on the server will be terminated if no activity detected. |
server.admin.remote.command.n | not set | 7.6 | YES | Allows you to configure the console commands available on the web interface.
Example: (Only the crawler can be started or the server can be restarted)
|
server.admin.restart.prefix.n | not set | 7.6 | YES | Optional extension for the restartpicapportserver console command. If PicApport is started e.g. under Windows without a server GUI via a CMD-console, With the following configuration a console will be opened again for the new process:
|
gui.enabled | not set (true) in | 1.0 | YES | Boolean parameter to activate |
gui.hideintray | not set (true) | 1.0 | YES | Boolean parameter to hide the |
thumbs.height | not set (160) | 1.0 | YES | Integer. Height of thumbnails. |
thumbs.mode | not set (0) | 5.1 | YES | 0= Always from jpg-thumb if availabe(default) |
thumbs.num.thumbs.before.pause | not set (250) | 1.0 | YES | Integer. Number of thumbnails |
db.max.photos.per.query | not set (2000) | 1.0 | YES | Integer. Max number of photos |
robot.* Configuration of photo crawler (Photo-directories) | ||||
robot.root. | root.0=$sd | 1.0 | YES | Full qualified path to a
|
robot.root.n.id | n | 1.0 | YES | Optional ID for this entry |
robot.root.n.alias | not set | 9.1 | YES | Optional parameter. If set, the alias will be displayed instead Example: Configuration parameter robot.root.0.id=fotos Operator example without alias: dir:“C:\Users\public\picapport\photos\2021\vacation“ |
robot.root.n. isuploadroot | not set | 5.0 | YES | Marks the directory as the Upload-Directory. Only one directory can be the Upload-Directory. If no Upload-Directory is set the first root-directory will be he Upload-Directory by default. Example: robot.root.1.isuploadroot=true |
robot.filter. | not set | 1.3 | YES | Regular expression to filter |
robot.filter. | not set | open | NO | Regular expression to filter |
robot.rescan. | not set
| 1.0 | YES | Time until next rescan in minutes |
robot.use.filesystem.monitor | not set (true) | 9.0 | YES | If not set or true then PicApport monitors the configured This includes creating, changing or deleting of files in the file system. |
robot.filter. | not set | open | NO | Regular expression to filter |
robot.filter. | not set | open | NO | Regular expression to filter |
robot.filter. | not set | open | NO | Regular expression to filter |
robot.filter. | not set | open | NO | Regular expression to filter |
robot.always.create.id | not set (false) | 7.0 | YES | To manage MyTags and Likes, a unique PicApport ID is generated in the metadata of the .jpg file the first time a MyTag is set. |
robot.days.keep.deleted.photos | not set (30) | 7.6 | YES | Values 0-9999999 Defines how many days photos will be preserved after deletion. If a value of 0 is set, the files will be deleted immediately. |
mail.* Mail-Client configuration | ||||
mail.rescan. | not set (9) | 2.0 | YES | Time until next fetchmail in |
mail.check. fingerprint | not set (true) | 2.0 | YES | If true then PicApport checks if the photo is already in the database. If it is already in the database it will not be copied. |
foto.* Parameter to control JPG generation | ||||
foto.jpg. | not set (0.75) | 5.0 | YES | Quality of JPG compression. Values 0.0 – 1.0. |
foto.jpg. scalemethod | not set (AUTOMATIC) | 5.0 | YES | Quality setting for scaling Possible values: AUTOMATIC,SPEED, |
foto.jpg. usecache | not set (0) | 5.0 | YES | Cache option for photos. Values:
|
foto.jpg. cache.height | not set (1080) | 5.0 | YES | Height of photos saved in the cache in pixels. |
foto.jpg. | not set (1920) | 5.0 | YES | Width of photos saved in the cache in pixels. |
foto.jpg.cache. freeSpacePercentage | not set (20) | 5.0 | YES | Minimum free disk-space where cache path is located. |
foto.jpg. cache.path | not set (<PicApport -Home> /cache) | 5.0 | YES | Path to photo-cache. Example: C:\MyPhotoCache |
foto.thumb. quality | not set (0.75) | 5.0 | YES | Quality of JPG compression of thumbnails. Values 0.0 – 1.0. |
user.* Parameter to control user management | ||||
user.encryption. iterations | not set (1701) | 5.0 | YES | Number of hash iterations for the stored passwords |
user.password. min | not set (1) | 5.0 | YES | Minimum password length |
user.password. max | not set (75) | 5.0 | YES | Maximum password length |
user.log. access | not set (false) | 5.0 | YES | If true all Logon-Activities will be logged |
plugin.* Parameter to control plugins | ||||
plugin.shadow.path | not set | 6.2 | YES | Path to ths shadow-files (*.$.jpg Files) Optional parameter. If not set shadow files will be located in the same directory as the original files.
We strongly recommend to place the shadow files in a directory that is not configured for PicApport photos (robot.root. *). Doing so the shadow files are fully separated from the photos and can be easily deleted at any time and then rebuilt. |
client.* Web-Client configuration | ||||
client.timeout. short.millis | not set (3000) | 3.0 | YES | Used by the landing page #home for status queries so it will not take 15 seconds if the server cannot be connected display the offline state. |
client.timeout. long.millis | not set (15000) | 3.0 | YES | Timeout for general Server-requests |
client.default. viewtime.millis | not set (7000) | 3.0 | YES | Default value display time in |
client.css. thumb.height | not set (110) | 3.0 | YES | CSS-Height for thumbnails (110 works best on most cell phone) |
client.folder. sort | not set | 4.0.1 | YES | Optional parameter. Example: |
client.viewer.maxzoom | not set (1000) | 6.2 | YES | Optional parameter. |
client.viewer.snapview | not set (true) | 6.2 | YES | Optional parameter. (true or false) Controls visibility of snapview (small window on top left) while zooming. |
client.loadoriginal.with.gesture | not set (true) | 6.2 | YES | Optional parameter. (true or false) If false, then original photo cannot be loaded with „pinch zoom“ gestures or mouse-wheel. |
client.quick.btn.max.auto | not set (10) | 7.0 | YES | Optional parameter. Controls the maximum number of quick buttons that will be generated automatically for the last entered tags Value range 1-50 |
client.video.types.json | not set | 7.0 | YES | Optional parameter. Specifies which video formats can be played directly in the slideshow. If the parameter is not set, the following defaults will be used: [{‚ext‘:‘.mp4′,’mime‘:’video/mp4′},{‚ext‘:‘.ogv‘,’mime‘:’video/ogg‘},{‚ext‘:‘.webm‘,’mime‘:’video/webm‘}] The parameter has to be defined in JSON notation. |
client.is.PWA | not set(true) | 7.3 | YES | The offline capability (WebApp) of PicApport prior to version 7.3 is based exclusively on AppCache technology. Important: With the release of version 9.1 from feb 12 2021 the default was changed to true and the status Experimental was removed (before the default was false) |
client.thumb.title | not set(hidden) | 9.0 | YES | Controls the display of a title on the thumbnails. The following values are possible:
|
client.sort.random.smart.grpsize | not set (3) | 9.1 | YES | Optional parameter. Number of photos for grouping in Random-Smart-Sorting. |
upload.* Upload Configuration | ||||
upload.tag.prefix | not set default = PicApport/ | 5.0 | YES | Some photo-programs use a tree-structure to display tags. |
upload.tag | not set default = $upload | 5.0 | YES | Every uploaded photo will be tagged with this tag (after the prefix) To view all uploaded photos just enter $upload in the search-field |
upload.tag.useridprefix | not set default =@ | 5.0 | YES | Every uploaded photo will be tagged with this prefix+userID (after the prefix) Example: UserID=Paul -> Tag=@Paul (PicApport/@Paul with prefix) |
upload.max.filesize.mb | not set (10) | 5.0 | YES | Maximum size for an upload in MB (1000×1000). |
upload.max.requestsize | not set (-1) no limit | 5.0 | YES | Maximum request size (Server) for upload Values: (-1) – Integer.MAX_VALUE |
upload.max.memorysize | not set (102.400) | 5.0 | YES | Maximum memory (server) for upload Values: 1024 – Integer.MAX_VALUE |
upload.max.parallel.uploads | not set (3) | 5.0 | YES | Number of concurrent transfers (client) |
upload.path | not set (Before version 9.1 the default was uploads/$UID$/$YYYY$/$MM$-$TITLE$ without @) | 5.0 | YES | Path to upload directory. This path will be generated automatically under the root-directory marked for uploads.
Important: No Path-Seperators (Slash or Backslash) at the beginning or end of this property. |
upload.user.tag | not set | 7.0 | YES | The value of this parameter is automatically set as a the user-tag for photos which come via the upload function. Once you have finished editing the metadata, you can delete the tag. |
server.ssl.* SSL configuration | ||||
server.ssl | not set (false) | 2.0 | YES | If true SSL protocoll will be activated (Keys will be generated) |
server.ssl.keystore | not set | 2.0 | YES | Filename keystore (Default = .picapport/picapport.ks) |
server.ssl.password | not set | 2.0 | YES | Password Keystore |
server.ssl.keypassword | not set | 2.0 | YES | Password certificate |
server.ssl.truststore | not set | 2.0 | YES | Filename truststore (Default = .picapport/picapport.ks) |
server.ssl.trustpassword | not set | 2.0 | YES | Passsword truststore |
server.ssl.pem.privatekeyfile | not set | 9.2 | NO | The following URL explains how to generate certificates under Ubuntu: https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04 Example: |
server.ssl.pem.certificatefile | not set | 9.2 | NO | The following URL explains how to generate certificates under Ubuntu: https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04 Example: |
geo.* map module configuration | ||||
geo.max.markers | not set (20000) | 6.0 | YES | Maximum number of markers on the map. If the number is exceeded, the user receives an indication. Higher values are no problem if enough memory is available on the client. |
geo.cluster.size | not set (120) | 6.0 | YES | Cluster size see: http://sintef-9012.github.io/PruneCluster/examples/random.10000-size.html |
geo.marker.margin | not set (20) | 6.0 | YES | Marker margin see: http://sintef-9012.github.io/PruneCluster/examples/random.10000-size.html |
geo.max.zoom | not set (18) | 6.0 | YES | Maximum zoom level for maps |
geo.distance.km.default | not set (50) | 6.0 | YES | Default distance (in kilometers) for near: Operator |
geo.map.default | not set (0) | 6.3.05 | YES | Default map
|
geo.map.key.thunderforest | not set | 6.3.05 | YES | Since February 2017 an apikey is required for Thunderforest-Maps. You can get the key here: https://www.thunderforest.com/docs/apikeys/ Example: geo.map.key.thunderforest=abcd1234abcd1234abcd1234abcd1234 |
pan360.* Panorama viewer configuration | ||||
pan360.rotation.speed | not set (-4) | 7.3 | YES | The value specifies the automatic rotation speed in degrees per second. Positive is counter-clockwise, and negative is clockwise. Range -180 to +180 |
pan360.slideshow.viewtime.seconds | not set (90) | 7.3 | YES | Display time in seconds of the rotating panoramas in the slideshow. (play-mode)
|
pan360.tags | not set (360) | 7.3 | YES | Tags that PicApport generates automatically to search for 360 ° panoramas. By default, PicApport uses the tag pan360. If this parameter is changed or set then the database should be rebuilt afterwards. |
fuzzysearch.* Thesaurus configuration (synonym dictionary) and phonetic search | ||||
fuzzysearch.mode | not set (THESAURUS_ONLY) | 7.5 | YES | Specifies the default search mode for the full text search. This controls how the full text search behaves when entering the tilde (~) characters (fuzzy search): |
Independent of search mode:
| ||||||
fuzzysearch.phonetic.encoder | not set (Default is language-dependent) de: ColognePhonetic en: DoubleMetaphone es: none fr: none | 7.5 | YES | The following algorithms are supported: (Important: be sure to use upper and lower case)
| ||
Program parameter (arguments) for piccapport.exe / picapport.jar
The configuration of PicApport with a configuration file is optional. All parameters may be set as program arguments to PicApport.exe or picapport.jar.
All properties set in picapport.properties will be overwritten from the command line.
-configfile | 1 | not set | Absolute filename (with path) for picapport.properties |
-p[Name] | 1 | not set | With -p any parameter of picapport.properties can be overwritten. java -jar picapport.jar -configfile=c:\myconig.properties -pserver.port=8080 -probot.root.0=C:\myphotos |
Logging Configuration
The logging configuration is passed to the VM as a Java system property at startup (-DnameProperty=value)
-DTRACE=loglevel | The following values for loglevel are possible:
|
-DccNumLogFiles=n | Maximum number of logfiles (n>2) |
-DccLogFileSize | Maximum logfile size in bytes default = 1000000 (1MB) Minimum=10000 |
-DccLogDirectory | default = .picapport/logfiles (is created automatically) |
-DccLogFileBaseName | Overwrites the default file names Default=picapport (picapport.nnn) |
-DccLogRefresh | Time interval for checking if logfile is full in milliseconds default = 600000 = 10minutes = 600.000millis; minimum = 60.000 millis = 1 minute |