File size: 1,787 Bytes
48d895c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #!/usr/bin/env python3
"""
Init script: 在 grok2api 启动前写入代理配置到 data/config.toml。
用于 docker-compose.warp.yml 的 init-config 服务。
"""
import pathlib
DATA_DIR = pathlib.Path("/app/data")
CONFIG_PATH = DATA_DIR / "config.toml"
PROXY_CONFIG = """
[proxy.egress]
mode = "single_proxy"
proxy_url = "http://privoxy:8118"
resource_proxy_url = "http://privoxy:8118"
proxy_pool = []
resource_proxy_pool = []
skip_ssl_verify = false
[proxy.clearance]
mode = "flaresolverr"
cf_cookies = ""
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"
browser = "chrome136"
flaresolverr_url = "http://flaresolverr:8191"
timeout_sec = 60
refresh_interval = 3600
"""
DATA_DIR.mkdir(parents=True, exist_ok=True)
if not CONFIG_PATH.exists():
CONFIG_PATH.write_text(PROXY_CONFIG.strip() + "\n")
print("[init-config] Created config.toml with proxy settings")
else:
content = CONFIG_PATH.read_text()
if "privoxy" not in content:
# 替换已有的 proxy 配置段,或追加
import re
# 移除旧的 proxy.egress 和 proxy.clearance 段
content = re.sub(
r'\[proxy\.egress\].*?(?=\[|\Z)',
'',
content,
flags=re.DOTALL,
)
content = re.sub(
r'\[proxy\.clearance\].*?(?=\[|\Z)',
'',
content,
flags=re.DOTALL,
)
content = content.rstrip() + "\n" + PROXY_CONFIG.strip() + "\n"
CONFIG_PATH.write_text(content)
print("[init-config] Updated config.toml with proxy settings")
else:
print("[init-config] Proxy settings already present, skipping")
|