Skip to content

From Chromebook to Dev Machine - Setting up a Modern GIS & Python Stack

Chromebooks are no longer just for web browsing. With the built-in Linux subsystem, they are now capable of running a professional development environment. This guide walks you through setting up a “Gold Standard” stack: VS Code, Git/GitHub via SSH, Python (via uv), and Containerized PostGIS (via Podman).

First, you need to unlock the ability to run Linux apps on your ChromeOS device.

Open Settings > Advanced > Developers.

Turn on the Linux development environment.

Once the terminal opens, update your package list:

Terminal window
sudo apt update && sudo apt upgrade -y

Don’t settle for the web-based editors; get the full desktop experience.

Install Git: sudo apt install git -y.

VS Code: Download the .deb file (x64 for Intel/AMD, ARM64 for mobile chips) from the official site. Right-click it in your Files app and select Install with Linux.

SSH Keys: Generate a key for secure GitHub access:

Terminal window
ssh-keygen -t ed25519 -C "your_email@example.com"
cat ~/.ssh/id_ed25519.pub

Copy that output and add it to your GitHub Settings > SSH and GPG keys.

Standard pip and make are fine, but for speed and clarity, we use uv (an extremely fast Python manager) and just (a modern command runner).

Terminal window
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install just
sudo apt install just -y

With these installed, you can initialize a project with uv init and use a justfile to automate your chores. Instead of typing source .venv/bin/activate && python main.py, you simply type just run.

Since GIS work requires a database, we use Podman. It is a great “rootless” alternative to Docker that runs smoothly inside the Chromebook’s Linux container.

Install: sudo apt install podman -y

Alias it: Add alias docker=podman to your .bashrc so your existing scripts work without changes.

Spin up PostGIS:

Terminal window
podman pull postgis/postgis

5. Putting it All Together: The Genesis Template

Section titled “5. Putting it All Together: The Genesis Template”

The ultimate goal is to clone a “Gold Standard” template (like the genesis-template) and be ready to code in seconds.

Terminal window
# Clone your template
git clone git@github.com:your-username/your-template.git
cd your-template
# Sync dependencies and start the stack
uv sync
just start

Your Chromebook is now a full-fledged GIS development workstation, running a FastAPI backend, a PostGIS database, and a high-speed Python environment.

  • Port Forwarding: When you run a server on port 8000, ChromeOS automatically maps it. You can access it at localhost:8000 in the Chrome browser.
  • Storage: If you plan on running multiple containers, go to your Linux settings and increase the disk size to at least 20–30GB.