linux上搭建Lago并部署

1. 系统更新
sudo apt update
sudo apt upgrade -y
2. 安装必要的依赖
  • 安装 Git
sudo apt install git -y
  • 安装 Docker
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
  • 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
  • 安装 PostgreSQL
sudo -u postgres psql
CREATE DATABASE lago_production;
CREATE USER lago_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE lago_production TO lago_user;
\q

获取 Lago 代码

git clone https://github.com/getlago/lago.git
cd lago

配置 Lago

1. 生成 RSA 私钥

Lago 需要 RSA 私钥进行签名和验证,使用以下命令生成:

openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
cat private_key.pem | tr -d '\n'

将输出的私钥内容复制下来,后续配置环境变量时会用到。

2. 配置环境变量

在项目根目录下创建或编辑.env文件,配置必要的环境变量。

nano .env

在文件中添加以下内容,根据实际情况进行修改:

LAGO_ENV=production
LAGO_HOST=your_server_ip_or_domain
LAGO_PORT=3000
LAGO_RSA_PRIVATE_KEY=your_rsa_private_key
DATABASE_URL=postgresql://lago_user:your_password@localhost:5432/lago_production

your_server_ip_or_domain替换为服务器的 IP 地址或域名,your_rsa_private_key替换为之前生成的 RSA 私钥,your_password替换为之前设置的 PostgreSQL 用户密码。

3. 保存并退出编辑器

Ctrl + X,然后按Y确认保存,最后按Enter退出。

数据库迁移

运行以下命令进行数据库迁移:

docker-compose run --rm api bundle exec rake db:create db:migrate

启动 Lago 服务

使用 Docker Compose 启动 Lago 的各个服务:

docker-compose up -d

这将在后台启动 Lago 的 API 服务、Web 界面等。

验证部署

1. 检查服务状态

使用以下命令检查 Docker 容器的运行状态:

docker-compose ps

遇到的问题:

1、碰到这个页面点击esc就行

2、拉取镜像超时

解决方法:vi /etc/docker/daemon.json

配置如下地址

{
"registry-mirrors": [
"https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://your_preferred_mirror",
"https://dockerhub.icu",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}

重新加载配置文件及docker服务

systemctl daemon-reload

systemctl restart docker

3、端口被占用

杀掉对应的端口服务即可

4、docker-compose up -d报错

删除docker-compose.yml文件中start_interval和depends_on下的restart属性

5、调用路径不是服务器

解决方案:修改docker-compose.yml中的localhost为服务器ip

x-lago-api-url: &lago-api-url
  "LAGO_API_URL": ${LAGO_API_URL:-http://localhost:3000}
x-lago-front-url: &lago-front-url
  "LAGO_FRONT_URL": ${LAGO_FRONT_URL:-http://localhost}

"API_URL": ${LAGO_API_URL:-http://localhost:3000}

修改完后执行docker-compose down 和docker-compose up -d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java坤坤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值