122 lines
2.7 KiB
YAML
122 lines
2.7 KiB
YAML
host: vps
|
|
|
|
services:
|
|
node-agent:
|
|
role: node-stability-monitor
|
|
deployment_model: docker-compose
|
|
exposure: local-only
|
|
offline_required: true
|
|
depends_on:
|
|
local: []
|
|
external: []
|
|
runtime:
|
|
config_path: /opt/homelab/config/node-agent
|
|
data_path: /opt/homelab/state
|
|
logs_path: /opt/homelab/events
|
|
|
|
control-plane:
|
|
role: management-and-orchestration
|
|
deployment_model: docker-compose
|
|
exposure: tailscale-internal
|
|
offline_required: false
|
|
depends_on:
|
|
local:
|
|
- node-agent
|
|
external:
|
|
- piha:redis
|
|
ports:
|
|
- name: http
|
|
container_port: 18180
|
|
protocol: tcp
|
|
runtime:
|
|
config_path: /opt/homelab/config/control-plane
|
|
data_path: /opt/homelab/data/control-plane
|
|
logs_path: /opt/homelab/logs/control-plane
|
|
|
|
node_exporter:
|
|
role: metrics-exporter
|
|
deployment_model: docker-compose
|
|
exposure: local-only
|
|
offline_required: true
|
|
depends_on:
|
|
local: []
|
|
external: []
|
|
|
|
npm:
|
|
role: reverse-proxy-ingress
|
|
deployment_model: docker-compose
|
|
exposure: public
|
|
offline_required: false
|
|
depends_on:
|
|
local: []
|
|
external: []
|
|
ports:
|
|
- name: http
|
|
container_port: 80
|
|
protocol: tcp
|
|
- name: https
|
|
container_port: 443
|
|
protocol: tcp
|
|
- name: admin
|
|
container_port: 81
|
|
protocol: tcp
|
|
runtime:
|
|
data_path: /home/dockeruser/docker/npm/data
|
|
config_path: /opt/homelab/config/npm
|
|
|
|
outline:
|
|
role: team-wiki
|
|
deployment_model: docker-compose
|
|
exposure: public
|
|
offline_required: false
|
|
depends_on:
|
|
local:
|
|
- npm
|
|
external: []
|
|
ports:
|
|
- name: http
|
|
container_port: 3000
|
|
protocol: tcp
|
|
runtime:
|
|
config_path: /opt/homelab/config/outline
|
|
|
|
joplin:
|
|
role: note-sync-server
|
|
deployment_model: docker-compose
|
|
exposure: tailscale-internal
|
|
offline_required: false
|
|
depends_on:
|
|
local:
|
|
- npm
|
|
external: []
|
|
ports:
|
|
- name: http
|
|
container_port: 22300
|
|
bind: 127.0.0.1
|
|
protocol: tcp
|
|
runtime:
|
|
config_path: /opt/homelab/config/joplin
|
|
|
|
ai-cluster:
|
|
role: ai-worker-cluster
|
|
deployment_model: docker-compose
|
|
exposure: tailscale-internal
|
|
offline_required: false
|
|
depends_on:
|
|
local: []
|
|
external:
|
|
- piha:gateway
|
|
ports:
|
|
- name: openclaw-api
|
|
container_port: 8000
|
|
protocol: tcp
|
|
- name: mqtt
|
|
container_port: 1883
|
|
protocol: tcp
|
|
bind: tailscale
|
|
runtime:
|
|
config_path: /opt/homelab/config/ai-cluster
|
|
notes:
|
|
- "Local images must be built on VPS — not pulled from registry"
|
|
- "Compute workloads belong on SOLARIA; migrate when possible"
|