#代理 #内容 #可配置 #图像 #二进制 #视频 #隐私

app aigis-bin

Aigis的二进制文件,一个简单且可配置的内容代理

4个版本

0.2.2 2024年4月20日
0.2.1 2024年3月26日
0.2.0 2024年3月26日
0.1.1 2024年3月25日
0.1.0 2024年3月22日

#92HTTP服务器

每月25次下载

MIT/Apache

55KB
593

Aigis

您正在查看Aigis二进制的README。如果您想将Aigis作为Rust库的一部分运行,请使用此链接

Aigis是一个简单且可配置的内容代理,旨在为想要从外部源嵌入图像和视频内容的同时保护用户隐私的网站。

注意

Aigis是一个兴趣爱好项目,尚未考虑用于生产,并且API是不稳定的。关于它的任何内容,包括功能、功能和性能,都可能随着稳定性的提高而迅速变化。该项目是基于我自己的基础设施和需求设计的,可能不适合您。请务必考虑其他选项,例如imageproxyImageWizard

功能

  • 通过查询参数代理端点图像缩放和格式更改。
  • 上游请求缓存,遵守Cache-Control头。
  • Content-Type允许列表。
  • '嵌入'端点将OpenGraph元标签转换为JSON格式,供嵌入内容的前端应用程序使用。
  • 改进了请求错误的格式。
  • 支持--proxy-allowed-domains的子域名通配符。

安装

Docker

每次发布都会在GHCR上发布官方Docker镜像,这是推荐运行服务器的方式。

假设您已经在本地安装了Docker或其他容器工具,只需运行以下命令(将<tag>替换为您想使用的版本)。

docker run --name aigis -p 3005:3005 ghcr.io/blooym/aigis:<tag>

Cargo

假设您已经在本地安装了Cargo,您可以简单地运行以下命令来编译二进制文件。

cargo install aigis-bin

配置

Aigis通过命令行标志或环境变量进行配置,并完全支持从.env文件中获取配置信息。以下是所有支持的配置选项列表。您也可以运行aigis --help以获取最新的包括默认值。

名称 描述 标志 环境
地址 本地服务器应托管上的套接字地址 --address AIGIS_ADDRESS
请求超时 在强制终止之前,传入请求的最大生命周期 --request-timeout AIGIS_REQUEST_TIMEOUT
允许上游无效证书 在发起上游请求时允许自签名/无效/伪造的TLS证书(危险) --upstream-allow-invalid-certs AIGIS_UPSTREAM_ALLOW_INVALID_CERTS
上游请求超时 在强制终止之前,上游请求的最大生命周期(秒) --upstream-request-timeout AIGIS_UPSTEAM_REQUEST_TIMEOUT
上游最大重定向 发起上游请求时可以跟随的最大重定向次数 --upstream-max-redirects AIGIS_UPSTREAM_MAX_REDIRECTS
使用接收到的缓存头 是否发送从上游服务器请求时接收到的Cache-Control头值,如果可用的话 --use-received-cache-headers AIGIS_UPSTREAM_USE_RECEIVED_CACHE_HEADERS
传递头到上游 应从原始请求传递到上游的头名称列表,如果已设置。 --upstream-pass-headers AIGIS_UPSTREAM_PASS_HEADERS
代理最大内容大小 此服务器可以代理的最大Content-Length --proxy-max-size AIGIS_PROXY_MAX_SIZE
代理允许的MIME类型 允许此服务器代理的MIME "本质"字符串列表。支持类型通配符(例如,'image/*') --proxy-allowed-mimetypes AIGIS_PROXY_ALLOWED_MIMETYPES
代理允许的域 允许代理内容的域列表。为空时允许所有域。不支持通配符 --proxy-allowed-domains AIGIS_PROXY_ALLOWED_DOMAINS
代理最大缩放分辨率 在代理支持运行时修改的内容时,允许请求的最大分辨率(包括) proxy-max-upscale-res AIGIS_PROXY_MAX_UPSCALE_RES

许可

Aigis同时受MIT许可证Apache 2.0许可证的双重许可,您可选择其一。

依赖

~22–38MB
~626K SLoC