Virtualbox中Debian Server部署metabase,不想再套一个docker,遂硬上,以下为部署过程实录,备用留自己日后查询。
Metabase on Debian with OpenJDK 21 - 安装指南
1. 安装 OpenJDK 21 (Eclipse Temurin)
1.1 添加仓库和依赖
sudo apt update
sudo apt install -y wget apt-transport-https gnupg
# 添加 GPG 密钥
wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo tee /etc/apt/keyrings/adoptium.asc
# 添加源
echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
# 安装 JDK
sudo apt update
sudo apt install -y temurin-21-jdk
1.2 验证安装
java -version
# 应输出类似:
# openjdk version "21.0.2" 2024-01-16
# OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13)
# OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13, mixed mode)
2. 创建 Metabase 专用账户
sudo useradd -r -s /bin/false metabase
sudo mkdir -p /opt/metabase
sudo chown -R metabase:metabase /opt/metabase
3. 下载 Metabase
sudo -u metabase wget https://downloads.metabase.com/v0.55.2/metabase.jar -O /opt/metabase/metabase.jar
# 注意:替换 v0.55.2 为[官网最新版本](https://www.metabase.com/start/oss/jar)
4. 配置 Systemd 服务
4.1 创建服务文件
sudo nano /etc/systemd/system/metabase.service
粘贴以下内容:
[Unit]
Description=Metabase Analytics Service
After=syslog.target
After=network.target
[Service]
WorkingDirectory=/opt/metabase
ExecStart=/usr/bin/java -Xms512m -Xmx2G -jar metabase.jar
User=metabase
Type=simple
Restart=on-failure
RestartSec=10
Environment="MB_JETTY_PORT=3000"
[Install]
WantedBy=multi-user.target
4.2 启动服务
sudo systemctl daemon-reload
sudo systemctl start metabase
sudo systemctl enable metabase
5. 验证安装
# 检查状态
sudo systemctl status metabase
# 查看日志
sudo journalctl -u metabase.service -f
# 访问页面
echo "访问 http://$(hostname -I | awk '{print $1}'):3000"
6. 高级配置(可选)
6.1 使用 PostgreSQL
sudo apt install -y postgresql
sudo -u postgres psql -c "CREATE DATABASE metabase;"
sudo -u postgres psql -c "CREATE USER metabase WITH PASSWORD 'your_password';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE metabase TO metabase;"
修改服务文件:
Environment="MB_DB_TYPE=postgres"
Environment="MB_DB_CONNECTION_URI=jdbc:postgresql://localhost:5432/metabase?user=metabase&password=your_password"
6.2 使用 MariaDB/MySQL
# 安装 MariaDB
sudo apt install -y mariadb-server
# 登录数据库
sudo mysql -u root
-- 执行以下 SQL 命令
CREATE DATABASE metabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'metabase'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON metabase.* TO 'metabase'@'localhost';
FLUSH PRIVILEGES;
EXIT;
修改服务文件:
Environment="MB_DB_TYPE=mysql"
Environment="MB_DB_CONNECTION_URI=jdbc:mysql://localhost:3306/metabase?user=metabase&password=your_password&useSSL=false"
注意:
- 如果使用 MySQL 8+,需添加参数
&allowPublicKeyRetrieval=true
- 生产环境应启用 SSL(替换
useSSL=false
为证书配置)
6.3 HTTPS 配置 (Nginx 示例)
server {
listen 443 ssl;
server_name metabase.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
}
常用命令
操作 | 命令 |
---|---|
启动服务 | sudo systemctl start metabase |
停止服务 | sudo systemctl stop metabase |
重启服务 | sudo systemctl restart metabase |
查看日志 | sudo journalctl -u metabase -f |
卸载 Metabase | sudo rm -rf /opt/metabase /etc/systemd/system/metabase.service |
评论已关闭