arkleinberg commited on
Commit
620612c
Β·
verified Β·
1 Parent(s): ba1727d

Minimal Docker deployment with Assets - clones from GitHub

Browse files
Files changed (39) hide show
  1. .gitattributes +34 -0
  2. Assets/Profil_Avatars/Armand.jfif +0 -0
  3. Assets/Profil_Avatars/Bryan.jfif +3 -0
  4. Assets/Profil_Avatars/Lenny Avril.jpeg +3 -0
  5. Assets/Profil_Avatars/Mario.png +3 -0
  6. Assets/Profil_Avatars/RaduDinulescu.jfif +0 -0
  7. Assets/Projects/Ark.Alliance.React.Component/components-hero.png +3 -0
  8. Assets/Projects/Ark.Alliance.StartupCms.AI/ArkAllianceStartupCmsAiHero.png +3 -0
  9. Assets/Projects/Ark.Alliance.StartupCms.AI/ArkAllianceStartupCmsAi_Hero.Png +3 -0
  10. Assets/Projects/Ark.Alliance.StartupCms.AI/Google_AI_Studio_2026-01-08T00_41_57.111Z.png +3 -0
  11. Assets/Projects/Ark.Alliance.Trading.Bot/Bot10.PNG +3 -0
  12. Assets/Projects/Ark.Alliance.Trading.Bot/Bot11.PNG +3 -0
  13. Assets/Projects/Ark.Alliance.Trading.Bot/Bot12.PNG +3 -0
  14. Assets/Projects/Ark.Alliance.Trading.Bot/Bot13.PNG +3 -0
  15. Assets/Projects/Ark.Alliance.Trading.Bot/Bot14.PNG +3 -0
  16. Assets/Projects/Ark.Alliance.Trading.Bot/Bot2.PNG +3 -0
  17. Assets/Projects/Ark.Alliance.Trading.Bot/Bot3.PNG +3 -0
  18. Assets/Projects/Ark.Alliance.Trading.Bot/Bot4.PNG +3 -0
  19. Assets/Projects/Ark.Alliance.Trading.Bot/Bot5.PNG +3 -0
  20. Assets/Projects/Ark.Alliance.Trading.Bot/Bot6.PNG +3 -0
  21. Assets/Projects/Ark.Alliance.Trading.Bot/Bot7.PNG +3 -0
  22. Assets/Projects/Ark.Alliance.Trading.Bot/Bot8.PNG +3 -0
  23. Assets/Projects/Ark.Alliance.Trading.Bot/Capture.PNG +3 -0
  24. Assets/Projects/Ark.Alliance.Trading.Bot/bot-hero.png +3 -0
  25. Assets/Projects/Ark.Alliance.Trading.Bot/bot1.PNG +3 -0
  26. Assets/Projects/Ark.Alliance.Trading.Providers.Lib/providers-hero.png +3 -0
  27. Assets/Projects/Ark.Alliance.Trading.Providers.Lib/trading-hero.png +3 -0
  28. Assets/Projects/Ark.Alliance.TrendsCalculator/trends-hero.png +3 -0
  29. Assets/Projects/Ark.Alliance.TrendsCalculator/trends-hero.png.jpg +3 -0
  30. Assets/Projects/Ark.Alliance/Ark_Alliance_1.png +3 -0
  31. Assets/Projects/Ark.Alliance/Ark_Alliance_Hero.png +3 -0
  32. Assets/Projects/Ark.Portfolio/Admin_Dashobard.PNG +3 -0
  33. Assets/Projects/Ark.Portfolio/Admin_Hero_Carrousel.PNG +3 -0
  34. Assets/Projects/Ark.Portfolio/Admin_Projects.PNG +3 -0
  35. Assets/Projects/Ark.Portfolio/Admin_ResumeManager.PNG +3 -0
  36. Assets/Projects/Ark.Portfolio/portfolio-hero.png +3 -0
  37. Assets/Site/Icon.png +3 -0
  38. Dockerfile +18 -30
  39. README.md +1 -1
