Перейти до основного вмісту

Шаблони

Шаблони — це багаторазові, версіоновані блюпринти середовищ, написані у YAML. Вони визначають конфігурацію Docker Compose, збагачену змінними шаблону — заповнюваними плейсхолдерами, що замінюються при запуску.

Формат тіла шаблону

Тіло шаблону — це стандартний YAML-документ з двох частин:

  1. Docker Compose визначенняservices, volumes, networks тощо
  2. Оголошення змінних — Секція fibe.gg з вкладеним блоком variables, що декларує всі змінні у шаблоні

Приклад

fibe.gg:
variables:
project_name:
name: "Назва проєкту"
validation: "/^[a-z][a-z0-9-]{2,30}$/"
db_password:
name: "Пароль бази даних"
validation: "/^.{8,}$/"

services:
web:
build: .
ports:
- "3000:3000"
environment:
DATABASE_URL: "postgres://app:$$var__db_password@db/$$var__project_name"

db:
image: postgres:16
environment:
POSTGRES_DB: $$var__project_name
POSTGRES_PASSWORD: $$var__db_password

Змінні

Змінні шаблону — це плейсхолдери у форматі $$var__NAME або $$random__NAME, що замінюються реальними значеннями при запуску з шаблону.

Типи змінних

ПатернОпис
$$var__NAMEЗначення від користувача — у формі запуску зʼявляється поле вводу
$$random__NAMEАвтоматично згенероване випадкове значення — введення користувача не потрібне

Оголошення змінних

Кожна змінна, що використовується в тілі шаблону, повинна бути оголошена в секції fibe.gg > variables, і кожна оголошена змінна повинна бути використана хоча б раз. Платформа перевіряє цю відповідність при створенні версії.

Кожне оголошення змінної підтримує:

ПолеОбовʼязковеОпис
nameТакЗрозуміла назва для відображення у формі запуску
validationНіRegex-патерн (у / роздільниках) для валідації вводу

Валідація

Коли вказано regex validation, форма запуску перевіряє його на стороні клієнта. Наприклад:

fibe.gg:
variables:
app_name:
name: "Назва додатку"
validation: "/^[a-z][a-z0-9-]{2,30}$/"

Це гарантує, що користувач введе назву в нижньому регістрі через дефіс, довжиною від 3 до 31 символів.

Незмінні версії

Версії шаблонів незмінні за дизайном:

  • Після створення template_body версії не може бути змінене
  • Це гарантує відтворюваність — середовища, запущені з версії N, завжди дають однакову конфігурацію
  • Для змін створіть нову версію (N+1)

Номери версій

Номери версій присвоюються автоматично та послідовно (1, 2, 3, ...). Ви не можете контролювати номер версії — це завжди наступне ціле число після найвищої існуючої версії.

Видимість

Кожна версія має своє налаштування видимості:

ВидимістьДе відображається
PublicStargate — видимий всім користувачам
PrivateТільки My Fleet — видимий власнику

Остання публічна версія відображається у Stargate. Користувачі також можуть переглядати всі публічні версії шаблону.

Пошук шаблонів

Шаблони доступні для пошуку через повнотекстовий пошук на базі PostgreSQL tsvector та тригамної подібності. Пошук працює по:

  • Назві шаблону
  • Опису шаблону
  • Назві категорії

Результати обʼєднують точні збіги з нечітким пошуком для толерантності до помилок.