Multi-Format Support
CBZ, CBR, CB7, PDF, ePub, FB2, and Djvu formats
Atsumeru (集める, Japanese for “to collect”) is a free, open-source, self-hosted media server designed specifically for manga, comics, and light novels enthusiasts. Built with Java and Spring Boot, Atsumeru provides a powerful platform to organize, manage, and read your digital library from anywhere using native client applications.
Whether you have a collection of manga volumes, comic book archives, or light novel series, Atsumeru helps you organize everything into a structured library with rich metadata support, multiple user accounts, and seamless synchronization across devices.
Multi-Format Support
CBZ, CBR, CB7, PDF, ePub, FB2, and Djvu formats
Native Apps
Clients for Windows, Linux, Mac, and Android
Smart Organization
Auto-categories, custom categories, and metacategories
Metadata Management
ComicInfo.xml and book_info.json support with catalog parsing
Atsumeru provides comprehensive features for managing your digital manga and comics library:
| Feature | Description |
|---|---|
| Library Organization | Sort content into series, categories, and custom collections |
| Metadata Import | Auto-import from ComicInfo.xml and book_info.json formats |
| Catalog Parsing | Parse metadata from supported online catalogs |
| Multi-User Support | Create separate accounts with individual history and permissions |
| Reading Progress Sync | Two-way synchronization of reading history across devices |
| Series Download | Download entire series through supported applications |
| REST API | Full API access with Swagger documentation |
| Access Controls | Granular permissions for library access |
| Format | Extension | Notes |
|---|---|---|
| Comic Book ZIP | .cbz | Full support |
| Comic Book RAR | .cbr | Full support |
| Comic Book 7-Zip | .cb7 | Full support |
| Full support | ||
| ePub | .epub | With limitations |
| FictionBook | .fb2 | With limitations |
| DjVu | .djvu | Full support |
Before deploying Atsumeru on Klutch.sh, ensure you have:
Set up your Atsumeru deployment:
Create a Dockerfile for your Atsumeru deployment:
FROM atsumerudev/atsumeru:latest
# Expose the default Atsumeru portEXPOSE 31337
# Create necessary directoriesRUN mkdir -p /library /app/config /app/database /app/cache /app/logs
# Set working directoryWORKDIR /app
# Default command (already set in base image)CMD ["java", "-jar", "Atsumeru.jar"]For enhanced monitoring and reliability:
FROM atsumerudev/atsumeru:latest
# Expose the default Atsumeru portEXPOSE 31337
# Create necessary directoriesRUN mkdir -p /library /app/config /app/database /app/cache /app/logs
# Set permissionsRUN chmod -R 755 /library /app
# Health checkHEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:31337/ || exit 1
WORKDIR /app
CMD ["java", "-jar", "Atsumeru.jar"]Atsumeru requires several directories for proper operation:
| Mount Path | Purpose |
|---|---|
/library | Your manga/comics/light novels files |
/app/config | Server configuration files |
/app/database | SQLite databases for library metadata |
/app/cache | Cover image cache |
/app/logs | Server log files |
Test your Atsumeru setup locally:
services: atsumeru: image: atsumerudev/atsumeru:latest container_name: atsumeru ports: - "31337:31337" volumes: - ./library:/library - atsumeru-config:/app/config - atsumeru-db:/app/database - atsumeru-cache:/app/cache - atsumeru-logs:/app/logs restart: unless-stopped
volumes: atsumeru-config: atsumeru-db: atsumeru-cache: atsumeru-logs:Push your repository to GitHub
git initgit add .git commit -m "Initial Atsumeru configuration"git remote add origin https://github.com/yourusername/atsumeru-server.gitgit push -u origin mainCreate a new app on Klutch.sh
Configure the internal port
Set up persistent storage
| Mount Path | Size | Purpose |
|---|---|---|
/library | 50 GB+ | Your manga/comics library (adjust based on collection size) |
/app/config | 100 MB | Configuration files |
/app/database | 1 GB | Library metadata database |
/app/cache | 5 GB | Cover image cache |
/app/logs | 500 MB | Server logs |
Deploy your application
https://your-app.klutch.shRetrieve admin credentials
After deployment, access your Atsumeru server:
https://your-app.klutch.shAdmin and the generated password from logsUpload your manga/comics to the /library volume:
/library/Manga/Series Name/Volume 01.cbz/library/Comics/Publisher/Series Name/Issue 001.cbz/library/Light Novels/Series Name/Volume 01.epubAfter uploading files:
/library)Connect to your Atsumeru server with official client apps:
Atsumeru (Android)
Full-featured reader with sync support
Atsumeru Manager
Desktop app for Windows/Linux/Mac
AniLabX (Android)
Alternative Android client with Atsumeru support
Configure your client application:
https://your-app.klutch.shAtsumeru provides a comprehensive REST API with Swagger documentation:
Visit https://your-app.klutch.sh/swagger-ui/index.html to explore the API.
# Get authentication tokencurl -X POST "https://your-app.klutch.sh/api/auth/login" \ -H "Content-Type: application/json" \ -d '{"username": "Admin", "password": "your-password"}'# List all seriescurl "https://your-app.klutch.sh/api/series" \ -H "Authorization: Bearer YOUR_TOKEN"
# Get series detailscurl "https://your-app.klutch.sh/api/series/{series-id}" \ -H "Authorization: Bearer YOUR_TOKEN"
# Search librarycurl "https://your-app.klutch.sh/api/search?query=manga+title" \ -H "Authorization: Bearer YOUR_TOKEN"Atsumeru automatically reads ComicInfo.xml metadata from CBZ/CBR files:
<?xml version="1.0" encoding="utf-8"?><ComicInfo> <Series>My Manga Series</Series> <Number>1</Number> <Volume>1</Volume> <Title>Chapter Title</Title> <Summary>Description of the volume...</Summary> <Year>2024</Year> <Month>1</Month> <Writer>Author Name</Writer> <Penciller>Artist Name</Penciller> <Publisher>Publisher Name</Publisher> <Genre>Action, Adventure</Genre> <LanguageISO>en</LanguageISO> <Manga>Yes</Manga></ComicInfo>Atsumeru’s native metadata format with extended fields:
{ "title": "My Manga Series", "alt_title": "Alternative Title", "volume": 1, "chapter": null, "description": "Series description...", "year": 2024, "authors": ["Author Name"], "artists": ["Artist Name"], "publisher": "Publisher Name", "genres": ["Action", "Adventure"], "tags": ["tag1", "tag2"], "language": "en", "country": "JP", "status": "ONGOING", "content_rating": "EVERYONE", "parody": null, "circles": [], "magazines": [], "characters": [], "events": []}Add additional users through the web interface or API:
| Permission | Description |
|---|---|
| Admin | Full server access and configuration |
| User | Read access to assigned libraries |
| Restricted | Limited access with content filtering |
Organize your library with different category types:
Atsumeru automatically groups related content:
Common issues and solutions:
| Issue | Cause | Solution |
|---|---|---|
| Admin password not in logs | Logs cleared or missed | Delete /app/config volume and redeploy |
| Covers not generating | Cache directory issue | Ensure /app/cache volume is mounted |
| Files not appearing | Wrong library path | Verify files are in /library directory |
| Slow scanning | Large library | Be patient; initial scan takes time |
| CBR files not reading | RAR dependencies | Ensure using official Docker image |
View server logs for debugging:
# If running locallydocker logs atsumeru
# Check specific log files in /app/logs volumeForce a library rescan:
Atsumeru caches cover images for faster loading:
/app/cacheThe SQLite database in /app/database contains:
Back up this directory regularly for data protection.
Change Admin Password
Change the auto-generated admin password immediately
HTTPS Enabled
Klutch.sh provides automatic SSL certificates
User Permissions
Create separate accounts for different users
Regular Backups
Back up /app/database and /app/config regularly