Net-Base Revija

16.06.2026

Delphi Linux REST-Daemoni za podjetja: Arhitektura, obratovanje in lahkost vzdrževanja v praksi

Delphi na Linux je v obratovanju podjetja že zdavnaj več kot zgolj tema portiranja. Ta prispevek prikazuje, kako se REST-Daemons kot systemd-storitve načrtujejo, zavarujejo, nadzirajo in verzionirajo – s poudarkom na pogodbah vmesnikov, dostopu do podatkov, Deploymentu, Logingu in...

16.06.2026

Od teme v reviji do projektne prakse

Ustrezne strani storitev in tehnični opisi k prispevku

Ko podjetja danes govorijo o modernizaciji, redko mislijo „vse na novo“. Pogosteje gre za prenos preverjene logike, podatkovnih modelov in procesov v robustno, dobro upravljivo servisno plast – brez ogrožanja vsakodnevnega poslovanja. Prav tukaj so Delphi Linux REST-daemoni za podjetja pragmatična možnost: omogočajo dolgotrajne strežniške procese pod Linux, nudijo jasne HTTP/REST-vmesnike (spletne API prek HTTP, pogosto z JSON kot podatkovnim formatom) in jih je mogoče integrirati v obratovalne standarde, kot so systemd, reverse proxyji, centralno beleženje in CI/CD.

Prispevek je namenjen IT‑vodstvu, administratorjem in tehničnim odgovornim za projekte. V središču so vplivi na obratovanje, administracijo, podatke in vmesnike: Kako nastane vzdržljiva arhitektura? Kako se verzionirajo API‑ji? Kako se nadzorovano izpelje izdajanje posodobitev? Kako se storitve utrdijo, nadzorujejo in ob motnjah hitro omejijo? In kako to vklopiti v obstoječe pokrajine z bazami podatkov, ERP/DMS/CRM‑povezavami, identitetami in varnostnimi zahtevami?

Delphi Linux REST-daemoni za podjetja v praksi

REST-daemon je stalno delujoč ozadinski proces (v Linux kot „daemon“), ki sprejema HTTP zahtevke in vrača odzive. V poslovni praksi je to pogosto most med obstoječo poslovno logiko in novimi porabniki: portali, mobilne aplikacije, integracije, partnerske povezave ali interna avtomatizacija.

Linux je kot strežniška platforma v mnogih podjetjih uveljavljena: dobro avtomatizirana, pregledna v administraciji in obvladljiva v VM, kontejnerskih ali klasičnih gostiteljskih nastavitvah. Odločilno ni toliko „Linux kot tak“ ampak model storitve: definiran zagon/ustavitev, pravila za ponovni zagon, koncept pravic, priključitev na beleženje in jasna pot posodobitev.

Delphi pokaže svoje prednosti tam, kjer že obstaja substanca: preverjena domenjska logika, zrasli dostopi do podatkov (pogosto v okviru BDE-zamenjava z natavno povezavo kot plasti za dostop do podatkov), specifični protokoli (npr. TCP/IP ali datotečni vmesniki) in večletno preizkušena pravila. Linux-REST-daemon omogoča, da se ta logika zagotovi kot storitev, brez popolne ponovne implementacije. Za mnoge poti modernizacije to pomeni: hitrejši dostop do zanesljivih končnih točk, pri čemer je arhitekturo in obratovanje treba od začetka načrtovati dosledno.

Tipični primeri uporabe Delphi Linux REST-daemonov v podjetjih

