Run a Raspberry Pi as an old-school dial-up ISP for retro computers.
The goal of this repository is to create the simplest possible dial-up emulation setup, not to create a full ISP-like setup with a PBX and multiple phone lines. Just one retro computer 'dialing up' to the Internet through a Raspberry Pi.
For a more elaborate setup, check out Doge Microsystems Dial-up pool instructions.
I'm using the following hardware:
- Raspberry Pi 3, 4, or 5 (or equivalent) ($35)
- StarTech.com 56K USB Dial-up Modem ($45)
- Viking DLE-200B Two-Way Line Simulator ($120)
TODO: Add an image of the setup here.
There are other hardware configurations you can use for a Pi-based dial-up ISP, and other ways to emulate phone lines for a little less money, but these devices can be purchased new and work reliably.
As an Amazon Associate, I earn from qualified purchases.
This project uses Ansible (pip install ansible).
To get started:
- Copy
example.hosts.ymltohosts.yml(change the hostname or IP to match your Pi). - Copy
example.config.ymltoconfig.ymland modify any settings to your liking. - Install Ansible dependencies:
ansible-galaxy install geerlingguy.security.
To set up the Pi as a local ISP, run the Ansible playbook.
ansible-playbook main.yml
When 'dialing' the Pi, observe the mgetty logs:
sudo journalctl -fu mgetty
This project relies heavily on the research and guidance of other projects:
GPLv3
This project was created in 2026 by Jeff Geerling.