import 'dart:io'; import 'package:shelf/shelf.dart'; import 'package:shelf/shelf_io.dart'; import 'package:shelf_router/shelf_router.dart'; import 'package:waylume_server/services/supabase_heartbeat.dart'; import 'package:waylume_server/services/server_service.dart'; import 'package:waylume_server/services/wireguard_service.dart'; import 'package:waylume_server/core/utils.dart'; import 'package:waylume_server/web/peer_routes.dart'; List routers = [ PeerRoutes().router, ]; void main() async { if (kIsRunningInDocker) { print('Running in Docker environment.'); } else { print('Not running in Docker environment.'); } if (!await isWireguardInstalled()) { print('WireGuard is not installed. Please install WireGuard to run this server.'); exit(1); } else { print('WireGuard is installed.'); } await WireGuardService.initializeServer(); await ServerService.registerServer(); initHeartbeat(); if (!Platform.isMacOS) { await ServerService.isolatePeers(); } Router app = Router(); app.get('/', (request) { return Response.ok('Welcome to Waylume Server!'); }); for (var router in routers) { app.mount('/api/', router); } var server = await serve(app, '0.0.0.0', 3000); print('Server running on http://${server.address.host}:${server.port}'); }