Модуль I · IT Skills (Cloud Services & Design) · наскрізний проєкт STARTUP LAUNCH · 120 хвилин
Наступні 14 уроків — один продукт: сайт з однієї сторінки за твоєю адресою.
Три слова. VPS — орендований комп’ютер, який працює цілодобово.
Лендинг — одна сторінка про продукт. Сабдомен — твоя адреса
всередині шкільної: 91.219.61.4/s/твій-логін.
Сьогодні ти отримуєш логін і пароль до сервера 91.219.61.4 і кладеш
туди файл index.html. Цей файл ти добудовуєш усі 14 уроків і
показуєш журі на Demo Day.
Сервер, адреса 91.219.61.4/s/<логін> і WinSCP для заливки
файлів — це інфраструктура. Усі три ти отримаєш сьогодні.
ssh і міняти пароль;www/ (бачить інтернет) від data/
(бачиш тільки ти);index.html по SFTP і відкривати
91.219.61.4/s/<логін>;SSH, SFTP і uptime розберемо тоді, коли знадобляться.
| Етап | Хв | Що робимо |
|---|---|---|
| Вхід у проєкт STARTUP LAUNCH | 10 | чужий готовий лендинг на сабдомені, формат Demo Day |
| Що таке операційна система | 15 | шари «залізо → ядро → процеси», диспетчер завдань і ps |
| Linux проти Windows | 15 | опорна таблиця по 8 критеріях, Readme.txt проти readme.txt |
| Сервер, VPS і вартість продукту | 15 | чужа платформа vs свій сервер, прайси, калькулятор витрат |
| Практика: перше підключення по SSH | 20 | відбиток хоста, passwd, whoami, pwd |
| Практика: домашня тека і права | 15 | ls -l ~, чому data/ не віддається по HTTP |
| Практика: FTP-клієнт і правила | 15 | профіль WinSCP, ліміти файлів, правила спільного сервера |
Практика: каркас index.html | 10 | робоча назва продукту, заливка по FTP |
| Автоперевірка й рефлексія | 5 | check11 1, перший сегмент ракети |
.html .css .js
.json .csv .md .txt .sh .svg .py і зображення до 500 КБ.
Відео й аудіо сервер не прийме, учитель подивиться їх очно.
Перевіряє критерій no_media.Програма не керує залізом напряму — вона просить систему
Програма не звертається до диска чи мережі сама. Вона просить ядро (kernel) — центральну частину операційної системи.
Такий запит називається системний виклик: open відкриває
файл, read читає, write записує.
Ядро розподіляє процесор і пам’ять, зберігає файли на диску, перевіряє права. На сервері працює весь клас, тому права там головні.
У Windows процеси показує диспетчер завдань, у Linux — команда ps.
Вивід ілюстративний: числа й імена свої.
Ти написав скрипт і поклав його на сервер. Скрипт намагається відкрити файл однокласника. Хто саме забороняє це зробити і в який момент?
Що ламається, коли переносиш звички з Windows на сервер
Обидві системи керують обладнанням. Windows роблять під людину з мишею, Linux — під машину без монітора.
| Критерій | Linux | Windows |
|---|---|---|
| Шлях до файлу | Один корінь /: /home/<логін>/www/index.html | Літери дисків: C:\Users\<ім’я>\www\index.html |
| Роздільник у шляху | Пряма скісна / | Зворотна \ |
| Чутливість до регістру | Readme.txt і readme.txt — два різні файли | Це один і той самий файл |
| Як визначається тип файлу | За вмістом (утиліта file), розширення — лише підказка людині | Здебільшого за розширенням, воно ж обирає програму |
| Права доступу | rwx для власника / групи / інших, змінюються chmod, chown | ACL і властивості файлу через графічний інтерфейс |
| Де живуть налаштування | Текстові конфіги в /etc і ~/.config — читаються будь-яким редактором | Значною мірою реєстр — бінарне сховище, потрібен regedit |
| Термінал | Основний спосіб роботи; на сервері часто єдиний | Допоміжний; більшість задач — мишею |
| Ліцензія і вартість | Вільна й безкоштовна, ставиться на будь-яку кількість серверів | Комерційна ліцензія, для серверної редакції — окрема плата |
Три причини тримати сервер на Linux.
Ліцензія. Linux безкоштовний на будь-якій кількості машин.
Налаштування — текстові файли. Відкрив редактором, повторив на іншій машині слово в слово.
Робота без графіки. У дата-центрі немає ні монітора, ні клавіатури.
Через текстові конфіги сервер піднімають одним скриптом.
Style.css і style.css — один файл,
на сервері — два різні.
Правило на весь модуль: у ~/www/ лише
малі латинські літери, без пробілів і кирилиці.Лендинг ідеально працює у тебе локально. Заливаєш на сабдомен — сторінка
відкривається, але без оформлення й без логотипа. У коді:
<link href="Brand.css"> і <img src="Assets/Logo.SVG">.
Що сталося?
Питання не в тому, де швидше зробити сторінку, а що лишиться твоїм через рік
Лендинг на безкоштовному конструкторі — п’ятнадцять хвилин. Свій домен і сервер — кілька доларів на місяць. Різниця видно, коли платформа піднімає тариф, вмикає рекламу або закривається.
Контроль. Безкоштовний тариф лишає платформі банер, логотип унизу й адресу в рядку браузера.
Дані. Заявки з форми уроку 11 у чужій базі забрати можна не завжди.
Можливість перенести. Продукт твій настільки, наскільки тобі належать домен і файли. Поки домен твій, сервер міняєш будь-коли.
Твій лендинг живе на безкоштовному конструкторі за адресою
myapp.free-builder.example. Конструктор оголосив: із наступного
місяця на всіх безкоштовних сторінках показується його реклама. Що ти
можеш і чого не можеш зробити?
Через рік ти вирішуєш перевезти продукт з одного VPS на інший, дешевший. Що потрібно, щоб користувачі, у яких твоя адреса в закладках, нічого не помітили?
Що більше налаштовуєш сам, то більше й відповідаєш
Спільний хостинг. Тека для файлів і панель керування. Систему й оновлення тримає провайдер. Root і термінала не дадуть.
VPS (virtual private server) — ціла віртуальна машина. Систему, вебсервер і сертифікат HTTPS ставиш і оновлюєш сам. Зате маєш root: користувача з повними правами. На VPS працює наш шкільний сервер.
Хмара (cloud) — окремі послуги: сховище, база даних, обчислення. Потужність зростає під навантаження, рахунок наперед невідомий.
| Питання | Хостинг | VPS | Хмара |
|---|---|---|---|
| Є root і термінал | ні | так | так, але керуєш сервісами, не машиною |
| Хто оновлює систему | провайдер | ти | частину — провайдер, частину — ти |
| Хто винен, якщо сайт ліг | провайдер | ти | залежить від сервісу |
| Можна поставити довільну програму | ні | так | так |
| Скільки коштуватиме наступного місяця | рівно стільки ж | рівно стільки ж | залежить від трафіку й навантаження |
| Скільки часу на запуск | хвилини | година-дві | від години до кількох днів |
Хостинг — коли треба швидко. VPS — коли треба своє. Хмара — коли навантаження стрибає.
Твій продукт — лендинг зі статичними сторінками й однією формою відгуків. Раз на добу треба запускати скрипт, що збирає звіт. Хостинг за 3 $ дає теку й панель, VPS за 6 $ дає машину з root. Що обираєш і чому?
П’ять витрат, які треба знати напам’ять: про них питають на Demo Day
Перше питання інвесторів і журі: «Скільки коштує ваш продукт?»
«Недорого» — не відповідь. Відповідь — це число з розбивкою по рядках, зібране з відкритих прайсів.
| Що оплачуєш | На місяць | На рік | Звідки число |
|---|---|---|---|
| VPS 512 МБ / 1 vCPU / 10 ГБ SSD / 500 ГБ трафіку | 4,00 $ | 48,00 $ | DigitalOcean, базовий тариф |
| VPS 1 ГБ / 1 vCPU / 25 ГБ SSD / 1 ТБ трафіку | 6,00 $ | 72,00 $ | DigitalOcean, наступний тариф |
| VPS 2 vCPU / 4 ГБ / 40 ГБ SSD (Європа) | ≈ 6,00 $ | ≈ 72,00 $ | Hetzner CX23, 5,49 € без ПДВ |
Домен .com за собівартістю | 0,87 $ | 10,44 $ | Cloudflare Registrar, без націнки |
| TLS-сертифікат (HTTPS) | 0,00 $ | 0,00 $ | Let’s Encrypt, поновлюється автоматично |
| Резервні копії, щотижня | +20 % VPS | 9,60–14,40 $ | DigitalOcean, знімок диска |
| Резервні копії, щодня | +30 % VPS | 14,40–21,60 $ | DigitalOcean, знімок диска |
Пошта hello@твійдомен, 1 скринька | 1,00 $ | 12,00 $ | Zoho Mail Lite, річна оплата |
| Те саме в Google Workspace | 7,00 $ | 84,00 $ | Business Starter, річна оплата |
| Мінімальна конфігурація | 5,67 $ | 68,04 $ | VPS 4 $ + домен + тижневі бекапи |
| Комфортна конфігурація | 9,67 $ | 116,04 $ | VPS 6 $ + домен + щоденні бекапи + пошта |
.com з 1 листопада 2026
дорожчає з 10,44 до 11,15 $ на рік. Запам’ятовуй порядок: 6–10 $ на місяць,
70–120 $ на рік.Однокласник каже: «Навіщо платити за сертифікат HTTPS, якщо сайт навчальний». Що в цій фразі не так?
Обери сервер, домен, пошту, резервні копії. Калькулятор покаже витрати на місяць і на рік та кількість продажів, після якої заробіток дорівнює витратам.
Рядок fixed_costs скопіюй у ~/notes/costs.md: він
потрібен у analytics.html на уроці 4 і на Demo Day.
На уроці 4 перевірка ділить витрати за місяць на прибуток з продажі й округлює вгору — число має збігтися з тутешнім.
У коді: fixed_costs — постійні витрати,
margin — прибуток з продажі, break_even_units —
продажів у нуль, ceil(...) — округлення вгору.
Ти порахував: постійні витрати — 9,67 $ на місяць, маржа з однієї продажі — 2 $. На Demo Day журі питає: «Скільки клієнтів вам треба, щоб не працювати в мінус?» Що ти відповідаєш? І що з цього випливає для ціни?
Uptime — це частка часу, коли сайт доступний
Різниця між 99 % і 99,9 % на слух мала, а в годинах простою — майже вдесятеро. Дивись таблицю.
| Uptime | Простій за місяць | Простій за рік | Як це виглядає |
|---|---|---|---|
| 99 % | 7 год 12 хв | 3 доби 15 год | сайт лежить майже цілий робочий день щомісяця |
| 99,5 % | 3 год 36 хв | 1 доба 19 год | один зіпсований вечір на місяць |
| 99,9 % | 43 хв 12 с | 8 год 46 хв | планка для маленького продукту |
| 99,99 % | 4 хв 19 с | 52 хв 34 с | дві машини й балансувальник |
Рахунок від 30-денного місяця і 365-денного року.
Копія диска раз на добу коштує 1–2 $ на місяць. У найгіршому випадку ти втрачаєш дані за одну добу.
~/www/ ще й у Git. Тоді сайт піднімається заново
за десять хвилин на будь-якій машині.У пітчі ти пишеш «наш сервіс доступний 99,99 % часу». Журі уточнює, як це забезпечено. У тебе один VPS за 6 $ і щоденний бекап. Що чесно сказати?
Шкільний сервер — це такий самий VPS, як у таблиці вище
1. Відкрий Windows Terminal. SSH там уже вбудований, логін і стартовий пароль — на аркуші.
2. Набери команду підключення зі своїм логіном. Побачиш відбиток ключа сервера.
3. Звір рядок SHA256:… з дошкою. Це доказ, що сервер
наш; не збігається — поклич учителя.
4. Набери yes, потім пароль. Символи не видно — це
нормально.
SSH працює через порт 22 — це число знадобиться в програмі для файлів.
5. Набери passwd. Спитає старий пароль, потім двічі
новий; успіх — рядок password updated successfully, помилка —
повтори з початку.
6. Перевір, хто ти і де ти. Маєш побачити свій логін
і /home/<логін>.
Тека www/ віддається в інтернет. Три інші — ні.
~/upload/ не опублікований, доки
не перенесеш його у ~/www/.7. Створи чотири теки і виведи список. Наявні теки команда не чіпає.
8. Прочитай перший стовпчик. d — тека, далі права:
твої, групи, інших; r — читати, w — змінювати,
x — заходити.
Тому www має drwxr-xr-x — інакше вебсервер
не віддасть index.html, а notes має
drwx------ (це 755 і 700).
Термінал пише
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! — відбиток
ключа інший. Твої дії?
~/www/data/ — публічні таблиці проєкту, market.csv.
~/data/ без www — приватне: логи й персональні
дані.У файлі — імена й телефони 14 тестувальників. Файл має бути на сервері. Куди його класти?
Перенеси файл з ноутбука в теку ~/www/
1. Встанови WinSCP або FileZilla. Ліворуч у вікні твій комп’ютер, праворуч сервер.
2. Відкрий нове з’єднання і заповни поля за таблицею. У полі «Протокол» вибери SFTP, не FTP.
| Поле у програмі | Що вписати |
|---|---|
| Протокол | SFTP |
| Хост | 91.219.61.4 |
| Порт | 22 |
| Ім’я користувача | твій логін, напр. koval.d.11a |
| Пароль | той, що ти поставив командою passwd |
| Віддалена тека | /home/<логін>/upload |
3. Натисни «Увійти». Праворуч з’являться теки upload
і www. Якщо бачиш «Access denied» — набери логін і пароль ще раз.
4. Перетягни index.html з лівої панелі в теку
upload. Ім’я файла з’явиться праворуч.
5. Відкрий SSH-сесію і перенеси файл у www:
Має вийти рядок з index.html. Якщо бачиш «No such file» —
набери ls ~/upload і звір ім’я файла.
6. Відкрий свій сабдомен у браузері. Сторінка має відкритися. Якщо віддає 404 — повтори крок 5.
| Можна | Не можна |
|---|---|
.html .css .js .json
.csv .md .txt .sh
.svg .py і зображення до 500 КБ |
.mp4 .mov .avi .mkv
.webm .mp3 .wav .flac
і файли понад 2 МБ |
Заборонений файл просто не з’явиться на сервері. Це перевіряє критерій
no_media. Прибрав зайве — перевіряй ще раз.
команда | Out-File -Encoding utf8 notes.txt — PowerShell;
команда > notes.txt — Git Bash, macOS, Linux.www/ персональні дані й чужі фото.Ти залив index.html по SFTP, клієнт показав «передано,
100 %», але сабдомен віддає 404. Файл у переліку на сервері видно.
Найімовірніша причина?
Файл, який ти пишеш сьогодні, здаватимеш на Demo Day
Результат уроку: один файл ~/www/index.html у кодуванні UTF-8.
1. Придумай назву продукту. «Мій сайт» і «Проєкт» автоперевірка не приймає.
2. Створи файл index.html — назва малими літерами,
кодування UTF-8.
3. Натисни «копіювати» і встав код у файл.
4. Заміни <логін> на свій логін,
RepairMate — на свою назву в <title> і
<h1>.
5. Звір перелік: lang="uk", charset,
viewport, author, <title>,
<h1>, секції hero, problem,
solution.
brief.html, урок 5 — brand.css,
урок 13 — дані з market.csv.<!DOCTYPE html> <html lang="uk"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="author" content="<логін>"> <!-- твій логін на сервері --> <title>RepairMate</title> <!-- назва продукту --> </head> <body> <h1>RepairMate</h1> <!-- та сама назва --> <section id="hero"> <!-- урок 13: одне речення про продукт і кнопка дії --> </section> <section id="problem"> <!-- урок 2: проблема з brief.html --> </section> <section id="solution"> <!-- уроки 4 і 13: рішення й числа з analytics.html --> </section> </body> </html>
6. Залий файл по SFTP у ~/upload/, перенеси
у ~/www/.
7. Відкрий http://91.219.61.4/s/<логін>/ — побачиш
свою назву великими літерами. 404: файл не в ~/www/ або названий
не index.html. Знаки питання замість літер: збережи в UTF-8
і залий ще раз.
Однокласник назвав файл Index.HTML, у <title>
написав «Мій сайт», <h1> лишив порожнім, сабдомен віддає
404. Скільки пунктів автоперевірки він не пройде?
Виконуй по черзі. Галочки зберігаються, тож сторінку можна закрити.
Порядок той самий, що й у списку з галочками вище.
Відкрий Windows Terminal. Замість
<логін> постав свій логін з аркуша.
Звір SHA256:… з дошкою, набери yes,
потім пароль. Символів не видно. Не збіглося — поклич учителя.
Постав власний пароль. Програма спитає спершу старий пароль,
потім двічі новий. Усі три набираються наосліп: на екрані не з’явиться
нічого — ні символів, ні зірочок. Успіх — рядок
password updated successfully. Інакше повтори команду.
Перевір, хто ти і де ти. Побачиш свій логін
і /home/<логін>.
Створи чотири теки. У списку мають бути www,
upload, data, notes.
Напиши index.html у себе на комп’ютері, у будь-якому
редакторі. Підійде і Блокнот. Каркас не набирай руками: натисни
«копіювати» на вкладці «Каркас продукту» і встав код у файл. Заміни
<логін> у <meta name="author"> на свій,
а RepairMate — на назву свого продукту в
<title> і <h1>. Рядки
<!DOCTYPE html>, <html lang="uk"> і три
секції hero, problem, solution лишаються
на місці — не видаляй їх, автоперевірка їх шукає. Збережи в UTF-8, ім’я файлу
малими літерами.
Відкрий WinSCP або FileZilla: SFTP, 91.219.61.4, порт 22,
тека /home/<логін>/upload. Перетягни туди файл; «Access
denied» — набери пароль ще раз.
Повернись у вікно SSH і перенеси файл у www.
Побачиш рядок з index.html. «No such file» — звір ім’я
командою ls ~/upload.
Відкрий http://91.219.61.4/s/<логін>/ у
браузері. Побачиш назву продукту. 404 — файл не в ~/www/
або названий не так.
Натисни «Перевірити мою роботу» на вкладці «Перевірка». Червоний критерій показує, що доробити.
index.html ти пишеш у себе на комп’ютері, у будь-якому
редакторі. Зберігаєш у UTF-8.
По SFTP кладеш його у ~/upload/. Звідти переносиш
у ~/www/.
Пароль змінюєш у терміналі, а не у WinSCP.
Рядок fixed_costs із калькулятора зберігаєш
у ~/notes/costs.md. Він знадобиться на уроці 4.check11 1Система зайде у твій акаунт від твого імені. Зробить справжній запит на твій сабдомен. І подивиться, що ти реально зробив. Спроби не обмежені.
Демонстраційний режим: результат згенеровано для показу.
На сервері ця кнопка запускає check11 1 від імені учня.
Потім читає ~/.progress/11-1.json.
pw_changed і no_media блокують оцінку.
Перший — тому що акаунт зі стартовим паролем ще не твій акаунт.
Другий діє весь модуль. У ~/www/ і ~/upload/
не має бути файлів .mp4 .mov .avi .mkv .webm .mp3 .wav .flac.
Не має бути й нічого важчого за 2 МБ.
На уроці 14 check11 8 прожене ці перевірки ще раз. Зламане
по дорозі буде видно.whoami, pwd,
ls -l ~ і пояснюєш, що бачиш;upload/ у www/;<title> — не заглушка. Ти можеш сказати
вголос, що це за продукт.Це те, що бачить учитель, коли виставляє оцінку.
| Складник | Вага | Результат |
|---|
~/www/index.html абзац «Про що мій продукт» —
щонайменше 200 символів. Постав його в секцію id="hero".
Перезалий файл по SFTP.~/notes/server-notes.md. Запиши туди п’ять команд,
які ти виконував на уроці. Поясни кожну своїми словами.~/notes/costs.md. Запиши свою конфігурацію
з калькулятора, витрати на місяць і на рік та рядок
fixed_costs. Додай одне речення: скільки продажів на місяць
треба, щоб вийти в нуль.brief.html.Кожне число, яке можна перевірити, має посилання. Перевіряти дозволено й корисно: прайси змінюються.
r, w, x для файлу
і для теки — chmod(1),
path_resolution(7)/home,
/etc, /var.
refspecs.linuxfoundation.org · FHS 3.0.com за собівартістю — 10,44 $ на рік. Оптова
ціна зростає з 1 листопада 2026. Реєстратор без націнки:
cloudflare.com · Registrartlsserver — 45 днів —
letsencrypt.org · Certificate lifetimesПростій для 99 / 99,5 / 99,9 / 99,99 % порахував автор сторінки. Основа розрахунку — 30-денний місяць (43 200 хв) і 365-денний рік (525 600 хв).
Приклади виводу команд складені як типові для навчального сервера. Це стосується відбитка ключа, PID, дат і розмірів файлів. На твоєму акаунті числа будуть свої.
Повний список джерел із поясненнями — у файлі
urok-01-джерела.md поруч із цією сторінкою.