drdnicole-youtube-manager, the display label is now "IEXDG Cloud Platform." Future VMs, buckets, and service accounts all live under the renamed project without any re-auth.which gcloud && gcloud --version
brew install --cask google-cloud-sdk
brew.sh using the one-line script on that page. Then rerun this command.echo 'source "$(brew --prefix)/share/google-cloud-sdk/path.zsh.inc"' >> ~/.zshrc echo 'source "$(brew --prefix)/share/google-cloud-sdk/completion.zsh.inc"' >> ~/.zshrc source ~/.zshrc
gcloud --version again. Should now print the SDK version. If it does, move on.gcloud auth login
gcloud config set project drdnicole-youtube-manager
gcloud config set compute/region us-east4 gcloud config set compute/zone us-east4-b
gcloud config list
gcloud beta billing projects describe drdnicole-youtube-manager
console.cloud.google.com/billing, sign in, and link an active billing account to project "IEXDG Cloud Platform." Stop here and send me a message. Do not proceed.gcloud beta billing accounts list
gcloud services enable \ compute.googleapis.com \ iam.googleapis.com \ secretmanager.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ cloudresourcemanager.googleapis.com
gcloud services list --enabled --filter="config.name:compute OR config.name:secretmanager"
gcloud compute addresses create iexdg-nexus-ip \ --region=us-east4 \ --network-tier=STANDARD \ --description="Static IP for IEXDG Nexus VM, Apr 22 2026"
gcloud compute addresses describe iexdg-nexus-ip --region=us-east4 --format="value(address)"
gcloud compute instances create iexdg-nexus-vm \ --zone=us-east4-b \ --machine-type=e2-small \ --image-family=ubuntu-2404-lts-amd64 \ --image-project=ubuntu-os-cloud \ --boot-disk-size=30GB \ --boot-disk-type=pd-standard \ --address=iexdg-nexus-ip \ --network-tier=STANDARD \ --tags=http-server,https-server,iexdg-nexus \ --labels=environment=prod,owner=iexdg,purpose=nexus,created=apr22-2026 \ --metadata=enable-oslogin=TRUE \ --shielded-secure-boot \ --shielded-vtpm \ --shielded-integrity-monitoring
--machine-type=e2-small · 2 vCPU, 2 GB RAM, ~$13/mo--boot-disk-size=30GB · standard persistent disk, ~$1.20/mo at 30 GB--tags=http-server,https-server · these tags are what the default firewall rules look for--labels · for billing reports and later filtering. Never affects the VM itself.--metadata=enable-oslogin=TRUE · SSH access tied to your Google identity. Safer than managing keys manually.--shielded-* · three flags that enable Secure Boot, vTPM, and integrity monitoring. Zero cost, stronger security posture.gcloud compute firewall-rules list --filter="network:default"
gcloud compute firewall-rules create iexdg-allow-https \ --direction=INGRESS \ --action=ALLOW \ --rules=tcp:443 \ --source-ranges=0.0.0.0/0 \ --target-tags=https-server \ --description="HTTPS to IEXDG Nexus VM for public endpoints"
gcloud compute ssh iexdg-nexus-vm --zone=us-east4-b
uname -a and press enter. Should print a line starting with "Linux iexdg-nexus-vm ... Ubuntu ... 24.04 ...". You are in the VM.exit to leave the VM and return to your Mac Terminal when done exploring.gcloud compute ssh iexdg-nexus-vm --zone=us-east4-b # Once inside the VM, run everything below as one block: sudo apt-get update sudo apt-get upgrade -y sudo apt-get install -y python3 python3-pip python3-venv git curl wget htop ufw unattended-upgrades sudo dpkg-reconfigure -f noninteractive unattended-upgrades python3 --version pip3 --version git --version
sudo ufw allow OpenSSH sudo ufw allow 443/tcp sudo ufw --force enable sudo ufw status
exit when done. You are back on your Mac.gcloud compute ssh iexdg-nexus-vm --zone=us-east4-b
echo "[1] Uptime:" && uptime
echo "[2] Disk:" && df -h / | tail -1
echo "[3] Outbound HTTPS (pings google.com):" && curl -sI https://www.google.com | head -1
echo "[4] Python HTTPS (pings GitHub API):" && python3 -c "import urllib.request,json; r=urllib.request.urlopen('https://api.github.com').read(); print(' OK bytes:', len(r))"
exit.# Replace THE.IP with the IP you saved in Step 5 ping -c 3 THE.IP
gcloud billing budgets create \ --billing-account=YOUR_BILLING_ACCOUNT_ID \ --display-name="IEXDG Cloud Platform Monthly" \ --budget-amount=50USD \ --threshold-rule=percent=0.5 \ --threshold-rule=percent=0.9 \ --threshold-rule=percent=1.0 \ --filter-projects=drdnicole-youtube-manager
gcloud compute instances stop iexdg-nexus-vm --zone=us-east4-b
gcloud compute instances start iexdg-nexus-vm --zone=us-east4-b
gcloud compute instances delete iexdg-nexus-vm --zone=us-east4-b gcloud compute addresses delete iexdg-nexus-ip --region=us-east4
IEXDG Nexus code, Caddy reverse proxy, workers, and cron deploys come next. That is a separate build guide when you are ready. Today's checklist gets you to the foundation.