Server Configuration File

Server Configuration File

Table of Contents



Introduction

PowerFolder.config is the central configuration file of a PowerFolder server. It is a plain-text Java properties file — one key=value setting per line — that holds every server setting: network ports, mail/SMTP, security and permissions, default folder behaviour, LDAP/authentication, licensing, logging and more.

Server PowerFolder.config location:

Priority

Location

Priority

Location

1 — Server (primary)

<server working dir>\.PowerFolder\PowerFolder.config
the installation directory / folder the service is launched from.

2 — Fallback (Windows)

%APPDATA%\PowerFolder\PowerFolder.config

2 — Fallback (Linux/macOS)

~/.PowerFolder/PowerFolder.config

Almost every entry corresponds to a key in the server code (ConfigurationEntry / ConfigurationServerEntry) and most can also be changed from the web interface under Admin → Preferences. Editing the file directly is useful for headless setups, scripted deployments, and settings that are not exposed in the UI.

LDAP / Authentication (30)

Config Key

Default

Possible Values / Example

Restart

Description

Config Key

Default

Possible Values / Example

Restart

Description

groups.nested.enabled

false

true / falsee.g. false

No

Enables or disables support for nested groups, allowing groups to contain other groups as members.

kerberos.sso.enabled

false

true / falsee.g. false

No

Enables or disables single sign-on authentication via Kerberos.

kerberos.sso.kdc

a hostnamee.g. kdc.example.com

No

Specifies the hostname or address of the Kerberos Key Distribution Center used for single sign-on authentication.

kerberos.sso.realm

WORKGROUP

a Kerberos realm namee.g. EXAMPLE.COM

No

Specifies the Kerberos realm, also known as the domain, used for single sign-on authentication.

kerberos.sso.service_name

domain/hostname

a service principal name in the form service/hostnamee.g. HTTP/server.example.com

No

Specifies the Kerberos service principal name as registered at the domain controller, used for single sign-on authentication.

ldap.dbusers.allow

false

true / falsee.g. false

No

[Deprecated] Controls whether users are authenticated against the internal database when they cannot be found in LDAP.

ldap.enabled

false

true / falsee.g. false

No

[Deprecated] Enables or disables LDAP authentication entirely.

mfa.enabled

true

true / falsee.g. true

No

Enables or disables multi-factor authentication for user logins.

radius.auth

PEAP

PEAP / PAP / CHAP / MSCHAPV2e.g. PEAP

No

Specifies the RADIUS authentication method or protocol type used when authenticating against the RADIUS server.

radius.retries

1

any positive integer (retry count)e.g. 1

No

Sets the number of times authentication requests are retried against the RADIUS server before failing.

radius.server

a hostnamee.g. radius.example.com

Yes

Specifies the hostname or address of the RADIUS server used for authentication.

radius.sharedsecret

any string

Yes

Sets the shared secret used to establish trust between the server and the RADIUS server.

radius.timeout.seconds

30

any positive integer (seconds)e.g. 30

No

Sets the timeout, in seconds, for requests sent to the RADIUS server before they are considered failed.

security.disable.ldap.after.saml

false

true / falsee.g. false

No

Controls whether LDAP authentication is disabled for a user once they have authenticated via SAML.

shibboleth.accounts.match_email

true

true / falsee.g. true

Yes

Controls whether Shibboleth-authenticated accounts are matched to existing accounts based on their e-mail address.

shibboleth.attribute.custom1

"affiliation

a Shibboleth attribute namee.g. affiliation

No

Specifies the name of the first custom Shibboleth attribute to read from the authentication assertion.

shibboleth.attribute.custom2

a Shibboleth attribute namee.g. department

No

Specifies the name of the second custom Shibboleth attribute to read from the authentication assertion.

shibboleth.attribute.custom3

a Shibboleth attribute namee.g. organization

No

Specifies the name of the third custom Shibboleth attribute to read from the authentication assertion.

