Dockerized pacman repository with friendly user interface and public API

FleuOS package repository – fleupkg

Dockerized pacman repository with friendly user interface and public API. Project goal is to quickly set up personal pacman repostitory without pain and hustle.


Configurations

Environment variables/flags:

  • 📄 – FLEUPKG_REPOrepo – repository name on the web page
  • 😀 – FLEUPKG_USERuser – user name in system, will be used to eject yay packages
  • 🌐 – FLEUPKG_PORTport – publically exposed port, 8080 default
  • 📫 – FLEUPKG_API_ADRESSapi-adress – adress for backend api calls via grpc-web
  • 📦 – FLEUPKG_INIT_PKGSinit-pkgs – initial packages to download on start
  • 📒 – FLEUPKG_LOGS_FORMATlogs-fmt – format for logs (can be text/json/pretty)
  • 📂 – FLEUPKG_WEB_DIRweb-dir – directory with flutter web app
  • 🔐 – FLEUPKG_LOGINSlogins – list of logins and passwords separated by ‘|’ symbol

Deploy

  • with docker:
docker run -p 8080:8080 -e FLEUPKG_LOGS_FMT=text dancheg97.ru/dancheg97/fleupkg:latest
  • with docker-compose:

services:
  pacman:
    image: dancheg97.ru/dancheg97/fleupkg:latest
    command: run
    environment:
      FLEUPKG_INIT_PKGS: yay
      FLEUPKG_API_ADRESS: http://localhost:8080/
      FLEUPKG_LOGS_FMT: text
      FLEUPKG_LOGINS: user1|pass1|user2|pass2
    ports:
      - 8080:8080

Add to pacman conf

Add those lines to your /etc/pacman.conf, to get things to work:

[localhost]
SigLevel = Optional TrustAll
Server = http://localhost:8080/pkg

You can test it with this commands:

sudo pacman -R yay
sudo pacman -Sy yay

Contribute

For applicaiton development you need to install following software:

  • go
  • gofumpt
  • golangci-lint
  • buf
  • flutter
  • flutter webkit

All frontend dart code is located in lib folder, all backend go code is located in cmd folder.

GitHub

View Github