3.8 KiB
3.8 KiB
[TOC]
navigation-app
from deepseek
详细部署流程
1. 开发环境准备
-
安装Go语言环境 (仅开发机需要):
bash
复制
# Linux sudo apt update && sudo apt install -y golang # Mac brew install go # Windows # 从 https://golang.org/dl/ 下载安装包
-
初始化Go模块:
bash
复制
cd backend go mod init navigation/backend go mod tidy
2. 编译应用程序
-
编译Linux可执行文件:
bash
复制
make build
这会在
bin/
目录下生成navigation-server
二进制文件
3. VPS部署步骤
-
上传文件到VPS:
bash
复制
scp -r bin/ navigation-server config/ frontend/ data/ user@your_vps_ip:/opt/navigation-app
-
SSH登录VPS:
bash
复制
ssh user@your_vps_ip
-
设置文件权限:
bash
复制
cd /opt/navigation-app chmod +x bin/navigation-server mkdir -p data chmod 700 data
-
运行应用程序 (测试运行):
bash
复制
cd /opt/navigation-app ./bin/navigation-server
-
配置持久化运行 (使用systemd):
创建服务文件
/etc/systemd/system/navigation.service
:ini
复制
[Unit] Description=Navigation Server After=network.target [Service] Type=simple User=www-data WorkingDirectory=/opt/navigation-app ExecStart=/opt/navigation-app/bin/navigation-server Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
启用并启动服务:
bash
复制
sudo systemctl daemon-reload sudo systemctl enable navigation sudo systemctl start navigation
-
验证服务运行:
bash
复制
sudo systemctl status navigation curl http://localhost:8080/api/sites
4. 配置反向代理 (可选,推荐)
使用Nginx作为反向代理:
-
安装Nginx:
bash
复制
sudo apt update && sudo apt install -y nginx
-
创建配置文件
/etc/nginx/sites-available/navigation
:nginx
复制
server { listen 80; server_name yourdomain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
-
启用配置:
bash
复制
sudo ln -s /etc/nginx/sites-available/navigation /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
-
配置HTTPS (使用Let's Encrypt):
bash
复制
sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com
维护与管理
常用命令
-
查看日志:
bash
复制
journalctl -u navigation -f
-
重启服务:
bash
复制
sudo systemctl restart navigation
-
备份数据库:
bash
复制
cp /opt/navigation-app/data/navigation.db /path/to/backup/navigation_$(date +%F).db
更新流程
-
本地修改代码后重新编译:
bash
复制
make build
-
上传新版本到VPS:
bash
复制
scp bin/navigation-server user@your_vps_ip:/opt/navigation-app/bin/
-
重启服务:
bash
复制
ssh user@your_vps_ip sudo systemctl restart navigation
这个方案提供了完整的、生产就绪的Go后端实现,具有以下优点:
- 单个静态二进制文件,部署简单
- 使用SQLite数据库,无需额外服务
- 完整的CRUD API实现
- 包含生产环境部署配置
- 易于维护和更新