Jef Roosens fcdcf9c5ca | ||
---|---|---|
.woodpecker | ||
docs | ||
src | ||
.dockerignore | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
CHANGELOG.md | ||
Dockerfile | ||
LICENSE | ||
Makefile | ||
PKGBUILD | ||
PKGBUILD.dev | ||
README.md | ||
renovate.json | ||
test.py | ||
vieter.toml |
README.md
Vieter
Documentation
I host documentation for Vieter over at https://rustybever.be/docs/vieter/. API documentation for the current codebase can be found at https://rustybever.be/api-docs/vieter/.
Overview
Vieter is a restart of the Pieter project. The goal is to create a simple, lightweight self-hostable Arch repository server, paired with a system that periodically builds & publishes select Arch packages. This would allow me to build AUR packages (or PKGBUILDs I created myself) "in the cloud" & make sure I never have to compile anything on my own systems, making my updates a lot quicker.
Why V?
I chose V as I've been very intrigued by this language for a while now. I wanted a fast language that I could code while relaxing, without having to exert too much mental effort & V seemed like the right choice for that.
Features
- Arch repository server
- Support for multiple repositories & multiple architectures
- Endpoints for publishing new packages
- API for managing repositories to build
- Build system
- Periodic rebuilding of packages
- Prevent unnecessary rebuilds
Building
Besides a V installer, Vieter also requires the following libraries to work:
- gc
- libarchive
- openssl
- sqlite3
Vieter also depends on some external V modules which you can install using cd src && v install
. Make sure to keep these dependencies up to date using v update
.
Compiler
Vieter compiles with the standard Vlang compiler. However, I do maintain a mirror. This is to ensure my CI does not break without reason, as I control when & how frequently the mirror is updated to reflect the official repository.
If you encounter issues using the latest V compiler, try using my mirror
instead. make v
will clone the repository & build the mirror. Afterwards,
prepending any make command with V_PATH=v/v
tells make to use the locally
compiled mirror instead.
Contributing
If you wish to contribute to the project, please take note of the following:
- Rebase instead of merging whenever possible, e.g. when updating your branch with the dev branch.
- Please follow the Conventional Commits style for your commit messages.
Writing documentation
The docs
directory contains a Hugo site consisting of all user &
administrator documentation. docs/api
on the other hand is a
Slate project describing the HTTP web
API.
To modify the Hugo documentation, you'll need to install Hugo. Afterwards, you
can use the following commands inside the docs
directory:
# Build the documentation
hugo
# Host an auto-refreshing web server with the documentation. Important to note
# is that the files will be at `http://localhost:1313/docs/vieter` instead of
# just `http://localhost:1313/`
hugo server
For the Slate docs, I personally just start a docker container:
docker run \
--rm \
-p 4567:4567 \
--name slate \
-v $(pwd)/docs/api/source:/srv/slate/source slatedocs/slate serve
This will make the Slate docs available at http://localhost:4567. Sadly, this server doesn't auto-refresh, so you'll have to manually refresh your browser every time you make a change.