anatol / pacoloco

Caching proxy server for Arch Linux pacman
MIT License
199 stars 30 forks source link

Support per-repo http_proxy #101

Closed 7Ji closed 4 months ago

7Ji commented 4 months ago

This adds a feature with which http_proxy could be set on a per-repo basis.

This is useful if pacoloco runs on a server where most of the repos it serve are easy to access, but some others are not, e.g.:

E.g. this is my config:

repos:
  archlinux:
    urls:
      - http://mirrors.wsyu.edu.cn/archlinux
      - http://mirrors.163.com/archlinux
      - https://mirrors.aliyun.com/archlinux
      - http://mirrors.tuna.tsinghua.edu.cn/archlinux
  archlinuxarm:
    urls:
      - http://mirrors.163.com/archlinuxarm
      - https://mirrors.aliyun.com/archlinuxarm
  archlinuxcn_x86_64:
    urls:
      - http://mirrors.wsyu.edu.cn/archlinucn
      - http://mirrors.163.com/archlinucn
      - https://mirrors.aliyun.com/archlinuxcn
  archlinuxcn_aarch64:
    urls:
      - http://mirrors.wsyu.edu.cn/archlinucn
      - http://mirrors.163.com/archlinucn
      - https://mirrors.aliyun.com/archlinuxcn
  7Ji_x86_64:
    http_proxy: http://proxy.lan:1085
    url: https://github.com/7Ji/archrepo/releases/download
  7Ji_aarch64:
    http_proxy: http://proxy.lan:1085
    url: https://github.com/7Ji/archrepo/releases/download

As the config shows, there're mirrors for archlinux, archlinuxcn and archlinuxarm in China so I don't want to set a global http_proxy to waste my proxy bandwidth, but repo 7Ji uses Github releases as storage and it is hard to access without a proxy in China, so I want to use proxy for and only for repo 7Ji.

anatol commented 4 months ago

The PR looks good to me. Let's move forward with it.