Init Manga v1.7.0 – Self-Hosted Storage với Init Uploader

Phiên bản Init Manga 1.7.0 mang đến một trong những nâng cấp quan trọng nhất trong hệ sinh thái Init: khả năng lưu trữ ảnh chương trên chính máy chủ của bạn. Bên cạnh Wasabi và Local, giờ đây bạn có thể tự xây dựng hạ tầng lưu trữ riêng thông qua Init Uploader – giải pháp self-hosted linh hoạt, bảo mật và tối ưu chi phí.

Init Manga v1.7.0 – Self-Hosted Storage với Init Uploader

Giới thiệu Init Uploader

Init Uploader là hệ thống lưu trữ tự host được phát triển riêng cho Init Manga, giúp bạn quản lý toàn bộ ảnh chương ngay trên máy chủ của mình mà không cần phụ thuộc vào bên thứ ba. Tất cả quá trình upload, xác thực và trả kết quả đều diễn ra trực tiếp giữa website và server của bạn.

Giải pháp này được thiết kế cho những nhà quản trị muốn kiểm soát toàn diện dữ liệu và tốc độ truy cập. Init Uploader hoạt động song song với các hệ thống lưu trữ khác, mang đến một lựa chọn thứ ba – an toàn, linh hoạt và hoàn toàn độc lập.

Lợi ích nổi bật

  • Tự quản lý dữ liệu: Lưu trữ toàn bộ ảnh chương trên server riêng hoặc VPS của bạn.
  • Bảo mật cao: Hỗ trợ xác thực bằng API Key hoặc HMAC Signature với giới hạn thời gian.
  • Hiệu năng ổn định: Giảm độ trễ, tận dụng hạ tầng sẵn có và CDN nội bộ.
  • Chi phí tối ưu: Không phụ thuộc vào chi phí storage của bên thứ ba.
  • Tích hợp liền mạch: Init Uploader được hỗ trợ sẵn trong Init Manga, chỉ cần bật lên là hoạt động.

Cài đặt Init Uploader trên server

Tạo file init-uploader.php trên máy chủ của bạn (cùng cấp với thư mục public) và thêm đoạn cấu hình sau:

// ==================== CẤU HÌNH HỆ THỐNG ====================

// Cấu hình xác thực
define('API_KEY',          'your-secret-api-key-here');  // Khóa API cho xác thực tĩnh
define('SECRET_KEY',       'your-secret-hmac-key-here'); // Khóa bí mật dùng cho chữ ký HMAC
define('USE_HMAC_AUTH',    false);                       // true = dùng HMAC, false = dùng API key tĩnh
define('HMAC_TIME_WINDOW', 300);                         // Khoảng thời gian tối đa lệch timestamp (tính bằng giây, 5 phút)

// Cấu hình đường dẫn
define('UPLOAD_DIR',       __DIR__ . '/uploads');        // Thư mục lưu trữ ảnh upload
define('BASE_URL',         'https://your-domain.com');   // URL gốc của máy chủ

// Giới hạn upload
define('MAX_FILE_SIZE', 10 * 1024 * 1024); // Kích thước file tối đa (10MB)
define('ALLOWED_EXTENSIONS', ['jpg', 'jpeg', 'png', 'gif', 'webp']); // Các định dạng file được phép

// Cấu hình xác thực định dạng ảnh
define('STRICT_IMAGE_VALIDATION', false); // true = kiểm tra MIME nghiêm ngặt, false = cho phép linh hoạt hơn

// Cấu hình hệ thống
define('ENABLE_LOGGING', true); // Bật/tắt ghi log hoạt động
define('REQUIRE_HTTPS', true);  // Bắt buộc kết nối HTTPS

Hãy đảm bảo thư mục /uploads có quyền ghi thích hợp (chmod 755 hoặc 775). Nếu bạn sử dụng CDN hoặc Cloudflare, có thể đặt script này trên subdomain riêng để tách tải, ví dụ cdn.your-domain.com.

Cấu hình PHP khuyến nghị

Để đảm bảo Init Uploader hoạt động ổn định khi upload nhiều ảnh hoặc file dung lượng lớn, bạn nên điều chỉnh các giới hạn PHP như sau:

; php.ini hoặc .user.ini

; Tăng giới hạn dung lượng file upload
upload_max_filesize = 128M
post_max_size = 128M

; Tăng thời gian xử lý tối đa (nếu upload nhiều ảnh)
max_execution_time = 300
max_input_time = 300

; Cho phép bộ nhớ lớn hơn (nếu xử lý ảnh hoặc log nhiều)
memory_limit = 512M

Nếu bạn dùng hosting chia sẻ (shared hosting), có thể đặt đoạn cấu hình này trong file .user.ini hoặc .htaccess (nếu Apache), ví dụ:

# .htaccess
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value max_execution_time 300
php_value memory_limit 512M

Cấu hình Nginx gợi ý

Nếu bạn dùng Nginx, hãy thêm đoạn cấu hình sau để cho phép upload file lớn và tối ưu phản hồi API:

