To run the Outline Manager Electron app:
npm run action server_manager/electron/start ${PLATFORM}
To run the Outline Manager Electron app with a development build (code not minified):
BUILD_ENV=development npm run action server_manager/electron/start ${PLATFORM}
Where ${PLATFORM} is one of linux, macos, windows.
To run the Outline Manager as a web app on the browser and listen for changes:
npm run action server_manager/www/start
When new cloud regions/zones appear (especially for GCP), update all of the following so the location picker shows proper city and country data.
- Add geolocation constants in
server_manager/model/location.ts. - Map cloud region IDs to
GeoLocationinserver_manager/model/gcp.ts(Zone.LOCATION_MAP). - Add localized city message keys:
- Source messages:
server_manager/messages/master_messages.jsonusinggeo_*keys. - Runtime English messages:
server_manager/messages/en.jsonandserver_manager/messages/en-GB.jsonusinggeo-*keys.
- Source messages:
- Keep all
geo_*/geo-*message keys alphabetically sorted. - Update tests:
server_manager/model/gcp.spec.tsregion coverage list and assertions.server_manager/www/location_formatting.spec.tsif formatting/sorting behavior changes.
- Verify:
npx tsc -p server_manager --outDir output/build/js/server_manager --module commonjs
npx jasmine output/build/js/server_manager/model/gcp.spec.js output/build/js/server_manager/www/location_formatting.spec.js
npm run action server_manager/www/testNotes:
- Missing entries in
Zone.LOCATION_MAPcause unknown location cards (?and raw zone IDs) in the picker. - Region discovery can be checked programmatically with:
gcloud compute regions list --format="value(name)"
gcloud compute zones list --format="value(name)"You can run an existing binary in debug mode by setting OUTLINE_DEBUG=true.
This will enable the Developer menu on the application window.
To build the app binary:
npm run action server_manager/electron/package ${PLATFORM} -- --buildMode=[debug,release]
Where ${PLATFORM} is one of linux, macos, windows.
The per-platform standalone apps will be at output/build/server_manager/electron/static/dist.
- Windows: An
.exefile. Only generated if you have wine installed. - Linux: An
.AppImagefile. - macOS: A
.dmgand a.zipfile as required by auto update.
NOTE: If you are building for macOS, you may need to run
security unlock-keychain login.keychainso electron-builder has access to your certificates.
npm run action server_manager/test
To enable error reporting through Sentry for local builds, run:
export SENTRY_DSN=[Sentry DSN URL]
npm run action server_manager/electron/start ${PLATFORM}