Archlinux repository server & package build system, written in V.
 
 
 
 
 
 
Go to file
Renovate Bot 3bb28b9fd4
renovate/artifacts Artifact file update failure
ci/woodpecker/push/build Pipeline is pending Details
ci/woodpecker/push/docs Pipeline is pending Details
ci/woodpecker/push/lint Pipeline is pending Details
ci/woodpecker/push/man Pipeline is pending Details
ci/woodpecker/push/test Pipeline is pending Details
ci/woodpecker/pr/build Pipeline is pending Details
ci/woodpecker/pr/docker Pipeline is pending Details
ci/woodpecker/pr/docs Pipeline is pending Details
ci/woodpecker/pr/lint Pipeline is pending Details
ci/woodpecker/pr/man Pipeline is pending Details
ci/woodpecker/pr/test Pipeline is pending Details
chore(deps): update dependency nokogiri to '~> 1.16.0'
2024-07-26 10:01:46 +00:00
.woodpecker chore: updated PKGBUILDs 2023-02-19 15:54:31 +01:00
docs chore(deps): update dependency nokogiri to '~> 1.16.0' 2024-07-26 10:01:46 +00:00
src chore: update versions to 0.6.0 2023-07-17 13:26:38 +02:00
.clang-format refactor: link libvieter; remove cron code & daemon 2023-01-28 13:16:36 +01:00
.dockerignore Switched to patch-based builder, based on weekly 2022-01-27 19:18:11 +01:00
.editorconfig refactor: link libvieter; remove cron code & daemon 2023-01-28 13:16:36 +01:00
.gitignore refactor: link libvieter; remove cron code & daemon 2023-01-28 13:16:36 +01:00
.gitmodules refactor: link libvieter; remove cron code & daemon 2023-01-28 13:16:36 +01:00
CHANGELOG.md chore: update versions to 0.6.0 2023-07-17 13:26:38 +02:00
Dockerfile fix: don't buffer stdout even if not a terminal 2022-12-16 11:37:51 +01:00
LICENSE Added AGPLv3 license [CI SKIP] 2022-01-27 22:34:12 +01:00
Makefile chore: rename db module to avoid conflict with vlib 2023-02-08 11:09:18 +01:00
PKGBUILD fix: update PKGBUILD to use libvieter 2023-07-17 13:53:20 +02:00
PKGBUILD.dev chore: updated PKGBUILDs 2023-02-19 15:54:31 +01:00
README.md chore: updated PKGBUILDs 2023-02-19 15:54:31 +01:00
renovate.json Add renovate.json 2022-04-11 10:01:38 +00:00
test.py Solved the "removing old packages" problem (I think) 2022-04-09 21:08:54 +02:00
vieter.toml refactor: link libvieter; remove cron code & daemon 2023-01-28 13:16:36 +01:00

README.md

Vieter

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/.

For more information, questions or just a chat, there's #vieter:rustybever.be on Matrix!

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. Sadly, this didn't quite turn out the way I expected, but I'm sticking with it anyways ;p

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:

  • 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

V is developed using a specific compiler commit that is usually updated whenever a new version is released. Information on this can be found in the tools repository.

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.