Статичний сайт
Як це працює
Усередині контейнера файли роздає вебсервер Caddy з кореневого каталогу (document root) проєкту. Він віддає index.html для каталогів, стискає відповіді (zstd, gzip) і пише журнал доступу в логи проєкту. PHP чи іншого коду на сервері тут немає. Команди збірки в цього обробника теж немає: збирайте сайт на своєму комп’ютері або в CI і кладіть у проєкт готові файли.
1. Створити проєкт
У майстрі (як створити проєкт) оберіть тариф і плитку Static. Єдине налаштування — Кореневий каталог: шлях від кореня проєкту до папки, де лежить index.html. За замовчуванням public.

public — лишіть public. Репозиторій кладете через Git-деплой у каталог src, а сайт лежить у його корені — укажіть src; збірка в dist — src/dist. Каталог можна змінити будь-коли в блоці «Обробник».2. Покласти файли
- SFTP або «Файли» — завантажте вміст сайту в кореневий каталог. Докладно про способи — у загальному посібнику.
- Git-деплой — якщо готові файли лежать у репозиторії. Каталог у проєкті —
src, кореневий каталог обробника —srcабоsrc/<папка зі збіркою>. Вебхук оновлюватиме сайт після кожного push.
Перевірка: відкрийте сайт кнопкою «Відкрити» в шапці проєкту або за адресою домену. Якщо видно 404 — у кореневому каталозі немає index.html або вказана не та папка.
3. Односторінковий застосунок (SPA)
React Router, Vue Router чи інший клієнтський роутер потребує, щоб будь-який шлях віддавав index.html. Додайте в поле Власні директиви Caddy (у майстрі або в блоці «Обробник»):
try_files {path} /index.html
Після збереження проєкт перезапускається, і /about чи /user/42 відкриваються без 404.
4. Власні правила: редиректи, заголовки
Поле директив потрапляє всередину сайту в контейнері, тож у ньому працюють звичайні директиви Caddy. Файл .htaccess не читається — його правила переносяться сюди.
# стара адреса → нова, назавжди
redir /old-page /new-page permanent
# кеш для збірки з хешами в іменах файлів
@assets path /assets/*
header @assets Cache-Control "public, max-age=31536000, immutable"
# своя сторінка 404
handle_errors {
rewrite * /404.html
file_server
}
5. Домен
Додайте домен, укажіть A-запис на IP із блоку «Домен і TLS», сертифікат випуститься сам: домен і HTTPS.
Типові питання
- Сайт показує старі файли. Перевірте, що завантажили саме в кореневий каталог, і оновіть сторінку з очищенням кешу браузера.
- Потрібна збірка на сервері (
npm run build). Оберіть обробник Node.js з командою збірки або збирайте в CI і кладіть готовий результат. - Місце на диску. Межа — диск тарифу; використання видно на вкладці «Огляд».