30 lines
965 B
Dart
30 lines
965 B
Dart
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']);
|
|
}
|
|
} |