Kept

Kept

Docker app from Kept Note's Repository

Overview

Kept is a self-hosted notes app with a Google Keep-style feel. Create text notes, checklists, drawings, and reminders; add images and attachments; organize with labels and binders; and share notes with other users on your server. Native iOS and Android apps are also available. After installation, open the Web UI and create the first administrator account. Kept uses SQLite, so no separate database is needed. Notes, uploaded files, and backups are stored in the appdata directory. Use HTTPS through a reverse proxy for public access, browser push notifications, and PWA features. See the project documentation for setup and mobile app links.

Kept 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

  1. Search for Kept in Unraid's Apps tab and choose Install.
  2. Choose the Web UI port and appdata location. The defaults are port 6767 and /mnt/user/appdata/kept.
  3. Set your timezone and apply the configuration.
  4. 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 all

Details

Repository
ghcr.io/ericerkz/kept:latest
Last Updated2026-11-09
First Seen2026-11-09

Runtime arguments

Web UI
http://[IP]:[PORT:6767]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

Web UI PortPorttcp

Host port for Kept's Web UI. Change this if another container already uses port 6767.

Target
6767
Default
6767
Value
6767
AppdataPathrw

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
TimezoneVariable

Timezone name, such as America/New_York or Europe/London.

Target
TZ
Default
Etc/UTC
Value
Etc/UTC
User IDVariable

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 IDVariable

Group ID that owns Kept's files. Unraid's users group is normally 100.

Target
PGID
Default
100
Value
100
Server URLVariable

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
Application EnvironmentVariable

Kept's runtime environment.

Target
NODE_ENV
Default
production
Value
production
Container PortVariable

Internal HTTP port. Change the host port using Web UI Port instead.

Target
PORT
Default
6767
Value
6767
Data DirectoryVariable

Container path for persistent Kept data.

Target
DATA_DIR
Default
/app/data
Value
/app/data
SQLite DatabaseVariable

SQLite database inside the persistent data directory.

Target
SQLITE_PATH
Default
/app/data/kept.sqlite
Value
/app/data/kept.sqlite
Images DirectoryVariable

Uploaded images inside the persistent data directory.

Target
UPLOAD_DIR
Default
/app/data/uploads
Value
/app/data/uploads
Attachments DirectoryVariable

File attachments inside the persistent data directory.

Target
ATTACHMENT_DIR
Default
/app/data/attachments
Value
/app/data/attachments
Import DirectoryVariable

Temporary import files inside the persistent data directory.

Target
TAKEOUT_TMP_DIR
Default
/app/data/imports/tmp
Value
/app/data/imports/tmp