You need Node, Yarn (or npm) and watchman.
node -v
should be >= 18.x, >= 20.x is recommended (version 18.20.2 and 20.13.1 is known to work)- We recommend that you use
nvm
to install a specific Node.js version. Optionally, you can also set up its automatic version switching shell integration.
- We recommend that you use
yarn --version
should be >= 3 (version 3.4.1 is known to work). The project will then use yarn 3 from the included file.
You also need a C compiler:
- Linux: GCC 4.6 or later
- OS X: Xcode 5.0 or later
- Windows: for example MSVC 2013 Express
A bit newer version of watchman is now required and 4.9.0 is no longer supported. Version 20220320.140531.0, for example, works.
brew install watchman
It's possible to run prebuilt binaries from some release with these instructions or in some systems to build the binaries from code following these instructions.
yarn install && yarn setup
- OSX / Linux:
yarn run dev
- Windows:
npm run dev-win-national
- open: http://localhost:8080
- First run:
yarn run build
, then run:yarn run start
- open: http://localhost:8080
Note: on Windows, add "win-" prefix to the run commands above. For example: npm run win-build
.
The same applies to other npm run commands below.
After you have changed the files in digitransit-components
you have to re-run yarn setup
to build those modules
and apply the changes.
- run:
webpack -p --json > digitransit.json
- Upload
digitransit.json
tohttp://webpack.github.io/analyse/
Or you can also use this:
Husky (npm-package) is used for setting up the git hooks (.git/hooks/
) that will allow custom scripts to be run on the repository.
Look up 'husky' in package.json
to see the details.
Digitransit ui can be configured in multiple ways. You can
- Change between National and Regional versions using
CONFIG
parameter- Alternatively, use
BASE_CONFIG
if server is supposed to serve multiple configurations which have same base configuration. It is used server side at start up and request's host specific config based onhost
orx-forwarded-host
header is merged into it before returning config to client.
- Alternatively, use
- Switch API backend using
API_URL
parameter - Enable Sentry client side error monitoring using
SENTRY_*
parameters
Note that you can combine multiple configuration parameters.
Start national version
yarn run build
yarn run start
Start HSL version
yarn run build
CONFIG=hsl yarn run start
By default digitransit-ui uses services from https://dev-api.digitransit.fi but you can override API server like so:
yarn run build
API_URL=https://api.digitransit.fi yarn run start
If you want to specify different URL (not just base URL) for individual services, you can define variables OTP_URL, MAP_URL and/or GEOCODING_BASE_URL (URL path before /search or /reverse).
yarn run build
GEOCODING_BASE_URL=https://api.digitransit.fi/geocoding/v1 OTP_URL=https://api.digitransit.fi/routing/v1/routers/finland/ yarn run start
Sentry can be configured like so:
yarn run build
SENTRY_DSN=https://[email protected]/zzzzz SENTRY_SECRET_DSN=https://xxxx:[email protected]/zzzzz yarn run start
STATIC_MESSAGE_URL=https://dev-yleisviesti.digitransit.fi yarn run start