Yleensä Critto toimii Critto-tililläsi. Jos haluat pitää kaiken omistamallasi tietokoneella, voit ajaa Critto-palvelinta itse: crittosi, niiden muistot ja keskustelusi pysyvät sillä koneella, ja Critton tietokone- ja puhelinsovellukset yhdistyvät siihen.

Tämä opas on Linuxille. Tarvitset:

  • 64-bittisen Linux-tietokoneen (Intel/AMD tai ARM, esimerkiksi Raspberry Pi 4/5), joka pysyy päällä: kotipalvelimen, minitietokoneen tai pienen pilvipalvelimen,
  • noin 1 Gt vapaata muistia ja muutaman gigatavun levytilaa,
  • järjestelmänvalvojan oikeudet (sudo).

NixOS:lle on saatavilla flake ja NixOS-moduuli. Debianille, Ubuntulle, Fedoralle, RHEL-pohjaisille järjestelmille ja openSUSElle on automaattisesti päivittyvät paketit. Muissa järjestelmissä voit käyttää säilökuvaa tai staattista koontia.


NixOS

Lisää Critton flake järjestelmäflakeesi:

{
  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";
          };
        })
      ];
    };
  };
}

Suorita sitten sudo nixos-rebuild switch --flake .#myserver ja parita sovelluksesi komennolla sudo crittod pair (vaihe 2).

  • Päivitykset: suorita nix flake update critto ja rakenna järjestelmä uudelleen. Paketti on allekirjoitettu, valmiiksi koottu julkaisu (staattinen binääri, joten glibc-ongelmia ei tule). Beta-kanavan saat käyttöön asetuksella services.critto.package = critto.packages.${system}.crittod-beta;.
  • Salaisuudet: lisää BOAT_API_KEY=… ja CRITTO_BACKUP_KEY=… environmentFile-tiedostoon (root-käyttäjän omistama, käyttöoikeudet 600; myös agenix ja sops-nix käyvät). Palvelu lukee tiedoston käynnistyessään eikä kopioi sitä Nix storeen.
  • Asetukset: listen (oletus 127.0.0.1:8787), publicUrl, webHost, openFirewall (oletuksena pois päältä), dataDir (oletus /var/lib/critto) ja settings muille CRITTO_*-muuttujille. den.backend valitsee, missä Pesä toimii (boat, local tai none; katso Pesä).
  • Tekoälysovellukset: suosi nixpkgsin paketteja aiPackages-asetuksessa, esimerkiksi pkgs.codex ja pkgs.claude-code (joka vaatii allowUnfree-asetuksen). Jos nixpkgsistä puuttuu tarvitsemasi paketti, ota käyttöön programs.nix-ld.enable = true; ja suorita sudo crittod setup ai (vaihe 3). Pi tarvitsee aiPackages-asetukseen vain pkgs.nodejs_22-paketin, minkä jälkeen suorita sudo crittod setup ai pi.
  • Etäkäyttö: ota käyttöön services.tailscale.enable = true; ja suorita sudo tailscale serve --bg 8787, tai määritä services.cloudflared-palvelulle ingress-sääntö osoitteeseen http://127.0.0.1:8787 (katso vaihe 5).
  • systemd eristää palvelun, mutta bubblewrap ja paikallinen Pesä tarvitsevat käyttäjänimiavaruuksia, joten älä aseta security.allowUserNamespaces = false.

Oppaan loppu pätee myös NixOS:ään; suorita päivitykset komennolla nix flake update aptin tai dnf:n sijaan.


1. Asenna

Avaa palvelimella pääte ja suorita:

curl -fsSL https://downloads.critto.app/install-server.sh | sh

Se lisää Critton pakettivaraston, asentaa critto-server-paketin, käynnistää palvelimen ja näyttää parituskoodin. Siinä kaikki: siirry kohtaan Parita sovelluksesi.

Haluatko uudet versiot ennen muita? Käytä beta-kanavaa: curl -fsSL https://downloads.critto.app/install-server.sh | CRITTO_CHANNEL=beta sh

Tarkista asennusohjelma ensin (valinnainen)

Skripti on allekirjoitettu Critton julkaisuavaimella. Voit tarkistaa sen ennen suorittamista:

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 löytyy useimpien jakelujen paketeista. Tarkistussumma on tiedostossa install-server.sh.sha256. Paketinhallinta tarkistaa allekirjoitetut paketit jokaisessa asennuksessa ja päivityksessä.

Tai määritä pakettivarasto itse

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

Avaimen sormenjälki on C78E FB7F 67CC 8184 1F70 EE3D D121 DC94 C534 50E3 (”Critto Packages packages@critto.app”).

Tai käytä Dockeria / Podmania

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

Säilö ei tarvitse erityisoikeuksia. Tiedot ovat critto-data-taltiossa, holvin pääavain critto-keys-taltiossa (erillään tiedoista, jotta toisen kopio ei avaa toista; katso kohta Varmuuskopiot) ja tekoälysovellukset critto-ai-taltiossa. Myös polkuun /etc/critto/vault.key liitetty Docker-salaisuus käy. Päivitä komennolla docker pull ghcr.io/nexferra-ltd/critto-server:latest ja luo säilö uudelleen samoilla taltioilla.

Tai käytä staattista koontia

Jokaisesta julkaisusta on yksitiedostoinen koonti, joka toimii missä tahansa Linuxissa: https://downloads.critto.app/releases/<version>/critto-server-<version>-linux-x86_64.tar.gz (tai -aarch64). Pura se ja suorita ./crittod serve. Sinun täytyy itse pitää se käynnissä ja ajan tasalla, joten paketit ovat helpompi vaihtoehto.


2. Parita sovelluksesi

Palvelin päästää sisään vain paritetut laitteet. Parita laite näin:

  1. Hae palvelimelta koodi (voimassa 10 minuuttia, toimii kerran):

    sudo crittod pair
    
  2. Valitse Critto-sovelluksen kirjautumisnäkymässä Käytä omaa Critto-palvelintani. Anna palvelimen osoite ja koodi.

    • Palvelimella: http://127.0.0.1:8787
    • Muilla laitteilla tarvitset niille saavutettavan osoitteen; katso Yhdistä muilta laitteilta.

Kun yksi laite on paritettu, voit parittaa lisää sen avulla: Asetukset → Laitteet → Parita puhelin näyttää QR-koodin. Se sisältää osoitteen, jossa palvelin kuuntelee. Jos laitteesi tavoittavat sen muulla tavalla (tunnelin, välityspalvelimen tai verkkotunnuksen kautta), aseta CRITTO_PUBLIC_URL tähän osoitteeseen (katso Asetukset).

Tietokonesovellus samalla koneella? Tietokonesovellus käynnistää tavallisesti oman yksityisen Critto-palvelimensa. Jos asensit palvelimen tälle koneelle, valitse Käytä omaa Critto-palvelintani ja anna http://127.0.0.1:8787, jotta molemmat käyttävät samoja crittoja.


3. Yhdistä tekoälysi

Crittot ajattelevat valitsemallasi tekoälyllä. Voit ottaa tekoälyn käyttöön kahdella tavalla.

Tekoälytilauksesi (ChatGPT, Claude, Grok…)

Critto käyttää näitä virallisten komentorivisovellusten kautta. Asenna sovellukset palvelimelle kerran:

sudo crittod setup ai

Valitse käyttämäsi sovellukset tai nimeä ne suoraan: sudo crittod setup ai codex claude.

Sovellus Käytä tämän kanssa
codex ChatGPT-tilaus (Plus, Pro, Business…)
claude Claude-tilaus (Pro, Max…)
grok SuperGrok / X Premium
muse Meta AI (vaatii Node.js 20+; asennusohjelma lisää sen, jos mahdollista)
antigravity Google Antigravity. Lue ensin sen näyttämä varoitus: Googlen ehtojen mukaan muut ohjelmistot eivät saa käyttää Antigravity-kirjautumista, ja Google on jäädyttänyt tilejä tämän vuoksi.

Sovellukset asennetaan hakemistoon /opt/critto-ai, eivätkä ne päivity itsestään. Päivitä ne välillä komennolla sudo crittod setup ai --update.

Avaa sitten Critto-sovelluksessa Yhteydet ja kirjaudu jokaiseen. Kirjautumistiedot tallennetaan palvelimelle, ei sovellukseen.

Mukautettu tekoäly: paikalliset mallit ja API-avaimet

Ota käyttöön Asetukset → Edistynyt tila ja valitse sitten Asetukset → Mukautettu tekoäly → Lisää yhteys. Kaikki ”OpenAI-yhteensopivaa” API:a käyttävät palvelut käyvät. Valitse esiasetus kohdasta Aloita tästä tai täytä osoite itse:

Palvelu Perus-URL API-avain
Ollama palvelimella http://localhost:11434/v1 ei mitään
LM Studio palvelimella http://localhost:1234/v1 ei mitään
Ollama toisella kotikoneella http://192.168.1.20:11434/v1 ei mitään
OpenRouter https://openrouter.ai/api/v1 OpenRouter-avaimesi

Valitse Testaa yhteys, poimi malli ja tallenna. Voit valita tekoälyn mille tahansa crittolle.

Jos käytät Ollamaa toisella koneella, käynnistä se asetuksella OLLAMA_HOST=0.0.0.0, jotta se hyväksyy verkkoyhteydet. ”localhost” tarkoittaa aina Critto-palvelimen omaa konetta.


4. Pesä (valinnainen)

Pesä on crittojesi pilvitietokone suurempia tehtäviä varten (rakentamiseen, verkon selaamiseen ja sovellusten käyttöön). Omalla palvelimella käytetään Pesä-ympäristöjä omalla Boat-tililläsi. Liitä Boat API -avain sovelluksen kohtaan Yhteydet tai lisää se asetustiedostoon BOAT_API_KEY-muuttujana ja käynnistä uudelleen.

Hyvä tietää:

  • Palvelimesi ei tarvitse olla saavutettavissa internetistä, jotta Pesä toimii. Se ottaa yhteyden Pesä-ympäristöön, ei päinvastoin.
  • Pesä-töihin tarvitaan tekoäly, jolla on julkinen internetosoite (tilauksesi tai OpenRouterin kaltainen palvelu). Omassa verkossasi toimiva tekoäly (Ollama, LM Studio) voi jutella, mutta pilven Pesä ei saa siihen yhteyttä.
  • Boat veloittaa Pesä-ajasta tililtäsi.

Oma Pesä omalla koneellasi

Ei Boat-tiliä? Palvelin voi ajaa kunkin henkilön Pesä-ympäristön paikallisena virtuaalikoneena. Se tarvitsee /dev/kvm-tuen, noin 4 Gt muistia käynnissä olevaa Pesä-ympäristöä kohti ja levykuvan kertaluonteisen luonnin. NixOS:ssa:

services.critto.den.backend = "local";

Muissa järjestelmissä lisää /etc/critto/critto.env-tiedostoon CRITTO_DEN_BACKEND=local. Koko opas (vaatimukset, koot, mihin Pesä pääsee ja levykuvan luonti) on täällä: Oma Pesä omalla koneellasi.


5. Yhdistä muilta laitteilta

Oletuksena palvelin kuuntelee vain omalla tietokoneellaan (127.0.0.1:8787), mikä on turvallinen oletus. Jos haluat käyttää puhelinta tai kannettavaa mistä tahansa, valitse jokin seuraavista tavoista. Kahdella ensimmäisellä saat suojatun https://-osoitteen avaamatta reitittimen portteja.

Tailscale (helpoin henkilökohtaiseen käyttöön)

Asenna Tailscale palvelimelle ja laitteillesi, kirjaudu niissä samalla tilillä ja suorita palvelimella:

sudo tailscale serve --bg 8787

Saat osoitteen, kuten https://myserver.tail1234.ts.net. Käytä sitä sovelluksissa. Vain omat laitteesi pääsevät siihen.

Cloudflare Tunnel (julkinen osoite omalla verkkotunnuksellasi)

Jos verkkotunnuksesi on Cloudflaressa, asenna cloudflared ja suorita:

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

