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