Bilko Infrastruktura — objašnjeno jednostavno (za CEO) — 2026-06-09
Bilko Infrastruktura — objašnjeno jednostavno (za CEO)
Verzija 2026-06-09. Cilj: da za 5 minuta razumiješ gdje Bilko živi, kako kod dođe do kupaca, šta je polomljeno i kako to zaobilazimo. Sve provjereno uživo (gcloud), ne napamet.
KORAK 1 — Šta gdje radi (okruženja)
Bilko ima 7 Cloud Run "mašina", ali realno samo 2 okruženja:
PROD (ono što kupci vide — pravi proizvod, čist, bez demo podataka)
app.bilko.cloud -> bilko-web-demo (web, Next.js)
app-api.bilko.cloud -> bilko-api-demo (API, Kotlin/Ktor)
|
bilko-demo-db (Postgres 16)
STAGE (za testiranje prije proda — UAT)
(interni URL-ovi) -> bilko-web-stage + bilko-api-stage
|
bilko-staging-db
⚠️ Zašto je zbunjujuće: IMENA LAŽU
Servisi se zovu ...-demo ali su to PROD. Razlog: odlučili smo "reuse demo kao prod" da ne plaćamo novu bazu/servise (0 KM dodatno). Pa app.bilko.cloud (tvoj pravi proizvod) radi na mašini koja se istorijski zove bilko-web-demo. Ime = ostatak iz prošlosti, ne realnost.
Ostalo (nije bitno za sad)
bilko-demo.alai.no— stari demo URL, sad samo alias na istu PROD mašinubilko-web— prazan stub (ništa)bilko-intesa-demo— odvojen Intesa (banka) demobilko-unleash— servis za feature-flagovebilko-db— nova prazna prod baza, NE koristi se (prod radi nabilko-demo-db)
KORAK 2 — Kako kod dođe iz editora na te mašine (deploy)
Postoje tri odvojena puta kako kod ide live, zavisno šta se mijenja:
A) Glavna aplikacija (web + API)
ti/agent napišeš kod -> PR na GitHub -> merge u 'main'
|
GitHub javi Google Cloud Build-u (preko "konekcije")
|
Cloud Build sagradi Docker image + prođe GATE-ove (security, testovi)
|
STAGE: push u 'main' -> trigger 'bilko-stage-auto-deploy' -> stage mašine
PROD: semver tag (npr. v0.2.66) -> trigger 'bilko-main-deploy' -> prod mašine
Gate-ovi = automatske provjere prije nego se išta pusti: security skener (Trivy), testovi, lint. Ako bilo koji padne — deploy se zaustavi. To je dobro (štiti prod), ali znači da jedan pokvaren gate blokira SVE.
B) Landing stranice (marketing: bilko.cloud, bilko.io, bilko.company)
to su STATIČNE stranice na Cloudflare Pages (ne Cloud Run) bilko.cloud = apps/landing-hr bilko.io = apps/landing-io bilko.company = apps/landing-ba deploy: GitHub workflow (sad preko FORGE self-hosted runner-a, vidi Korak 3)
C) Baza (migracije)
Promjene strukture baze idu kroz Flyway migracije (V1, V2, ... fajlovi). Pokreću se automatski pri deploy-u API-ja. Nikad se stara migracija ne mijenja — uvijek nova.
KORAK 3 — Šta je POLOMLJENO i kako zaobilazimo (stanje 2026-06-09)
| Problem | Šta znači | Zaobilaznica | Pravi fix (treba CEO) |
|---|---|---|---|
| GitHub→CloudBuild konekcija mrtva (#103276) | Kad mergeš u main, Google ne dobije signal -> deploy se NE pokrene sam | Deploy ručno: gcloud builds submit (upload koda direktno, preskače mrtvu konekciju, ali vrti sve gate-ove) |
Popraviti konekciju treba cloudbuild.connections.update IAM dozvolu — tvoj nalog |
| GitHub Actions istrošen (#103304) | Privatni repo ima 2000 besplatnih min/mjesec; potrošeno -> CI + landing deploy padaju | FORGE self-hosted runner (tvoj Mac Studio, 10.0.0.2) = besplatno, neograničeno. Već radi za landinge. | Ništa nužno — resetuje se sljedeći mjesec; ili ostavi na FORGE-u zauvijek |
| Trivy security gate (#103315) | Našao HIGH CVE u Netty biblioteci -> blokirao sve deploye od 02:00 | Bumpали Netty 4.2.13 -> 4.2.15 (riješeno) | Riješeno ✓ |
| Orphan OAuth brand (#103296) | Stari Google OAuth brand ruši "tag" operacije na bilko-web-demo prometu | Ne koristiti tagove na bilko-web-demo prometu; --clear-tags kad treba |
Obrisati brand 762788903040 (Google support) |
Pouka: deploy pipeline ima nekoliko slomljenih karika koje su se nagomilale. Glavna (GitHub konekcija) treba tvoju IAM dozvolu. Dok se ne sredi, deploy je ručni preko gcloud builds submit.
KORAK 4 — Kako se korisnici LOGUJU (Entra-only)
Bilko više NEMA email+lozinka login. Sve ide preko Microsoft Entra External ID (CIAM):
- Korisnik ode na
app.bilko.cloud/login-> Microsoft stranica -> upiše email -> dobije OTP kod na mail -> uđe - Prvi put = automatski mu se napravi prazan "tenant" (njegova firma) + 7-dnevni trial
- Stari seed useri ([email protected] itd.) su imali lozinku -> ne mogu se više logovati (zato smo ih očistili iz baze)
KORAK 5 — Baze i čišćenje (2026-06-09)
Prod baza (bilko-demo-db) je očišćena: sa 167 firmi / 173 korisnika -> 2 firme / 3 korisnika. Obrisano: 161 test-artefakt + 3 mrtva seed orga. Tvoj nalog [email protected] migriran na čistu firmu "ALAI Holding AS". Backup napravljen prije (1781031619853) — rollback uvijek moguć.
KORAK 6 — Kako TI testiraš
- Čist proizvod:
app.bilko.cloud-> login kao[email protected](Entra OTP) -> vidiš prazan, čist Bilko - Seed demo (sa podacima): u izradi — fiksni nalog
[email protected]+ tenant napunjen demo podacima (fakture, kontakti)
Vezani MC taskovi
#103300 (prod topologija), #103276 (GitHub konekcija), #103304 (GitHub Actions billing), #103296 (OAuth brand), #103315 (Netty CVE), #103313 (CEO bug-bash), #103308 (landing deploy-dir).
No comments to display
No comments to display