Chuyển đến nội dung

Hướng dẫn

Tự lưu trữ

Bạn có thể chạy workbench Oloproof trên máy chủ của riêng mình: tại chỗ, trong một đám mây riêng, hoặc ở một nhà cung cấp đám mây của Canada. Gói trong deploy/self-hosted/ chạy đúng hai image như oloproof.com (web và worker) cùng PostgreSQL, được kéo theo digest. Dữ liệu của bạn ở lại nơi bạn chạy nó, và không có gì được gửi tới Oloproof.

Yêu cầu

  • Một máy chủ Linux có Docker Engine và plugin Compose. 4 GB bộ nhớ và 2 CPU là đủ cho một nhóm; worker bị giới hạn ở 1,5 GB và web ở 768 MB.
  • Ổ đĩa cho PostgreSQL. Mọi lần chạy bạn đẩy lên đều được lưu ở đó.
  • Một reverse proxy cho HTTPS (Caddyfile.example là một ví dụ chạy được; nginx cũng được).
  • Quyền truy cập ghcr.io/etobicoke/oloproof, hoặc các image đã sao chép vào registry của bạn.

Cài đặt

cd deploy/self-hosted
sh generate-env.sh          # writes .env and fills every secret

Đặt OLOPROOF_WEB_IMAGE, OLOPROOF_WORKER_IMAGE (cả hai là digest ...@sha256:) và OLOPROOF_PUBLIC_URL trong .env, cùng ít nhất một cách đăng nhập: thư điện tử cho tài khoản mật khẩu (OLOPROOF_MAIL_FROM với OLOPROOF_SMTP_URL hoặc OLOPROOF_RESEND_API_KEY) hoặc một nhà cung cấp OAuth. Web từ chối khởi động nếu thiếu. Sau đó khởi động nó:

docker compose --env-file .env up -d
curl -fsS http://127.0.0.1:3000/api/health

Dịch vụ migrate cập nhật cơ sở dữ liệu trước khi web và worker khởi động. Đăng ký theo lời mời, được cấp bằng OLOPROOF_OPERATOR_TOKEN (deploy/README.md, "Signup").

Cấu hình

.env.example liệt kê mọi biến mà web và worker đọc, mỗi biến được đánh dấu là bắt buộc, được tạo sẵn hoặc tùy chọn. Một biến tùy chọn để trống sẽ tắt tính năng của nó. Hãy giữ các bí mật đã tạo: một mật khẩu cơ sở dữ liệu mới sẽ khóa bạn khỏi cơ sở dữ liệu, và một khóa ký mới sẽ bắt đầu một người ký mới. Gói tự lưu trữ không có tính phí, nên mọi workspace có số trường hợp hằng tháng của gói miễn phí; hãy tăng OLOPROOF_FREE_TIER_PUSHED_MONTHLY và OLOPROOF_FREE_TIER_MANAGED_MONTHLY cho nhóm của bạn.

Mặc định không có mạng đi ra

Stack không gửi dữ liệu đo từ xa và không gọi dịch vụ nào của Oloproof. Nó chỉ ra mạng cho những gì bạn bật: thư điện tử (một relay SMTP trong mạng của bạn, hoặc Resend), đăng nhập OAuth, Turnstile, và các nhà cung cấp mô hình mà một workspace lưu khóa. Khi không đặt cái nào, nó chạy mà không có đường ra ngoài. Với một máy chủ cách ly, hãy sao chép ba image vào registry của bạn và trỏ các biến image tới đó. Tài khoản mật khẩu cần thư điện tử, nên trên mạng cách ly hãy đặt OLOPROOF_SMTP_URL tới một relay bên trong mạng đó.

Sao lưu

sh backup.sh /srv/backups/oloproof

backup.sh ghi một pg_dump đã nén vào thư mục bạn chọn. Lên lịch cho nó bằng cron hoặc một bộ hẹn giờ systemd, và tự sao chép thư mục ra khỏi máy chủ. Script hiển thị lệnh khôi phục.

Bản dump không chứa .env, trong khi .env giữ OLOPROOF_CONTENT_KEY và các bí mật được tạo khác: thiếu nó, cơ sở dữ liệu được khôi phục không đọc được nội dung đã mã hóa. Hãy sao lưu .env khi tạo và mỗi lần thay đổi, tách khỏi các bản dump và ngoại tuyến (trình quản lý mật khẩu hoặc ổ đĩa mã hóa), không bao giờ để cạnh chúng.

Nâng cấp

Ghi hai digest của bản phát hành mới vào .env, rồi chạy:

sh upgrade.sh /srv/backups/oloproof

Nó sao lưu, kéo image, di chuyển dữ liệu và khởi động lại web và worker. Hãy chờ một gián đoạn ngắn. Để quay lại, ghi các digest trước đó và khôi phục bản sao lưu nó đã tạo.

Những gì được hỗ trợ

  • Một máy chủ. Không có tính sẵn sàng cao: stack chỉ sẵn sàng bằng máy của nó.
  • Dữ liệu nằm ở nơi bạn chạy nó. Oloproof không giữ dữ liệu nào của bạn.
  • Không có phát hành không gián đoạn. Điều đó chỉ dành cho dịch vụ được lưu trữ.
  • Gói được kiểm tra bởi deploy/self-hosted/check.sh, script khởi động nó dưới tên dự án riêng, chờ /api/health, tải các trang công khai rồi gỡ nó đi.