Skip to content

[WIP] Add persistent settings.json for Etherpad#2

Merged
saurabh-khanna merged 1 commit into
mainfrom
copilot/add-settings-json-file
Mar 1, 2026
Merged

[WIP] Add persistent settings.json for Etherpad#2
saurabh-khanna merged 1 commit into
mainfrom
copilot/add-settings-json-file

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 1, 2026

  • Create settings.json with Etherpad configuration
  • Update Dockerfile to copy settings.json into the image
Original prompt

Overview

Update the invisibleinfo/notes repository to add a persistent settings.json for Etherpad and update the Dockerfile to copy it into the image, so settings survive redeployments via Appliku.

Changes Required

1. Create settings.json in the repo root

Create a new file settings.json with the following exact content:

{
  "title": "Invisible Notes",
  "showRecentPads": true,
  "favicon": null,
  "skinName": "colibris",
  "skinVariants": "super-light-toolbar super-light-editor light-background",
  "ip": "0.0.0.0",
  "port": 9001,
  "showSettingsInAdminPage": true,
  "enableMetrics": true,
  "cleanup": {
    "enabled": false,
    "keepRevisions": 5
  },
  "authenticationMethod": "password",
  "enableDarkMode": true,
  "updateServer": "https://etherpad.org/ep_infos",
  "dbType": "${DB_TYPE:dirty}",
  "dbSettings": {
    "host":       "${DB_HOST:undefined}",
    "port":       "${DB_PORT:undefined}",
    "database":   "${DB_NAME:undefined}",
    "user":       "${DB_USER:undefined}",
    "password":   "${DB_PASS:undefined}",
    "charset":    "${DB_CHARSET:undefined}",
    "filename":   "${DB_FILENAME:var/dirty.db}",
    "collection": "${DB_COLLECTION:undefined}",
    "url":        "${DB_URL:undefined}"
  },
  "defaultPadText": "Meeting Notes\n\nDate: \nAttendees: \nAgenda:\n- \n\nNotes:\n\nAction Items:\n- \n",
  "padOptions": {
    "noColors":         false,
    "showControls":     true,
    "showChat":         true,
    "showLineNumbers":  false,
    "useMonospaceFont": false,
    "userName":         null,
    "userColor":        null,
    "rtl":              false,
    "alwaysShowChat":   true,
    "chatAndUsers":     true,
    "lang":             "en"
  },
  "padShortcutEnabled": {
    "altF9":     true,
    "altC":      true,
    "cmdShift2": true,
    "delete":    true,
    "return":    true,
    "esc":       true,
    "cmdS":      true,
    "tab":       true,
    "cmdZ":      true,
    "cmdY":      true,
    "cmdI":      true,
    "cmdB":      true,
    "cmdU":      true,
    "cmd5":      true,
    "cmdShiftL": true,
    "cmdShiftN": true,
    "cmdShift1": true,
    "cmdShiftC": true,
    "cmdH":      true,
    "ctrlHome":  true,
    "pageUp":    true,
    "pageDown":  true
  },
  "suppressErrorsInPadText": false,
  "requireSession": false,
  "editOnly": false,
  "minify": true,
  "maxAge": 21600,
  "abiword": null,
  "soffice": null,
  "allowUnknownFileEnds": true,
  "requireAuthentication": false,
  "requireAuthorization": false,
  "trustProxy": true,
  "cookie": {
    "keyRotationInterval": 86400000,
    "sameSite": "Lax",
    "sessionLifetime": 864000000,
    "sessionRefreshInterval": 86400000
  },
  "disableIPlogging": true,
  "automaticReconnectionTimeout": 0,
  "scrollWhenFocusLineIsOutOfViewport": {
    "percentage": {
      "editionAboveViewport": 0,
      "editionBelowViewport": 0
    },
    "duration": 0,
    "scrollWhenCaretIsInTheLastLineOfViewport": false,
    "percentageToScrollWhenUserPressesArrowUp": 0
  },
  "users": {
    "admin": {
      "password": "${ADMIN_PASSWORD:null}",
      "is_admin": true
    },
    "user": {
      "password": "${USER_PASSWORD:null}",
      "is_admin": false
    }
  },
  "socketTransportProtocols": ["websocket", "polling"],
  "socketIo": {
    "maxHttpBufferSize": 50000
  },
  "loadTest": false,
  "dumpOnUncleanExit": false,
  "importExportRateLimiting": {
    "windowMs": 90000,
    "max": 10
  },
  "importMaxFileSize": 52428800,
  "commitRateLimiting": {
    "duration": 1,
    "points": 10
  },
  "exposeVersion": false,
  "loglevel": "INFO",
  "customLocaleStrings": {},
  "enableAdminUITests": false,
  "lowerCasePadIds": true,
  "sso": {
    "issuer": "${SSO_ISSUER:http://localhost:9001}",
    "clients": [
      {
        "client_id": "${ADMIN_CLIENT:admin_client}",
        "client_secret": "${ADMIN_SECRET:admin}",
        "grant_types": ["authorization_code"],
        "response_types": ["code"],
        "redirect_uris": ["${ADMIN_REDIRECT:http://localhost:9001/admin/}"]
      },
      {
        "client_id": "${USER_CLIENT:user_client}",
        "client_secret": "${USER_SECRET:user}",
        "grant_types": ["authorization_code"],
        "response_types": ["code"],
        "redirect_uris": ["${USER_REDIRECT:http://localhost:9001/}"]
      }
    ]
  }
}

2. Update Dockerfile

The current Dockerfile contains only:

FROM etherpad/etherpad:2.6.1

Update it to also copy the settings.json into the image so it persists across Appliku redeployments:

FROM etherpad/etherpad:2.6.1
COPY settings.json /opt/etherpad-lite/settings.json

Why These Changes

  • settings.json is currently baked into the Docker image from the base etherpad/etherpad image. Any edits made via the Admin UI get overwritten on every redeploy.
  • By committing settings.json to the repo and copying it in the Dockerfile, the settings persist permanently across all future deployments.
  • Key settings changes f...

This pull request was created from Copilot chat.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@saurabh-khanna saurabh-khanna marked this pull request as ready for review March 1, 2026 15:12
Copilot AI review requested due to automatic review settings March 1, 2026 15:12
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review any files in this pull request.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@saurabh-khanna saurabh-khanna merged commit cf82030 into main Mar 1, 2026
1 check failed
Copilot stopped work on behalf of saurabh-khanna due to an error March 1, 2026 15:12
saurabh-khanna added a commit that referenced this pull request Mar 1, 2026
Add settings.json and Dockerfile COPY — implement missing PR #2 changes
Copilot AI mentioned this pull request Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants