A stupidly simple todo list application that just works. No complex database, no unnecessary features - just todos.
| Variable | Description | Default | Required |
|---|---|---|---|
| PORT | The port number the server will listen on | 3000 | No |
| DUMBDO_PIN | PIN protection for accessing todos (4-10 digits) | - | No |
| SINGLE_LIST | Show a single List of ToDos (without the selector) | false | No |
git clone https://github.com/dumbwareio/dumbdo.git
cd dumbdo
npm install
npm start
docker pull dumbwareio/dumbdo:latest
docker run -p 3000:3000 -v $(pwd)/data:/app/data dumbwareio/dumbdo:latest
docker build -t dumbwareio/dumbdo .
docker run -p 3000:3000 -v $(pwd)/data:/app/data dumbwareio/dumbdo
services:
dumbdo:
image: dumbwareio/dumbdo:latest
container_name: dumbdo
restart: unless-stopped
ports:
- ${DUMBDO_PORT:-3000}:3000
volumes:
- ${DUMBDO_DATA_PATH:-./data}:/app/data
environment:
- DUMBDO_PIN=${DUMBDO_PIN-}
- DUMBDO_SITE_TITLE=DumbDo
# (Optional) Restrict origins - ex: https://subdomain.domain.tld,https://auth.proxy.tld,http://internalip:port' (default is '*')
# - ALLOWED_ORIGINS=http://localhost:3000
# - NODE_ENV=development # default production (development allows all origins)
#healthcheck:
# test: wget --spider -q http://127.0.0.1:3000
# start_period: 20s
# interval: 20s
# timeout: 5s
# retries: 3
Todos are stored in a JSON file at app/data/todos.json. The file is automatically created when you first run the application.
To backup your todos, simply copy the data directory. To restore, place your backup todos.json in the data directory.
The application follows the "Dumb" design system principles:
dumbdo/
├── app.js # Frontend JavaScript
├── index.html # Main HTML file
├── server.js # Node.js server
├── styles.css # CSS styles
├── data/ # Todo storage directory
│ └── todos.json
├── Dockerfile # Docker configuration
└── package.json # Dependencies and scripts
This is meant to be a simple application. If you're writing complex code to solve a simple problem, you're probably doing it wrong. Keep it dumb, keep it simple.
$ claude mcp add DumbDo \
-- python -m otcore.mcp_server <graph>