28 lines
2 KiB
Python
Executable file
28 lines
2 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
import sqlite3
|
|
p = '/volume1/xtao-data/uptime-kuma/kuma.db'
|
|
con = sqlite3.connect(p)
|
|
con.row_factory = sqlite3.Row
|
|
cur = con.cursor()
|
|
cur.execute("insert or ignore into status_page (slug,title,description,icon,theme,published,search_engine_index,show_tags,footer_text,show_powered_by,show_certificate_expiry) values (?,?,?,?,?,?,?,?,?,?,?)", ('xtao','XTAO Status','XTAO edge and control plane status','/icon.svg','light',1,0,0,'',0,1))
|
|
page_id = cur.execute("select id from status_page where slug=?", ('xtao',)).fetchone()['id']
|
|
cur.execute("insert or ignore into status_page_cname (status_page_id,domain) values (?,?)", (page_id,'status.xtao.net'))
|
|
cur.execute("insert or ignore into `group` (name,public,active,weight,status_page_id) values (?,?,?,?,?)", ('NAS Edge',1,1,1000,page_id))
|
|
group_id = cur.execute("select id from `group` where name=? and status_page_id=?", ('NAS Edge', page_id)).fetchone()['id']
|
|
monitors = [
|
|
('Traefik HTTPS','https://git.xtao.net/', 'http', 1),
|
|
('Forgejo','https://git.xtao.net/', 'http', 1),
|
|
('Status Page','https://status.xtao.net/status/xtao', 'http', 1),
|
|
('Nextcloud','https://cloud.xtao.net/status.php', 'http', 0),
|
|
]
|
|
for name, url, typ, ignore_tls in monitors:
|
|
row = cur.execute("select id from monitor where name=?", (name,)).fetchone()
|
|
if row is None:
|
|
cur.execute("insert into monitor (name,active,interval,url,type,ignore_tls,maxretries,retry_interval,accepted_statuscodes_json,method) values (?,?,?,?,?,?,?,?,?,?)", (name,1,60,url,typ,ignore_tls,1,60,'[\"200-299\"]','GET'))
|
|
mon_id = cur.lastrowid
|
|
else:
|
|
mon_id = row['id']
|
|
cur.execute("update monitor set active=1, interval=60, url=?, type=?, ignore_tls=?, accepted_statuscodes_json='[\"200-299\"]', method='GET' where id=?", (url,typ,ignore_tls,mon_id))
|
|
cur.execute("insert or ignore into monitor_group (monitor_id,group_id,weight,send_url) values (?,?,?,?)", (mon_id,group_id,1000,0))
|
|
con.commit()
|
|
print(f"PASS kuma_public_status_configured slug=xtao monitors={len(monitors)} values=redacted")
|