Skip to content

Latest commit

Β 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ PocketNode

E6D34CEE-8F56-4A69-9673-FBFAABE2C5F2

Turn any old Android phone into a powerful Linux home server

Android Debian ARM 2W Free License

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


πŸ’‘ What is PocketNode?

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.

Why PocketNode?

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!

✨ Features

  • πŸ›‘οΈ 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

🧩 Services

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

πŸš€ Quick Start

Requirements

  • 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

Installation

# 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

First Access

# SSH into your PocketNode
ssh android@<PHONE_IP>
# Password: android

# Open the dashboard in your browser
open http://<PHONE_IP>:8080

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              πŸ“± 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 βœ…

πŸ“Š Performance

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

πŸ“– Documentation

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

πŸ—‚οΈ Project Structure

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
    └── ...

🀝 Compatible Devices

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!


πŸ›£οΈ Roadmap

  • 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)

⚠️ Limitations

  • 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

🀝 Contributing

Contributions welcome! See our contributing guide.

  1. Fork this repo
  2. Create a feature branch (git checkout -b feature/amazing)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing)
  5. Open a Pull Request

πŸ“„ License

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

About

πŸš€ PocketNode β€” Turn any old Android phone into a Linux home server. DNS ad blocker, file sharing, torrents, VPN & web dashboard running 24/7 on just 2 watts.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages