# Install from source You can also compile Krenalis directly from source. This is recommended for advanced users who want full control over the build and customization process. There are two options: ## Build with Go tools This method uses Go's command-line tools and does not require Git. It is the recommended approach if you only want to customize which connectors are included in the executable. ### Before you begin Make sure you have installed: * [Go](https://go.dev/doc/install) 1.26 * [curl](https://curl.se/) or any tool capable of downloading files over HTTP ### 1. Create the *krenalis* directory ```sh mkdir krenalis cd krenalis ``` ### 2. Create *main.go* Download the default `main.go` file from the Krenalis repository: ```sh curl -o main.go 'https://raw.githubusercontent.com/krenalis/krenalis/refs/tags/v0.30.0/main.go' ``` ### 3. Initialize the module ```sh go mod init krenalis go mod tidy ``` ### 4. Generate assets Generate the Admin console assets: ```sh go generate ``` After this step, your directory should look like: ``` krenalis ├── go.mod ├── go.sum ├── main.go └── admin └── assets ├── index.css.br ├── index.css.map.br ├── index.html.br ├── index.js.br ├── index.js.map.br ├── monaco └── shoelace ``` ### 5. Customize what is included To exclude certain connectors or data warehouse platforms from the executable, edit the main.go file and comment out the related import lines. To include your own connectors or data warehouses, create a new file, for example named _myconnectors.go_, and add the required imports: ```go package krenalis import _ "github.com/example/connector" import _ "github.com/example/warehouse" ``` ### 6. Build Build the executable: ```sh go build ``` and verify the build: ### Linux and macOS ```bash ./krenalis -help ``` ### Windows ```bash krenalis.exe -help ``` ### Next steps * Database setup. Configure PostgreSQL, which Krenalis uses as its primary database to store metadata, configuration, and operational state. ## Build from the repository ### Before you begin Install the following: * [Git](https://git-scm.com/install/) * [Go](https://go.dev/doc/install) 1.26 ### 1. Clone the repository ```sh git clone https://github.com/krenalis/krenalis cd krenalis ``` ### 2. Switch to the commit you want to build Here you have two choices: * Stay on the `main` branch, which is the development branch of Krenalis. This branch may exhibit unexpected or unstable behavior. * Switch to the tag of the latest Krenalis release: ```bash git checkout v0.30.0 ``` ### 3. Generate assets ```sh go generate ``` After this step, the following files are created: ``` krenalis └── admin └── assets ├── index.css.br ├── index.css.map.br ├── index.html.br ├── index.js.br ├── index.js.map.br ├── monaco └── shoelace ``` ### 4. Build Build the executable: ```sh go build ``` and verify the build: ### Linux and macOS ```bash ./krenalis -help ``` ### Windows ```bash krenalis.exe -help ``` ### Next steps * Database setup. Configure PostgreSQL, which Krenalis uses as its primary database to store metadata, configuration, and operational state.