Critto findes normalt på din Critto-konto. Hvis du hellere vil beholde det hele på en computer, du selv ejer, kan du selv køre Critto-serveren: dine crittoer, deres minder og dine chats bliver på computeren, og Critto-appene til computer og telefon forbinder til den.
Denne vejledning er til Linux. Du skal bruge:
- en 64-bit Linux-computer (Intel/AMD eller ARM, f.eks. en Raspberry Pi 4/5), der altid er tændt: en hjemmeserver, en mini-pc eller en lille server i skyen,
- cirka 1 GB ledig hukommelse og nogle få GB diskplads,
- administratorrettigheder (
sudo).
Til NixOS findes der en flake med et NixOS-modul. Debian, Ubuntu, Fedora, RHEL-lignende systemer og openSUSE får egentlige pakker med automatiske opdateringer. Andre systemer kan bruge containerafbildningen eller den statiske udgave.
NixOS
Føj Critto-flaken til din systemflake:
{
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";
};
})
];
};
};
}
Kør derefter sudo nixos-rebuild switch --flake .#myserver, og par dine apps med sudo crittod pair (trin 2).
- Opdateringer: Kør
nix flake update critto, og byg derefter igen. Pakken er den underskrevne, færdigbyggede udgave (en statisk binærfil, så du undgår problemer med glibc). Brugservices.critto.package = critto.packages.${system}.crittod-beta;til betakanalen. - Hemmeligheder: Læg
BOAT_API_KEY=…ogCRITTO_BACKUP_KEY=…ienvironmentFile(ejet af root, tilstand 600; agenix og sops-nix virker også). Filen læses, når tjenesten starter, og kopieres aldrig til lageret. - Indstillinger:
listen(standard127.0.0.1:8787),publicUrl,webHost,openFirewall(slået fra som standard),dataDir(standard/var/lib/critto) ogsettingstil andreCRITTO_*-variabler.den.backendvælger, hvor Hulen kører (boat,localellernone; se Hulen). - AI-apps: Brug helst pakker fra nixpkgs i
aiPackages(f.eks.pkgs.codex,pkgs.claude-code, som kræverallowUnfree). Hvis nixpkgs ikke har dem, skal du sætteprograms.nix-ld.enable = true;og brugesudo crittod setup ai(trin 3). Pi skal kun brugepkgs.nodejs_22iaiPackages; kør dereftersudo crittod setup ai pi. - Fjernadgang: Sæt
services.tailscale.enable = true;, og kør dereftersudo tailscale serve --bg 8787, eller brugservices.cloudflaredmed en ingressregel tilhttp://127.0.0.1:8787(se trin 5). - Tjenesten er isoleret med systemd, men bruger-namespaces er stadig tilgængelige (bubblewrap og den lokale Hulen skal bruge dem), så sæt ikke
security.allowUserNamespaces = false.
Resten af vejledningen gælder også for NixOS, bortset fra at opdateringer kommer fra nix flake update i stedet for apt eller dnf.
1. Installér
Åbn en terminal på serveren, og kør:
curl -fsSL https://downloads.critto.app/install-server.sh | sh
Det tilføjer Critto-pakkearkivet, installerer pakken critto-server, starter serveren og viser en parringskode. Gå direkte til Par dine apps.
Vil du have nye versioner før alle andre? Brug betakanalen:
curl -fsSL https://downloads.critto.app/install-server.sh | CRITTO_CHANNEL=beta sh
Kontrollér installationsprogrammet først (valgfrit)
Scriptet er underskrevet med Critto-udgivelsesnøglen. Sådan bekræfter du underskriften, før du kø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 findes i pakkerne til de fleste distributioner.) Der findes også en almindelig kontrolsum i install-server.sh.sha256. Pakkerne er også underskrevet, og din pakkehåndtering kontrollerer dem ved hver installation og opdatering.
Eller opsæt arkivet 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øglens fingeraftryk er C78E FB7F 67CC 8184 1F70 EE3D D121 DC94 C534 50E3 (»Critto Packages packages@critto.app«).
Eller brug 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 kræver ingen særlige tilladelser. Dine data ligger i diskenheden critto-data, hovednøglen til boksen i critto-keys (adskilt fra dataene, så en kopi af den ene ikke kan åbne den anden; se Sikkerhedskopier) og AI-appene i critto-ai. Du kan også montere en Docker-hemmelighed på /etc/critto/vault.key. Opdatér med docker pull ghcr.io/nexferra-ltd/critto-server:latest, og opret derefter containeren igen med de samme diskenheder.
Eller brug den statiske udgave
Hver udgivelse har også en enkeltfiludgave, der kører på alle Linux-systemer:
https://downloads.critto.app/releases/<version>/critto-server-<version>-linux-x86_64.tar.gz
(eller -aarch64). Pak den ud, og kør ./crittod serve. Du skal selv sørge for, at den kører og holdes opdateret, så pakkerne er nemmere.
2. Par dine apps
Serveren giver kun adgang til enheder, du har parret. Sådan parrer du en enhed:
Hent en kode på serveren (den er gyldig i 10 minutter og kan kun bruges én gang):
sudo crittod pairVælg Brug min egen Critto-server på login-skærmen i Critto-appen. Indtast serverens adresse og koden.
- På selve serveren:
http://127.0.0.1:8787 - Fra andre enheder skal du bruge en adresse, de kan nå; se Få adgang fra dine andre enheder.
- På selve serveren:
Når én enhed er parret, kan du parre flere fra den: Indstillinger → Enheder → Par en telefon viser en QR-kode. Den indeholder adressen, som serveren lytter på. Hvis dine enheder får adgang på en anden måde (en tunnel, proxy eller et domæne), skal du sætte CRITTO_PUBLIC_URL til den adresse (se Indstillinger).
Bruger du computerappen på samme computer? Computerappen starter normalt sin egen private Critto-server. Hvis du har installeret serveren her, skal du i stedet vælge Brug min egen Critto-server med
http://127.0.0.1:8787, så begge bruger de samme crittoer.
3. Forbind dine AI'er
Crittoer tænker med en AI, du vælger. Du kan tilføje en på to måder.
Dine AI-abonnementer (ChatGPT, Claude, Grok…)
Critto bruger deres officielle kommandolinjeapps, som du installerer på serveren én gang:
sudo crittod setup ai
Vælg dem, du bruger, eller angiv dem direkte:
sudo crittod setup ai codex claude.
| App | Bruges med |
|---|---|
codex |
et ChatGPT-abonnement (Plus, Pro, Business…) |
claude |
et Claude-abonnement (Pro, Max…) |
grok |
SuperGrok / X Premium |
muse |
Meta AI (kræver Node.js 20+; installationsprogrammet tilføjer det, hvis muligt) |
antigravity |
Google Antigravity. Læs først den viste advarsel: Googles vilkår siger, at anden software ikke må bruge et Antigravity-login, og Google har suspenderet konti på grund af det. |
De installeres i /opt/critto-ai og opdaterer ikke sig selv. Kør sudo crittod setup ai --update en gang imellem for at opdatere dem.
Åbn derefter Forbindelser i Critto-appen, og log ind på hver af dem. Loginoplysningerne gemmes på serveren, ikke i appen.
Tilpasset AI: lokale modeller og API-nøgler
Slå Indstillinger → Avanceret tilstand til, og vælg derefter Indstillinger → Tilpasset AI → Tilføj forbindelse. Alt, der understøtter den »OpenAI-kompatible« API, virker. Vælg en forudindstilling under Start med, eller indtast selv adressen:
| Tjeneste | Basis-URL | API-nøgle |
|---|---|---|
| Ollama på serveren | http://localhost:11434/v1 |
ingen |
| LM Studio på serveren | http://localhost:1234/v1 |
ingen |
| Ollama på en anden computer derhjemme | http://192.168.1.20:11434/v1 |
ingen |
| OpenRouter | https://openrouter.ai/api/v1 |
din OpenRouter-nøgle |
Vælg Test forbindelsen, vælg en model, og gem. Nu kan du vælge den AI til alle crittoer.
Hvis Ollama kører på en anden computer, skal du starte den med OLLAMA_HOST=0.0.0.0, så den accepterer forbindelser fra dit netværk. »localhost« betyder altid selve Critto-serveren.
4. Hulen (valgfrit)
Hulen er dine crittoers egen computer i skyen, hvor de kan løse større opgaver (bygge ting, gå på nettet og bruge apps). En selvhostet server kører Hulen-miljøer på din egen Boat-konto. Indsæt din Boat-API-nøgle i appen under Forbindelser, eller skriv den i indstillingsfilen som BOAT_API_KEY, og genstart.
Godt at vide:
- Serveren behøver ikke være tilgængelig fra internettet, for at Hulen kan fungere. Den kommunikerer med Hulen, ikke omvendt.
- Arbejde i Hulen kræver en AI med en offentlig internetadresse (dit abonnement eller en tjeneste som OpenRouter). En AI på dit eget netværk (Ollama, LM Studio) kan chatte, men Hulen i skyen kan ikke nå den.
- Boat opkræver betaling for tid i Hulen på din konto.
Din egen Hulen på din egen computer
Ingen Boat-konto? Serveren kan i stedet køre hver persons Hulen som en lille virtuel maskine på denne computer (den kræver /dev/kvm, cirka 4 GB hukommelse pr. Hulen, mens den kører, og at et afbildningsarkiv bygges én gang). På NixOS:
services.critto.den.backend = "local";
På andre systemer skal du skrive CRITTO_DEN_BACKEND=local i /etc/critto/critto.env. Hele vejledningen (krav, størrelser, hvad en Hulen kan få adgang til, og hvordan afbildningen bygges) findes under Din egen Hulen på din egen computer.
5. Få adgang fra dine andre enheder
Som standard lytter serveren kun på sin egen computer (127.0.0.1:8787). Det er den sikre standardindstilling. Hvis du vil bruge telefon eller bærbar overalt fra, kan du vælge en af mulighederne her. De to første giver dig en sikker https://-adresse uden at åbne porte på routeren.
Tailscale (nemmest til personlig brug)
Installér Tailscale på serveren og dine enheder, log ind på den samme konto, og kør derefter på serveren:
sudo tailscale serve --bg 8787
Den viser en adresse som https://myserver.tail1234.ts.net. Brug den i appsene. Kun dine egne enheder kan få adgang.
Cloudflare Tunnel (en offentlig adresse på dit eget domæne)
Hvis du har et domæne hos Cloudflare, skal du installere cloudflared, og derefter køre:
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
Nu findes serveren på https://critto.example.com. Alle enheder skal stadig bruge en parringskode.
En omvendt proxy, du allerede kører
Peg den på http://127.0.0.1:8787, og tillad WebSockets. Med
Caddy, som håndterer HTTPS selv:
critto.example.com {
reverse_proxy 127.0.0.1:8787
}
Kun på dit hjemmenetværk
Hvis alle enheder er derhjemme, kan du lade serveren lytte direkte på netværket. Sæt CRITTO_LISTEN=0.0.0.0:8787 (se Indstillinger), og brug http://<server's IP address>:8787 i appsene. Det er almindelig http, så gør det kun på et netværk, du har tillid til.
Uanset hvad du vælger, skal du sætte CRITTO_PUBLIC_URL til adressen, så parrings-QR-koderne peger på den.
6. Opdateringer
Serveren opdateres sammen med resten af systemet:
- Debian / Ubuntu:
sudo apt update && sudo apt upgrade - Fedora / RHEL:
sudo dnf upgrade - openSUSE:
sudo zypper update
Tjenesten genstarter selv efter en opdatering. Computer- og telefonapps opdateres separat.
7. Sikkerhedskopier
Alt ligger i /var/lib/critto: dine crittoer, minder, chats, filer og AI-logins. Indstillingerne ligger i /etc/critto/critto.env.
Lav selv en sikkerhedskopi. Stop serveren, så kopien bliver konsistent:
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 gemmer også en ny kopi af sin database i /var/lib/critto/backups/latest.db, mens den kører.
Sikkerhedskopier uden for serveren (S3, Cloudflare R2, Backblaze B2…). Slå Avanceret tilstand til i appen, og vælg derefter Indstillinger → Sikkerhedskopier → Skift placering… Krypter dem, før de forlader serveren, ved at tilføje en sikkerhedskopinøgle:
sudo crittod backup keygen
Kopiér linjen CRITTO_BACKUP_KEY=… til /etc/critto/critto.env, opbevar en kopi et sikkert sted uden internet (sikkerhedskopier kan ikke gendannes uden den), og genstart: sudo systemctl restart critto.
Sikkerhedskopier uden for serveren opdateres løbende:
- Ændringer i databasen sendes op hvert 10. sekund;
- folks filer sendes op hvert 10. minut;
- en fuld kopi sendes op hver dag.
Du kan gendanne fra et vilkårligt tidspunkt inden for de seneste 7 dage direkte fra lageret:
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 er UTC; udelad den for den nyeste tilstand. Den gendannede users/-mappe ligger samme sted.)
Hvis du vil gendanne en sikkerhedskopi fra et andet sted, skal du downloade sikkerhedskopifilen fra dit lager og lægge den et sted, hvor brugeren critto kan læse den (f.eks. /var/lib/critto). Kør derefter:
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
Boksens nøgler. Gemte nøgler og adgangskoder krypteres med en hovednøgle i
/etc/critto/vault.key (oprettes ved installationen og kan kun læses af brugeren
critto; i Docker ligger den i diskenheden critto-keys, på NixOS i
services.critto.vaultKeyFile, der som standard er /var/lib/critto-keys/vault.key:
altid uden for dataene). Den kommer aldrig med i en sikkerhedskopi. Listen over
kontonøgler, den låser op (/var/lib/critto/vault/keys.db), får sin egen krypterede
sikkerhedskopi ved siden af de andre i vault/, som opbevares i 30 dage, men kun
hvis du angiver en gendannelsesnøgle:
sudo crittod vault recovery-keygen
Sæt linjen CRITTO_VAULT_BACKUP_RECIPIENT=… i /etc/critto/critto.env, og genstart.
Opbevar den viste gendannelsesidentitet og en kopi af /etc/critto/vault.key
et sikkert sted offline, f.eks. i din adgangskodeadministrator – aldrig på serveren.
Hvis du skal gendanne efter at
have mistet serveren, skal du lægge vault.key tilbage, hente vault/latest.db.age
og derefter køre:
sudo -u critto crittod vault restore --identity /path/to/recovery.txt /path/to/latest.db.age
Indstillinger
Serveren læser /etc/critto/critto.env. Alle valgmuligheder er angivet med en forklaring. Redigér filen med sudo nano /etc/critto/critto.env, og kør derefter sudo systemctl restart critto. De mest almindelige:
| Indstilling | Hvad den gør |
|---|---|
CRITTO_LISTEN |
Hvor serveren lytter. Standard 127.0.0.1:8787 (kun denne computer). |
CRITTO_PUBLIC_URL |
Adressen, dine enheder bruger, f.eks. https://critto.example.com. |
BOAT_API_KEY |
Din Boat-nøgle til Hulen. |
CRITTO_BACKUP_KEY |
Krypterer sikkerhedskopier uden for serveren. |
CRITTO_ANTIGRAVITY=0 |
Skjuler Antigravity. |
CRITTO_PROACTIVE=0 |
Crittos tjekker ikke selv ind (planlagte ting venter). Uden Critto Smarts tænker de med crittoens egen AI under tjek-ins. |
CRITTO_JOB_WORKERS |
Antal baggrundsopgaver (tjek-ins, planlagte ting), der kører samtidig. Standard: 4. |
Nyttige kommandoer:
| Kommando | |
|---|---|
sudo crittod pair |
en parringskode til en ny enhed |
sudo crittod setup ai |
installér eller opdatér AI-apps |
sudo crittod users |
kontiene på denne server |
systemctl status critto |
kører den? |
journalctl -u critto -f |
dens log |
curl http://127.0.0.1:8787/health |
et hurtigt sundhedstjek |
/health viser "desktop": "on-demand", indtil en Hulen får brug for sin desktopsoftware første gang. Det er normalt: Serveren downloader den dér.
Afinstallation
- Debian / Ubuntu:
sudo apt purge critto-server - Fedora / RHEL:
sudo dnf remove critto-server - Docker:
docker rm -f critto(tilføjdocker volume rm critto-data critto-keys critto-ai, hvis dataene også skal slettes)
Dette stopper serveren og fjerner pakken og, hvis der ikke er andre Critto-pakker tilbage, arkivet. Dine data i /var/lib/critto bevares, hvis du kommer tilbage. Sådan sletter du alt:
sudo rm -rf /var/lib/critto /etc/critto /opt/critto-ai
sudo userdel critto
Hvis pakkerne ikke skal tilføje arkivet under installationen, skal du køre echo CRITTO_REPO=no | sudo tee /etc/default/critto før installationen.
Fejlfinding
- Appen siger, at den ikke kan få forbindelse til serveren. Kontrollér
systemctl status crittopå serveren, og kontrollér, at appens adresse kan nås fra enheden (fra en telefon betyder127.0.0.1selve telefonen). - »Parringskoden virkede ikke.« Koder gælder i 10 minutter og kan kun bruges én gang. Lav en ny med
sudo crittod pair. Kør kommandoen medsudo: uden det får du en kode til en anden, personlig server. - En AI-app vises ikke under Forbindelser. Kør
sudo crittod setup ai <name>igen; serveren genstarter, når den er færdig. - Noget andet.
journalctl -u critto -n 100viser som regel, hvad der er galt.