feat: extract address tool into standalone project

This commit is contained in:
kory
2026-10-12 08:21:40 +08:00
commit 2fb416ac33
6 changed files with 1158 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
# Address Tool
A small Python standard-library HTTP service with a static web UI for address/profile test-data generation.
## Contents
- `server.py` — HTTP server and API proxy/fallback logic.
- `index.html` — browser UI; calls the local `/api/v1/dz` endpoint.
- `.env.example` — documented optional runtime environment variables.
- `deploy/address-tool.service.example` — example systemd unit for this repository layout.
## Requirements
- Python 3.10+ (standard library only; no `pip install` required).
- Network access to configured upstream services if generation is to use them.
- The page currently loads the Cap.js widget from jsDelivr and uses the CAPTCHA endpoint configured in `index.html`; those remain external services, not bundled code.
## Run locally
```sh
cp .env.example .env
# Optional: edit .env and set FNG_API_KEY.
set -a
. ./.env
set +a
python3 server.py
```
The service listens on `0.0.0.0:${ADDRESS_TOOL_PORT:-18990}`. Open `http://127.0.0.1:18990/` on the same host. Do not expose this unauthenticated service directly to the public internet without an appropriate access-control/reverse-proxy layer.
`FNG_API_KEY` is optional. When absent, the service skips the FakeNameGenerator API path and relies on the existing fallback provider. Never commit `.env` or API credentials.
## Existing deployment
The currently running production unit still points to `/root/.openclaw/workspace/address_tool`. This repository is an isolated extraction and does not change or restart that service. Review and test the new copy before migrating the systemd unit.
## External services
- FakeNameGenerator API (optional, when `FNG_API_KEY` is configured)
- `https://www.meiguodizhi.com/api/v1/dz` fallback API
- Cap.js widget/CDN configured in `index.html`
Check each provider's terms, availability, and privacy requirements before production use.