Gå til indholdet

CLI Reference

Komplet oversigt over alle nordkraft kommandoer.


Grundlæggende brug

nordkraft [KOMMANDO] [ARGUMENTER] [FLAG]

Få hjælp til enhver kommando:

nordkraft help
nordkraft [KOMMANDO] --help

Container kommandoer

deploy

Deploy en ny container.

nordkraft deploy IMAGE [FLAG]

Argumenter:

Argument Beskrivelse
IMAGE Container image (f.eks. nginx:alpine, ghcr.io/user/app:v1)

Flag:

Flag Kort Default Beskrivelse
--port -p - Port(s) containeren lytter på (kan gentages)
--env -e - Miljøvariabel (kan gentages)
--cpu 0.5 CPU grænse i cores ⚠️
--memory -m 512m Hukommelsesgrænse ⚠️
--persistence false Aktiver persistent storage
--volume-path - Sti til persistent storage (påkrævet med --persistence)
--ipv6 false Allokér global IPv6 adresse
--name -n auto Brugerdefineret container navn
--garage auto Target garage (ry, aarhus, etc.)
--hardware auto Hardware præference (optiplex, raspi, mac-mini)

Kendte problemer

CPU/Memory limits: Disse flag er implementeret men bliver ikke anvendt endnu (bug #1). Dette bliver rettet i næste opdatering.

Eksempler:

# Simpel webserver
nordkraft deploy nginx:alpine --port 80

# Med miljøvariabler
nordkraft deploy myapp:v1 --port 3000 \
  --env NODE_ENV=production \
  --env API_KEY=secret123

# Med ressourcegrænser
nordkraft deploy myapp:v1 --port 3000 \
  --cpu 1.0 \
  --memory 1g

# Database med persistent storage
nordkraft deploy postgres:15 --port 5432 --persistent

list

Vis alle dine containere.

nordkraft list [FLAG]

Flag:

Flag Beskrivelse
--all Vis også stoppede containere
--json Output som JSON

Eksempel output:

NAME                              IMAGE           STATUS    IP            PORTS
app-8ade4622-fdd6-411b-afc9...   nginx:alpine    running   172.21.5.15   80/tcp
db-3fa85f64-5717-4562-b3fc...    postgres:15     running   172.21.5.16   5432/tcp

logs

Vis logs fra en container.

nordkraft logs CONTAINER [FLAG]

Flag:

Flag Kort Default Beskrivelse
--lines -n 100 Antal linjer
--follow -f false Følg logs i realtid

Eksempler:

# Sidste 100 linjer
nordkraft logs myapp

# Sidste 50 linjer
nordkraft logs myapp --lines 50

# Følg logs live
nordkraft logs myapp --follow

stop

Stop en kørende container.

nordkraft stop CONTAINER

Containeren stoppes men slettes ikke. Data bevares.


start

Start en stoppet container.

nordkraft start CONTAINER

restart

Genstart en container (stop + start).

nordkraft restart CONTAINER

Kommer snart

Restart kommandoen er under udvikling. I mellemtiden: brug nordkraft stop NAVN efterfulgt af nordkraft start NAVN.


rm

Slet en container permanent.

nordkraft rm CONTAINER [FLAG]

Flag:

Flag Beskrivelse
--force Slet uden bekræftelse

Advarsel

Dette sletter containeren og frigiver IP-adressen. Persistent data backuppes automatisk.


Deklarative deployments (.nk specs)

NordKraft.io gemmer hver deployment som en .nk spec-fil (TOML-format) i ~/.nordkraft/deployments/. Du kan redigere dem direkte, diff'e mod kørende containere og applicere ændringer — ligesom Kubernetes manifests, men enklere.

init

Generér en .nk spec fra en kørende container.

nordkraft init <container>

Bruger du uden argument, får du en interaktiv vælger over kørende containere.

Flag:

Flag Beskrivelse
--from-server Byg specen fra den config containeren blev deployet med, i stedet for fra den kørende container
nordkraft init web --from-server

--from-server henter den gemte deploy-config fra controller'en. Det er den nøjagtige konfiguration — inklusive volume_size, som ikke kan aflæses fra runtime — og specen beholder serverens revisionsnummer i stedet for at starte forfra på 0.

Containere der blev deployet før config-tracking blev indført, har ingen gemt config. Der siger kommandoen det, og du bruger nordkraft init <container> uden flaget i stedet.

Mistet dine specs?

Se Ny maskine / mistet config for at bygge hele ~/.nordkraft op igen.

specs

List alle gemte deployment specs. Grøn prik = ny deployment (r0), cyan prik = opgraderet mindst én gang.

nordkraft specs

diff

Sammenlign en .nk spec mod den kørende container og vis forskelle.

nordkraft diff <container>

upgrade

Applicer spec-ændringer til den kørende container. Genbygger containeren hvis nødvendigt.

nordkraft upgrade <container>
nordkraft upgrade <container> --yes   # spring bekræftelse over

edit

Åbn .nk spec-filen i $EDITOR (default: vim).

nordkraft edit <container>

spec-set

Redigér et felt i en .nk spec direkte fra kommandolinjen — uden at åbne en editor. Værdier type-coerces automatisk (int → float → bool → string), og filen valideres før den gemmes, så typos fanges med det samme.

nordkraft spec-set <container> <key> <value> [--apply]

Dotted key syntax: table.field, fx resources.cpu, deployment.image, network.ipv6.

Array operationer: Prefix værdien med + for at tilføje, eller - for at fjerne:

# Sæt et simpelt felt
nordkraft spec-set web resources.cpu 2
nordkraft spec-set web deployment.image nginx:1.27
nordkraft spec-set web network.ipv6 true

# Tilføj/fjern fra arrays
nordkraft spec-set web network.ports +8080
nordkraft spec-set web network.ports -8080

# Redigér og applicer i én kommando
nordkraft spec-set web resources.memory 512m --apply
Flag Beskrivelse
--apply Applicer ændringen til den kørende container med det samme

spec-unset

Fjern et felt fra en .nk spec.

nordkraft spec-unset <container> <key>

Eksempel:

nordkraft spec-unset web network.ipv6

spec-delete

Slet en .nk spec-fil. Dette påvirker IKKE den kørende container — brug nordkraft rm separat hvis du også vil slette containeren.

nordkraft spec-delete <container>
nordkraft spec-delete <container> --yes   # spring bekræftelse over
Flag Beskrivelse
-y, --yes Spring bekræftelsesprompt over

Hvorfor bruge specs?

Specs er perfekte til at versionere din infrastruktur i git, genudrulle en container med de samme indstillinger, eller dele opsætninger med kollegaer. Filen ~/.nordkraft/deployments/<name>.nk er ren TOML — commit den gerne.


Netværk kommandoer

network info

Vis dine netværksoplysninger.

nordkraft network info

Output:

Garage:           ry
Container subnet: 172.21.5.0/24
VPN IP:           172.20.1.5
API server:       172.20.0.254

Ingress kommandoer (HTTPS)

ingress enable

Aktiver HTTPS adgang til en container.

nordkraft ingress enable CONTAINER [FLAG]

Flag:

Flag Påkrævet Beskrivelse
--subdomain Ja Subdomain (f.eks. myappmyapp.nordkraft.cloud)
--port Nej Target port (default: containerens port)

Eksempel:

nordkraft ingress enable myapp --subdomain coolsite
# Resultat: https://coolsite.nordkraft.cloud

ingress disable

Deaktiver HTTPS adgang.

nordkraft ingress disable CONTAINER

ingress status

Vis ingress status for en container.

nordkraft ingress status CONTAINER

ingress list

Vis alle dine ingress routes.

nordkraft ingress list

IPv6 kommandoer

ipv6 open

Åbn firewall for containerens IPv6 adresse.

nordkraft ipv6 open CONTAINER

Gør containeren tilgængelig på en global IPv6 adresse.


ipv6 close

Luk firewall for IPv6.

nordkraft ipv6 close CONTAINER

ipv6 status

Vis IPv6 status.

nordkraft ipv6 status CONTAINER

ipv6 list

Vis alle IPv6 allokeringer.

nordkraft ipv6 list

Auth kommandoer

auth login

Bekræft din authentication og forbindelse.

nordkraft auth login

Output:

✓ Sikker forbindelse etableret til Dit Navn!

auth status

Vis detaljeret auth status.

nordkraft auth status

System kommandoer

status

Vis systemstatus.

nordkraft status

nodes

Vis tilgængelige nodes.

nordkraft nodes

version

Vis CLI version.

nordkraft --version

Alias kommandoer

Containere får automatisk UUID-navne som app-3ada50d2-5e43-4863-b0fc-eec1f0fd56cc. Et alias er et kort navn du selv vælger, og det kan bruges alle steder hvor en kommando forventer en container.

alias set

nordkraft alias set <alias> <container>
nordkraft alias set web app-3ada50d2-5e43-4863-b0fc-eec1f0fd56cc
nordkraft logs web
nordkraft diff web

alias list

nordkraft alias list

alias rm

nordkraft alias rm web

Fjerner kun aliaset — containeren røres ikke.

Aliaser findes kun på din maskine

De ligger i ~/.nordkraft/aliases.json, og hverken controller'en eller noderne kender dem. Mister du filen, kan de ikke genskabes — se Ny maskine / mistet config.


Registry kommandoer

Dit eget private image-registry kører som en container i dit subnet. Det lader dig deploye images du selv har bygget, uden at lægge dem på Docker Hub.

registry init

nordkraft registry init

Deployer registry-containeren og gemmer adressen i ~/.nordkraft/registry.json.

Kør kun én gang

Kender CLI'en ikke dit registry — fx på en ny maskine — deployer registry init et nyt ved siden af det du allerede har. Genskab i stedet registry.json, se Ny maskine / mistet config.

registry status

nordkraft registry status

Viser adresse, container og hvilke images der ligger i registry'et.

registry list

nordkraft registry list

push

nordkraft push <image>

Sender et lokalt image til dit registry. nordkraft registry push gør det samme.

docker build --platform linux/amd64 -t myapp:v1 .
nordkraft push myapp:v1
nordkraft deploy 172.21.<dit-slot>.<ip>:5001/myapp:v1 --port 3000

Byg til den rigtige arkitektur

Noderne kører x86_64. Bygger du på en Apple Silicon Mac uden --platform linux/amd64, får du et arm64-image der fejler med "exec format error" når containeren starter.

registry destroy

nordkraft registry destroy [--force]

Fjerner registry-containeren og alle images i den.


Forbindelse

setup

nordkraft setup NKINVITE-...

Førstegangsopsætning: genererer et nyt WireGuard nøglepar lokalt, claimer dit token, skriver konfigurationen og rejser tunnelen. Se Installation.

connect / disconnect

nordkraft connect
nordkraft disconnect

Rejser eller lukker tunnelen med den config der allerede ligger i ~/.nordkraft/wg.conf.

reset

nordkraft reset [--force]

Fjerner al lokal konfiguration

reset lukker tunnelen og sletter ~/.nordkraft — inklusive din private nøgle, dine specs og dine aliaser. Dine containere bliver ikke rørt, men du skal bruge en ny token for at komme på igen. Tag en kopi først.


Opdatering

update

nordkraft update
nordkraft update --check

Henter nyeste release og erstatter binary'en. --check viser kun om der er en nyere version. Din konfiguration i ~/.nordkraft/ røres ikke.


Globale flag

Disse flag virker på alle kommandoer:

Flag Beskrivelse
--help Vis hjælp
--json Output som JSON
--quiet Minimal output
--verbose Detaljeret output

Exit koder

Kode Betydning
0 Succes
1 Generel fejl
2 Ugyldig kommando/argumenter
3 Authentication fejl
4 Netværksfejl
5 Container ikke fundet