server {
    server_name your-domain.com;
    root /var/www/your-domain.com/public;

    # Giới hạn dung lượng upload
    client_max_body_size 128M;

    # Tối ưu thời gian kết nối
    keepalive_timeout  30;
    send_timeout       120;

    # Bảo vệ script Init Uploader
    location /init-uploader.php {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock; # tuỳ theo phiên bản PHP
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_read_timeout 300;
    }

    # Tối ưu cache ảnh
    location /uploads/ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }
}

Với cấu hình này, Init Uploader có thể xử lý upload ổn định cho các chapter lớn hoặc tập ảnh dung lượng cao mà không gặp lỗi 413 Request Entity Too Large hay 504 Gateway Timeout. Điều này đặc biệt hữu ích nếu bạn upload các tập truyện dài hoặc hình ảnh độ phân giải cao.

Nếu bạn triển khai trên VPS hoặc server riêng, nên kích hoạt OPcacheFastCGI caching để đạt hiệu năng tối đa khi upload và phục vụ ảnh cho người đọc.

Cách bật Init Uploader trong Init Manga

Sau khi cập nhật lên phiên bản 1.7.0, bạn có thể kích hoạt Init Uploader trong trang quản trị:

  1. Truy cập Init Manga → Integrations → Init Uploader.
  2. Bật tùy chọn Enable Init Uploader.
  3. Nhập Uploader Endpoint URL – đường dẫn đến file PHP xử lý, ví dụ: https://your-domain.com/init-uploader.php.
  4. Chọn chế độ xác thực: Static API Key hoặc HMAC.
  5. Điền thông tin khóa và đường dẫn lưu trữ mặc định.

Sau khi lưu lại, bạn có thể nhấn nút Test Init Uploader để kiểm tra kết nối. Nếu kết quả hiển thị “success”, hệ thống đã sẵn sàng để sử dụng.

Cấu hình mẫu trong Init Manga

Trường Giá trị mẫu
Enable Init Uploader Bật
Uploader Endpoint URL https://cdn.your-domain.com/init-uploader.php
Auth Mode Static API Key
API Key your-secret-api-key-here
Default Upload Path Template manga/{manga_id}/chapters/{chapter_id}

Trải nghiệm upload mượt mà hơn

Trong giao diện Chapter Editor, giờ đây bạn có ba lựa chọn upload: Local, Wasabi, và Init Uploader. Tất cả được thiết kế thống nhất với một thanh tiến trình nhẹ hiển thị phần trăm ngay phía sau nút, giúp bạn theo dõi quá trình upload mà không bị gián đoạn. Không cảnh báo, không pop-up, không reload – chỉ sự mượt mà tuyệt đối.

So sánh các phương thức lưu trữ

Hiện tại, Init Manga hỗ trợ ba phương thức upload và lưu trữ: Local Storage, WasabiInit Uploader. Mỗi phương thức phù hợp với nhu cầu và hạ tầng khác nhau, giúp bạn chọn giải pháp tối ưu nhất cho hệ thống của mình.

Phương thức Phù hợp nhất cho Ưu điểm Lưu ý
Local Storage Người mới bắt đầu hoặc website nhỏ
  • Không cần cấu hình, hoạt động ngay lập tức
  • Không phụ thuộc bên thứ ba
  • Phù hợp cho môi trường thử nghiệm hoặc lượng truy cập thấp
  • Tốn dung lượng lưu trữ của máy chủ WordPress
  • Cần sao lưu thủ công
  • Khả năng mở rộng hạn chế
Wasabi Nền tảng hoặc nhóm phát triển đang mở rộng
  • Lưu trữ đám mây tương thích S3, tối ưu chi phí
  • Tích hợp CDN nhanh và ổn định
  • Hỗ trợ upload hàng loạt bằng file ZIP cho nhiều chương
  • Cần tài khoản Wasabi và cấu hình bucket trước
  • Phụ thuộc vào hạ tầng bên ngoài
Init Uploader Người dùng nâng cao, có server riêng
  • Tự host hoàn toàn, đảm bảo riêng tư tuyệt đối
  • Toàn quyền kiểm soát dữ liệu, hạ tầng và hiệu năng
  • Tích hợp dễ dàng với CDN hoặc hệ thống cache sẵn có
  • Cần VPS hoặc máy chủ riêng để triển khai
  • Phải tự cấu hình endpoint, API và quyền truy cập
  • Tính năng upload ZIP nhiều chương sẽ có trong phiên bản kế tiếp

Tóm tắt nhanh:

  • Chọn Local – khi mới bắt đầu, muốn giảm chi phí và có thể tự sao lưu.
  • Chọn Wasabi – khi cần mở rộng quy mô, tối ưu chi phí và tốc độ CDN.
  • Chọn Init Uploader – khi cần quyền kiểm soát dữ liệu tuyệt đối, hiệu năng cao và lưu trữ tự chủ.

Kết luận

Phiên bản Init Manga 1.7.0 không chỉ mang lại hiệu năng tối ưu hơn mà còn trao cho bạn quyền tự do hoàn toàn trong việc quản lý dữ liệu. Với Init Uploader, bạn có thể lưu trữ, bảo vệ và kiểm soát toàn bộ nội dung của mình mà không bị giới hạn bởi nền tảng thứ ba. Đây là bước tiến quan trọng giúp Init Manga trở thành hệ thống đọc truyện linh hoạt, mạnh mẽ và thực sự thuộc về bạn.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...