Vanligvis ligger Critto på Critto-kontoen din. Hvis du heller vil ha alt på en datamaskin du eier selv, kan du kjøre Critto-serveren selv: crittoene dine, minnene deres og samtalene dine blir værende på den datamaskinen, og Critto- appene for datamaskin og mobil kobler seg til den.
Denne veiledningen gjelder Linux. Du trenger:
- en 64-bit Linux-datamaskin (Intel/AMD eller ARM, f.eks. en Raspberry Pi 4/5) som står på: en hjemmeserver, en mini-PC eller en liten skyserver,
- omtrent 1 GB ledig minne og noen GB diskplass,
- administratorrettigheter (
sudo).
NixOS får en flake med en NixOS-modul. Debian, Ubuntu, Fedora, RHEL-lignende systemer og openSUSE får ordentlige pakker med automatiske oppdateringer. På andre systemer kan du bruke containerbildet eller den statiske versjonen.
NixOS
Legg Critto-flaken til i systemflaken din:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
critto.url = "https://downloads.critto.app/nix/critto.tar.gz";
critto.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { nixpkgs, critto, ... }: {
nixosConfigurations.myserver = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; # or aarch64-linux
modules = [
./configuration.nix
critto.nixosModules.default
({ pkgs, ... }: {
services.critto = {
enable = true;
# Secrets (Boat key, backup key) stay out of the Nix store:
environmentFile = "/etc/critto/secrets.env";
# AI apps for your subscriptions (you sign in from the app):
aiPackages = [ pkgs.codex pkgs.nodejs_22 ];
# publicUrl = "https://critto.example.com";
};
})
];
};
};
}
Kjør deretter sudo nixos-rebuild switch --flake .#myserver, og par appene
dine med sudo crittod pair (steg 2).
- Oppdateringer:
nix flake update critto, og bygg deretter på nytt. Pakken er den signerte, ferdigbygde utgaven (en statisk binærfil, så du slipper problemer med glibc). Brukservices.critto.package = critto.packages.${system}.crittod-beta;for betakanalen. - Hemmeligheter: legg
BOAT_API_KEY=…ogCRITTO_BACKUP_KEY=…ienvironmentFile(eies av root, modus 600; agenix og sops-nix fungerer også). Filen leses når tjenesten starter, og kopieres aldri til lageret. - Innstillinger:
listen(standard127.0.0.1:8787),publicUrl,webHost,openFirewall(av som standard),dataDir(standard/var/lib/critto) ogsettingsfor andreCRITTO_*-variabler.den.backendvelger hvor Hiet kjører (boat,localellernone); se Hiet. - KI-apper: Bruk helst pakker fra nixpkgs i
aiPackages(for eksempelpkgs.codex,pkgs.claude-code, som kreverallowUnfree). For appene som ikke finnes i nixpkgs, setter duprograms.nix-ld.enable = true;og kjørersudo crittod setup ai(steg 3). Pi trenger barepkgs.nodejs_22iaiPackages, og derettersudo crittod setup ai pi. - Ekstern tilgang: Sett
services.tailscale.enable = true;, og kjørsudo tailscale serve --bg 8787, eller brukservices.cloudflaredmed en ingressregel tilhttp://127.0.0.1:8787(se steg 5). - Tjenesten er avgrenset med systemd, men bruker-navnerom er fortsatt
tilgjengelige (bubblewrap og lokal Hiet trenger dem), så ikke sett
security.allowUserNamespaces = false.
Resten av veiledningen gjelder også NixOS, bortsett fra at du oppdaterer med
nix flake update i stedet for apt eller dnf.
1. Installer
Åpne en terminal på serveren og kjør:
curl -fsSL https://downloads.critto.app/install-server.sh | sh
Dette legger til pakkearkivet til Critto, installerer critto-server-pakken,
starter serveren og viser en paringskode. Ferdig! Gå videre til
Par appene dine.
Vil du ha nye versjoner før alle andre? Bruk betakanalen:
curl -fsSL https://downloads.critto.app/install-server.sh | CRITTO_CHANNEL=beta sh
Kontroller installasjonsprogrammet først (valgfritt)
Skriptet er signert med utgivelsesnøkkelen til Critto. Slik kontrollerer du det før du kjører det:
curl -fsSLO https://downloads.critto.app/install-server.sh
curl -fsSLO https://downloads.critto.app/install-server.sh.minisig
minisign -Vm install-server.sh -P RWTRac/2j5M3cvVpvtz0flaOy7sH5PFSc4LwbB7PxG0OMO2h8APoZtLG
sh install-server.sh
(minisign finnes i pakkene til de fleste distribusjoner.) Det finnes også
en vanlig kontrollsum i install-server.sh.sha256. Pakkene er også signert,
og pakkehåndtereren kontrollerer dem ved hver installasjon og oppdatering.
Eller sett opp pakkearkivet selv
Debian / Ubuntu:
sudo install -d -m 755 /etc/apt/keyrings
sudo curl -fsSLo /etc/apt/keyrings/critto.gpg https://downloads.critto.app/keys/critto-archive-keyring.gpg
cat <<EOF | sudo tee /etc/apt/sources.list.d/critto.sources
Types: deb
URIs: https://downloads.critto.app/apt
Suites: stable
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/critto.gpg
EOF
sudo apt update && sudo apt install critto-server
Fedora / RHEL / Rocky / Alma:
sudo rpm --import https://downloads.critto.app/keys/critto-archive-keyring.asc
cat <<EOF | sudo tee /etc/yum.repos.d/critto.repo
[critto]
name=Critto
baseurl=https://downloads.critto.app/rpm/stable
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.critto.app/keys/critto-archive-keyring.asc
EOF
sudo dnf install critto-server
Nøkkelens fingeravtrykk er C78E FB7F 67CC 8184 1F70 EE3D D121 DC94 C534 50E3
("Critto Packages packages@critto.app").
Eller bruk Docker / Podman
docker run -d --name critto --restart unless-stopped \
-p 127.0.0.1:8787:8787 \
-v critto-data:/var/lib/critto -v critto-keys:/etc/critto -v critto-ai:/opt/critto-ai \
ghcr.io/nexferra-ltd/critto-server:latest
docker exec critto crittod pair
Containeren trenger ingen spesielle tillatelser. Dataene dine ligger i
volumet critto-data, hovednøkkelen til hvelvet i critto-keys (adskilt fra
dataene, så en kopi av det ene aldri kan åpne det andre; se Sikkerhetskopier),
og KI-appene i critto-ai. Du kan også montere en Docker-hemmelighet på
/etc/critto/vault.key. Oppdater med
docker pull ghcr.io/nexferra-ltd/critto-server:latest, og opprett deretter
containeren på nytt med de samme volumene.
Eller den statiske utgaven
Hver utgave finnes også som én enkelt fil som kjører på alle Linux-systemer:
https://downloads.critto.app/releases/<version>/critto-server-<version>-linux-x86_64.tar.gz
(eller -aarch64). Pakk den ut og kjør ./crittod serve. Du må selv sørge
for at den kjører og er oppdatert, så pakker er enklere.
2. Par appene dine
Serveren slipper bare inn enheter du har paret. Slik parer du en enhet:
Hent en kode på serveren (den er gyldig i 10 minutter og kan brukes én gang):
sudo crittod pairVelg Bruk min egen Critto-server på innloggingsskjermen i Critto-appen. Skriv inn serveradressen og koden.
- På selve serveren:
http://127.0.0.1:8787 - Fra andre enheter trenger du en adresse de kan nå. Se Slik får du tilgang fra andre enheter.
- På selve serveren:
Når én enhet er paret, kan du pare flere fra den: Innstillinger → Enheter →
Par en telefon viser en QR-kode. Den inneholder adressen serveren lytter på.
Hvis enhetene dine bruker en annen vei inn (en tunnel, mellomtjener eller et
domene), setter du CRITTO_PUBLIC_URL til den adressen (se Innstillinger).
Bruker du skrivebordsappen på samme datamaskin? Skrivebordsappen starter vanligvis sin egen private Critto-server. Hvis du har installert serveren her, velger du Bruk min egen Critto-server med
http://127.0.0.1:8787i stedet, så begge bruker de samme crittoene.
3. Koble til KI-ene dine
Crittoer tenker ved hjelp av en KI du velger. Du kan koble til på to måter.
KI-abonnementene dine (ChatGPT, Claude, Grok…)
Critto bruker de offisielle kommandolinjeappene deres, som du installerer én gang på serveren:
sudo crittod setup ai
Velg appene du bruker, eller skriv navnene direkte:
sudo crittod setup ai codex claude.
| App | Brukes med |
|---|---|
codex |
et ChatGPT-abonnement (Plus, Pro, Business…) |
claude |
et Claude-abonnement (Pro, Max…) |
grok |
SuperGrok / X Premium |
muse |
Meta AI (krever Node.js 20+; installasjonsprogrammet legger det til hvis mulig) |
antigravity |
Google Antigravity. Les advarselen først: Ifølge vilkårene til Google skal ikke andre apper bruke Antigravity-innloggingen, og Google har stengt kontoer for slik bruk. |
De installeres i /opt/critto-ai og oppdateres ikke automatisk. Kjør
sudo crittod setup ai --update nå og da for å oppdatere dem.
Åpne deretter Tilkoblinger i Critto-appen og logg inn på hver av dem. Innloggingene lagres på serveren din, ikke i appen.
Tilpasset KI: lokale modeller og API-nøkler
Slå på Innstillinger → Avansert modus, og velg deretter Innstillinger → Tilpasset KI → Legg til tilkobling. Alt som støtter «OpenAI-kompatibelt» API, fungerer. Velg en forhåndsinnstilling under Start med, eller fyll inn adressen selv:
| Tjeneste | Basis-URL | API-nøkkel |
|---|---|---|
| Ollama på serveren | http://localhost:11434/v1 |
ingen |
| LM Studio på serveren | http://localhost:1234/v1 |
ingen |
| Ollama på en annen datamaskin hjemme | http://192.168.1.20:11434/v1 |
ingen |
| OpenRouter | https://openrouter.ai/api/v1 |
OpenRouter-nøkkelen din |
Velg Test tilkobling, velg en modell og lagre. Deretter kan du velge denne KI-en for alle crittoer.
Hvis Ollama kjører på en annen datamaskin, starter du den med
OLLAMA_HOST=0.0.0.0 så den godtar tilkoblinger fra nettverket. «localhost»
betyr alltid selve datamaskinen Critto-serveren kjører på.
4. Hiet (valgfritt)
Hiet er crittoenes egen datamaskin i skyen, der de kan gjøre større jobber
(bygge ting, surfe og bruke apper). En server du drifter selv, bruker
Boat-kontoen din til å kjøre datamaskiner i Hiet. Lim inn Boat-API-nøkkelen i appen under
Tilkoblinger, eller legg den inn i innstillingsfilen som BOAT_API_KEY
og start serveren på nytt.
Greit å vite:
- Serveren din trenger ikke være tilgjengelig fra internett for at Hiet skal fungere. Serveren kobler til Hiet, ikke omvendt.
- Arbeid i Hiet krever en KI med offentlig internettadresse (abonnementene dine eller en tjeneste som OpenRouter). En KI på ditt eget nettverk (Ollama, LM Studio) kan prate, men Hiet i skyen får ikke kontakt med den.
- Boat fakturerer Hiet-tid på kontoen din.
Ditt eget Hiet på din egen datamaskin
Har du ikke Boat-konto? Serveren kan i stedet kjøre hver persons Hiet som
en liten virtuell maskin på denne datamaskinen (det krever /dev/kvm, omtrent
4 GB minne per Hiet mens den kjører, og at et diskbilde bygges én gang).
På NixOS:
services.critto.den.backend = "local";
På andre systemer legger du CRITTO_DEN_BACKEND=local i
/etc/critto/critto.env. Hele veiledningen (krav, størrelser, hva et Hiet
får tilgang til og bygging av diskbildet) står her:
Ditt eget Hiet på din egen datamaskin.
5. Koble til fra andre enheter
Som standard lytter serveren bare på sin egen datamaskin
(127.0.0.1:8787). Det er det tryggeste valget. Hvis du vil bruke telefonen
eller laptopen din hvor som helst fra, velger du en av disse løsningene. De
to første gir deg en sikker https://-adresse uten å åpne porter på ruteren.
Tailscale (enklest til personlig bruk)
Installer Tailscale på serveren og enhetene dine, logg inn på samme konto, og kjør deretter dette på serveren:
sudo tailscale serve --bg 8787
Da vises en adresse som https://myserver.tail1234.ts.net. Bruk den i appene.
Bare enhetene dine får tilgang.
Cloudflare Tunnel (offentlig adresse på ditt eget domene)
Hvis du har et domene hos Cloudflare, installerer du cloudflared, og kjører deretter:
cloudflared tunnel login
cloudflared tunnel create critto
cloudflared tunnel route dns critto critto.example.com
cat > ~/.cloudflared/config.yml <<EOF
tunnel: critto
credentials-file: $HOME/.cloudflared/$(cloudflared tunnel list | awk '/critto/{print $1}').json
ingress:
- hostname: critto.example.com
service: http://127.0.0.1:8787
- service: http_status:404
EOF
sudo cloudflared service install
Serveren din er nå tilgjengelig på https://critto.example.com. Hver enhet
trenger fortsatt en paringskode.
En mellomtjener du allerede kjører
Pek den mot http://127.0.0.1:8787 og tillat WebSockets. Med
Caddy, som håndterer HTTPS selv:
critto.example.com {
reverse_proxy 127.0.0.1:8787
}
Bare på hjemmenettverket ditt
Hvis alle enhetene er hjemme, kan serveren lytte direkte på nettverket ditt.
Sett CRITTO_LISTEN=0.0.0.0:8787 (se Innstillinger), og bruk
http://<server's IP address>:8787 i appene. Dette er vanlig http, så gjør
det bare på et nettverk du stoler på.
Uansett hva du velger, setter du CRITTO_PUBLIC_URL til adressen så
parings-QR-kodene peker dit.
6. Oppdateringer
Serveren oppdateres sammen med resten av systemet:
- Debian / Ubuntu:
sudo apt update && sudo apt upgrade - Fedora / RHEL:
sudo dnf upgrade - openSUSE:
sudo zypper update
Tjenesten starter på nytt av seg selv etter en oppdatering. Skrivebords- og mobilappene oppdateres hver for seg.
7. Sikkerhetskopier
Alt ligger i /var/lib/critto: crittoene, minnene, samtalene, filene og
KI-innloggingene dine. Innstillingene ligger i /etc/critto/critto.env.
Kopier selv. Stopp serveren for å få en fullstendig kopi:
sudo systemctl stop critto
sudo tar czf critto-backup-$(date +%F).tar.gz --exclude=/etc/critto/vault.key /var/lib/critto /etc/critto
sudo systemctl start critto
Serveren lagrer også en oppdatert kopi av databasen i
/var/lib/critto/backups/latest.db mens den kjører.
Sikkerhetskopier et annet sted (S3, Cloudflare R2, Backblaze B2 …). Slå på Avansert modus i appen, og velg Innstillinger → Sikkerhetskopier → Bytt lagringssted …. Krypter kopiene før de forlater serveren ved å legge til en sikkerhetskopinøkkel:
sudo crittod backup keygen
Kopier linjen CRITTO_BACKUP_KEY=… inn i /etc/critto/critto.env, og oppbevar
en kopi på et trygt sted uten nett (sikkerhetskopier kan ikke gjenopprettes
uten den). Start deretter på nytt: sudo systemctl restart critto.
Sikkerhetskopier utenfor serveren tas fortløpende:
- endringer i databasen lastes opp hvert 10. sekund;
- filer fra brukerne lastes opp hvert 10. minutt;
- en full kopi lastes opp hver dag.
Du kan gjenopprette fra et hvilket som helst tidspunkt de siste 7 dagene, direkte fra lagringsbøtta:
sudo systemctl stop critto
sudo -u critto crittod backup list
sudo -u critto crittod backup pitr --to /var/lib/critto/restore --at "2026-10-02 14:30"
sudo -u critto mv /var/lib/critto/restore/critto.db /var/lib/critto/critto.db
sudo systemctl start critto
(--at bruker UTC. Utelat det for siste tilstand. Den gjenopprettede
users/-mappen ligger på samme sted.)
Hvis du heller vil gjenopprette én nedlastet sikkerhetskopifil (et daglig
øyeblikksbilde), legger du den et sted critto-brukeren kan lese (f.eks.
/var/lib/critto). Deretter:
sudo systemctl stop critto
sudo crittod backup restore --from /path/to/downloaded-backup --to /var/lib/critto/restored.db
sudo -u critto mv /var/lib/critto/restored.db /var/lib/critto/critto.db
sudo systemctl start critto
Nøklene i hvelvet. Lagrede nøkler og passord krypteres med en hovednøkkel i
/etc/critto/vault.key (opprettes ved installasjon, kan bare leses av
critto-brukeren; i Docker ligger den i volumet critto-keys, på NixOS i
services.critto.vaultKeyFile, som standard /var/lib/critto-keys/vault.key:
alltid utenfor dataene). Den er aldri med i en sikkerhetskopi. Listen over
nøkler per konto som den låser opp (/var/lib/critto/vault/keys.db), får en
egen kryptert sikkerhetskopi under vault/, ved siden av de andre, som
oppbevares i 30 dager, men bare hvis du oppgir en gjenopprettingsnøkkel:
sudo crittod vault recovery-keygen
Legg linjen CRITTO_VAULT_BACKUP_RECIPIENT=… i /etc/critto/critto.env og
start serveren på nytt. Oppbevar den utskrevne gjenopprettingsidentiteten og
en kopi av /etc/critto/vault.key frakoblet, i passordbehandleren din:
aldri på serveren. Hvis du mister serveren, legger du tilbake vault.key,
laster ned vault/latest.db.age og kjører:
sudo -u critto crittod vault restore --identity /path/to/recovery.txt /path/to/latest.db.age
Innstillinger
Serveren leser /etc/critto/critto.env. Alle valgene står der med en
forklaring. Rediger filen med sudo nano /etc/critto/critto.env, og kjør
deretter sudo systemctl restart critto. De vanligste valgene:
| Innstilling | Hva den gjør |
|---|---|
CRITTO_LISTEN |
Hvor serveren lytter. Standard 127.0.0.1:8787 (bare denne datamaskinen). |
CRITTO_PUBLIC_URL |
Adressen enhetene bruker, f.eks. https://critto.example.com. |
BOAT_API_KEY |
Boat-nøkkelen din til Hiet. |
CRITTO_BACKUP_KEY |
Krypterer sikkerhetskopier lagret et annet sted. |
CRITTO_ANTIGRAVITY=0 |
Skjuler Antigravity. |
CRITTO_PROACTIVE=0 |
Crittoer tar ikke kontakt av seg selv (planlagte ting venter). Uten Critto Smarts bruker innsjekkinger KI-en til crittoen. |
CRITTO_JOB_WORKERS |
Hvor mange bakgrunnsjobber (innsjekkinger og planlagte ting) som kjører samtidig. Standard 4. |
Nyttige kommandoer:
| Kommando | |
|---|---|
sudo crittod pair |
paringskode til en ny enhet |
sudo crittod setup ai |
installer eller oppdater KI-apper |
sudo crittod users |
kontoene på denne serveren |
systemctl status critto |
kjører den? |
journalctl -u critto -f |
loggen |
curl http://127.0.0.1:8787/health |
en rask helsesjekk |
/health viser "desktop": "on-demand" fram til Hiet trenger
skrivebordsprogramvaren for første gang. Det er normalt: serveren laster den
ned da.
Avinstaller
- Debian / Ubuntu:
sudo apt purge critto-server - Fedora / RHEL:
sudo dnf remove critto-server - Docker:
docker rm -f critto(legg tildocker volume rm critto-data critto-keys critto-aifor å slette dataene også)
Dette stopper serveren og fjerner pakken og, hvis ingen andre Critto-pakker
er igjen, pakkearkivet. Dataene dine i /var/lib/critto blir beholdt hvis
du kommer tilbake. Slik sletter du alt:
sudo rm -rf /var/lib/critto /etc/critto /opt/critto-ai
sudo userdel critto
Hvis du ikke vil at pakkene skal legge til pakkearkivet, kjører du
echo CRITTO_REPO=no | sudo tee /etc/default/critto før installasjonen.
Feilsøking
- Appen får ikke kontakt med serveren. Sjekk
systemctl status crittopå serveren, og kontroller at adressen i appen kan nås fra enheten (på en telefon betyr127.0.0.1selve telefonen). - «Paringskoden virket ikke.» Kodene varer i 10 minutter og kan brukes én
gang. Lag en ny med
sudo crittod pair. Bruksudo; uten det får du en kode til en annen, personlig server. - En KI-app vises ikke under Tilkoblinger. Kjør
sudo crittod setup ai <name>på nytt; serveren starter på nytt når den er ferdig. - Noe annet.
journalctl -u critto -n 100viser som regel hva som er galt.