Skip to content

About

No description, website, or topics provided.

Resources

Stars

28 stars

Watchers

0 watching

Forks

Repository files navigation

Claude Code: контейнер рабочей среды курса

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, чтобы у студента не всплывали диалоги первого запуска (онбординг, доверие к ключу, доверие к папке).

Быстрый старт

1. Клонировать и настроить

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

2. Собрать и запустить

./run.sh

Скрипт соберёт Docker-образ (контекст сборки — корень репозитория) и запустит контейнер.

3. Открыть в браузере

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 вместе с его работой — на живом потоке так делать нельзя.

Переключение API-ключей

Контейнер поддерживает два ключа — основной и резервный. Если основной упирается в лимиты, преподаватель переключает на резервный:

# Внутри контейнера (в терминале 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

Навыки (Skills)

В контейнере 20 предустановленных навыков (Skills) — от создания документов и дизайна до автоматизации браузера и перевода.

Работа с документами

Навык Что делает
docx Создание, чтение и редактирование Word-документов (.docx). Отчёты, письма, шаблоны с оглавлениями, нумерацией страниц, колонтитулами
pptx Работа с PowerPoint-презентациями (.pptx). Создание слайдов, извлечение текста, редактирование существующих презентаций
xlsx Работа с Excel-таблицами (.xlsx, .csv, .tsv). Создание, чтение, форматирование, формулы, графики, очистка данных
pdf Всё, что связано с 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 академических часа. В каждой — практические демо-проекты с готовыми данными. В конце каждой сессии есть продвинутое демо на несколько источников или несколько агентов.

Сессия 1: Установка и первые задачи (4 демо)

Запуск Claude Code, работа с файлами, форматирование и конвертация.

Демо Задача
financial-dashboard Анализ банковской выписки (CSV), построение финансового дашборда
crm-cleanup Очистка и нормализация CRM-экспорта
file-organization Сортировка 33 хаотичных файлов (договоры, отчёты, заметки) по папкам
multi-source-operations-review Операционный разбор по трём источникам: заказы, обращения поддержки, плановые показатели

Сессия 2: Контекст и навыки (9 демо)

Как настроить 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 в одном отчёте

Сессия 3: MCP — внешние сервисы (6 демо)

Подключение Google Drive, поиска, файловой системы, баз данных.

Демо Задача
mcp-setup Настройка MCP-серверов (filesystem, Google Drive, Tavily)
contract-comparison Сравнение двух версий договора аренды
vendor-comparison Оценка 7 предложений подрядчиков из разных форматов
resume-screening Отбор резюме по требованиям вакансии
investor-briefing Подготовка инвестиционной справки
supplier-risk-monitor Оценка рисков SaaS-поставщиков: локальный реестр плюс поиск по интернету через MCP

Сессия 4: Агенты и субагенты (8 демо)

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 субагента проверяют финансы, операции и риски

Сессия 5: Команды агентов (6 демо)

Командная работа агентов, обзор интеграции с n8n.

Демо Задача
booking-bot Система бронирования на команде агентов
cold-outreach Персонализированная холодная рассылка по CSV с компаниями
nps-analysis Анализ NPS-опроса несколькими агентами
portfolio-site Портфолио-сайт силами команды агентов
n8n-integration Интеграция Claude Code с n8n-воркфлоу
incident-response-room Штаб реагирования на инцидент: восстановление сервиса, оценка затронутых клиентов, коммуникация

Production

Контейнер собран для локальной разработки и тестирования. Для деплоя на сервер (один контейнер на студента, Nginx и Let's Encrypt) есть отдельный provision-скрипт — см. infra/ в основном репозитории курса.

Материалы и права

Курс «Claude Code: суперсила для НЕпрограммистов» — проект Automatica. Автор и преподаватель — Антон Вдовиченко.

Слайды, демо-проекты и данные выложены открыто: их можно смотреть, запускать у себя и разбирать вместе с записями занятий. Данные во всех демо вымышленные — компании, суммы, контакты и переписка сгенерированы для учебных задач и не относятся к реальным людям и организациям.

Если берёте материалы за основу для своих занятий или публикаций, поставьте ссылку на источник. Навыки в skills/ — сторонние, у каждого свой LICENSE.txt; на них условия их авторов, а не эти.

About

No description, website, or topics provided.

Resources

Stars

28 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages