# 📋 AI-Impress Complete Server Administration Report

> **Generated:** 2025-11-03 16:23:58
> **Server:** ai-impress-prod  
> **IP:** 51.89.231.46  
> **Purpose:** Full system overview for administrators

---

## 📑 TABLE OF CONTENTS

1. [Quick Summary](#quick-summary)
2. [System Health](#system-health)
3. [All Services](#all-services)
4. [Websites & Access](#websites--access)
5. [Databases](#databases)
6. [Storage & Backups](#storage--backups)
7. [Networks](#networks)
8. [Secrets & Passwords](#secrets--passwords)
9. [How To Guides](#how-to-guides)
10. [Troubleshooting](#troubleshooting)
11. [System Architecture](#system-architecture)

---

## 1️⃣ QUICK SUMMARY

### System Overview


| **Metric** | **Value** |
|------------|-----------|
| **Hostname** | ai-impress-prod |
| **Uptime** | up 4 hours, 40 minutes |
| **OS** | Ubuntu 24.04.3 LTS |
| **Kernel** | 6.8.0-87-generic |
| **Memory** | 10Gi / 57Gi |
| **Disk (/)** | 42G / 387G (11%) |
| **Docker Containers** | 48 running / 48 total |
| **Unhealthy Containers** | 0 |
| **Databases Size** | 71M
N/A |
| **Backups Size** | 6.6G |
| **Docker Networks** | 12 |


---

## 2️⃣ SYSTEM HEALTH

### Critical Services Status

| Service | Status | Health | Notes |
|---------|--------|--------|-------|
| **traefik** | 🟡 Running | 
no-healthcheck | Starting... |
| **postgres-main** | 🟢 Running | healthy | OK |
| **redis-main** | 🟢 Running | healthy | OK |
| **vault** | 🟢 Running | healthy | OK |

### Website Status

| Website | Status | Response Time |
|---------|--------|---------------|
| https://wiki.ai-impress.com | ✅ Online | 0.080040s |
| https://n8n.ai-impress.com | ✅ Online | 0.082092s |
| https://odoo.ai-impress.com | ✅ Online | 0.120289s |
| https://auth.ai-impress.com | ✅ Online | 0.093313s |
| https://grafana.ai-impress.com | ✅ Online | 0.086204s |
| https://portainer.ai-impress.com | ✅ Online | 0.084539s |
| https://uptime.ai-impress.com | ❌ Offline | HTTP 000 |

---

## 3️⃣ ALL SERVICES

### Docker Containers (Running)


#### 🟡 **alertmanager**
- **Status:** Up About an hour
- **Image:** `prom/alertmanager:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 alertmanager`
- **Restart:** `docker restart alertmanager`


#### 🟢 **authentik-postgres**
- **Status:** Up 5 hours (healthy)
- **Image:** `postgres:16-alpine`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 authentik-postgres`
- **Restart:** `docker restart authentik-postgres`


#### 🟢 **authentik-proxy**
- **Status:** Up 3 hours (healthy)
- **Image:** `ghcr.io/goauthentik/proxy:2025.10`
- **Restarts:** 6
- **Logs:** `docker logs -f --tail 100 authentik-proxy`
- **Restart:** `docker restart authentik-proxy`


#### 🟢 **authentik-redis**
- **Status:** Up 5 hours (healthy)
- **Image:** `redis:alpine`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 authentik-redis`
- **Restart:** `docker restart authentik-redis`


#### 🟢 **authentik-server**
- **Status:** Up 3 hours (healthy)
- **Image:** `ghcr.io/goauthentik/server:2025.10`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 authentik-server`
- **Restart:** `docker restart authentik-server`


#### 🟢 **authentik-worker**
- **Status:** Up 3 hours (healthy)
- **Image:** `ghcr.io/goauthentik/server:2025.10`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 authentik-worker`
- **Restart:** `docker restart authentik-worker`


#### 🟡 **blackbox-exporter**
- **Status:** Up 5 hours
- **Image:** `prom/blackbox-exporter:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 blackbox-exporter`
- **Restart:** `docker restart blackbox-exporter`


#### 🟢 **cadvisor**
- **Status:** Up About an hour (healthy)
- **Image:** `gcr.io/cadvisor/cadvisor:v0.47.0`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 cadvisor`
- **Restart:** `docker restart cadvisor`


#### 🟡 **documenso**
- **Status:** Up 5 hours
- **Image:** `documenso-custom:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 documenso`
- **Restart:** `docker restart documenso`


#### 🟡 **evolution-api**
- **Status:** Up 5 hours
- **Image:** `atendai/evolution-api:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 evolution-api`
- **Restart:** `docker restart evolution-api`


#### 🟡 **grafana**
- **Status:** Up 54 minutes
- **Image:** `grafana/grafana:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 grafana`
- **Restart:** `docker restart grafana`


#### 🟡 **loki**
- **Status:** Up 5 hours
- **Image:** `grafana/loki:3.5.7`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 loki`
- **Restart:** `docker restart loki`


#### 🟡 **n8n-shared**
- **Status:** Up 5 hours
- **Image:** `n8nio/n8n:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 n8n-shared`
- **Restart:** `docker restart n8n-shared`


#### 🟡 **n8n-worker-1**
- **Status:** Up 5 hours
- **Image:** `n8nio/n8n:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 n8n-worker-1`
- **Restart:** `docker restart n8n-worker-1`


#### 🟡 **n8n-worker-2**
- **Status:** Up 5 hours
- **Image:** `n8nio/n8n:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 n8n-worker-2`
- **Restart:** `docker restart n8n-worker-2`


#### 🟡 **n8n-worker-3**
- **Status:** Up 5 hours
- **Image:** `n8nio/n8n:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 n8n-worker-3`
- **Restart:** `docker restart n8n-worker-3`


#### 🟡 **n8n-worker-4**
- **Status:** Up 5 hours
- **Image:** `n8nio/n8n:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 n8n-worker-4`
- **Restart:** `docker restart n8n-worker-4`


#### 🟡 **node-exporter**
- **Status:** Up About an hour
- **Image:** `prom/node-exporter:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 node-exporter`
- **Restart:** `docker restart node-exporter`


#### 🟡 **odoo**
- **Status:** Up 5 hours
- **Image:** `odoo:17`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 odoo`
- **Restart:** `docker restart odoo`


#### 🟢 **outline**
- **Status:** Up 5 hours (healthy)
- **Image:** `outlinewiki/outline:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 outline`
- **Restart:** `docker restart outline`


#### 🟡 **pgadmin**
- **Status:** Up 4 hours
- **Image:** `dpage/pgadmin4:9.9`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 pgadmin`
- **Restart:** `docker restart pgadmin`


#### 🟡 **portainer**
- **Status:** Up 5 hours
- **Image:** `portainer/portainer-ce:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 portainer`
- **Restart:** `docker restart portainer`


#### 🟢 **postgres-main**
- **Status:** Up 4 hours (healthy)
- **Image:** `postgres:16-alpine`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 postgres-main`
- **Restart:** `docker restart postgres-main`


#### 🟢 **postiz-postgres**
- **Status:** Up 5 hours (healthy)
- **Image:** `postgres:16-alpine`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 postiz-postgres`
- **Restart:** `docker restart postiz-postgres`


#### 🟢 **postiz-redis**
- **Status:** Up 5 hours (healthy)
- **Image:** `redis:7-alpine`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 postiz-redis`
- **Restart:** `docker restart postiz-redis`


#### 🟡 **postiz**
- **Status:** Up 5 hours
- **Image:** `ghcr.io/gitroomhq/postiz-app:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 postiz`
- **Restart:** `docker restart postiz`


#### 🟡 **prometheus**
- **Status:** Up About an hour
- **Image:** `prom/prometheus:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 prometheus`
- **Restart:** `docker restart prometheus`


#### 🟡 **promtail**
- **Status:** Up 5 hours
- **Image:** `grafana/promtail:3.5.7`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 promtail`
- **Restart:** `docker restart promtail`


#### 🟢 **rabbitmq**
- **Status:** Up 5 hours (healthy)
- **Image:** `rabbitmq:3.13-management-alpine`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 rabbitmq`
- **Restart:** `docker restart rabbitmq`


#### 🟢 **realtime-dev.supabase-realtime**
- **Status:** Up 5 hours (healthy)
- **Image:** `supabase/realtime:v2.51.11`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 realtime-dev.supabase-realtime`
- **Restart:** `docker restart realtime-dev.supabase-realtime`


#### 🟢 **redis-main**
- **Status:** Up 5 hours (healthy)
- **Image:** `redis:7-alpine`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 redis-main`
- **Restart:** `docker restart redis-main`


#### 🟢 **supabase-analytics**
- **Status:** Up 5 hours (healthy)
- **Image:** `supabase/logflare:1.22.6`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-analytics`
- **Restart:** `docker restart supabase-analytics`


#### 🟢 **supabase-auth**
- **Status:** Up 5 hours (healthy)
- **Image:** `supabase/gotrue:v2.180.0`
- **Restarts:** 1
- **Logs:** `docker logs -f --tail 100 supabase-auth`
- **Restart:** `docker restart supabase-auth`


#### 🟢 **supabase-db**
- **Status:** Up 5 hours (healthy)
- **Image:** `supabase/postgres:15.8.1.085`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-db`
- **Restart:** `docker restart supabase-db`


#### 🟡 **supabase-edge-functions**
- **Status:** Up 5 hours
- **Image:** `supabase/edge-runtime:v1.69.6`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-edge-functions`
- **Restart:** `docker restart supabase-edge-functions`


#### 🟢 **supabase-imgproxy**
- **Status:** Up 5 hours (healthy)
- **Image:** `darthsim/imgproxy:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-imgproxy`
- **Restart:** `docker restart supabase-imgproxy`


#### 🟢 **supabase-kong**
- **Status:** Up 5 hours (healthy)
- **Image:** `kong:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-kong`
- **Restart:** `docker restart supabase-kong`


#### 🟢 **supabase-meta**
- **Status:** Up 5 hours (healthy)
- **Image:** `supabase/postgres-meta:v0.91.6`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-meta`
- **Restart:** `docker restart supabase-meta`


#### 🟢 **supabase-pooler**
- **Status:** Up 5 hours (healthy)
- **Image:** `supabase/supavisor:2.7.0`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-pooler`
- **Restart:** `docker restart supabase-pooler`


#### 🟡 **supabase-rest**
- **Status:** Up 5 hours
- **Image:** `postgrest/postgrest:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-rest`
- **Restart:** `docker restart supabase-rest`


#### 🟢 **supabase-storage**
- **Status:** Up 5 hours (healthy)
- **Image:** `supabase/storage-api:v1.28.0`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-storage`
- **Restart:** `docker restart supabase-storage`


#### 🟢 **supabase-studio**
- **Status:** Up 5 hours (healthy)
- **Image:** `supabase/studio:2025.10.01-sha-8460121`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-studio`
- **Restart:** `docker restart supabase-studio`


#### 🟢 **supabase-vector**
- **Status:** Up 5 hours (healthy)
- **Image:** `timberio/vector:latest-alpine`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 supabase-vector`
- **Restart:** `docker restart supabase-vector`


#### 🟡 **traefik**
- **Status:** Up 5 hours
- **Image:** `traefik:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 traefik`
- **Restart:** `docker restart traefik`


#### 🟢 **uptime-kuma**
- **Status:** Up 5 hours (healthy)
- **Image:** `louislam/uptime-kuma:latest`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 uptime-kuma`
- **Restart:** `docker restart uptime-kuma`


#### 🟢 **vaultwarden**
- **Status:** Up 5 hours (healthy)
- **Image:** `vaultwarden/server:1.30.5-alpine`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 vaultwarden`
- **Restart:** `docker restart vaultwarden`


#### 🟢 **vault**
- **Status:** Up 5 hours (healthy)
- **Image:** `0b85ae483e53`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 vault`
- **Restart:** `docker restart vault`


#### 🟡 **wikijs**
- **Status:** Up 5 hours
- **Image:** `ghcr.io/requarks/wiki:2`
- **Restarts:** 0
- **Logs:** `docker logs -f --tail 100 wikijs`
- **Restart:** `docker restart wikijs`


---

## 4️⃣ WEBSITES & ACCESS

### Public Services

| Service | URL | Purpose |
|---------|-----|---------|
| **Wiki** | https://wiki.ai-impress.com | Documentation & Knowledge Base |
| **N8N** | https://n8n.ai-impress.com | Workflow Automation |
| **Odoo** | https://odoo.ai-impress.com | ERP & Business Management |
| **Authentik** | https://auth.ai-impress.com | Single Sign-On (SSO) |
| **Grafana** | https://grafana.ai-impress.com | Monitoring Dashboard |
| **Portainer** | https://portainer.ai-impress.com | Docker Management UI |
| **Vault UI** | https://vault-admin.ai-impress.com | Secrets Management |
| **Uptime Kuma** | https://uptime.ai-impress.com | Uptime Monitoring |
| **pgAdmin** | https://pgadmin.ai-impress.com | PostgreSQL Admin |

### How to Get Passwords

```bash
# SSH to server
ssh ubuntu@51.89.231.46

# Set Vault variables
export VAULT_ADDR="http://127.0.0.1:8200"
export VAULT_TOKEN="hvs.jYguDdf2IzobXG8b9QWyATV8"

# List all secrets
vault kv list aimpress/

# Get specific secret
vault kv get aimpress/<service-name>
```


---

## 5️⃣ DATABASES

### Database Location

**All databases stored in:** `/mnt/psql-data/`

### Database Instances