Palvelimesi on tämän jälkeen osoitteessa https://critto.example.com. Jokainen laite tarvitsee silti parituskoodin.

Jo käytössä oleva käänteinen välityspalvelin

Osoita se osoitteeseen http://127.0.0.1:8787 ja salli WebSocket-yhteydet. Esimerkiksi Caddy hoitaa HTTPS:n itse:

critto.example.com {
    reverse_proxy 127.0.0.1:8787
}

Vain kotiverkossa

Jos kaikki laitteet ovat kotona, anna palvelimen kuunnella suoraan verkossa. Aseta CRITTO_LISTEN=0.0.0.0:8787 (katso Asetukset) ja käytä sovelluksissa osoitetta http://<server's IP address>:8787. Tämä on salaamatonta http-liikennettä, joten käytä sitä vain luotetussa verkossa.

Aseta valitsemastasi tavasta riippumatta CRITTO_PUBLIC_URL osoitteeseen, jotta parituksen QR-koodit osoittavat oikeaan paikkaan.


6. Päivitykset

Palvelin päivittyy muun järjestelmän mukana:

  • Debian / Ubuntu: sudo apt update && sudo apt upgrade
  • Fedora / RHEL: sudo dnf upgrade
  • openSUSE: sudo zypper update

Palvelu käynnistyy päivityksen jälkeen itsestään uudelleen. Tietokone- ja puhelinsovellukset päivittyvät erikseen.


7. Varmuuskopiot

Kaikki on hakemistossa /var/lib/critto: crittosi, muistot, keskustelut, tiedostot ja tekoälypalvelujen kirjautumistiedot. Asetukset ovat tiedostossa /etc/critto/critto.env.

Tee kopio itse. Pysäytä palvelin yhtenäisen kopion saamiseksi:

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

Palvelin säilyttää käytön aikana tuoreen tietokantakopion osoitteessa /var/lib/critto/backups/latest.db.

Varmuuskopiot muualla (S3, Cloudflare R2, Backblaze B2…). Ota sovelluksessa käyttöön Edistynyt tila ja valitse Asetukset → Varmuuskopiot → Vaihda kohdetta…. Salaa kopiot ennen niiden lähtöä palvelimelta lisäämällä varmuuskopioavain:

sudo crittod backup keygen

Kopioi CRITTO_BACKUP_KEY=…-rivi tiedostoon /etc/critto/critto.env, säilytä kopiota turvallisessa paikassa ilman verkkoyhteyttä (varmuuskopioita ei voi palauttaa ilman avainta) ja käynnistä palvelin uudelleen: sudo systemctl restart critto.

Muualla säilytettävät varmuuskopiot päivittyvät jatkuvasti:

  • tietokannan muutokset lähetetään 10 sekunnin välein;
  • käyttäjien tiedostot lähetetään 10 minuutin välein;
  • täydellinen kopio lähetetään kerran päivässä.

Voit palauttaa suoraan tallennuspalvelusta minkä tahansa hetken viimeisten 7 päivän ajalta:

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 on UTC-aikaa; jätä se pois, jos haluat palauttaa uusimman tilanteen. Palautettu users/-kansio tulee samaan paikkaan.)

Jos haluat palauttaa yksittäisen ladatun varmuuskopiotiedoston (päivittäisen tilannevedoksen), siirrä se paikkaan, jota critto-käyttäjä voi lukea (esimerkiksi /var/lib/critto) ja suorita sitten:

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

Holvin avaimet. Tallennetut avaimet ja salasanat salataan pääavaimella, joka on tiedostossa /etc/critto/vault.key (luodaan asennuksen yhteydessä, vain critto-käyttäjän luettavissa; Dockerissa critto-keys-taltiossa, NixOS:ssa asetuksessa services.critto.vaultKeyFile, oletuksena /var/lib/critto-keys/vault.key: aina erillään datasta). Avainta ei koskaan sisällytetä varmuuskopioon. Sen avaamien tilikohtaisten avainten luettelo (/var/lib/critto/vault/keys.db) saa oman salatun varmuuskopionsa muiden varmuuskopioiden rinnalle vault/-hakemistoon, jossa sitä säilytetään 30 päivää, mutta vain jos määrität palautusavaimen:

