# DigiPOS — uputstvo za instalaciju

**Proizvođač:** S.O.K. doo, Kraljevo  
**PIB:** 105320485 · **Proizvod:** DigiPOS ver. 2.0  
**Datum:** jul 2026.

> **Za Poresku upravu (прилог П3):** кратко ćirilica упутство →  
> [`ESIR-UPUTSTVO-ZA-INSTALACIJU.md`](ESIR-UPUTSTVO-ZA-INSTALACIJU.md) → ODT `DigiPOS-ESIR-instalacija.odt`  
> (`npm run docs:esir-prilozi`). Конфигурација (П4): [`ESIR-UPUTSTVO-ZA-KONFIGURACIJU.md`](ESIR-UPUTSTVO-ZA-KONFIGURACIJU.md).

Instalaciju i prvo puštanje u rad obavlja **S.O.K. doo Kraljevo** ili ovlašćeni instalater na lokaciji korisnika. Ovo duže uputstvo služi za teren (mreža, HTTPS, MySQL…).

---

## Sadržaj

1. [Preduslovi](#1-preduslovi)
2. [Instalacija programa](#2-instalacija-programa)
3. [Pokretanje servera](#3-pokretanje-servera)
4. [Konfiguracija nakon instalacije](#4-konfiguracija-nakon-instalacije)
5. [LPFR i fiskalni štampač](#5-lpfr-i-fiskalni-štampač)
6. [Mreža — telefoni i tableti](#6-mreža--telefoni-i-tableti)
7. [HTTPS (opciono, PWA)](#7-https-opciono-pwa)
8. [Provera da sve radi](#8-provera-da-sve-radi)
9. [Rešavanje problema](#9-rešavanje-problema)

---

## 1. Preduslovi

| # | Zahtev |
|---|--------|
| 1 | Računar sa **Windows 10/11** (64 bita) ili **Linux x64** |
| 2 | **Node.js** — samo ako **ne** koristite gotov paket (v. [INSTALACIJA.md](INSTALACIJA.md)) |
| 3 | **Štampač** za fiskalne račune: termalni 57–80 mm, **ESC/POS**, podrška za ćirilicu (CP1251), QR |
| 4 | **LPFR** (L-PFR ili V-PFR) dostupan u lokalnoj mreži ili na istom računaru |
| 5 | Bezbednosni element: **V-PFR → digitalni sertifikat** (PFX + PAK); **L-PFR → smart kartica**, koju drži sam L-PFR uređaj — prema uputstvu proizvođača PFR-a |
| 6 | Za knjigovodstveni režim: **MySQL** server sa bazom (`sokdooco_knjige` ili ekvivalent) |
| 7 | LAN/Wi‑Fi za telefone konobara (isti mrežni segment kao server) |

**Minimalan hardver:** Celeron / 2 GB RAM / 1 GB slobodnog diska (preporuka: 4 GB RAM, SSD).

---

## 2. Instalacija programa

### 2.A Preporučeno — paket sa ugrađenim Node-om (bez npm)

Za prodavnice i restorane **bez IT na lokaciji** koristite samodovoljni ZIP/tar.gz:

| Platforma | Paket | Koraci |
|-----------|-------|--------|
| Windows | `digipos-windows-x64.zip` | Raspakuj → `instaliraj.bat` |
| Linux | `digipos-linux-x64.tar.gz` | `tar -xzf` → `sudo ./install.sh` ili `./install.sh --user` |

Detaljno: **[INSTALACIJA.md](INSTALACIJA.md)** — autostart, systemd, prvi dan, deinstalacija.

**Za početnike (bez IT znanja):** **[INSTALACIJA-STANDALONE.md](INSTALACIJA-STANDALONE.md)** — korak po korak sa objašnjenjem miša, ZIP-a i prvog podešavanja.

Paket uključuje Node runtime i SQLite (`app/digipos.db` pri prvom startu). **MySQL nije potreban** u standalone režimu.

### 2.B Ručna instalacija (razvoj / knjigovodstvo sa MySQL)

1. Raspakujte distribuciju DigiPOS u folder, npr. `C:\DigiPOS`.
2. Otvorite terminal (PowerShell ili CMD) u tom folderu.
3. Jednom pokrenite:

```bash
npm install
```

4. Proverite da postoje fajlovi:
   - `server.js` — glavni program
   - `config.json` — podešavanja baze i servera
   - `start.bat` — pokretanje na Windows-u

**SQLite režim (nova prodavnica):** nije potreban MySQL — baza `digipos.db` se kreira pri prvom startu.

**MySQL režim (postojeće knjigovodstvo):** u `config.json` unesite parametre baze (host, user, password, database).

Primer `config.json`:

```json
{
  "port": 3000,
  "db": {
    "host": "localhost",
    "user": "root",
    "password": "",
    "database": "sokdooco_knjige"
  }
}
```

---

## 3. Pokretanje servera

1. Dvostruki klik na **`start.bat`** ili u terminalu:

```bash
node server.js
```

2. U konzoli se ispisuje adresa kase, npr.:
   - `http://localhost:3000` — kasa na ovom računaru
   - `http://192.168.x.x:3000` — adresa za telefone u mreži

3. Server mora da radi **dok je objekat otvoren**. Za produkciju preporučuje se automatsko pokretanje pri startu Windows-a (zakazani zadatak / servis).

**Adrese:**

| Uloga | URL |
|-------|-----|
| Kasa (konobar, kasir, kuvar) | `http://localhost:3000` ili `http://IP:3000` |
| Administracija | `http://localhost:3000/admin` |
| Dokumentacija | `http://localhost:3000/docs/` |

---

## 4. Konfiguracija nakon instalacije

Konfiguraciju obavlja **administrator** (PIN sa ulogom `admin`) na `/admin` → **Podešavanja**.

| Podešavanje | Objašnjenje |
|-------------|-------------|
| **Režim rada** | `restoran` ili `prodavnica` |
| **Vlasnik** | Firma iz tabele `vlasnik` |
| **Objekat** | Prodajno mesto |
| **ESIR broj** | **1614/2.0** — broj iz registra PU, ugrađen u aplikaciju |
| **LPFR adresa** | URL API v3, npr. `http://localhost:8888/api/v3/` ili `DEMO` za probu |
| **LPFR PIN** | PIN za endpoint `/pin` |
| **Fiskalni štampač** | Ime Windows štampača, `FILE` (test fajl) ili `NONE` |
| **Štampač za kuhinju** | Opciono, drugi štampač |
| **Težinski prefiks** | Prefiks vage (podrazumevano `28`) |

**Prvi dan — obavezno:**

1. Promeniti početni PIN **1234** (Admin → Korisnici).
2. Dodati zaposlene (ime, PIN, uloga).
3. Sačuvati podešavanja → **Proveri LPFR**.
4. Uvesti ili proveriti artikle (Admin → Artikli).
5. Restoran: podesiti stolove (Admin → Stolovi).

Detaljnija konfiguracija LPFR-a i bezbednosnog elementa — prema uputstvu proizvođača fiskalnog uređaja.

---

## 5. LPFR i fiskalni štampač

### 5.1 LPFR

1. Uverite se da LPFR radi (status LED / aplikacija proizvođača).
2. U Admin → Podešavanja unesite `lpfr_url` i `lpfr_pin`.
3. Klik **Proveri LPFR** — mora vratiti uspeh.
4. Za test bez uređaja: `lpfr_url = DEMO` (simulator, nije za produkciju).

### 5.2 Štampač

1. Instalirajte drajver štampača u Windows-u; štampač mora biti vidljiv u **Uređaji i štampači**.
2. U DigiPOS unesite **tačno ime** štampača kao u Windows-u.
3. Probna štampa: izdajte test račun u DEMO režimu ili postavite `FILE` — račun se snima u folder `prints\`.

---

## 6. Mreža — telefoni i tableti

1. Računar sa DigiPOS serverom i telefoni moraju biti na **istom Wi‑Fi / LAN-u**.
2. Na telefonu u pregledaču otvorite **`http://IP-RAČUNARA:3000`** (ne `localhost`).
3. IP adresa se ispisuje pri startu `start.bat`.
4. Opciono: **Dodaj na početni ekran** (PWA) — pogodno za konobare.

Ako telefon ne otvara kasu: proverite firewall na računaru (dozvoliti ulaz na port 3000).

---

## 7. HTTPS (opciono, PWA)

Pregledači na telefonu za punu PWA instalaciju traže HTTPS van `localhost`.

U `config.json`:

```json
"https_port": 3443,
"https_key": "cert/digipos.key",
"https_cert": "cert/digipos.crt"
```

Samopotpisani sertifikat (openssl uz Git for Windows):

```bash
mkdir cert
openssl req -x509 -newkey rsa:2048 -nodes -days 3650 -keyout cert/digipos.key -out cert/digipos.crt -subj "/CN=DigiPOS"
```

Na telefonu: `https://IP:3443` → prihvatiti upozorenje o sertifikatu.

---

## 8. Provera da sve radi

Checklist posle instalacije:

- [ ] `http://localhost:3000` otvara ekran za PIN
- [ ] Prijava admin PIN-om na `/admin`
- [ ] **Proveri LPFR** — OK
- [ ] Test prodaja (DEMO) — račun u listi Računi
- [ ] Štampa ili fajl u `prints\` (ako je `FILE`)
- [ ] Telefon otvara `http://IP:3000` sa istog Wi‑Fi-ja

---

## 9. Rešavanje problema

| Problem | Rešenje |
|---------|---------|
| `npm install` greška | Proverite Node.js verziju; pokrenite terminal kao administrator |
| Server ne startuje | Port 3000 zauzet — zatvorite drugi proces ili promenite `port` u config.json |
| LPFR ne odgovara | Proverite URL, PIN, firewall, da li je PFR uključen |
| Štampa prazna / ??? | Pogrešno ime štampača; proverite CP1251 podršku |
| Telefon ne vidi kasu | Isti Wi‑Fi; ispravan IP; Windows firewall |
| Nema artikala | Admin → Artikli; MySQL režim — proverite `vlasnik` u podešavanjima |

Za podršku: **S.O.K. doo** — sok@sokdoo.com, 063 683 093.

---

**Povezana uputstva:**

- [Uputstvo za upotrebu](UPUTSTVO-ZA-UPOTREBU.md)
- [Uputstvo za zaposlene (kratko)](UPUTSTVO.md)
- [ESIR tehničko uputstvo](ESIR-TEHNICKO-UPUTSTVO.md)

*S.O.K. doo Kraljevo · DigiPOS · uputstvo za instalaciju*
