A stupid simple, no auth (unless you want it!), modern notepad application with auto-save functionality and dark mode support.
- Simple, clean interface
- Auto-saving
- Dark mode support
- Responsive design
- Docker support
- Optional PIN protection (4-10 digits)
- File-based storage
- Data persistence across updates
# Pull the latest image
docker pull dumbwareio/dumbpad:latest
# Run without PIN protection
docker run -p 3000:3000 \
-v "$(pwd)/data:/app/data" \
dumbwareio/dumbpad
# Run with PIN protection
docker run -p 3000:3000 \
-v "$(pwd)/data:/app/data" \
-e DUMBPAD_PIN=1234 \
dumbwareio/dumbpad
- Clone the repository:
git clone https://github.com/dumbwareio/dumbpad.git
cd dumbpad
- Install dependencies:
npm install
- Set up environment:
cp .env.example .env
# Edit .env as needed
- Start the server:
npm start
The application will be available at http://localhost:3000
Copy .env.example
to .env
and configure:
Variable | Description | Default | Required |
---|---|---|---|
PORT | Server port | 3000 | No |
DUMBPAD_PIN | 4-10 digit PIN protection | None | No |
- Optional 4-10 digit PIN
- Brute force protection:
- 5 attempts maximum
- 15-minute lockout after failed attempts
- IP-based tracking
- Constant-time comparison
- Secure cookie storage
- File-based storage in
data
directory - Data directory excluded from version control
- Secure volume mounting in Docker
- Clone and build:
git clone https://github.com/dumbwareio/dumbpad.git
cd dumbpad
docker build -t dumbwareio/dumbpad:latest .
- Run your local build:
docker run -p 3000:3000 \
-v "$(pwd)/data:/app/data" \
dumbwareio/dumbpad:latest
Your notes are stored in the data
directory, which is:
- Excluded from version control (via
.gitignore
) - Preserved when updating the application
- Mounted as a volume when running with Docker
To ensure your notes persist across updates:
-
If running locally:
# First time setup mkdir -p data touch data/.gitkeep # When updating git stash # Stash any local changes git pull # Pull latest changes git stash pop # Restore local changes
-
If running with Docker:
# First time setup mkdir -p data # Running with proper volume mount docker run -p 3000:3000 \ -v "$(pwd)/data:/app/data" \ dumbwareio/dumbpad:latest # When updating docker pull dumbwareio/dumbpad:latest # Then run again with the same volume mount
data
directory when updating! This is where all your notes are stored.
- Just start typing! Your notes will be automatically saved.
- Use the theme toggle in the top-right corner to switch between light and dark mode.
- Press
Ctrl+S
(orCmd+S
on Mac) to force save. - Auto-saves every 10 seconds while typing.
- Create multiple notepads with the + button.
- Download notepads as .txt files.
- If PIN protection is enabled, you'll need to enter the PIN to access the app.
- Backend: Node.js with Express
- Frontend: Vanilla JavaScript
- Storage: File-based storage in
data
directory - Styling: Modern CSS with CSS variables for theming
- Security: Constant-time PIN comparison, brute force protection
- GitHub: github.com/dumbwareio/dumbpad
- Docker Hub: hub.docker.com/r/dumbwareio/dumbpad
- Fork the repository
- Create your feature branch:
git checkout -b feature/my-feature
- Commit your changes:
git commit -am 'Add my feature'
- Push to the branch:
git push origin feature/my-feature
- Submit a pull request