feat: add miniPaint stack (paint.pivoine.art)

Added new paint service stack to the docker-compose infrastructure:

- **Paint stack** (paint.pivoine.art):
  - miniPaint: Web-based image editor built from GitHub
  - Multi-stage Docker build clones from https://github.com/viliusle/miniPaint
  - Features: layers, filters, drawing tools, text, shapes support
  - Client-side processing with no server uploads
  - Stateless architecture (no backups needed)

Infrastructure updates:
- Created paint/compose.yaml with Traefik routing and SSL
- Created paint/Dockerfile with Node.js build stage and nginx serve
- Added PAINT environment variables to arty.yml
- Updated compose.yaml include list
- Updated CLAUDE.md documentation

All services integrated with Traefik for SSL termination and include
Watchtower auto-update labels.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-06 19:44:14 +01:00
parent dac3e89f47
commit ab35b2bca1
5 changed files with 82 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ Root `compose.yaml` uses Docker Compose's `include` directive to orchestrate mul
- **vault**: Vaultwarden password manager (SQLite)
- **joplin**: Joplin Server note-taking and sync platform (PostgreSQL)
- **vert**: VERT file format converter (WebAssembly-based, stateless)
- **paint**: miniPaint web-based image editor (built from GitHub)
- **restic**: Backrest backup system with restic backend
- **sablier**: Dynamic scaling plugin for Traefik
- **vpn**: WireGuard VPN (wg-easy)
@@ -272,6 +273,27 @@ Simply access https://vert.pivoine.art and drag/drop files to convert between fo
**Note**: VERT is stateless and doesn't require backups as no data is persisted.
### Paint (paint/compose.yaml)
miniPaint web-based image editor built from GitHub:
- **paint**: miniPaint app exposed at `paint.pivoine.art:80`
- Online image editor with layer support
- Built directly from https://github.com/viliusle/miniPaint
- Supports PNG, JPG, GIF, WebP formats
- Features: layers, filters, drawing tools, text, shapes
- Client-side processing (no uploads to server)
- No persistent data storage required
- Stateless architecture
**Build Process**:
- Multi-stage Docker build clones from GitHub
- Builds using Node.js 18
- Serves static files via nginx
**Usage**:
Access https://paint.pivoine.art to use the image editor. All editing happens in the browser - images are not uploaded to the server.
**Note**: miniPaint is stateless and doesn't require backups as no data is persisted.
### Restic (restic/compose.yaml)
Backrest backup system with restic backend:
- **backrest**: Backrest web UI exposed at `restic.pivoine.art:9898`