Bỏ qua, đến nội dung
← Tất cả bài viết

Chạy tapeshelf của riêng bạn

tapeshelf là mã nguồn mở theo giấy phép AGPL-3.0, và ứng dụng đứng sau tapeshelf.com chính là ứng dụng bạn sẽ chạy được trên máy chủ của mình. Kho mã công khai và hướng dẫn cài đặt chưa ra mắt. Trong lúc chờ, đây là việc chạy một máy chủ riêng sẽ trông như thế nào, để bạn quyết định nó có hợp với mình không và lên kế hoạch cho máy chủ.

Một stack duy nhất

Một máy chủ tapeshelf là một stack Docker Compose duy nhất:

browser ──HTTPS──► Caddy ─── the web app, security headers
                     └── /api, /ws ──► api ──► Postgres, Redis
                                       worker (ffmpeg) ──► Postgres, Redis
browser ──► S3-compatible storage: uploads, video segments, images
  • Caddy phục vụ ứng dụng web và chuyển tiếp lưu lượng API và WebSocket. Nó tự lấy và gia hạn chứng chỉ Let’s Encrypt. Nếu bạn đã có reverse proxy, Caddy có thể đứng sau nó mà không cần TLS.
  • api là mọi thứ ứng dụng làm: tài khoản, kệ, kiểm tra quyền truy cập, yêu cầu và trao đổi, liên kết tạm thời, và cấp khóa video.
  • worker là cùng mã đó, chạy thành tiến trình thứ hai, trong một image có ffmpeg. Nó làm sạch và chuyển đổi video tải lên, mã hóa các bản để phát trực tuyến, tạo khung hình và bản xem trước, dựng các bản chỉnh sửa, và gửi email cùng thông báo.
  • Postgres chứa dữ liệu. Redis chứa hàng đợi công việc và bộ nhớ đệm ngắn hạn.
  • Một container migrate chạy một lần mỗi khi khởi động. Nó áp dụng các bản di chuyển cơ sở dữ liệu, tạo tài khoản quản trị từ cài đặt của bạn, và thiết lập các bucket: cho phép đọc công khai nhưng không liệt kê với hình ảnh, quy tắc dọn dẹp các lượt tải lên bị bỏ dở, và CORS cho tên miền của bạn.
  • Dịch vụ backup xuất cơ sở dữ liệu vào bucket của bạn mỗi ngày một lần và giữ 14 bản gần nhất.

Video không bao giờ đi qua API. Trình duyệt tải thẳng lên bộ lưu trữ và phát các phân đoạn thẳng từ đó, nên bộ lưu trữ cần một địa chỉ riêng mà trình duyệt truy cập được. Đây là phần duy nhất cần suy nghĩ một chút. Bạn có thể trỏ tapeshelf tới một dịch vụ tương thích S3 bạn đang dùng, hoặc chạy bộ lưu trữ trong cùng stack.

Bạn sẽ cần gì

  • Một máy chủ Linux có Docker và plugin Compose. Hai lõi CPU và 4 GB RAM là mức tối thiểu hợp lý.
  • Dung lượng đĩa cho tệp tạm của worker: khoảng hai lần rưỡi video lớn nhất, cho mỗi video được xử lý song song.
  • Một tên miền trỏ tới máy chủ, mở cổng 80 và 443.
  • Một tài khoản SMTP để gửi email: xác nhận, đặt lại mật khẩu và thông báo.
  • Không bắt buộc: OAuth client Google của riêng bạn cho “Đăng nhập bằng Google”, và khóa Cloudflare Turnstile cho captcha khi đăng ký lặp lại và với khách mới.

Chuyển đổi video là phần nặng. Video H.264 tối đa 1080p vượt qua thêm vài bước kiểm tra chỉ cần đóng gói lại, mất vài giây. Chuyển đổi đầy đủ trên một máy chủ nhỏ hai lõi mất khoảng bằng thời lượng video, đôi khi lâu hơn. Người tải lên thấy tiến độ trực tiếp và vẫn dùng trang web bình thường.

Bí mật bạn không được làm mất

Mọi cài đặt nằm trong một tệp môi trường: mật khẩu cơ sở dữ liệu, bí mật phiên, thông tin truy cập bộ lưu trữ, SMTP, và khóa chủ dùng để tạo ra khóa mã hóa của từng video. Bài tapeshelf mã hóa video thế nào giải thích điều này. Ở chế độ chạy thật, API từ chối khởi động với các giá trị mẫu từ tệp ví dụ.

