GeoHub is a free and open source geography guessing game inspired by Geoguessr.
For those unfamilar with Geoguessr, it uses Google Streetview to place you in a random location and you have to guess where you think you are in the world. You can move around and use clues around you such as Language, Architecture, Road Signs, etc... to make your guess. The objective is clear, the closer you are to the correct location, the more points you get.
Even though you don't need to pay to play GeoHub, the game still costs money to run and relies on community support to stay running while it grows. If you enjoy playing, please support by donating as all donations will go towards paying for more Google Maps API credits + server costs.
If you still want to help support GeoHub but aren't able to donate, you can also create your own Google Maps API key which gives you $200 USD worth of credit every month. Unless you are playing 24/7 this will be more than enough credits for a single person, meaning you won't have to pay. See the FAQ section for instructions on how to setup your own key.
Go to the website and create an account, it is free and takes 15 seconds. If you don't want to create your own account, you can login to the guest account using the credentials below:
guest@geohub.com
geohub
Once you have an account, you are ready to play! You can click play on any of the offical maps on the home page such as:
Or you can click on the Find Maps
link on the sidebar to navigate between all the different supported country maps and community favorites!
If you get bored of playing the standard gamemodes, you can try out the other gamemodes available:
Want to play with friends? Create a challenge link by following the steps below:
Play Now
to open up the settings viewSingle Player
select Challenge
Tired of having the locations picked for you? Create your own map by following the steps below:
My Maps
link on the sidebarCreate New Map
buttonNext
to setup your custom mapSave Map
button which will let you save and optionally publish your mapCustom API Key
field and click Save Changes
. Now all you have to do is refresh the page and enojoy playing as much as you want!openssl rand -base64 32
NEXT_PUBLIC_GOOGLE_API_KEY="your-google-maps-key"
MONGO_URI="your-mongodb-connection-string"
DB_NAME="your-mongodb-database-name"
NEXTAUTH_SECRET="any-random-string"
CRYPTR_SECRET="any-random-string"
NEXTAUTH_URL="http://localhost:3000"
Next, you can install the required dependencies and start the local dev server:
yarn
yarn dev
Now, you should be able to see the site running locally at http://localhost:3000
You can also easily run the app using Docker and Docker Compose. To do this, first clone the repository. Get your Google Maps API key as explained above. Generate two random secrets for NextAuth and Cryptr with the openssl rand -base64 32
command. Then, create a .env
file in the root of the project with the following content:
NEXT_PUBLIC_GOOGLE_API_KEY="your-google-maps-key"
MONGO_INITDB_ROOT_USERNAME="root"
MONGO_INITDB_ROOT_PASSWORD="example" # Change this to a strong password
DB_NAME="geohub"
NEXTAUTH_SECRET="your-first-random-secret"
CRYPTR_SECRET="your-second-random-secret"
Then, run the following command to start the app:
sudo docker compose up # Add -d flag to run in headless mode
Now, you should be able to see the site running locally at http://localhost:3000