Clone
3
Instalacija
Dasko edited this page 2026-06-21 02:16:00 +02:00

Instalacija

Preduslovi

  • Go 1.26 ili noviji
  • Git (za kloniranje)
  • Linux ili Windows (build skripta podržava oba)

Brzi start

# Kloniraj repozitorijum
git clone https://git.vm-net.in.rs/Dasko/GoNtech.git
cd GoNtech

# Pripremi konfiguraciju
cp ntech.env.example ntech.env

# Pokreni
go run ./cmd/ntech

Aplikacija se pokreće na http://localhost:8080.

Prvo pokretanje — Setup Wizard

Kad se program prvi put pokrene (nema ntech.env), automatski se otvara Setup Wizard na portu 8080. Podešava se:

  1. Port servera
  2. Admin korisničko ime i lozinka
  3. Naziv firme

Po završetku, ntech.env se kreira automatski i aplikacija se restartuje.

Produkcijski build

Interaktivna skripta:

./build.sh
# → unesi verziju (npr. 0.1.5)
# → izaberi OS (linux / windows)
# → UPX kompresija (da/ne)

Ručni build:

# Linux, AMD64
CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -o ntech ./cmd/ntech

# Sa verzijom
CGO_ENABLED=0 GOARCH=amd64 GOOS=linux \
  go build -ldflags "-X main.Verzija=0.1.5" -o ntech ./cmd/ntech

Build je statički (CGO_ENABLED=0) — binarni fajl radi svuda bez zavisnosti.

Konfiguracija (ntech.env)

Promenljiva Opis Podrazumevano
NTECH_PORT Port servera 8080
NTECH_SQLITE Putanja SQLite baze ntech.db
NTECH_ENV development / production / demo development
NTECH_DOMAIN Domen sajta (za kolačiće i CSP) localhost

Režimi rada

Režim Šabloni Statika Migracije
development Sa diska (hot-reload) Sa diska Sa diska
production Embed Embed (immutable keš) Embed
demo Embed Embed (immutable keš) Embed

Demo mod (NTECH_ENV=demo)

  • Setup wizard se preskače — ntech.env se automatski kreira prazan
  • Backup je onemogućen
  • Promena lozinke je blokirana
  • TOTP aktivacija nije dozvoljena
  • Kolačići su Secure (kao u produkciji)

Pokretanje

# U produkciji
NTECH_ENV=production ./ntech

# Sa custom portom
NTECH_PORT=9090 ./ntech

# Demo mod
NTECH_ENV=demo ./ntech

Struktura foldera posle build-a

.
├── ntech              # binarni fajl (sve ugrađeno)
├── ntech.env          # konfiguracija
├── ntech.db           # SQLite baza (kreira se automatski)
└── logs/              # auth.log (opciono)

Ništa više nije potrebno — jedan fajl, jedna konfiguracija, jedna baza.