使用VM实例启动脚本在SFTPGo中创建第一个管理员?

问题描述 投票:0回答:1

根据https://github.com/drakkan/sftpgo中的readme.md,创建第一个管理员的一种方法是在配置文件中启用create_default_admin并设置环境变量SFTPGO_DEFAULT_ADMIN_USERNAME和SFTPGO_DEFAULT_ADMIN_PASSWORD。

我按照此操作,尽管设置成功,但我无法创建第一个管理员。

我想这样做的原因是在 GCP 上自动创建 SFTPGo 实例,然后使用一些预定义的管理员用户名和密码对其进行初始化。

这是我使用的启动脚本:

metadata_startup_script = <<-SCRIPT
#!/bin/bash

# Install SFTPGo
sudo apt-get update
sudo add-apt-repository -y ppa:sftpgo/sftpgo
sudo apt update
sudo apt-get install -y sftpgo

# Set ENV Variables
echo 'export SFTPGO_DEFAULT_ADMIN_USERNAME="user"' | sudo tee -a /etc/environment
echo 'export SFTPGO_DEFAULT_ADMIN_PASSWORD="password"' | sudo tee -a /etc/environment

# Apply changes to the current shell
source /etc/environment

# Change create_default_admin to true
sudo -s && jq '.data_provider.create_default_admin = true' /etc/sftpgo/sftpgo.json > temp.json && mv temp.json /etc/sftpgo/sftpgo.json

# Restart the shell to apply changes
exec bash

SCRIPT

虽然我的脚本中的所有内容都有效,但当我安装 SFTPGo 后第一次访问“https://IP:8080/web/admin”时,它仍然要求我创建第一个管理员。

我像这样重新启动了服务:

sudo systemctl restart sftpgo

服务重启失败。 我检查了这样的日志:

journalctl -u sftpgo

我看到这个错误:

{"level":"error","time":"2023-10-17T00:50:46.006","sender":"service","message":"error initializing data provider: to create the default admin you need to set the env vars \"SFTPGO_DEFAULT_ADMIN_USERNAME\" and \"SFTPGO_DEFAULT_ADMIN_PASSWORD\"""}

如果我在这里遗漏了什么,有人可以告诉我吗?我确实正在设置这些 ENV 变量。我登录到实例并检查所需的 ENV 变量是否已全局声明。

*如果这个问题非常特定于 Stack Overflow 上的服务,我们深表歉意

linux google-cloud-platform sftp
1个回答
0
投票

根据 sftpgo systemd 文件,您可以使用

/etc/sftpgo/sftpgo.env
作为 env 文件。

尝试将您的环境变量添加到此文件中:

echo 'SFTPGO_DEFAULT_ADMIN_USERNAME="admin"' >> /etc/sftpgo/sftpgo.env
echo 'SFTPGO_DEFAULT_ADMIN_PASSWORD="password"' >> /etc/sftpgo/sftpgo.env
© www.soinside.com 2019 - 2024. All rights reserved.