Skip to content

xinz3/dev-infra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cross-Platform Remote Development Infrastructure 🌐

dev-infra — a sanitized homelab blueprint for Remote-SSH, SMB storage, and private Tailscale access.

Windows 11 Gaming PC Arch Linux ThinkPad macOS M4 Mac Mini Android Mobile VSCodium Remote SSH Tailscale Private Mesh MIT License


A polished, public-safe blueprint of my cross-platform homelab and remote development workflow.

The setup centers on a headless M4 Mac Mini as the always-on compute/NAS node. At home, traffic flows from router → switch → devices, with the ThinkPad also able to use Wi-Fi. When I am outside or overseas, the same client devices connect through a private Tailscale mesh.

Real IPs, hostnames, usernames, SMB credentials, SSH keys, and private share names are intentionally excluded.

📚 Table of contents

↑ Back to top

✨ Highlights

  • 🖥️ Remote development: VSCodium Remote-SSH into the Mac Mini
  • 🗂️ Shared storage: SMB access across desktop, laptop, and phone
  • 🔐 Private remote access: Tailscale instead of public SSH/SMB exposure
  • 🐧 Linux client support: sanitized /etc/fstab CIFS mount example
  • 📦 Reusable docs: config templates without private machine details

↑ Back to top

🧭 Architecture

graph TD
    subgraph LAN [Home LAN: 192.168.x.x]
        Router[Router / Gateway]
        Switch[Network Switch]
        Mac[M4 Mac Mini\nCompute + NAS]
        Win[Windows 11 Gaming PC\nVSCodium]
        Think[ThinkPad T495\nArch Linux]
        Phone[Android Phone\nWi-Fi Client]

        Router --- Switch
        Switch --- Mac
        Switch --- Win
        Switch -. optional wired .- Think
        Router -. Wi-Fi .- Think
        Router -. Wi-Fi .- Phone

        Win -->|Remote-SSH + SMB mapped drives| Mac
        Think -->|Remote-SSH + CIFS mount| Mac
        Phone -->|SMB file access over LAN| Mac
    end

    subgraph Mesh [Private Tailnet]
        Tailnet((Tailscale\n100.x.x.x))
    end

    Think -. when outside / overseas .-> Tailnet
    Phone -. when outside / overseas .-> Tailnet
    Tailnet -. private SSH / SMB route .-> Mac
Loading

This keeps the home path as router → switch → devices, and shows the same ThinkPad and Android devices using Tailscale when I am outside or overseas.

↑ Back to top

🧩 Device roles

Device Role Access
🪟 Windows 11 gaming PC Main at-home coding client Wired LAN through switch; VSCodium Remote-SSH + SMB mapped drives
🐧 ThinkPad T495 Portable Arch Linux client Home Wi-Fi or optional wired LAN; Tailscale SSH when outside/overseas
🍎 M4 Mac Mini Headless compute + NAS Wired LAN through switch; reachable at 192.168.x.x or 100.x.x.x
🤖 Android phone Mobile file client Wi-Fi/LAN at home; Tailscale while outside/overseas

↑ Back to top

📁 Repository layout

dev-infra/
├── README.md
├── LICENSE
├── infrastructure.json
├── setup_infra.sh
├── configs/
│   ├── fstab.example
│   └── ssh_config.example
├── docs/
│   └── images/
└── .gitignore

↑ Back to top

🖼️ Screenshots

Redacted workflow screenshots live under docs/images/.

Windows VSCodium Remote-SSH workflow
Windows VSCodium Remote-SSH workflow
Linux VSCodium Remote-SSH workflow
Linux VSCodium Remote-SSH workflow
Windows mapped SMB network drive
Windows mapped SMB network drive
Android SMB access workflow
Android SMB/file-manager access
Linux terminal CIFS workflow
Linux terminal / CIFS workflow

All screenshots are redacted before publishing.

↑ Back to top

🚀 Quick check

Run the read-only diagnostics script:

./setup_infra.sh

It checks for useful client tools such as ssh, tailscale, mount.cifs, and smbclient. It does not modify system files.

↑ Back to top

⚙️ Templates

↑ Back to top

🔒 Privacy choices

This repo intentionally uses placeholders:

Placeholder Meaning
192.168.x.x Home LAN address range
100.x.x.x Tailscale address range
NAS-Share Example SMB share name
your_mac_username Example SSH username

Real local config should stay outside git.

↑ Back to top

⚖️ License

This project is licensed under the MIT License.

↑ Back to top

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages