# Installation & Building

### Installation

Installation consists of a single executable file. Head to the [releases](https://github.com/proofrock/pupcloud/releases) page on GitHub, and download the compressed file relevant for your OS and architecture; then extract it with a 7-zip compatible client.

If there are no files for your OS/arch, look into building it yourself, see below.

Either way, you'll have a single binary (albeit a little bulky). [Take it for a walk](/pupcloud/pupcloud-v0.6/guides/running-pupcloud.md)!

#### Supported platforms

These are platforms for which I'll provide binaries at the time of the release.

| OS             | Arch    | Notes                                       |
| -------------- | ------- | ------------------------------------------- |
| Linux          | x86-64  | Static build for cross-distro compatibility |
| Linux          | armv7hf | Static build for cross-distro compatibility |
| Linux          | aarch64 | Static build for cross-distro compatibility |
| Windows        | x86-64  |                                             |
| MacOS (darwin) | x86-64  |                                             |

If you have access to an unsupported architecture, and would like to contribute the binary, please write me (oss /AT/ germanorizzo /DOT/ it).

### Building & Testing

#### Main app

Pupcloud is a Go(lang) program, that uses Go 1.18 and CGO (for a dependency). If you are not familiar with this, please read a guide on [compiling with CGO](https://go.dev/doc/install/gccgo); the Go toolset makes it very convenient, but there are some prerequisites.

* Go 1.18
* Make
* A compile toolchain (e.g. GCC)

I included a Make file to script the building under Linux/MacOS, so if you have all the prerequisites it should be a matter of:

```bash
git clone https://github.com/proofrock/pupcloud
cd pupcloud
make build # or build-static
# You will find the binary in the bin/ directory.
```

For MacOS replace Line 3 with:

```bash
make build
```

For Windows, instead of the step at Line 3 do:

```bash
cd src
go build
```

The sources include a precompiled version of the Web UI.

#### Web UI

If you want to rebuild the Web UI, you'll need also to install NodeJS and NPM. Then the command to use is:

```
make build-ui
```

This will build it and also copy the result to the proper directory where a `make build` will look for it and generate the binary.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://germ.gitbook.io/pupcloud/pupcloud-v0.6/guides/installation-and-building.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
