refactor: 清理根目录结构,重组部署文件
移动文件: - Caddyfile → docs/deployment/Caddyfile - fix-caddy-permissions.sh → docs/deployment/fix-caddy-permissions.sh 删除无用文件: - 根目录 package.json (空项目文件) - 根目录 bun.lock (无用锁定文件) - 根目录 node_modules/ (无用依赖目录) 保留文件: - lint-staged.config.js (项目级 pre-commit 配置) 更新引用: - 更新 caddy-setup.md 中的文件路径 - 更新 deployment/README.md 文档结构 现在根目录更干净,部署相关文件统一在 docs/deployment/ 目录下
This commit is contained in:
60
docs/deployment/Caddyfile
Normal file
60
docs/deployment/Caddyfile
Normal file
@ -0,0 +1,60 @@
|
||||
# Photography Portfolio Caddyfile
|
||||
# 将 https://photography.iriver.top 映射到用户目录
|
||||
|
||||
photography.iriver.top {
|
||||
# 静态文件服务
|
||||
root * /home/gitea/www/photography
|
||||
|
||||
# 启用文件服务器
|
||||
file_server
|
||||
|
||||
# 启用 gzip 压缩
|
||||
encode gzip
|
||||
|
||||
# 设置默认首页
|
||||
try_files {path} {path}/ /index.html
|
||||
|
||||
# 设置静态资源缓存
|
||||
@static {
|
||||
path *.css *.js *.png *.jpg *.jpeg *.gif *.svg *.woff *.woff2 *.ttf *.eot *.ico
|
||||
}
|
||||
header @static Cache-Control "public, max-age=31536000, immutable"
|
||||
|
||||
# 设置 HTML 文件缓存
|
||||
@html {
|
||||
path *.html
|
||||
}
|
||||
header @html Cache-Control "public, max-age=3600"
|
||||
|
||||
# 安全头设置
|
||||
header {
|
||||
# 防止点击劫持
|
||||
X-Frame-Options "SAMEORIGIN"
|
||||
# 防止 MIME 类型嗅探
|
||||
X-Content-Type-Options "nosniff"
|
||||
# XSS 保护
|
||||
X-XSS-Protection "1; mode=block"
|
||||
# 推荐 HTTPS
|
||||
Strict-Transport-Security "max-age=31536000; includeSubDomains"
|
||||
# 隐藏服务器信息
|
||||
-Server
|
||||
}
|
||||
|
||||
# 日志配置
|
||||
log {
|
||||
output file /var/log/caddy/photography.log {
|
||||
roll_size 10MB
|
||||
roll_keep 5
|
||||
}
|
||||
format json
|
||||
}
|
||||
|
||||
# 错误页面处理
|
||||
handle_errors {
|
||||
@404 {
|
||||
expression {http.error.status_code} == 404
|
||||
}
|
||||
rewrite @404 /404.html
|
||||
file_server
|
||||
}
|
||||
}
|
||||
@ -4,12 +4,15 @@
|
||||
|
||||
## 目录结构
|
||||
|
||||
- `environments.md` - 环境配置说明
|
||||
- `vercel-deployment.md` - Vercel 部署指南
|
||||
- `docker-deployment.md` - Docker 部署指南
|
||||
- `ci-cd.md` - CI/CD 配置说明
|
||||
- `monitoring.md` - 监控和日志配置
|
||||
- `backup.md` - 备份策略
|
||||
- `caddy-setup.md` - Caddy Web 服务器配置指南
|
||||
- `Caddyfile` - Caddy 配置文件
|
||||
- `fix-caddy-permissions.sh` - Caddy 权限修复脚本
|
||||
- `environments.md` - 环境配置说明(计划中)
|
||||
- `vercel-deployment.md` - Vercel 部署指南(计划中)
|
||||
- `docker-deployment.md` - Docker 部署指南(计划中)
|
||||
- `ci-cd.md` - CI/CD 配置说明(计划中)
|
||||
- `monitoring.md` - 监控和日志配置(计划中)
|
||||
- `backup.md` - 备份策略(计划中)
|
||||
|
||||
## 部署准备
|
||||
|
||||
@ -28,9 +31,28 @@
|
||||
NEXT_PUBLIC_API_URL=your-api-url
|
||||
```
|
||||
|
||||
## 当前部署方案
|
||||
|
||||
### Caddy + Static Files
|
||||
- **前端**: 静态文件部署到 `~/www/photography/`
|
||||
- **Web 服务器**: Caddy (自动 HTTPS)
|
||||
- **域名**: https://photography.iriver.top
|
||||
- **CI/CD**: Gitea Actions 自动部署
|
||||
|
||||
### 快速部署命令
|
||||
```bash
|
||||
# 1. 推送代码触发自动部署
|
||||
git push origin main
|
||||
|
||||
# 2. 配置 Web 服务器(仅首次)
|
||||
scp docs/deployment/Caddyfile user@server:/etc/caddy/Caddyfile
|
||||
scp docs/deployment/fix-caddy-permissions.sh user@server:~/
|
||||
ssh user@server './fix-caddy-permissions.sh && sudo systemctl reload caddy'
|
||||
```
|
||||
|
||||
## 支持的部署平台
|
||||
|
||||
- Vercel (推荐)
|
||||
- Netlify
|
||||
- Docker
|
||||
- 传统服务器部署
|
||||
- ✅ **Caddy + Static Files** (当前使用)
|
||||
- 📋 Vercel (计划中)
|
||||
- 📋 Netlify (计划中)
|
||||
- 📋 Docker (计划中)
|
||||
@ -14,13 +14,13 @@
|
||||
### 1. 上传配置文件
|
||||
```bash
|
||||
# 将 Caddyfile 上传到服务器
|
||||
scp Caddyfile user@server:/etc/caddy/Caddyfile
|
||||
scp docs/deployment/Caddyfile user@server:/etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
### 2. 修复权限问题
|
||||
```bash
|
||||
# 上传权限修复脚本
|
||||
scp fix-caddy-permissions.sh user@server:~/
|
||||
scp docs/deployment/fix-caddy-permissions.sh user@server:~/
|
||||
ssh user@server 'chmod +x fix-caddy-permissions.sh && ./fix-caddy-permissions.sh'
|
||||
```
|
||||
|
||||
|
||||
29
docs/deployment/fix-caddy-permissions.sh
Executable file
29
docs/deployment/fix-caddy-permissions.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 修复 Caddy 访问 gitea 用户目录的权限问题
|
||||
|
||||
echo "🔧 修复 Caddy 权限问题..."
|
||||
|
||||
# 1. 确保目录存在
|
||||
sudo -u gitea mkdir -p /home/gitea/www/photography
|
||||
|
||||
# 2. 设置目录权限,让 caddy 用户可以访问
|
||||
# 给 gitea 主目录添加执行权限(让其他用户可以进入)
|
||||
sudo chmod 755 /home/gitea
|
||||
|
||||
# 给 www 目录设置权限
|
||||
sudo chmod 755 /home/gitea/www
|
||||
|
||||
# 给 photography 目录设置权限
|
||||
sudo chmod 755 /home/gitea/www/photography
|
||||
|
||||
# 3. 设置文件权限
|
||||
sudo find /home/gitea/www/photography -type f -exec chmod 644 {} \;
|
||||
sudo find /home/gitea/www/photography -type d -exec chmod 755 {} \;
|
||||
|
||||
# 4. 检查 caddy 用户是否可以访问
|
||||
echo "📋 检查权限..."
|
||||
sudo -u caddy ls -la /home/gitea/www/photography || echo "⚠️ caddy 用户无法访问目录"
|
||||
|
||||
echo "✅ 权限修复完成!"
|
||||
echo "🔄 请重新加载 Caddy 配置:sudo systemctl reload caddy"
|
||||
Reference in New Issue
Block a user