Шаблони
Шаблони — це багаторазові, версіоновані блюпринти середовищ, написані у YAML. Вони визначають конфігурацію Docker Compose, збагачену змінними шаблону — заповнюваними плейсхолдерами, що замінюються при запуску.
Формат тіла шаблону
Тіло шаблону — це стандартний YAML-документ з двох частин:
- Docker Compose визначення —
services,volumes,networksтощо - Оголошення змінних — Секція
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, ...). Ви не можете контролювати номер версії — це завжди наступне ціле число після найвищої існуючої версії.
Видимість
Кожна версія має своє налаштування видимості:
| Видимість | Де відображається |
|---|---|
| Public | Stargate — видимий всім користувачам |
| Private | Тільки My Fleet — видимий власнику |
Остання публічна версія відображається у Stargate. Користувачі також можуть переглядати всі публічні версії шаблону.
Пошук шаблонів
Шаблони доступні для пошуку через повнотекстовий пошук на базі PostgreSQL tsvector та тригамної подібності. Пошук працює по:
- Назві шаблону
- Опису шаблону
- Назві категорії
Результати обʼєднують точні збіги з нечітким пошуком для толерантності до помилок.