You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Laravel Forge部署Metabase?求完整教程

Laravel Forge 部署 Metabase 详细步骤

以下是基于Laravel Forge + DigitalOcean服务器部署Metabase的实操流程,针对你已能SSH连接服务器、创建目录并下载Metabase的情况,补全后续核心部署环节:

1. 确认并安装Java环境

Metabase依赖Java 11及以上版本,先检查服务器是否已安装:

java -version

若未安装,以Ubuntu系统为例,执行以下命令安装OpenJDK 17(推荐稳定版):

sudo apt update && sudo apt install openjdk-17-jre-headless -y

2. 配置Metabase运行参数

假设你已将Metabase jar包放在/opt/metabase目录下,进入该目录:

cd /opt/metabase

创建环境变量配置文件.env,存储Metabase的数据库连接等核心配置(建议用PostgreSQL作为元数据库,可提前在Laravel Forge面板创建对应数据库和用户):

MB_DB_TYPE=postgres
MB_DB_DATABASE=metabase_db
MB_DB_USER=metabase_user
MB_DB_PASS=your_secure_password
MB_DB_HOST=localhost
MB_DB_PORT=5432
MB_JETTY_PORT=3000
MB_ENCRYPTION_SECRET_KEY=your_encryption_key # 可通过`openssl rand -base64 32`生成

给jar包添加执行权限:

chmod +x metabase.jar

3. 配置Systemd服务实现后台运行

为让Metabase在服务器重启后自动启动,创建Systemd服务文件:

sudo nano /etc/systemd/system/metabase.service

粘贴以下配置内容:

[Unit]
Description=Metabase Analytics Server
After=network.target postgresql.service

[Service]
User=forge
WorkingDirectory=/opt/metabase
ExecStart=/usr/bin/java -jar metabase.jar
EnvironmentFile=/opt/metabase/.env
Restart=always
RestartSec=5
TimeoutStopSec=30

[Install]
WantedBy=multi-user.target

保存退出后,重载Systemd并启动服务:

sudo systemctl daemon-reload
sudo systemctl start metabase
sudo systemctl enable metabase

检查服务运行状态:

sudo systemctl status metabase

确保服务显示为active (running)状态。

4. 通过Laravel Forge配置Nginx反向代理

在Laravel Forge面板中完成以下操作:

  • 添加新站点(建议使用独立域名,如metabase.yourdomain.com)
  • 进入站点的Nginx Configuration页面,替换默认配置为:
server {
    listen 80;
    server_name metabase.yourdomain.com;

    location / {
        proxy_pass http://localhost: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;
        proxy_connect_timeout 300s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        proxy_pass http://localhost:3000;
        proxy_cache_valid 200 30d;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    # 处理websocket连接(Metabase实时功能需要)
    location /api/websocket {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
  • 点击Save保存配置,然后在面板中重启Nginx
  • 最后在站点的SSL选项卡中,用Let's Encrypt一键申请并启用HTTPS

5. 完成Metabase初始化

访问你配置的域名(如https://metabase.yourdomain.com),按照页面引导完成管理员账号创建、数据源连接等初始化操作即可。

常见问题排查

  • Metabase服务启动失败时,查看日志定位问题:sudo journalctl -u metabase.service -f
  • Nginx配置报错时,先验证语法:sudo nginx -t,再查看错误日志:sudo tail -f /var/log/nginx/error.log
  • 确保PostgreSQL服务正常运行:sudo systemctl status postgresql

内容的提问来源于stack exchange,提问作者Timothy Soladoye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 13:35:18