站点:纯静态 HTML + CSS + 原生 JS,零框架零构建
页面:首页 / 合作品牌 / 荣誉资质 / 客户案例 / 关于我们
内容:
- site/ 站点本体(含已压缩 webp 图片,约 4.8 MB)
- deploy/ Docker Compose / Caddy / Apache 部署配置
- _tools/ 开发自检脚本与部署脚本
- Dockerfile 自建 nginx 镜像方案
- README.md 项目文档
设计:品牌黄 #ffc107 + 白,深蓝仅用于页脚;菜单长期置顶;
交互动效只加在关键词与区块级元素上。
素材说明:原始素材(背景图/老网站/方案/荣誉资质/合作品牌,约 290 MB)
未纳入版本控制,站点使用的是 site/assets 内已处理压缩的图片。
60 lines
2.0 KiB
YAML
60 lines
2.0 KiB
YAML
# ==============================================================================
|
|
# 上海炫恒网络系统有限公司 官网 —— 服务器部署编排
|
|
#
|
|
# 部署位置:/www/wwwroot/xuanheng-site/
|
|
# 对外地址:http://<服务器IP>:8081
|
|
# 反向代理:由 1Panel 的 Caddy 把域名指到本容器的 8081(HTTPS 在那一层处理)
|
|
#
|
|
# 常用命令(在 /www/wwwroot/xuanheng-site 下执行):
|
|
# docker compose up -d 启动
|
|
# docker compose logs -f 看日志
|
|
# docker compose ps 看健康状况
|
|
# docker compose restart 重启(改完 Caddyfile 用这个)
|
|
# docker compose down 停止并删除容器
|
|
#
|
|
# 更新站点内容:直接覆盖 ./site/ 里的文件即可,无需重启容器。
|
|
# 更新配置:改完 ./Caddyfile 后执行 docker compose restart。
|
|
#
|
|
# 说明:这里复用服务器上已有的 caddy:2.11.2 镜像(与 1Panel 同一套技术栈),
|
|
# 不依赖 Docker Hub,避免网络问题导致部署失败。
|
|
# ==============================================================================
|
|
|
|
services:
|
|
web:
|
|
image: caddy:2.11.2
|
|
container_name: xuanheng-web
|
|
restart: unless-stopped
|
|
|
|
ports:
|
|
- "${SITE_PORT:-8081}:80"
|
|
|
|
environment:
|
|
- TZ=Asia/Shanghai
|
|
|
|
volumes:
|
|
# 站点文件(只读挂载;改内容直接覆盖宿主机文件即可,不用重启)
|
|
- ./site:/srv:ro
|
|
# 站点配置
|
|
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
|
# Caddy 自身数据(证书、状态),独立目录避免和 1Panel 的 Caddy 冲突
|
|
- ./caddy-data:/data
|
|
- ./caddy-config:/config
|
|
# 日志也留一份在宿主机,方便排查
|
|
- ./logs:/var/log/caddy
|
|
|
|
healthcheck:
|
|
test: ["CMD", "/usr/bin/caddy", "version"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 5s
|
|
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|