一键部署

使用一键脚本快速生成 FlecBlog 的 Docker Compose 配置文件。

一键部署本质上仍然是 Docker 部署,只是通过脚本自动生成配置文件,省去手动创建的步骤,方便后续统一管理。

快速部署

一行命令,在当前目录生成 docker-compose.yml.env 配置文件:

curl -fsSL https://get.flec.top | bash

脚本会在你执行命令的当前位置创建两个文件:

  • docker-compose.yml — 服务编排配置
  • .env — 环境变量配置

部署流程

1. 执行脚本

curl -fsSL https://get.flec.top | bash

非 root 用户请使用 sudo bashcurl -fsSL https://get.flec.top | sudo bash

2. 修改配置

编辑 .env 文件,填入你的实际配置:

DB_PASSWORD=your_database_password
JWT_SECRET=your_jwt_secret_key
API_URL=http://localhost:8080/api/v1
SERVER_PORT=8080
BLOG_PORT=3000
ADMIN_PORT=4000
变量说明
DB_PASSWORD数据库密码
JWT_SECRETJWT 密钥,建议使用随机字符串
API_URLAPI 对外访问地址,通常先填写 http://服务器IP:8080/api/v1
SERVER_PORT后端服务端口,默认 8080
BLOG_PORT博客端端口,默认 3000
ADMIN_PORT管理端端口,默认 4000

3. 启动服务

docker compose up -d

4. 访问服务

  • 博客端:http://服务器IP:BLOG_PORT
  • 管理端:http://服务器IP:ADMIN_PORT

端口可在 .env 中修改,如果修改了端口请使用实际端口访问。

初始账号admin@example.com / 123456

5. 外部访问

部署完成后,服务运行在 .env 中配置的端口上(默认 3000、4000、8080)。要让外部用户通过域名访问,需要进行以下配置。

域名解析

将域名解析到服务器 IP:

  • blog.yourdomain.com → 博客端
  • admin.yourdomain.com → 管理端
  • api.yourdomain.com → 后端

Nginx 反向代理

# 博客端(端口与 .env 中 BLOG_PORT 一致)
server {
    listen 80;
    server_name blog.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# 管理端(端口与 .env 中 ADMIN_PORT 一致)
server {
    listen 80;
    server_name admin.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:4000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# 后端 API(端口与 .env 中 SERVER_PORT 一致)
server {
    listen 80;
    server_name api.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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

重载 Nginx:

sudo nginx -t && sudo systemctl reload nginx

SSL 证书

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d blog.yourdomain.com -d admin.yourdomain.com -d api.yourdomain.com

更新 API 地址

配置域名后,修改 .env 中的 API_URL 为正式域名地址:

API_URL=https://api.yourdomain.com/api/v1

重启服务使配置生效:

docker compose up -d

全部命令

主题

更换博客端的主题镜像:

curl -fsSL https://get.flec.top | bash -s theme <镜像名>

例如:

curl -fsSL https://get.flec.top | bash -s theme talen8/flec-blog

脚本会修改当前目录下 docker-compose.yml 中博客端的镜像名称,并自动重启博客服务使更改生效。

卸载

停止并移除所有容器:

curl -fsSL https://get.flec.top | bash -s uninstall

数据卷、配置文件和服务数据会保留,需根据命令提示手动清理。

升级

拉取最新镜像并重启所有服务:

curl -fsSL https://get.flec.top | bash -s upgrade

状态

查看所有服务的运行状态:

curl -fsSL https://get.flec.top | bash -s status

日志

查看所有服务的实时日志:

curl -fsSL https://get.flec.top | bash -s logs

帮助

查看所有可用命令:

curl -fsSL https://get.flec.top | bash -s help