Hãy cất khóa chủ vào trình quản lý mật khẩu ngay khi tạo ra nó. Nếu mất, không video nào đã tải lên phát được nữa, và khôi phục cơ sở dữ liệu cũng không giúp được gì. Mã từ ứng dụng xác thực cho đăng nhập hai bước cũng ngừng hoạt động, vì khóa bí mật của chúng được niêm phong bằng khóa chủ.

Khác gì so với tapeshelf.com

Một máy chủ tự lưu trữ không có gói và không có thanh toán. Không có Free hay Pro, không có thẻ Gói, không có lời mời nâng cấp và không có trang chờ trước khi tải xuống. Cụ thể:

  • Không giới hạn trừ khi bạn tự đặt. Mặc định không có giới hạn dung lượng video hay dung lượng kệ. Với vai trò quản trị viên, bạn có thể đặt một giới hạn cho mỗi video và một cho mỗi kệ, như nhau với mọi người.
  • Tải xuống bắt đầu ngay, ở tốc độ tối đa, thẳng từ bộ lưu trữ.
  • Những gì là Pro trên tapeshelf.com đều có cho mọi người. Đó là trình chỉnh sửa video, trang ẩn và mật khẩu cho liên kết tạm thời. Video đã xóa có thể khôi phục trong 90 ngày.
  • Chống lạm dụng vẫn còn. Giới hạn yêu cầu hằng ngày (mặc định 30 video, có thể điều chỉnh) và giới hạn tần suất của API bảo vệ máy chủ, nên chúng được giữ lại.
  • Tên của bạn, quy định của bạn. Máy chủ có tên và email liên hệ riêng, và hiển thị điều khoản cùng chính sách quyền riêng tư từ các tệp bạn cung cấp. Khách truy cập trước tiên sẽ thấy một trang đăng nhập đơn giản.

Mọi thứ khác vẫn là cùng một ứng dụng: kệ với chồng video và danh mục, tải lên có thể tiếp tục, bản xem trước 16 khung hình, phát trực tuyến mã hóa, yêu cầu và trao đổi nhiều lượt, trao đổi với khách, liên kết tạm thời, bạn bè và trò chuyện, đăng nhập hai bước (bắt buộc với quản trị viên), thông báo, ứng dụng bằng 20 ngôn ngữ, báo cáo, và trang quản trị.

Hãy nhớ rằng mỗi máy chủ là một hòn đảo riêng. Người dùng trên đó chỉ chia sẻ và trao đổi với nhau, không bao giờ với tài khoản trên tapeshelf.com hay trên các máy chủ khác.

Cập nhật và sao lưu

Cập nhật nghĩa là kéo phiên bản mới về và khởi động lại stack. Các bản di chuyển được áp dụng khi khởi động, và video đang xử lý dở sẽ được xử lý lại từ đầu. Dù vậy, hãy sao lưu trước một bản cập nhật lớn.

Bản xuất cơ sở dữ liệu hằng ngày tự động vào bucket của bạn. Video vốn đã nằm trong bộ lưu trữ, và khóa của chúng được tạo từ khóa chủ. Vì vậy ba thứ cần giữ an toàn là bucket, các bản xuất cơ sở dữ liệu và chiếc khóa duy nhất đó.

Giấy phép, trong một đoạn

Bạn có thể chạy tapeshelf, nghiên cứu và thay đổi nó. Nếu bạn sửa đổi nó và cho người khác dùng phiên bản đã sửa qua mạng, AGPL yêu cầu bạn cung cấp cho họ mã nguồn của phiên bản đó. Chạy nguyên trạng, cho bản thân, gia đình hay bạn bè, thì không cần gì hơn ngoài việc giữ kèm giấy phép.

Khi nào

Chúng tôi sẽ sớm công bố kho mã, image container dựng sẵn và hướng dẫn cài đặt, gồm bộ lưu trữ, email, sao lưu và xử lý sự cố. Trang tự lưu trữ và blog này sẽ thông báo ngay hôm đó, và RSS là cách dễ nhất để không bỏ lỡ. Trong lúc chờ, tapeshelf.com là cách nhanh nhất để dùng thử ứng dụng, và trang bảng giá có đầy đủ chi tiết.