- Chore: ran `make npm@update` to update deps and lockfile
- Chat: new plugin: Socket.ts that allow the use of socket.io with
fastify (fastify-socket.io is not updated)
- Chat: Put everything from `src/socket.ts` that needed to be saved into
`src/app.ts`
- Removed `auth` table and merged its information inside the `user`
table
- Changed around some field names in the database
- Changed Create*User functions to not be using overload but different
functions
## 🦌 Centralized Logging Stack Integration
### ELK Stack Online
- Added **`elasticsearch`**, **`logstash`**, and **`kibana`** services to `docker-compose.yml`:
- **Elasticsearch** for log storage and indexing with persistent volumes.
- **Logstash** as the GELF entrypoint, handling log ingestion and transformation.
- **Kibana** as the web UI for log exploration, dashboards, and saved searches.
- Each ELK service is wired with:
- **Persistent storage** to survive restarts.
- **Environment variables** for credentials and tuning.
- **Bootstrap scripts** to perform initial setup (policies, templates, dashboards, etc.).
### Global GELF Logging
- All existing services now use the **GELF logging driver** in `docker-compose.yml`:
- Containers send their logs to **Logstash** instead of stdout-only.
- Provides **structured**, centralized logs ready for querying in Elasticsearch/Kibana.
- Result: no more log hunting across containers — everything lands in one searchable place.
---
## 🔁 Log Lifecycle & Visualization Automation
### Elasticsearch & Kibana Bootstrap
- Introduced **bootstrap scripts and config files** to automate:
- **Index Lifecycle Management (ILM)** policies for log retention and rollover.
- **Index templates** for log indices (naming, mappings, and settings).
- **Kibana imports** (index patterns / data views, dashboards, visualizations).
- This turns ELK setup from a manual ritual into a **single-command provisioning step**.
### Logstash Pipeline Upgrade
- Added a **Logstash pipeline configuration** to:
- Ingest **GELF** logs from Docker.
- **Normalize/rename fields** for consistent querying across services.
- Index logs into **Elasticsearch** with **daily rotation per container** pattern.
- Outcome: logs are structured, tagged by container, and auto-rotated to keep storage sane.
---
## 🛠 Makefile & Docker.mk Enhancements
### Logs Setup Targets
- Added a new **`logs`** target in `Makefile` (with `.PHONY` declaration) to manage logging setup from the top level.
- Added a **`logs-setup`** target in `Docker.mk` to:
- Initialize **ILM policies** in Elasticsearch.
- Apply **index templates** for logs.
- Create **Kibana index patterns** so logs are immediately visible in the UI.
- These targets plug into the existing tooling, making logging setup part of the **standard dev/ops workflow**.
---
## 🔐 Environment Configuration
### Secure Elasticsearch Access
- Updated `env.example` to include:
- **`ELASTIC_PASSWORD`**: central password for Elasticsearch authentication.
- Encourages **secure-by-default** deployments and aligns local/dev with production-style security.
---
## 📈 Monitoring Configuration Updates
### Grafana Alerting & Prometheus Cleanup
- Added a **basic alerting policy for Grafana**:
- Provides a default routing tree for alerts.
- Acts as a foundation for future, more granular alert rules.
- Cleaned up **Prometheus scrape configuration**:
- Removed obsolete backend scrape targets.
- Keeps monitoring config focused on **live** and relevant services.