{"id":7668382,"url":"https://github.com/sterrenb/flutterhole","last_synced_at":"2025-09-29T17:31:41.223Z","repository":{"id":40524023,"uuid":"166709725","full_name":"sterrenb/flutterhole","owner":"sterrenb","description":"A third party Android application for the Pi-Hole® dashboard.","archived":true,"fork":false,"pushed_at":"2025-02-19T15:47:41.000Z","size":2638,"stargazers_count":395,"open_issues_count":63,"forks_count":25,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-09-13T17:08:36.897Z","etag":null,"topics":["android","dart","flutter","mobile","pi-hole","raspberry-pi"],"latest_commit_sha":null,"homepage":"https://play.google.com/store/apps/details?id=sterrenburg.github.flutterhole","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sterrenb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"sterrenburg","ko_fi":"sterrenburg","custom":["https://www.paypal.me/tsterrenburg"]}},"created_at":"2019-01-20T21:09:43.000Z","updated_at":"2025-07-13T18:33:17.000Z","dependencies_parsed_at":"2024-01-28T23:43:25.597Z","dependency_job_id":null,"html_url":"https://github.com/sterrenb/flutterhole","commit_stats":null,"previous_names":["sterrenb/flutterhole","sterrenburg/flutterhole"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/sterrenb/flutterhole","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sterrenb%2Fflutterhole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sterrenb%2Fflutterhole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sterrenb%2Fflutterhole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sterrenb%2Fflutterhole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sterrenb","download_url":"https://codeload.github.com/sterrenb/flutterhole/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sterrenb%2Fflutterhole/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277128692,"owners_count":25765781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-26T02:00:09.010Z","response_time":78,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","dart","flutter","mobile","pi-hole","raspberry-pi"],"created_at":"2024-04-09T05:12:09.878Z","updated_at":"2025-09-29T17:31:40.805Z","avatar_url":"https://github.com/sterrenb.png","language":"Dart","funding_links":["https://github.com/sponsors/sterrenburg","https://ko-fi.com/sterrenburg","https://www.paypal.me/tsterrenburg"],"categories":["Dart"],"sub_categories":[],"readme":"\n# FlutterHole #\n\n[![Codemagic build status](https://api.codemagic.io/apps/5c659ea9c49a5000198d45f9/5eca30b4261f343c0e2417c4/status_badge.svg)](https://codemagic.io/apps/5c659ea9c49a5000198d45f9/5eca30b4261f343c0e2417c4/latest_build)\n[![Coverage Status](https://coveralls.io/repos/github/sterrenburg/flutterhole/badge.svg?branch=master)](https://coveralls.io/github/sterrenburg/flutterhole?branch=master)\n[![MIT Licenced](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Platform](https://img.shields.io/badge/Platform-Flutter-yellow.svg)](https://flutter.io)\n\nFlutterHole is a free third party Android application for interacting with your Pi-Hole® server.    \n\n\u003e **Note**: Currently archived. Check the [`web` branch](https://github.com/sterrenburg/flutterhole/tree/web) to check the archived beta release.\n\n [\u003cimg src=\"https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png\"    \n      alt=\"Get it on Google Play\"    \n      height=\"80\"\u003e](https://play.google.com/store/apps/details?id=sterrenburg.github.flutterhole)    \n## Features ##\n- **Quick enable/disable:** Toggle your Pi-hole from your home screen with a single tap.\n- **Multiple configurations:** Easily switch between every Pi-hole that you have access to.\n- **Summary overview:** View top clients and the top used domains.\n- **Query log:** Inspect \u0026 search your Pi-hole queries.\n\n## Development ##\nFlutterHole is developed using [Android Studio](https://developer.android.com/studio), which offers a complete, integrated IDE experience for Flutter.\n\nTesting is done using a local Pi-hole installation on an internal network. Due to this, support for other network setups relies heavily on user feedback.\n\nIf you want to improve the network support for FlutterHole by testing against your own setups, you can build the app locally and debug any issues.\n\n### Getting Started ###\nAfter cloning this repository, perform the following steps before building your project.\n\nAll snippets assume your initial working directory is the root of the project.\n\n#### Generate a debug signing key ####\n\nSkip the questions, and confirm with `yes`.\n```shell script\n#!/bin/bash\ncd android/app\nkeytool -genkey -v -keystore keystore.jks -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000\n```\n\n#### Create a properties file for the signing key ####\n```shell script\n#!/bin/bash\ncd android\ntouch key.properties\n```\n\nAfter creating the file, populate it with plaintext describing the debug key.\n\n```\nstorePassword=android\nkeyPassword=android\nkeyAlias=androiddebugkey\nstoreFile=keystore.jks\n```\n\n#### Generate the icon assets ####\n```shell script\n#!/bin/bash\nflutter pub get\nflutter pub run flutter_launcher_icons:main\n```\n\n#### Generate code ####\n\nTo generate `freezed` classes, `injectable` injections etc.:\n\n```shell script\nflutter pub run build_runner build --delete-conflicting-outputs  \n```\n\nOr, build continuously:\n\n```shell script\nflutter pub run build_runner watch --delete-conflicting-outputs  \n```\n\nYou can now build and run the app on either an emulator or a physical device using `flutter run`.\n\n### Testing ###\n\nTo run the default integration test:\n\n```shell script\nflutter drive --target=test_driver/app.dart\n```\n\n## API ##\nThis application interacts with the [Pi-hole PHP API](https://discourse.pi-hole.net/t/pi-hole-api/1863).\n\nA new API is in the works from the Pi-hole team. For progress, check the [pull request on GitHub](https://github.com/pi-hole/FTL/pull/659).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsterrenb%2Fflutterhole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsterrenb%2Fflutterhole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsterrenb%2Fflutterhole/lists"}