Naar de inhoud
Zelf hostenServer op aanvraag beschikbaar

Draai de server waar je al werkt

De Crunu-server is bewust blind. Op app.crunu.com of op infrastructuur die je zelf beheert, bewaart hij versleutelde data, publieke sleutels en ondertekende records, en heeft hij geen sleutel die ook maar één waarde ontsleutelt.

Voorbeeld. Kiteline is een fictief bedrijf.

Wat je eerst nodig hebt

  • 1Node.js 24 en de servercodeDe beheertools server-init, doctor en crunu-server draaien erop. De server is geen publieke download: mail naar support@crunu.com om hem te krijgen.
  • 2Een adres dat je houdtInloghandtekeningen, deellinks, passkeys en agents zijn gebonden aan het domein van de server, dus dat kan later niet veranderen.
  • 3Een veilige plek voor .envEen wachtwoordmanager volstaat. Het bestand bevat SERVER_KEY, het belangrijkste geheim van de server.

Eén keer per server

Installeren

Vijf stappen brengen je van een lege machine of cloudaccount naar een draaiende server met zijn eerste eigenaar.

  1. 1Bepaal wie de server beheert

    Versleuteling gebeurt in de browser en in de agent crunu, nooit op de server. De keuze tussen app.crunu.com en een eigen server gaat dus over wie hem beheert en wie zijn metadata ziet. In beide gevallen kan niemand aan de serverkant je waarden lezen.

    • app.crunu.com: Crunu draait de server op Cloudflare Workers met een D1-database, gratis tijdens de vroege toegang
    • Je eigen server: jij beheert hem, jij betaalt je platformprovider, en alleen jij ziet zijn metadata
    • Metadata zijn de namen van organisaties, projecten, omgevingen en machines, e-mailadressen, de auditlog, en de grootte en het tijdstip van versies
    Voorbeeld. Kiteline is een fictief bedrijf.
  2. 2Genereer de instellingen van de server

    server-init schrijft een .env-bestand met een nieuwe SERVER_KEY, een eenmalige BOOTSTRAP_TOKEN voor de eerste eigenaar en een CRON_SECRET. Alleen jouw gebruiker kan het bestand lezen.

    • Bewaar meteen een kopie in je wachtwoordmanager
    • Raak je SERVER_KEY kwijt, dan wordt iedereen uitgelogd en werken deellinks niet meer. De data van omgevingen blijft bewaard
  3. 3Kies een van vijf platforms

    Elk platform draait dezelfde server met hetzelfde databaseschema, en de webapp zit erin ingebouwd. Elk deployscript controleert .env met de code die de server bij het opstarten gebruikt, dus een verkeerde instelling stopt de deploy met een duidelijke melding.

    • Docker op je eigen server: Caddy regelt TLS-certificaten, en Cloudflare Tunnel werkt als je geen open poorten wilt
    • Cloudflare Workers: Free volstaat voor een proef, maar een team heeft Workers Paid nodig, want Free geeft elk verzoek 10 ms CPU-tijd
    • Vercel: previews krijgen een eigen database en serversleutel, en op het Hobby-abonnement draait de opschoning hooguit één keer per dag
    • AWS App Runner alleen in AWS-accounts die het al gebruiken: AWS heeft het gesloten voor nieuwe klanten, en Crunu heeft geen script voor Amazon ECS Express Mode
    Voorbeeld. Kiteline is een fictief bedrijf.
  4. 4Deploy met het script van het platform

    Eén opdracht per platform bouwt en deployt de server. Secrets bereiken het platform via stdin of een bestand dat alleen jij kunt lezen, nooit via argumenten of uitvoer van een opdracht. De server voert databasemigraties zelf uit bij het opstarten.

    • Hetzelfde script installeert de eerste versie en elke update
    • Op Cloudflare gaan code en secrets samen uit als één versie, dus een mislukte deploy verandert niets
  5. 5Maak de eerste eigenaar aan

    Open het adres van de server en vul de bootstrapsleutel uit .env in. Je account- en organisatiesleutels worden in je browser aangemaakt, en de sleutel werkt na dit ene gebruik niet meer. Bewaar daarna je Emergency Kit, maak een herstelcode aan en zet een tweede factor aan.

    • Zonder de Emergency Kit en je wachtwoord kan een nieuw apparaat niet inloggen
    • Alle anderen komen erbij via een uitnodiging

Elke dag

Draaien

Draait hij eenmaal, dan houden drie gewoontes de server gezond: een controle na elke deploy, bewaking en een dagelijkse back-up.

  1. 6Controleer de deployment met doctor

    doctor controleert een draaiende server van buitenaf: status, TLS en verloop van het certificaat, beveiligingsheaders, compressie van API-antwoorden, de serverklok, de agentrelease, migraties, opschoning en het clientadres achter proxy’s.

    • Een totaaloordeel en een exitcode, zodat het in cron en CI past
    • --json geeft machineleesbare uitvoer
  2. 7Houd status, metrics en waarschuwingen in de gaten

    GET /v2/health werkt met uptimecheckers zoals UptimeRobot of Better Stack. GET /v2/status met een beheertoken geeft metrics als JSON of in Prometheus-formaat, zonder waarden en zonder e-mailadressen. Waarschuwingen bereiken je team via een ondertekende webhook of per e-mail.

    • Slack, Microsoft Teams en PagerDuty koppel je via hun inkomende webhooks
    • Op Cloud Run en App Runner draait de opschoning alleen bij verkeer, dus waarschuwingen die op de toestand afgaan, kunnen te laat komen
  3. 8Maak back-ups naar elke opslag die je wilt

    crunu-server export schrijft de hele database naar één archief. Er staan geen onversleutelde waarden in, dus je kunt het bij elke provider bewaren. Houd het .env-bestand er apart van, in je wachtwoordmanager.

    • Exporteer elke dag en bewaar 30 dagen. De server heeft geen ingebouwde planner, en de handleiding voor back-ups geeft een kant-en-klare cronregel voor Docker
    • Controleer elke maand een kopie, of beter: zet die terug in een testdatabase
    • Een herstel draait alles na de kopie terug, en apparaten die nieuwere data hebben gezien, weigeren de oudere staat tot je ze reset