.gitattributes CHANGED
@@ -33,3 +33,37 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ Assets/Profil_Avatars/Bryan.jfif filter=lfs diff=lfs merge=lfs -text
37
+ Assets/Profil_Avatars/Lenny[[:space:]]Avril.jpeg filter=lfs diff=lfs merge=lfs -text
38
+ Assets/Profil_Avatars/Mario.png filter=lfs diff=lfs merge=lfs -text
39
+ Assets/Projects/Ark.Alliance/Ark_Alliance_1.png filter=lfs diff=lfs merge=lfs -text
40
+ Assets/Projects/Ark.Alliance/Ark_Alliance_Hero.png filter=lfs diff=lfs merge=lfs -text
41
+ Assets/Projects/Ark.Alliance.React.Component/components-hero.png filter=lfs diff=lfs merge=lfs -text
42
+ Assets/Projects/Ark.Alliance.StartupCms.AI/ArkAllianceStartupCmsAi_Hero.Png filter=lfs diff=lfs merge=lfs -text
43
+ Assets/Projects/Ark.Alliance.StartupCms.AI/ArkAllianceStartupCmsAiHero.png filter=lfs diff=lfs merge=lfs -text
44
+ Assets/Projects/Ark.Alliance.StartupCms.AI/Google_AI_Studio_2026-01-08T00_41_57.111Z.png filter=lfs diff=lfs merge=lfs -text
45
+ Assets/Projects/Ark.Alliance.Trading.Bot/bot-hero.png filter=lfs diff=lfs merge=lfs -text
46
+ Assets/Projects/Ark.Alliance.Trading.Bot/bot1.PNG filter=lfs diff=lfs merge=lfs -text
47
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot10.PNG filter=lfs diff=lfs merge=lfs -text
48
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot11.PNG filter=lfs diff=lfs merge=lfs -text
49
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot12.PNG filter=lfs diff=lfs merge=lfs -text
50
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot13.PNG filter=lfs diff=lfs merge=lfs -text
51
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot14.PNG filter=lfs diff=lfs merge=lfs -text
52
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot2.PNG filter=lfs diff=lfs merge=lfs -text
53
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot3.PNG filter=lfs diff=lfs merge=lfs -text
54
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot4.PNG filter=lfs diff=lfs merge=lfs -text
55
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot5.PNG filter=lfs diff=lfs merge=lfs -text
56
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot6.PNG filter=lfs diff=lfs merge=lfs -text
57
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot7.PNG filter=lfs diff=lfs merge=lfs -text
58
+ Assets/Projects/Ark.Alliance.Trading.Bot/Bot8.PNG filter=lfs diff=lfs merge=lfs -text
59
+ Assets/Projects/Ark.Alliance.Trading.Bot/Capture.PNG filter=lfs diff=lfs merge=lfs -text
60
+ Assets/Projects/Ark.Alliance.Trading.Providers.Lib/providers-hero.png filter=lfs diff=lfs merge=lfs -text
61
+ Assets/Projects/Ark.Alliance.Trading.Providers.Lib/trading-hero.png filter=lfs diff=lfs merge=lfs -text
62
+ Assets/Projects/Ark.Alliance.TrendsCalculator/trends-hero.png filter=lfs diff=lfs merge=lfs -text
63
+ Assets/Projects/Ark.Alliance.TrendsCalculator/trends-hero.png.jpg filter=lfs diff=lfs merge=lfs -text
64
+ Assets/Projects/Ark.Portfolio/Admin_Dashobard.PNG filter=lfs diff=lfs merge=lfs -text
65
+ Assets/Projects/Ark.Portfolio/Admin_Hero_Carrousel.PNG filter=lfs diff=lfs merge=lfs -text
66
+ Assets/Projects/Ark.Portfolio/Admin_Projects.PNG filter=lfs diff=lfs merge=lfs -text
67
+ Assets/Projects/Ark.Portfolio/Admin_ResumeManager.PNG filter=lfs diff=lfs merge=lfs -text
68
+ Assets/Projects/Ark.Portfolio/portfolio-hero.png filter=lfs diff=lfs merge=lfs -text
69
+ Assets/Site/Icon.png filter=lfs diff=lfs merge=lfs -text
Assets/Profil_Avatars/Armand.jfif ADDED
Binary file (12.9 kB). View file
 
Assets/Profil_Avatars/Bryan.jfif ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b4c4a229f87235a174f89f547103440c9c10a9119b7293882d79bfc77d639e4b
3
+ size 100388
Assets/Profil_Avatars/Lenny Avril.jpeg ADDED

Git LFS Details

  • SHA256: 4a8566d631ef4e43cf817d9cf4704d1d84cbde8ae820eaf21a18189be762525a
  • Pointer size: 131 Bytes
  • Size of remote file: 128 kB
Assets/Profil_Avatars/Mario.png ADDED

