selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
DumbPad logo

Self-host DumbPad

v1.0.4

Simple collaborative notepad with markdown preview

ReleaseOpen SourceGPL-3.0
Updated10 months ago
LanguageJavaScript
Setup difficultyEasy
MobilePWA
ThemeDark mode
Stars
473
Port
3000 (HTTP web interface)
Docker
dumbwareio/dumbpad
Install with Docker Compose
Split preview modeSettings panel

What is DumbPad?

DumbPad is a lightweight, self-hosted notepad application designed for simplicity and collaboration. It provides a clean interface with auto-saving notes, dark/light mode toggle, and optional PIN protection (4-10 digits) for basic access control. The app supports enhanced markdown formatting including GitHub-style alert blocks, extended tables, collapsible details, and code syntax highlighting via highlight.js. Multiple notepads can be created and managed with fuzzy search across filenames and contents. Real-time collaborative editing works over WebSockets, and shareable URLs allow direct linking to specific notepads. It runs as a Node.js/Express backend with a vanilla JavaScript frontend, storing data in a file-based structure (JSON index plus individual .txt files). Deployment options include Docker (single command), Docker Compose with configurable environment variables, or local Node.js development. The Docker image runs as non-root user (UID 1000) for security. No external database or cache is required. PWA support enables offline-capable mobile usage with automatic cache updates.

Should you self-host DumbPad?

DumbPad scores 49/100 on selfhost.directory (how scoring works) and ranks #41 of 81 in Notes & Editors. It has 473 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is GPL-3.0-licensed and written mostly in JavaScript.

Its closest alternative on selfhost.directory is Memos (86/100, 64 139 stars). It scores higher overall, so compare the two before you pick. See DumbPad vs Memos side by side.

Features

  • Auto-save
  • Code syntax highlighting
  • CORS Configuration
  • Dark/light mode
  • File import/export
  • Fuzzy Search
  • GitHub-style alert blocks
  • Markdown preview
  • Multiple notepads
  • PIN protection
  • Print with auto-expand
  • Real-Time Collaboration
  • Shareable URLs

DumbPad README

How to install DumbPad

Install DumbPad with Docker Compose

Environment variables
DUMBPAD_PORT, DUMBPAD_DATA_PATH, DUMBPAD_SITE_TITLE, DUMBPAD_PIN, DUMBPAD_BASE_URL, DUMBPAD_ALLOWED_ORIGINS, DUMBPAD_LOCK_TIME, DUMBPAD_MAX_ATTEMPTS, DUMBPAD_COOKIE_MAX_AGE, DUMBPAD_PAGE_HISTORY_COOKIE_AGE, HIGHLIGHT_LANGUAGES

services: dumbpad: image: dumbwareio/dumbpad:latest container_name: dumbpad restart: unless-stopped ports: - ${DUMBPAD_PORT:-3000}:3000 volumes: - ${DUMBPAD_DATA_PATH:-./data}:/app/data environment: SITE_TITLE: ${DUMBPAD_SITE_TITLE:-DumbPad} DUMBPAD_PIN: ${DUMBPAD_PIN:-} BASE_URL: ${DUMBPAD_BASE_URL:-http://localhost:3000} # ALLOWED_ORIGINS: ${DUMBPAD_ALLOWED_ORIGINS:-http://localhost:3000} # LOCKOUT_TIME: ${DUMBPAD_LOCK_TIME:-15} # MAX_ATTEMPTS: ${DUMBPAD_MAX_ATTEMPTS:-5} # COOKIE_MAX_AGE: ${DUMBPAD_COOKIE_MAX_AGE:-24} # PAGE_HISTORY_COOKIE_AGE: ${DUMBPAD_PAGE_HISTORY_COOKIE_AGE:-365} # HIGHLIGHT_LANGUAGES=c,csharp,css,dockerfile,go,html,java,javascript,json,kotlin,markdown,perl,php,python,ruby,sql,swift,typescript,xml,yaml

Create data directory with correct permissions (chown 1000:1000) before starting on Linux/macOS.

How to configure DumbPad

  • ALLOWED_ORIGINS*Allowed CORS origins (* for all or comma-separated list)

    Allowed CORS origins (* for all or comma-separated list)

  • BASE_URLhttp://localhost:PORTBase URL for the application

    Base URL for the application

  • COOKIE_MAX_AGE24Maximum age of authentication cookies (in hours)

    Maximum age of authentication cookies (in hours)

  • DUMBPAD_PINPIN protection (4-10 digits)

    PIN protection (4-10 digits)

    values: 4-10 digits

  • HIGHLIGHT_LANGUAGESall if not suppliedComma-separated list of code syntax languages to restrict to

    Comma-separated list of code syntax languages to restrict to

  • LOCKOUT_TIME15Lockout time after max PIN attempts (in minutes)

    Lockout time after max PIN attempts (in minutes)

  • MAX_ATTEMPTS5Maximum PIN entry attempts before lockout

    Maximum PIN entry attempts before lockout

  • NODE_ENVproductionNode environment mode (development or production)

    Node environment mode (development or production)

    values: development, production

  • PAGE_HISTORY_COOKIE_AGE365Age of cookie storing last opened notepad (in days, max 400)

    Age of cookie storing last opened notepad (in days, max 400)

    values: max 400

  • PORT3000Server port

    Server port

  • SITE_TITLEDumbPadSite title displayed in header

    Site title displayed in header

  • TRUSTED_PROXY_IPSComma-separated list of trusted proxy IPs

    Comma-separated list of trusted proxy IPs

  • TRUST_PROXYfalseEnable proxy trust for X-Forwarded-For headers

    Enable proxy trust for X-Forwarded-For headers

    values: true, false

DumbPad releases & version history

More in Productivity

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…