V projektih se pojavljajo ponavljajoči se vzorci. Linux-REST-daemon redko pomeni „samo API‑strežnik“, temveč je del celotne arhitekture z jasnimi odgovornostmi:

  • API‑sloj pred obstoječo programsko opremo: Obstoječa namizna ali klient‑strežniška rešitev dobi REST‑API, da lahko portali, novi klienti ali zunanji sistemi dostopajo na standardiziran način.
  • Integracija in orkestracija: Daemon povezuje ERP, DMS, CRM in specialne komponente. REST je stabilna zunanja plast; interno se lahko uporabljajo tudi vrste čakalnih vrst, datotečni vmesniki ali lastniški prehodi.
  • Procesno bližnji delovni tokovi: Validacije, odobritve, spremembe stanja, generiranje dokumentov ali poročanje kot osrednja storitev z doslednim, predvidljivim vedenjem.
  • Mandantenfähige Komponenten: Več organizacijskih enot uporablja isto storitev, ločeno preko koncepta najemnika (Tenant), vlog in particioniranja podatkov.
  • Geräte- und Lizenzanbindung: Storitve, ki združujejo ID-je naprav, procese skeniranja/zajemanja ali preverjanja licenc; navzven preko REST, navznoter pogosto z dodatnimi protokoli.
  • Der Mehrwert entsteht nicht durch „REST“ als Schlagwort, sondern durch stabile Schnittstellenverträge, kontrollierten Datenzugriff und ein belastbares Betriebsmodell.

    Architektur-Grundlagen: Schichten, Verträge, Datenkonsistenz

    Pogosta napaka pri projektih storitev je osredotočanje na „schnell Endpunkte liefern“, medtem ko verzioniranje, obravnava napak, logging in doslednost podatkov kasneje težko dopolnijo. Za obratovanje je jasna plastna razdelitev pomembnejša kot izbira določene knjižnice.

    Schichtenmodell (Layer-3): API, Domäne, Infrastruktur

    Praktična Layer-3-arhitektura (tri sloji za nadzor odvisnosti) običajno loči:

    • API-Schicht: HTTP-končne točke, avtentikacija/avtorizacija, validacija zahtevkov, formati odgovorov, kode napak.
    • Domänenschicht: Poslovna pravila in delovni tokovi, model stanj, preverjanja, odločitve o pooblastilih – brez poznavanja HTTP.
    • Infrastruktur: Dostop do baze podatkov (npr. BDE-Ablosung mit nativer Anbindung), zunanji sistemi, datotečni sistem, e-pošta, vrste (Queues), skrivnosti in konfiguracija.

    Ta ločitev je v praksi vzvod za vzdrževanje: prepreči, da bi se podrobnosti API pronikale v poslovno logiko, in zmanjša stranske učinke, ko se baza podatkov, avtentikacijski sistem ali proxy kasneje spremenijo.

    Verträge: JSON-Modelle, Fehlerstruktur, Idempotenz

    REST temelji na stabilnih pogodbah. Za obratovanje in integracijo je odločilno, da so odgovori zanesljivo strojno obdelljivi. Sem spadajo:

    • Konsistente Fehlerstruktur: Ne le „500“, temveč strojno berljivi kode napak, razumljiva sporočila in podatki za podporo brez občutljivih vsebin.
    • Idempotenz: Ponovljeni zahtevki (npr. po časovnih omejitvah) ne smejo povzročiti dvojnih knjiženj. Za kritične akcije pomagajo idempotency-ključ ali jasne preveritve statusa/duplikatov.
    • Stabile Datentypen: Formati datuma/časa, decimalna mesta, enumeracije (npr. vrednosti stanj) morajo dolgoročno ostati dosledni.

    Cilj je varna integracija: portal, partner ali interno avtomatizacijsko skripto mora tudi po posodobitvi delovati kontrolirano.

    Nebenläufigkeit und Schutzplanken: Pooling, Timeouts, Limits

    Daemon obdeluje zahtevke vzporedno. Za obratovanje so relevantne omejitve virov in zaščitni mehanizmi, da motnje ne eskalirajo:

    • Connection-Pooling: Povezave z bazo podatkov so drage. Pool ščiti pred konicami obremenitve in preprečuje, da bi vsak zahtevek „prisilil novo povezavo“.
    • Timeouts: Za dostop do baze podatkov, zunanje HTTP-klice in notranje naloge morajo biti določene stroge časovne meje, da se zastoji ne prenašajo naprej.
    • Rate Limiting: Zaščita pred napačnimi konfiguracijami ali nekontroliranimi odjemalci; pogosto izvedeno v reverznem proxyju.
    • Backpressure: Če so downstream sistemi počasni, mora storitev nadzorovano zavrniti ali predpomniti zahteve, namesto da bi jih neomejeno sprejemala.

    Ti vidiki pogosto odločajo, ali storitev pod obremenitvijo ostane stabilna ali ali posamezna ozka grla celoten obrat zadušijo.

    Linux-Betriebsmodell: systemd, Rechte, Logging

    Na Linux je systemd v večini distribucij standardni upravljalec storitev. Ein systemd-Service določa, kako se proces zažene, kdaj se znova zažene, katere so odvisnosti in pod katerimi pravicami teče. Za administracijo in obratovanje je to osrednji vzvod za zanesljivost.

    systemd v praksi: Restart-Policy, Abhängigkeiten, Shutdown

    Ureden obrat se začne s strategijo zagona in ponovnega zagona, ki upošteva realne napake:

    • Restart-Policy: kontrolirano ponovno zaganjanje ob zrušitvi, z omejitvami, da ne nastane crash-loop.
    • Abhängigkeiten: zagon šele, ko je omrežje pripravljeno; po potrebi določeno zaporedje do drugih storitev.
    • Graceful Shutdown: Pri ustavitvi/ponovnem zagonu naj se tekoče zahteve uredno zaključijo in transakcije dokončajo.

    Jasen Health-Endpunkt (npr. /health) pomaga pri monitoringu in Load Balancerju. Smiselno je razlikovati med „proces živi“ in „storitev pripravljena“ (npr. baza podatkov dosegljiva), pri čemer v Health-Checku ne izvajamo dragih poizvedb.

    Načelo najmanjših pravic: lastni Service-uporabnik in restriktivni dostopi

    Varnost v obratovanju ni samo TLS. Daemon naj teče z minimalnimi pravicami:

    • Lastni Linux-uporabnik: ne poganjati kot root; dostop le do potrebnih imenikov.
    • Ločevanje skrivnosti: Pristopni podatki ne sodijo v Deploy-Skripte ali loge, temveč v zaščitene konfiguracije ali v mehanizem za skrivnosti v okolju.
    • Model portov: Storitev se interno veže na visok port, zunanje izpostavljanje poteka preko Reverse Proxy/Load Balancer.

    systemd se da dodatno zaostriti (npr. restriktiven dostop do datotečnega sistema). Kako daleč se lahko gre, je odvisno od operativnih zahtev, kontejnerizacije in distribucije – načelo ostaja: dodelitve naj bodo zavestno omejene in spremembe sledljive.

    Logiranje: journald, strukturirani dogodki in Correlation-ID

    Za podporo in analizo incidentov je logiranje najpomembnejši diagnostični kanal. V Linux-okoljih veliko konča v journald (systemd-Journal) in se od tam posreduje v centralne sisteme (po standardu npr. Elastic/OpenSearch, Graylog ali Splunk).

    Ključno je, da so logi strukturirani in iskalni: Request-ID/Correlation-ID (edinstven identifikator za vsak zahtevek), uporabniški/mandantski kontekst, endpoint, čas izvajanja, statusna koda, koda napake. Tako je mogoče problem slediti od Reverse Proxy preko Daemona do baze podatkov.

    Pomembna je tudi higiena podatkov: brez gesel, tokenov ali nekontrolirano osebnih podatkov v logih. Za podrobnosti so strokovno primerni Audit-Daten (glej spodaj) navadno bolj primeren kraj.

    Varnost in nadzor dostopa: Reverse Proxy, TLS, SSO, Rollen

    Eden REST-Daemon je vmesnik navzven in s tem del napadalne površine. V podjetniških okoljih se izkaže arhitektura, v kateri ne poteka „vse v storitvi“, temveč so odgovornosti jasno razdeljene.

    TLS-terminacija na Reverse Proxyju

    Pogosto se TLS (HTTPS-šifriranje) terminuje na Reverse Proxyju ali Load Balancerju, ne v storitvi. Prednosti: centralno upravljanje certifikatov, dosledne Security-Policies, lažja rotacija, enotni Access-Logs in po potrebi WAF-/Rate-Limiting-funkcionalnosti.

    Daemon teče interno v zasebnem omrežnem segmentu. Pomembno je pravilno ravnanje s Forwarded-Headern (npr. dejanska Client-IP): take headerje smejo sprejemati le zaupanja vredni viri, sicer nastanejo tveganja spoofinga.

    Avtentikacija in avtorizacija: OIDC ali SAML 2.0

    Podjetja pričakujejo enotno prijavo (Single Sign-on, SSO) in centralne identitete. Tehnično se to pogosto izvaja prek OpenID Connect (OIDC, na osnovi žetonov) ali SAML 2.0 (XML-baziran SSO-protokol, v mnogih enterprise-okoljih uveljavljen). Der REST-daemon naj pri tem ne „izmišljuje“ lastnega upravljanja uporabnikov, temveč naj identificira identitete in upodobi dovoljenja prek vlog in claims (dodelitve v žetonu).

    Za obratovanje so običajno pomembne tri točke:

    • Življenjska doba žetonov: kratki dostopni žetoni, določen način ravnanja z iztekom in osveževanjem na strani odjemalca.
    • Ločeno obravnavati dostop med storitvami: strojni dostopi z lastnimi poverilnicami in lastnimi pravicami, jasno ločeni od uporabniških dostopov.
    • Model vlog z minimalnimi pravicami: pravice opredeliti za vsak primer uporabe, da integracije ne postanejo prekomerno privilegirane.

    Auditing: fachliche Nachvollziehbarkeit

    Veliko procesov zahteva sledljivost: kdo je spremenil kateri status? Kateri vmesnik je uvozil podatke? Takšne informacije sodijo v strukturiran audit-trail (strokovno analizabilen), ne le v tehnični log. Log služi za diagnostiko; auditing je strokovna zgodovina in mora biti ustrezno modelirana in zaščitena.

    Datenzugriff und Datenbanken: Transaktionen, Migrationen, Stabilität

    V Delphi-projektih je FireDAC pogosto osrednja tehnologija za dostop do podatkov. Za IT‑odgovorne ni toliko odločilna sintaksa poizvedb kot obratovanje: transakcije, zaklepi, migracije, zmogljivost, možnost obnove in jasne odgovornosti pri shemi.

    Transaktionsgrenzen und sauberes Fehlerverhalten

    En REST-zahtevek potrebuje jasne meje transakcije: sprememba je bodisi v celoti potrjena ali čisto povrnjena. Delna stanja se maščujejo v integracijah, ker nadaljnji procesi temeljijo na nedoslednih podatkih.

    • Kratke transakcije: brez dolgih zaklepov čez zunanje omrežne klice.
    • Optimistično upravljanje konkurence: polja z verzijo / RowVersion, da se prepoznajo vzporedne spremembe.
    • Jasni odgovori na konflikte: npr. definirane napake »Konflikt« namesto generičnega 500.

    Schema-Änderungen: Deployment und Datenbankmigration zusammen denken

    Podatkovni modeli se spreminjajo. Ključno je, kako se ujemata uvajanje storitve (Service-Deployment) in migracija baze. Preizkušeno je obravnavati migracije kot verzionirane korake (s premislekom o rollbacku) in graditi storitve tako, da prenesejo prehodno obdobje s staro in novo strukturo. To pogosto uspe z aditivnimi spremembami (novi stolpci/tabele) namesto takojšnjega preimenovanja ali brisanja.

    Uredniško je tukaj smiselno interno povezati na poglobljene vsebine o prenovi podatkovnih baz in poteh modernizacije, ker te teme v praksi spadajo skupaj.

    Performance-Schutz: Paging, Statement-Timeouts, Pool-Auslastung

    Veliko REST-problemov je v končni fazi problem podatkovne baze: manjkajoči indeksi, neomejene iskalne poizvedbe, prevelike množice rezultatov ali neugodne situacije zaklepov. Za obratovanje pomagajo zaščitne ograje:

    • Paginacija/Limit: končne točke ne bi smele vračati »vse«, temveč paginirano.
    • Statement-Timeouts: poizvedbe se morajo prekiniti, preden zblokirajo pool povezav.
  • Preizkus rasti: Poizvedbe oceniti ne samo s testnimi podatki, ampak z realističnimi količinami podatkov.
  • Oblikovanje API za dolgotrajne integracije: REST verzioniranje API-jev in OpenAPI

    Ko je portal, BI-proces ali partner integriran, postanejo prelomne spremembe operativno tveganje. Zato je oblikovanje API odločitev za obrat, ne le razvojno vprašanje.

    REST verzioniranje API-jev: pravila namesto „v2 nekega dne“

    Verzioniranje ni le številka v URL. Je proces: Kako dolgo bo različica podprta? Kako se obvesti porabnike? Kako se meri preostala uporaba?

    • Verzioniranje v URL (npr. /v1/…): enostavno za razumevanje, primerno za vzporedno delujoče različice.
    • Verzioniranje v glavi (Header): tehnično mogoče, a v nekaterih toolchainah manj pregledno.
    • Prednost dati additivnim spremembam: nova polja, nove končne točke, opcijski parametri namesto prelomnih sprememb.

    K verzioniranju sodi politika opuščanja: stare različice se z rokom, komunikacijo in monitoringom umaknejo iz uporabe – ne izklopijo se presenetljivo.

    OpenAPI kot skupna osnova za obrat in integracijo

    OpenAPI (pogosto vidna prek Swagger-UI) je v obratovanju uporaben artefakt, če je pravilno vzdrževan: končne točke, polja, napake, sheme avtentikacije. To zmanjša dodatna vprašanja, pospeši integracije in vzpostavi skupno izhodišče med obratom, poslovno stranjo in implementacijo.

    Dodana vrednost izhaja iz discipline: dokumentirati pogodbe, narediti spremembe sledljive in namensko testirati združljivost.

    Uvajanje in posodobitve brez prekinitve: Blue-Green, Rolling, Rollback

    V podjetniškem obratovanju je uvajanje kontroliran postopek z vidika razpoložljivosti, integritete podatkov in možnosti vračila. Še posebej se REST-demoni hitro uporabljajo z več sistemov; neusklajene posodobitve povzročajo motnje v integracijah.

    Ločevanje izdajnih paketov in konfiguracije

    Robustno uvajanje loči različico programa in konfiguracijo. Konfiguracija zajema povezave z bazo podatkov, končne točke zunanjih sistemov, feature-flag-e, nivoje dnevnikov in sklice na skrivnosti. Pomembna je tudi pariteta okolij: Dev/Test/Prod naj bodo strukturno podobni, da napake ne pridejo na plano šele v produkciji.

    Ne glede na to, ali kot deb/rpm, uvajanje artefaktov preko CI/CD ali container-image: odločilna je sledljivost. Operativne ekipe morajo znati odgovoriti: katera različica teče kje, s katero konfiguracijo in katere migracije so bile izvedene?

    Blue-Green in Rolling posodobitve

    Za visoko razpoložljivost sta se uveljavila dva vzorca:

    • Blue-Green deployment: staro in novo okolje vzporedno, preklop na load balancerju. Prednost: hiter rollback. Pogoji: spremembe v podatkovni bazi morajo biti združljive.
    • Rolling posodobitve: več instanc se posodablja zaporedoma. Prednost: ni potrebe po dvojnem okolju. Pogoji: mešani obrat (staro/novo) je za kratek čas neproblematičen.

    V obeh primerih je združljivost API ključna. Če porabniki rigidno reagirajo na imena polj ali besedila napak, postane vsaka posodobitev draga. Robustnost na strani porabnika je zato projektni cilj, ne „Nice-to-have“.

    Realistično načrtovanje rollbacka: binarne datoteke in podatki

    Rollback je realističen le, če se upošteva perspektiva podatkov. Storitev se lahko tehnično povrne, vendar če nova izdaja že zapisa podatke v novi obliki, stare izdaje morda več ni mogoče zagnati. Zaradi tega so „expand/contract“-migracije (najprej razširiti, nato preklopiti, nato počistiti) v poslovnem obratovanju pogosto bolj zanesljiva strategija.

    Nadzor in odziv na incidente: kaj mora biti pripravljeno pred prvim incidentom

    Ein REST-Daemon postane šele z opaznostjo (Observability) res zanesljiv v obratovanju. To pomeni: metrike, logi in – kjer smiselno – porazdeljene sledi izvajanja (Tracing) tako kombinirati, da se motnje hitro omejijo.

    Osnovne metrike za REST-storitve

    • Request-Rate: zahtevki na minuto, idealno po endpointu.
    • Latenz: p50/p95/p99, da so odstopanja vidna.
    • Fehlerquoten: 4xx vs. 5xx, dodatno ločeno po kodah napak.
    • Ressourcen: CPU, RAM, izkoriščenost niti/poolov, izkoriščenost connection-poola baze podatkov.

    Tako je mogoče hitreje prepoznati tipične vzroke: počasna baza podatkov (latenca narašča, pool izčrpan), okvaren klient (povečanje 4xx), problem z viri (RAM raste), blokade/zaklepanja (Timeouts, vrhovi latence).

    Runbooks: Operativna pripravljenost je tudi dokumentacija

    Dobre storitve v resnem primeru pogosto odpovejo zaradi pomanjkanja operativnih rutin. Runbook je kratko, praktično navodilo: Kje so logi in nadzorne plošče? Kateri pregledi so relevantni? Kako se storitev kontrolirano znova zažene? Katere konfiguracije so tipični viri napak? To je posebej pomembno, ko obratovanje, poslovna stran in zunanji partnerji skupaj delajo.

    Pot modernizacije: obstoječo poslovno logiko ponovno uporabiti, vendar jo jasno enkapsulirati

    Mnoge organizacije imajo Delphi-obstoječe rešitve, ki so strokovno vredne. Ein Linux-REST-Daemon je lahko korak modernizacije, brez takojšnje zamenjave celotnega klientskega okolja. Tipični pristopi:

    • Strangler-Pattern: nove funkcije najprej v storitev, stare ostanejo v obstoječem sistemu, dokler niso postopoma nadomeščene.
    • API vor Datenbank: Namesto da več aplikacij neposredno dostopa do iste baze, se dostop kanalizira preko storitve. To izboljša upravljanje (Governance) in zmanjša senčne integracije.
    • Schnittstellen schrittweise ablösen: Dostopi prek datotek ali neposredni dostopi se vzporedno izpeljejo z REST in nato kontrolirano izključijo.

    Pomembna je jasna ciljna arhitektura: Katere odgovornosti ostanejo v obstoječem sistemu, katere se preselijo v storitev in kje nastanejo nove odvisnosti (npr. Identity, Proxy, Monitoring)? Brez te razjasnitve nastane »storitev poleg obstoječega sistema«, ki bo pozneje prav tako težka za obratovanje.

    Praktični kontrolni seznam: Kaj mora biti razjasnjeno pred Go-live

    Na koncu kontrolni seznam, ki se je izkazal z vidika obratovanja in integracije:

    • API-Vertrag: OpenAPI prisoten, definirane kode napak, verzioniranje in deprekacija urejena.
    • Security: TLS preko reverse proxyja, Auth/SSO integriran, model vlog, upravljanje skrivnosti.
    • systemd: politika ponovnega zagona, integracija logiranja, lasten servisni uporabnik, minimalne pravice.
    • Daten: transakcijske meje čiste, migracije verzionirane, backup/restore preizkušen.
    • Observability: Correlation-ID, metrike/nadzorne plošče, alarmiranje, Runbook.
  • Deployment: reproducibilno, predviden rollback, odločena strategija Blue-Green/Rolling, ločena konfiguracija.
  • Last und Limits: Timeouts, Pooling, Paging, Rate Limiting, zaščita pred preobremenitvijo.
  • Sklep: Uspeh je v obratovanju in disciplini vmesnikov

    Uspeh Delphi Linux REST-daemonov za podjetja redko temelji na tem, ali „Delphi na Linux teče“ – to navadno ni največja ovira. Ključni so čisti pogodbeni vmesniki, kontroliran dostop do podatkov, jasen operativni model z systemd, varnost preko Reverse Proxy in centralnih identitet ter monitoring in strategije posodabljanja, ki odražajo vsakdan v podatkovnem centru ali v oblaku.

    Če želite vzpostaviti pot modernizacije, API-strategijo ali robusten okvir obratovanja za Linux-Services, se izplača zgodaj skupaj strukturirati tematiko – preden se implicitne odločitve v obratovanju utrdijo.

    V strokovnem okolju imajo pomembno vlogo tudi Delphi REST-API in REST-Server ter systemd storitev, kadar morajo integracije, podatkovni tokovi in nadaljnji razvoj čisto sodelovati.

    Razpravljajte o projektu ali načrtu modernizacije z Net-Base.

    naslednji korak

    Ko iz teme nastane resničen projekt, je treba arhitekturo, obstoječe sisteme in obratovanje zgodaj obravnavati skupaj.

    Ne podpiramo le pri posameznih vprašanjih, ampak tudi takrat, ko iz izrezkov izvorne kode, legacy-tem ali idej za portale nastane zanesljiv podjetniški projekt.

    • Obstoječe stanje, ciljno stanje in tehnična tveganja se ocenjujejo skupaj.
    • REST, dostop do podatkov, portali in Rollout ne bodo prestavljeni v kasnejše faze.
    • Že zgodaj vidite, katera pot je ekonomsko in operativno vzdržna.

    Deli objavo

    Deli ta prispevek neposredno

    LinkedIn, X, XING, Facebook, WhatsApp in e-pošta so takoj na voljo. Za Instagram pripravljamo povezavo in kratek tekst.

    E-pošta

    Instagram se odpre v novem zavihku. Povezava in kratek opis se pred tem kopirata v odložišče.