/
/
/
Ansible role that deployes services on my runner machine
1---
2# Runner Services Role - Variables
3
4# Container image versions (can be overridden)
5container_images:
6 # D&D session agent services
7 # Speaches is the maintained successor to fedirz/faster-whisper-server,
8 # which is frozen at 0.6.0-rc.4.
9 dnd_stt: "ghcr.io/speaches-ai/speaches:0.8.3-cuda"
10
11 # LLM Stack services
12 #
13 # Pinned to specific releases, deliberately. `main-latest` for LiteLLM is
14 # the nightly main branch -- a rolling, unvalidated build, and `latest` for
15 # Ollama moves with every release. A model server that changes underneath a
16 # pipeline whose prompts and budgets are tuned against it is a surprise
17 # waiting for an evening. Upgrades are a deliberate act: bump the pin, then
18 # re-run a known session and compare before trusting it.
19 #
20 # 0.32.6 rather than 0.32.13 (released yesterday): the deployed 0.20.5 is
21 # the April scheduler, and the whole 0.2x->0.3x series carries the load
22 # path's fixes -- but a fresh release gets a week or two of soak before it
23 # runs an evening. The first session after an upgrade is the validation.
24 ollama: "ollama/ollama:0.32.6"
25 openwebui: "ghcr.io/open-webui/open-webui:main"
26 litellm: "ghcr.io/berriai/litellm:v1.96.2"
27
28 # Hardware-dependent services (conditional logic in templates)
29 frigate: "ghcr.io/blakeblackshear/frigate:stable"
30 frigate_tensorrt: "ghcr.io/blakeblackshear/frigate:stable-tensorrt"
31 immich_server: "ghcr.io/immich-app/immich-server"
32 immich_machine_learning: "ghcr.io/immich-app/immich-machine-learning"
33 immich_postgres: "ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0"
34 valkey: "docker.io/valkey/valkey:8-bookworm"
35
36 # Core services
37 forgejo: "codeberg.org/forgejo/forgejo:12"
38 forgejo_runner: "data.forgejo.org/forgejo/runner:9.1.1"
39
40 # Productivity services
41 stirling_pdf: "frooodle/s-pdf:latest"
42 convertx: "ghcr.io/c4illin/convertx:latest"
43 cyberchef: "ghcr.io/gchq/cyberchef:latest"
44 it_tools: "corentinth/it-tools:latest"
45 tandoor: "vabene1111/recipes:latest"
46 ghost: "ghost:5-alpine"
47
48 # Conferencing services
49 livekit: "livekit/livekit-server:v1.13.5"
50
51 # Database services
52 postgres: "postgres:15-alpine"
53 mysql: "mysql:8.0"
54 redis: "redis:7-alpine"
55
56# Default resource limits per service type
57resource_profiles:
58 lightweight:
59 memory_limit: "512m"
60 cpu_limit: "0.5"
61 standard:
62 memory_limit: "1g"
63 cpu_limit: "1"
64 heavy:
65 memory_limit: "2g"
66 cpu_limit: "2"
67 intensive:
68 memory_limit: "4g"
69 cpu_limit: "4"
70
71# Service classifications
72service_profiles:
73 frigate: "intensive"
74 immich_server: "heavy"
75 immich_ml: "intensive"
76 postgres: "standard"
77 mysql: "standard"
78 redis: "lightweight"
79 forgejo: "standard"
80 web_tools: "standard"
81 caddy: "lightweight"
82 tandoor: "standard"
83 ghost: "standard"
84
85# Hardware acceleration options
86hardware_acceleration_options:
87 - "none"
88 - "vaapi"
89 - "nvdec"
90 - "nvenc"
91 - "qsv"
92 - "cuda"
93
94# Database types supported
95supported_databases:
96 - "sqlite3"
97 - "postgresql"
98 - "mysql"
99
100# Network port ranges
101port_ranges:
102 web_services: "2000-9999"
103 ssh_services: "2200-2299"
104 rtmp_services: "1935"
105 rtsp_services: "8554"
106
107
108# Common paths for services
109common_paths:
110 logs: "/var/log"
111 configs: "/etc"
112 data: "/var/lib"
113 cache: "/var/cache"
114 tmp: "/tmp"
115
116# Service interdependencies
117service_dependencies:
118 immich:
119 - postgres
120 - redis
121 ghost:
122 - mysql
123 frigate:
124 - redis # optional, for MQTT
125
126# Default file permissions
127file_permissions:
128 config: "0644"
129 secret: "0600"
130 script: "0755"
131 directory: "0755"
132
133# Log levels
134log_levels:
135 - "debug"
136 - "info"
137 - "warn"
138 - "error"
139 - "fatal"
140
141# Supported authentication methods
142auth_methods:
143 - "local"
144 - "oauth"
145 - "ldap"
146 - "api_key"