Навыки routeros-app-yaml
📦

routeros-app-yaml

Безопасно ⚙️ Внешние команды🌐 Доступ к сети

Создание YAML-конфигураций контейнеров RouterOS

Создание и валидация YAML-конфигураций для контейнерных приложений MikroTik RouterOS. Этот навык помогает определять сервисы, порты, тома и сети для подсистемы RouterOS /app без необходимости знания docker-compose.

Поддерживает: Claude Codex Code(CC)
🥉 73 Бронза
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «routeros-app-yaml». Создайте /app YAML для контейнера Home Assistant с постоянным хранилищем на порту 8123

Ожидаемый результат:

  • YAML-файл с секциями name, services, volumes и networks.
  • Веб-сервис использует образ ghcr.io/home-assistant/home-assistant с проброшенным портом 8123.
  • Именованный том home-assistant-config монтируется в /config.
  • Политика перезапуска установлена в always для надёжности.

Использование «routeros-app-yaml». Покажите разницу между старым и новым форматами портов в RouterOS YAML

Ожидаемый результат:

  • Старый стиль OCI использует косую черту перед протоколом: 8080:80/tcp
  • Новый стиль RouterOS 7.23 использует двоеточие: 8080:80:web:tcp
  • Оба формата валидны. Новые развёртывания с 7.23beta2 должны предпочитать стиль с двоеточием.
  • Полный объектный синтаксис с полями target, published и protocol работает во всех версиях.

Аудит безопасности

Безопасно
v2 • 4/16/2026

All 159 static analysis findings are false positives. The skill contains only documentation and YAML configuration examples for RouterOS container applications. There is no executable code, no actual shell commands, no network requests, and no credential handling. The static scanner flagged YAML examples in markdown code blocks as security risks (for example, backticks in YAML values, example URLs in documentation, and placeholder IP addresses in configuration samples). After manual review, no genuine security issues were found.

2
Просканировано файлов
453
Проанализировано строк
5
находки
2
Всего аудитов
Проблемы низкого риска (3)
False positive: External command detection in YAML documentation
The static scanner flagged 132 locations as external command execution. These are YAML configuration examples and markdown documentation, not executable code. Examples include shell commands in YAML entrypoint values (for example, nginx -g daemon off in SKILL.md line 32 and references/examples.md line 31) and backtick-formatted text in markdown. No actual command execution exists.
False positive: Network pattern detection in documentation URLs
The static scanner flagged 13 locations as network risks including hardcoded URLs, hardcoded IP addresses, and fetch API calls. All are documentation examples: example.com URLs in YAML samples (references/examples.md lines 19, 21), example IP addresses like 192.168.1.1 in port mapping examples (SKILL.md line 110, references/examples.md line 145), and TypeScript fetch snippets showing RouterOS REST API usage (SKILL.md lines 216, 222). No actual network requests are made by this skill.
False positive: Blocker patterns misidentified in YAML content
The static scanner flagged weak cryptographic algorithms, Windows SAM database references, LLM role token injection, and system reconnaissance patterns. None of these patterns exist in the actual file content. The scanner likely misidentified YAML property names or markdown formatting as security threats.

Факторы риска

⚙️ Внешние команды (132)
references/examples.md:5-12 references/examples.md:12-16 references/examples.md:16-105 references/examples.md:105-109 references/examples.md:109-134 references/examples.md:134-138 references/examples.md:138-161 references/examples.md:161-165 references/examples.md:165-176 references/examples.md:31 SKILL.md:8 SKILL.md:8 SKILL.md:8 SKILL.md:12 SKILL.md:15 SKILL.md:16 SKILL.md:17 SKILL.md:19 SKILL.md:25 SKILL.md:26 SKILL.md:30 SKILL.md:32 SKILL.md:33 SKILL.md:33 SKILL.md:33 SKILL.md:39 SKILL.md:40 SKILL.md:41 SKILL.md:42 SKILL.md:43 SKILL.md:43 SKILL.md:44 SKILL.md:44 SKILL.md:45 SKILL.md:45 SKILL.md:46 SKILL.md:47 SKILL.md:48 SKILL.md:49 SKILL.md:50 SKILL.md:51 SKILL.md:52 SKILL.md:56-61 SKILL.md:61-67 SKILL.md:67 SKILL.md:67-71 SKILL.md:71 SKILL.md:71 SKILL.md:71-72 SKILL.md:72 SKILL.md:72-73 SKILL.md:73-74 SKILL.md:74-75 SKILL.md:75-76 SKILL.md:76-77 SKILL.md:77 SKILL.md:77 SKILL.md:77-78 SKILL.md:78 SKILL.md:78-79 SKILL.md:79 SKILL.md:79-80 SKILL.md:80 SKILL.md:80 SKILL.md:80 SKILL.md:80 SKILL.md:80-81 SKILL.md:81-82 SKILL.md:82-83 SKILL.md:83-84 SKILL.md:84-85 SKILL.md:85-86 SKILL.md:86-87 SKILL.md:87 SKILL.md:87-88 SKILL.md:88-89 SKILL.md:89-90 SKILL.md:90-91 SKILL.md:91-92 SKILL.md:92-93 SKILL.md:93-101 SKILL.md:101-103 SKILL.md:103-106 SKILL.md:106-111 SKILL.md:111-115 SKILL.md:115-117 SKILL.md:117-120 SKILL.md:120-125 SKILL.md:125-129 SKILL.md:129-136 SKILL.md:136-141 SKILL.md:141-145 SKILL.md:145-153 SKILL.md:153-154 SKILL.md:154-155 SKILL.md:155-156 SKILL.md:156-157 SKILL.md:157-163 SKILL.md:163-165 SKILL.md:165-181 SKILL.md:181-185 SKILL.md:185-193 SKILL.md:193-197 SKILL.md:197-199 SKILL.md:199-208 SKILL.md:208-210 SKILL.md:210-214 SKILL.md:214-216 SKILL.md:216-222 SKILL.md:222-227 SKILL.md:227-229 SKILL.md:229-237 SKILL.md:237 SKILL.md:237-238 SKILL.md:238-240 SKILL.md:240-245 SKILL.md:245-252 SKILL.md:252-254 SKILL.md:254-259 SKILL.md:259 SKILL.md:259-260 SKILL.md:260 SKILL.md:260 SKILL.md:260 SKILL.md:260-265 SKILL.md:265-267 SKILL.md:267-268 SKILL.md:268 SKILL.md:268-269 SKILL.md:269 SKILL.md:269-273 SKILL.md:273-274
🌐 Доступ к сети (13)

