diff --git a/.github/workflows/flutter.yml b/.github/workflows/flutter.yml index d7f16ed..01572ab 100644 --- a/.github/workflows/flutter.yml +++ b/.github/workflows/flutter.yml @@ -19,4 +19,10 @@ jobs: - run: flutter doctor - run: flutter pub get - run: flutter test - - run: flutter build web + - run: flutter build web --base-href "/flutter_application_alertmanager/" + - name: Deploy + uses: peaceiris/actions-gh-pages@v4 + if: github.ref == 'refs/heads/main' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./build/web diff --git a/lib/main.dart b/lib/main.dart index bda4326..1acc295 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import 'package:flutter/foundation.dart' show kIsWeb; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:shared_preferences/shared_preferences.dart'; @@ -96,9 +97,17 @@ class _AlertListScreenState extends State { Future _initConnection() async { final prefs = await SharedPreferences.getInstance(); - baseUrl = - prefs.getString('alertmanager_url') ?? - 'http://prometheus-alertmanager:9093'; + if (kIsWeb && Uri.base.scheme == 'https') { + // On web & served via HTTPS → use public demo Alertmanager if unset + baseUrl = + prefs.getString('alertmanager_url') ?? + 'https://alertmanager.demo.prometheus.io'; + } else { + // Fallback to saved URL or local instance + baseUrl = + prefs.getString('alertmanager_url') ?? + 'http://prometheus-alertmanager:9093'; + } _fetchAlerts(); } diff --git a/pubspec.lock b/pubspec.lock index 092dfd8..4d6e419 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -350,7 +350,7 @@ packages: source: hosted version: "15.0.0" web: - dependency: transitive + dependency: "direct main" description: name: web sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" diff --git a/pubspec.yaml b/pubspec.yaml index 0506071..d42435f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -36,6 +36,7 @@ dependencies: cupertino_icons: ^1.0.8 http: ^1.5.0 shared_preferences: ^2.5.3 + web: ^1.1.1 dev_dependencies: flutter_test: