DNS ad blocking β’ File sharing β’ Torrents β’ VPN β’ Web dashboard
All running 24/7 on a phone that fits in your pocket.
Features β’ Services β’ Quick Start β’ Architecture β’ Docs
PocketNode transforms old Android smartphones (like a Samsung Galaxy S3) into fully functional Linux home servers. Instead of throwing away outdated phones, give them a second life as always-on, silent, ultra-low-power servers that provide real utility to your home network.
π± β π₯οΈ Your old phone becomes your new server.
| Traditional Server | PocketNode | |
|---|---|---|
| π° Cost | $100-500+ | $0 (reuse old phone) |
| β‘ Power | 50-100W | ~2W |
| π Noise | Fans spinning | Silent |
| π¦ Size | Tower/NUC | Fits in pocket |
| π± Eco | New hardware | β»οΈ Recycled |
| π UPS | Needed separately | Built-in battery! |
- π‘οΈ Network-wide ad blocking β Block 99,570+ ad/tracker domains for ALL devices
- π File sharing β Access shared folders from Mac, Windows, Linux, iOS
- β¬οΈ Torrent downloads β Web-based torrent client with remote access
- π VPN server β Secure access to your home network from anywhere
- π₯οΈ Web dashboard β Beautiful Homer page with all your services
- βοΈ Server admin β Cockpit web panel for system management
- π SSH access β Full terminal access over the network
- π Auto-start β Everything starts automatically on phone boot
- π± Phone terminal β Manage directly from the phone's screen
| Service | Port | Access | What it does |
|---|---|---|---|
| π Homer | 8080 | http://<IP>:8080 |
Dashboard with links to everything |
| βοΈ Cockpit | 9090 | http://<IP>:9090 |
Web-based server administration |
| β¬οΈ Transmission | 9091 | http://<IP>:9091 |
Download torrents via web UI |
| π SSH | 22 | ssh android@<IP> |
Remote terminal access |
| π‘οΈ DNS Blocker | 53 | Set as router DNS | Blocks ads network-wide |
| π Samba | 445 | smb://<IP>/shared |
File sharing |
| π WireGuard | 51820 | WireGuard app | VPN tunnel |
- Any rooted Android phone (tested on Galaxy S3, but works on others)
- Custom ROM recommended (LineageOS, Resurrection Remix, etc.)
- USB cable + computer with ADB installed
- WiFi connection
# Clone this repo
git clone https://github.com/YOUR_USER/PocketNode.git
cd PocketNode
# Connect phone via USB
adb devices
# Run installation scripts
chmod +x scripts/*.sh
./scripts/01-install-debian.sh
./scripts/02-install-services.sh
./scripts/03-configure-services.sh
./scripts/04-setup-autostart.sh# SSH into your PocketNode
ssh android@<PHONE_IP>
# Password: android
# Open the dashboard in your browser
open http://<PHONE_IP>:8080βββββββββββββββββββββββββββββββββββββββββββββββββββ
β π± PocketNode β
β Android + Debian Chroot β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββ β
β β Debian 11 (Bullseye) β β
β β β β
β β ββββββββββββ βββββββββββββββββββββββββ β β
β β β dnsmasq β β Transmission β β β
β β β :53 β β :9091 β β β
β β ββββββββββββ βββββββββββββββββββββββββ β β
β β ββββββββββββ βββββββββββββββββββββββββ β β
β β β Samba β β Cockpit β β β
β β β :445 β β :9090 β β β
β β ββββββββββββ βββββββββββββββββββββββββ β β
β β ββββββββββββ βββββββββββββββββββββββββ β β
β β β sshd β β Homer (lighttpd) β β β
β β β :22 β β :8080 β β β
β β ββββββββββββ βββββββββββββββββββββββββ β β
β β ββββββββββββββββββββββββββββββββββββββββ β β
β β β WireGuard VPN :51820 β β β
β β ββββββββββββββββββββββββββββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β π init.d/99linux β auto-starts everything β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WiFi: 192.168.x.x
βΌ
π Home Network
β
βββββββ΄ββββββ
β Router β β DNS pointed to PocketNode
βββββββ¬ββββββ
β
ββββββββββΌβββββββββ
β β β
π» π± πΊ
Mac iPhone TV β All ads blocked β
| Metric | Value |
|---|---|
| RAM (all services running) | ~300 MB / 1,772 MB |
| Storage used | ~2.1 GB / 12 GB available |
| Boot β services ready | ~60 seconds |
| DNS response time | ~25 ms |
| Blocked domains | 99,570+ |
| Power consumption | ~2 Watts |
| Monthly electricity cost | ~$0.05 USD |
| Doc | Description |
|---|---|
| 01 - Prerequisites | Hardware & software requirements |
| 02 - Install Debian | Chroot setup guide |
| 03 - Install Services | Service installation |
| 04 - DNS Blocker | Network-wide ad blocking |
| 05 - Samba | File sharing setup |
| 06 - Transmission | Torrent client |
| 07 - WireGuard | VPN server |
| 08 - Dashboards | Homer & Cockpit |
| 09 - Auto-start | Boot automation |
| 10 - Network DNS | Router configuration |
PocketNode/
βββ README.md
βββ LICENSE
βββ .gitignore
βββ scripts/
β βββ 01-install-debian.sh
β βββ 02-install-services.sh
β βββ 03-configure-services.sh
β βββ 04-setup-autostart.sh
βββ configs/
β βββ dns-blocker/
β β βββ dnsmasq.conf
β βββ samba/
β β βββ smb.conf
β βββ transmission/
β β βββ settings.json
β βββ wireguard/
β β βββ wg0.conf.example
β βββ homer/
β β βββ config.yml
β β βββ lighttpd.conf
β βββ cockpit/
β βββ cockpit.conf
βββ docs/
βββ 01-prerequisites.md
βββ ...
Tested and confirmed working:
| Device | Android | ROM | Status |
|---|---|---|---|
| Samsung Galaxy S3 (d2spr) | 7.1.2 | Resurrection Remix | β Fully working |
Should work on any rooted Android with:
- ARM/ARM64 processor
- 1GB+ RAM
- 4GB+ internal storage
- WiFi connectivity
π Tested yours? Open a PR to add it to the list!
- One-command installer script
- Support for ARM64 devices
- Tailscale integration
- Vaultwarden (password manager)
- Uptime Kuma (monitoring)
- Automated backup system
- Web-based initial setup wizard
- Docker support (for newer kernels)
- Old kernels (3.x) β Some modern software won't work (Pi-hole FTL v6, WireGuard kernel module)
- WiFi speed β Limited by phone's WiFi chip (~1-10 Mbps on older devices)
- No hardware transcoding β Not suitable for video streaming
- ARM 32-bit β Some software only supports ARM64/x86
Contributions welcome! See our contributing guide.
- Fork this repo
- Create a feature branch (
git checkout -b feature/amazing) - Commit your changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing) - Open a Pull Request
MIT License β see LICENSE for details.
β Star this repo if you think old phones deserve a second life!
Made with β€οΈ by recycling an old Galaxy S3 that refused to retire
Report Bug β’ Request Feature β’ Discussions