Koyeb 账号自动化保活

Koyeb 账号自动化保活

Koyeb 是一个免费的 PaaS 容器,支持部署多种服务,且支持 docker 镜像 的部署方式。但是它的免费版有一个问题:账户必须在 两周内登录 1 次,否则会被 删号。本文教大家借助 github action定时 功能实现 koyeb 账号 保活(支持保活多个账号)

📌Fork 我的仓库

仓库地址

代码在 koyeb-alive 文件夹 中,文件名:koyeb-alive.py,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import os
import requests
import json
import time

# 从环境变量获取 Koyeb 账户信息(以 JSON 字符串格式存储)
KOYEB_ACCOUNTS = json.loads(os.getenv("KOYEB_ACCOUNTS"))

def send_tg_message(message):
bot_token = os.getenv("TG_BOT_TOKEN")
chat_id = os.getenv("TG_CHAT_ID")
url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
data = {
"chat_id": chat_id,
"text": message,
"parse_mode": "Markdown"
}
response = requests.post(url, data=data)
return response.json()

def login_koyeb(email, password):
login_url = "https://app.koyeb.com/v1/account/login"
headers = {
"Content-Type": "application/json",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
data = {
"email": email,
"password": password
}

try:
response = requests.post(login_url, headers=headers, json=data)
response.raise_for_status()

if response.status_code == 200:
return True, "登录成功"
else:
return False, f"登录失败: HTTP状态码 {response.status_code}"
except requests.RequestException as e:
return False, f"登录失败: {str(e)}"

# 登录并记录所有账户的结果
results = []
for account in KOYEB_ACCOUNTS:
email = account['email']
password = account['password']

# 每次登录后等待 5 秒
time.sleep(5)

success, message = login_koyeb(email, password)
results.append(f"账户: {email}\n状态: {'成功' if success else '失败'}\n消息: {message}\n")

# 发送 Telegram 消息
tg_message = "Koyeb 登录报告\n\n" + "\n".join(results)
send_tg_message(tg_message)

为了避免触发 koyeb 的 反刷 机制,我在代码中设定了登录多个账号时,中间 间隔 5 秒

📌设置 Action 机密变量

按图设置

image.png

填写三个变量:

变量名 变量值
KOYEB_ACCOUNTS json 格式储存账户信息,见下文示例
TG_BOT_TOKEN TG 机器人的 token,用于发送 TG 通知
TG_CHAT_ID TG 机器人的 chatid,用于发送 TG 通知

KOYEB_ACCOUNTS 储存多个账户信息,其格式如下(注意 缩进,最后一行最后面没有 , ):

1
2
3
4
5
6
[
{"email": "account1@example.com", "password": "password1"},
{"email": "account2@example.com", "password": "password2"},
{"email": "account3@example.com", "password": "password3"},
{"email": "account4@example.com", "password": "password4"}
]

📌运行 Action

第一次先 手动运行 一下 action:

image.png

之后,action 会在每周日的 0 点自动运行

题外话:可以将上面的 py 脚本转化为 js 脚本,部署到 cf worker点击查看代码),利用 worker 的 corn 触发器 功能实现同样的效果。需要在 worker 项目中设置上述三个变量

#koyeb #保活 #github #cloudflare