Series Management
Full CRUD operations for managing manga and manhwa series with metadata, covers, and chapters.
Overview
The Series Management system provides a complete solution for organizing and managing your scanlation content. It supports multiple genres, tags, status tracking, and more.
Create Series
Add new manga/manhwa with title, description, author, artist, and cover image.
Edit Metadata
Update series information, genres, tags, and status at any time.
Cover Management
Upload and manage cover images with automatic optimization.
Chapter Organization
Organize chapters with volume/chapter numbers and release dates.
Chapter Storage Structure
Important: Chapters are managed directly in S3/GCS
Chapter images are stored in your cloud storage (AWS S3, Google Cloud Storage, or MinIO). You must follow the folder structure below for the template to correctly display chapters.
your-bucket/
├── series/
│ ├── {series-slug}/
│ │ ├── cover.jpg # Main cover image
│ │ ├── banner.jpg # Optional banner image
│ │ └── chapters/
│ │ ├── chapter-1/
│ │ │ ├── 001.jpg # Pages numbered sequentially
│ │ │ ├── 002.jpg
│ │ │ ├── 003.jpg
│ │ │ └── ...
│ │ ├── chapter-2/
│ │ │ ├── 001.jpg
│ │ │ └── ...
│ │ └── chapter-N/
│ │ └── ...
│ └── {another-series-slug}/
│ └── ...Naming Conventions
- Series slug:solo-leveling, tower-of-god (lowercase, hyphen-separated)
- Chapter folders:chapter-1, chapter-2, chapter-100 (must match DB chapter number)
- Page images:001.jpg, 002.png, 003.webp (zero-padded, sequential)
- Supported formats:JPG, PNG, WebP (WebP recommended for smaller file sizes)
Series Data Model
interface Series {
id: string;
title: { en: string; es?: string; pt?: string; ... }; // i18n support
slug: string;
description: { en: string; ... };
author: string;
artist?: string;
coverImage: string;
bannerImage?: string;
status: 'ongoing' | 'completed' | 'hiatus' | 'cancelled';
type: 'manga' | 'manhwa' | 'manhua' | 'webtoon' | 'comic';
contentRating: 'safe' | 'suggestive' | 'mature' | 'explicit';
genres: string[];
tags: string[];
viewCount: number;
bookmarkCount: number;
averageRating: number;
isPublished: boolean;
isFeatured: boolean;
createdAt: Date;
updatedAt: Date;
}Admin Operations
All series management operations are available through the admin dashboard at /admin/series.
- Create new series with full metadata
- Upload and crop cover images
- Manage chapters and volumes
- Set release schedules
- Bulk import from external sources
- Delete series and associated chapters
API Endpoints
Authentication Required: Admin endpoints require the API_SECRET_TOKEN in the Authorization header.
/api/seriesList all series with pagination/api/series/[slug]Get series by slug/api/admin/seriesCreate new series/api/admin/series/[id]Update series/api/admin/series/[id]Delete seriesAdmin API Examples
Create a New Series
POST /api/admin/series
Authorization: Bearer your-api-token
{
"title": { "en": "Solo Leveling" },
"slug": "solo-leveling",
"description": { "en": "The story of Sung Jin-Woo..." },
"author": "Chugong",
"artist": "Dubu",
"coverImage": "series/solo-leveling/cover.jpg",
"status": "completed",
"type": "manhwa",
"genres": ["Action", "Fantasy", "Adventure"],
"tags": ["dungeon", "system", "overpowered"]
}Update Series
PUT /api/admin/series/6507a1b2c3d4e5f6a7b8c9d0
Authorization: Bearer your-api-token
{
"status": "completed",
"isFeatured": true,
"description": { "en": "Updated description..." }
}Create a New Chapter
POST /api/admin/chapters
Authorization: Bearer your-api-token
{
"series": "6507a1b2c3d4e5f6a7b8c9d0",
"number": 150,
"title": "The Final Battle",
"images": [
"series/solo-leveling/chapters/chapter-150/001.jpg",
"series/solo-leveling/chapters/chapter-150/002.jpg",
...
],
"pageCount": 25,
"isPremium": true,
"tokenCost": 3,
"freeAfterDays": 7
}Delete Series
DELETE /api/admin/series/6507a1b2c3d4e5f6a7b8c9d0 Authorization: Bearer your-api-token # Response: 204 No Content