sudo apt-get install build-essential libssl-dev
The following guide will walk through how to run DevLake's frontend (config-ui
) and backend in dev mode.
Navigate to where you would like to install this project and clone the repository:
git clone https://github.com/apache/incubator-devlake.git cd incubator-devlake
Install dependencies for plugins:
Install Go packages
cd backend go get cd ..
Copy the sample config file to new local file:
cp .env.example .env
Update the following variables in the file .env
:
DB_URL
: Replace mysql:3306
with 127.0.0.1:3306
Start the MySQL and Grafana containers:
Make sure the Docker daemon is running before this step.
docker-compose -f docker-compose-dev.yml up -d mysql grafana
Run devlake
and config-ui
in dev mode in two separate terminals:
# run devlake make dev # run config-ui make configure-dev
For common errors, please see Troubleshooting.
Config UI is running at localhost:4000
# install mockery go install github.com/vektra/mockery/v2@latest # generate mocking stubs make mock # run tests make test
Please refer to the Migration Doc.
All DevLake APIs (core service + plugin API) are documented with swagger. To see API doc live with swagger:
- Install [swag](https://github.com/swaggo/swag). - Run `make swag` to generate the swagger documentation. - Visit `http://localhost:8080/swagger/index.html` while `devlake` is running.
To access Grafana, click View Dashboards button in the top left corner of Config UI, or visit localhost:3002
(username: admin
, password: admin
).
For provisioning, customizing, and creating dashboards, please refer to our Grafana Doc.
Q: Running `make dev` yields error: `libgit2.so.1.3: cannot open share object file: No such file or directory` A: `libgit2.so.1.3` is required by the gitextractor plugin and should be . Make sure your program can find `libgit2.so.1.3`. `LD_LIBRARY_PATH` can be assigned like this if your `libgit2.so.1.3` is located at `/usr/local/lib`: ```sh export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib ``` Note that the version has to be pinned to 1.3.0. If you don't have it, you may need to build it manually with CMake from [source](https://github.com/libgit2/libgit2/releases/tag/v1.3.0).
- Compile all plugins: `make build-plugin` - Compile specific plugins: `PLUGIN=<PLUGIN_NAME> make build-plugin` - Compile server: `make build` - Compile worker: `make build-worker`
To dig deeper into developing and utilizing our built-in functions and have a better developer experience, feel free to dive into our godoc reference.