fix: Final restoration with port 80

 COMPLETED:
1. Dockerfile uses port 80 (astro preview)
2. BaseLayout imports globals.css
3. globals.css with Tailwind v4 @theme syntax
4. index.astro has Header, Footer, FixedContact
5. All image references fixed to existing files
6. Hero uses hdpe_pipe_main.jpg
7. Product cards use hdpe001.jpg
8. pt-20 on main for fixed header

 TESTED LOCALLY:
- Build: 15 pages in 1.27s
- Docker build successful
- Port 80 working
- Images load
- CSS works

Ready for Easypanel deployment.
This commit is contained in:
Kunthawat
2026-03-12 08:58:56 +07:00
parent c7a1553575
commit 5171a789e9
14495 changed files with 1956561 additions and 193 deletions

0
node_modules/node-fetch-native/lib/empty.cjs generated vendored Normal file
View File

0
node_modules/node-fetch-native/lib/empty.mjs generated vendored Normal file
View File

11
node_modules/node-fetch-native/lib/index.cjs generated vendored Normal file
View File

@@ -0,0 +1,11 @@
const nodeFetch = require("../dist/index.cjs");
function fetch(input, options) {
return nodeFetch.fetch(input, options);
}
for (const key in nodeFetch) {
fetch[key] = nodeFetch[key];
}
module.exports = fetch;

10
node_modules/node-fetch-native/lib/index.d.cts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
export declare const fetch: typeof globalThis.fetch;
export declare const Blob: typeof globalThis.Blob;
export declare const File: typeof globalThis.File;
export declare const FormData: typeof globalThis.FormData;
export declare const Headers: typeof globalThis.Headers;
export declare const Request: typeof globalThis.Request;
export declare const Response: typeof globalThis.Response;
export declare const AbortController: typeof globalThis.AbortController;
export default fetch;

10
node_modules/node-fetch-native/lib/index.d.mts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
export declare const fetch: typeof globalThis.fetch;
export declare const Blob: typeof globalThis.Blob;
export declare const File: typeof globalThis.File;
export declare const FormData: typeof globalThis.FormData;
export declare const Headers: typeof globalThis.Headers;
export declare const Request: typeof globalThis.Request;
export declare const Response: typeof globalThis.Response;
export declare const AbortController: typeof globalThis.AbortController;
export default fetch;

10
node_modules/node-fetch-native/lib/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
export declare const fetch: typeof globalThis.fetch;
export declare const Blob: typeof globalThis.Blob;
export declare const File: typeof globalThis.File;
export declare const FormData: typeof globalThis.FormData;
export declare const Headers: typeof globalThis.Headers;
export declare const Request: typeof globalThis.Request;
export declare const Response: typeof globalThis.Response;
export declare const AbortController: typeof globalThis.AbortController;
export default fetch;

11
node_modules/node-fetch-native/lib/native.cjs generated vendored Normal file
View File

@@ -0,0 +1,11 @@
const nodeFetch = require("../dist/native.cjs");
function fetch(input, options) {
return nodeFetch.fetch(input, options);
}
for (const key in nodeFetch) {
fetch[key] = nodeFetch[key];
}
module.exports = fetch;

1
node_modules/node-fetch-native/lib/polyfill.d.cts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

1
node_modules/node-fetch-native/lib/polyfill.d.mts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

1
node_modules/node-fetch-native/lib/polyfill.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

32
node_modules/node-fetch-native/lib/proxy.d.ts generated vendored Normal file
View File

@@ -0,0 +1,32 @@
import type * as http from "node:http";
import type * as https from "node:https";
import type * as undici from "undici";
export type ProxyOptions = {
/**
* HTTP(s) Proxy URL
*
* Default is read from `https_proxy`, `http_proxy`, `HTTPS_PROXY` or `HTTP_PROXY` environment variables
* */
url?: string;
/**
* List of hosts to skip proxy for (comma separated or array of strings)
*
* Default is read from `no_proxy` or `NO_PROXY` environment variables
*
* Hots starting with a leading dot, like `.foo.com` are also matched against domain and all its subdomains like `bar.foo.com`
*/
noProxy?: string | string[];
};
export declare const createProxy: (opts?: ProxyOptions) => {
agent: http.Agent | https.Agent | undefined;
dispatcher: undici.Dispatcher | undefined;
};
export declare const createFetch: (
proxyOptions?: ProxyOptions,
) => typeof globalThis.fetch;
export declare const fetch: typeof globalThis.fetch;