Skip to content

tsutsu3/pi-hole-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Issues MIT License CodeCov Codaocy SonarQube Status

feature-image

Pi-hole client is an unnoficial Pi-holeยฎ client

๐Ÿ“š Table of Contents

๐ŸŽ‰ About The Project

The easy way to manage your Pi-holeยฎ server.

Easily view statistics, enable or disable the server, access logs, and much more.

๐Ÿ’ก Main features

ss

โ–ถ Manage your Pi-holeยฎ server on an easy way.

โ–ถ Supports Pi-hole v6.

โ–ถ Enable and disable the server with only one button.

โ–ถ Beautiful charts with all the statistics you need to see.

โ–ถ Add multiple servers to the app, and manage all of them from here.

โ–ถ Explore the query logs list and see the log details.

โ–ถ Manage your domain lists. Add and remove domains to the whitelist or blacklist.

โ–ถ Material User interface with dynamic theming (only Android 12+)

๐Ÿ“Œ Requirements

  • Fully supports Pi-hole v6
  • Requires Pi-hole v5.12 or greater
  • Requires web interface v5.14.2 or greater

๐Ÿ”‘ Privacy policy

Check the privacy policy here.

๐Ÿ“œ Disclaimer

This is an unofficial application. The Pi-hole team and the development of the Pi-hole software is not related in any way with this application.

๐ŸŒŸ Recommended lists

On this repository you can find some recommended lists. Thanks to JuanRodenas.

๐Ÿ’– Donations

If you like the project and you want to contribute with the development, you can become a sponsor on GitHub, or buy me a coffe.

๐Ÿ› ๏ธ Development

Prepare the development environment

  1. Clone the repository
  2. Run flutter pub get
  3. Clone the .env.sample file and name it .env
  4. On the SENTRY_DSN variable assign it's value
  5. Inside the android folder, clone the key.properties.sample file and name it key.properties
  6. Open the file and fill the variables with the corresponding values
  7. Store your keystore.jks file inside android/app

Compile the production build

Common

Run these commands as needed whenever you update the images.

  1. Run ``dart run flutter_launcher_icons`
  2. Run dart run flutter_native_splash:create

Android

  1. Run flutter clean
  2. Run flutter pub get
  3. Run flutter build apk --release to build the .apk file
  4. Run flutter build appbundle --release to build the .aab file

macOS

  1. Run flutter clean
  2. Run flutter pub get
  3. Run flutter build macos --release to build the .app file

Linux

  1. Run flutter clean
  2. Run flutter pub get
  3. Run flutter build linux --release to build the Linux executable
  4. If you want to build also the .deb file do this:
    1. Run dart pub global activate flutter_to_debian to install the utility that will build the .deb file
    2. Run flutter_to_debian

Windows

  1. Run flutter clean
  2. Run flutter pub get
  3. Run flutter build windows --release to build the Windows executable
  4. Install the InnoSetup software you don't have it
  5. Run iscc /Q windows/innosetup_installer_builder.iss to generate the Windows installer

Code Quality and Analysis

To ensure code quality and identify potential issues, perform the following analysis steps:

  1. Calculate Code Metrics

    Generate code metrics for the lib directory:

    dcm calculate-metrics lib

    or

    dart run dart_code_linter:metrics lib --reporter=html -o metrics
  2. Analyze Code

    Analyze the project to catch syntax errors, type issues, and other code problems:

    flutter analyze
    dcm analyze lib
  3. Check Unused Files

Identify unused files in the lib directory:

dcm check-unused-files lib

โš–๏ธ License

This app distributed under the Apach 2.0 License. See LICENSE for more information.

๐Ÿ–‹๏ธ Credits

This project is based on DroidHole, originally developed by JGeek00.

For details on the licenses applicable to this project, please refer to LICENSE.md.

(back to top)