nanoweb v0.30.0
Платформа Nan∙web
Генератор статичних сайтів і навіть більше на JavaScript.
Платформа розроблена навколо філософії, в основі якої:
- вігластво,
- безпека,
- баланс і гармонію.
Ця філософія реалізована через унікальну структуру файлової системи, де кожна директорія має додатковий файл, що дозволяє мінімалістично та лаконічно використовувати дані, позбуваючись сміття і дублікатів.
Зміст
Цілі
- Розробити легку та безпечну платформу для управління сайтом: розробка, тестування, публікація.
- Безпека: статичний сайт (без сервера) з HTML, JavaScript, CSS, активами.
- Легке управління та зберігання змін: шаблони та дані (JSON, YAML, CSV, XLXS тощо).
- Використовувати можливості LLM (ChatGPT та Gemini) максимально ефективно.
Вимоги
Використання
Дані зберігаються у файлах .yaml
, які використовуються як файлова база даних, що дозволяє отримувати доступ до сирих файлів для управління сайтом без редактора. Структура веб-адреси відповідає розташуванню файлу даних .yaml
.
Для URL https://domain.com/uk/contacts.html файл даних — це data/uk/contacts.yaml
.
Публічна частина сайту — це лише статичні файли. Тому для публічного сервера можливі наступні технології та рішення:
Платформи для хостингу статичних файлів
- GitHub Pages: Ідеально підходить для хостингу статичних сайтів безпосередньо з репозиторію GitHub.
- GitLab Pages: Аналогічно до GitHub Pages, дозволяє хостинг статичних сайтів з репозиторіїв GitLab.
- GCP (Google Cloud Platform) Object Storage: Забезпечує масштабоване та високодоступне зберігання для статичних файлів.
- Amazon S3 (Simple Storage Service): Ще одна масштабована та безпечна послуга зберігання об'єктів для статичних файлів.
- Netlify: Платформа для автоматизації розгортання та управління сучасними веб-проєктами, з вбудованою CI/CD.
- Vercel: Оптимізована для хостингу статичних сайтів з легким інтегруванням для додатків Next.js.
- Azure Static Web Apps: Сервіс для хостингу статичних веб-додатків з безсерверними API.
- Власний виділений або VPS сервер: Існує багато різних хостинг-провайдерів для спільного використання.
Адміністрування та React App
Для інтерфейсу адміністрування та React-додатку потрібні наступні технології:
- Node.js: Середовище виконання JavaScript на стороні сервера для розробки бекенду адміністрування.
- Express.js: Фреймворк для веб-додатків на Node.js для побудови API для панелі адміністрування.
- React: Бібліотека для фронтенду, яка використовується для створення інтерфейсу адміністрування.
Форми та інші API
Для надсилання електронних листів та обробки замовлень з вебсайту можна використовувати такі технології та рішення:
- PHP: Мова сценаріїв на стороні сервера, яка може обробляти надсилання електронних листів та обробку замовлень.
- Python: Універсальна мова, яка також може використовуватися для створення API для надсилання електронних листів та обробки замовлень.
- Node.js: Також можна використовувати для створення API для обробки цих функцій.
Хостинг
Для хостингу бекенду Node.js та React-додатку можна розглянути наступні платформи:
- Heroku: Хмарна платформа як послуга (PaaS), яка підтримує кілька мов програмування.
- DigitalOcean: Пропонує масштабовану обчислювальну платформу з простим налаштуванням та управлінням.
- AWS (Amazon Web Services) EC2: Забезпечує гнучку обчислювальну потужність у хмарі.
- Google Cloud Platform (GCP) Compute Engine: Масштабовані, високопродуктивні віртуальні машини.
- Azure App Service: Повністю керована платформа для створення, розгортання та масштабування веб-додатків.
- Vercel: Оптимізована для додатків React, з підтримкою безсерверних функцій.
- Netlify: Також підтримує безсерверні функції та добре інтегрується з хостингом статичних сайтів.
Інтеграція CI/CD
Для автоматизації розгортання та управління безперервною інтеграцією та доставкою (CI/CD):
- GitHub Actions: Автоматизація робочих процесів безпосередньо з репозиторію GitHub.
- GitLab CI/CD: Інструмент безперервної інтеграції та доставки, вбудований у GitLab.
- CircleCI: Платформа безперервної інтеграції та доставки, яка автоматизує процеси розробки.
- Travis CI: Сервіс безперервної інтеграції, що використовується для побудови та тестування програмних проектів, розміщених на GitHub.
Безпека
HTTPS
Статичний вебсайт не обробляє жодної приватної інформації і просто представляє публічні статичні дані користувачам. Однак використання HTTPS є гарною практикою з кількох причин, включаючи оптимізацію для пошукових систем (SEO) та переваги у довірі користувачів.
Масштабованість
Мережа доставки контенту (CDN)
- Cloudflare: Забезпечує глобальну CDN з захистом від DDoS та оптимізацією продуктивності.
- AWS CloudFront: Швидкий сервіс CDN, що безпечно доставляє дані, відео, додатки та API.
- Google Cloud CDN: Інтегрується з сервісами Google Cloud для забезпечення кешування контенту на межі мережі.
Інші міркування
- HTTPS: Забезпечте, щоб усі статичні та динамічні частини вебсайту обслуговувалися через HTTPS для підвищення безпеки, SEO та довіри користувачів.
- Масштабованість: Переконайтеся, що рішення може витримати зростання трафіку та даних.
- Резервне копіювання та відновлення: Реалізуйте регулярне резервне копіювання та план відновлення.
- Моніторинг і логування: Використовуйте інструменти, такі як New Relic, Datadog або ELK Stack, для моніторингу та логування.
- Мережа доставки контенту (CDN): Використовуйте CDN, такі як Cloudflare або AWS CloudFront, для покращення розповсюдження статичного контенту.
Дотримуючись цих вимог та використовуючи зазначені платформи і технології, ви можете забезпечити надійну, масштабовану та ефективну платформу nanoweb.
Розробка
- Мови: JavaScript, HTML, CSS.
- Формати даних: Markdown, JSON, YAML, CSV.
- NPM.
- Bootstrap.
- Редактор, такий як Visual Studio Code.
Досягнення
- Навчання створенню коду з використанням інженерії підказок ChatGPT, Gemini.
- Розробка простого сервера на JavaScript.
- Використання фреймворку Bootstrap у проєкті.
Особливості
- Модульна архітектура.
- Розширювані плагіни.
- Всебічний API.
Встановлення
# Встановіть пакет nanoweb для node.js
npm install nanoweb
# Запустіть вебсервер для редагування та обслуговування вебсайту
nanoweb server
# Згенеруйте весь вебсайт у статичний контент
nanoweb render
# Згенеруйте конкретні дані (сторінку), пов'язану з файлом даних data/uk/news.yaml
nanoweb render uk/news.html
# Опублікуйте вебсайт через обраний метод публікації
nanoweb publish
Ліцензія
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
9 months ago
8 months ago
8 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago