Пример #1
0
def reset_firewall_page():
    check_logged_in()
    t = Timer(3.0, reload_firewall)
    t.start()
    flash("Firewall Reset", category="message")
    return redirect("/settings")
Пример #2
0
def get_latest_version_page():
    check_logged_in()
    update_latest_version()
    return redirect("/settings")
Пример #3
0
def check_in_page():
    check_logged_in()
    check_in()
    return redirect("/settings")
Пример #4
0
def page_status():
    check_logged_in()
    t1 = get_system_time_in_ms()

    current_version = get_current_version()
    latest_version = get_latest_version()
    current_beta_version = get_current_beta_version()
    latest_beta_version = get_latest_beta_version()

    changelog = get_device_changelog()
    serial_number = get_device_serial()
    device_type = get_device_type()
    device_arch = get_device_arch()
    device_ram = get_device_ram()
    product_key = get_product_key()
    pk_skipped = skipped_product_key()
    pk_error = not is_valid_product_key()
    uptime = get_system_uptime()
    date = get_system_date()
    local_ip = get_local_ip()

    # Get Startup Status
    #startup_status_log = get_journalctl_log("mynode")

    # Get QuickSync Status
    quicksync_enabled = is_quicksync_enabled()
    quicksync_status = "Disabled"
    quicksync_status_color = "gray"
    quicksync_status_log = get_quicksync_log()
    if quicksync_enabled:
        quicksync_status = get_service_status_basic_text("quicksync")
        quicksync_status_color = get_service_status_color("quicksync")

    # Get Bitcoin Status
    # bitcoin_status_log = get_file_log( get_bitcoin_log_file() )
    # GET lnd, loop, pool logs from file???
    #lnd_status_log = get_file_log("/mnt/hdd/mynode/lnd/logs/bitcoin/mainnet/lnd.log")
    #loop_status_log = get_file_log("/mnt/hdd/mynode/loop/logs/mainnet/loopd.log")
    #pool_status_log = get_file_log("/mnt/hdd/mynode/pool/logs/mainnet/poold.log")

    # Get Status
    # lnd_status_log = get_journalctl_log("lnd")
    # loop_status_log = get_journalctl_log("loop")
    # pool_status_log = get_journalctl_log("pool")
    # lndhub_status_log = get_journalctl_log("lndhub")
    # tor_status_log = get_journalctl_log("tor@default")
    # electrs_status_log = get_journalctl_log("electrs")
    # netdata_status_log = get_journalctl_log("netdata")
    # rtl_status_log = get_journalctl_log("rtl")
    # lnbits_status_log = get_journalctl_log("lnbits")
    # thunderhub_status_log = get_journalctl_log("thunderhub")
    # ckbunker_status_log = get_journalctl_log("ckbunker")
    # sphinxrelay_status_log = get_journalctl_log("sphinxrelay")
    # docker_status_log = get_journalctl_log("docker")
    # docker_image_build_status_log = get_journalctl_log("docker_images")

    # Find running containers
    running_containers = get_docker_running_containers()

    templateData = {
        "title": "myNode Status",
        "password_message": "",
        "current_version": current_version,
        "latest_version": latest_version,
        "current_beta_version": current_beta_version,
        "latest_beta_version": latest_beta_version,
        "has_checkin_error": has_checkin_error(),
        "upgrade_error": did_upgrade_fail(),
        "upgrade_logs": get_recent_upgrade_logs(),
        "serial_number": serial_number,
        "device_type": device_type,
        "device_arch": device_arch,
        "device_ram": device_ram,
        "product_key": product_key,
        "product_key_skipped": pk_skipped,
        "product_key_error": pk_error,
        "changelog": changelog,
        "lnd_wallet_exists": lnd_wallet_exists(),
        "is_installing_docker_images": is_installing_docker_images(),
        "running_containers": running_containers,
        #"startup_status_log": startup_status_log,
        "startup_status": get_service_status_basic_text("mynode"),
        "startup_status_color": get_service_status_color("mynode"),
        #"quicksync_status_log": quicksync_status_log,
        "quicksync_status": quicksync_status,
        "quicksync_status_color": quicksync_status_color,
        "is_bitcoin_synced": is_bitcoin_synced(),
        #"bitcoin_status_log": bitcoin_status_log,
        "bitcoin_status": get_service_status_basic_text("bitcoin"),
        "bitcoin_status_color": get_service_status_color("bitcoin"),
        #"lnd_status_log": lnd_status_log,
        "lnd_status": get_service_status_basic_text("lnd"),
        "lnd_status_color": get_service_status_color("lnd"),
        #"loop_status_log": loop_status_log,
        "loop_status": get_service_status_basic_text("loop"),
        "loop_status_color": get_service_status_color("loop"),
        #"pool_status_log": pool_status_log,
        "pool_status": get_service_status_basic_text("pool"),
        "pool_status_color": get_service_status_color("pool"),
        #"lit_status_log": get_journalctl_log("lit"),
        "lit_status": get_service_status_basic_text("lit"),
        "lit_status_color": get_service_status_color("lit"),
        #"tor_status_log": tor_status_log,
        "tor_status": get_service_status_basic_text("tor@default"),
        "tor_status_color": get_service_status_color("tor@default"),
        #"lndhub_status_log": lndhub_status_log,
        "lndhub_status": get_service_status_basic_text("lndhub"),
        "lndhub_status_color": get_service_status_color("lndhub"),
        #"netdata_status_log": netdata_status_log,
        "netdata_status": get_service_status_basic_text("netdata"),
        "netdata_status_color": get_service_status_color("netdata"),
        #"electrs_status_log": electrs_status_log,
        "electrs_status": get_service_status_basic_text("electrs"),
        "electrs_status_color": get_service_status_color("electrs"),
        #"rtl_status_log": rtl_status_log,
        "rtl_status": get_service_status_basic_text("rtl"),
        "rtl_status_color": get_service_status_color("rtl"),
        #"lnbits_status_log": lnbits_status_log,
        "lnbits_status": get_service_status_basic_text("lnbits"),
        "lnbits_status_color": get_service_status_color("lnbits"),
        #"thunderhub_status_log": thunderhub_status_log,
        "thunderhub_status": get_service_status_basic_text("thunderhub"),
        "thunderhub_status_color": get_service_status_color("thunderhub"),
        #"ckbunker_status_log": ckbunker_status_log,
        "ckbunker_status": get_service_status_basic_text("ckbunker"),
        "ckbunker_status_color": get_service_status_color("ckbunker"),
        #"sphinxrelay_status_log": sphinxrelay_status_log,
        "sphinxrelay_status": get_service_status_basic_text("sphinxrelay"),
        "sphinxrelay_status_color": get_service_status_color("sphinxrelay"),
        #"docker_status_log": docker_status_log,
        "docker_status": get_service_status_basic_text("docker"),
        "docker_status_color": get_service_status_color("docker"),
        #"docker_image_build_status_log": docker_image_build_status_log,
        "docker_image_build_status": get_docker_image_build_status(),
        "docker_image_build_status_color":
        get_docker_image_build_status_color(),
        #"whirlpool_status_log": get_journalctl_log("whirlpool"),
        "whirlpool_status": get_service_status_basic_text("whirlpool"),
        "whirlpool_status_color": get_service_status_color("whirlpool"),
        #"dojo_status_log": get_journalctl_log("dojo"),
        "dojo_status": get_service_status_basic_text("dojo"),
        "dojo_status_color": get_service_status_color("dojo"),
        #"btcpayserver_status_log": get_journalctl_log("btcpayserver"),
        "btcpayserver_status": get_service_status_basic_text("btcpayserver"),
        "btcpayserver_status_color": get_service_status_color("btcpayserver"),
        #"mempool_status_log": get_journalctl_log("mempool"),
        "mempool_status": get_service_status_basic_text("mempool"),
        "mempool_status_color": get_service_status_color("mempool"),
        #"caravan_status_log": get_journalctl_log("caravan"),
        "caravan_status": get_service_status_basic_text("caravan"),
        "caravan_status_color": get_service_status_color("caravan"),
        #"specter_status_log": get_journalctl_log("specter"),
        "specter_status": get_service_status_basic_text("specter"),
        "specter_status_color": get_service_status_color("specter"),
        #"nginx_status_log": get_journalctl_log("nginx"),
        "nginx_status": get_service_status_basic_text("nginx"),
        "nginx_status_color": get_service_status_color("nginx"),
        #"ufw_status_log": get_journalctl_log("ufw"),
        "ufw_status": get_service_status_basic_text("ufw"),
        "ufw_status_color": get_service_status_color("ufw"),
        "firewall_rules": get_firewall_rules(),
        "is_quicksync_disabled": not quicksync_enabled,
        "netdata_enabled": is_service_enabled("netdata"),
        "uptime": uptime,
        "date": date,
        "local_ip": local_ip,
        "throttled_data": get_throttled_data(),
        "oom_error": has_oom_error(),
        "oom_info": get_oom_error_info(),
        "drive_usage": get_drive_usage(),
        "cpu_usage": get_cpu_usage(),
        "ram_usage": get_ram_usage(),
        "device_temp": get_device_temp(),
        "ui_settings": read_ui_settings()
    }
    t2 = get_system_time_in_ms()
    templateData["load_time"] = t2 - t1
    return render_template('status.html', **templateData)
Пример #5
0
def page_settings():
    check_logged_in()

    current_version = get_current_version()
    latest_version = get_latest_version()
    current_beta_version = get_current_beta_version()
    latest_beta_version = get_latest_beta_version()

    changelog = get_device_changelog()
    serial_number = get_device_serial()
    device_type = get_device_type()
    device_arch = get_device_arch()
    device_ram = get_device_ram()
    product_key = get_product_key()
    pk_skipped = skipped_product_key()
    pk_error = not is_valid_product_key()
    uptime = get_system_uptime()
    date = get_system_date()
    local_ip = get_local_ip()

    # Get QuickSync Rates
    upload_rate = 100
    download_rate = 100
    try:
        upload_rate = subprocess.check_output(
            ["cat", "/mnt/hdd/mynode/settings/quicksync_upload_rate"])
        download_rate = subprocess.check_output([
            "cat",
            "/mnt/hdd/mynode/settings/quicksync_background_download_rate"
        ])
    except:
        upload_rate = 100
        download_rate = 100

    logout_time_days, logout_time_hours = get_flask_session_timeout()

    templateData = {
        "title": "myNode Settings",
        "apps": get_all_applications(order_by="alphabetic"),
        "password_message": "",
        "current_version": current_version,
        "latest_version": latest_version,
        "current_beta_version": current_beta_version,
        "latest_beta_version": latest_beta_version,
        "has_checkin_error": has_checkin_error(),
        "upgrade_error": did_upgrade_fail(),
        "upgrade_logs": get_recent_upgrade_logs(),
        "serial_number": serial_number,
        "device_type": device_type,
        "device_arch": device_arch,
        "device_ram": device_ram,
        "swap_size": get_swap_size(),
        "product_key": product_key,
        "product_key_skipped": pk_skipped,
        "product_key_error": pk_error,
        "changelog": changelog,
        "is_https_forced": is_https_forced(),
        "logout_time_days": logout_time_days,
        "logout_time_hours": logout_time_hours,
        "using_bitcoin_custom_config": using_bitcoin_custom_config(),
        "using_lnd_custom_config": using_lnd_custom_config(),
        "is_bitcoin_synced": is_bitcoin_synced(),
        "is_installing_docker_images": is_installing_docker_images(),
        "firewall_rules": get_firewall_rules(),
        "is_testnet_enabled": is_testnet_enabled(),
        "is_quicksync_disabled": not is_quicksync_enabled(),
        "netdata_enabled": is_service_enabled("netdata"),
        "is_uploader_device": is_uploader(),
        "download_rate": download_rate,
        "upload_rate": upload_rate,
        "is_btc_lnd_tor_enabled": is_btc_lnd_tor_enabled(),
        "is_aptget_tor_enabled": is_aptget_tor_enabled(),
        "skip_fsck": skip_fsck(),
        "uptime": uptime,
        "date": date,
        "local_ip": local_ip,
        "throttled_data": get_throttled_data(),
        "oom_error": has_oom_error(),
        "oom_info": get_oom_error_info(),
        "drive_usage": get_drive_usage(),
        "cpu_usage": get_cpu_usage(),
        "ram_usage": get_ram_usage(),
        "device_temp": get_device_temp(),
        "ui_settings": read_ui_settings()
    }
    return render_template('settings.html', **templateData)
