From e4c9c027c6107632c6d1eb817f008799c68ae4eb Mon Sep 17 00:00:00 2001 From: soulteary Date: Mon, 13 Jun 2022 00:32:10 +0800 Subject: [PATCH] docs: update docs --- README.md | 90 ++++++++++++++++++++++++++++++++------- screenshot/dockerhub.png | Bin 0 -> 40854 bytes 2 files changed, 75 insertions(+), 15 deletions(-) create mode 100644 screenshot/dockerhub.png diff --git a/README.md b/README.md index 44a40cd..266622a 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,85 @@ # APT Proxy -Small and Reliable APT packages cache tool, supports both Ubuntu and Debian. +> Lightweight **APT CHACHE PROXY** with only 2MB+ size! + + + +APT Proxy is a Lightweight and Reliable APT packages (Ubuntu / Debian) cache tool, supports a large number of common system and Docker usage. You can safely use it instead of [apt-cacher-ng](https://www.unix-ag.uni-kl.de/~bloch/acng/). -## (WIP) Usage +## Supported Systems and Architectures + +- Linux: x86_64 / x86_32 +- ARM: ARM64v8 / ARM32v6 / ARM32v7 +- macOS: x86_64 / M1 ARM64v8 + +## Usage + +Just run it: + +```bash +./apt-proxy + +2022/06/12 16:15:40 running apt-proxy +2022/06/12 16:15:41 Start benchmarking mirrors +2022/06/12 16:15:41 Finished benchmarking mirrors +2022/06/12 16:15:41 using fastest mirror https://mirrors.company.ltd/ubuntu/ +2022/06/12 16:15:41 proxy listening on 0.0.0.0:3142 +``` + +An APT proxy software with a cache function is started. + +Then rewrite the command where you need to execute the `apt-get` command and execute it: + +```bash +# `apt-get update` with apt-proxy service +http_proxy=http://your-domain-or-ip-address:3142 apt-get -o pkgProblemResolver=true -o Acquire::http=true update +# `apt-get install vim -y` with apt-proxy service +http_proxy=http://your-domain-or-ip-address:3142 apt-get -o pkgProblemResolver=true -o Acquire::http=true install vim -y +``` + +When we need to execute the above commands repeatedly in batches, the speed of update and installation **will be greatly improved**. + +## Docker + +Just one command: + +```bash +docker run -d --name=apt-proxy -p 3142:3142 soulteary/apt-proxy +``` + +## Options -- Binaries -- Docker +View configuration items: -## Development +```bash +./apt-proxy -h + +Usage of apt-proxy: + -cachedir string + the dir to store cache data in (default "./.aptcache") + -debug + whether to output debugging logging + -host string + the host to bind to (default "0.0.0.0") + -mirror string + the mirror for fetching packages + -port string + the port to bind to (default "3142") + -type string + select the type of system to cache: ubuntu/debian (default "ubuntu") +``` + +## [WIP] Development + +Start the application in development mode: + +```bash +go run apt-proxy.go +``` -coverage: +### Run Test And Get Coverage ```bash # go test -cover ./... @@ -40,15 +108,7 @@ ok github.com/soulteary/apt-proxy 0.485s # go tool cover -html=coverage.out ``` - - -### (WIP) Development - -```bash -go run apt-proxy.go -``` - -## Ubuntu / Debian Debugging +### Ubuntu / Debian Debugging ``` http_proxy=http://192.168.33.1:3142 apt-get -o Debug::pkgProblemResolver=true -o Debug::Acquire::http=true update diff --git a/screenshot/dockerhub.png b/screenshot/dockerhub.png new file mode 100644 index 0000000000000000000000000000000000000000..da087e8e0027d57e906fd03d6c971d33fa94e5db GIT binary patch literal 40854 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 FzW{*o&m{l= literal 0 HcmV?d00001