A self-hosted web application for managing crochet patterns, tracking project progress, and organizing your craft library.
Version: 0.5.0
- Upload PDF and Markdown patterns with automatic thumbnail generation
- Organize by categories (Amigurumi, Wearables, Tunisian, Lace/Filet, Colorwork, Freeform, Micro, Other)
- Hashtag system for flexible pattern tagging and filtering
- Custom thumbnails - upload your own or use auto-generated ones
- Integrated PDF viewer with page navigation and progress tracking
- Markdown pattern support with embedded images
- Pattern notes stored as markdown files
- Mark patterns as "Current" to track active projects
- Built-in row and stitch counters with keyboard shortcuts
- Custom counters for complex patterns (e.g., "Sleeve 1", "Round Counter")
- Project timer - manual or auto-timer that pauses on inactivity
- Progress tracking - remembers your page position in each pattern
- Manual and scheduled backups (daily/weekly)
- Selective backup options - choose PDF patterns, markdown patterns, archive, and notes
- Auto-prune old backups by count or age
- Push notifications via Pushover for backup events
- Archive completed patterns to keep library clean
- Optional delete mode for permanent removal instead of archiving
- Auto-delete archived patterns after configurable time period
- Dark mode interface
- Keyboard shortcuts for counting (
+/=for stitch,-to decrement,rfor row) - Bluetooth/media remote support for hands-free counting
- Mobile-friendly responsive design
- Real-time notifications via Server-Sent Events
- Docker and Docker Compose installed
-
Clone the repository
git clone https://github.com/titandrive/yarnl.git cd yarnl -
Start with Docker Compose
docker-compose up -d
-
Access the application Open your browser to
http://localhost:3000 -
Stop the application
docker-compose down
All data persists across container restarts:
- Database: PostgreSQL volume for pattern metadata, counters, settings
- Patterns:
./patternsdirectory for PDF and markdown files - Archive:
./archivedirectory for archived patterns - Backups:
./backupsdirectory for backup zip files - Notes:
./notesdirectory for pattern notes (markdown)
| Variable | Default | Description |
|---|---|---|
NODE_ENV |
production |
Environment mode |
POSTGRES_HOST |
postgres |
Database host |
POSTGRES_PORT |
5432 |
Database port |
POSTGRES_DB |
yarnl |
Database name |
POSTGRES_USER |
yarnl |
Database user |
POSTGRES_PASSWORD |
yarnl |
Database password |
BACKUP_HOST_PATH |
./backups |
Host path shown in backup settings |
TZ |
UTC |
Timezone for scheduled backups |
To enable push notifications for backup events:
- Go to Settings > Notifications
- Enter your Pushover User Key and API Token
- Enable desired notification types
-
Install Node.js (v18+) and PostgreSQL
-
Install dependencies
npm install
-
Set environment variables for database connection
-
Start the server
npm start
- Backend: Node.js, Express
- Database: PostgreSQL 16
- Frontend: Vanilla JavaScript, HTML5, CSS3
- PDF Processing: PDF.js (viewing), Sharp (thumbnails)
- Containerization: Docker & Docker Compose
6f71da7Store pattern notes as markdown files instead of database27a3f28Improve upload staging UI with compact layout and thumbnails311ea92Add Minimal and Halloween themesf83c14bAdd Bluetooth/media remote support for shortcuts03cc6d6Add archive feature with auto-delete option9dd0617Improve counter UX: inline naming, enter to save4271cd8Share counter overlay between PDF and markdown viewers4439e88Add swipe gestures for mobile PDF viewerd2ab434Improve mobile pinch-to-zoom for PDF viewer
7c62182Fix auto-prune after manual backupsa238bd8Add archive backup option65156a9Exclude archived patterns from library statscd36f61Fix homepage redirect to last visited pattern25d8d32Fix PDF scroll behavior for fit vs zoomed modes
See the User Guide for detailed usage instructions.
MIT License