sudo crittod vault recovery-keygen

Lisää CRITTO_VAULT_BACKUP_RECIPIENT=…-rivi tiedostoon /etc/critto/critto.env ja käynnistä palvelin uudelleen. Säilytä tulostettu palautusidentiteetti ja kopio tiedostosta /etc/critto/vault.key offline-tilassa salasananhallinnassasi, ei koskaan palvelimella. Jos palvelin katoaa, palauta vault.key, lataa vault/latest.db.age ja suorita:

sudo -u critto crittod vault restore --identity /path/to/recovery.txt /path/to/latest.db.age

Asetukset

Palvelin lukee tiedoston /etc/critto/critto.env, jossa kaikki asetukset selitetään. Muokkaa sitä komennolla sudo nano /etc/critto/critto.env ja suorita sitten sudo systemctl restart critto. Yleisiä asetuksia:

Asetus Tehtävä
CRITTO_LISTEN Osoite, jossa palvelin kuuntelee. Oletus 127.0.0.1:8787 (vain tämä tietokone).
CRITTO_PUBLIC_URL Laitteidesi käyttämä osoite, esim. https://critto.example.com.
BOAT_API_KEY Boat-avaimesi Pesä-ympäristöä varten.
CRITTO_BACKUP_KEY Salaa muualla säilytettävät varmuuskopiot.
CRITTO_ANTIGRAVITY=0 Piilottaa Antigravityn.
CRITTO_PROACTIVE=0 Crittot eivät ota itse yhteyttä (ajastetut tehtävät odottavat). Ilman Critto Smarts:ta yhteydenotot käyttävät critton omaa tekoälyä.
CRITTO_JOB_WORKERS Samanaikaisesti suoritettavien taustatöiden (yhteydenotot ja ajastetut tehtävät) määrä. Oletus 4.

Hyödyllisiä komentoja:

Komento
sudo crittod pair parituskoodi uudelle laitteelle
sudo crittod setup ai asentaa tai päivittää tekoälysovellukset
sudo crittod users palvelimen tilit
systemctl status critto tarkistaa, onko palvelin käynnissä
journalctl -u critto -f palvelimen loki
curl http://127.0.0.1:8787/health nopea toimintatarkistus

/health näyttää "desktop": "on-demand", kunnes Pesä tarvitsee työpöytäohjelmistonsa ensimmäistä kertaa. Se on normaalia: palvelin lataa sen silloin.


Poista asennus

  • Debian / Ubuntu: sudo apt purge critto-server
  • Fedora / RHEL: sudo dnf remove critto-server
  • Docker: docker rm -f critto (poista tiedot myös komennolla docker volume rm critto-data critto-keys critto-ai)

Tämä pysäyttää palvelimen, poistaa paketin ja poistaa pakettivaraston, jos muita Critto-paketteja ei ole jäljellä. Tietosi hakemistossa /var/lib/critto säilyvät, jos palaat myöhemmin. Poista kaikki näin:

sudo rm -rf /var/lib/critto /etc/critto /opt/critto-ai
sudo userdel critto

Jos et halua pakettien lisäävän pakettivarastoa asennuksen yhteydessä, suorita ennen asennusta echo CRITTO_REPO=no | sudo tee /etc/default/critto.


Vianmääritys

  • Sovellus ilmoittaa, ettei se saa yhteyttä palvelimeen. Tarkista palvelimella systemctl status critto ja että sovelluksen osoite on laitteen saavutettavissa (puhelimessa 127.0.0.1 tarkoittaa itse puhelinta).
  • ”Parituskoodi ei toiminut.” Koodit ovat voimassa 10 minuuttia ja toimivat kerran. Luo uusi komennolla sudo crittod pair. Käytä sudo-etuliitettä: ilman sitä saat koodin eri henkilökohtaista palvelinta varten.
  • Tekoälysovellus ei näy kohdassa Yhteydet. Suorita sudo crittod setup ai <name> uudelleen; palvelin käynnistyy komennon päätyttyä.
  • Jokin muu. journalctl -u critto -n 100 kertoo yleensä, mikä on vialla.