Using the Admin Panel for ONLYOFFICE Docs

Overview

Starting from version 9.1, the ONLYOFFICE Admin Panel provides a secure web interface for managing server configuration and monitoring. This guide explains how to set up and use the authentication system.

Initial setup

By default, the Admin Panel is disabled. Follow the http://example.com/welcome page instructions to start it.

The example.com is the name of the server with the ONLYOFFICE Docs installed.

First time installation

When you start the Admin Panel for the first time, it requires an initial setup:

  1. Open the Admin Panel web interface.

    On the http://example.com/welcome page, click Admin Panel. In the dialog that appears, click Open Admin Panel.

  2. Create the first administrator.

    The server automatically detects that no admin password is configured. A page opens with commands to create the first administrator. The first administrator can only be created from the host.

    Admin Panel - Create the first administrator Admin Panel - Create the first administrator

    Use the command that matches your installation:

    Linux:

    sudo documentserver-admin create-admin

    Docker:

    docker exec -it <container> documentserver-admin create-admin

    Replace <container> with the container ID or name. To find it, run docker ps.

    Kubernetes:

    kubectl exec -it <pod> -- documentserver-admin create-admin

    Replace <pod> with the pod name. To find it, run kubectl get pods.

    Windows:

    "%ProgramFiles%\ONLYOFFICE\DocumentServer\bin\documentserver-admin.bat" create-admin

    Follow the CLI prompts to set the administrator password.

  3. Reload and log in.

    Reload the Admin Panel page, enter the password you created, and click Login.

    Admin Panel dashboard after successful setup Admin Panel dashboard after successful setup

    The runtime.json file will be created, which will contain the modified settings in the Admin Panel. It takes precedence over other configuration files such as local.json, default.json, production.json, etc.

    The runtime.json file can be found here:

    • For Linux - /var/www/onlyoffice/Data/runtime.json
    • For Docker - /var/www/onlyoffice/Data/runtime.json (first, enter the ONLYOFFICE Docs container using the docker exec -it <containerid> bash command)
    • For Windows - %ProgramData%/ONLYOFFICE/Data/runtime.json

      By default, ProgramData is a hidden folder in Windows Server, you can enable hidden items in the File Explorer options to see it.

Security notes
  • The first administrator can only be created from the host using documentserver-admin create-admin.
  • The administrator password is stored as passwordHash in runtime.json.
  • No password is transmitted or logged — only secure hashes are stored.

Regular login

After initial setup is complete:

  1. Navigate to http://example.com/admin.
  2. Enter your admin password.
  3. Click Login.
    Regular Admin Panel login page Regular Admin Panel login page
  4. Your session is valid for 1 hour.
Session details
  • Sessions use secure HTTP-only cookies.
  • They expire automatically after 1 hour of inactivity.
  • SameSite=Strict protection is applied against CSRF attacks.

Changing your password

To change your admin password:

  1. Log in to the Admin Panel.
  2. Go to the Change Password page.
  3. Enter your current password.
  4. Enter your new password.
  5. Confirm the new password.
  6. Click Save Changes.
Admin Panel - Change Password page Admin Panel - Change Password page

Your session remains active after changing the password.

Password hash details
  • Algorithm: PBKDF2-SHA256 (600,000 iterations, OWASP 2023).
  • Cross-platform: The hash can be generated via Python or Node.js.
Generate password hash externally

OpenSSL 3.0+ (recommended - MCF format):

PASSWORD="YourPassword"; I=600000; S=$(openssl rand -base64 16 | tr -d '\n'); H=$(openssl kdf -binary -keylen 32 -kdfopt digest:SHA256 -kdfopt pass:UTF8:"$PASSWORD" -kdfopt salt:base64:"$S" -kdfopt iter:$I PBKDF2 | base64 | tr -d '\n'); echo "\$pbkdf2-sha256\$$I\$$S\$$H"

Node.js:

node -e "const crypto=require('crypto');const p=process.argv[1];const s=crypto.randomBytes(16);const sb=s.toString('base64').replace(/\+/g,'.').replace(/=/g,'');crypto.pbkdf2(p,s,600000,32,'sha256',(e,k)=>{const h=k.toString('base64').replace(/\+/g,'.').replace(/=/g,'');console.log('\$pbkdf2-sha256\$600000\$'+sb+'\$'+h)})" "YourPassword"

Check OpenSSL version:

openssl version
            # OpenSSL 3.0.0 or newer - ✓ Use openssl kdf command
            # OpenSSL 1.x - ✓ Use openssl keyutl command

Add the resulting hash to the runtime.json file:

{
            "adminPanel": {
            "passwordHash": "$pbkdf2-sha256$600000$..."
            }
            }

Password reset / recovery

If you know your current password, use the Change Password page in the Admin Panel.

If you forget your admin password, run the following command on the server:

Linux:

sudo documentserver-admin reset-admin-password

Docker:

