Coder Social home page Coder Social logo

web's Introduction

Pi-hole Web Interface

View stats and control your Pi-hole via this web interface. For the previous PHP-based web interface, see pi-hole/AdminLTE.

Changes compared to the AdminLTE interface

  • Eliminates the reliance on server-side rendering scripts
  • Eliminates spaghetti code resulted from heavily modifying the base AdminLTE template
  • Reduces attack vectors by forcing interactions to go through an API instead of directly calling server functions.
  • Makes it easier for new developers to figure out the code, which speeds up development
  • Makes the split between client and server code much more explicit
  • Allows us to easily generate fake data for testing
  • Includes all the benefits that come from React (ES6 JavaScript), including automatic DOM manipulations and reusable components

Getting Started (Development)

  • Install Node + NPM (usually installed together): https://nodejs.org/
  • You should also install your distro's build tools just in case
    • build-essential for Debian distros, gcc-c++ and make for RHEL distros
  • Fork the repository and clone to your computer (not the Pi-hole). In production the Pi-hole only needs the compiled output of the project, not its source
  • Open the folder in the terminal
  • Run npm install
    • This will install all the packages listed in package.json and will let you build/run the web interface
  • Run npm start to make sure that it is working
    • This will launch the web interface on port 3000 in debug mode
    • If it crashes/has a compile error it will show you the code and the error
    • Changes will be automatically applied and the web interface will reload
  • If you've never used React, you should read the React Quick Start and/or the Tutorial before diving too deep into the code.
  • When you are ready to make changes, make a branch off of development in your fork to work in. When you're ready to make a pull request, base the PR against development.

Testing With Fake Data

  • Follow the "Getting Started" guide above
  • Checkout the branch you want to test using git checkout
  • Run npm install just to make sure you have the correct dependencies for the branch
  • Run npm run start-fake to start the web interface with fake data
    • See the npm start section of the getting started guide above for more details, like the port number
  • Note: interactive API features, like adding to the whitelist, will not work with fake data

web's People

Contributors

azuremarker avatar bgalek avatar dschaper avatar flokx avatar mledecky1091 avatar peterdavehello avatar promofaux avatar rrobgill avatar slavabez avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.