πŸ“

Quick Start: Your First 20 Minutes

Go from zero to running GeoServer with your own fork in about 20 minutes.

Follow these steps to go from zero to running GeoServer with your own fork. Commands shown with $ are run on your host machine, commands with # are run inside the container.

Step 1: Get DevDocker (3 minutes)

Clone the DevDocker repository and start the environment:

$ git clone https://github.com/geoguru-africa/DevDocker.git
$ cd DevDocker
$ cp .env.example .env
$ docker compose up -d

Verify it’s running:

$ docker ps

You should see devdocker in the list of running containers.

Step 2: Set Up SSH Access (2 minutes)

Run the SSH setup utility:

$ ./scripts/setup-ssh-keys.sh

This script will:

  • Detect your existing SSH keys
  • Let you select which key to use
  • Configure the container for SSH access

Your key is only copied into the container at startup, and Step 1 already started it β€” so restart it now to pick up the key you just configured:

$ docker compose restart

Then connect to the container:

$ ssh -p 2222 root@localhost

You’ll see a prompt like # (inside the container)

Step 3: Fork GeoServer on GitHub (2 minutes)

  1. Navigate to https://github.com/geoserver/geoserver
  2. Click the “Fork” button in the top-right corner
  3. Select your GitHub account as the destination (owner)
  4. For simplicity and consistency with this documentation, it is highly recommended that you keep the repository name the same as the upstream (e.g. geoserver)
  5. Wait for GitHub to create your fork (usually takes 30-60 seconds)

Step 4: Clone Your Fork (5 minutes)

Inside the container:

# git clone https://github.com/YOUR_USERNAME/geoserver.git
# cd geoserver

Configure upstream remote:
# git remote add upstream https://github.com/geoserver/geoserver.git
# git fetch upstream --tags

Either: checkout a recent release
# git checkout 2.28.2

Or: stick with main for cutting-edge development
# git checkout main

Step 5: Build GeoServer (10-15 minutes first time, 2-3 minutes after)

# build-geoserver.sh

Note: The first build will download all required dependencies, which typically takes 10-15 minutes depending on your internet connection. After the initial build, Maven caches these dependencies locally, so subsequent builds complete much faster in just 2-3 minutes.

Step 6: Start GeoServer (1 minute)

# start-geoserver.sh

Wait for startup (usually 30-60 seconds). You’ll see: “Server startup in [X] milliseconds”

Step 7: Access GeoServer (1 minute)

Open your browser and navigate to:

You should see the GeoServer web interface with demo layers and sample data.

Congratulations! You now have a fully functional GeoServer development environment. You’re ready to make your first contribution.

Troubleshooting

If you encounter issues during setup, refer to the comprehensive troubleshooting guide in the DevDocker repository:

  • In the cloned repository: See README.md and the docs/troubleshooting/ guides
  • Online: Visit the DevDocker GitHub repository for the latest troubleshooting tips

Common issues covered include SSH connection problems, port conflicts, build failures, memory issues, git clone interruptions, and GeoServer startup problems.