Skip to content
AskTable

Documentation feedback

Current pageAdvanced configuration/en/deploy/advanced

0 / 5,000

Your feedback will be sent to the maintenance team.

Go to console
Go to console

Deployment and operations

Advanced configuration

Configure an access subpath, a custom brand name, and a logo.

Private deployment uses the root path and AskTable branding by default. To serve it under a subpath (such as https://example.com/asktable) or use your company's name and logo, change the main service container's environment variables and mounts. These settings are for private deployments with a commercial license. See Commercial licensing for licensing details.

Prerequisites

ItemRequirement
LicenseAn activated enterprise license; see Commercial licensing
Basic deploymentRunning and accessible for login after following Private deployment (Docker)
Subpath deploymentThe outermost gateway can rewrite paths, or use the Caddy reverse proxy below
White-label assetsPrepare PNG logo and favicon files in readable paths on the host
Applying changesEnvironment variables and mounts are read when the container starts; run docker compose up -d after editing to recreate the container

Steps

Step 1: Add BASE_PATH to the main service

Add a line under the asktable service's environment, using the desired path prefix:

services:
  asktable:
    environment:
      BASE_PATH: /asktable

Step 2: Add a reverse proxy

The reverse proxy strips the path prefix before forwarding requests to the container. For Caddy, add this service to Compose:

services:
  caddy:
    image: caddy:2-alpine
    container_name: caddy
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
    depends_on:
      - asktable

Create Caddyfile in the same directory:

Caddyfile
:80 {
    redir /asktable /asktable/ permanent

    handle /asktable/* {
        uri strip_prefix /asktable
        reverse_proxy asktable:80
    }
}

After the changes, access the app at http://server-address:8080/asktable/. In production, the outermost gateway typically listens on 80/443, while this Caddy layer stays internal.

The path prefix must match in both places: BASE_PATH and strip_prefix in the Caddyfile. A mismatch causes a blank page or 404 responses for static assets.

Step 3: Change the brand name

Set brand information under the asktable service's environment:

services:
  asktable:
    environment:
      APP_NAME: MyBrand          # Brand name in the interface
      APP_TITLE: My application   # Browser tab title
      APP_DESCRIPTION: Application description   # Page meta description

Step 4: Replace the logo and favicon

The container reads these files by fixed filenames at runtime. Override them with volume mounts:

services:
  asktable:
    volumes:
      - ./asktable_data:/asktable
      - ./mylogo.png:/usr/share/nginx/html/logo.png:ro
      - ./myfavicon.png:/usr/share/nginx/html/favicon.png:ro

logo.png appears in the sidebar, login page, QR code center, and shared page header; favicon.png is used for the browser tab icon and apple-touch-icon.

Step 5: Recreate the container

docker compose up -d

Brand information and the access prefix are written into the frontend configuration when the container starts. Restarting only a process inside the container does not regenerate them.

Key constraints

ItemValue or defaultWhere to change it
BASE_PATHEmpty by default, meaning the root pathasktable.environment; recreate the container after editing
Prefix consistencyBASE_PATH and the reverse proxy's strip_prefix must matchChange both together
APP_NAMEDefault: AskTableasktable.environment
APP_NAME side effectsWhen it is anything other than AskTable, the AskTable documentation and “Contact us” entries in the interface are also hiddenNo extra configuration required; this is expected behavior
APP_TITLEUses the product title by defaultasktable.environment; an empty value leaves it unchanged
APP_DESCRIPTIONUses the product description by defaultSame as above
logo.pngIn-app logoMount at /usr/share/nginx/html/logo.png
favicon.pngBrowser tab iconMount at /usr/share/nginx/html/favicon.png
Frontend error reportingNot initialized when WEB_SENTRY_DSN is emptyasktable.environment, together with WEB_SENTRY_ENVIRONMENT
Applying changesEnvironment variables and mounts are read when the container startsRecreate the container with docker compose up -d

Troubleshooting

SymptomHow to identify itAction
Blank page under the subpathStatic asset 404 errors appear in the browser console, and request paths lack the subpath prefixCheck that BASE_PATH and strip_prefix match, then recreate the container
Subpath returns 404Accessing /asktable/ returns 404, while the container is runningThe Caddyfile's reverse_proxy target must be asktable:80; check the service name and port
Brand name is still AskTableThe page shows the old nameAPP_NAME has not taken effect, usually because the container was not recreated; run docker compose up -d and check again
Broken image where the logo should belogo.png returns 403 or 404 in the browserDocker creates a directory with the same name if the mounted host file does not exist; make sure ./mylogo.png is a file, not a directory
Logo changed but the interface still shows the old oneThe old image still appears in an incognito windowThe container mount path must be exactly /usr/share/nginx/html/logo.png; also clear the browser cache
Documentation entry disappearedAPP_NAME was changed to something other than AskTableExpected behavior: AskTable's own branded entries are hidden when white labeling is enabled
Environment changes have no effectThe container creation time in docker compose ps predates the changeYou used restart instead of recreating it; run docker compose up -d

Next steps