Git LFS Details

  • SHA256: b760e2d9907193ba96910cd3b7856e8862e739bb236bbf7b349cca94ce830210
  • Pointer size: 131 Bytes
  • Size of remote file: 492 kB
Assets/Profil_Avatars/RaduDinulescu.jfif ADDED
Binary file (48.1 kB). View file
 
Assets/Projects/Ark.Alliance.React.Component/components-hero.png ADDED

Git LFS Details

  • SHA256: 336b801f8ab538800e00f69180727b3ab5a8aba113f4f59b1808dbb7e7b5cd96
  • Pointer size: 132 Bytes
  • Size of remote file: 4.08 MB
Assets/Projects/Ark.Alliance.StartupCms.AI/ArkAllianceStartupCmsAiHero.png ADDED

Git LFS Details

  • SHA256: dc699238f96ac2a690579685416f3ee31564c5ad4d461309db73c5e11c3bb207
  • Pointer size: 131 Bytes
  • Size of remote file: 385 kB
Assets/Projects/Ark.Alliance.StartupCms.AI/ArkAllianceStartupCmsAi_Hero.Png ADDED

Git LFS Details

  • SHA256: ad36b3d343cb4fde6896ea5eef472bb0068f94abb1079ae561fc40923aece2cf
  • Pointer size: 132 Bytes
  • Size of remote file: 1.31 MB
Assets/Projects/Ark.Alliance.StartupCms.AI/Google_AI_Studio_2026-01-08T00_41_57.111Z.png ADDED

Git LFS Details

  • SHA256: b5cd68e2a95d444d0016b6ae00830a4bfebe9b802aad2202cdaa150608117187
  • Pointer size: 132 Bytes
  • Size of remote file: 1.28 MB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot10.PNG ADDED

Git LFS Details

  • SHA256: 9975e1830cb087bc177751ac162554ebe09ea1ee02dc881b0499954cc6fa13bc
  • Pointer size: 131 Bytes
  • Size of remote file: 322 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot11.PNG ADDED

Git LFS Details

  • SHA256: 39a5c84b9a23784f6ee68772b3292945d557d4681538e1bbe762a50fbaf49747
  • Pointer size: 131 Bytes
  • Size of remote file: 378 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot12.PNG ADDED

Git LFS Details

  • SHA256: 459bb1c112c7a10eb22eb9c9a0d132c4badeaf78e23319e439c119bdc787f376
  • Pointer size: 131 Bytes
  • Size of remote file: 155 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot13.PNG ADDED

Git LFS Details

  • SHA256: 614315756f28c729ae556a3b284460a0d7f63e8e9e3f00f10d752f9dcd840127
  • Pointer size: 131 Bytes
  • Size of remote file: 170 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot14.PNG ADDED

Git LFS Details

  • SHA256: 3ac92fa503174a5c4c6685c731a06b77dfe9aa7ff094f8ab3034d68fc8a0c0e1
  • Pointer size: 131 Bytes
  • Size of remote file: 459 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot2.PNG ADDED

Git LFS Details

  • SHA256: 6c25f04b3a256ba08022b0a14e7f3fb8d4c8d5fdb68ab8e5e9390cee46dc753a
  • Pointer size: 131 Bytes
  • Size of remote file: 465 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot3.PNG ADDED

Git LFS Details

  • SHA256: 0b7e290bd1e3c51a836ab9ab613c594a1aa57315dc9a76f961899692e675ed3a
  • Pointer size: 131 Bytes
  • Size of remote file: 398 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot4.PNG ADDED

Git LFS Details

  • SHA256: f322678e0f5a499352eccd3a6a89e0190274fc19ab03ab08ed36c2d8e0731675
  • Pointer size: 131 Bytes
  • Size of remote file: 214 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot5.PNG ADDED

Git LFS Details

  • SHA256: 7a74f2a561083dc5041332b70f1ef267ebb3ba2b2fbf72767a84ff7b7e7dec4c
  • Pointer size: 131 Bytes
  • Size of remote file: 216 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot6.PNG ADDED

Git LFS Details

  • SHA256: 66435ea297e9f7466e72a3cd1f4671e1e4da1f914521786a3cdcd4987624aad6
  • Pointer size: 131 Bytes
  • Size of remote file: 505 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot7.PNG ADDED

Git LFS Details

  • SHA256: a2cea73cf7bf2a1e4dedadad32fc30e2b6720ed513cb0b3c2ee0679aaea46d5a
  • Pointer size: 131 Bytes
  • Size of remote file: 370 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Bot8.PNG ADDED

