{"id":19788323,"url":"https://github.com/graylog2/graylog-project","last_synced_at":"2025-09-07T00:34:49.940Z","repository":{"id":47496226,"uuid":"47349377","full_name":"Graylog2/graylog-project","owner":"Graylog2","description":"Packaging/development helper for Graylog","archived":false,"fork":false,"pushed_at":"2025-03-13T13:43:43.000Z","size":124,"stargazers_count":22,"open_issues_count":0,"forks_count":24,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-05-01T00:37:14.754Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Graylog2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-12-03T17:47:28.000Z","updated_at":"2024-11-25T15:54:53.000Z","dependencies_parsed_at":"2025-05-01T00:32:08.659Z","dependency_job_id":"995ffe79-576d-4b7f-995f-357ff32a41ff","html_url":"https://github.com/Graylog2/graylog-project","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Graylog2/graylog-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Graylog2%2Fgraylog-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Graylog2%2Fgraylog-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Graylog2%2Fgraylog-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Graylog2%2Fgraylog-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Graylog2","download_url":"https://codeload.github.com/Graylog2/graylog-project/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Graylog2%2Fgraylog-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273983047,"owners_count":25202092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-11-12T06:26:51.768Z","updated_at":"2025-09-07T00:34:49.909Z","avatar_url":"https://github.com/Graylog2.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Graylog Project\n===============\n\nThe purpose of this project is to make it easier to develop Graylog and its\nplugins.\n\nGraylog consists of the core [server](https://github.com/Graylog2/graylog2-server)\nproject and several plugins (e.g. the [collector plugin](https://github.com/Graylog2/graylog-plugin-collector))\nwhich are all separate [maven](https://maven.apache.org/) projects.\n\nTo make it possible to build all of those project with a single `./mvnw package`\ncommand, we built this meta project which pulls in the core server and all\nplugins into a single maven reactor.\n\nThe [graylog-project CLI](https://github.com/Graylog2/graylog-project-cli) tool\nis used to manage this meta project and is a requirement.\n\n## Setup\n\n1. Ensure GitHub SSH access (process described [here](https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent); can be tested with `ssh -T git@github.com`)\n1. Install the latest version of the graylog-project CLI tool\n1. Bootstrap the graylog-project repository\n1. Import the graylog-project repository into your IDE\n\n\n### Install CLI Tool\n\nGo to the [releases](https://github.com/Graylog2/graylog-project-cli/releases)\npage of the CLI tool and download the latest version for your platform.\n\nPut the binary somewhere into your PATH.\n\nExample:\n\n```\n$ mkdir -p $HOME/bin\n$ cp graylog-project.linux $HOME/bin/graylog-project\n$ chmod +x $HOME/bin/graylog-project\n```\n\nIf you use the example above, please make sure your `$HOME/bin` is in your PATH!\n\n### Bootstrap\n\nUse the `graylog-project` tool to bootstrap the graylog-project repository via\nthe `graylog-project bootstrap github://Graylog2/graylog-project.git` command.\n\nExample:\n\n```\n$ graylog-project bootstrap github://Graylog2/graylog-project.git\n    git clone git@github.com:Graylog2/graylog-project.git graylog-project\n      Cloning into 'graylog-project'...\n    git checkout master\n      Already on 'master'\n      Your branch is up-to-date with 'origin/master'.\nRepository: git@github.com:Graylog2/graylog2-server.git\nCloning git@github.com:Graylog2/graylog2-server.git into graylog-project-repos/graylog2-server\n    git clone git@github.com:Graylog2/graylog2-server.git graylog-project-repos/graylog2-server\n      Cloning into 'graylog-project-repos/graylog2-server'...\nCheckout revision: master\n    git branch master origin/master\n    git checkout master\n      Already on 'master'\n      Your branch is up-to-date with 'origin/master'.\nRepository: git@github.com:Graylog2/graylog-plugin-anonymous-usage-statistics.git\nCloning git@github.com:Graylog2/graylog-plugin-anonymous-usage-statistics.git into graylog-project-repos/graylog-plugin-anonymous-usage-statistics\n    git clone git@github.com:Graylog2/graylog-plugin-anonymous-usage-statistics.git graylog-project-repos/graylog-plugin-anonymous-usage-statistics\n      Cloning into 'graylog-project-repos/graylog-plugin-anonymous-usage-statistics'...\nCheckout revision: master\n    git branch master origin/master\n    git checkout master\n      Already on 'master'\n      Your branch is up-to-date with 'origin/master'.\nRepository: git@github.com:Graylog2/graylog-plugin-map-widget.git\nCloning git@github.com:Graylog2/graylog-plugin-map-widget.git into graylog-project-repos/graylog-plugin-map-widget\n    git clone git@github.com:Graylog2/graylog-plugin-map-widget.git graylog-project-repos/graylog-plugin-map-widget\n      Cloning into 'graylog-project-repos/graylog-plugin-map-widget'...\nCheckout revision: master\n    git branch master origin/master\n    git checkout master\n      Already on 'master'\n      Your branch is up-to-date with 'origin/master'.\n\n[...]\n\nGenerating pom.xml file from template pom.xml-tmpl\nGenerating runner/pom.xml file from template runner/pom.xml-tmpl\nGenerating src/main/assembly/server-tarball.xml file from template src/main/assembly/server-tarball.xml-tmpl\nWriting manifest state to .graylog-project-manifest-state\n```\n\n#### Checking out a particular version\n\nThe project contains various manifest files specifying the version of Graylog project repositories to be checked out. The `manifests/master.json` file is used by default. The `--manifest` argument allows you to check out a different version:\n```\ngraylog-project bootstrap github://Graylog2/graylog-project.git --manifest manifests/4.2.json\n```\n\nThe `X.Y.json` manifests will checkout the current code from that branch in Github. The resulting build artifact will be an `X.Y-SNAPSHOT` version.\n\n### IDE Import\n\nNow you can import the `graylog-project` folder into your IDE of choice.\n\nAt Graylog we are using [IntelliJ IDEA](https://www.jetbrains.com/idea/) so we\nare using that for the following example.\n\nAfter importing the project into your IDE, create a server run configuration:\n\n[![IntelliJ Run Config](/docs/images/intellij-run-config.png)](https://raw.githubusercontent.com/Graylog2/graylog-project/master/docs/images/intellij-run-config.png)\n\n- Make sure to use the **runner** module for the *Use classpath of module* option\n- Use the **graylog2-server** directory as *Working directory*\n- In *Program arguments* use `server -f graylog.conf --local`\n  (`--local` to avoid sending usage stats and running version checks)\n\nThis allows the listed plugins to be on the same classpath and thus loaded\ndirectly without having to go through mvn package and symlinking/copying into\nGraylog's plugins folder.\n\n### Server Configuration File\n\nCreate a `graylog.conf` file inside the `graylog2-server` directory based on\nthe `misc/graylog.conf` example configuration.\n\n### Initial Build\n\nBefore you can run the server from the IDE, you have to run an initial build\nto create some assets.\n\n```\n$ ./mvnw compile\n```\n\nThis will build the backend and frontend parts.\n\nFor a faster compile, you can skip building the frontend, building javadocs, and running tests:\n\n```\n./mvnw -Dmaven.javadoc.skip=true -DskipTests -Dskip.web.build compile\n```\n\n\n## Usage\n\n### Elasticsearch \u0026 MongoDB\n\nBefore you start the server, make sure you have an Elasticsearch and MongoDB\nservice running. If you're just testing this out and you don't care about persistent data, you can run:\n\n```\nsudo sysctl -w vm.max_map_count=262144\ndocker run -d -p 27017:27017 --name mongo mongo:latest\ndocker run -d -p 9200:9200 -p 9300:9300 elasticsearch:7.10.2\n```\n\nMake sure that `graylog.conf` contains the correct connection details for Elasticsearch and MongoDB.\n\n\n### Server Start\n\nNow you should be able to start the server from your IDE by using the\nrun configuration that you created before.\n\n### Web Interface Start\n\nFor development we are using the webpack-dev-server. You can start it by\nusing the following command inside the `graylog2-server/graylog2-web-interface`\ndirectory.\n\n```\n$ ./node/yarn/dist/bin/yarn start\n```\n\nIf you are running the 2.4 branch or earlier, you have to use npm to start the\ndevelopment webserver:\n\n```\n$ ./node/npm run start\n```\n\nThe web interface is now reachable via [http://localhost:8080/](http://localhost:8080/).\n\n### Working with Proxy\n\nTo be able to run builds in environments that needs proxy settings to access the internet, first run `mvn` with the option to disable proxy by-pass to yarn.\n\n```\n./mvnw -Dfrontend.yarn.yarnInheritsProxyConfigFromMaven=false\n```\n\nAdd the Proxy settings to the users *.yarnrc*:\n\n```\nproxy \"https://\u003cuser\u003e:\u003cpassword\u003e@proxy.in.lan:8080\"\nhttps-proxy \"https://\u003cuser\u003e:\u003cpassword\u003e@proxy.in.lan:8080\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraylog2%2Fgraylog-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgraylog2%2Fgraylog-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraylog2%2Fgraylog-project/lists"}