Проекты

Домены

Как добавлять, включать и удалять домены .test, что означает их состояние и как настроить Vite, Astro или Laravel, чтобы они их принимали.

Вкладка Домены (D) перечисляет домены проекта. Каждый из них работает по HTTPS и перенаправляется на свой локальный сервер.

Вкладка «Домены» проекта с разделом «Данные Docker Compose» и настройкой Vite, которую нужно исправить

Таблица доменов

Столбец Содержимое
Состояние Индикатор здоровья домена
Домен https://app.monprojet.test ↗, кликабельный
Цель → localhost:5173. Щёлкните, чтобы сменить порт: введите новый и нажмите Enter (Esc отменяет). Процесс, который обслуживал этот порт, следует за ним (его команда или переменная PORT) и перезапускается, если он работал. Если Laravel запускает Vite (npm run dev), далее идёт «+ Vite :5173»: см. Общий доступ к проекту Laravel
Кем запущен Процесс, который обслуживает этот порт, если он есть
Включён Переключатель: выключенный домен больше не отвечает, но не удаляется

Действия в каждой строке: запустить или остановить процесс, открыть доступ к домену (в локальной сети или по публичной ссылке), скопировать URL, удалить домен. Домен с открытым доступом помечен значком сеть или публично.

Состояния

Состояние Значение
в сети Сервер разработки отвечает на своём порту. Если его запустил не Joppa, далее идёт «· запущен вне Joppa»: тогда у строки нет кнопки остановки
не в сети На порту никто не слушает
выключен Домен отключён (переключатель Включён)
нет прокси Прокси остановлен: ни один домен не отвечает
запускается… Процесс, который обслуживает этот порт, запускается: рядом крутится индикатор — с момента нажатия ▶ и до тех пор, пока процесс не ответит
сбой процесса Процесс аварийно завершился
остановлен Процесс остановлен

Сервисы и процессы

Под таблицей, перед Данные Docker Compose, два раздела один под другим кратко показывают, на чём работает проект:

  • Сервисы (подсказка ⓘ уточняет: это сервисы, которые запускает Joppa и которые общие для ваших проектов, не путать с процессами проекта): «Общие базы данных и кеши, к которым подключён этот проект.» Каждый подключённый сервис с индикатором, портом и состоянием; Сервисы → открывает вкладку Сервисы.
  • Процессы: «То, что проект запускает сам: серверы разработки, воркеры, Docker Compose.» Включённые процессы и их состояние; Процессы → открывает вкладку Процессы.

Добавление домена

Под таблицей заполните два поля и нажмите + Добавить (клавиша A переводит фокус в поле):

  • Поддомен (admin) или полный домен: admin превращается в admin.monprojet.test; имя с точкой (docs.autre.test) берётся как есть.
  • Порт: 3000 превращается в цель http://localhost:3000.

В именах допустимы буквы a–z, цифры и дефисы, до 63 символов в сегменте и до 253 всего. У двух проектов не может быть одного и того же домена.

Настройки фреймворка

В самом верху вкладки, над доменами, блок Исправить в проекте сообщает о том, что помешало бы проекту отвечать на своём домене, и показывает код, который нужно добавить.

Vite и Astro: allowedHosts

Vite (и Astro, который его использует) отклоняют запросы к незнакомому домену. Joppa предлагает добавить:

// vite.config.ts
export default defineConfig({
  server: { allowedHosts: [".monprojet.test"] },
});
// astro.config.mjs
export default defineConfig({
  vite: { server: { allowedHosts: [".monprojet.test"] } },
});

Исправить файл открывает предпросмотр, затем Записать файл вставляет только эти строки; остальная часть файла не меняется. Если конфигурация имеет необычную форму, Joppa её не изменяет: нажмите Скопировать код и вставьте его сами. Другой вариант, не трогая файл: переменная __VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS=.monprojet.test.

Перезапустите сервер разработки, чтобы он перечитал конфигурацию.

Laravel за прокси

Прокси Joppa общается с вашим сервером по http и сообщает об исходном https заголовками X-Forwarded-*. Laravel их игнорирует, пока не доверяет прокси, и тогда генерирует URL и перенаправления с http://.

Вкладка Домены сообщает об этом в блоке Исправить в проекте со ссылкой на эту страницу. Исправить файл показывает diff и затем записывает две вещи:

  • в код — строку, которая читает TRUSTED_PROXIES и ничего не делает, пока эта переменная пуста;
  • в .env, который не коммитится, — TRUSTED_PROXIES=127.0.0.1: прокси Joppa подключается с вашей машины, и больше никому доверие не оказывается.

Строка попадает в ваш репозиторий, но в продакшене ничего не меняется: без TRUSTED_PROXIES в его .env Laravel ведёт себя как по умолчанию. Если ваш сервер стоит за прокси, укажите там эту переменную (его адрес или несколько адресов через запятую).

Место зависит от версии Laravel:

  • Laravel 11 и новее: в начале boot() в app/Providers/AppServiceProvider.php. Не в bootstrap/app.php, который читается раньше .env.

    if ($proxies = env('TRUSTED_PROXIES')) {
        \Illuminate\Http\Middleware\TrustProxies::at($proxies);
    }
  • Laravel 9 и 10: метод proxies() в app/Http/Middleware/TrustProxies.php.

    protected function proxies()
    {
        return env('TRUSTED_PROXIES') ?: $this->proxies;
    }

Предупреждение исчезает, если проект уже доверяет прокси (trustProxies(...) в bootstrap/app.php, заполненный $proxies…). Если файл имеет необычную форму, Joppa его не изменяет: нажмите Скопировать код и вставьте его сами.

Передаваемые заголовки

Прокси сохраняет исходный заголовок Host (app.monprojet.test) и добавляет заголовки X-Forwarded-*: X-Forwarded-Proto: https, X-Forwarded-Host, X-Forwarded-Port: 443 и X-Forwarded-For. См. HTTPS-прокси.

getjoppa.com › support

Загрузка

Не отправляется? Напишите на [email protected]. Просто вопрос: [email protected].