Оценка качества

41
Архитектура
100
Сопровождаемость
87
Контент
32
Сообщество
99
Безопасность
100
Соответствие спецификации

Что вы можете построить

Определение контейнерного приложения для RouterOS

Сетевой администратор создаёт YAML для развёртывания стека мониторинга с Grafana и Prometheus на маршрутизаторе MikroTik с использованием подсистемы /app.

Миграция проектов docker-compose в RouterOS

Разработчик адаптирует существующую конфигурацию docker-compose в формат RouterOS /app YAML, корректируя синтаксис портов и удаляя неподдерживаемые свойства.

Создание app store для командного развёртывания

Системный инженер создаёт файл tikappstore YAML с предварительно настроенными приложениями для согласованного развёртывания на нескольких устройствах RouterOS.

Попробуйте эти промпты

Создание базового определения /app
Создайте YAML-файл RouterOS /app, который запускает контейнер nginx на порту 8080 с именованным томом для постоянных данных.
Конвертация docker-compose в RouterOS YAML
Конвертируйте этот файл docker-compose в формат RouterOS /app YAML. Укажите свойства, которые не поддерживаются или работают иначе.
Создание приложения с несколькими сервисами
Создайте RouterOS /app YAML с веб-интерфейсом, базой данных PostgreSQL и кэшем Redis. Включите правильные монтирования томов, сетевую изоляцию и проверки здоровья.
Создание файла app store
Создайте файл RouterOS app store YAML с тремя приложениями: веб-сервером, менеджером базы данных и панелью мониторинга. Каждое должно иметь соответствующие категории и метаданные.

Лучшие практики

  • Всегда используйте расширение файла .tikapp.yaml для пользовательских определений приложений RouterOS, чтобы отличать их от обычных YAML-файлов.
  • Используйте вариант схемы *.editor.json во время разработки для лучшего автодополнения, затем валидируйте против *.latest.json перед развёртыванием.
  • Тестируйте YAML на виртуальной машине RouterOS CHR перед развёртыванием на производственном оборудовании, чтобы раньше обнаруживать ошибки схемы.

Избегать

  • Предполагать полную совместимость с docker-compose. RouterOS /app поддерживает только подмножество свойств compose, а некоторые обрабатывает иначе.
  • Использовать ключ верхнего уровня version. RouterOS игнорирует этот ключ, и он не имеет смысла в /app YAML.
  • Смешивать стили форматов портов в одной строке порта. Каждая запись порта должна использовать либо старый стиль OCI, либо новый стиль с двоеточием.

Часто задаваемые вопросы

Какая версия RouterOS мне нужна для /app YAML?
Путь /app встроен начиная с RouterOS 7.21. Создание пользовательских приложений через /app/add требует RouterOS 7.22 или позже. Дополнительный пакет контейнера также должен быть установлен.
Является ли RouterOS /app YAML тем же самым, что и docker-compose?
Нет. RouterOS /app YAML похож на docker-compose, но поддерживает меньше свойств. Некоторые свойства, такие как deploy и resources, не поддерживаются. Синтаксис маппинга портов также отличается между ними.
Какое расширение файла следует использовать для /app YAML?
Используйте .tikapp.yaml для отдельных определений приложений и .tikappstore.yaml для файлов app store. Эти соглашения помогают инструментам и редакторам применять правильную схему.
Как работают плейсхолдеры в RouterOS YAML?
Плейсхолдеры типа [accessIP], [accessPort], [containerIP] и [routerIP] раскрываются во время развёртывания RouterOS. Они появляются в маппингах портов, значениях окружения и содержимом конфигов.
Можно ли использовать переменные окружения с именами в нижнем регистре?
Схема строгой валидации требует имён переменных окружения в верхнем регистре, соответствующих шаблону [A-Z_][A-Z0-9_]*. Используйте вариант схемы editor, если вам нужны имена переменных с разным регистром.
Как добавить пользовательское приложение в RouterOS?
Используйте CLI-команду /app/add с параметром yaml-url, указывающим на URL вашего YAML-файла. Альтернативно, используйте REST API PUT endpoint по адресу /app с yaml-url в теле запроса.

Сведения для разработчиков

Автор

tikoci

Лицензия

MIT

Ссылка

main

Структура файлов