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 -Xmx2048m -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 -Xmx2048m -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 -Xmx2048m -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
Name | Default | Verison | Imple | Beschreibung |
---|---|---|---|---|
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. A colon must be escaped with backslash colon 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.n.path | root.0=$sd | 1.0 | YES | Full qualified path to a root.directory.
| ||||||||
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: (For better readability, colon and backslash are not coded with \: and \\ as required). Configuration parameter robot.root.0.id=fotos | ||||||||
robot.root.n.webdavmount | not set | 10.4 | YES | Optional parameter: Path-ID of the WebDAV URL for this directory. A valid Path-ID consists of letters and digits only. If set, then this directory (and all subdirectories) is available for WebDAV access. Example: (For better readability colon and backslash are not coded with \: and \\ as required) Configuration parameter robot.root.0.id=photos Name of the implicitly created PicApport user group: WebDAV.myphotos (Only members of this group have access to the WebDAV directory). The WebDAV directory can now be accessed via the following URL:
If only certain subdirectories of the configured root directories should be shared instead of an entire root directory, For more info on WebDAV configuration in PicApport, see Configuration and use of the WebDAV server integrated in PicApport. | ||||||||
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.path.n | not set | 1.3 | YES | Regular expression to filter | ||||||||
robot.filter.name.n | not set | open | NO | Regular expression to filter | ||||||||
robot.rescan.minutes | 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.keywords.n | not set | open | NO | Regular expression to filter | ||||||||
robot.filter.person.n | not set | open | NO | Regular expression to filter | ||||||||
robot.filter.title.n | not set | open | NO | Regular expression to filter | ||||||||
robot.filter.rating | 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. | ||||||||
robot.check.root.before.db.remove | not set (false) | 9.2 | YES | This parameter is useful, when PicApport Server is accessing photos stored on network drive or removable media. If these are not connected during a crawler-run, PicApport will remove all photos on this drive from the database. If this parameter is set to true, it will be checked if the matching root directory exists. If it does not exist, PicApport assumes a disconnected network drive and the photos remain in the database. (The slideshow will show a placeholder image) If the network drive is then reconnected, not all photos have to be loaded into the database again. | ||||||||
webdav.* WebDAV configuration (Extended WebDAV configuration) | ||||||||||||
webdav.n.webdavmount | not set | 10.4 | YES | Extended WebDAV configuration. Both parameters must always be set. (n=0-n) Allows to create specific shares below root directories. Apart from that, these two parameters work like robot.root.n.path and robot.root.n.webdavmount. Example: (For better readability, colon and backslash are not coded with \: and \\ as required). Name of the implicitly created PicApport user group: WebDAV.mobile (Only members of this group have access to the WebDAV directory). The WebDAV directory can now be accessed via the following URL:
For more info on WebDAV configuration in PicApport, see Configuration and use of the WebDAV server integrated in PicApport. | ||||||||
mail.* Mail-Client configuration | ||||||||||||
mail.rescan.minutes | 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.cache.width | 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 | ||||||||
user.log.webdav | not set (false) | 10.4 | YES | If true all WebDAV-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. *). | ||||||||
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.hideemptyfolders | not set (false) | 10.4 | YES | Optional parameter. (true or false) If true then empty folders are no longer displayed in the directory browser. | ||||||||
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. The parameter has to be defined in JSON notation. Please note, that the : in the .properties file must be encoded with backslash (\:). [{'ext':'.mp4','mime':'video/mp4'},{'ext':'.ogv','mime':'video/ogg'},{'ext':'.webm','mime':'video/webm'}] | ||||||||
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. | ||||||||
client.theme.color | not set | 10.1 | YES | Optional parameter. Default color (RGB) of the web interface if not explicitly set for the user. Format: #rrggbb Independent of the global color scheme setting, the administrator can easily set the color scheme for each user individually via the user management of the PicApport web interface. | ||||||||
client.theme.darktheme | not set (false) | 10.1 | YES | Optionaler Parameter. (true oder false) Theme mode (light or dark) of the web interface if not explicitly set for user. Can also be set individually for each user via the web interface. See above client.theme.color | ||||||||
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 (100) Before version 9.2 the default was 10MB | 5.0 | YES | Maximum size for an upload in MB (1000x1000). | ||||||||
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. (see: robot.root.n.isuploadroot). The following placeholders my be used (always capital letters):
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. | ||||||||
upload.allow.video | not set | 9.2 | YES | Used to disable video uploads with PicApportVideoThumbnailPlugin installed. | ||||||||
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 | 10.0 | NO | As an alternative to a certificate in a keystore, you can also set the two parameters server.ssl.pem.privatekeyfile and server.ssl.pem.certificatefile. 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 | 10.0 | NO | As an alternative to a certificate in a keystore, you can also set the two parameters server.ssl.pem.privatekeyfile and server.ssl.pem.certificatefile. 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.
Name | Number of | Default | Description |
---|---|---|---|
-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)
Parameter | Description |
---|---|
-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 |