Git LFS Details

  • SHA256: 4b554f447aa539e11f277200d0979cd6409c6f49bbb09968d043efce36b6ac12
  • Pointer size: 131 Bytes
  • Size of remote file: 271 kB
Assets/Projects/Ark.Alliance.Trading.Bot/Capture.PNG ADDED

Git LFS Details

  • SHA256: a2cea73cf7bf2a1e4dedadad32fc30e2b6720ed513cb0b3c2ee0679aaea46d5a
  • Pointer size: 131 Bytes
  • Size of remote file: 370 kB
Assets/Projects/Ark.Alliance.Trading.Bot/bot-hero.png ADDED

Git LFS Details

  • SHA256: 57a8dd5a0928f512d557c043fa10d68c6b4106fda7dcf61b8a57f538c800d9b9
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
Assets/Projects/Ark.Alliance.Trading.Bot/bot1.PNG ADDED

Git LFS Details

  • SHA256: bcc256615a841b8686d03fa6159e33d37b1a40ccd0365288c946dd9740f0b2de
  • Pointer size: 131 Bytes
  • Size of remote file: 259 kB
Assets/Projects/Ark.Alliance.Trading.Providers.Lib/providers-hero.png ADDED

Git LFS Details

  • SHA256: 8fd701b06d1369df334415dddbe30c52070f5df207a025173ef8c65e7715f7c3
  • Pointer size: 132 Bytes
  • Size of remote file: 1.13 MB
Assets/Projects/Ark.Alliance.Trading.Providers.Lib/trading-hero.png ADDED

Git LFS Details

  • SHA256: 83efb733710f1a58fba2767716bd3f17e6c795afd9cd1691adc6c7ef4d58aed7
  • Pointer size: 131 Bytes
  • Size of remote file: 695 kB
Assets/Projects/Ark.Alliance.TrendsCalculator/trends-hero.png ADDED

Git LFS Details

  • SHA256: 19b5c66ce45f76dc2214f5e2cb9cebe7daaf44ca32ef8fb4d2d161b695833289
  • Pointer size: 132 Bytes
  • Size of remote file: 4.06 MB
Assets/Projects/Ark.Alliance.TrendsCalculator/trends-hero.png.jpg ADDED

Git LFS Details

  • SHA256: 19b5c66ce45f76dc2214f5e2cb9cebe7daaf44ca32ef8fb4d2d161b695833289
  • Pointer size: 132 Bytes
  • Size of remote file: 4.06 MB
Assets/Projects/Ark.Alliance/Ark_Alliance_1.png ADDED

Git LFS Details

  • SHA256: f2e202213ddc181cdfcea31d207cdfc5697d0ac9f88415e7250a875f4f92aeb4
  • Pointer size: 132 Bytes
  • Size of remote file: 2.64 MB
Assets/Projects/Ark.Alliance/Ark_Alliance_Hero.png ADDED

Git LFS Details

  • SHA256: 119048c8b09932e7ba69e38073e74ff89cb2fe95021c8e6fd11708399322b352
  • Pointer size: 132 Bytes
  • Size of remote file: 1.18 MB
Assets/Projects/Ark.Portfolio/Admin_Dashobard.PNG ADDED

Git LFS Details

  • SHA256: b5f6573f8cf1d13dfca66b52329455f733935c65ddab4d567656e916ff39f738
  • Pointer size: 131 Bytes
  • Size of remote file: 170 kB
Assets/Projects/Ark.Portfolio/Admin_Hero_Carrousel.PNG ADDED

Git LFS Details

  • SHA256: 1fa16b5a96617ec4785fa1070ba68414b6e5e39c031044f774ec298f41d0b62c
  • Pointer size: 131 Bytes
  • Size of remote file: 244 kB
Assets/Projects/Ark.Portfolio/Admin_Projects.PNG ADDED

Git LFS Details

  • SHA256: c863dcb37da3cae3e73422ff0a23b80d59af76565922c52b1d1f5291aab5fbbd
  • Pointer size: 131 Bytes
  • Size of remote file: 705 kB
Assets/Projects/Ark.Portfolio/Admin_ResumeManager.PNG ADDED

Git LFS Details

  • SHA256: 55c991692dc9d16b626e2021d9bf3154180ffc5ae18d6ca8e18905bf5b4113fb
  • Pointer size: 131 Bytes
  • Size of remote file: 217 kB
