Skip to content

A secure, self-hosted checklist application with dark theme and timestamps. Built with Node.js, Express and vanilla JavaScript.

Notifications You must be signed in to change notification settings

ValentinTorassa/TaskVault

Repository files navigation

TaskVault

A secure, self-hosted checklist application with dark theme and timestamps. Built with Node.js, Express, and vanilla JavaScript.

Features

  • Dark Theme with responsive design
  • Timestamps for task creation and completion
  • Drag & Drop reordering
  • Outline Navigator sidebar
  • Keyboard Shortcuts (Ctrl+S, Ctrl+F, Enter, etc.)
  • Offline Support with localStorage backup
  • Secure Authentication with CSRF protection
  • Export/Backup - Download tasks as JSON file

Quick Start

  1. Clone and setup:

    git clone <repository-url>
    cd taskvault
  2. Configure environment: Edit .env file:

    ADMIN_USER=your_username
    ADMIN_PASS=your_secure_password
    SESSION_SECRET=generate_a_random_32_char_string
    PORT=3000
  3. Run:

    npm install
    npm start
  4. Access: Open http://localhost:3000

Running in Production

With PM2 (Process Manager)

  1. Install PM2:

    npm install -g pm2
  2. Start with PM2:

    pm2 start server.js --name taskvault
    pm2 save
    pm2 startup
  3. Monitor:

    pm2 status
    pm2 logs taskvault

NPM Scripts

  • npm start - Run in production mode
  • npm run dev - Run in development mode with auto-reload

Configuration

Variable Description Default
ADMIN_USER Admin username admin
ADMIN_PASS Admin password password123
SESSION_SECRET Session encryption key Required
DATA_DIR Data storage directory ./data
PORT Server port 3000

Exporting Tasks

You can export all your tasks as a JSON file for backup or migration purposes:

  1. From the web UI: Click the "Export" button in the header (desktop) or the download icon (↓) in the mobile action bar.
  2. A JSON file will be downloaded with the filename format: taskvault-tasks-YYYY-MM-DD_HH-mm-ss.json

Export Details

  • Data source: The export reads from the canonical tasks.json file located in DATA_DIR (default: ./data in development, /data in production)
  • Format: The exported file contains a JSON array of task objects
  • Consistency: The export uses file locking to ensure a consistent snapshot during concurrent operations
  • Authentication: Export requires authentication (same as viewing tasks)

About

A secure, self-hosted checklist application with dark theme and timestamps. Built with Node.js, Express and vanilla JavaScript.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published