docker exec -it <container> documentserver-admin reset-admin-password

Replace <container> with the container ID or name. To find it, run docker ps.

Kubernetes:

kubectl exec -it <pod> -- documentserver-admin reset-admin-password

Replace <pod> with the pod name. To find it, run kubectl get pods.

Windows:

"%ProgramFiles%\ONLYOFFICE\DocumentServer\bin\documentserver-admin.bat" reset-admin-password

Follow the CLI prompts to set a new administrator password.

Troubleshooting

Admin Panel is not yet configured

Problem: The Admin Panel page still shows that no administrator account exists.

Solutions:

  • Create the first administrator from the host with documentserver-admin create-admin.
  • For Docker, run the command inside the ONLYOFFICE Docs container.docker exec -it documentserver-admin create-admin Replace <container> with the container ID or name from docker ps.
  • After the CLI completes, reload the Admin Panel page and log in with the password you created.

Settings

The Settings page of the ONLYOFFICE Admin Panel provides a set of tools for monitoring the server configuration, managing certificates, custom fonts, etc. Below is a brief description of the capabilities of this section.

Admin Panel - Settings page Admin Panel - Settings page
Configuration

Using this tab, you can:

  • View server configuration. The final configuration is displayed here with all parameters redefined through all config files. Sensitive parameters (passwords, keys, secrets) are shown as REDACTED.
  • Copy the content of the config file.
  • Reset all configuration settings to their default values. This action cannot be undone.
License

Using this tab, you can upload your product license and view the license information:

  • Build: type (Enterprise Edition, Developer Edition), mode (trial, production), release date.
  • License: start date, the date until which the license is valid.
  • Connections limit for editors and live viewer.

Click the Buy Now button to purchase a license. You will be redirected to the corresponding page of the official ONLYOFFICE website.

To upload the license:

  1. Click the Browse button to select the license file.
  2. Click the Apply License button.
PDF Signing

Using this tab, you can add a PKCS#12 (.p12/.pfx) certificate for signing submitted PDF forms. Filled PDF forms will be signed when submitting them by clicking the Complete & Submit button.

To create a .p12/.pfx certificate using existing files (a private key and a .crt / .pem certificate), you can use openssl from the command line:

openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.crt

To create a certificate from scratch:

  1. Generate a private key:
    openssl genrsa -out privatekey.key 2048
  2. Create a certificate signing request (CSR):
    openssl req -new -key privatekey.key -out request.csr
  3. Generate a self-signed certificate:
    openssl x509 -req -days 365 -in request.csr -signkey privatekey.key -out certificate.crt
  4. Create the PKCS#12 file:
    openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.crt

Once you obtained your .p12/.pfx certificate, you can upload it to the 'Certificate File' field in the Admin Panel. If the certificate is password-protected, enter your password in the 'Certificate Passphrase' field. Then save the settings.

HTTPS / SSL

Using this tab, you can install a new CA-signed certificate from the letsencrypt.org service to enable the secure HTTPS protocol.

Ports 80 and 443 must be open in order to successfully generate Let's Encrypt certificates. An A record in your DNS entries must point your domain name to the IP address of the server where ONLYOFFICE Docs is installed.

  1. Specify your domain name in the Domain field.
  2. Specify your email address in the Email field.
  3. Click the Install Certificate button.
Fonts

Using this tab, you can add new custom fonts:

  1. Click the Browse button to select font files or drag and drop them here.
  2. Click the Generate button.

Manage your added custom fonts:

  • Filter all fonts by name to find the necessary one.
  • Check the 'Show custom only' option to display only custom fonts in the list.
  • Check the 'Mark all custom for deletion' option and click the Generate button to remove the selected custom fonts.
Services

Using this tab, you can enable or disable public API endpoints for specific services.

Disabling a service immediately rejects its public API requests with HTTP 403. Integrations that rely on the disabled endpoints will stop working until the service is re-enabled.

Admin Panel - Services tab Admin Panel - Services tab

The following options are available:

  • Conversion public API. Enable or disable the conversion endpoints. Disabling may break connectors that use the conversion service. Conversions initiated by the editors are not affected.
  • Document Builder public API. Enable or disable the document generation endpoints.
  • AI features. Enable or disable AI Tools in the editors and the /ai-proxy endpoint. Disabling removes AI Tools from the plugin list sent to the editors and rejects /ai-proxy requests.
Shutdown

Using this tab, you can forcefully disconnect ONLYOFFICE Docs users to avoid data loss when you need to stop ONLYOFFICE Docs for reasons such as application updates or server reboots.

  1. Click the Shutdown button to block new editor connections and close existing sessions. When stopping the server in this way, users will be correctly disconnected from the editors, and their changes will be saved.
  2. Click the Resume button to return server to normal mode and allow new editor connections.
Advanced Options

Using this tab, you can configure advanced security and document assembly options.

