Critto finns vanligtvis i ditt Critto-konto. Om du hellre vill ha allt på en dator du äger kan du själv köra Critto-servern: dina crittos, deras minnen och dina chattar stannar på den datorn, och Critto-apparna för dator och mobil ansluter till den.
Den här guiden gäller Linux. Du behöver:
- en 64-bitars Linux-dator (Intel/AMD eller ARM, till exempel Raspberry Pi 4/5) som alltid är på: en hemmaserver, en mini-PC eller en liten molnserver,
- ungefär 1 GB ledigt minne och några GB lagringsutrymme,
- administratörsrättigheter (
sudo).
För NixOS finns ett flake-paket med en NixOS-modul. Debian, Ubuntu, Fedora, RHEL-liknande system och openSUSE får vanliga paket med automatiska uppdateringar. Övriga system kan använda containeravbildningen eller den statiska versionen.
NixOS
Lägg till Critto-flaken i systemflaken:
{
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 sedan sudo nixos-rebuild switch --flake .#myserver och parkoppla apparna med
sudo crittod pair (steg 2).
- Uppdateringar:
nix flake update crittooch bygg sedan om. Paketet är en signerad, förbyggd version (en statisk binär, så du slipper problem med glibc). Användservices.critto.package = critto.packages.${system}.crittod-beta;för betakanalen. - Hemligheter: lägg
BOAT_API_KEY=…ochCRITTO_BACKUP_KEY=…ienvironmentFile(ägs av root, läge 600; agenix och sops-nix fungerar också). Filen läses när tjänsten startar och kopieras aldrig till Nix-lagret. - Inställningar:
listen(standard127.0.0.1:8787),publicUrl,webHost,openFirewall(av som standard),dataDir(standard/var/lib/critto) ochsettingsför andraCRITTO_*-variabler.den.backendväljer var Lyan körs (boat,localellernone; se om Lyan). - AI-appar: använd helst paket från nixpkgs i
aiPackages(till exempelpkgs.codex,pkgs.claude-code, som kräverallowUnfree). För appar som saknas i nixpkgs aktiverar duprograms.nix-ld.enable = true;och körsudo crittod setup ai(steg 3). Pi behöver barapkgs.nodejs_22iaiPackages; kör sedansudo crittod setup ai pi. - Fjärråtkomst: aktivera
services.tailscale.enable = true;och kör sedansudo tailscale serve --bg 8787, eller användservices.cloudflaredmed en ingressregel tillhttp://127.0.0.1:8787(se steg 5). - Tjänsten körs i en isolerad systemd-miljö, men användarnamnrymder är tillgängliga
(bubblewrap och den lokala Lyan behöver dem), så ange inte
security.allowUserNamespaces = false.
Resten av guiden gäller även NixOS, förutom att uppdateringar görs med
nix flake update i stället för apt eller dnf.
1. Installera
Öppna en terminal på servern och kör:
curl -fsSL https://downloads.critto.app/install-server.sh | sh
Kommandot lägger till Critto-paketförrådet, installerar paketet critto-server,
startar servern och skriver ut en parkopplingskod. Klart: fortsätt till
Parkoppla apparna.
Vill du få nya versioner före alla andra? Använd betakanalen:
curl -fsSL https://downloads.critto.app/install-server.sh | CRITTO_CHANNEL=beta sh
Kontrollera installationsskriptet först (valfritt)
Skriptet är signerat med Crittos utgivningsnyckel. Så här verifierar du det innan du kör 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 finns i paketförråden för de flesta distributioner.) Det finns också en vanlig kontrollsumma i install-server.sh.sha256. Även paketen är signerade, och pakethanteraren kontrollerar dem vid varje installation och uppdatering.
Eller konfigurera paketförrådet själv
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
Nyckelns fingeravtryck är C78E FB7F 67CC 8184 1F70 EE3D D121 DC94 C534 50E3
(”Critto Packages packages@critto.app”).
Eller använd 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
Containern behöver inga särskilda behörigheter. Din data finns i volymen
critto-data, valvets huvudnyckel i critto-keys (åtskild från datan, så en
kopia av den ena aldrig kan öppna den andra; se Säkerhetskopior) och AI-apparna
i critto-ai. Det fungerar också att montera en Docker-hemlighet på
/etc/critto/vault.key. Uppdatera med
docker pull ghcr.io/nexferra-ltd/critto-server:latest och återskapa sedan
containern med samma volymer.
Eller använd den statiska versionen
Varje utgåva har också en fristående fil som körs på alla Linux-system:
https://downloads.critto.app/releases/<version>/critto-server-<version>-linux-x86_64.tar.gz
(eller -aarch64). Packa upp filen och kör ./crittod serve. Du måste själv se till att den körs och hålls uppdaterad, så paket är enklare.
2. Parkoppla apparna
Servern släpper bara in enheter som du har parkopplat. Så här parkopplar du en:
Hämta en kod på servern (den gäller i 10 minuter och kan användas en gång):
sudo crittod pairVälj Använd min egen Critto-server på inloggningssidan i Critto-appen. Ange serverns adress och koden.
- På själva servern:
http://127.0.0.1:8787 - Från andra enheter behöver du en adress som de kan nå; se Anslut från andra enheter.
- På själva servern:
När en enhet har parkopplats kan du parkoppla fler från den: Inställningar → Enheter →
Parkoppla en mobil visar en QR-kod. Den innehåller adressen som servern lyssnar
på. Om enheterna når servern på något annat sätt (en tunnel, proxy eller domän) anger du
den adressen i CRITTO_PUBLIC_URL (se Inställningar).
Datorappen på samma dator? Datorappen startar vanligtvis en egen privat Critto-server. Om du har installerat servern här väljer du i stället Använd min egen Critto-server med
http://127.0.0.1:8787, så att båda använder samma crittos.
3. Anslut dina AI-tjänster
Crittos tänker med en AI som du väljer. Det finns två sätt att ansluta en.
Dina AI-prenumerationer (ChatGPT, Claude, Grok…)
Critto använder de officiella kommandoradsapparna, som du installerar på servern en gång:
sudo crittod setup ai
Välj de du använder eller ange namnen direkt:
sudo crittod setup ai codex claude.
| App | Används med |
|---|---|
codex |
en ChatGPT-plan (Plus, Pro, Business…) |
claude |
en Claude-plan (Pro, Max…) |
grok |
SuperGrok / X Premium |
muse |
Meta AI (kräver Node.js 20+; installationsprogrammet lägger till det om möjligt) |
antigravity |
Google Antigravity. Läs varningen som visas först: Googles villkor säger att annan programvara inte ska använda en Antigravity-inloggning, och Google har stängt av konton för detta. |
De installeras i /opt/critto-ai och uppdateras inte automatiskt. Kör
sudo crittod setup ai --update då och då för att uppdatera dem.
Öppna sedan Anslutningar i Critto-appen och logga in på var och en. Inloggningarna sparas på servern, inte i appen.
Egen AI: lokala modeller och API-nycklar
Slå på Inställningar → Avancerat läge och gå sedan till Inställningar → Egen AI → Lägg till anslutning. Allt som stöder API:t ”OpenAI-kompatibelt” fungerar. Välj en förinställning under Börja med eller ange adressen själv:
| Tjänst | Bas-URL | API-nyckel |
|---|---|---|
| Ollama på servern | http://localhost:11434/v1 |
ingen |
| LM Studio på servern | http://localhost:1234/v1 |
ingen |
| Ollama på en annan dator hemma | http://192.168.1.20:11434/v1 |
ingen |
| OpenRouter | https://openrouter.ai/api/v1 |
din OpenRouter-nyckel |
Välj Testa anslutningen, välj en modell och spara. Sedan kan du välja AI-tjänsten för vilken critto som helst.
Om Ollama körs på en annan dator startar du den med OLLAMA_HOST=0.0.0.0 så
att den tar emot anslutningar från nätverket. ”localhost” betyder alltid
Critto-serverns egen dator.
4. Lyan (valfritt)
Lyan är crittonas egen dator i molnet, där de gör större jobb (bygger saker, surfar,
använder appar). En server med egen drift kör Lyor på ditt eget
Boat-konto. Klistra in Boat-API-nyckeln i appen under
Anslutningar, eller lägg in den i inställningsfilen som BOAT_API_KEY och starta om.
Bra att veta:
- Servern behöver inte vara nåbar från internet för att Lyan ska fungera. Den ansluter till Lyan, inte tvärtom.
- Arbete i Lyan kräver en AI med en offentlig internetadress (dina prenumerationer eller en tjänst som OpenRouter). En AI i ditt eget nätverk (Ollama, LM Studio) kan chatta, men Lyan i molnet kan inte nå den.
- Boat debiterar tiden i Lyan på ditt konto.
Egen Lyan på din egen dator
Inget Boat-konto? Servern kan i stället köra varje persons Lyan som en liten virtuell
dator här (den behöver /dev/kvm, cirka 4 GB minne per Lyan medan den körs
och att en avbildning byggs en gång). På NixOS:
services.critto.den.backend = "local";
På andra system anger du CRITTO_DEN_BACKEND=local i /etc/critto/critto.env.
Hela guiden (krav, storlekar, vad en Lyan kan nå och hur avbildningen byggs)
finns här: Egen Lyan på din egen dator.
5. Anslut från dina andra enheter
Som standard lyssnar servern bara på sin egen dator (127.0.0.1:8787).
Det är det säkra standardvalet. Om du vill använda mobilen eller laptopen var du än
är väljer du ett av alternativen. De två första ger dig en säker https://-adress
utan att öppna portar i routern.
Tailscale (enklast för privat bruk)
Installera Tailscale på servern och enheterna, logga in på samma konto och kör sedan detta på servern:
sudo tailscale serve --bg 8787
En adress som https://myserver.tail1234.ts.net visas. Använd den i apparna.
Bara dina egna enheter kan nå servern.
Cloudflare Tunnel (en offentlig adress på din egen domän)
Om du har en domän hos Cloudflare installerar du cloudflared och kör sedan:
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
Servern nås sedan på https://critto.example.com. Varje enhet behöver
fortfarande en parkopplingskod.
En omvänd proxy du redan kör
Rikta den mot http://127.0.0.1:8787 och tillåt WebSockets. Med
Caddy, som hanterar HTTPS automatiskt:
critto.example.com {
reverse_proxy 127.0.0.1:8787
}
Bara i ditt hemmanätverk
Om alla enheter är hemma kan du låta servern lyssna direkt på nätverket.
Ange CRITTO_LISTEN=0.0.0.0:8787 (se Inställningar) och använd
http://<server's IP address>:8787 i apparna. Anslutningen använder vanlig
http, så gör bara detta i ett nätverk du litar på.
Oavsett vilket alternativ du väljer anger du adressen i CRITTO_PUBLIC_URL så
att parkopplingskoderna leder rätt.
6. Uppdateringar
Servern uppdateras tillsammans med resten av systemet:
- Debian / Ubuntu:
sudo apt update && sudo apt upgrade - Fedora / RHEL:
sudo dnf upgrade - openSUSE:
sudo zypper update
Tjänsten startar om automatiskt efter en uppdatering. Dator- och mobilappar uppdateras separat.
7. Säkerhetskopior
Allt finns i /var/lib/critto: dina crittos, minnen, chattar, filer och
AI-inloggningar. Inställningar finns i /etc/critto/critto.env.
Kopiera själv. Stoppa servern för att få en konsekvent kopia:
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
Servern sparar också en aktuell kopia av databasen i
/var/lib/critto/backups/latest.db medan den körs.
Säkerhetskopior på annan plats (S3, Cloudflare R2, Backblaze B2…). Slå på Avancerat läge i appen och välj sedan Inställningar → Säkerhetskopior → Byt mål…. Kryptera kopiorna innan de lämnar servern genom att lägga till en säkerhetskopieringsnyckel:
sudo crittod backup keygen
Kopiera raden CRITTO_BACKUP_KEY=… till /etc/critto/critto.env, förvara en
kopia säkert och offline (säkerhetskopior kan inte återställas utan den) och
starta om: sudo systemctl restart critto.
Säkerhetskopior på annan plats uppdateras löpande:
- ändringar i databasen skickas upp var tionde sekund,
- användarnas filer skickas upp var tionde minut,
- en fullständig kopia skickas upp varje dag.
Du kan återställa vilket ögonblick som helst från de senaste sju dagarna direkt från lagringsplatsen:
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 är UTC; utelämna det för det senaste läget. Den återställda mappen
users/ finns kvar på samma plats.)
Om du i stället vill återställa en enskild nedladdad säkerhetskopia (en daglig
ögonblicksbild) lägger du den där användaren critto kan läsa den, till exempel
/var/lib/critto, och kör sedan:
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
Valvets nycklar. Sparade nycklar och lösenord krypteras med en huvudnyckel i
/etc/critto/vault.key (skapas vid installationen och kan bara läsas av användaren
critto; i Docker finns den i volymen critto-keys, på NixOS i
services.critto.vaultKeyFile, som standard /var/lib/critto-keys/vault.key:
alltid utanför datan). Den finns aldrig i en säkerhetskopia. Listan med nycklar
per konto som den låser upp (/var/lib/critto/vault/keys.db) får en egen
krypterad säkerhetskopia bredvid de andra, under vault/, som sparas i 30 dagar,
men bara om du anger en återställningsnyckel:
sudo crittod vault recovery-keygen
Lägg raden CRITTO_VAULT_BACKUP_RECIPIENT=… i /etc/critto/critto.env och
starta om. Förvara den utskrivna återställningsidentiteten och en kopia av
/etc/critto/vault.key offline i din lösenordshanterare, aldrig på servern.
Om du behöver återställa efter att servern gått förlorad lägger du tillbaka
vault.key, laddar ner vault/latest.db.age och kör:
sudo -u critto crittod vault restore --identity /path/to/recovery.txt /path/to/latest.db.age
Inställningar
Servern läser /etc/critto/critto.env. Alla alternativ finns listade där med
en förklaring. Redigera filen med sudo nano /etc/critto/critto.env och kör
sedan sudo systemctl restart critto. Vanliga alternativ:
| Inställning | Vad den gör |
|---|---|
CRITTO_LISTEN |
Var servern lyssnar. Standard 127.0.0.1:8787 (bara den här datorn). |
CRITTO_PUBLIC_URL |
Adressen dina enheter använder, till exempel https://critto.example.com. |
BOAT_API_KEY |
Din Boat-nyckel för Lyan. |
CRITTO_BACKUP_KEY |
Krypterar säkerhetskopior på annan plats. |
CRITTO_ANTIGRAVITY=0 |
Döljer Antigravity. |
CRITTO_PROACTIVE=0 |
Crittos stämmer inte av på eget initiativ (schemalagda saker får vänta). Utan Critto Smarts använder avstämningar crittons egen AI. |
CRITTO_JOB_WORKERS |
Antal bakgrundsjobb (avstämningar och schemalagda saker) som körs samtidigt. Standardvärde 4. |
Användbara kommandon:
| Kommando | |
|---|---|
sudo crittod pair |
en parkopplingskod för en ny enhet |
sudo crittod setup ai |
installerar eller uppdaterar AI-appar |
sudo crittod users |
kontona på servern |
systemctl status critto |
kör den? |
journalctl -u critto -f |
dess logg |
curl http://127.0.0.1:8787/health |
en snabb hälsokontroll |
/health visar "desktop": "on-demand" tills Lyan först behöver
skrivbordsprogramvaran. Det är normalt: servern laddar ner den då.
Avinstallera
- Debian / Ubuntu:
sudo apt purge critto-server - Fedora / RHEL:
sudo dnf remove critto-server - Docker:
docker rm -f critto(lägg tilldocker volume rm critto-data critto-keys critto-aiför att också radera datan)
Detta stoppar servern och tar bort paketet och, om inget annat Critto-paket
finns kvar, paketförrådet. Din data i /var/lib/critto behålls om du kommer
tillbaka. Så här raderar du allt:
sudo rm -rf /var/lib/critto /etc/critto /opt/critto-ai
sudo userdel critto
Om du inte vill att paketen ska lägga till paketförrådet från början kör du
echo CRITTO_REPO=no | sudo tee /etc/default/critto före installationen.
Felsökning
- Appen säger att den inte kan nå servern. Kontrollera
systemctl status crittopå servern och att appens adress går att nå från enheten (på en mobil betyder127.0.0.1själva mobilen). - ”Parkopplingskoden fungerade inte.” Koder gäller i 10 minuter och kan användas
en gång. Skapa en ny med
sudo crittod pair. Kör kommandot medsudo: annars får du en kod för en annan, personlig server. - En AI-app visas inte under Anslutningar. Kör
sudo crittod setup ai <name>igen; servern startar om när kommandot är klart. - Något annat.
journalctl -u critto -n 100visar oftast vad som är fel.