Assets/Projects/Ark.Portfolio/portfolio-hero.png ADDED

Git LFS Details

  • SHA256: fc29d203e8ea95c84865d68f7762c5b23efa501678a8bec35c8bbcbf2bc212b6
  • Pointer size: 132 Bytes
  • Size of remote file: 4.16 MB
Assets/Site/Icon.png ADDED

Git LFS Details

  • SHA256: ac6bf4eb19783054f288a240b7a185984d3967f25d80ab59fb7e75d9dca2f631
  • Pointer size: 131 Bytes
  • Size of remote file: 101 kB
Dockerfile CHANGED
@@ -1,42 +1,29 @@
1
  # ═══════════════════════════════════════════════════════════════════════
2
  # Ark.Alliance.StartupCMS.AI - Minimal HuggingFace Deployment
3
  # ═══════════════════════════════════════════════════════════════════════
4
- # This Dockerfile clones source code from GitHub during build to minimize HF repo size
5
 
6
  FROM node:22-alpine AS source-clone
7
  WORKDIR /source
8
-
9
- # Install git
10
  RUN apk add --no-cache git
11
 
12
- # Clone the source repositories
13
- RUN git clone https://github.com/ark-alliance/Ark.Portfolio.git /source/portfolio || \
14
- git clone https://github.com/ArmandRicheletKleinberg/Ark.Portfolio.git /source/portfolio || \
15
- echo "Using local fallback - repo will be provided"
16
 
17
  # Stage 1: Build Frontend
18
  FROM node:22-alpine AS frontend-builder
19
  WORKDIR /app/frontend
 
 
 
20
 
21
- # Copy source from clone stage
22
- COPY --from=source-clone /source/portfolio/Ark.Alliance.StartupCms.Ai.UI/package*.json ./ 2>/dev/null || true
23
- COPY --from=source-clone /source/portfolio/Ark.Alliance.StartupCms.Ai.UI ./ 2>/dev/null || true
24
-
25
- # If source wasn't cloned, we expect it to be provided locally
26
- ONBUILD COPY Ark.Alliance.StartupCms.Ai.UI/package*.json ./ 2>/dev/null || true
27
- ONBUILD COPY Ark.Alliance.StartupCms.Ai.UI ./ 2>/dev/null || true
28
-
29
- RUN if [ -f "package.json" ]; then npm ci && npm run build; fi
30
-
31
- # Stage 2: Build Backend
32
  FROM node:22-alpine AS backend-builder
33
  WORKDIR /app/backend
34
-
35
- # Copy source from clone stage
36
- COPY --from=source-clone /source/portfolio/Ark.Alliance.StartupCms.Ai.Backend/package*.json ./ 2>/dev/null || true
37
- COPY --from=source-clone /source/portfolio/Ark.Alliance.StartupCms.Ai.Backend ./ 2>/dev/null || true
38
-
39
- RUN if [ -f "package.json" ]; then npm ci && npm run build; fi
40
 
41
  # Stage 3: Production Runtime
42
  FROM node:22-alpine AS production
@@ -44,32 +31,33 @@ RUN apk add --no-cache nginx
44
 
45
  WORKDIR /app
46
 
47
- # Copy backend
48
  COPY --from=backend-builder /app/backend/dist ./dist 2>/dev/null || mkdir -p ./dist
49
  COPY --from=backend-builder /app/backend/node_modules ./node_modules 2>/dev/null || true
50
  COPY --from=backend-builder /app/backend/package.json ./ 2>/dev/null || echo '{"name":"fallback"}' > package.json
51
 
52
- # Copy frontend static files
53
  COPY --from=frontend-builder /app/frontend/dist /usr/share/nginx/html 2>/dev/null || mkdir -p /usr/share/nginx/html
54
 
55
  # Copy nginx config
56
  COPY nginx.conf /etc/nginx/nginx.conf
57
 
58
- # Copy backend assets if they exist
59
  RUN mkdir -p ./dist/Assets
60
- COPY --from=backend-builder /app/backend/src/Assets ./dist/Assets 2>/dev/null || true
61
 
62
- # Create data directory for SQLite
63
  RUN mkdir -p /app/data
64
 
65
  # HF Spaces runs as user 1000
66
  RUN chown -R 1000:1000 /app /usr/share/nginx/html /var/lib/nginx /var/log/nginx
67
 
68
- # Environment defaults
69
  ENV PORT=3085
