# OpenDartboard x86

Det här är den fristående dartservern för **64-bitars x86-Linux**. Den innehåller ingen Raspberry Pi-tjänst och inget lokalt skrivbordsgränssnitt. All installation, kamerajustering, kalibrering och 501-spel sker i webbläsaren.

## Starta

Krav: Linux x86_64, Docker med Compose och tre V4L2/UVC-kameror.

```bash
cd x86
./install.sh
```

Öppna sedan `http://localhost:13520`. Från en annan dator eller telefon används Linux-datorns IP-adress, till exempel `http://192.168.1.50:13520`.

Servern har ingen inloggning och ska därför endast exponeras på ett betrott lokalt nätverk, inte direkt mot internet.

Installationen bygger endast `opendartboard-x86`, publicerar webbgränssnittet på port 13520 och sparar kamerainställningarna i `x86/data/config.json`.

## Första konfigureringen

1. Öppna **Kameror** i vänstermenyn och välj tre olika kameror.
2. Centrera tavlan i varje bild. Använd digital zoom och horisontell/vertikal panorering.
3. Töm tavlan, öppna **Kalibrering** och välj **Kalibrera nu**.
4. När alla tre visar **Geometri OK** startar dartmotorn automatiskt.
5. Öppna **Spela 501**, ange spelarna och starta spelet.

501 använder double-out. Efter tre pilar eller bust ska pilarna tas bort; motorn känner normalt detta automatiskt och knappen **Tavlan är tom** finns som reserv. En felavläst träff kan rättas genom **Ångra kast** och ett klick på den stora darttavlan.

## Drift

```bash
# Visa serverlogg
docker compose -f x86/docker-compose.yml logs -f

# Starta om
docker compose -f x86/docker-compose.yml restart

# Stoppa
docker compose -f x86/docker-compose.yml down
```

Byt värdport vid behov:

```bash
OPENDARTBOARD_PORT=8080 ./x86/install.sh
```

Stabila sökvägar under `/dev/v4l/by-id/` rekommenderas om kamerornas `/dev/videoN`-nummer byter plats efter omstart.

## Bygga direkt på Linux

Med C++17, CMake, Git och OpenCV-utvecklingspaketen installerade:

```bash
cmake -S x86 -B x86/build-native -DCMAKE_BUILD_TYPE=Release
cmake --build x86/build-native --parallel
(cd x86/build-native && ctest --output-on-failure)
./x86/build-native/bin/opendartboard-x86
```

Kör `./x86/build-native/bin/opendartboard-x86 --help` för samtliga serverflaggor.