Als het nodig is

Wijzigen

Verhuizen, de serversleutel roteren en bijwerken doe je met de deployscripts en crunu-server die je al hebt.

  1. 9Verhuis naar een ander platform met één archief

    Exporteer de database, controleer het archief, importeer het in een lege database op het nieuwe platform, deploy daar met dezelfde .env en zet dan DNS om. Elk van de zes opstellingen kan naar elke andere verhuizen, in beide richtingen.

    • Houd dezelfde SERVER_KEY en hetzelfde adres. Alleen het DNS-record verandert
    • Machines blijven draaien op de variabelen die ze al hebben voor hun lease, tot 24 uur
    • Houd het oude platform een week aan. Teruggaan is een DNS-wijziging
    Voorbeeld. Kiteline is een fictief bedrijf.
  2. 10Roteer de serversleutel zonder dat iemand wordt uitgelogd

    Tijdens een rotatie blijft de vorige sleutel werken, worden tokens bij gebruik opnieuw gehasht met de nieuwe sleutel, en versleutelt rotate-key TOTP-geheimen en meldingskanalen opnieuw. Mensen blijven ingelogd en deellinks blijven openen. De data van omgevingen wordt nooit met deze sleutel versleuteld.

    • Vier stappen: new-server-key, deploy, rotate-key, drop-previous-key
    • Roteer als .env mogelijk is gezien, na een verhuizing, of eens per jaar
  3. 11Bijwerken zonder aparte migratiestap

    Een update gebruikt hetzelfde deployscript als de eerste installatie, en de server voert migraties uit bij het opstarten. Migraties voegen alleen toe, en uitgebrachte migraties zijn beschermd met checksums, dus je kunt de code terugdraaien zonder de database terug te draaien.

    • Webreleases zijn ondertekend, en de server levert de handtekening mee, zodat een uitgerolde site ertegen kan worden gecontroleerd
    • Terugdraaien naar een versie onder 6.0 kan niet

Vragen over zelf hosten

Wat beheerders vragen voordat ze hun eigen server draaien.

Nog een vraag? Mail naar support@crunu.com.

Is app.crunu.com dezelfde software die ik zelf kan hosten?

Ja. app.crunu.com draait dezelfde Crunu-server, uitgerold op Cloudflare Workers met een D1-database.

Kunnen de mensen die app.crunu.com beheren mijn secrets lezen?

Nee. De server bewaart versleutelde data en heeft geen sleutel om die te ontsleutelen. Als beheerder ziet Crunu wel metadata: de namen van organisaties, projecten, omgevingen en machines, e-mailadressen, de auditlog, en de grootte en het tijdstip van elke versie. Eén risico geldt voor elke kluis in de browser: een overgenomen server zou een aangepaste webapp kunnen leveren die je wachtwoord en Secret Key ziet als je inlogt. Ondertekende releases en een strikte Content Security Policy verkleinen dat risico, en de pagina met beperkingen legt de rest uit.

Kan ik later van app.crunu.com naar mijn eigen server overstappen?

Niet in één stap. Het archief dat een server tussen platforms verhuist, wordt gemaakt van de hele database van de server, en op app.crunu.com heeft alleen de beheerder daar toegang toe. Je kunt wel op elk moment elke omgeving die je kunt lezen als .env-bestand exporteren of een offline kopie downloaden, en die bestanden daarna aan je eigen server toevoegen. Geschiedenis, toegangsinstellingen en de auditlog gaan op die manier niet mee.

Wordt AWS ondersteund?

Gedeeltelijk. Het Crunu-script deployt naar AWS App Runner, maar AWS heeft App Runner gesloten voor nieuwe klanten, dus het werkt alleen in accounts die het al gebruiken. Crunu heeft geen script voor Amazon ECS Express Mode, de dienst die AWS in plaats daarvan aanraadt. Met een nieuw AWS-account kies je Cloud Run, Vercel of je eigen server.

Wat gebeurt er met machines en CI tijdens een verhuizing?

Machines blijven draaien op de variabelen die ze al hebben, zolang hun lease loopt, tot 24 uur. Vraag het team om 15 tot 30 minuten geen omgevingen te wijzigen en niemand uit te nodigen terwijl je overstapt: wat na de export naar de oude server wordt geschreven, komt niet op de nieuwe.

Kan ik meerdere serverinstanties draaien voor hoge beschikbaarheid?

Op Postgres kunnen meerdere instanties één database delen: schrijfacties naar de auditlog worden door een databaselock achter elkaar gezet. Er is geen handleiding voor een failovercluster, dus plan dat als je eigen opstelling.

Hebben de beheertools een Engelse interface?

Ja. server-init, doctor en crunu-server tonen hun meldingen in het Engels, of in het Russisch als CRUNU_LANG of de systeemtaal Russisch is.

Hoe krijg ik de server om zelf te hosten?

De server is niet als publieke download gepubliceerd. Mail naar support@crunu.com en vertel welk platform je wilt gebruiken.

Probeer Crunu eerst als gehoste dienst

Gratis tijdens de vroege toegang. Je wachtwoord en Secret Key worden in je browser aangemaakt en bereiken nooit de server.