70
  ENV NODE_ENV=production
71
  ENV DATABASE_TYPE=sqlite
72
  ENV DATABASE_NAME=/app/data/startupcms.db
 
73
 
74
  # Expose HF Spaces port
75
  EXPOSE 7860
 
1
  # ═══════════════════════════════════════════════════════════════════════
2
  # Ark.Alliance.StartupCMS.AI - Minimal HuggingFace Deployment
3
  # ═══════════════════════════════════════════════════════════════════════
4
+ # Clones source from GitHub during build, includes Assets for seeding
5
 
6
  FROM node:22-alpine AS source-clone
7
  WORKDIR /source
 
 
8
  RUN apk add --no-cache git
9
 
10
+ # Clone source from StartupCMS AI repository
11
+ RUN git clone https://github.com/M2H-Machine-to-Human-Race/Ark.Alliance.StartupCms.AI.git /source/startupcms || \
12
+ echo "Clone failed - using fallback"
 
13
 
14
  # Stage 1: Build Frontend
15
  FROM node:22-alpine AS frontend-builder
16
  WORKDIR /app/frontend
17
+ COPY --from=source-clone /source/startupcms/Ark.Alliance.StartupCms.Ai.UI/package*.json ./ 2>/dev/null || true
18
+ COPY --from=source-clone /source/startupcms/Ark.Alliance.StartupCms.Ai.UI ./ 2>/dev/null || true
19
+ RUN if [ -f "package.json" ]; then npm ci && npm run build; else echo "No frontend package.json found"; fi
20
 
21
+ # Stage 2: Build Backend
 
 
 
 
 
 
 
 
 
 
22
  FROM node:22-alpine AS backend-builder
23
  WORKDIR /app/backend
24
+ COPY --from=source-clone /source/startupcms/Ark.Alliance.StartupCms.Ai.Backend/package*.json ./ 2>/dev/null || true
25
+ COPY --from=source-clone /source/startupcms/Ark.Alliance.StartupCms.Ai.Backend ./ 2>/dev/null || true
26
+ RUN if [ -f "package.json" ]; then npm ci && npm run build; else echo "No backend package.json found"; fi
 
 
 
27
 
28
  # Stage 3: Production Runtime
29
  FROM node:22-alpine AS production
 
31
 
32
  WORKDIR /app
33
 
34
+ # Copy backend build
35
  COPY --from=backend-builder /app/backend/dist ./dist 2>/dev/null || mkdir -p ./dist
36
  COPY --from=backend-builder /app/backend/node_modules ./node_modules 2>/dev/null || true
37
  COPY --from=backend-builder /app/backend/package.json ./ 2>/dev/null || echo '{"name":"fallback"}' > package.json
38
 
39
+ # Copy frontend build
40
  COPY --from=frontend-builder /app/frontend/dist /usr/share/nginx/html 2>/dev/null || mkdir -p /usr/share/nginx/html
41
 
42
  # Copy nginx config
43
  COPY nginx.conf /etc/nginx/nginx.conf
44
 
45
+ # Copy Assets directory for database seeding (from HF Space repo)
46
  RUN mkdir -p ./dist/Assets
47
+ COPY Assets ./dist/Assets 2>/dev/null || echo "No assets provided"
48
 
49
+ # Create persistent data directory for SQLite
50
  RUN mkdir -p /app/data
51
 
52
  # HF Spaces runs as user 1000
53
  RUN chown -R 1000:1000 /app /usr/share/nginx/html /var/lib/nginx /var/log/nginx
54
 
55
+ # Environment - database will be seeded on first run
56
  ENV PORT=3085
57
  ENV NODE_ENV=production
58
  ENV DATABASE_TYPE=sqlite
59
  ENV DATABASE_NAME=/app/data/startupcms.db
60
+ ENV SEED_DATABASE=true
61
 
62
  # Expose HF Spaces port
63
  EXPOSE 7860
README.md CHANGED
@@ -34,4 +34,4 @@ This Space uses a Docker-based deployment that:
34
  2. Builds frontend and backend via multi-stage Docker
35
  3. Serves via Nginx reverse proxy
36
 
37
- Source code is fetched from: https://github.com/ark-alliance/Ark.Portfolio
 
34
  2. Builds frontend and backend via multi-stage Docker
35
  3. Serves via Nginx reverse proxy
36
 
37
+ Source code is fetched from: https://github.com/M2H-Machine-to-Human-Race/Ark.Alliance.StartupCms.AI