Files
tiantian-system/content/docs/deploy/private-deploy.md
2026-04-08 17:10:58 +08:00

202 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 私有化部署完全指南
description: Docker Compose 一键部署HTTPS 配置、备份策略与版本升级。
category: deploy
order: 2
---
# 私有化部署完全指南
> Docker Compose 一键部署HTTPS 配置、备份策略与版本升级。
## 🏠 什么是私有化部署?
私有化部署让你在自己的服务器上运行 Websopy 平台,享受:
- 🔒 **数据完全自主** - 所有数据存储在你的服务器
- ⚙️ **完全可控** - 自定义配置、插件、界面
- 💰 **成本可控** - 无按调用量计费
- 🏢 **合规无忧** - 满足数据不出网要求
## 📋 系统要求
### 最低配置
| 资源 | 最低要求 |
|------|----------|
| CPU | 4 核 |
| 内存 | 8 GB |
| 硬盘 | 100 GB SSD |
| 系统 | Ubuntu 20.04+ / CentOS 8+ |
### 推荐配置
| 资源 | 推荐配置 |
|------|----------|
| CPU | 8 核+ |
| 内存 | 16 GB+ |
| 硬盘 | 500 GB SSD+ |
| 系统 | Ubuntu 22.04 LTS |
### 软件依赖
- Docker 20.10+
- Docker Compose 2.0+
- Git
- 域名(可选,用于 HTTPS
## 🚀 开始部署
### 第一步:准备服务器
```bash
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装 DockerUbuntu/Debian
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# 验证安装
docker --version
docker-compose --version
```
### 第二步:下载部署包
```bash
# 创建工作目录
mkdir -p ~/websopy && cd ~/websopy
# 下载最新版本
wget https://releases.websopy.com/on-premise/latest.tar.gz
# 解压
tar -xzf latest.tar.gz
cd websopy-deploy
```
### 第三步:配置环境
```bash
# 复制配置文件
cp .env.example .env
# 编辑配置文件
nano .env
```
关键配置项:
```env
# 版本配置
WEBSOPY_VERSION=latest
# 数据库配置
DB_HOST=postgres
DB_PORT=5432
DB_NAME=websopy
DB_USER=websopy
DB_PASSWORD=your-secure-password
# Redis 配置
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=your-redis-password
# 域名配置(可选)
DOMAIN=your-domain.com
HTTPS_ENABLED=true
# 管理员账户
ADMIN_EMAIL=admin@yourcompany.com
ADMIN_PASSWORD=your-admin-password
```
### 第四步:启动服务
```bash
# 拉取镜像
docker-compose pull
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
```
### 第五步:访问平台
服务启动后,通过浏览器访问:
- 前端界面:`http://your-server-ip:80`
- 管理后台:`http://your-server-ip:80/admin`
- API 端点:`http://your-server-ip:8080/api/v1`
## 🔒 HTTPS 配置
### 使用 Let's Encrypt推荐
```bash
# 申请 SSL 证书
certbot --nginx -d your-domain.com
# 重启 nginx
docker-compose restart nginx
```
## 💾 备份策略
### 自动备份脚本
```bash
#!/bin/bash
BACKUP_DIR=/data/backups/websopy
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# 备份数据库
docker exec websopy-postgres pg_dump -U websopy > $BACKUP_DIR/db_$DATE.sql
# 备份上传文件
tar -czf $BACKUP_DIR/uploads_$DATE.tar.gz /data/websopy/uploads
# 保留最近 30 天的备份
find $BACKUP_DIR -mtime +30 -delete
echo "备份完成: $DATE"
```
```bash
# 设置定时任务(每天凌晨 3 点执行)
crontab -e
# 添加行: 0 3 * * * /data/websopy/backup.sh >> /var/log/backup.log 2>&1
```
## 🐛 常见问题
### Q: 服务启动失败?
```bash
# 查看日志
docker-compose logs -f
# 检查端口占用
netstat -tlnp | grep -E '80|443|5432|6379'
```
### Q: 内存不足?
```bash
# 查看内存使用
docker stats
# 增加 swap
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
```