shibboleth.attribute.expiration

a Shibboleth attribute namee.g. accountExpiry

No

Specifies the name of the Shibboleth attribute that carries the account expiration information from the authentication assertion.

shibboleth.attribute.givenname

givenName

a Shibboleth attribute namee.g. givenName

No

Defines the name of the Shibboleth attribute that carries the user's given (first) name. This is used to map the value supplied by the identity provider onto the user's given name during Shibboleth authentication.

shibboleth.attribute.mail

"mail

a Shibboleth attribute namee.g. mail

No

Defines the name of the Shibboleth attribute that carries the user's e-mail address. This value is used to map the address supplied by the identity provider onto the user's account during Shibboleth authentication.

shibboleth.attribute.organization

"o

a Shibboleth attribute namee.g. o

No

Specifies the name of the Shibboleth attribute that carries the user's organization, since this attribute is not standardized across identity providers. It is used to map the organization supplied by the identity provider onto the user's account.

shibboleth.attribute.persistentid

"pairwise-id

a Shibboleth attribute namee.g. pairwise-id

No

Defines the name of the Shibboleth attribute that carries the persistent, non-reassigned identifier for the user. This identifier is used to reliably recognize a returning user across authentication sessions.

shibboleth.attribute.sessionid

Shib-Session-ID

a Shibboleth attribute namee.g. Shib-Session-ID

No

Defines the name of the Shibboleth attribute that carries the current Shibboleth session identifier. This enables flexible mapping of the session attribute name provided by the identity provider.

shibboleth.attribute.surname

"surname

a Shibboleth attribute namee.g. surname

No

Defines the name of the Shibboleth attribute that carries the user's surname (last name). This is used to map the value supplied by the identity provider onto the user's surname during Shibboleth authentication.

shibboleth.attribute.username

"eppn

a Shibboleth attribute namee.g. eppn

No

Defines the name of the Shibboleth attribute that carries the user's login name. This is typically the eduPerson Principal Name and is used to identify the user's account during Shibboleth authentication.

shibboleth.create.organizations

true

true / falsee.g. true

Yes

Controls whether organizations are created automatically based on the organization attribute received during Shibboleth authentication. Set this to false to turn off automatic organization creation.

shibboleth.enabled

false

true / falsee.g. false

No

Enables or disables Shibboleth single sign-on authentication. This setting corresponds to the Shibboleth checkbox shown on the preferences page.

shibboleth.headers.reencode

true

true / falsee.g. true

No

Controls whether incoming Shibboleth header values are re-encoded to UTF-8. Enable this when the identity provider sends attribute values in a different character encoding.

shibboleth.metadata.url

a URLe.g. https://idp.example.com/metadata.xml

Yes

Specifies the URL from which the Shibboleth service provider metadata is retrieved. This metadata is required to establish trust with the identity provider.

Security & Access Control (29)

Config Key

Default

Possible Values / Example

Restart

Description

Config Key

Default

Possible Values / Example

Restart

Description

login.admin.iplist

a comma-separated list of IP addresses or IP rangese.g. 192.168.1.0/24,10.0.0.5

No

Restricts admin web login to one or more specific IP addresses or IP ranges, so that administrative access is only possible from trusted networks.

login.message

free text (may include basic HTML)e.g. Welcome to the company file server

No

Defines a custom message that is shown to users on the login page.

login.popup.message

free text (may include basic HTML)e.g. Please note the new maintenance window this weekend.

No

Defines a message that is displayed in a popup dialog to users when they log in.

login.popup.reseller.message

free text (may include basic HTML)e.g. Reseller portal updated: new pricing available.

No

Defines a message that is displayed in a popup dialog to reseller accounts when they log in.

login.script

a path to a script or a URLe.g. https://example.com/hooks/onlogin

No

Specifies a login script or login URL that is called as part of the login process, allowing custom actions or integrations to run when a user authenticates.

