forked from vieter-v/vieter
				
			
		
			
				
	
	
		
			115 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
---
 | 
						|
weight: 10
 | 
						|
---
 | 
						|
# Installation
 | 
						|
 | 
						|
Vieter consists of a single binary, akin to busybox. The binary's behavior is
 | 
						|
determined by its CLI arguments, e.g. `vieter server` starts the repository
 | 
						|
server.
 | 
						|
 | 
						|
All installation solutions can be configured the same way,
 | 
						|
as described [here](/configuration).
 | 
						|
 | 
						|
## Docker
 | 
						|
 | 
						|
Docker images are published to the
 | 
						|
[`chewingbever/vieter`](https://hub.docker.com/r/chewingbever/vieter) Docker
 | 
						|
Hub repository. You can either pull a release tag (e.g.
 | 
						|
`chewingbever/vieter:0.1.0-rc1`), or pull the `chewingbever/vieter:dev` tag.
 | 
						|
The latter is updated every time a new commit is pushed to the development
 | 
						|
branch. This branch will be the most up to date, but does not give any
 | 
						|
guarantees about stability, so beware!
 | 
						|
 | 
						|
Thanks to the single-binary design of Vieter, this image can be used both for
 | 
						|
the repository server, the cron daemon and the agent.
 | 
						|
 | 
						|
Below is a minimal compose file to set up both the repository server & a build
 | 
						|
agent:
 | 
						|
 | 
						|
```yaml
 | 
						|
version: '3'
 | 
						|
 | 
						|
services:
 | 
						|
  server:
 | 
						|
    image: 'chewingbever/vieter:0.5.0-rc.1'
 | 
						|
    restart: 'always'
 | 
						|
 | 
						|
    environment:
 | 
						|
      - 'VIETER_API_KEY=secret'
 | 
						|
      - 'VIETER_DEFAULT_ARCH=x86_64'
 | 
						|
    volumes:
 | 
						|
      - 'data:/data'
 | 
						|
 | 
						|
  cron:
 | 
						|
    image: 'chewingbever/vieter:0.5.0-rc.1'
 | 
						|
    restart: 'always'
 | 
						|
    # Required to connect to the Docker daemon
 | 
						|
    user: root
 | 
						|
    command: 'vieter agent'
 | 
						|
 | 
						|
    environment:
 | 
						|
      - 'VIETER_API_KEY=secret'
 | 
						|
      # MUST be public URL of Vieter repository
 | 
						|
      - 'VIETER_ADDRESS=https://example.com'
 | 
						|
      # Architecture for which the agent builds
 | 
						|
      - 'VIETER_ARCH=x86_64'
 | 
						|
      - 'VIETER_MAX_CONCURRENT_BUILDS=2'
 | 
						|
    volumes:
 | 
						|
      - '/var/run/docker.sock:/var/run/docker.sock'
 | 
						|
 | 
						|
volumes:
 | 
						|
  data:
 | 
						|
```
 | 
						|
 | 
						|
If you do not require the build system, the repository server can be used
 | 
						|
independently as well.
 | 
						|
 | 
						|
Of course, Vieter allows a lot more configuration than this. This compose file
 | 
						|
is meant as a starting point for setting up your installation.
 | 
						|
 | 
						|
{{< hint info >}}
 | 
						|
**Note**  
 | 
						|
Builds are executed on the agent's system using the host's Docker daemon. An
 | 
						|
agent for a specific `arch` will only build packages for that specific
 | 
						|
architecture. Therefore, if you wish to build packages for both `x86_64` &
 | 
						|
`aarch64`, you'll have to deploy two agents, one on each architecture.
 | 
						|
Afterwards, any Git repositories enabled for those two architectures will build
 | 
						|
on both.
 | 
						|
{{< /hint >}}
 | 
						|
 | 
						|
## Binary
 | 
						|
 | 
						|
On the
 | 
						|
[releases](https://git.rustybever.be/vieter-v/vieter/releases)
 | 
						|
page, you can find statically compiled binaries for all
 | 
						|
released versions. This is the same binary as used inside
 | 
						|
the Docker images.
 | 
						|
 | 
						|
## Arch
 | 
						|
 | 
						|
I publish both development & release versions of Vieter to my personal
 | 
						|
repository, https://arch.r8r.be. Packages are available for `x86_64` &
 | 
						|
`aarch64`. To use the repository, add the following to your `pacman.conf`:
 | 
						|
 | 
						|
```
 | 
						|
[vieter]
 | 
						|
Server = https://arch.r8r.be/$repo/$arch
 | 
						|
SigLevel = Optional
 | 
						|
```
 | 
						|
 | 
						|
Afterwards, you can update your system & install the `vieter` package for the
 | 
						|
latest official release or `vieter-git` for the latest development release.
 | 
						|
 | 
						|
### AUR
 | 
						|
 | 
						|
If you prefer building the packages locally (or on your own Vieter instance),
 | 
						|
there's the [`vieter`](https://aur.archlinux.org/packages/vieter) &
 | 
						|
[`vieter-git`](https://aur.archlinux.org/packages/vieter-git) packages on the
 | 
						|
AUR. These packages build using the `vlang` compiler package, so I can't
 | 
						|
guarantee that a compiler update won't temporarily break them.
 | 
						|
 | 
						|
## Building from source
 | 
						|
 | 
						|
The project [README](https://git.rustybever.be/vieter-v/vieter#building)
 | 
						|
contains instructions for building Vieter from source.
 |