A gallery of road signs from North America. Hosted as a Hugo static website, with content generated at build time from a PostgreSQL database using Go.
To run locally, you will need to have the following tools installed:
- Hugo.
- NodeJS v.20.11.0 or later to manage Javascript and CSS assets.
- Go v1.20 or above to run the Go program to generate the content.
The other sub-projects have their own dependencies, and are listed below in the Sub Projects section.
| Variable Name | Description |
|---|---|
| DB_USER | User with permissions to read from the database |
| DB_HOST | Host name of PostgreSQL server |
| DB_PASSWORD | Password for the user |
| DB_NAME | Database name that hosts sign database |
| DB_PORT | Port to connect to the PostgreSQL server |
| HUGO_PATH | Path to output content to. Should correspond with the directory that Hugo reads content from. |
| Variable Name | Description |
|---|---|
| CLOUDFLARE_R2_USER | Cloudflare R2 API User Id |
| CLOUDFLARE_R2_SECRET | Cloudflare R2 API Secret Key |
| CLOUDFLARE_R2_ENDPOINT | Cloudflare R2 Endpoint Url |
| Variable Name | Description |
|---|---|
| HUGO_PARAMS_SEARCHURL | Base URL for the search API |
| HUGO_PARAMS_RANDOMURL | Base URL for Random Sign API |
| HUGO_PARAMS_SEARCHINDEX | Search index name for signs |
| HUGO_PARAMS_SEARCHINDEXHIGHWAY | Search index name for highways |
| HUGO_PARAMS_SEARCHKEY | Token with read access to the search index |
| HUGO_PARAMS_SIGNBASEURL | Base URL for the Roadsign Picture hosting |
| HUGO_PARAMS_SHIELDBASEURL | Base URL for the Highway Shields hosting |
| HUGO_PARAMS_MAPBOXTOKEN | API Token for Mapbox |
| HUGO_PARAMS_MAPTILE | Url for Sign Vector Tiles |
The all the necessary CSS and JavaScript build tools will need to be installed the first name:
npm installTo export content, set the correct environment variables and run the following command:
go run main.goTo run the website locally, set the correct environment variables and run the following command:
hugo serveIf making changes to the CSS you will want to run the Tailwind service in a different terminal window:
npm run tailwind