# tzapu/wifimanager

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tzapu-wifimanager).**

7,210 stars · 2,082 forks · C++ · MIT

## Links

- GitHub: https://github.com/tzapu/WiFiManager
- Homepage: http://tzapu.com/esp8266-wifi-connection-manager-library-arduino-ide/
- awesome-repositories: https://awesome-repositories.com/repository/tzapu-wifimanager.md

## Topics

`arduino` `captive` `configuration-portal` `esp8266` `wifimanager`

## Description

WiFiManager is a captive portal and web server framework used for configuring wireless credentials and network settings on ESP8266 microcontrollers. It provides an embedded network configuration interface that allows users to connect devices to a wireless network via a web browser rather than hardcoding credentials.

The system functions by temporarily acting as a wireless host and redirecting incoming web requests to a local configuration page. It distinguishes itself through a customizable portal that supports user-defined input parameters, visual themes, and multi-language localization to collect hardware-specific settings or API tokens during the onboarding process.

The framework manages the operational lifecycle of the captive portal, including session timeouts and manual triggers. It handles wireless connectivity through automatic connection management, network scan filtering, and the use of password-protected access points for secure configuration. Settings and credentials are saved to non-volatile storage to maintain connectivity across restarts.

## Tags

### Hardware & IoT

- [WiFi Connection Managers](https://awesome-repositories.com/f/hardware-iot/wifi-connection-managers.md) — A captive portal and web server for configuring WiFi credentials and network settings on ESP8266 microcontrollers.
- [IoT Device Provisioning](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/internet-of-things/device-management/iot-device-provisioning.md) — Simplifies the initial setup process so users can configure internet connectivity for IoT hardware via smartphones.
- [Embedded Configuration Interfaces](https://awesome-repositories.com/f/hardware-iot/embedded-configuration-interfaces.md) — Provides a customizable web interface for entering network parameters without requiring manual HTML authoring.
- [Non-Volatile Setting Persistence](https://awesome-repositories.com/f/hardware-iot/non-volatile-setting-persistence.md) — Saves network credentials and custom parameters to flash memory to maintain connectivity across restarts.
- [Wireless Setup Access Points](https://awesome-repositories.com/f/hardware-iot/wireless-setup-access-points.md) — Provides a temporary wireless access point to allow local browser access for initial network onboarding.
- [Connectivity State Logic](https://awesome-repositories.com/f/hardware-iot/connectivity-state-logic.md) — Switches the device between station mode and access point mode based on connection success or manual triggers.
- [Custom Hardware Parameter Collections](https://awesome-repositories.com/f/hardware-iot/custom-hardware-parameter-collections.md) — Gathering device-specific settings or API tokens from a user through a localized web interface during the initial boot process.
- [Password Protected Setup](https://awesome-repositories.com/f/hardware-iot/wireless-setup-access-points/password-protected-setup.md) — Protects the temporary configuration access point with a password to ensure only authorized users can modify device settings. ([source](https://github.com/tzapu/WiFiManager/blob/master/README.md))

### DevOps & Infrastructure

- [Captive Portal Toggles](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure/networking-connectivity/captive-portal-detectors/captive-portal-toggles.md) — Implements a framework that redirects users to a local configuration page using a DNS server.
- [IoT Device Provisioning](https://awesome-repositories.com/f/devops-infrastructure/provisioning-tools/iot-device-provisioning.md) — A utility for managing the initial connection of an ESP8266 device to a wireless access point.

### Networking & Communication

- [Captive Portal Implementations](https://awesome-repositories.com/f/networking-communication/captive-portal-implementations.md) — Implements a DNS server to redirect all incoming web requests to a local configuration page.
- [WiFi Client Connectivity](https://awesome-repositories.com/f/networking-communication/wifi-client-connectivity.md) — Handles automatic connection to saved wireless networks and triggers setup procedures upon connection failure. ([source](https://github.com/tzapu/WiFiManager))

### Security & Cryptography

- [Network Credential Provisioning](https://awesome-repositories.com/f/security-cryptography/dynamic-credential-provisioning/network-credential-provisioning.md) — Connecting an ESP8266 device to a wireless network by entering credentials through a web browser instead of hardcoding them.

### Development Tools & Productivity

- [Server-Side Dynamic Page Generation](https://awesome-repositories.com/f/development-tools-productivity/page-skeleton-generators/dynamic-page-generators/server-side-dynamic-page-generation.md) — Automatically generates configuration web pages by merging user-defined fields with internal HTML templates.

### Web Development

- [Configurable Web Portals](https://awesome-repositories.com/f/web-development/configurable-web-portals.md) — Provides a web-based interface for inputting WiFi credentials and network parameters. ([source](https://github.com/tzapu/WiFiManager/blob/master/wm_strings_en.h))
- [Custom Input Fields](https://awesome-repositories.com/f/web-development/configurable-web-portals/custom-input-fields.md) — Allows gathering additional user data, such as API tokens, by adding custom input fields to the portal. ([source](https://github.com/tzapu/WiFiManager/blob/master/README.md))
