diff --git a/docs/services.md b/docs/services.md new file mode 100644 index 0000000..88d3788 --- /dev/null +++ b/docs/services.md @@ -0,0 +1,60 @@ +# 서비스 전체 목록 + +> 기준일: 2026-05-21 | 호스트: srv (Rocky Linux 8.10) + +## 서비스 맵 + +| 서비스 | 도메인 | 내부 주소 | 버전 | 인증 | Gitea 리포 | +|---|---|---|---|---|---| +| **Authentik** | `auth.du5t.xyz` | `10.89.0.20:9000` | 2025.12 | — (IdP 자체) | [gm/authentik](https://git.du5t.xyz/gm/authentik) | +| **Nginx Proxy Manager** | *(관리: `:81`)* | `10.89.0.6:80/443` | 2.14.0 | 자체 계정 | [gm/nginx-proxy-manager](https://git.du5t.xyz/gm/nginx-proxy-manager) | +| **Gitea** | `git.du5t.xyz` | `10.89.0.8:3000` | 1.25.5 | Authentik OIDC | [gm/gitea](https://git.du5t.xyz/gm/gitea) | +| **Nextcloud** | `cloud.du5t.xyz` | `10.89.0.42:80` | 33.0.3 | Authentik OIDC (user_oidc) | [gm/nextcloud-onlyoffice-quadlet](https://git.du5t.xyz/gm/nextcloud-onlyoffice-quadlet) | +| **OnlyOffice** | *(Nextcloud 경유)* | `10.89.0.43:80` | latest | Nextcloud 연동 | [gm/nextcloud-onlyoffice-quadlet](https://git.du5t.xyz/gm/nextcloud-onlyoffice-quadlet) | +| **Jellyfin** | `media.du5t.xyz` | `10.89.0.3:8096` | 10.11.6 | 자체 계정 | [gm/jellyfin](https://git.du5t.xyz/gm/jellyfin) | +| **Grafana** | `grafana.du5t.xyz` | `172.30.1.41:3000` | — | Authentik OIDC (generic_oauth) | [gm/prometheus](https://git.du5t.xyz/gm/prometheus) | +| **Prometheus** | `prometheus.du5t.xyz` | `10.89.0.30:9090` | 2.53.4 | **Authentik Proxy** | [gm/prometheus](https://git.du5t.xyz/gm/prometheus) | +| **cAdvisor** | *(내부 전용)* | `10.89.0.31:8080` | 0.55.1 | 내부망 전용 | [gm/cadvisor](https://git.du5t.xyz/gm/cadvisor) | +| **node_exporter** | *(내부 전용)* | `0.0.0.0:9100` | — | 내부망 전용 | — | +| **FileBrowser** | `file.du5t.xyz` | `10.89.0.5:8080` | 2.62.1 | **Authentik Proxy** | [gm/filebrowser](https://git.du5t.xyz/gm/filebrowser) | +| **SFTPGo** | `sftp.du5t.xyz` (Web) / `webdav.du5t.xyz` | `10.89.0.7` | 2.7.1 | 자체 계정 | [gm/sftpgo](https://git.du5t.xyz/gm/sftpgo) | +| **Open WebUI** | `ai.du5t.xyz` | `host:8079` | latest | Authentik OIDC | [gm/open-webui](https://git.du5t.xyz/gm/open-webui) | +| **Ollama** | `ollama.du5t.xyz` | `host:11434` | — | *(미적용)* | — | +| **ComfyUI** | `comfy.du5t.xyz` | `host:8188` | — | **Authentik Proxy** | — | +| **JupyterHub** | `jupyter.du5t.xyz` | `host:8000` | — | 자체 계정 (PAM) | — | +| **ASR Whisper** | `asr.du5t.xyz` | `10.89.0.2:8000` | — | *(미적용)* | [gm/asr](https://git.du5t.xyz/gm/asr) | +| **Reservation App** | `reservation.du5t.xyz` | `10.89.0.22:3000` | — | JWT 자체 인증 | [gm/reservation](https://git.du5t.xyz/gm/reservation) | +| **MariaDB** | *(내부 전용)* | `0.0.0.0:3306` | 12.2.1 | 내부망 전용 | — | +| **PostgreSQL** | *(내부 전용)* | `10.89.0.40:5432` | 16 | 내부망 전용 | [gm/postgres](https://git.du5t.xyz/gm/postgres) | + +## 인증 방식별 분류 + +### Authentik OIDC (네이티브 연동) +- Grafana — `grafana.ini` `[auth.generic_oauth]` +- Gitea — `gitea admin auth add-oauth` +- Nextcloud — `user_oidc` 앱 +- Open WebUI — 컨테이너 환경변수 + +### Authentik Proxy Provider (Embedded Outpost 경유) +NPM이 트래픽을 `10.89.0.20:9000`으로 전달, Outpost가 인증 후 실제 서비스로 포워딩. +- Prometheus (`prometheus.du5t.xyz` → `10.89.0.30:9090`) +- FileBrowser (`file.du5t.xyz` → `10.89.0.5:8080`) +- ComfyUI (`comfy.du5t.xyz` → `host:8188`) + +### 인증 미적용 (접근 제어 필요) +- Ollama API (`ollama.du5t.xyz`) — 네트워크 레벨 제한 권장 +- ASR API (`asr.du5t.xyz`) — 내부 사용 전제 + +### 자체 인증 +- Jellyfin, SFTPGo, JupyterHub, Reservation App, NPM + +## 기반 인프라 서비스 + +| 서비스 | 역할 | 내부 주소 | +|---|---|---| +| `postgres-main` | Authentik, Nextcloud DB | `10.89.0.40:5432` | +| `authentik-redis` | Authentik 캐시/큐 | `10.89.0.41:6379` | +| `redis-nextcloud` | Nextcloud 캐시/세션 | `10.89.0.44:6379` | +| `MariaDB` | NPM DB | `host:3306` | +| `proxy.network` | 서비스 간 통신 브리지 | `10.89.0.0/24` | +| `fail2ban` | SSH/서비스 브루트포스 차단 | host |