Add Dockerfile for Coolify deployment and fix image paths.
Serve the static site via nginx on port 80 and use local asset paths so images load outside Open Design. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
a50a74873f
commit
d635d3554e
4 changed files with 49 additions and 6 deletions
9
.dockerignore
Normal file
9
.dockerignore
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
.git
|
||||
.file-versions
|
||||
.od-skills
|
||||
.playwright-mcp
|
||||
*.artifact.json
|
||||
.DS_Store
|
||||
brand-spec.md
|
||||
Dockerfile
|
||||
.dockerignore
|
||||
14
Dockerfile
Normal file
14
Dockerfile
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
FROM nginx:1.27-alpine
|
||||
|
||||
RUN rm -rf /usr/share/nginx/html/*
|
||||
|
||||
COPY *.html /usr/share/nginx/html/
|
||||
COPY *.png /usr/share/nginx/html/
|
||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
||||
CMD wget -qO- http://127.0.0.1/ || exit 1
|
||||
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
12
index.html
12
index.html
|
|
@ -298,7 +298,7 @@
|
|||
</dl>
|
||||
</div>
|
||||
<div class="hero__art">
|
||||
<img src="/api/projects/716abf22-4c81-4e02-9071-f87cd01d9451/raw/mqcitja8-Gemini_Generated_Image_m7xmdtm7xmdtm7xm.png?workspaceId=un26lqpsncycdhv3rp1d0ywn&workspaceMemberId=pxn6oix13zs6uq64ruak6n1g" alt="MagBeast magnetic drill press — technical schematic, two-view orthographic drawing with 14 labelled parts, dimensioned in millimetres." width="2048" height="2048" loading="eager" decoding="async">
|
||||
<img src="mqcitja8-Gemini_Generated_Image_m7xmdtm7xmdtm7xm.png" alt="MagBeast magnetic drill press — technical schematic, two-view orthographic drawing with 14 labelled parts, dimensioned in millimetres." width="2048" height="2048" loading="eager" decoding="async">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -415,23 +415,23 @@
|
|||
</div>
|
||||
<div class="range__grid">
|
||||
<a href="products.html#drills" class="range__cell reveal" aria-label="MagBeast — magnetic drills">
|
||||
<div class="range__logo"><img src="/api/projects/716abf22-4c81-4e02-9071-f87cd01d9451/raw/mqcj0lwu-image.png?workspaceId=un26lqpsncycdhv3rp1d0ywn&workspaceMemberId=pxn6oix13zs6uq64ruak6n1g" alt="MagBeast" width="600" height="200" loading="lazy" decoding="async"></div>
|
||||
<div class="range__logo"><img src="mqcj0lwu-image.png" alt="MagBeast" width="600" height="200" loading="lazy" decoding="async"></div>
|
||||
<div class="range__name">MagBeast<sup>®</sup> · Drills</div>
|
||||
</a>
|
||||
<a href="products.html#cordless" class="range__cell reveal" aria-label="MiniBeast — compact cordless">
|
||||
<div class="range__logo"><img src="/api/projects/716abf22-4c81-4e02-9071-f87cd01d9451/raw/mqcj0qbk-image.png?workspaceId=un26lqpsncycdhv3rp1d0ywn&workspaceMemberId=pxn6oix13zs6uq64ruak6n1g" alt="MiniBeast" width="600" height="200" loading="lazy" decoding="async"></div>
|
||||
<div class="range__logo"><img src="mqcj0qbk-image.png" alt="MiniBeast" width="600" height="200" loading="lazy" decoding="async"></div>
|
||||
<div class="range__name">MiniBeast<sup>™</sup> · Cordless</div>
|
||||
</a>
|
||||
<a href="products.html#cutters" class="range__cell reveal" aria-label="SteelBeast — industrial">
|
||||
<div class="range__logo"><img src="/api/projects/716abf22-4c81-4e02-9071-f87cd01d9451/raw/mqcj0uhh-image.png?workspaceId=un26lqpsncycdhv3rp1d0ywn&workspaceMemberId=pxn6oix13zs6uq64ruak6n1g" alt="SteelBeast" width="600" height="200" loading="lazy" decoding="async"></div>
|
||||
<div class="range__logo"><img src="mqcj0uhh-image.png" alt="SteelBeast" width="600" height="200" loading="lazy" decoding="async"></div>
|
||||
<div class="range__name">SteelBeast<sup>®</sup> · Industrial</div>
|
||||
</a>
|
||||
<a href="products.html#cutters" class="range__cell reveal" aria-label="Turbo — annular cutters">
|
||||
<div class="range__logo"><img src="/api/projects/716abf22-4c81-4e02-9071-f87cd01d9451/raw/mqcj14mi-image.png?workspaceId=un26lqpsncycdhv3rp1d0ywn&workspaceMemberId=pxn6oix13zs6uq64ruak6n1g" alt="Turbo" width="600" height="200" loading="lazy" decoding="async"></div>
|
||||
<div class="range__logo"><img src="mqcj14mi-image.png" alt="Turbo" width="600" height="200" loading="lazy" decoding="async"></div>
|
||||
<div class="range__name">Turbo<sup>™</sup> · Cutters</div>
|
||||
</a>
|
||||
<a href="products.html#pneumatic" class="range__cell reveal" aria-label="AirBeast — pneumatic">
|
||||
<div class="range__logo"><img src="/api/projects/716abf22-4c81-4e02-9071-f87cd01d9451/raw/mqcj189n-image.png?workspaceId=un26lqpsncycdhv3rp1d0ywn&workspaceMemberId=pxn6oix13zs6uq64ruak6n1g" alt="AirBeast" width="600" height="200" loading="lazy" decoding="async"></div>
|
||||
<div class="range__logo"><img src="mqcj189n-image.png" alt="AirBeast" width="600" height="200" loading="lazy" decoding="async"></div>
|
||||
<div class="range__name">AirBeast<sup>®</sup> · Pneumatic</div>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
20
nginx.conf
Normal file
20
nginx.conf
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ $uri.html =404;
|
||||
}
|
||||
|
||||
location ~* \.(png|jpg|jpeg|gif|ico|svg|webp)$ {
|
||||
expires 30d;
|
||||
add_header Cache-Control "public, immutable";
|
||||
}
|
||||
|
||||
gzip on;
|
||||
gzip_vary on;
|
||||
gzip_min_length 256;
|
||||
gzip_types text/plain text/css application/javascript text/html image/svg+xml;
|
||||
}
|
||||
Loading…
Reference in a new issue