Looking for a fun way to create a local chat network that works without internet, without installing any apps, and without any complex setup?
This guide will show you how to turn a Raspberry Pi into a portable IRC chat server. It hosts its own WiFi network, shows a captive portal, and lets users chat — all offline. No custom software involved — just a combination of existing tools configured to work together.
What This Is (and Isn’t)
This isn’t a new app or a programming project — it's a collection of freely available software and tutorials that, when set up properly, gives you:
- A private WiFi access point
- A captive portal (like those you see in cafés or airports)
- An IRC server for chatting
- An IRC client, accessible via browser or app
- All hosted entirely on a Raspberry Pi — no downloads or internet needed
What You’ll Need
Hardware
- Raspberry Pi 3B+ (or similar)
- MicroSD card (16GB+ recommended)
- Power supply
- Ethernet cable (for setup phase)
Software Tools
- Wireless AP: RaspAP
- Captive Portal: Nodogsplash
- IRC Server: Hybrid IRC
- Web IRC Client: The Lounge
- [Optional] Admin Panel: Webmin
Setup Guide
1. Set a Static IP on the Raspberry Pi
This is important for routing and for consistent access to your chat server (we’ll use 10.3.141.1
as an example).
2. Turn the Pi Into a Wireless Access Point
Using RaspAP, you can easily broadcast your own WiFi network from the Pi.
3. Connect Internet for Setup
You can connect your Pi to your PC via Ethernet and share internet access temporarily. This helps when downloading packages.
4. Install and Configure Nodogsplash
Nodogsplash is used to serve the captive portal page — the one users see when they connect to your network. It explains how to connect to the chat.
Follow the specific RaspAP integration guide:
You can use this custom HTML page for your captive portal:
Captive Portal Template (GitHub Gist)
5. Install and Configure the IRC Server
Install Hybrid IRC on the Pi and make sure it's listening on the correct interface (e.g., 10.3.141.1
).
You can test your server locally using an IRC client on your computer, like AdiIRC.
6. Install a Web IRC Client (Optional)
You can also install The Lounge on the Pi. It allows users to chat directly in the browser instead of using a separate IRC app.
7. Unplug the Ethernet Cable and Go Offline
Once everything is configured, you can unplug the Pi and use it as a completely offline system. Users connect via WiFi, see the captive portal, and are guided into the chat system.
DNSMasq Offline Mode (If Needed)
If you're running into issues with DNS resolution offline, try adding this line to your dnsmasq.conf
:
# /etc/dnsmasq.conf or /etc/dnsmasq.d/custom.conf
address=/#/10.3.141.1
Create the file if it doesn't exist.
Captive Portal Instructions (What Users See)
When users connect to the WiFi network, they’ll be redirected to a captive portal that explains how to join the local chat. Here's an example of the message you can include:
Welcome to the Local Chat Server
You’re connected to a local IRC chat network hosted entirely on a Raspberry Pi.
No downloads needed. Just follow the steps below:
- Click the button below to proceed. It may open an admin page — just close it if it appears.
- You’ll be redirected to a browser-based IRC client where you can start chatting instantly.
- To join a chat room, type:
/join #general
- You’re now chatting with others on the same WiFi!
Advanced Option:
If you prefer to use a dedicated IRC client (on your phone or computer), you can manually connect using:
- Server Address:
10.3.141.1
- Port:
6667
- Password: Not required
Recommended clients:
- Windows: AdiIRC
- Android: CoreIRCLite
Final Thoughts
This setup is a fun way to explore:
- Raspberry Pi networking
- Offline-first apps
- IRC
- Captive portals
- WiFi provisioning
All without needing to write any code or install anything on user devices.
Whether you're using this for LAN parties, workshops, classrooms, or just experimenting — it’s a great DIY project that repurposes old tools in a useful way.
Credits
- pimylifeup.com – for most of the tutorials referenced in this project
- Banner image by Yannick Pipke on Unsplash
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.