Пример #6
0
def page_tor():
    check_logged_in()

    # Check if we are premium
    if is_community_edition():
        return redirect("/")

    # Get Onion URLs
    ssh_onion_url = get_onion_url_ssh()
    general_onion_url = get_onion_url_general()
    btc_onion_url = get_onion_url_btc()
    lnd_onion_url = get_onion_url_lnd()
    electrs_onion_url = get_onion_url_electrs()

    # Services
    services = []
    services.append({
        "service": "myNode Web",
        "url": general_onion_url,
        "port": "80",
        "guide": ""
    })
    services.append({
        "service": "LND Hub",
        "url": general_onion_url,
        "port": "3000",
        "guide": ""
    })
    services.append({
        "service": "BTC RPC Explorer",
        "url": general_onion_url,
        "port": "3002",
        "guide": ""
    })
    services.append({
        "service": "Ride the Lightning",
        "url": general_onion_url,
        "port": "3010",
        "guide": ""
    })
    services.append({
        "service": "Bitcoin API (REST)",
        "url": btc_onion_url,
        "port": "8332",
        "guide": ""
    })
    services.append({
        "service": "LND API (gRPC)",
        "url": lnd_onion_url,
        "port": "10009",
        "guide": ""
    })
    services.append({
        "service": "LND API (REST)",
        "url": lnd_onion_url,
        "port": "10080",
        "guide": ""
    })
    services.append({
        "service": "SSH",
        "url": ssh_onion_url,
        "port": "22022",
        "guide": ""
    })
    services.append({
        "service": "Electrum Server",
        "url": electrs_onion_url,
        "port": "50001",
        "guide": "https://mynodebtc.com/guide/electrum_server_tor"
    })
    services.append({
        "service": "Electrum Server",
        "url": electrs_onion_url,
        "port": "50002",
        "guide": "https://mynodebtc.com/guide/electrum_server_tor"
    })

    # App links
    rpc_password = get_bitcoin_rpc_password()
    fully_noded_link = "btcstandup://*****:*****@{}:8332?label=myNode%20Tor".format(
        rpc_password, btc_onion_url)

    # Load page
    templateData = {
        "title": "myNode Tor Services",
        "services": services,
        "fully_noded_link": fully_noded_link,
        "ui_settings": read_ui_settings()
    }
    return render_template('tor.html', **templateData)
