Docker-контейнер для курса «Claude Code: суперсила для НЕпрограммистов» (Automatica, сезон 2). Каждый студент получает в браузере изолированную среду: VS Code, терминал с Claude Code CLI и файловый менеджер.
Один контейнер, три сервиса за общим порталом входа:
Браузер → :8080 (auth-gateway.py)
├─ / → code-server (VS Code в браузере, в корне домена)
└─ /files/ → File Browser (файловый менеджер)
Студент логинится один раз и получает доступ ко всему.
code-server раздаётся именно в корне, а не под подпутём: под подпутём он не знает свой base-path, отдаёт относительные эндпоинты и service worker для webview не регистрируется — ломается превью Markdown и всё остальное на webview.
- Claude Code CLI — основной инструмент курса. Версия закреплена в
Dockerfile(CLAUDE_CODE_VERSION), чтобы пересборка не переводила весь поток на новый релиз незаметно. - 20 Skills — создание документов (DOCX, PPTX, XLSX, PDF), дизайн, автоматизация браузера и др.
- LibreOffice — конвертация офисных форматов.
- Playwright + Chromium — управление браузером из скриптов.
- Pandoc, Tesseract OCR, FFmpeg — конвертация и обработка файлов.
- Python-библиотеки — pandas, matplotlib, pdfplumber, reportlab, openpyxl и др.
- 33 демо-проекта — готовые примеры по всем 5 сессиям курса.
- Слайды всех пяти занятий — PDF в
course/sessions/0X-*/slides/.
База — Ubuntu 26.04 LTS, Node.js 24 (текущий LTS; Node 26 станет LTS только в октябре 2026).
Модели по умолчанию — GLM-5.3 (Opus/Sonnet) и GLM-4.5-Air (Haiku) через ANTHROPIC_BASE_URL z.ai.
z.ai подменяет модели на лету: имена GLM-5.2 и GLM-5.1 тоже обслуживает glm-5.3, а
GLM-4.5-Air — glm-4.7. Agent Teams (сессия 5) включены на уровне образа
(CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1) — без этого команда агентов не создаётся.
Версии code-server, Claude Code и File Browser закреплены в Dockerfile через ARG. Пины стоят
намеренно: без них пересборка молча переводит весь поток на новый релиз. Поднимать осознанно и
проверять на одном контейнере.
| Компонент | Порт | Описание |
|---|---|---|
| auth-gateway.py | 8080 (внешний) | Python-прокси с cookie-авторизацией, единая точка входа |
| code-server | 8081 (внутренний) | VS Code в браузере, без собственной авторизации |
| File Browser | 9090 (внутренний) | Файловый менеджер, noauth — авторизация через gateway |
При старте entrypoint.sh подмешивает ключ и модели в ~/.claude/settings.json и заполняет
~/.claude.json, чтобы у студента не всплывали диалоги первого запуска (онбординг, доверие к
ключу, доверие к папке).
git clone git@github.com:miolamio/cc-for-non-coders-dev-container.git
cd cc-for-non-coders-dev-container
cp .env.example .envОтредактировать .env — как минимум указать API-ключ:
PASSWORD=student-2026
GLM_API_KEY=ваш-ключ-от-z-ai./run.shСкрипт соберёт Docker-образ (контекст сборки — корень репозитория) и запустит контейнер.
http://localhost:8080
Ввести пароль из .env — откроется VS Code с материалами курса.
# Остановить контейнер
docker compose down
# Остановить и удалить данные студента
docker compose down -v
# Посмотреть логи
docker compose logs -fМатериалы курса лежат в volume student-data, смонтированном в /home/coder/course. При первом
запуске они копируются из образа (~/.course-image), дальше работа студента переживает
перезапуски. down -v стирает volume вместе с его работой — на живом потоке так делать нельзя.
Контейнер поддерживает два ключа — основной и резервный. Если основной упирается в лимиты, преподаватель переключает на резервный:
# Внутри контейнера (в терминале code-server):
./switch-api-key.sh backup # переключить на резервный
./switch-api-key.sh primary # вернуть основнойСкрипт правит и ~/.claude/.env, и ~/.claude/settings.json — Claude Code читает окружение
именно из settings.json. После переключения перезапустите Claude Code (Ctrl+C, затем claude).
├── Dockerfile # Сборка образа: Ubuntu 26.04, Node 24, все зависимости
├── docker-compose.yml # Один контейнер; build-контекст — корень репозитория
├── run.sh # Сборка и запуск одной командой
├── entrypoint.sh # Запуск сервисов, настройка Claude Code, копирование материалов
├── auth-gateway.py # Python HTTP-прокси с авторизацией
├── login.html # Страница входа (тёмная тема, брендинг)
├── claude-settings.json # Разрешения Claude Code (белый список команд) и env
├── code-server-settings.json # Настройки VS Code (тёмная тема, автосохранение)
├── .env.example # Шаблон переменных окружения
├── course/ # Материалы курса (5 сессий, 33 демо-проекта, слайды занятий)
└── skills/ # 20 Skills для Claude Code
В контейнере 20 предустановленных навыков (Skills) — от создания документов и дизайна до автоматизации браузера и перевода.
| Навык | Что делает |
|---|---|
| docx | Создание, чтение и редактирование Word-документов (.docx). Отчёты, письма, шаблоны с оглавлениями, нумерацией страниц, колонтитулами |
| pptx | Работа с PowerPoint-презентациями (.pptx). Создание слайдов, извлечение текста, редактирование существующих презентаций |
| xlsx | Работа с Excel-таблицами (.xlsx, .csv, .tsv). Создание, чтение, форматирование, формулы, графики, очистка данных |
| Всё, что связано с PDF: чтение, объединение, разбивка, водяные знаки, заполнение форм, OCR сканов, извлечение таблиц и изображений |
| Навык | Что делает |
|---|---|
| frontend-design | Создание веб-интерфейсов: лендинги, дашборды, React-компоненты, HTML/CSS-макеты |
| canvas-design | Создание визуальных материалов: постеры, инфографика, иллюстрации в .png и .pdf |
| theme-factory | Стилизация артефактов (слайды, документы, HTML-страницы). 10 готовых тем, можно создать свою |
| brand-guidelines | Применение фирменного стиля Anthropic (цвета, типографика) к любым материалам |
| algorithmic-art | Генеративное искусство на p5.js: потоковые поля, системы частиц, интерактивные визуализации |
| web-artifacts-builder | Многокомпонентные HTML-артефакты: React + Tailwind CSS + shadcn/ui, управление состоянием, роутинг |
| slack-gif-creator | Создание анимированных GIF для Slack с учётом ограничений платформы |
| Навык | Что делает |
|---|---|
| playwright-cli | Автоматизация браузера: навигация по сайтам, заполнение форм, скриншоты, извлечение данных |
| webapp-testing | Тестирование веб-приложений через Playwright: проверка UI, отладка, скриншоты, логи браузера |
| mcp-builder | Создание MCP-серверов для подключения Claude Code к внешним API и сервисам (Python/FastMCP, Node/TypeScript) |
| claude-api | Справочник по Claude API и SDK: модели, цены, стриминг, tool use, кеширование, подсчёт токенов |
| Навык | Что делает |
|---|---|
| ru-editor | Редактура русского текста: убирает AI-штампы, приводит к информационному стилю |
| en-ru-translator-adv | Перевод с английского на русский. Трёхшаговый процесс: перевод, рефлексия, доработка |
| doc-coauthoring | Совместное написание документов: спецификации, предложения, техническая документация |
| internal-comms | Внутренние коммуникации: статус-отчёты, рассылки, FAQ, протоколы инцидентов |
| skill-creator | Создание новых навыков для Claude Code |
5 сессий по 2 академических часа. В каждой — практические демо-проекты с готовыми данными. В конце каждой сессии есть продвинутое демо на несколько источников или несколько агентов.
Запуск Claude Code, работа с файлами, форматирование и конвертация.
| Демо | Задача |
|---|---|
| financial-dashboard | Анализ банковской выписки (CSV), построение финансового дашборда |
| crm-cleanup | Очистка и нормализация CRM-экспорта |
| file-organization | Сортировка 33 хаотичных файлов (договоры, отчёты, заметки) по папкам |
| multi-source-operations-review | Операционный разбор по трём источникам: заказы, обращения поддержки, плановые показатели |
Как настроить CLAUDE.md, создать свои Skills, использовать слэш-команды.
| Демо | Задача |
|---|---|
| claude-md-intro | Знакомство с CLAUDE.md на примерах (проектный и персональный) |
| audience-rewrite | Адаптация описания продукта для разных аудиторий через CLAUDE.md |
| weekly-report-skill | Создание навыка для еженедельных отчётов |
| document-pack | Пакетное создание документов из CSV и шаблона |
| github-skill-install | Установка навыков с GitHub |
| hr-letters | HR-письма через собственный навык |
| content-plan | Переработка квартальной стратегии в контент-план |
| commercial-offer | Создание коммерческого предложения по заметкам со звонка |
| monthly-management-pack | Ежемесячный пакет для планёрки: продажи, денежный поток, проекты и KPI в одном отчёте |
Подключение Google Drive, поиска, файловой системы, баз данных.
| Демо | Задача |
|---|---|
| mcp-setup | Настройка MCP-серверов (filesystem, Google Drive, Tavily) |
| contract-comparison | Сравнение двух версий договора аренды |
| vendor-comparison | Оценка 7 предложений подрядчиков из разных форматов |
| resume-screening | Отбор резюме по требованиям вакансии |
| investor-briefing | Подготовка инвестиционной справки |
| supplier-risk-monitor | Оценка рисков SaaS-поставщиков: локальный реестр плюс поиск по интернету через MCP |
Task Tool, параллельные субагенты, хуки.
| Демо | Задача |
|---|---|
| seo-audit | SEO-аудит блога по CSV с метриками статей |
| 360-review-reports | Отчёты по результатам оценки 360 |
| quarterly-presentation | Создание квартальной презентации из CSV-данных |
| meeting-protocol | Структурирование протокола по расшифровке встречи |
| landing-page | Лендинг силами нескольких агентов |
| speaking-prep | Подготовка тезисов и структуры выступления |
| slash-commands-and-hooks | Учебный пример: настройка слэш-команд и хуков |
| board-pack-review | Пакет к совету директоров: три read-only субагента проверяют финансы, операции и риски |
Командная работа агентов, обзор интеграции с n8n.
| Демо | Задача |
|---|---|
| booking-bot | Система бронирования на команде агентов |
| cold-outreach | Персонализированная холодная рассылка по CSV с компаниями |
| nps-analysis | Анализ NPS-опроса несколькими агентами |
| portfolio-site | Портфолио-сайт силами команды агентов |
| n8n-integration | Интеграция Claude Code с n8n-воркфлоу |
| incident-response-room | Штаб реагирования на инцидент: восстановление сервиса, оценка затронутых клиентов, коммуникация |
Контейнер собран для локальной разработки и тестирования. Для деплоя на сервер (один контейнер на студента, Nginx и Let's Encrypt) есть отдельный provision-скрипт — см. infra/ в основном репозитории курса.
Курс «Claude Code: суперсила для НЕпрограммистов» — проект Automatica. Автор и преподаватель — Антон Вдовиченко.
Слайды, демо-проекты и данные выложены открыто: их можно смотреть, запускать у себя и разбирать вместе с записями занятий. Данные во всех демо вымышленные — компании, суммы, контакты и переписка сгенерированы для учебных задач и не относятся к реальным людям и организациям.
Если берёте материалы за основу для своих занятий или публикаций, поставьте ссылку на
источник. Навыки в skills/ — сторонние, у каждого свой LICENSE.txt; на них условия
их авторов, а не эти.