Добро пожаловать! Это пошаговое руководство поможет вам развернуть собственный Markdown Viewer Worker на платформе Cloudflare. Мы настроим Worker, подключим KV Namespace для хранения данных и задеплоим всё через GitHub. Следуйте инструкциям ниже, и скоро у вас будет свой собственный сервис для просмотра Markdown! 🎉
- ⛅ Аккаунт на Cloudflare
- 🐙 Аккаунт на GitHub
Для начала вам нужно получить копию исходного кода.
- Перейдите на репозиторий boykopovar/md.
- Нажмите кнопку Fork в правом верхнем углу. Это создаст копию репозитория в вашем аккаунте GitHub.
💡 Примечание: Использование GitHub для деплоя упрощает управление версиями и автоматизацию. Вы можете вносить изменения в код и деплоить их прямо из своего репозитория!
Cloudflare KV — это ключ-значение хранилище, где мы будем сохранять Markdown-файлы.
- В Cloudflare Dashboard перейдите в Workers & Pages → KV.
- Нажмите Create Namespace.
- Укажите имя, например,
MD_STORAGE
. - Нажмите Add.
- Укажите имя, например,
📊 Примечание: На бесплатном тарифе Cloudflare предоставляет лимит KV: 100 000 операций чтения, 1000 операций записи и 1000 операций удаления в день, а также до 1 ГБ хранимого объёма. Наш Worker использует запись для сохранения файлов и чтение для их отображения. Очистка старых файлов (см. шаг 4) помогает оставаться в пределах лимитов, даже если запас кажется большим.
Worker настроен на хранение максимум 100 файлов (MAX_FILES = 100
), после чего старые удаляются. Это можно изменить.
- Откройте файл
index.js
в своём репозитории. - Найдите строку:
const MAX_FILES = 200;
- Измените значение на нужное, например:
const MAX_FILES = 500; // Или любое другое число
🛠️ Примечание: Установка меньшего значения ускоряет очистку старых файлов, что полезно для экономии операций KV. Несмотря на щедрый лимит в 1 ГБ и 1000 операций записи в день, регулярная очистка предотвращает накопление ненужных данных и упрощает управление хранилищем в долгосрочной перспективе.
Теперь настроим Worker в вашем аккаунте Cloudflare.
- Войдите в Cloudflare Dashboard.
- Перейдите в раздел Workers & Pages в левом меню.
- Нажмите Create Worker.
- Укажите имя, например,
md
. - Нажмите Create.
- Укажите имя, например,
⚠️ Внимание: На этом этапе Worker ещё не будет работать, так как мы пока не загрузили код и не подключили KV. Это просто зарезервированное имя.
Рекомендуем использовать интеграцию с GitHub для автоматизации деплоя.
- В Cloudflare Dashboard вернитесь в Workers & Pages → ваш Worker (
md
). - Нажмите Deploy → GitHub.
- Подключите свой аккаунт GitHub, если ещё не сделали этого.
- Выберите репозиторий
<ваш-username>/md
. - Cloudflare автоматически подтянет код из ветки
main
.
🔄 Примечание: После каждого изменения в вашем репозитории (например,
git push
), Cloudflare по умолчанию автоматически передеплоит Worker.
Чтобы Worker мог использовать KV, нужно связать его с созданным Namespace.
- В Cloudflare Dashboard откройте свой Worker (
md
). - Перейдите во вкладку Settings → Variables.
- В разделе KV Namespace Bindings нажмите Add binding.
- Variable name: Укажите
KV
(имя, используемое в кодеenv.KV
). - KV Namespace: Выберите
MD_STORAGE
(или то имя, которое вы задали в шаге 2).
- Variable name: Укажите
- Нажмите Save.
🔗 Примечание: Имя переменной
KV
в настройках должно точно совпадать с тем, что используется в коде (env.KV
). Это связывает Worker с хранилищем.
⚠️ Важно: При каждом новом деплое через GitHub или вручную привязка KV Namespace сбрасывается, и её нужно указывать заново в настройках. Если это вызывает неудобства, вы можете прописать привязку в файлwrangler.toml
в корне репозитория в таком формате:[[kv_namespaces]] binding = "KV" id = "<ID вашего KV Namespace>"Однако это не рекомендуется, так как ID KV Namespace — это конфиденциальная информация. Хранение таких данных в репозитории может привести к утечке, особенно если он публичный. Если вы всё же решите использовать этот подход, убедитесь, что ваш репозиторий приватный, и ограничьте доступ к нему.
Ваш Worker готов! Давайте протестируем его.
- Отправьте тестовый Markdown через POST-запрос:
curl -X POST -d "# Hello\nThis is a test" https://view-md<ваш-домен>.workers.dev
- Замените
view-md<ваш-домен>.workers.dev
на URL вашего Worker’а.
- Замените
- Скопируйте возвращённую ссылку (например,
https://view-md<ваш-домен>.workers.dev/view/<id>
). - Откройте её в браузере — вы увидите отформатированный Markdown!
Теперь у вас есть собственный Markdown Viewer на Cloudflare Workers! Вы можете:
- Редактировать код в своём GitHub-репозитории.
- Изменять
MAX_FILES
для управления хранилищем. - Деплоить обновления через
git push
.
Если что-то не работает, проверьте:
- Привязан ли KV Namespace правильно.
- Совпадает ли имя Worker’а в коде и настройках.