A full-fledged open source web GIS solution based on OpenLayers
For developer info, see CONTRIBUTING.md.
If you are a new user of Hajk, please visit our welcome page (Swedish only) for more information about Hajk.
You can easily reach out to our community using the Discussions on GitHub.
The official automatic build of the latest version can be found here: https://hajk-demo.netlify.app/.
For some real-life examples, see the following solutions:
- Halmstad municipality's map
- Kungsbacka municipality's map
- Göteborg stad
- The Gothenburg Region's map
- Varberg municipality's map
- Uddevalla municipality's map
Please refer to Hajk's official installation guide.
Note that Hajk consists of 3 applications: the main 'client' (which is the web map front end), 'admin' (which basically is a frontend for client's configuration files) and 'mapservice' (the backend server application which has a REST API).
Clone the repository: git clone https://github.com/hajkmap/Hajk.git
.
Note: There are currently two available backends for Hajk - you need to pick only one:
- NodeJS backend - a new, recently release backend. Rewritten from scratch in JS. Can be deployed on any platform supported by NodeJS.
- NET-backend - the original backend, requires Windows and IIS.
If unsure on which backend to pick, it is recommended to choose the NodeJS solution. It is easier to setup because it only requires NodeJS (which you already have if you want to run Hajk anyway).
- In
hajk
repo dir, go tonew-backend
and install dependencies:
cd new-backend
npm install
- Review the settings in
.env
. It's fine to leave the defaults. Note whichPORT
is specified, by default it is3002
. - Start the backend in development mode:
npm run dev
- Verify that the server is up and running by navigating to
http://localhost:3002
. There's also a nice API explorer available onhttp://localhost:3002/api-explorer/
.
- Make sure that you have Visual Studio and IIS installed.
- Open the SLN-files in
backend/
- Build and publish.
- Deploy to IIS. Make sure that everything is running (choose "Browse" from IIS to see the mapservice page that lists available commands - if you see that, you're good to go).
See Docker README for more information.
Now when Backend is up and running, it's time to start the Client (and optionally Admin) applications.
- You must tell the Client app the location of a running Backend. The configuration is made by editing
new-client/public/appConfig.json
. Make sure thatmapserviceBase
is a valid URL to a running instance of the Backend (if you're using the NodeJS application and your Backend is running on port 3002, you should setmapserviceBase
to"http://localhost:3002/api/v1"
. - The client application resides inside
new-client
. Go there (cd new-client
) and install the dependencies and start by typing:npm i && npm start
. - Verify that Client is running on
http://localhost:3000
.
This process is similar to the Client app.
- Set the correct URL to Backend by editing
new-admin/public/config.json
.
Map operations have moved to mapconfig so"url_map", "url_map_list", "url_map_create", "url_map_delete"
needs to point toward"http://localhost:3002/api/v1/mapconfig..."
, the rest is the same as fornew-client
- The admin application is located in
new-admin
. To get it running docd new-admin && npm i && npm start
. - Verify that Admin is running on
http://localhost:3001
.
You can use the NodeJS backend to deploy the Client and Admin applications as well. For details, see this section in Backend's README.
If you plan to develop for Hajk, make sure to read the next section on code standard for the project.