Multi-network domain management
Two API backends, one unified UI. Browse domains across both networks, apply content in bulk, and track per-domain results — all in one authenticated dashboard.
API 1 and API 2 run as separate containers, each with their own MySQL database and Bearer token. Internal-only — accessed by the UI over the Docker network, never exposed publicly.
Select any number of domains across both networks, write title + body once, and submit. Results show per-domain — successes and 409 conflicts inline.
Filter by network, nameserver, MX record, A record, or domain name. Configurable page size (10 – 250 rows). Pagination with smart ellipsis.
Each API container is protected by a static Bearer token. Tokens differ between api1 and api2. The UI injects the correct key per request automatically.
docker-compose up -d --build starts all services, runs migrations, and seeds a default admin account automatically.
A unique constraint on (domain_id, user_id) enforces one record per user per domain. Duplicates return a 409 displayed inline.
domainsmode_uinetwork_1GET /api/domainsPOST /api/domains/{id}/contentnetwork_2# clone and start everything
git clone https://github.com/ash-rain/domainsmode
cd domainsmode
docker-compose up -d --build
# done — open in browser
open https://localhost:8443
Migrations and seeding run automatically inside each container on startup.
| Field | Value |
|---|---|
| [email protected] | |
| Password | password |
Created by the UI container on first start via DatabaseSeeder. Uses firstOrCreate — safe to restart.
localhost:8443
localhost:8444
localhost:8445
/grafana