External Dependencies¶
These are systems and services that live outside the VPS and the Docker Compose stack. Changes to them require coordination with third-party providers or separate infrastructure teams.
Elasticsearch Cluster¶
The search and vector storage backend. Not running on the main VPS.
| Item | Value |
|---|---|
| Host | 172.236.132.81 |
| Port | 9200 (HTTPS) |
| Kibana | 172.236.132.82:5601 |
| Authentication | Basic auth — ES_USER / ES_PASSWORD from .env |
| Managed via | Kubernetes — kubeconfig at elastic-kubeconfig.yaml in project root |
Elasticsearch Snapshot Backups¶
Snapshots are stored in Linode Object Storage and managed separately from the SQLite backups.
| Item | Value |
|---|---|
| Snapshot bucket | elastic-backup |
| Repository name | linode_backup |
| Region | sg-sin-1 |
| Credentials | Stored as a Kubernetes secret in the Elasticsearch cluster |
Full procedures are documented in ELASTICSEARCH_BACKUP_GUIDE.md in the project root.
Embedding Service¶
All vector embedding generation (turning text into dense vectors) is handled by an external service rather than running a local model.
| Item | Value |
|---|---|
| URL | https://embed.zygy.com/embed |
| Model | intfloat/multilingual-e5-large-instruct (default) |
| Auth | EMBEDDING_API_KEY from .env |
| Config variable | EMBEDDING_SERVICE_URL |
Why external?
The embedding model was migrated from a local HuggingFace container to reduce memory footprint and improve scalability on the VPS.
LLM Provider¶
All backend services use a configurable LLM provider. The active provider is set by LLM_PROVIDER in .env.
LLM_PROVIDER value |
Description |
|---|---|
custom |
Custom API endpoint (default; used with Z.AI) |
zai |
Z.AI platform |
openai |
OpenAI API |
openrouter |
OpenRouter (model aggregator) |
huggingface |
HuggingFace Inference API |
Current production config¶
| Variable | Value / Purpose |
|---|---|
OPENAI_API_BASE |
https://api.openai.com/v1 |
OPENAI_API_KEY |
OpenAI API key |
MODEL_NAME |
gpt-4.1 (default model for most services) |
CHART_MODEL_NAME |
gpt-4.1 (chart generation) |
LLM_MODEL_NAME |
gpt-4o (LLM-specific override) |
To switch LLM providers or models, see MODEL_CHANGER_GUIDE.md in the project root.
MongoDB (via Mongo Tunnel)¶
The MongoDB instance is hosted externally and accessed exclusively through the SSH tunnel.
| Item | Value |
|---|---|
| Remote host | 103.3.62.250 |
| SSH port | 9823 |
| MongoDB port | 27017 |
| Connection string | mongodb://zygy:<password>@mongo-tunnel:27017 |
See Mongo Tunnel for full setup details.
Linode Object Storage¶
Used for SQLite database backups.
| Item | Value |
|---|---|
| Provider | Linode (Akamai Cloud) Object Storage |
| Region | sg-sin-1 (Singapore) |
| Endpoint | sg-sin-1.linodeobjects.com |
| SQLite backup bucket | zygy-backups-service |
| Elasticsearch snapshot bucket | elastic-backup |
| Credentials | LINODE_ACCESS_KEY / LINODE_SECRET_KEY in .env |
SMTP (Email)¶
Used by backend-dailysummary for daily report emails.
| Item | Value |
|---|---|
| Host | smtppro13.mschosting.com |
| Port | 465 (SSL) |
| Provider | Exabytes hosting |
| Credentials | SMTP_USER / SMTP_PASSWORD in .env |
Java Backend (OSINT / Social Intelligence)¶
A separate Java-based service for social intelligence / OSINT features.
| Item | Value |
|---|---|
| URL | https://osint.zygy.ai |
| Config variable | JAVA_BACKEND_URL |
This service is maintained separately and is not part of this Docker Compose stack.