RaspAP / raspap-webgui

Simple wireless AP setup & management for Debian-based devices
https://raspap.com/
GNU General Public License v3.0
4.48k stars 794 forks source link
armbian debian dnsmasq hostapd iot lighttpd orangepi raspap raspberry-pi raspberrypi rpi wi-fi wifi

Release 3.2.1 Awesome Join Insiders Build Status Crowdin Twitter URL Reddit Discord

RaspAP is feature-rich wireless router software that just works on many popular Debian-based devices, including the Raspberry Pi. Our popular Quick installer and Docker container create a known-good default configuration for all current Raspberry Pis with onboard wireless. A fully responsive, mobile-ready interface gives you control over the relevant services and networking options. Advanced DHCP settings, WireGuard and OpenVPN support, SSL certificates, security audits, captive portal integration, themes and multilingual options are included.

RaspAP has been featured on sites such as Instructables, Adafruit, Raspberry Pi Weekly and Awesome Raspberry Pi and implemented in countless projects.

We hope you enjoy using RaspAP as much as we do creating it. Tell us how you use this with your own projects.

Wifi Client Hotspot Adblock About Wireguard System

Contents

Prerequisites

Start with a clean install of the latest release of Raspberry Pi OS Lite. Both the 32- and 64-bit Lite versions are supported. The Raspberry Pi OS desktop distro is unsupported.

  1. Update Raspbian, including the kernel and firmware, followed by a reboot:

    sudo apt-get update
    sudo apt-get full-upgrade
    sudo reboot
  2. Set the "WLAN country" option in raspi-config's Localisation Options: sudo raspi-config

  3. If you have a device without an onboard wireless chipset, the Edimax Wireless 802.11b/g/n nano USB adapter is an excellent option – it's small, cheap and has good driver support.

With the prerequisites done, you can proceed with either the Quick installer or Manual installation steps below.

Quick installer

Install RaspAP from your device's shell prompt:

curl -sL https://install.raspap.com | bash

The installer will complete the steps in the manual installation (below) for you.

After the reboot at the end of the installation the wireless network will be configured as an access point as follows:

Note: As the name suggests, the Quick Installer is a great way to quickly setup a new AP. However, it does not automagically detect the unique configuration of your system. Best results are obtained by connecting to ethernet (eth0) or as a WiFi client, also known as managed mode, with wlan0. For the latter, refer to this FAQ. Special instructions for the Pi Zero W are available here.

Please read this before reporting an issue.

Join Insiders

RaspAP is free software, but powered by your support. If you find RaspAP useful for your personal or commercial projects, become an Insider and get early access to exclusive features in the Insiders Edition.

A tangible side benefit of sponsorship is that Insiders are able to help steer future development of RaspAP. This is done through Insiders' team access to discussions, feature requests, issues and more in the private GitHub repository.

WireGuard support

WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be considerably more performant than OpenVPN, and is generally regarded as the most secure, easiest to use, and simplest VPN solution for modern Linux distributions.

WireGuard may be optionally installed by the Quick Installer. Once this is done, you can manage local (server) settings, create a peer configuration and control the wg-quick service with RaspAP.

Details are provided here.

OpenVPN support

OpenVPN may be optionally installed by the Quick Installer. Once this is done, you can manage client configurations and the openvpn-client service with RaspAP.

To configure an OpenVPN client, upload a valid .ovpn file and, optionally, specify your login credentials. RaspAP will store your client configuration and add firewall rules to forward traffic from OpenVPN's tun0 interface to your configured wireless interface.

See our OpenVPN documentation for more information.

VPN provider support

Several popular VPN providers include a Linux Command Line Interface (CLI) for interacting with their services. As a new beta feature, you may optionally control these VPN services from within RaspAP. After your provider's CLI is installed on your system you may administer it thereafter by using RaspAP's UI.

See our VPN provider documentation for more information.

Ad Blocking

This feature uses DNS blacklisting to block requests for ads, trackers and other undesirable hosts. To enable ad blocking, simply respond to the prompt during the installation. As a beta release, we encourage testing and feedback from users of RaspAP.

Details are provided here.

Bridged AP

By default RaspAP configures a routed AP for your clients to connect to. A bridged AP configuration is also possible. Slide the Bridged AP mode toggle under the Advanced tab of Configure hotspot, then save and restart the hotspot.

Note: In bridged mode, all routing capabilities are handled by your upstream router. Because your router assigns IP addresses to your device's hotspot and its clients, you might not be able to reach the RaspAP web interface from the default 10.3.141.1 address. Instead use your RPi's hostname followed by .local to access the RaspAP web interface. With Raspbian default settings, this should look like raspberrypi.local. Alternate methods are discussed here.

More information on Bridged AP mode is provided in our documentation.

Simultaneous AP and Wifi client

RaspAP lets you create an AP with a Wifi client configuration, often called AP-STA mode. With your system configured in managed mode, enable the AP from the Advanced tab of Configure hotspot by sliding the Wifi client AP mode toggle. Save settings and start the hotspot. The managed mode AP is functional without restart.

Note: This option is disabled until you configure your system as a wireless client. For a device operating in managed mode without an eth0 connection, this configuration must be enabled before a reboot.

Manual installation

Detailed manual setup instructions are provided on our documentation site.

802.11ac 5GHz support

RaspAP provides an 802.11ac wireless mode option for supported hardware (currently the RPi 3B+/4 and compatible Orange Pi models) and wireless regulatory domains. See this for more information.

Supported operating systems

RaspAP was originally made for Raspbian, but now also installs on the following Debian-based distros.

Distribution Release Architecture Support
Raspberry Pi OS (64-bit) Lite Bookworm ARM Official
Raspberry Pi OS (32-bit) Lite Bookworm ARM Official
Raspberry Pi OS (64-bit) Desktop Bookworm ARM Official
Raspberry Pi OS (64-bit) Lite Bullseye ARM Official
Raspberry Pi OS (32-bit) Lite Bullseye ARM Official
Armbian 23.11 (Jammy) ARM Official
Debian Bookworm ARM / x86_64 Beta
Ubuntu Server 23.04 (Lunar) ARM / x86_64 Beta

You are also encouraged to use RaspAP's community-led Docker container. Please note that "supported" is not a guarantee. If you are able to improve support for your preferred distro, we encourage you to actively contribute to the project.

HTTPS support

The Quick Installer may be used to generate SSL certificates with mkcert. The installer automates the manual steps described here, including configuring lighttpd with SSL support.

Simply append the -c or --cert option to the Quick Installer, like so:

curl -sL https://install.raspap.com | bash -s -- --cert

Note: this only installs mkcert and generates an SSL certificate with the input you provide. It does not (re)install RaspAP.

More information on SSL certificates and HTTPS support is available in our documentation.

Docker support

As an alternative to the Quick installer, RaspAP may be run in an isolated, portable Docker container.

See the RaspAP-docker repo for more information.

Custom user plugins

RaspAP's integrated PluginManager provides a framework for developers to create custom plugins. To facilitate this, a SamplePlugin repository is available to get developers started on the right track. If you'd like to develop your own plugin for RaspAP, see the documentation or get started right away by forking the SamplePlugin.

Multilingual support

RaspAP uses GNU Gettext to manage multilingual messages. In order to use RaspAP with one of our supported translations, you must configure a corresponding language package on your RPi. To list languages currently installed on your system, use locale -a at the shell prompt. To generate new locales, run sudo dpkg-reconfigure locales and select any other desired locales. Details are provided on our documentation site.

See this list of supported languages that are actively maintained by volunteer translators. If your language is not supported, why not contribute a translation? Contributors will receive credit as the original translators.

How to contribute

  1. Fork the project in your account and create a new branch: your-great-feature.
  2. Open an issue in the repository describing the feature contribution you'd like to make.
  3. Commit changes in your feature branch.
  4. Open a pull request and reference the initial issue in the pull request message.

Find out more about our coding style guidelines and recommended tools.

Reporting issues

Please read this before reporting a bug.

Contributors

Code Contributors

This project exists thanks to all the awesome people who contribute their time and expertise.

Financial Contributors

Development of RaspAP is made possible thanks to a sponsorware release model. This means that new features are first exclusively released to sponsors as part of Insiders.

Learn more about how sponsorship works, and how easy it is to get access to Insiders.

License

See the LICENSE file.