Thomas Richter b930f1842c test(09-01): add filterEntries unit tests proving infrastructure
- Test empty input handling
- Test query filter (min 2 chars, case insensitive, title OR content)
- Test tag filter (AND logic, case insensitive)
- Test type filter (task/thought/all)
- Test date range filter (start, end, both)
- Test combined filters
- Test generic type preservation

17 tests covering filterEntries.ts with 100% coverage

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 23:29:44 +01:00
2026-02-03 23:23:27 +01:00
2026-01-31 12:23:24 +01:00

TaskPlaner

A simple task and thought capture app. Quickly add tasks, thoughts, and notes from any device.

Developing

Install dependencies and start a development server:

npm install
npm run dev

Building

To create a production version of your app:

npm run build

Docker Deployment

Quick Start

# Build and start the container
docker-compose up -d

# View logs
docker-compose logs -f

# Stop the container
docker-compose down

The application will be available at http://localhost:3000

Configuration

Copy .env.example to .env and customize:

cp .env.example .env

Key settings:

  • ORIGIN - Required for production. Set to your public URL (e.g., https://tasks.example.com)
  • BODY_SIZE_LIMIT - Max upload size. Default: 512kb, recommended: 10M
  • PORT - Server port inside container. Default: 3000

Behind a Reverse Proxy

When running behind nginx, traefik, or similar, uncomment these in .env:

PROTOCOL_HEADER=x-forwarded-proto
HOST_HEADER=x-forwarded-host
ADDRESS_HEADER=x-forwarded-for
XFF_DEPTH=1

Data Persistence

Data is stored in a Docker named volume (taskplaner_data). This includes:

  • SQLite database (/app/data/taskplaner.db)
  • Uploaded images (/app/data/uploads/)

The volume persists across container restarts and updates.

Backup & Restore

Create a backup:

./backup.sh

Backups are saved to ./backups/ with timestamps.

Restore from backup:

# Stop the container first
docker-compose down

# Restore (replace TIMESTAMP with actual backup filename)
docker run --rm \
  -v taskplaner_taskplaner_data:/data \
  -v $(pwd)/backups:/backup \
  alpine tar xzf /backup/taskplaner_backup_TIMESTAMP.tar.gz -C /data

# Start the container
docker-compose up -d

Health Check

The container includes a health check at /health. View status:

docker-compose ps

A healthy container shows (healthy) in the status column.

Description
Task Planner Application
Readme 18 MiB
Languages
TypeScript 57.6%
Svelte 38.5%
Smarty 1.4%
Shell 1%
Dockerfile 0.8%
Other 0.7%