# local-arch-repo Running multiple Arch devices? Create your own package archive repository and simply add another device. This is actually for a PinePhone (aarch64), PIs (armv7h) and other x86_64 Arch devices. Probably others will follow. # What does it? These are just a few bash scripts to install your local repository or add another client, and two hooks for your pacman updates. On the _server_ side, the __rsync daemon__ + credentials + config file modifications are created to be ready for the clients. Furthermore, the __hooks__ are placed and also the `repo-add.sh` script for the `post exec` commands - after the client has pushed its packages or for the server after it has received an update via pacman (hook). The `pacman.conf` is modified for the new repository and the new package cache path. On the _client_ side, `pacman.conf` is also changed for the new repository. Like on the server, the hooks are placed and `archive_packages.sh` is copied to the root folder, which will be activated via the hook. Rsync credentials are created. # Usage Just run the `start.sh` script and chose either `SERVER` or `client`. ## Packages ``` sudo pacman -S rsync pacman-contrib ``` ## Webserver ### Nginx Add this to you webserver. ``` server { listen 8080; server_name SERVER_IP; location / { root /srv/http/repo/; autoindex on; } } ``` ### python ``` cd /srv/http/repo/ python -m http.server ``` ### darkhttpd ``` pacman -S darkhttpd sudo -u http darkhttpd /srv/http/repo/ --no-server-id ``` ## (Optional) Crontab -e Packages older than half a year will be deleted. ``` @monthly find /srv/http/repo/* -mtime +182.5 -type f -regex ".*pkg*.*" -delete ``` ## Server & client ``` git clone https://github.com/TECH-SAVIOURS-ORG/local-arch-repo.git cd local-arch-repo chmod u+x start.sh sudo ./start.sh ``` ## Test it (client) ``` /root/archive_packages.sh ```