Kept
Docker app from Kept Note's Repository
Overview
Readme
View on GitHubKept for Unraid
An Unraid Community Applications template for Kept, a self-hosted notes app with a Google Keep-style feel.
The template uses the official ghcr.io/ericerkz/kept:latest image. Kept uses SQLite and needs no separate database container.
Installation
- Search for Kept in Unraid's Apps tab and choose Install.
- Choose the Web UI port and appdata location. The defaults are port
6767and/mnt/user/appdata/kept. - Set your timezone and apply the configuration.
- Open the container's WebUI and create the first administrator account before making the instance publicly accessible.
The default file ownership is Unraid's nobody:users (99:100). If your appdata directory uses different ownership, adjust User ID and Group ID in the advanced settings. The image prepares storage ownership during startup, then runs Kept as the configured user.
Storage and updates
The appdata directory maps to /app/data and contains the SQLite database, images, attachments, imports, and backups. Use a local appdata share or pool directory, rather than an SMB or NFS mount. Back up this directory before updating.
The latest tag follows Kept releases. Use Unraid's normal container update controls to pull a newer image and recreate the container. Keep the same appdata mapping so your library is retained.
HTTPS and mobile apps
Use a reverse proxy with HTTPS for public access, browser push notifications, and PWA features. Forward WebSocket connections at /api/realtime too. Set the optional Server URL to your public origin when using OIDC sign-in or remote MCP/OAuth.
The native iOS and Android apps connect to the same server URL. See Kept's documentation for app links and configuration options. Additional Kept environment variables can be added through Unraid's container editor.
Support and license
Report problems through Kept's GitHub issues. For template problems, include your Unraid version and container configuration with any secrets removed.
The template is licensed under AGPL-3.0-only. Kept is also licensed under AGPL-3.0-only.
Media gallery
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/ericerkz/kept:latestRuntime arguments
- Web UI
http://[IP]:[PORT:6767]/- Network
bridge- Shell
sh- Privileged
- false
Template configuration
Host port for Kept's Web UI. Change this if another container already uses port 6767.
- Target
- 6767
- Default
- 6767
- Value
- 6767
Persistent SQLite database, images, attachments, and backups. Use a local appdata share or pool directory, not an SMB or NFS mount. Back up this directory.
- Target
- /app/data
- Default
- /mnt/user/appdata/kept
- Value
- /mnt/user/appdata/kept
Timezone name, such as America/New_York or Europe/London.
- Target
- TZ
- Default
- Etc/UTC
- Value
- Etc/UTC
User ID that owns Kept's files. Unraid's nobody user is normally 99. Kept starts as root to prepare storage ownership, then runs the server as this user.
- Target
- PUID
- Default
- 99
- Value
- 99
Group ID that owns Kept's files. Unraid's users group is normally 100.
- Target
- PGID
- Default
- 100
- Value
- 100
Optional public origin, such as https://notes.example.com, without a trailing path. Required for OIDC sign-in and remote MCP/OAuth. Leave blank for ordinary LAN access.
- Target
- BASE_URL
Kept's runtime environment.
- Target
- NODE_ENV
- Default
- production
- Value
- production
Internal HTTP port. Change the host port using Web UI Port instead.
- Target
- PORT
- Default
- 6767
- Value
- 6767
Container path for persistent Kept data.
- Target
- DATA_DIR
- Default
- /app/data
- Value
- /app/data
SQLite database inside the persistent data directory.
- Target
- SQLITE_PATH
- Default
- /app/data/kept.sqlite
- Value
- /app/data/kept.sqlite
Uploaded images inside the persistent data directory.
- Target
- UPLOAD_DIR
- Default
- /app/data/uploads
- Value
- /app/data/uploads
File attachments inside the persistent data directory.
- Target
- ATTACHMENT_DIR
- Default
- /app/data/attachments
- Value
- /app/data/attachments
Temporary import files inside the persistent data directory.
- Target
- TAKEOUT_TMP_DIR
- Default
- /app/data/imports/tmp
- Value
- /app/data/imports/tmp