Langsung ke konten

Panduan

Hosting mandiri

Anda dapat menjalankan workbench Oloproof di server Anda sendiri: di lokasi sendiri, di cloud privat, atau di penyedia cloud Kanada. Bundel di deploy/self-hosted/ menjalankan dua image yang sama dengan oloproof.com (web dan worker) serta PostgreSQL, ditarik berdasarkan digest. Data Anda tetap di tempat Anda menjalankannya, dan tidak ada yang dikirim ke Oloproof.

Persyaratan

  • Satu host Linux dengan Docker Engine dan plugin Compose. Memori 4 GB dan 2 CPU cukup untuk satu tim; worker dibatasi 1,5 GB dan web 768 MB.
  • Disk untuk PostgreSQL. Setiap run yang Anda kirim disimpan di sana.
  • Reverse proxy untuk HTTPS (Caddyfile.example adalah contoh yang berfungsi; nginx juga bisa).
  • Akses ke ghcr.io/etobicoke/oloproof, atau image yang disalin ke registry Anda sendiri.

Instalasi

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

Atur OLOPROOF_WEB_IMAGE, OLOPROOF_WORKER_IMAGE (keduanya digest ...@sha256:) dan OLOPROOF_PUBLIC_URL di .env, serta setidaknya satu cara masuk: email untuk akun kata sandi (OLOPROOF_MAIL_FROM dengan OLOPROOF_SMTP_URL atau OLOPROOF_RESEND_API_KEY) atau penyedia OAuth. Web menolak berjalan tanpa salah satunya. Lalu jalankan:

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

Layanan migrate memperbarui basis data sebelum web dan worker berjalan. Pendaftaran melalui undangan, yang diterbitkan dengan OLOPROOF_OPERATOR_TOKEN (deploy/README.md, "Signup").

Konfigurasi

.env.example mencantumkan setiap variabel yang dibaca web dan worker, masing-masing ditandai wajib, dihasilkan, atau opsional. Variabel opsional yang kosong mematikan fiturnya. Simpan rahasia yang dihasilkan: kata sandi basis data yang baru mengunci Anda dari basis data, dan kunci tanda tangan yang baru memulai penanda tangan baru. Bundel yang di-host mandiri tidak memiliki penagihan, jadi setiap workspace mendapat jumlah kasus bulanan tingkat gratis; naikkan OLOPROOF_FREE_TIER_PUSHED_MONTHLY dan OLOPROOF_FREE_TIER_MANAGED_MONTHLY untuk tim Anda.

Tanpa jaringan keluar secara bawaan

Stack ini tidak mengirim telemetri dan tidak memanggil layanan Oloproof apa pun. Ia hanya menjangkau jaringan untuk yang Anda aktifkan: email (relay SMTP di dalam jaringan Anda, atau Resend), masuk dengan OAuth, Turnstile, dan penyedia model yang kuncinya disimpan oleh sebuah workspace. Tanpa satu pun dari itu, ia berjalan tanpa rute keluar. Untuk host yang terisolasi, salin ketiga image ke registry Anda sendiri dan arahkan variabel image ke sana. Akun kata sandi membutuhkan email, jadi di jaringan terisolasi atur OLOPROOF_SMTP_URL ke relay di dalamnya.

Cadangan

sh backup.sh /srv/backups/oloproof

backup.sh menulis pg_dump terkompresi ke direktori yang Anda pilih. Jadwalkan dengan cron atau timer systemd, dan salin sendiri direktori itu ke luar host. Skrip menampilkan perintah pemulihan.

Dump tidak memuat .env, padahal .env menyimpan OLOPROOF_CONTENT_KEY dan rahasia lain yang dibuat: tanpanya basis data yang dipulihkan tidak dapat membaca kontennya yang terenkripsi. Cadangkan .env saat dibuat dan setiap kali diubah, terpisah dari dump dan secara offline (pengelola kata sandi atau drive terenkripsi), jangan pernah di sampingnya.

Pembaruan

Tulis dua digest rilis baru ke .env, lalu jalankan:

sh upgrade.sh /srv/backups/oloproof

Skrip ini mencadangkan, menarik, memigrasi, dan memulai ulang web dan worker. Akan ada gangguan singkat. Untuk kembali, tulis digest sebelumnya dan pulihkan cadangan yang dibuatnya.

Yang didukung

  • Satu host. Tidak ada ketersediaan tinggi: stack hanya setersedia mesinnya.
  • Data berada di tempat Anda menjalankannya. Oloproof tidak menyimpan data Anda sama sekali.
  • Tidak ada rilis tanpa waktu henti. Itu hanya untuk layanan yang di-host.
  • Bundel diperiksa oleh deploy/self-hosted/check.sh, yang menjalankannya dengan nama proyeknya sendiri, menunggu /api/health, mengambil halaman publik, lalu menghapusnya.