Disabling verification makes the server vulnerable to man-in-the-middle attacks. Use only as a temporary workaround when integrating with services that have self-signed or otherwise untrusted certificates. Re-enable once proper certificates are installed.

Admin Panel - Advanced tab Admin Panel - Advanced tab

The following options are available:

  • Verify TLS/SSL certificates (rejectUnauthorized). Validate remote certificates for outgoing HTTPS requests.
  • Verify downloaded file integrity (checksumVerification). Check downloaded content against integrity headers.
  • Assemble document in original format (assemblyFormatAsOrigin). Preserve the original document format during final assembly.

IP Filtering

The IP Filtering page lets you define which hosts this server is allowed to contact. Add a rule that names a host to allow the server to contact it. The catch-all * rule matches any host.

Require trusted WOPI hosts controls whether the catch-all * rule is enough to trust a host. When enabled (default), only a rule that explicitly names the host counts — the catch-all does not.

Rules are evaluated from top to bottom, and the first matching rule is applied. Add the rule for your WOPI storage host above the catch-all * rule.

Admin Panel - IP Filtering page Admin Panel - IP Filtering page
Network Requests

The Network Requests tab controls which callers may reach this server, and how outgoing connections are filtered.

Admin Panel - Network Requests tab Admin Panel - Network Requests tab

The following options are available:

  • Use IP filtering for requests. Apply the IP rules to incoming requests. When disabled, client addresses are not checked; outgoing WOPI destinations are still authorized by the same rules.
  • Allow Private IP Addresses. Allow outgoing requests to private ranges and loopback. This does not make a WOPI host trusted.
  • Allow Meta IP Addresses. Allow outgoing requests to 0.0.0.0 and ::. Cloud metadata and link-local addresses stay blocked for WOPI.

WOPI Settings

The WOPI Settings page allows you to configure WOPI support for document editing, including trusted WOPI hosts, compatibility settings for SharePoint integrations, document lock behavior, and encryption key management.

Use the WOPI toggle at the top of the page to enable or disable WOPI support entirely.

Admin Panel - WOPI Settings page Admin Panel - WOPI Settings page
Trusted WOPI Hosts

This section lets you decide which document storage hosts this server is allowed to contact. The list of trusted hosts is managed on the IP Filtering page, not on the WOPI Settings page.

Require trusted WOPI hosts controls whether the catch-all * rule on the IP Filtering page is enough to trust a host. When enabled (default), only a rule that explicitly names the host counts — the catch-all does not. IP Filtering rules are always used for WOPI destinations; this option does not turn that filtering off.

If no trusted WOPI hosts are configured, a warning is displayed and documents cannot be opened until you add a rule that names your storage host.

Admin Panel - Trusted WOPI Hosts page Admin Panel - Trusted WOPI Hosts page

To add a WOPI host to the allowlist:

  1. On the WOPI Settings page, open the Trusted WOPI Hosts section. In the warning message, click the IP Filtering link.
  2. On the IP Filtering page, add a rule that names your WOPI storage host. After the rule is saved, that host becomes trusted for WOPI.

When Require trusted WOPI hosts is enabled, the * catch-all rule in IP Filtering does not make a host trusted. Add a rule that explicitly names the storage host.

Compatibility

This section configures WOPI discovery and request compatibility settings for SharePoint and other WOPI-compatible storage integrations.

WOPI Zone

Specifies the discovery zone advertised by ONLYOFFICE Docs. This value must match the zone configured on the SharePoint side with the Set-SPWOPIZone PowerShell command. Available values:

  • external-https
  • external-http (default)
  • internal-https
  • internal-http

To check the currently configured zone on the SharePoint side, use the following PowerShell command:

Get-SPWOPIZone

To change the zone on the SharePoint side, use the following PowerShell command:

Set-SPWOPIZone -Zone "external-http"

Send Authorization Header

When enabled, adds the Authorization: Bearer <access_token> header to WOPI requests. This is optional by the WOPI specification, but required for some SharePoint configurations:

  • SharePoint Subscription Edition: this option must be enabled. Without the Authorization header, an Invalid access token error occurs and document editing fails.
  • SharePoint 2019: this option is optional. The connection works with the token passed in the URI, but enabling the header causes no issues.

This corresponds to the wopi.sendAuthorizationHeader configuration parameter (false by default).

Lock Settings

This section configures the document lock refresh interval for WOPI sessions.

Refresh Lock Interval

Specifies how often document locks are refreshed. Use the format <number><unit>, where the unit is s (seconds), m (minutes), or h (hours). Examples: 10m, 1h, 30s. The default value is 10m.

Key Management

This section allows you to rotate WOPI encryption keys. The Current Public Key field displays the active public key used for WOPI request authentication.

To rotate keys, select the Rotate Keys checkbox and click Save Changes. The current keys will be moved to "Old" and new keys will be generated.

Do not rotate keys more than once per 24 hours. Storage may not refresh in time, which can cause authentication failures.

Article with the tag:
Browse all tags