A self-hosted address and synthetic test-profile generator for 27 countries and regions, built from real open-data streets, administrative areas, coordinates, and postcodes. Supports multilingual output, IP-nearby generation, map previews, and API access. 基于真实开放数据的自托管地址与合成测试资料生成器,覆盖 27 个国家和地区,支持多语言地址、IP 附近生成、地图预览与 API 调用
See the codeSelf-hosted real-address generator backed by official registries and open map data for 27 countries and regions
Address returns addresses that actually exist instead of randomly assembled strings. Every record comes from an official address register, open map data, or a validated geocoding result, and carries its source, precision, and coordinates. Missing fields stay empty; nothing is invented.
Use it for form and checkout testing, address-format validation, logistics demos, and anywhere an address must look real and be real.
# 1. Create a deployment directory and download the Compose file
mkdir address && cd address
curl -fsSLo docker-compose.yml https://raw.githubusercontent.com/daimon3332/address/main/docker-compose.yml
# 2. Start all services
docker compose up -d
# 3. Check readiness
docker compose ps
curl -fsS http://127.0.0.1:8787/api/v1/ready
On first start the stack:
data/ and runtime/ directories next to the Compose file;data/secrets/;http://127.0.0.1:8787/admin/ and sign in with the initial password admin.To start with your own password, set
ADMIN_INITIAL_PASSWORDbefore the firstdocker compose up -d.
The API listens on 127.0.0.1:8787 only. Put it behind an HTTPS reverse proxy and create a .env next to the Compose file:
ALLOWED_ORIGINS=https://address.example.com
TRUST_PROXY=true
COOKIE_SECURE=true
See the deployment guide for Nginx and Caddy examples, upgrades, backups, and restores.
Open http://127.0.0.1:8787/, pick a country, area, and display language, and generate. Results can be copied, exported, saved to favorites, or opened in Google Maps or AMap.
curl -fsS "http://127.0.0.1:8787/api/v1/generate?country=US&city=Seattle" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"data": {
"country": "US",
"filters": { "city": "Seattle" },
"filterMatchLevel": "exact",
"result": {
"address": {
"formattedAddress": "4019 Aikins Avenue Southwest, Seattle, WA, 98116",
"matchLevel": "premise",
"propertyType": "residential",
"coordinates": { "latitude": 47.567944, "longitude": -122.40706 }
}
}
}
}
The response is abridged. matchLevel is the address precision (street, premise, or subpremise); propertyType is residential only when independent residential evidence exists. See the API reference for every endpoint, parameter, and error code.
The service runs without any third-party key, using open sources that need no authorization. China map platforms, Google Geocoding, and translation services only extend data for specific countries or enable online translation; add them under Map Keys in the admin console. See API keys for how to obtain each one.
| Admin · Dashboard | Admin · Country workspace |
|---|---|
![]() | ![]() |
| Country detail | Translation credential test |
![]() | ![]() |
| Public coverage monitor | US address |
![]() | ![]() |
| Region | Countries and regions |
|---|---|
| North America | United States US, Canada CA, Mexico MX |
| Europe | United Kingdom GB, Germany DE, France FR, Italy IT, Spain ES, Netherlands NL, Russia RU |
| East Asia | China CN, Hong Kong HK, Taiwan TW, Japan JP, South Korea KR |
| Southeast Asia | Singapore SG, Malaysia MY, Thailand TH, Philippines PH, Vietnam VN |
| South Asia | India IN |
| Oceania | Australia AU |
| Middle East | Türkiye TR, Saudi Arabia SA |
| South America | Brazil BR |
| Africa | Nigeria NG, South Africa ZA |
Sources, field provenance, and residential evidence per country are listed in the data sources document.
Browser ──► Astro + React pages
│
▼
Hono API ──► PostgreSQL (address pool, admin catalog, control data)
│
└─ prebuilt random/filter indexes, local formatting and translation
Sync service ──► official registers / OpenStreetMap / Overture / map platforms
│ validates source, administrative area, language, coordinates
▼
per-country transactional publish ──► PostgreSQL
A country is complete only when three rules hold at once: the valid-address total, the lowest-level administrative coverage, and the per-level node minimums. When a source is proven to have nothing new, the country shows Source limit reached and stops re-entering the queue until the source changes.
| Document | Contents |
|---|---|
| Deployment | Docker Compose, reverse proxy, upgrades, backup and restore, troubleshooting |
| API | Authentication, endpoints, parameters, batch generation, errors |
| API keys | What each provider is for, how to obtain keys, admin setup |
| Development | Local setup, project layout, tests, release checks |
| Data sources | Sources, publication rules, synchronization flow (Chinese) |
| Country strategies | Per-country fields, coordinates, deduplication, validation (Chinese) |
Source code is released under the MIT License. Upstream datasets keep their own licenses and attribution requirements; see the data sources document.
475 followers · starred Sep 2026
86 followers · starred Sep 2026
4 followers · starred Jul 2026
28 followers · starred Aug 2026
A self-hosted address and synthetic test-profile generator for 27 countries and regions, built from real open-data streets, administrative areas, coordinates, and postcodes. Supports multilingual output, IP-nearby generation, map previews, and API access. 基于真实开放数据的自托管地址与合成测试资料生成器,覆盖 27 个国家和地区,支持多语言地址、IP 附近生成、地图预览与 API 调用
See the codeSelf-hosted real-address generator backed by official registries and open map data for 27 countries and regions
Address returns addresses that actually exist instead of randomly assembled strings. Every record comes from an official address register, open map data, or a validated geocoding result, and carries its source, precision, and coordinates. Missing fields stay empty; nothing is invented.
Use it for form and checkout testing, address-format validation, logistics demos, and anywhere an address must look real and be real.
# 1. Create a deployment directory and download the Compose file
mkdir address && cd address
curl -fsSLo docker-compose.yml https://raw.githubusercontent.com/daimon3332/address/main/docker-compose.yml
# 2. Start all services
docker compose up -d
# 3. Check readiness
docker compose ps
curl -fsS http://127.0.0.1:8787/api/v1/ready
On first start the stack:
data/ and runtime/ directories next to the Compose file;data/secrets/;http://127.0.0.1:8787/admin/ and sign in with the initial password admin.To start with your own password, set
ADMIN_INITIAL_PASSWORDbefore the firstdocker compose up -d.
The API listens on 127.0.0.1:8787 only. Put it behind an HTTPS reverse proxy and create a .env next to the Compose file:
ALLOWED_ORIGINS=https://address.example.com
TRUST_PROXY=true
COOKIE_SECURE=true
See the deployment guide for Nginx and Caddy examples, upgrades, backups, and restores.
Open http://127.0.0.1:8787/, pick a country, area, and display language, and generate. Results can be copied, exported, saved to favorites, or opened in Google Maps or AMap.
curl -fsS "http://127.0.0.1:8787/api/v1/generate?country=US&city=Seattle" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"data": {
"country": "US",
"filters": { "city": "Seattle" },
"filterMatchLevel": "exact",
"result": {
"address": {
"formattedAddress": "4019 Aikins Avenue Southwest, Seattle, WA, 98116",
"matchLevel": "premise",
"propertyType": "residential",
"coordinates": { "latitude": 47.567944, "longitude": -122.40706 }
}
}
}
}
The response is abridged. matchLevel is the address precision (street, premise, or subpremise); propertyType is residential only when independent residential evidence exists. See the API reference for every endpoint, parameter, and error code.
The service runs without any third-party key, using open sources that need no authorization. China map platforms, Google Geocoding, and translation services only extend data for specific countries or enable online translation; add them under Map Keys in the admin console. See API keys for how to obtain each one.
| Admin · Dashboard | Admin · Country workspace |
|---|---|
![]() | ![]() |
| Country detail | Translation credential test |
![]() | ![]() |
| Public coverage monitor | US address |
![]() | ![]() |
| Region | Countries and regions |
|---|---|
| North America | United States US, Canada CA, Mexico MX |
| Europe | United Kingdom GB, Germany DE, France FR, Italy IT, Spain ES, Netherlands NL, Russia RU |
| East Asia | China CN, Hong Kong HK, Taiwan TW, Japan JP, South Korea KR |
| Southeast Asia | Singapore SG, Malaysia MY, Thailand TH, Philippines PH, Vietnam VN |
| South Asia | India IN |
| Oceania | Australia AU |
| Middle East | Türkiye TR, Saudi Arabia SA |
| South America | Brazil BR |
| Africa | Nigeria NG, South Africa ZA |
Sources, field provenance, and residential evidence per country are listed in the data sources document.
Browser ──► Astro + React pages
│
▼
Hono API ──► PostgreSQL (address pool, admin catalog, control data)
│
└─ prebuilt random/filter indexes, local formatting and translation
Sync service ──► official registers / OpenStreetMap / Overture / map platforms
│ validates source, administrative area, language, coordinates
▼
per-country transactional publish ──► PostgreSQL
A country is complete only when three rules hold at once: the valid-address total, the lowest-level administrative coverage, and the per-level node minimums. When a source is proven to have nothing new, the country shows Source limit reached and stops re-entering the queue until the source changes.
| Document | Contents |
|---|---|
| Deployment | Docker Compose, reverse proxy, upgrades, backup and restore, troubleshooting |
| API | Authentication, endpoints, parameters, batch generation, errors |
| API keys | What each provider is for, how to obtain keys, admin setup |
| Development | Local setup, project layout, tests, release checks |
| Data sources | Sources, publication rules, synchronization flow (Chinese) |
| Country strategies | Per-country fields, coordinates, deduplication, validation (Chinese) |
Source code is released under the MIT License. Upstream datasets keep their own licenses and attribution requirements; see the data sources document.
475 followers · starred Sep 2026
86 followers · starred Sep 2026
4 followers · starred Jul 2026
28 followers · starred Aug 2026