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

41
node_modules/@zeit/schemas/deployment/config-env.js generated vendored Normal file
View File

@@ -0,0 +1,41 @@
const maxEnvLength = 100;
const EnvKey = {
type: 'string',
pattern: '^[A-z0-9_]+$',
minLength: 1,
maxLength: 256
};
const EnvKeys = {
type: 'array',
minItems: 0,
maxItems: maxEnvLength,
uniqueItems: true,
items: EnvKey,
additionalProperties: false
};
const EnvValue = {
type: 'string',
minLength: 0,
maxLength: 65536
};
// { 'FOO': 'BAR' }
const EnvObject = {
type: 'object',
minProperties: 0,
maxProperties: maxEnvLength,
patternProperties: {
'.+': EnvValue
},
additionalProperties: false
};
module.exports = {
EnvKey,
EnvKeys,
EnvValue,
EnvObject
};

82
node_modules/@zeit/schemas/deployment/config-static.js generated vendored Normal file
View File

@@ -0,0 +1,82 @@
module.exports = {
type: 'object',
properties: {
'public': {
type: 'string'
},
'cleanUrls': {
type: [
'boolean',
'array'
]
},
'rewrites': {
type: 'array'
},
'redirects': {
type: 'array'
},
'headers': {
type: 'array',
maxItems: 50,
minItems: 1,
uniqueItems: true,
items: {
type: 'object',
required: ['source', 'headers'],
properties: {
source: {
type: 'string',
maxLength: 100,
minLength: 1
},
headers: {
type: 'array',
maxItems: 50,
minItems: 1,
uniqueItems: true,
items: {
type: 'object',
required: ['key', 'value'],
properties: {
key: {
type: 'string',
minLength: 1,
maxLength: 128,
pattern: "^[a-zA-Z0-9_!#$%&'*+.^`|~-]+$"
},
value: {
type: 'string',
minLength: 1,
maxLength: 2048,
pattern: '^[\u0020-\u007e\u00a0-\u00ff]+$'
}
},
additionalProperties: false
}
}
},
additionalProperties: false
}
},
'directoryListing': {
type: [
'boolean',
'array'
]
},
'unlisted': {
type: 'array'
},
'trailingSlash': {
type: 'boolean'
},
'renderSingle': {
type: 'boolean'
},
'symlinks': {
type: 'boolean'
}
},
additionalProperties: false
};

170
node_modules/@zeit/schemas/deployment/config.js generated vendored Normal file
View File

@@ -0,0 +1,170 @@
const {Service} = require('./service');
const {EnvKeys, EnvObject} = require('./config-env');
const staticSchema = require('./config-static');
module.exports = {
type: 'object',
additionalProperties: false,
dependencies: {
slot: {
type: 'object',
required: ['features'],
properties: {
features: {
type: 'object',
required: ['cloud'],
properties: {
cloud: {
'const': 'v2'
}
}
}
}
}
},
properties: {
'name': {
type: 'string',
minLength: 1
},
'project': {
type: 'string',
minLength: 1
},
'alias': {
type: [
'string',
'array'
]
},
'env': { anyOf: [EnvObject, EnvKeys] },
'build': {
type: 'object',
additionalProperties: false,
properties: {
env: EnvObject
}
},
'scale': {
type: 'object',
patternProperties: {
'.+': {
'type': 'object',
'required': ['max', 'min'],
'properties': {
max: {
anyOf: [
{
type: 'number',
minimum: 1
},
{'const': 'auto'}
]
},
min: {
type: 'number',
minimum: 0
}
},
'if': {
properties: {
max: {
type: 'number'
}
}
},
'then': {
properties: {
min: {
maximum: {
$data: '1/max'
}
}
}
}
}
},
additionalProperties: false
},
'regions': {
type: 'array'
},
'dotenv': {
type: [
'boolean',
'string'
]
},
'files': {
type: 'array'
},
'type': {
type: 'string'
},
'forwardNpm': {
type: 'boolean'
},
'public': {
type: 'boolean'
},
'engines': {
type: 'object'
},
'api': {
type: 'string'
},
'static': staticSchema,
'limits': {
type: 'object',
properties: {
duration: {
type: 'number',
minimum: 60000,
maximum: 60000 * 15 // max 15m runtime
},
maxConcurrentReqs: {
type: 'number',
minimum: 1,
maximum: 256
},
timeout: {
type: 'number',
minimum: 60000,
maximum: 60000 * 15 // max duration
}
},
additionalProperties: false
},
'features': {
type: 'object',
patternProperties: {
'.*': {
type: ['string', 'number', 'boolean']
}
}
},
'github': {
type: 'object',
properties: {
enabled: {
type: 'boolean'
},
autoAlias: {
type: 'boolean'
},
autoJobCancelation: {
type: 'boolean'
},
silent: {
type: 'boolean'
}
},
additionalProperties: false
},
'slot': {
type: 'string',
pattern: 'c.125-m512|c1-m4096|staging-*'
},
'service': Service
}
};

15
node_modules/@zeit/schemas/deployment/service.js generated vendored Normal file
View File

@@ -0,0 +1,15 @@
const Service = {
type: 'object',
additionalProperties: false,
properties: {
port: {
type: 'number',
minimum: 1,
maximum: 32767
}
}
};
module.exports = {
Service
};