init
This commit is contained in:
198
p.md
Normal file
198
p.md
Normal file
@@ -0,0 +1,198 @@
|
||||
#!/data/data/com.termux/files/usr/bin/bash
|
||||
# Termux Ultimate Remote Dev Environment Setup
|
||||
# Run: bash setup-termux.sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Termux Remote Dev Environment Setup ==="
|
||||
|
||||
# Update & upgrade
|
||||
pkg update -y && pkg upgrade -y
|
||||
|
||||
# Grant storage access
|
||||
termux-setup-storage
|
||||
|
||||
# ── Core Utilities ──
|
||||
pkg install -y \
|
||||
coreutils findutils grep sed gawk \
|
||||
curl wget openssl-tool \
|
||||
git git-lfs \
|
||||
tar zip unzip p7zip \
|
||||
man less tree ncurses-utils \
|
||||
termux-api termux-tools
|
||||
|
||||
# ── SSH Server & Client ──
|
||||
pkg install -y openssh mosh autossh sshpass
|
||||
# Generate host keys
|
||||
ssh-keygen -A 2>/dev/null || true
|
||||
# Generate user key pair (no passphrase for convenience)
|
||||
[ ! -f ~/.ssh/id_ed25519 ] && ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""
|
||||
echo "→ Start SSH server with: sshd -p 8022"
|
||||
echo "→ Connect from PC with: ssh -p 8022 $(whoami)@<tablet-ip>"
|
||||
|
||||
# ── Remote Desktop (VNC + X11) ──
|
||||
pkg install -y x11-repo
|
||||
pkg install -y \
|
||||
tigervnc xorg-server \
|
||||
openbox xfce4 xfce4-terminal \
|
||||
aterm dbus
|
||||
# VNC setup
|
||||
mkdir -p ~/.vnc
|
||||
echo "→ Set VNC password:"
|
||||
vncpasswd || true
|
||||
cat > ~/start-vnc.sh << 'VNCEOF'
|
||||
#!/bin/bash
|
||||
export DISPLAY=:1
|
||||
vncserver :1 -geometry 1920x1080 -depth 24 -localhost no
|
||||
# Start XFCE desktop
|
||||
export PULSE_SERVER=127.0.0.1
|
||||
dbus-launch --exit-with-session startxfce4 &
|
||||
echo "VNC running on port 5901"
|
||||
VNCEOF
|
||||
chmod +x ~/start-vnc.sh
|
||||
|
||||
cat > ~/stop-vnc.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
vncserver -kill :1 2>/dev/null
|
||||
echo "VNC stopped"
|
||||
EOF
|
||||
chmod +x ~/stop-vnc.sh
|
||||
|
||||
# ── Code Server (VS Code in Browser) ──
|
||||
pkg install -y nodejs-lts yarn
|
||||
npm install -g code-server@latest || {
|
||||
echo "code-server npm install failed, trying binary..."
|
||||
curl -fsSL https://code-server.dev/install.sh | sh
|
||||
}
|
||||
mkdir -p ~/.config/code-server
|
||||
cat > ~/.config/code-server/config.yaml << 'CSEOF'
|
||||
bind-addr: 0.0.0.0:8080
|
||||
auth: password
|
||||
password: changeme123
|
||||
cert: false
|
||||
CSEOF
|
||||
echo "→ Start code-server with: code-server"
|
||||
echo "→ Access at http://<tablet-ip>:8080"
|
||||
|
||||
# ── Editors & Dev Tools ──
|
||||
pkg install -y \
|
||||
neovim nano micro \
|
||||
tmux screen \
|
||||
htop bottom \
|
||||
jq yq fzf fd ripgrep bat exa \
|
||||
direnv
|
||||
|
||||
# Tmux config for remote work
|
||||
cat > ~/.tmux.conf << 'TMUXEOF'
|
||||
set -g mouse on
|
||||
set -g history-limit 50000
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -ga terminal-overrides ",*256col*:Tc"
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
set -g status-style 'bg=#333333 fg=#ffffff'
|
||||
set -g status-right '#H | %Y-%m-%d %H:%M'
|
||||
set -g escape-time 10
|
||||
# Better prefix
|
||||
unbind C-b
|
||||
set -g prefix C-a
|
||||
bind C-a send-prefix
|
||||
# Easy splits
|
||||
bind | split-window -h -c "#{pane_current_path}"
|
||||
bind - split-window -v -c "#{pane_current_path}"
|
||||
TMUXEOF
|
||||
|
||||
# Neovim basic config
|
||||
mkdir -p ~/.config/nvim
|
||||
cat > ~/.config/nvim/init.lua << 'NVIMEOF'
|
||||
vim.opt.number = true
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.clipboard = "unnamedplus"
|
||||
vim.opt.termguicolors = true
|
||||
vim.opt.mouse = "a"
|
||||
vim.opt.signcolumn = "yes"
|
||||
NVIMEOF
|
||||
|
||||
# ── Languages & Runtimes ──
|
||||
pkg install -y \
|
||||
python python-pip \
|
||||
rust \
|
||||
golang \
|
||||
clang make cmake \
|
||||
ruby
|
||||
|
||||
# Python essentials
|
||||
pip install --upgrade pip
|
||||
pip install ipython httpie
|
||||
|
||||
# ── Networking & Tunneling ──
|
||||
pkg install -y \
|
||||
nmap net-tools iproute2 dnsutils \
|
||||
cloudflared
|
||||
|
||||
# Cloudflare tunnel script (expose without port forwarding)
|
||||
cat > ~/start-tunnel.sh << 'TUNEOF'
|
||||
#!/bin/bash
|
||||
# Expose code-server publicly via Cloudflare tunnel
|
||||
echo "Starting Cloudflare tunnel for code-server on :8080..."
|
||||
cloudflared tunnel --url http://localhost:8080
|
||||
TUNEOF
|
||||
chmod +x ~/start-tunnel.sh
|
||||
|
||||
# ── File Sharing ──
|
||||
pkg install -y rsync
|
||||
|
||||
# Simple HTTP file server alias
|
||||
cat >> ~/.bashrc << 'BASHEOF'
|
||||
|
||||
# ── Aliases ──
|
||||
alias ll='exa -la --icons 2>/dev/null || ls -la'
|
||||
alias cat='bat --paging=never 2>/dev/null || cat'
|
||||
alias serve='python -m http.server 8888'
|
||||
alias myip='curl -s ifconfig.me && echo'
|
||||
alias sshstart='sshd -p 8022 && echo "SSH running on port 8022"'
|
||||
alias vncstart='~/start-vnc.sh'
|
||||
alias vncstop='~/stop-vnc.sh'
|
||||
alias codestart='code-server &'
|
||||
alias tunnel='~/start-tunnel.sh'
|
||||
|
||||
# ── Environment ──
|
||||
export EDITOR=nvim
|
||||
export VISUAL=nvim
|
||||
export GPG_TTY=$(tty)
|
||||
|
||||
BASHEOF
|
||||
|
||||
# ── Git Config ──
|
||||
git config --global init.defaultBranch main
|
||||
git config --global pull.rebase true
|
||||
git config --global core.editor nvim
|
||||
|
||||
# ── Summary ──
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " ✅ Termux Remote Dev Environment Ready!"
|
||||
echo "============================================"
|
||||
echo ""
|
||||
echo " REMOTE ACCESS OPTIONS:"
|
||||
echo " ─────────────────────"
|
||||
echo " SSH: sshstart → connect on port 8022"
|
||||
echo " VS Code: codestart → browser at :8080"
|
||||
echo " VNC Desktop: vncstart → VNC client at :5901"
|
||||
echo " Tunnel: tunnel → public URL via Cloudflare"
|
||||
echo ""
|
||||
echo " QUICK COMMANDS:"
|
||||
echo " ─────────────"
|
||||
echo " tmux → terminal multiplexer"
|
||||
echo " nvim → editor"
|
||||
echo " serve → HTTP file server on :8888"
|
||||
echo " myip → show public IP"
|
||||
echo ""
|
||||
echo " ⚠️ Change code-server password in:"
|
||||
echo " ~/.config/code-server/config.yaml"
|
||||
echo ""
|
||||
echo " Run: source ~/.bashrc"
|
||||
echo "============================================"
|
||||
Reference in New Issue
Block a user