Пример #7
0
def page_clear_oom_error():
    check_logged_in()
    clear_oom_error()
    flash("Warning Cleared", category="message")
    return redirect("/settings")
Пример #8
0
def toggle_darkmode_page_home():
    check_logged_in()
    toggle_darkmode()
    return redirect("/")
Пример #9
0
def toggle_darkmode_page():
    check_logged_in()
    toggle_darkmode()
    return redirect("/settings")
Пример #10
0
def page_toggle_whirlpool():
    check_logged_in()
    os.system("systemctl restart whirlpool --no-pager")
    return redirect("/whirlpool")
Пример #11
0
def page_toggle_dojo():
    check_logged_in()
    disable_dojo()
    enable_dojo()
    return redirect("/dojo")
Пример #12
0
def page_settings():
    check_logged_in()

    current_version = get_current_version()
    latest_version = get_latest_version()
    current_beta_version = get_current_beta_version()
    latest_beta_version = get_latest_beta_version()

    changelog = get_device_changelog()
    serial_number = get_device_serial()
    device_type = get_device_type()
    product_key = get_product_key()
    pk_skipped = skipped_product_key()
    pk_error = not is_valid_product_key()
    uptime = get_system_uptime()
    date = get_system_date()
    local_ip = get_local_ip()
    public_ip = get_public_ip()

    # Get Startup Status
    startup_status_log = get_journalctl_log("mynode")

    # Get QuickSync Status
    quicksync_enabled = is_quicksync_enabled()
    quicksync_status = "Disabled"
    quicksync_status_color = "gray"
    quicksync_status_log = "DISABLED"
    if quicksync_enabled:
        quicksync_status = get_service_status_basic_text("quicksync")
        quicksync_status_color = get_service_status_color("quicksync")
        try:
            quicksync_status_log = subprocess.check_output(
                ["mynode-get-quicksync-status"]).decode("utf8")
        except:
            quicksync_status_log = "ERROR"

    # Get Bitcoin Status
    bitcoin_status_log = ""
    try:
        bitcoin_status_log = subprocess.check_output(
            ["tail", "-n", "200",
             "/mnt/hdd/mynode/bitcoin/debug.log"]).decode("utf8")
        lines = bitcoin_status_log.split('\n')
        lines.reverse()
        bitcoin_status_log = '\n'.join(lines)
    except:
        bitcoin_status_log = "ERROR"

    # Get Status
    lnd_status_log = get_journalctl_log("lnd")
    lndhub_status_log = get_journalctl_log("lndhub")
    tor_status_log = get_journalctl_log("tor@default")
    electrs_status_log = get_journalctl_log("electrs")
    netdata_status_log = get_journalctl_log("netdata")
    rtl_status_log = get_journalctl_log("rtl")
    docker_status_log = get_journalctl_log("docker")
    docker_image_build_status_log = get_journalctl_log("docker_images")

    # Get QuickSync Rates
    upload_rate = 100
    download_rate = 100
    try:
        upload_rate = subprocess.check_output(
            ["cat", "/mnt/hdd/mynode/settings/quicksync_upload_rate"])
        download_rate = subprocess.check_output([
            "cat",
            "/mnt/hdd/mynode/settings/quicksync_background_download_rate"
        ])
    except:
        upload_rate = 100
        download_rate = 100

    templateData = {
        "title": "myNode Settings",
        "password_message": "",
        "current_version": current_version,
        "latest_version": latest_version,
        "current_beta_version": current_beta_version,
        "latest_beta_version": latest_beta_version,
        "upgrade_error": did_upgrade_fail(),
        "upgrade_logs": get_recent_upgrade_logs(),
        "serial_number": serial_number,
        "device_type": device_type,
        "product_key": product_key,
        "product_key_skipped": pk_skipped,
        "product_key_error": pk_error,
        "changelog": changelog,
        "startup_status_log": startup_status_log,
        "startup_status": get_service_status_basic_text("mynode"),
        "startup_status_color": get_service_status_color("mynode"),
        "quicksync_status_log": quicksync_status_log,
        "quicksync_status": quicksync_status,
        "quicksync_status_color": quicksync_status_color,
        "is_bitcoin_synced": is_bitcoind_synced(),
        "bitcoin_status_log": bitcoin_status_log,
        "bitcoin_status": get_service_status_basic_text("bitcoind"),
        "bitcoin_status_color": get_service_status_color("bitcoind"),
        "lnd_status_log": lnd_status_log,
        "lnd_status": get_service_status_basic_text("lnd"),
        "lnd_status_color": get_service_status_color("lnd"),
        "tor_status_log": tor_status_log,
        "tor_status": get_service_status_basic_text("tor@default"),
        "tor_status_color": get_service_status_color("tor@default"),
        "lndhub_status_log": lndhub_status_log,
        "lndhub_status": get_service_status_basic_text("lndhub"),
        "lndhub_status_color": get_service_status_color("lndhub"),
        "netdata_status_log": netdata_status_log,
        "netdata_status": get_service_status_basic_text("netdata"),
        "netdata_status_color": get_service_status_color("netdata"),
        "electrs_status_log": electrs_status_log,
        "electrs_status": get_service_status_basic_text("electrs"),
        "electrs_status_color": get_service_status_color("electrs"),
        "rtl_status_log": rtl_status_log,
        "rtl_status": get_service_status_basic_text("rtl"),
        "rtl_status_color": get_service_status_color("rtl"),
        "docker_status_log": docker_status_log,
        "docker_status": get_service_status_basic_text("docker"),
        "docker_status_color": get_service_status_color("docker"),
        "docker_image_build_status_log": docker_image_build_status_log,
        "docker_image_build_status": get_docker_image_build_status(),
        "docker_image_build_status_color":
        get_docker_image_build_status_color(),
        "dojo_status_log": get_journalctl_log("dojo"),
        "dojo_status": get_service_status_basic_text("dojo"),
        "dojo_status_color": get_service_status_color("dojo"),
        "btcpayserver_status_log": get_journalctl_log("btcpayserver"),
        "btcpayserver_status": get_service_status_basic_text("btcpayserver"),
        "btcpayserver_status_color": get_service_status_color("btcpayserver"),
        "mempoolspace_status_log": get_journalctl_log("mempoolspace"),
        "mempoolspace_status": get_service_status_basic_text("mempoolspace"),
        "mempoolspace_status_color": get_service_status_color("mempoolspace"),
        "firewall_status_log": get_journalctl_log("ufw"),
        "firewall_status": get_service_status_basic_text("ufw"),
        "firewall_status_color": get_service_status_color("ufw"),
        "firewall_rules": get_firewall_rules(),
        "is_quicksync_disabled": not quicksync_enabled,
        "is_netdata_enabled": is_netdata_enabled(),
        "is_uploader_device": is_uploader(),
        "download_rate": download_rate,
        "upload_rate": upload_rate,
        "is_btc_lnd_tor_enabled": is_btc_lnd_tor_enabled(),
        "uptime": uptime,
        "date": date,
        "public_ip": public_ip,
        "local_ip": local_ip,
        "drive_usage": get_drive_usage(),
        "cpu_usage": get_cpu_usage(),
        "ram_usage": get_ram_usage(),
        "device_temp": get_device_temp(),
        "ui_settings": read_ui_settings()
    }
    return render_template('settings.html', **templateData)
Пример #13
0
def check_in_page():
    check_logged_in()
    # check_in()                    # no f****n' checkin
    return redirect("/settings")
Пример #14
0
def page_status():
    check_logged_in()

    current_version = get_current_version()
    latest_version = get_latest_version()
    current_beta_version = get_current_beta_version()
    latest_beta_version = get_latest_beta_version()

    changelog = get_device_changelog()
    serial_number = get_device_serial()
    device_type = get_device_type()
    device_ram = get_device_ram()
    product_key = get_product_key()
    pk_skipped = skipped_product_key()
    pk_error = not is_valid_product_key()
    uptime = get_system_uptime()
    date = get_system_date()
    local_ip = get_local_ip()

    # Get Startup Status
    startup_status_log = get_journalctl_log("mynode")

    # Get QuickSync Status
    quicksync_enabled = is_quicksync_enabled()
    quicksync_status = "Disabled"
    quicksync_status_color = "gray"
    quicksync_status_log = "DISABLED"
    if quicksync_enabled:
        quicksync_status = get_service_status_basic_text("quicksync")
        quicksync_status_color = get_service_status_color("quicksync")
        try:
            quicksync_status_log = subprocess.check_output(
                ["mynode-get-quicksync-status"]).decode("utf8")
        except:
            quicksync_status_log = "ERROR"

    # Get Bitcoin Status
    bitcoin_status_log = get_file_log("/mnt/hdd/mynode/bitcoin/debug.log")
    # GET lnd, loopd, poold logs from file???
    #lnd_status_log = get_file_log("/mnt/hdd/mynode/lnd/logs/bitcoin/mainnet/lnd.log")
    #loopd_status_log = get_file_log("/mnt/hdd/mynode/loop/logs/mainnet/loopd.log")
    #poold_status_log = get_file_log("/mnt/hdd/mynode/pool/logs/mainnet/poold.log")

    # Get Status
    lnd_status_log = get_journalctl_log("lnd")
    loopd_status_log = get_journalctl_log("loopd")
    poold_status_log = get_journalctl_log("poold")
    lndhub_status_log = get_journalctl_log("lndhub")
    tor_status_log = get_journalctl_log("tor@default")
    electrs_status_log = get_journalctl_log("electrs")
    netdata_status_log = get_journalctl_log("netdata")
    rtl_status_log = get_journalctl_log("rtl")
    lnbits_status_log = get_journalctl_log("lnbits")
    thunderhub_status_log = get_journalctl_log("thunderhub")
    docker_status_log = get_journalctl_log("docker")
    docker_image_build_status_log = get_journalctl_log("docker_images")

    # Find running containers
    running_containers = get_docker_running_containers()

    templateData = {
        "title": "myNode Status",
        "password_message": "",
        "current_version": current_version,
        "latest_version": latest_version,
        "current_beta_version": current_beta_version,
        "latest_beta_version": latest_beta_version,
        "has_checkin_error": has_checkin_error(),
        "upgrade_error": did_upgrade_fail(),
        "upgrade_logs": get_recent_upgrade_logs(),
        "serial_number": serial_number,
        "device_type": device_type,
        "device_ram": device_ram,
        "product_key": product_key,
        "product_key_skipped": pk_skipped,
        "product_key_error": pk_error,
        "changelog": changelog,
        "lnd_wallet_exists": lnd_wallet_exists(),
        "is_installing_docker_images": is_installing_docker_images(),
        "running_containers": running_containers,
        "startup_status_log": startup_status_log,
        "startup_status": get_service_status_basic_text("mynode"),
        "startup_status_color": get_service_status_color("mynode"),
        "quicksync_status_log": quicksync_status_log,
        "quicksync_status": quicksync_status,
        "quicksync_status_color": quicksync_status_color,
        "is_bitcoin_synced": is_bitcoind_synced(),
        "bitcoin_status_log": bitcoin_status_log,
        "bitcoin_status": get_service_status_basic_text("bitcoind"),
        "bitcoin_status_color": get_service_status_color("bitcoind"),
        "lnd_status_log": lnd_status_log,
        "lnd_status": get_service_status_basic_text("lnd"),
        "lnd_status_color": get_service_status_color("lnd"),
        "loopd_status_log": loopd_status_log,
        "loopd_status": get_service_status_basic_text("loopd"),
        "loopd_status_color": get_service_status_color("loopd"),
        "poold_status_log": poold_status_log,
        "poold_status": get_service_status_basic_text("poold"),
        "poold_status_color": get_service_status_color("poold"),
        "tor_status_log": tor_status_log,
        "tor_status": get_service_status_basic_text("tor@default"),
        "tor_status_color": get_service_status_color("tor@default"),
        "lndhub_status_log": lndhub_status_log,
        "lndhub_status": get_service_status_basic_text("lndhub"),
        "lndhub_status_color": get_service_status_color("lndhub"),
        "netdata_status_log": netdata_status_log,
        "netdata_status": get_service_status_basic_text("netdata"),
        "netdata_status_color": get_service_status_color("netdata"),
        "electrs_status_log": electrs_status_log,
        "electrs_status": get_service_status_basic_text("electrs"),
        "electrs_status_color": get_service_status_color("electrs"),
        "rtl_status_log": rtl_status_log,
        "rtl_status": get_service_status_basic_text("rtl"),
        "rtl_status_color": get_service_status_color("rtl"),
        "lnbits_status_log": lnbits_status_log,
        "lnbits_status": get_service_status_basic_text("lnbits"),
        "lnbits_status_color": get_service_status_color("lnbits"),
        "thunderhub_status_log": thunderhub_status_log,
        "thunderhub_status": get_service_status_basic_text("thunderhub"),
        "thunderhub_status_color": get_service_status_color("thunderhub"),
        "docker_status_log": docker_status_log,
        "docker_status": get_service_status_basic_text("docker"),
        "docker_status_color": get_service_status_color("docker"),
        "docker_image_build_status_log": docker_image_build_status_log,
        "docker_image_build_status": get_docker_image_build_status(),
        "docker_image_build_status_color":
        get_docker_image_build_status_color(),
        "whirlpool_status_log": get_journalctl_log("whirlpool"),
        "whirlpool_status": get_service_status_basic_text("whirlpool"),
        "whirlpool_status_color": get_service_status_color("whirlpool"),
        "dojo_status_log": get_journalctl_log("dojo"),
        "dojo_status": get_service_status_basic_text("dojo"),
        "dojo_status_color": get_service_status_color("dojo"),
        "btcpayserver_status_log": get_journalctl_log("btcpayserver"),
        "btcpayserver_status": get_service_status_basic_text("btcpayserver"),
        "btcpayserver_status_color": get_service_status_color("btcpayserver"),
        "mempoolspace_status_log": get_journalctl_log("mempoolspace"),
        "mempoolspace_status": get_service_status_basic_text("mempoolspace"),
        "mempoolspace_status_color": get_service_status_color("mempoolspace"),
        "caravan_status_log": get_journalctl_log("caravan"),
        "caravan_status": get_service_status_basic_text("caravan"),
        "caravan_status_color": get_service_status_color("caravan"),
        "nginx_status_log": get_journalctl_log("nginx"),
        "nginx_status": get_service_status_basic_text("nginx"),
        "nginx_status_color": get_service_status_color("nginx"),
        "firewall_status_log": get_journalctl_log("ufw"),
        "firewall_status": get_service_status_basic_text("ufw"),
        "firewall_status_color": get_service_status_color("ufw"),
        "firewall_rules": get_firewall_rules(),
        "is_quicksync_disabled": not quicksync_enabled,
        "is_netdata_enabled": is_netdata_enabled(),
        "uptime": uptime,
        "date": date,
        "local_ip": local_ip,
        "throttled_data": get_throttled_data(),
        "drive_usage": get_drive_usage(),
        "cpu_usage": get_cpu_usage(),
        "ram_usage": get_ram_usage(),
        "device_temp": get_device_temp(),
        "ui_settings": read_ui_settings()
    }
    return render_template('status.html', **templateData)