Add peer management routes and server configuration services

This commit is contained in:
ImBenji
2025-08-04 16:46:08 +01:00
parent 773d209733
commit f1470a789e
7 changed files with 437 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
import 'dart:io';
import 'package:waylume_server/config/supabase_config.dart';
import 'package:waylume_server/core/utils.dart';
class ServerService {
static Future<void> registerServer() async {
String ip = await getWanIp();
var existsCheck = await SUPABASE_CLIENT
.from("waylume_servers")
.select()
.eq("id", fromEnivronment('SERVER_ID'))
.eq("host_ip", ip);
if (existsCheck.isEmpty) {
await SUPABASE_CLIENT
.from("waylume_servers")
.insert({
"id": fromEnivronment('SERVER_ID')!,
"last_heartbeat": DateTime.now().toUtc().toIso8601String(),
"host_ip": ip,
});
}
}
static Future<void> isolatePeers() async {
await Process.run('iptables', ['-I', 'FORWARD', '-i', 'wg0', '-o', 'wg0', '-j', 'DROP']);
await Process.run('iptables', ['-I', 'FORWARD', '-i', 'wg0', '-o', 'wg0', '-m', 'state', '--state', 'ESTABLISHED,RELATED', '-j', 'ACCEPT']);
}
}