{"id":25723506,"url":"https://github.com/cs-si/s2_gri_website","last_synced_at":"2026-03-01T08:36:15.137Z","repository":{"id":148385475,"uuid":"608746855","full_name":"CS-SI/s2_gri_website","owner":"CS-SI","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-19T10:48:50.000Z","size":10430,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"dev","last_synced_at":"2025-02-25T20:40:50.886Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CS-SI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-02T16:49:23.000Z","updated_at":"2023-03-02T16:54:57.000Z","dependencies_parsed_at":"2025-02-25T20:47:10.488Z","dependency_job_id":null,"html_url":"https://github.com/CS-SI/s2_gri_website","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CS-SI/s2_gri_website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-SI%2Fs2_gri_website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-SI%2Fs2_gri_website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-SI%2Fs2_gri_website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-SI%2Fs2_gri_website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CS-SI","download_url":"https://codeload.github.com/CS-SI/s2_gri_website/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-SI%2Fs2_gri_website/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29965412,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T06:55:38.174Z","status":"ssl_error","status_checked_at":"2026-03-01T06:53:04.810Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-25T20:36:55.481Z","updated_at":"2026-03-01T08:36:15.111Z","avatar_url":"https://github.com/CS-SI.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# STAC Browser\n\nThis is a [Spatio-Temporal Asset Catalog (STAC)](https://github.com/radiantearth/stac-spec) browser for static catalogs.\nMinimal support for APIs is implemented, but it not the focus of the Browser and may lead to issues.\nIt attempts to surface all included data in a user-centric way (an approach\nwhich can inform how data is represented in the evolving spec). It is\nimplemented as a single page application (SPA) for ease of development and to\nlimit the overall number of catalog reads necessary when browsing (as catalogs\nmay be nested and do not necessarily contain references to their parents).\n\nVersion: **3.0.0-beta.8** (supports all STAC versions between 0.6.0 and 1.0.0)\n\nThis package has also been published to npm as [`@radiantearth/stac-browser`](https://www.npmjs.com/package/@radiantearth/stac-browser).\n\nIt's not officially supported, but you may also be able to use it for\ncertain *OGC API - Records* and *OGC API - Features* compliant servers.\n\n**Table of Contents:**\n- [Examples](#examples)\n- [Get Started](#get-started)\n  - [Private query parameters](#private-query-parameters)\n  - [Migrate from old versions](#migrate-from-old-versions)\n- [Customize](#customize)\n  - [Options](#options)\n  - [Languages](#languages)\n  - [Themes](#themes)\n  - [Customize through root catalog](#customize-through-root-catalog)\n  - [Custom fields](#custom-fields)\n- [Docker](#docker)\n- [Contributing](#contributing)\n  - [Adding a new language](#adding-a-new-language)\n\n## Examples\n\nA demo instance is running at \u003chttps://radiantearth.github.io/stac-browser/\u003e.\n\nAn irregularly updated version of a deployment for a specific STAC API can be found at \u003chttps://mspc.lutana.de\u003e.\n\nThe catalog section of [STAC Index](https://stacindex.org) is also built on top of STAC Browser (currently v2).\n\n## Get Started\n\nFirst, you need to install all dependencies:\n```bash\nnpm install\n```\n\nBy default, STAC Browser will let you browse all catalogs on STAC Index.\n\nTo browse only your own static STAC catalog or STAC API, set the `catalogUrl` CLI parameter when running the dev server:\n\n```bash\nnpm start -- --open --catalogUrl=\"http://path/to/catalog.json\"\n```\nTo open a local file on your system, see the chapter [Using Local Files](local_files.md).\n\nIf you'd like to publish the STAC Browser instance use the following command:\n\n```bash\nnpm run build -- --catalogUrl=\"http://path/to/catalog.json\"\n```\n\nThis will only work on the root path of your domain though. If you'd like to publish in a sub-folder, \nyou can use the [`pathPrefix`](#pathprefix) option.\n\nAfter building, `dist/` will contain all assets necessary to\nhost the browser. These can be manually copied to your web host of choice.\n\nYou can customize STAC Browser, too. See the options and theming details below. If not stated otherwise, all options can either be specified via CLI or in the [config file](config.js).\n\n### Private query parameters\n\n***experimental***\n\nSTAC Browser supports \"private query parameters\", e.g. for passing an API key through. Any query parameter that is starting with a `~` will be stored internally, removed from the URL and be appended to STAC requests. This is useful for token-based authentication via query parameters.\n\nSo for example if your API requires to pass a token via the `API_KEY` query parameter, you can request STAC Browser as such:\n`https://examples.com/stac-browser/?~API_KEY=123` which will change the URL to `https://examples.com/stac-browser/` and store the token `123` internally. The request then will have the query parameter attached and the Browser will request e.g. `https://examples.com/stac-api/?API_KEY=123`.\n\nPlease note: If the server hosting STAC Browser should not get aware of private query parameters and you are having `historyMode` set to `history`, you can also append the private query parameters to the hash so that it doesn't get transmitted to the server hosting STAC Browser. \nIn this case use for example `https://examples.com/stac-browser/#?~API_KEY=123` instead of `https://examples.com/stac-browser/?~API_KEY=123`.\n\n### Migrate from old versions\n\nIf you are running an old (standalone) version of STAC Browser (v1 or v2) without heavy modifications,\nyou can usually migrate easily.\n\nThe old environment variables should be transitions out of usage. Instead please use the config file or CLI parameters.\nThe names of the variables have slightly changed:\n* `CATALOG_URL` =\u003e `catalogUrl` (make sure to append a `/` at the end of folders / API endpoints)\n* `STAC_PROXY_URL` =\u003e `stacProxyUrl` (same in CLI, different format in the config file)\n* `TILE_PROXY_URL` / `TILE_SOURCE_TEMPLATE` =\u003e `buildTileUrlTemplate` (this is not a 1:1 replacement, make sure to read the documentation for `buildTileUrlTemplate`)\n* `PATH_PREFIX` =\u003e `pathPrefix`\n* `HISTORY_MODE` =\u003e `historyMode`\n\nYou should also enable `redirectLegacyUrls` which makes sure that your old URLs are correctly parsed by STAC Browser v3 and links to the old version of STAC Browser don't get broken.\n\nAll other options you can customize to your liking.\n\nThen simply deploy STAC Browser to the same location where you hosted STAC Browser v1/v2 before.\n\n## Customize\n\n### Options\n\nAll the following options can be used as explained in the chapter \"Running\", either through the [config file](config.js), as CLI Parameter or as environment variable (deprecated).\nSome of them can also be set [through the root catalog](#customize-through-root-catalog).\n\n**The following options are available:**\n* [catalogUrl](#catalogurl)\n* [catalogTitle](#catalogtitle)\n* [allowExternalAccess](#allowexternalaccess)\n* [allowedDomains](#alloweddomains)\n* [apiCatalogPriority](#apicatalogpriority)\n* [detectLocaleFromBrowser](#detectlocalefrombrowser)\n* [storeLocale](#storelocale)\n* [locale](#locale)\n* [fallbackLocale](#fallbacklocale)\n* [supportedLocales](#supportedlocales)\n* [stacLint](#staclint)\n* [historyMode](#historymode)\n* [pathPrefix](#pathprefix)\n* [stacProxyUrl](#stacproxyurl)\n* [buildTileUrlTemplate](#buildtileurltemplate)\n* [useTileLayerAsFallback](#usetilelayerasfallback)\n* [displayGeoTiffByDefault](#displaygeotiffbydefault)\n* [redirectLegacyUrls](#redirectlegacyurls)\n* [itemsPerPage](#itemsperpage)\n* [maxPreviewsOnMap](#maxpreviewsonmap)\n* [cardViewMode](#cardviewmode)\n* [showThumbnailsAsAssets](#showthumbnailsasassets)\n* [defaultThumbnailSize](#defaultthumbnailsize)\n* [crossOriginMedia](#crossoriginmedia)\n* [requestHeaders](#requestheaders)\n* [requestQueryParameters](#requestqueryparameters)\n* [authConfig](#authconfig)\n* [preprocessSTAC](#preprocessstac)\n\n#### catalogUrl\n\nThe URL of the catalog to show by default.\n\nIf you don't point to a specific file make sure to append a `/` at the end of the URL as the trailing slash is significant. Without it, the last path component is considered to be a \"file\" name to be removed to get at the \"directory\" that is used as the base for resolving relative URLs. You should also make sure that your STAC files are following this rule as otherwise you may still run into issues with STAC Browser.\n\nIf `catalogUrl` is empty or set to `null` STAC Browser switches to a mode where it defaults to a screen where you can either insert a catalog URL or select a catalog from [stacindex.org](https://stacindex.org).\n\n#### catalogTitle\n\nThe default title shown if no title can be read from the root STAC catalog.\n\n#### allowExternalAccess\n\nThis allows or disallows loading and browsing external STAC data.\nExternal STAC data is any data that is not a children of the given `catalogUrl`.\nMust be set to `true` if a `catalogUrl` is not given as otherwise you won't be able to browse anything.\n\n#### allowedDomains\n\nYou can list additional domains (e.g. `example.com`) that private data is sent to, e.g. authentication data.\n\n#### apiCatalogPriority\n\nFor STAC APIs there are two potential sources for catalogs and collections:\n1. Collections loaded from `/collections` and detected through the `data` link\n2. Childs (i.e. Catalogs and Collections) loaded from various sources and detected through the `child` links\n\nBy default, STAC Browser loads and shows data from both sources, but tries to eliminate duplicates.\nIf you only want to show the data from one of the sources, you can use this option.\nThe following options are available:\n- `collections`: Show only collections\n- `childs`: Show only children\n- `null`: Default behavior\n\n#### detectLocaleFromBrowser\n\nIf set to `true`, tries to detect the preferred language of the user from the Browser.\nOtherwise, defaults to the language set for `locale`.\n\n#### storeLocale\n\nIf set to `true`, stores the locale selected by the user in the `localeStorage` of the browser.\nOtherwise, doesn't store the locale across browser sessions.\n\n#### locale\n\nThe default language to use for STAC Browser, defaults to `en` (English).\nThe language given here must be present in `supportedLocales`.\n\n#### fallbackLocale\n\nThe language to use if individual phrases are not available in the default language, defaults to `en` (English).\nThe language given here must be present in `supportedLocales`.\n\n#### supportedLocales\n\nA list of languages to show in the STAC Browser UI.\nThe languages given here must have a corresponding JS and JSON file in the `src/locales` folder,\ne.g. provide `en` (English) for the files in `src/locales/en`.\n\nIn CLI, please provide the languages separated by a space, e.g. `--supportedLocales en de fr it`\n\nPlease note that only left-to-right languages have been tested.\nI'd need help to test support for right-to-left languages.\n\n#### stacLint\n\n***experimental***\n\nEnables or disables a feature that validates the STAC catalog when opening the \"Source Data\" popup.\nValidation uses the external service [staclint.com](https://staclint.com).\n\nValidation is automatically disabled in the following cases:\n- the host of a catalog is `localhost`, `127.0.0.1` and `::1`\n- [private query parameters](#private-query-parameters) have been set\n- `stacProxyUrl` is set\n\n#### historyMode\n\n***build-only option***\n\nSTAC Browser defaults to using [HTML5 History Mode](https://v3.router.vuejs.org/guide/essentials/history-mode.html#html5-history-mode),\nwhich can cause problems on certain web hosts. To use _hash mode_, set `--historyMode=hash` when running or building.\nThis will be compatible with S3, stock Apache, etc.\n\n#### pathPrefix\n\n***build-only option***\n\nIf you don't deploy the STAC Browser instance at the root path of your (sub) domain, then you need to set the path prefix\nwhen building (or running) STAC Browser.\n\n```bash\nnpm run build -- --pathPrefix=\"/browser/\"\n```\n\nThis will build STAC Browser in a way that it can be hosted at `https://example.com/browser` for example.\nUsing this parameter for the dev server will make STAC Browser available at `http://localhost:8080/browser`.\n\n#### stacProxyUrl\n\n***experimental***\n\nSetting the `stacProxyUrl` allows users to modify the URLs contained in the catalog to point to another location.\nFor instance, if you are serving a catalog on the local file system at `/home/user/catalog.json`, but want to serve\nthe data out from a server located at `http://localhost:8888/`, you can use:\n\n```bash\nnpm start -- --open --stacProxyUrl=\"/home/user;http://localhost:8888\"\n```\n\nNotice the format of the value:\n* In CLI it is the original location and the proxy location separated by the `;` character, i.e. `{original};{proxy}`.\n* In the config file it is a two-element array with the original location as first element and the proxy location as the second element. Set to `null` to disable (default).\n\nIn this example, any href contained in the STAC (including link or asset hrefs) will replace any occurrence of `/home/user/` with `http://localhost:8888`.\n\nThis can also be helpful when proxying a STAC that does not have cors enabled;\nby using stacProxyUrl you can proxy the original STAC server with one that enables cors and be able to browse that catalog.\n\n#### buildTileUrlTemplate\n\nThe option controls the tile layer that is used to render imagery such as (cloud-optimized) GeoTiffs.\n\nSee the [documentation for the corresponding stac-layer option](https://github.com/stac-utils/stac-layer#buildtileurltemplate) for details.\n\nPlease note that this option can only be provided through a config file and is not available via CLI.\n\nIf the option `useTileLayerAsFallback` is set to `true`, the tile server is only used as a fallback.\n\n**Note:** This option replaces the v2 options `TILE_SOURCE_TEMPLATE` and `TILE_PROXY_URL`.\nThe v3-dev option `tileSourceTemplate` has been removed in favor of this option.\n\n#### useTileLayerAsFallback\n\nDepending on this option, either client-side or server-side rendering of imagery such as (cloud-optimized) GeoTiffs can be enabled/disabled.\n\nIf `buildTileUrlTemplate` is given server-side rendering of GeoTiffs is enabled. \nIf server-side rendering should only be used as a fallback for client-side rendering, enable the boolean `useTileLayerAsFallback` option.\n\nTo clarify the behavior, please have a look at the following table:\n\n| `useTileLayerAsFallback` | `buildTileUrlTemplate` | primary imagery renderer | fallback  imagery renderer |\n| ----- | ---------------------- | ----------- | ----------- |\n| true  | function | client-side | tile-server |\n| false | function | tile-server | none        |\n| true  | null     | client-side | none        |\n| false | null     | none        | none        |\n\nBy default, client-side rendering is enabled. A server-side fallback is provided via the [tiles.rdnt.io](https://github.com/radiantearth/tiles.rdnt.io) project, which serves publicly accessible GeoTiffs as tile layers.\n\n#### displayGeoTiffByDefault\n\nIf set to `true`, the map also shows non-cloud-optimized GeoTiff files by default. Otherwise (`false`, default), it only shows COGs and you can only enforce showing GeoTiffs to be loaded with the \"Show on map\" button but they are never loaded automatically.\nLoading non-cloud-optimized GeoTiffs only works reliably for smaller files (\u003c 1MB). It may also work for larger files, but it is depending a lot on the underlying client hardware and software.\n\n#### redirectLegacyUrls\n\n***experimental***\n\nIf you are updating from on old version of STAC Browser, you can set this option to `true` to redirect users from the old \"unreadable\" URLs to the new human-readable URLs.\n\n#### itemsPerPage\n\nThe number of items requested and shown per page by default. Only applies to APIs that support the `limit` query parameter.\n\n#### maxPreviewsOnMap\n\nThe maximum number of previews (thumbnails or overviews) of items that will be shown on the map when on Catalog or Collection pages.\n\n#### cardViewMode\n\nThe default view mode for lists of catalogs/collections. Either `list` or `cards` (default). \n\n#### showThumbnailsAsAssets\n\nDefines whether thumbnails are shown in the lists of assets (`true`, default) or not.\n\n#### defaultThumbnailSize\n\nThe default size \\[Height, Width\\] for thumbnails which is reserved in card and list views so that the items don't jump when loading the images.\nThis can be overridden per thumbnail by declaring the [`proj:shape`](https://github.com/stac-extensions/projection/#item-properties-or-asset-fields) on the asset or link.\n\n#### crossOriginMedia\n\nThe value for the [`crossorigin` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin) that is sent when loading images through the browser. Default to `null`. If you encounter issues with loading images, you may want to try setting this to `anonymous`.\n\n#### requestHeaders\n\n***experimental***\n\nThe headers given in this option are added to all requests that are sent to the selected STAC catalog or API.\n\nExample: `{'Authorization': 'Bearer 134567984623223'}` adds a Bearer token to the HTTP headers.\n\nPlease note that this option can only be provided through a config file and is not available via CLI.\n\n#### requestQueryParameters\n\n***experimental***\n\nThe query parameters given in this option are added to all requests that are sent to the selected STAC catalog or API.\n\nExample: `{'f': 'json'}` adds a `f` query parameter to the HTTP URL, e.g. `https://example.com?f=json`.\n\nPlease note that this option can only be provided through a config file and is not available via CLI.\n\n#### authConfig\n\n***experimental***\n\nThis allows to enable a simple authentication form where a user can input a token, an API key or similar things.\nIt is disabled by default (`null`). If enabled, the token provided by the user can be used in the HTTP headers or in the query parameters of the requests.\n\nThere are four options you can set in the `authConfig` object:\n\n* `type` (string): `null` (disabled), `query` (use token in query parameters), or `header` (use token in HTTP request headers).\n* `key` (string): The query string parameter name or the HTTP header name respecively.\n* `formatter` (function|null): You can optionally specify a formatter for the query string value or HTTP header value respectively. If not given, the token is provided as provided by the user.\n* `description` (string|null): Optionally a description that is shown to the user. This should explain how the token can be obtained for example. CommonMark is allowed.\n    **Note:** You can leave the description empty in the config file and instead provide a localized string with the key `authConfig` -\u003e `description` in the file for custom phrases (`src/locales/custom.js`).\n\nPlease note that this option can only be provided through a config file and is not available via CLI.\n\n##### Example 1: HTTP Request Header Value\n\n```js\n{\n  type: 'header',\n  key: 'Authorization',\n  formatter: token =\u003e `Bearer ${token}`,\n  description: `Please retrieve the token from our [API console](https://example.com/api-console).\\n\\nFor further questions contact \u003cmailto:support@example.com\u003e.`\n}\n```\n\nFor a given token `123` this results in the following additional HTTP Header:\n`Authorization: Bearer 123`\n\n##### Example 2: Query Parameter Value\n\n```js\n{\n  type: 'query',\n  key: 'API_KEY'\n}\n```\n\nFor a given token `123` this results in the following query parameter:\n`https://example.com/stac/catalog.json?API_KEY=123`\n\n#### preprocessSTAC\n\n***experimental***\n\nThis allows to preprocess the STAC Items, Catalogs and Collections that are requested from the servers using a function.\nThe function receives two parameters:\n* `stac` (object of type `STAC`)\n* `state` (the vuex state)\n\nPlease note that this option can only be provided through a config file and is not available via CLI.\n\n##### Example: Update root catalog\n\nSome root catalogs in implementations don't have very useful titles, descriptions and are not a nice \"intro\" for new users.\nThus, it may make sense to change the root catalog to provide more useful information.\nOf course, ideally you'd want to update the root catalog itself, but until then you can use this.\n\n```js\npreprocessSTAC: (stac, state) =\u003e {\n    if (stac.getBrowserPath() === '/') {\n        stac.title = state.catalogTitle;\n        stac.description = 'This is a **much** more useful description for this catalog!';\n    }\n    return stac;\n}\n```\n\n### Languages\n\nSTAC Browser can be translated into other languages and can localize number formats, date formats etc.\n\nYou need to change the [`locale`](#locale) and [`supportedLocales`](#supportedlocales) settings to select the default language and the languages available to users.\n\nThe following languages are currently supported:\n- de: German (Germany, Switzerland)\n- es: Spanish\n- en: English\n- fr: French (Canada, France, Switzerland)\n- it: Italian (Italy, Switzerland)\n- ro: Romanian\n\nTo add your own language, please follow the guide below: [Adding a new langauge](#adding-a-new-language)\n\n#### Custom phrases\nYou can define custom phrases in the `custom.json`.\nThis is especially useful for phrases that are coming from non-standadized metadata fields.\nIf you've found metadata labels (e.g. \"Price\" and \"Generation Time\") that are not translated,\nyou can add it to the `custom.json`. For metadata fields you need to add it to a the object `fields`\nas it is the group for the metadata-related phrases.\nThere you can add as many phrases as you like. For example:\n```json\n{\n  \"fields\": {\n    \"Price\": \"Preis\",\n    \"Generation Time\": \"Generierungszeit\"\n  }\n}\n```\n\n### Themes\n\nYou can customize STAC Browser in the `src/theme` folder. It contains Sass files (a CSS preprocessor), which you can change to suit your needs.\n\nThe easiest solution is to start with the `variables.scss` file and customize the options given there.\nFor simplicity we just provide some common options as default, but you can also add and customize any Bootstrap variable,\nsee \u003chttps://getbootstrap.com/docs/4.0/getting-started/theming/\u003e for details.\n\nThe file `page.scss` contains some Sass declarations for the main sections of STAC Browser and you can adopt those to suit your needs.\n\nIf you need even more flexibility, you need to dig into the Vue files and their dependencies though.\n\n### Customize through root catalog\n\nYou can also provide a couple of the config options through the root catalog. \nYou need to provide a field `stac_browser` and then you can set any of the following options:\n- `apiCatalogPriority`\n- `authConfig` (except for the `formatter`)\n- `cardViewMode`\n- `crossOriginMedia`\n- `defaultThumbnailSize`\n- `displayGeoTiffByDefault`\n- `showThumbnailsAsAssets`\n- `stacLint` (can only be disabled)\n\n### Custom fields\n\nSTAC Browser supports some non-standardized fields that you can use to improve the user-experience.\n\n1. To the [Provider Object](https://github.com/radiantearth/stac-spec/blob/master/collection-spec/collection-spec.md#provider-object) you can add an `email` (or `mail`) field with an e-mail address and the mail will be shown in the Browser, too.\n2. A link with relation type `icon` and a Browser-supported media type in any STAC entity will show an icon in the header and the lists.\n\n## Docker\n\nWhen building the Dockerfile, you can add the [`catalogUrl`](#catalogurl) \nas a [build argument](https://docs.docker.com/engine/reference/commandline/build/#set-build-time-variables---build-arg). For example:\n\n```\ndocker build -t stac-browser:v1 --build-arg catalogURL=https://planetarycomputer.microsoft.com/api/stac/v1/ .\n```\n\nIf more arguments need to be passed to `npm run build`, you can add them to the Dockerfile as needed.\n\nTo run the container:\n\n```\ndocker run -p 8080:8080 stac-browser:v1\n```\n\n## Contributing\n\nWe are happy to review and accept Pull Requests.\nSTAC Browser is following the [STAC code of conduct](https://github.com/radiantearth/stac-spec/blob/master/CODE_OF_CONDUCT.md).\n\nSTAC Browser uses [Vue](https://vuejs.org/) and [vue-cli](https://cli.vuejs.org/), so you need a recent version of [NodeJS and npm](https://nodejs.org/en/) installed.\n\nYou can run the following commands (see also \"[Running](#running)\" above):\n- `npm run install`: Install the dependencies, this is required once at the beginning.\n- `npm start`: Start the development server\n- `npm run lint`: Lint the source code files\n- `npm run build`: Compile the source code into deployable files for the web. The resulting files can be found in the folder `dist` and you can then deploy STAC Browser on a web host.\n- `npm run i18n:fields`: Generates an updated version of the locales from the stac-fields package.\n\n### Adding a new language\n\nYou can translate STAC Browser into other languages.\nYou can also use one of the existing languages and provide an alternate version for a specifc country, e.g. a Australian English (en-AU) version of the US-English language pack (en).\n\n**Please follow this guide:**\n- Copy the `en` folder (or any other language without a country code that you want to base the translation on).\n- Name the new folder according to [RFC5646](https://www.rfc-editor.org/rfc/rfc5646).\n- Add the language to the list of supported locales ([`supportedLocales`](#supportedlocales)) in the `config.js` file.\n- Add the language to the [list of languages in this README file](#languages).\n- Add yourself to the list of code owners (`.github/CODEOWNERS`) for this language (we'll invite you to this repository after you've opened a PR). **Persons contributing languages are expected to maintain them long-term! If you are not able to maintain the language pack, please indicate so in the PR and we'll release it separately.**\n- Translate the `.json` files, most importantly `config.json`, `fields.json` and `texts.json`.\n  - Please note that you never need to translate any object keys!\n  - If you base your language on another existing language (e.g. create `en-IN` based on `en`) you can delete individual files and import existing files from other languages in `default.js`.\n- Adapt the `datepicker.js` and `duration.js` files to import the existing definitions from their corresponding external packages, but you could also define the specifics yourself.\n- Check that your translation works by running the development server (`npm start`) and navigating to the STAC Browser instance in your browser (usually `http://localhost:8080`).\n- Once completed, please open a pull request and we'll get back to you as soon as possible.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcs-si%2Fs2_gri_website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcs-si%2Fs2_gri_website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcs-si%2Fs2_gri_website/lists"}