Skip to content

maze404/fritzbox-status-page

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FRITZ!Box Status Page

A status page for AVM FRITZ!Box routers to easily check internet speed and availability

Overview Settings

Requirements

Docker compose file

services:
  fritzbox-status-page:
    image: ghcr.io/maze404/fritzbox-status-page:main
    container_name: fritzbox-status-page
    ports:
      - "8000:8080"
    environment:
      - DB_MODE=
      - DB_HOST=
      - DB_PORT=
      - DB_NAME=
      - DB_USER=
      - DB_PASSWORD=
    volumes:
      - /YOUR/CUSTOM/PATH/config:/app/config #Optional, but will make the settings persistent
      - /YOUR/CUSTOM/PATH/log:/app/log #Optional, except if you want to have a look at the logs
    restart: unless-stopped

The environment variables are generally optional. If you choose to remove them or leave them empty, then the program will default to an internal sqlite database.

If you do want to use the environment variables, then you have the following options:

  • DB_MODE: sqlite or mysql. Sqlite will make all other environment variables obsolete!
  • DB_HOST: The IP address of the mysql database
  • DB_PORT: The port for mysql (3306 by default)
  • DB_NAME: Name of the mysql database
  • DB_USER: Username for the mysql database
  • DB_PASSWORD: Password for the above mentioned database user.

The program will setup the database on its own on the first start. If you are still using a version that was using a settings.json file, then you will have to re-enter your router connection information in the settings.

Docker run command

docker run -d --name fritzbox-status-page -p 8000:8080 -v /YOUR/CUSTOM/PATH/config:/app/config -v /YOUR/CUSTOM/PATH/log:/app/log ghcr.io/maze404/fritzbox-status-page:main

I highly advise to use the docker-compose file above as the docker run command is really only suited in case you don't want to use an external database.

ToDo's

  • Show if the router is currently connnected to the internet
  • Show upload and download speed
  • Show if DNS is working
  • Settings page for entering router IP and user credentials, DNS domain to check against, etc.
  • Implement a refresh interval that can be customized
  • Move settings to its own page instead of the overview page
  • Create docker build for this program
  • Toggle darkmode on/off
  • After setup, make top left logo redirect to router webinterface
  • Refine the UI for light/darkmode usage and readability
  • Add support for mysql and sqlite databases
  • Remove settings.json and fully switch to databases
  • Show Diagrams for keeping track of the upload and download speeds (Idea taken from https://github.com/alexjustesen/speedtest-tracker )
  • Show router log messages on extra page
  • Add a button to restart the router if needed
    • Add an option to restart the router as soon as it looses internet connection
  • Add a button to enable or disable the router's wifi

I'm sorry if the code is messy, this is my first project in python and i have little to no clue about object orientation :)

If you have any more ideas, feel free to contribute to the project or send me a message!

If you're someone who works at AVM: Hi! I love your routers!

Packages