40100125da
- Removed greeting and welcome banner from the home page; trimmed unused ar.json/en.json greeting keys. - Hid the 4-tile stats row for non-admin users (`isAdmin` from user roles) and scoped `totalApps` in /api/stats/home to apps the user can actually access (mirrors the RBAC join in /api/apps). - Renamed nav.services translation: "خدماتي" -> "الخدمات", "My Services" -> "Services". - Removed price/free text from the user-facing services page; cards now show name, description, availability badge, and (when present) image. - Admin service editor now exposes an "Image URL" / "رابط الصورة" text field with a live preview thumbnail; saved imageUrl renders at the top of the corresponding service card (16:10, object-cover, onError hides broken images). Uses existing imageUrl column in services schema; no DB migration required. Image upload via object storage was deferred — see follow-up task. Verified: typecheck passes for teaboy-os and api-server; api-server restarted clean; e2e plan validated by testing subagent; architect code review approved.
44 lines
612 B
Plaintext
44 lines
612 B
Plaintext
modules = ["nodejs-24", "postgresql-16"]
|
|
|
|
[deployment]
|
|
router = "application"
|
|
deploymentTarget = "autoscale"
|
|
|
|
[deployment.postBuild]
|
|
args = ["pnpm", "store", "prune"]
|
|
env = { "CI" = "true" }
|
|
|
|
[workflows]
|
|
runButton = "Project"
|
|
|
|
[agent]
|
|
stack = "PNPM_WORKSPACE"
|
|
expertMode = true
|
|
|
|
[postMerge]
|
|
path = "scripts/post-merge.sh"
|
|
timeoutMs = 20000
|
|
|
|
[[ports]]
|
|
localPort = 8080
|
|
externalPort = 8080
|
|
|
|
[[ports]]
|
|
localPort = 8081
|
|
externalPort = 80
|
|
|
|
[[ports]]
|
|
localPort = 8082
|
|
externalPort = 3003
|
|
|
|
[[ports]]
|
|
localPort = 25785
|
|
externalPort = 3000
|
|
|
|
[[ports]]
|
|
localPort = 25786
|
|
externalPort = 3002
|
|
|
|
[nix]
|
|
channel = "stable-25_05"
|