---
title: "Vận hành & bảo mật"
url: https://phatdev.net/docs/media-studio/van-hanh
lang: vi
updated: 2026-10-20
alternate:
  en: https://phatdev.net/en/docs/media-studio/van-hanh
markdown: https://phatdev.net/docs/media-studio/van-hanh.md
---

# Vận hành & bảo mật

Thuộc bộ tài liệu: [Media Studio](https://phatdev.net/docs/media-studio.md)

> Chạy nền, truy cập từ xa, lưu trữ tự dọn 30 ngày, bảo mật, health & regression test.

## Chạy nền như app Mac

- Mở **Media Studio.app** (hoặc `start.command`): server chạy như dịch vụ nền của macOS - đóng Terminal, máy ngủ dậy hay crash đều tự chạy lại.
- Icon trên thanh menu (khung vuông có nút play) hiện **nhiệt độ CPU và RAM**. Bấm vào mở bảng trạng thái server và các engine AI, lưới **CPU/GPU %, RAM và nhiệt độ**, mở web và tài liệu, khởi động lại server. Tắt số liệu trên thanh menu bằng mục "Nhiệt độ & RAM trên thanh menu".
- Khởi động lại từ xa: `POST /api/admin/restart` (admin).


<div style="margin:1.6em 0"><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/ui-library-vi-light-3840.webp" target="_blank" rel="noopener" class="pd-th-light" style="display:block;border:0" aria-label="Thư viện: mọi ảnh &amp; video, lọc, tải 2K/4K (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ui-library-vi-light-1920.webp" srcset="/uploads/p/media-studio/ui-library-vi-light-960.webp 960w, /uploads/p/media-studio/ui-library-vi-light-1920.webp 1920w, /uploads/p/media-studio/ui-library-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 760px" width="3840" height="2160" alt="Thư viện: mọi ảnh &amp; video, lọc, tải 2K/4K" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><a href="https://phatdev.net/uploads/p/media-studio/ui-library-vi-dark-3840.webp" target="_blank" rel="noopener" class="pd-th-dark" style="display:block;border:0" aria-label="Thư viện: mọi ảnh &amp; video, lọc, tải 2K/4K (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ui-library-vi-dark-1920.webp" srcset="/uploads/p/media-studio/ui-library-vi-dark-960.webp 960w, /uploads/p/media-studio/ui-library-vi-dark-1920.webp 1920w, /uploads/p/media-studio/ui-library-vi-dark-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 760px" width="3840" height="2160" alt="Thư viện: mọi ảnh &amp; video, lọc, tải 2K/4K" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Thư viện: mọi ảnh &amp; video, lọc, tải 2K/4K</figcaption></figure></div>

## Truy cập từ xa

- Truy cập qua HTTPS tại `media.phatdev.net`, cần đăng nhập.
- Link chia sẻ ảnh công khai dạng `/s/:id`.

## Lưu trữ 30 ngày

- File không được xem/tải/chia sẻ trong **30 ngày** sẽ được chuyển sang kho lưu trữ riêng và xoá khỏi máy chạy app; thumbnail giữ lại nên thư viện vẫn thấy ảnh.
- Chỉ xoá khi đã **xác nhận trực tiếp ở kho lưu trữ** có bản đúng kích thước.
- Mở lại ảnh/video đã lưu trữ → **tự kéo về** (~1 giây), kể cả khi dùng trong render video, chấm điểm, xuất 2K/4K, nén.

## Bảo mật

- Toàn bộ API **fail-closed**, kiểm key trước mọi route tạo nội dung; cổng đăng nhập so khớp đường dẫn **không phân biệt hoa/thường**.
- Media gắn với tài khoản tạo ra; người dùng khác không thấy, không xoá được.
- Chặn SSRF và giới hạn dung lượng khi tải ảnh từ link; file cấu hình quyền `0600`; giới hạn số lần đăng nhập sai.
- Engine AI chỉ được **đọc trong thư mục làm việc riêng** - trang web lạ đưa vào kịch bản không thể khiến AI đọc file cấu hình.

## Theo dõi & kiểm thử

- `GET /api/v1/health`: phiên bản, engine chính đang dùng, hạn mức các engine còn bao lâu reset, banner có sẵn sàng không.
- Log server có giờ Việt Nam; mọi lỗi API ghi dạng `[api-err] <loại> <mã> sau Ns …` để truy được nguyên nhân.
- **Regression test** (`node tests/regression.mjs`): 48 checks, **không tốn hạn mức tạo ảnh**, chạy sau mỗi lần sửa server. Có thêm test đồng bộ giọng-hình cho video.
