Domains
2
tools + galaxy
Tool Pages
19
HTML files
API Endpoints
6
PHP backends
Infrastructure
5
shared modules
Auth
3
auth methods
FTP Host
OVH
cluster100.hosting.ovh.net
Domain Mapping (OVH Multisite)
| Domain | FTP Root | Purpose | SSL |
|---|---|---|---|
tools.eqnx.vc | /portfolio/ | All internal tools (this site) | Let's Encrypt |
galaxy.eqnx.vc | /galaxy/ | Galaxy Fund I marketing site + tool copies | Let's Encrypt |
Deploy Architecture
tools.eqnx.vc
/portfolio/index.html Hubportfolio.html Tooldeal-flow.html Toolcompanies-index.html Tooldatabase.html Toolteam.html Tooljack.html Toolimprovements.html Tooldeals-api.php APIportfolio-api.php APIteam-api.php APIapi.php APIshared-auth.js Infrashared-error.js Infrarate-limit.php Infraaudit.php Infradeploy.sh
galaxy.eqnx.vc
/galaxy/index.html LP Sitefr.html, it.html, es.html, ar.html i18ndataroom.html Dataroomdataroom/index.html Fallbacksectors.js Shareddeploy.sh deploys tool files to /portfolio/{file} and /portfolio/{basename}/index.html only. Galaxy stays pure — only the LP marketing site and investor dataroom live there. sectors.js deploys to both /portfolio/ and /galaxy/ as it is shared. dataroom-galaxy.html deploys to /galaxy/dataroom.html only.
tools.eqnx.vc — URL Routing
| URL | Serves | Type | Status |
|---|---|---|---|
/ | tools-index.html (Hub) | Source | Live |
/portfolio/ | portfolio.html | 302 | Live |
/deal-flow/ | deal-flow.html | 302 | Live |
/companies/ | companies-index.html | 302 | Live |
/database/ | database.html | 302 | Live |
/team/ | team.html | 302 | Live |
/news/ | news.html | 302 | Live |
/audience/ | audience.html | 302 | Live |
/access/ | access.html | 302 | Live |
/improvements/ | improvements.html | 302 | Live |
/reporting/ | reporting.html | 302 | Live |
/websites/ | websites.html | 302 | Live |
/jack/ | jack.html | 302 | Live |
/dashboard/ | dashboard-new.html | 302 | Live |
/dataroom/ | dataroom-hub.html | 302 | Live |
/routing/ | routing.html | 302 | Live |
.htaccess in /portfolio/ handles all /tool/ → /tool.html redirects (302 temporary). Each tool also has a fallback /tool/index.html copy.
API Endpoints
| File | Endpoints | Data Store | Middleware |
|---|---|---|---|
deals-api.php | list, create, update, move, delete, reorder | /data/deals.json | Rate limit, Audit, CSRF |
team-api.php | list, create, update, delete | /data/team.json | Rate limit, Audit, CSRF |
improvements-api.php | list, get, create, update, delete, approve, reject, comment, status | /data/improvements.json | Rate limit, Audit, CSRF |
api.php | data (gate, analytics, contact, dataroom), log | /data/*.json | Rate limit, Audit, CSRF |
portfolio-api.php | load, save, version, backup | /data/portfolio.json | Rate limit, Audit, CSRF |
jack-api.php | chat, autofill | Claude API (external) | Rate limit |
Shared Infrastructure
| File | Type | Purpose |
|---|---|---|
shared-auth.js | JS | Google Sign-In, token management, auth utilities. EQNX_AUTH namespace. |
shared-error.js | JS | Global error handler (window.onerror + unhandledrejection). Error toast UI. |
rate-limit.php | PHP | IP-based rate limiting (60 req/min). File-based sliding window. |
audit.php | PHP | Change tracking to /data/audit.json. Capped at 10k entries. |
csrf-check.php | PHP | CSRF protection via Content-Type + Origin/Referer validation. |
backup.php | PHP | Timestamped backup of all /data/*.json. 30-day retention. |
jack-widget.js | JS | Floating Jack AI chat widget. Loaded on every tool page. |
Authentication
| Scope | Method | Session | Expiry |
|---|---|---|---|
| All tools (19 apps) | Google Sign-In — @eqnx.vc only | localStorage:eqnx_auth | 4 hours |
| Galaxy website | Gate form (email + company) | Own system (gate events) | Session |
| Data Room | Access Management (email-based) | Own system | Managed |
Google OAuth Client ID: 961770869786-...apps.googleusercontent.com. Domain restriction: @eqnx.vc. All tools share the same localStorage token.
Data Storage
| Data | Location | Access | Backup |
|---|---|---|---|
| Portfolio (companies, SPVs, investments) | /data/portfolio.json + localStorage | portfolio-api.php | 10 versions in /data/portfolio_history/ |
| Deals | /data/deals.json | deals-api.php | backup.php |
| Team | /data/team.json | team-api.php | backup.php |
| Gate / Analytics / Contact / Dataroom | /data/*.json | api.php | backup.php |
| Improvements | /data/improvements.json | improvements-api.php | backup.php |
| Audit Log | /data/audit.json | Direct read | backup.php |
| Backups | /data/backups/backup_{timestamp}/ | backup.php | 30-day retention |