Features
Tenrankai is packed with features designed to make hosting and managing photo galleries a breeze. Whether you're a photographer showcasing your portfolio or an organization managing multiple image collections, Tenrankai has you covered.
📂 File-Based Architecture
No Database Required
Tenrankai operates entirely on files and folders - no database setup or maintenance:
- Drop images in folders to create galleries
- Add markdown files for descriptions and captions
- Write blog posts as simple markdown files
- Configuration is just a TOML file
- Everything is human-readable and version-control friendly
SyncThing Integration
Perfect for distributed workflows with SyncThing:
- Edit your gallery on any device
- Changes sync automatically to your server
- No deployment process - just save and sync
- Keep multiple servers in sync effortlessly
- Works with any file synchronization tool
Simple Deployment
Since everything is files, deployment is straightforward:
- Copy files to server - you're done!
- Use rsync, SyncThing, Dropbox, or git
- No database migrations or schema updates
- Easy backup - just copy the folders
- Portable between servers
- Docker support with official images
🖼️ Gallery Management
Multiple Independent Galleries
Run unlimited galleries from a single Tenrankai instance, each with:
- Custom URL prefixes (e.g., /portfolio, /family, /projects)
- Independent source directories and cache locations
- Per-gallery configuration for image quality and sizes
- Custom templates for unique gallery experiences
Responsive Masonry Layout
Beautiful, mobile-friendly gallery layouts that adapt to any screen size:
- Automatic column adjustment based on viewport
- Smooth animations and transitions
- Touch-friendly navigation on mobile devices
- Optimized for both portrait and landscape orientations
Folder Organization
Organize photos hierarchically with full support for nested folders:
- Automatic breadcrumb navigation
- Folder descriptions via markdown files
- Hidden folders for private collections
- Custom folder titles and metadata
📸 Image Processing
Automatic Resizing
Generate multiple image sizes automatically:
- Thumbnail: Small previews for gallery grids
- Gallery: Standard viewing size
- Medium: Larger size with optional watermarking
- Large: Full quality (authentication required)
- @2x variants for all sizes (retina display support)
Format Optimization
Intelligent format selection for optimal performance:
- Full AVIF support with HDR preservation and gain maps
- Automatic WebP conversion for supported browsers
- JPEG fallback for maximum compatibility
- PNG support with transparency preservation
- Configurable quality settings per format
- Content negotiation based on Accept headers
Color Profile Preservation
Full support for professional color management:
- ICC profile extraction and preservation
- Display P3 and Adobe RGB support
- Color profiles maintained through watermarking
- Both JPEG and WebP profile embedding
Metadata Extraction
Comprehensive EXIF data parsing:
- Camera make, model, and settings
- GPS coordinates and location data
- Capture date and time
- Lens information and focal length
- ISO, aperture, and shutter speed
⚡ Performance & Caching
Intelligent Caching System
Multi-level caching for lightning-fast performance:
- In-memory metadata cache with persistence
- Processed image cache on disk
- Automatic cache refresh in background
- Version-based cache invalidation
- Configurable cache directories per gallery
Concurrent Processing
Blazing-fast image processing:
- Parallel image processing with rate limiting
- Non-blocking background tasks
- Async I/O throughout the application
- Efficient memory usage with streaming
Pre-generation Options
Optional cache pre-generation for instant loading:
- Generate all image sizes on startup
- Background processing without blocking
- Progress tracking and logging
- Skip already cached images
📝 Content Management
Markdown Support
Rich content with simple markdown files:
- Folder descriptions with _folder.md
- Image captions with [imagename].md
- TOML frontmatter for metadata
- Full CommonMark support
Built-in Blog System
Multiple markdown-based blog systems:
- TOML frontmatter for post metadata
- Automatic HTML generation
- Chronological sorting and pagination
- Subdirectory organization
- Gallery image embedding support
- Automatic reload on file changes
Dynamic Content Updates
Keep content fresh without restarts:
- API endpoints for content refresh
- Automatic periodic refresh options
- Hot-reload for development
- Individual file update detection
🔒 Security & Protection
Copyright Watermarking
Protect your images with intelligent watermarking:
- Automatic text color selection based on background
- Configurable watermark text and positioning
- Applied only to medium-sized images
- Preserves image quality and color profiles
Modern Authentication
Secure, user-friendly authentication system:
- Email-based passwordless login
- WebAuthn/Passkey support for biometric login
- Hardware security key support (YubiKey, etc.)
- Session management with secure cookies
- Rate limiting protection against attacks
- User management CLI tools
Privacy Protection
Control what information is visible to the public:
- Date Privacy: Show only month/year instead of exact timestamps
- Location Privacy: Hide GPS coordinates and location data from public viewers
- Perfect for family galleries, travel photos, or event collections
- Full details remain available to authenticated users
- Per-gallery privacy settings for flexible control
🐳 Deployment Options
Docker Support
Official Docker images for easy containerized deployment:
- Optimized multi-stage builds (~168 MB)
- Security hardening with non-root user
- Environment variable configuration
- Docker Compose examples included
- Kubernetes-ready with health checks
- Support for Docker Swarm deployments
Traditional Deployment
Deploy directly on any Linux server:
- Single static binary - no runtime dependencies
- Systemd service examples provided
- Nginx and Apache reverse proxy configurations
- Built-in Let's Encrypt support via proxy
- Resource-efficient - runs on minimal VPS
🛠️ Developer Features
Template System
Flexible Liquid templating engine:
- Customizable gallery and image templates
- Reusable partial components
- Per-gallery template configuration
- Full Liquid syntax support
- Automatic cache-busting with asset_url filter
Cascading Static Directories
Advanced asset management with precedence:
- Multiple static directories with override support
- Theme customization without modifying defaults
- Perfect for A/B testing and seasonal themes
- Automatic file version tracking
- Cache-busting for all static assets
RESTful API
Comprehensive API endpoints:
- Gallery preview and metadata
- Image serving with size parameters
- Content refresh triggers
- Health check endpoints
Monitoring & Logging
Production-ready observability:
- Structured logging with configurable levels
- HTTP access logs with latency tracking
- Error tracking and reporting
- Performance metrics
Ready to Experience These Features?
Get started with Tenrankai today and build your perfect gallery.