login.script.wait

false

true / falsee.g. false

No

Controls whether the server waits for the configured login script to finish executing before completing the login. When enabled, login is only finalized after the script returns.

security.auth.order

db / database / ldap / ad / activedirectory / radius / eduroam / nopw / nopassword (comma-separated, in order)e.g. ldap,db

Yes

Defines the order of the authenticator chain used to verify credentials. Supported authenticators are the internal database ("db" or "database"), LDAP/Active Directory ("ldap", "ad", or "activedirectory"), RADIUS ("radius" or "eduroam"), and passwordless/standard authentication ("nopw" or "nopassword").

security.default.permissions

a comma-separated list of permission namese.g. READ,WRITE

No

Specifies the list of extended security control permissions that are applied by default.

security.dos.whitelist

a comma-separated list of IP addresses or IP rangese.g. 10.0.0.0/8,192.168.0.0/16

No

Lists IP address ranges that are excluded from the denial-of-service (DoS) filter, so that trusted clients are never rate-limited or blocked by it.

security.folder.delete.permission

ADMIN

an access mode name such as OWNER / ADMIN / READ_WRITE / READe.g. ADMIN

No

Sets the minimum access level a user must hold in order to delete a folder.

security.folder.limited_user.permission

ADMIN

an access mode name such as OWNER / ADMIN / READ_WRITE / READe.g. READ

No

Sets the default folder access level that is granted to a limited user account.

security.folder.shared.permission

READ_WRITE

an access mode name such as OWNER / ADMIN / READ_WRITE / READe.g. READ_WRITE

No

Sets the default access level assigned to shared folders, allowing administrators to change the permission that shared folders receive by default.

security.hostheader.check.enabled

true

true / falsee.g. true

No

Controls whether the server validates the HTTP Host header of incoming requests, which helps protect against host header injection and related attacks.

security.password.argon2

true

true / falsee.g. true

No

Enables Argon2id for password hashing. When enabled, new passwords are hashed with Argon2id and existing SHA-256 hashes are migrated automatically on the user's next login; this is not backward compatible with older server versions.

security.permissions.org_admin_folder_access

true

true / falsee.g. true

No

Controls whether organization administrators are granted unlimited access to all folders within their organization.

security.permissions.server_admin_folder_access

true

true / falsee.g. true

No

Controls whether server administrators are granted unlimited access to all folders on the server.

security.permissions.show_folder_admin

true

true / falsee.g. true

No

Controls whether the folder administrator permission is shown in the user interface. When disabled, the FolderAdminPermission is hidden from the permission options.

security.permissions.strict

false

true / falsee.g. false

No

[Deprecated] Enables strict permission enforcement so that certain client options, such as creating folders or changing client preferences, are only available to users holding the corresponding permissions.

security.tokens.apps.valid.time.seconds

60 * 60 * 24 * 30

any positive integer (seconds)e.g. 2592000

No

Sets how long authentication tokens issued to mobile or desktop apps remain valid before they expire.

security.tokens.client.valid.time.seconds

60 * 60 * 24 * 365

any positive integer (seconds)e.g. 31536000

No

Sets how long authentication tokens issued to the desktop client remain valid before they expire.

security.tokens.valid.time.seconds

60 * 60 * 24 * 365

any positive integer (seconds)e.g. 31536000

No

[Deprecated] Sets the general validity period for authentication tokens before they expire.

security.tokens.web.valid.time.seconds

60 * 60 * 24 * 30

any positive integer (seconds)e.g. 2592000

No

Sets how long authentication tokens issued for the web interface remain valid before they expire.

security.tokens.webdav.valid.time.seconds

60 * 60 * 24 * 365 * 21

any positive integer (seconds)e.g. 662256000

No

Sets how long authentication tokens issued for WebDAV access remain valid before they expire. The default corresponds to roughly 21 years, effectively making these long-lived.

server.recaptcha.score.threshold