Initial commit - NUC server configuration and docs
- CLAUDE.md: Server instructions and service reference - docs/: Persistent documentation (architecture, guides) - .artifacts/: Session-generated notes - playwriter-browser/: Remote browser container config Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
56
.artifacts/2026-02-01_13-20_task-runners-healthcheck-fix.md
Normal file
56
.artifacts/2026-02-01_13-20_task-runners-healthcheck-fix.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Task Runners Health Check Fix
|
||||
|
||||
**Date:** 2026-02-01 13:20
|
||||
**Context:** Fixed unhealthy status on n8n task-runners container
|
||||
|
||||
## Problem
|
||||
|
||||
The `task-runners-uk0o04o0g84s4sc80kkoooc0` container was showing as unhealthy with 60,395+ consecutive failures.
|
||||
|
||||
**Root Cause:** Health check was configured to hit `/` but the actual health endpoint is `/healthz`
|
||||
|
||||
| Configured | Actual Endpoint |
|
||||
|------------|-----------------|
|
||||
| `http://127.0.0.1:5680/` | Returns 404 |
|
||||
| `http://127.0.0.1:5680/healthz` | Returns `{"status":"ok"}` |
|
||||
|
||||
## Solution
|
||||
|
||||
Updated Coolify's docker-compose configuration for the n8n service:
|
||||
|
||||
```bash
|
||||
docker exec coolify php artisan tinker --execute="
|
||||
use App\Models\Service;
|
||||
\$service = Service::find(4);
|
||||
\$compose = \$service->docker_compose_raw;
|
||||
\$compose = str_replace(
|
||||
\"'wget -qO- http://127.0.0.1:5680/'\",
|
||||
\"'wget -qO- http://127.0.0.1:5680/healthz'\",
|
||||
\$compose
|
||||
);
|
||||
\$service->docker_compose_raw = \$compose;
|
||||
\$service->save();
|
||||
"
|
||||
```
|
||||
|
||||
Then restarted the service:
|
||||
```bash
|
||||
docker exec coolify php artisan tinker --execute="
|
||||
use App\Models\Service;
|
||||
use App\Actions\Service\StopService;
|
||||
use App\Actions\Service\StartService;
|
||||
\$service = Service::find(4);
|
||||
StopService::run(\$service);
|
||||
StartService::run(\$service);
|
||||
"
|
||||
```
|
||||
|
||||
## Result
|
||||
|
||||
- Container now shows as **healthy**
|
||||
- Health check correctly hitting `/healthz` endpoint
|
||||
|
||||
## Related
|
||||
- n8n Service ID: 4
|
||||
- n8n Service UUID: uk0o04o0g84s4sc80kkoooc0
|
||||
- Coolify: http://192.168.1.3:8000
|
||||
132
.artifacts/2026-02-01_16-45_liquidgym-mysql-migration.md
Normal file
132
.artifacts/2026-02-01_16-45_liquidgym-mysql-migration.md
Normal file
@@ -0,0 +1,132 @@
|
||||
# LiquidGym & Knosia Migration to NUC
|
||||
|
||||
**Date:** 2026-02-01 16:45
|
||||
**Context:** Migrated LiquidGym MySQL and Knosia PostgreSQL from local Docker to NUC Coolify
|
||||
|
||||
## NUC MySQL Connection
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Host | 192.168.1.3 |
|
||||
| Port | 3306 |
|
||||
| Database | liquidgym |
|
||||
| User | liquidgym |
|
||||
| Password | liquidgym_nuc_2026 |
|
||||
| Root Password | liquidgym_root_nuc_2026 |
|
||||
| Coolify UUID | hgwcgs4oswwc8scg080scoo4 |
|
||||
| External URL | mysql://liquidgym:liquidgym_nuc_2026@192.168.1.3:3306/liquidgym |
|
||||
|
||||
## Local Volumes (Safe to Delete)
|
||||
|
||||
These local volumes contained LiquidGym MySQL data and are now migrated:
|
||||
- `infra_mysql_data` - Active data (migrated)
|
||||
- `infra_mysql_logs` - Logs
|
||||
- `liquidgym_mysql_data` - Stale duplicate
|
||||
- `liquidgym_mysql_logs` - Stale duplicate
|
||||
|
||||
## Project Updates
|
||||
|
||||
The liquidgym project at `/Users/agutierrez/Desktop/liquidgym` has been updated:
|
||||
- Added `.env.nuc` with NUC MySQL configuration
|
||||
- Local MySQL in docker-compose.yml can still be used for isolated testing
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# Use NUC MySQL (remote)
|
||||
cd ~/Desktop/liquidgym/infra
|
||||
cp .env.nuc .env
|
||||
docker compose up cloudbeaver -d
|
||||
|
||||
# Use local MySQL (isolated)
|
||||
docker compose --profile tier1 up mysql -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Knosia (LiquidRender) PostgreSQL
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Host | 192.168.1.3 |
|
||||
| Port | 5442 |
|
||||
| Database | knosia |
|
||||
| User | knosia |
|
||||
| Password | knosia_nuc_2026 |
|
||||
| Coolify UUID | ik80skko0008w4000c4w40os |
|
||||
| pgvector | 0.8.1 enabled |
|
||||
| External URL | postgresql://knosia:knosia_nuc_2026@192.168.1.3:5442/knosia |
|
||||
|
||||
## NUC MinIO for Knosia
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Endpoint | http://192.168.1.3:9000 |
|
||||
| Bucket | knosia |
|
||||
| Access Key | Dt6yvE0MTH7N4GBz |
|
||||
| Secret Key | iz6Fl5aAixTgyzRcRLZrjmCM02CBCdmZ |
|
||||
| Coolify Service | dg4wkgg8skcssww0040sgk80 |
|
||||
|
||||
## Project Updates
|
||||
|
||||
- LiquidGym: `/Desktop/liquidgym/infra/.env.nuc`
|
||||
- LiquidRender (Knosia): `/Desktop/liquidrender/.env.nuc`
|
||||
|
||||
---
|
||||
|
||||
## LiquidGym PostgreSQL (Test Datasets)
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Host | 192.168.1.3 |
|
||||
| Port | 5433 |
|
||||
| User | postgres |
|
||||
| Password | postgres |
|
||||
| Coolify UUID | x4kk8g4k8w4g0cw480w84g4g |
|
||||
|
||||
**Databases migrated (~520MB total):**
|
||||
| Database | Size | Description |
|
||||
|----------|------|-------------|
|
||||
| employees | 334 MB | HR dataset |
|
||||
| adventureworks | 114 MB | Sales/HR sample |
|
||||
| lego | 43 MB | LEGO sets |
|
||||
| pagila | 17 MB | DVD rental |
|
||||
| netflix | 11 MB | Netflix titles |
|
||||
| chinook | 10 MB | Music store |
|
||||
| northwind | 8 MB | Classic sample |
|
||||
|
||||
---
|
||||
|
||||
## Google Reviews Scraper PostgreSQL
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Host | 192.168.1.3 |
|
||||
| Port | 5437 |
|
||||
| Database | scraper |
|
||||
| User | scraper |
|
||||
| Password | scraper_nuc_2026 |
|
||||
| Coolify UUID | g4s8w4csk8s8ocswg48kkogo |
|
||||
|
||||
**Data migrated:**
|
||||
| Table | Rows |
|
||||
|-------|------|
|
||||
| jobs | 21 |
|
||||
| gbp_categories | 4,141 |
|
||||
| canary_results | 25 |
|
||||
|
||||
**Project files:**
|
||||
- `.env.nuc` - NUC database config
|
||||
- `docker-compose.nuc.yml` - Override to use NUC DB
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
cd ~/Desktop/google-reviews-scraper-pro
|
||||
cp .env.nuc .env
|
||||
docker compose -f docker-compose.production.yml -f docker-compose.nuc.yml up -d
|
||||
```
|
||||
|
||||
## Related
|
||||
- CloudBeaver on NUC: http://192.168.1.3:8087
|
||||
- MinIO Console: http://192.168.1.3:9001
|
||||
- Coolify Dashboard: http://192.168.1.3:8000
|
||||
124
.artifacts/2026-02-01_17-15_liquidgym-database-engines.md
Normal file
124
.artifacts/2026-02-01_17-15_liquidgym-database-engines.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# LiquidGym Database Engines Reference
|
||||
|
||||
**Date:** 2026-02-01 17:15
|
||||
**Context:** Reference guide for LiquidGym's multi-engine SQL testing infrastructure
|
||||
|
||||
## Overview
|
||||
|
||||
LiquidGym is a multi-database testing environment designed to verify that analytical queries work identically across different database engines. This ensures engine-agnostic query generation.
|
||||
|
||||
## Engine Tiers
|
||||
|
||||
### Core (Always Started)
|
||||
| Engine | Image | Port | Purpose |
|
||||
|--------|-------|------|---------|
|
||||
| PostgreSQL 16 | `postgres:16` | 5433 | Primary test database with sample datasets |
|
||||
| CloudBeaver | `dbeaver/cloudbeaver` | 8978 | Web-based database UI |
|
||||
|
||||
### Tier 1: Essential Engines
|
||||
Different SQL dialects for cross-engine testing.
|
||||
|
||||
| Engine | Image | Port | Description |
|
||||
|--------|-------|------|-------------|
|
||||
| **ClickHouse** | `clickhouse/clickhouse-server` | 8123 (HTTP), 9000 (Native) | Column-oriented OLAP database. Extremely fast for analytics on billions of rows. Used by Cloudflare, Uber, eBay. Best for: logs, metrics, time-series analytics. |
|
||||
| **MySQL 8** | `mysql:8` | 3306 | World's most popular open-source RDBMS. Tests MySQL-specific SQL dialect. |
|
||||
|
||||
### Tier 2: Distributed & Specialized
|
||||
| Engine | Image | Port | Description |
|
||||
|--------|-------|------|-------------|
|
||||
| **Trino** | `trinodb/trino` | 8084 | Distributed SQL query engine. Queries data across multiple sources (Postgres, S3, Kafka) with single SQL. No storage - just a query layer. |
|
||||
| **StarRocks** | `starrocks/allin1-ubuntu` | 9030 (MySQL), 8030 (HTTP) | MPP analytics database. Sub-second queries on large datasets. Powers BI dashboards. Fork of Apache Doris with performance improvements. |
|
||||
| **TimescaleDB** | `timescale/timescaledb:latest-pg16` | 5434 | PostgreSQL extension for time-series data. Auto-partitions by time. Perfect for IoT, metrics, events. Familiar Postgres SQL. |
|
||||
|
||||
### Tier 3: Advanced/Specialized
|
||||
| Engine | Image | Port | Description |
|
||||
|--------|-------|------|-------------|
|
||||
| **Apache Doris** | `apache/doris:doris-all-in-one-2.1.0` | 9031 (MySQL), 8031 (HTTP) | Real-time analytical database. MySQL-compatible. Good for real-time dashboards and ad-hoc queries. |
|
||||
| **Apache Druid** | `apache/druid:26.0.0` | 8888 | Real-time OLAP for sub-second slice-and-dice analytics. Powers Airbnb, Netflix, Alibaba dashboards. Best for: high-concurrency, low-latency queries. |
|
||||
| **Apache Spark** | `apache/spark:3.5.0` | 7077 (Master), 8085 (UI) | Distributed compute engine for big data. ML pipelines, ETL, batch processing. Overkill for small datasets. |
|
||||
|
||||
## Observability Stack
|
||||
|
||||
| Tool | Image | Port | Description |
|
||||
|------|-------|------|-------------|
|
||||
| **Grafana** | `grafana/grafana` | 3005 | Visualization & dashboards. Query any data source, create alerts. Login: admin/liquidgym |
|
||||
| **Prometheus** | `prom/prometheus` | 9090 | Metrics collection & alerting. Scrapes metrics from all engines. |
|
||||
| **Redis** | `redis:7-alpine` | 6379 | In-memory cache. Used for session storage, caching query results. |
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
cd ~/Desktop/liquidgym/infra
|
||||
|
||||
# Start core only (Postgres + CloudBeaver)
|
||||
docker compose up -d
|
||||
|
||||
# Start with Tier 1 engines (+ ClickHouse, MySQL)
|
||||
docker compose --profile tier1 up -d
|
||||
|
||||
# Start with Tier 2 engines (+ Trino, StarRocks, TimescaleDB)
|
||||
docker compose --profile tier2 up -d
|
||||
|
||||
# Start with Tier 3 engines (+ Doris, Spark)
|
||||
docker compose --profile tier3 up -d
|
||||
|
||||
# Start observability stack (+ Prometheus, Grafana, Redis)
|
||||
docker compose --profile observability up -d
|
||||
|
||||
# Start everything
|
||||
docker compose --profile all up -d
|
||||
|
||||
# Load sample datasets
|
||||
docker compose --profile loader up
|
||||
```
|
||||
|
||||
## Sample Datasets
|
||||
|
||||
| Dataset | Description | Tables |
|
||||
|---------|-------------|--------|
|
||||
| **Northwind** | Classic MS Access sample - orders, products, customers | 14 |
|
||||
| **Pagila** | DVD rental store (PostgreSQL port of Sakila) | 29 |
|
||||
| **Chinook** | Digital media store - artists, albums, tracks | 11 |
|
||||
| **AdventureWorks** | Microsoft sample - sales, HR, production | 68 |
|
||||
| **Employees** | Large HR dataset with 300K+ employee records | 6 |
|
||||
| **LEGO** | LEGO sets, parts, themes, colors | 8 |
|
||||
| **Netflix** | Netflix titles catalog | 1 |
|
||||
|
||||
## When to Use Each Engine
|
||||
|
||||
| Use Case | Recommended Engine |
|
||||
|----------|-------------------|
|
||||
| General OLTP | PostgreSQL, MySQL |
|
||||
| Analytics on large datasets | ClickHouse, StarRocks |
|
||||
| Time-series / IoT | TimescaleDB |
|
||||
| Real-time dashboards | Druid, Doris |
|
||||
| Query across multiple DBs | Trino |
|
||||
| Big data / ML pipelines | Spark |
|
||||
| Caching | Redis |
|
||||
|
||||
## Resource Requirements
|
||||
|
||||
| Profile | RAM | CPU | Disk |
|
||||
|---------|-----|-----|------|
|
||||
| Core | 1GB | 1 | 1GB |
|
||||
| + Tier 1 | 6GB | 2 | 3GB |
|
||||
| + Tier 2 | 10GB | 4 | 5GB |
|
||||
| + Tier 3 | 16GB+ | 6+ | 10GB+ |
|
||||
| + Observability | +2GB | +1 | +1GB |
|
||||
|
||||
## NUC Migration Status
|
||||
|
||||
The following have been migrated to NUC and no longer need local volumes:
|
||||
|
||||
| Service | NUC Location | Status |
|
||||
|---------|--------------|--------|
|
||||
| PostgreSQL (datasets) | 192.168.1.3:5433 | Migrated |
|
||||
| MySQL | 192.168.1.3:3306 | Migrated |
|
||||
|
||||
Tier 1-3 engines remain local-only for development testing.
|
||||
|
||||
## Related
|
||||
|
||||
- LiquidGym project: `~/Desktop/liquidgym/infra/`
|
||||
- Docker Compose: `~/Desktop/liquidgym/infra/docker-compose.yml`
|
||||
- Datasets: `~/Desktop/liquidgym/infra/datasets/`
|
||||
Reference in New Issue
Block a user