Skip to content

Productivity & Tools

Self-hosted productivity suite for password management, finance tracking, document organization, and information management. Privacy-focused alternatives to cloud services.

Security & Passwords

🔐 Vaultwarden

Lightweight Bitwarden server for password management. Self-hosted alternative with full compatibility with Bitwarden clients.

Features: - Password vault with encryption - Browser extensions - Mobile apps - TOTP 2FA generator - Secure sharing - Emergency access


Finance

💰 Actual Budget

Personal finance tracking with zero-based budgeting methodology. Self-hosted alternative to YNAB.

Features: - Bank sync capabilities - Budget categories - Goal tracking - Multi-device sync - Reports and analytics - Split transactions


Document Management

📄 Paperless-NGX

Document archiving and OCR system. Scan, index, and organize all paperwork digitally.

Features: - Automatic OCR - Tagging and metadata - Full-text search - Email import - Automated workflows - Mobile scanning app


🔖 Linkwarden

Bookmark and link management with archival capabilities. Save web content for offline access.

Features: - Bookmark organization - Full-page archival - Tag-based organization - Collaborative collections - Browser extensions - API access

🔗 LinkStack

Personal link landing page. Customizable bio link page for social media profiles.

Features: - Multiple link buttons - Analytics tracking - Theme customization - Social media icons - QR code generation


Web Monitoring

👁️ ChangeDetection.io

Webpage change monitoring and alerting. Track website updates and get notified of changes.

Features: - Visual and text diff - XPath/CSS selectors - Alert notifications - Scheduled checks - API monitoring - Screenshot comparison


File Management

📁 FileBrowser

Web-based file manager for VPS. Secure file access and management from anywhere.

Features: - File upload/download - Directory browsing - File sharing - User management - Mobile responsive - Search functionality


Productivity Architecture

Data Flow

Document Workflow:

Physical Document
  ↓
Scanner/Mobile App
  ↓
Paperless-NGX (OCR + Index)
  ↓
Searchable Archive

Web Content Workflow:

Interesting Article
  ↓
Linkwarden (Save + Archive)
  ↓
Offline Accessible Content

Password Workflow:

New Account
  ↓
Generate Password (Vaultwarden)
  ↓
Auto-fill via Browser Extension
  ↓
Encrypted Vault Storage

Storage Organization

/opt/stacks/productivity/
├── vaultwarden/
│   └── data/              # Encrypted vault
├── actual/
│   └── server-files/      # Budget database
├── paperless/
│   ├── data/              # Documents
│   ├── media/             # Scanned files
│   └── consume/           # Import folder
├── linkwarden/
│   └── data/              # Bookmarks and archives
└── changedetection/
    └── datastore/         # Monitored pages

Integration Examples

Paperless-NGX Auto-Import

Email to Paperless:

# Fetch emails with attachments
PAPERLESS_CONSUMER_IMAP_ENABLED: true
PAPERLESS_CONSUMER_IMAP_SERVER: imap.gmail.com
PAPERLESS_CONSUMER_IMAP_PORT: 993

Watch Folder:

# Scan documents to this folder
/mnt/scanner/output  /opt/stacks/paperless/consume
# Paperless auto-imports and OCRs

Vaultwarden → Authelia SSO

Use Vaultwarden as identity provider for other services:

# authelia configuration
authentication_backend:
  ldap:
    implementation: custom
    url: ldap://vaultwarden.local

ChangeDetection → Discord Alerts

# notification.yaml
webhook:
  url: https://discord.com/api/webhooks/xxx
  format: |
    {
      "content": "Change detected on {{watch_url}}",
      "embeds": [{
        "title": "{{watch_title}}",
        "url": "{{watch_url}}",
        "description": "{{diff_summary}}"
      }]
    }

Backup Strategy

Vaultwarden

# Daily automated backup
0 2 * * * /opt/scripts/backup-vaultwarden.sh

#!/bin/bash
# backup-vaultwarden.sh
docker exec vaultwarden sqlite3 /data/db.sqlite3 ".backup '/data/backup.sqlite3'"
tar -czf vaultwarden-$(date +%Y%m%d).tar.gz \
  /opt/stacks/vaultwarden/data/
rsync -av vaultwarden-*.tar.gz /mnt/backup/vaultwarden/

Paperless-NGX

# Export documents and database
docker exec paperless document_exporter /export/
tar -czf paperless-export-$(date +%Y%m%d).tar.gz /export/

Actual Budget

# Automated sync to cloud storage
services:
  actual-sync:
    image: rclone/rclone
    command: sync /data remote:backup/actual
    volumes:
      - /opt/stacks/actual/server-files:/data

Security Best Practices

Vaultwarden Security

  1. Strong Master Password – Use 20+ character passphrase
  2. 2FA Enabled – TOTP or hardware key required
  3. Disable Registration – After creating accounts
  4. Backup Encryption – Encrypt backup files
  5. HTTPS Only – Never expose over HTTP
  6. Regular Audits – Review password health reports

Access Control

# Traefik middleware for Authelia protection
labels:
  - "traefik.http.routers.productivity.middlewares=authelia@docker"

Network Isolation

# Productivity services on internal network
networks:
  productivity:
    internal: true  # No direct internet access
  proxy:
    external: true  # Only reverse proxy connection

Mobile Access

Apps

Vaultwarden: - Official Bitwarden app (iOS/Android) - Browser autofill integration

Paperless-NGX: - Web UI (mobile-responsive) - Paperless Mobile (community app) - Document scanning via mobile camera

Actual Budget: - Web UI (PWA capable) - Mobile-optimized interface

Linkwarden: - Browser share menu integration - Mobile web UI


Automation Examples

Auto-Organize Documents

# Paperless-NGX pre-consume script
import os
import re

def preprocess(filename):
    # Auto-tag based on filename patterns
    if re.search(r'invoice', filename, re.I):
        return {'tags': ['invoice'], 'correspondent': 'vendor'}
    elif re.search(r'receipt', filename, re.I):
        return {'tags': ['receipt'], 'document_type': 'expense'}
    return {}

Budget Alert

// Actual Budget webhook
if (account.balance < 1000) {
  sendAlert({
    title: "Low Balance Warning",
    message: `${account.name} balance is ${account.balance}`,
    channel: "finance-alerts"
  });
}

Performance Optimization

Paperless-NGX

# Optimize OCR performance
PAPERLESS_OCR_LANGUAGE: eng
PAPERLESS_OCR_MODE: skip  # Skip if text already present
PAPERLESS_TASK_WORKERS: 2  # Parallel processing
PAPERLESS_THREADS_PER_WORKER: 1

Linkwarden

# Archive optimization
ARCHIVE_METHOD: screenshot  # Faster than full-page
ARCHIVE_QUALITY: medium    # Balance size vs quality

Best Practices

  1. Regular Backups – Automate daily backups of all productivity data
  2. Version Control – Keep configs in Git for disaster recovery
  3. Access Logs – Monitor authentication attempts
  4. Data Retention – Define policies for document archival
  5. Mobile Access – Ensure mobile-responsive interfaces
  6. Search Indexing – Maintain search indices for fast lookups
  7. Privacy First – Self-host to maintain data ownership
  8. Secure Sharing – Use encrypted sharing for sensitive data