Skip to content

Instantly share code, notes, and snippets.

@anthonywu
Last active January 12, 2026 08:16
Show Gist options
  • Select an option

  • Save anthonywu/b08989a8b6e15ea245214aeddfa01d98 to your computer and use it in GitHub Desktop.

Select an option

Save anthonywu/b08989a8b6e15ea245214aeddfa01d98 to your computer and use it in GitHub Desktop.
Android Debian VM: System Setup Guide

System Setup Guide

This document outlines the steps taken to initialize the development environment.

Dependency Graph

  1. System Tools: apt, zsh, emacs, ssh
  2. Infrastructure: Docker, Caddy, Tailscale
  3. Runtimes: Python (via uv), Bun
  4. Shell Environment: Oh My Zsh
  5. Applications: Next.js

Step-by-Step Instructions

1. Shell & Editor Setup

Configure the core development environment.

# Install Zsh and Emacs
sudo apt install zsh emacs -y

# Install Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Note: Shell uses robbyrussell theme with git plugin. Emacs is available for terminal/GUI editing.

2. SSH Configuration

Ensure secure access and identity:

  • Public keys should be added to ~/.ssh/authorized_keys.
  • Generate new keys if needed: ssh-keygen -t rsa -b 4096.

3. Docker & Infrastructure

Before installation, configure the external repositories:

A. Docker Repository

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

# Installation
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker

B. Caddy Repository

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update

# Installation
sudo apt install caddy

4. Networking (Tailscale)

Tailscale is used for secure mesh networking and exposing local services.

# Installation (standard curl script)
curl -fsSL https://tailscale.com/install.sh | sh

# Expose local development ports
tailscale serve --bg 8000

5. Runtimes (Python & Bun)

Both runtimes are installed via direct shell scripts for the latest versions.

# Python & Tool Management via UV
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python list
uv run python3.13 -m http.server

# Bun JavaScript Runtime
curl -fsSL https://bun.sh/install | bash
bunx create-next-app ./demo-next
cd demo-next
bun install
bun dev --port 8000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment