Handleidingen
Zelf hosten
U kunt de Oloproof-workbench op uw eigen server draaien: on-premises, in een private cloud of bij een Canadese cloudprovider. De bundel in deploy/self-hosted/ draait dezelfde twee images als oloproof.com (web en worker) en PostgreSQL, opgehaald op digest. Uw gegevens blijven waar u het draait, en er wordt niets naar Oloproof gestuurd.
Vereisten
- Eén Linux-host met Docker Engine en de Compose-plugin. 4 GB geheugen en 2 CPU's volstaan voor een team; de worker is begrensd op 1,5 GB en de web op 768 MB.
- Schijfruimte voor PostgreSQL. Elke run die u pusht, wordt daar opgeslagen.
- Een reverse proxy voor HTTPS (Caddyfile.example is een werkend voorbeeld; nginx werkt ook).
- Toegang tot ghcr.io/etobicoke/oloproof, of de images gekopieerd naar uw eigen registry.
Installatie
cd deploy/self-hosted
sh generate-env.sh # writes .env and fills every secretStel OLOPROOF_WEB_IMAGE, OLOPROOF_WORKER_IMAGE (beide ...@sha256:-digests) en OLOPROOF_PUBLIC_URL in .env in, en ten minste één manier om in te loggen: e-mail voor wachtwoordaccounts (OLOPROOF_MAIL_FROM met OLOPROOF_SMTP_URL of OLOPROOF_RESEND_API_KEY) of een OAuth-provider. De web weigert te starten zonder een van beide. Start het daarna:
docker compose --env-file .env up -d
curl -fsS http://127.0.0.1:3000/api/healthDe service migrate brengt de database bij voordat de web en de worker starten. Aanmelden gaat op uitnodiging, uitgegeven met OLOPROOF_OPERATOR_TOKEN (deploy/README.md, "Signup").
Configuratie
.env.example somt elke variabele op die de web en de worker lezen, elk gemarkeerd als verplicht, gegenereerd of optioneel. Een lege optionele variabele zet de bijbehorende functie uit. Bewaar de gegenereerde geheimen: een nieuw databasewachtwoord sluit de database buiten, en een nieuwe ondertekeningssleutel begint een nieuwe ondertekenaar. Een zelf gehoste bundel heeft geen facturering, dus elke werkruimte heeft de maandelijkse aantallen cases van het gratis niveau; verhoog OLOPROOF_FREE_TIER_PUSHED_MONTHLY en OLOPROOF_FREE_TIER_MANAGED_MONTHLY voor uw team.
Standaard geen uitgaand netwerk
De stack verstuurt geen telemetrie en roept geen enkele Oloproof-dienst aan. Hij gaat alleen het netwerk op voor wat u aanzet: e-mail (een SMTP-relay binnen uw netwerk, of Resend), OAuth-aanmelding, Turnstile en de modelproviders waarvoor een werkruimte een sleutel opslaat. Zonder een van deze draait hij zonder route naar buiten. Voor een afgeschermde host kopieert u de drie images naar uw eigen registry en laat u de image-variabelen ernaar wijzen. Wachtwoordaccounts hebben e-mail nodig, dus stel op een afgeschermd netwerk OLOPROOF_SMTP_URL in op een relay daarbinnen.
Back-ups
sh backup.sh /srv/backups/oloproofbackup.sh schrijft een gecomprimeerde pg_dump naar de map die u kiest. Plan het met cron of een systemd-timer, en kopieer de map zelf van de host af. Het script toont het herstelcommando.
De dump bevat .env niet, en .env bevat OLOPROOF_CONTENT_KEY en de andere gegenereerde geheimen: zonder dat bestand kan een herstelde database haar versleutelde inhoud niet lezen. Maak een back-up van .env bij het aanmaken en na elke wijziging, los van de dumps en offline (een wachtwoordmanager of versleutelde schijf), nooit ernaast.
Upgrades
Schrijf de twee digests van de nieuwe release in .env en voer dan uit:
sh upgrade.sh /srv/backups/oloproofHet maakt een back-up, haalt op, migreert en herstart de web en de worker. Reken op een korte onderbreking. Om terug te rollen schrijft u de vorige digests en herstelt u de back-up die het maakte.
Wat wordt ondersteund
- Eén host. Er is geen hoge beschikbaarheid: de stack is zo beschikbaar als zijn machine.
- De gegevens staan waar u het draait. Oloproof bewaart geen van uw gegevens.
- Geen releases zonder downtime. Die horen alleen bij de gehoste dienst.
- De bundel wordt gecontroleerd door deploy/self-hosted/check.sh, dat hem onder een eigen projectnaam start, wacht op /api/health, de openbare pagina's ophaalt en hem verwijdert.