aurcache/README.md
2024-02-25 16:50:18 +01:00

2.3 KiB

AURCache

AURCache is a build server and repository for Archlinux packages sourced from the AUR (Arch User Repository). It features a Flutter frontend and Rust backend, enabling users to add packages for building and subsequently serves them as a pacman repository. Notably, AURCache automatically detects when a package is out of date and displays it within the frontend.

More Images:

Deployment with Docker and Docker-compose

To deploy AURCache using Docker and Docker-compose, you can use the following example docker-compose.yml file:

version: '3'
services:
    aurcache:
        image: luki42/aurcache:latest
        ports:
        - "8080:8080"
        - "8081:8081"
        volumes:
          - ./aurcache/db:/app/db
          - ./aurcache/repo:/app/repo

Make sure to define the db path and repo path as volumes.

The default Port 8081 serves the Frontend and Port 8080 serves the Repository.

To start AURCache with Docker-compose, run:

docker-compose up -d

Access AURCache through your web browser at http://localhost:8081.

You can now start adding packages for building and utilizing the AURCache repository.

Add the following to your pacman.conf on your target machine to use the repo:

# nano /etc/pacman.conf
[repo]
SigLevel = Optional TrustAll
Server = http://localhost:8080/

Build Info

The AURCache project comprises two main components: a Flutter frontend and a Rust backend.

Frontend (Flutter)

To build the Flutter frontend, ensure you have Flutter SDK installed. Then, execute the following commands:

cd frontend
flutter pub get
flutter build web

Backend (Rust)

To build the Rust backend, make sure you have Rust installed. Then, navigate to the backend directory and run:

cd backend
cargo build --release

Things still missing

  • proper error return from api
  • proper logging
  • auto update packages
  • implement repo-add in rust
  • keep older pkg versions in repo (repo-add limitation)

Contributors

Lukas-Heiligenbrunner

License

This project is licensed under the MIT License. Feel free to contribute and modify as per the guidelines outlined in the license agreement.