Все, что хотел

    Hotel – приют для localhost.


    Запуск и управление всех ваших веб-проектов с одного адреса.


    Больше, разных портов костылей.


    Можно держать зоопарк портов для каждого проекта: 9000, 8000, 8080, 3000, 3001…
    Или настраивать веб-сервер, править /etc/hosts файл или DNS для каждого проекта.
    А еще помнить, как запускать девелоперский веб-сервер для каждого проекта:


    • gulp
    • gulp serve
    • gulp watch
    • ionic serve
    • browser-sync start --server --no-open --directory --files
    • http-server -p 9000
    • python -m http.server 8000
    • php -S localhost:8000
    • и так далее...

    Сделать жизнь проще поможет hotel.



    1. Поставьте и запустите отель:


    npm install -g hotel && hotel start

    2. Заселите проекты в отель:


    # foo project
    cd ~/foo
    hotel add 'gulp' -n foo -o foo-hotel.log
    
    # bar project
    cd ~/bar
    hotel add 'gulp serve' -n bar -o bar-hotel.log
    
    # baz project
    cd ~/baz
    hotel add 'gulp watch' -n baz -o baz-hotel.log
    
    # etc...
    hotel add 'ionic serve'
    hotel add 'browser-sync start --server --no-open --directory --files'
    hotel add 'http-server -p $PORT'
    hotel add 'python -m http.server $PORT'
    hotel add 'php -S localhost:$PORT'

    3. Теперь они живут в отеле http://localhost:2000/


    Как открыть проект?



    Как работает hotel.dev?


    Hotel позовляет открывать %любой%.dev адрес в браузере, заботливо поднимая ваш веб сервер и проксируя в него.


    Достаточно указать прокси в браузере


    Используя небольшой сценарий proxy auto-config для браузера http://localhost:2000/proxy.pac


    function FindProxyForURL (url, host) {
      if (dnsDomainIs(host, '.dev')) {
        return 'PROXY 127.0.0.1:2000';
      }
    
      return 'DIRECT';
    }

    Если скормить этот сценарий бразуеру, то все, что кончается на .dev будет ходить через 127.0.0.1:2000 на ваш веб.


    Теперь отель будет доступен по адресу hotel.dev.
    А ваши проекты по адресам foo.dev, bar.dev, baz.dev.


    GitHub проекта: https://github.com/typicode/hotel


    Прошу про очепятки чепятать в личку.

    Комментарии 11

      0
      Действительно, хотел :D
      Отличная работа, спасибо!
        0
        Хорошая девелоперская утилита, не уверен насчет Node.js может что-то по структурнее и попровереннее взять? Так в целом незакрытая ниша — сейчас каждый разработчик поднимает какой-нибудь зоопарк (HTTP Server, Database, NoSQL DB, Hadoop, etc).
          +1
          Тогда строчку запуска веб-сервера надо поменять на строчку запуска docker-контейнера с зоопарком)
          +1
          Hotel – приют для localhost

          Со словом приют больше Hostel ассоциируется :)
            +5
            Дополнительный чаще всего не нужный слой о котором зачем-то нужно думать.
            • НЛО прилетело и опубликовало эту надпись здесь
                +1
                Потому что в мире современного JavaScript так принято. Через неделю появится микромодуль динамической конфигурации серверов, через 2 недели ещё один для деплоя менеждера локалхостов на удалённые хосты с возможностью скриптования на ES6, прогоняемого через babel дополнительным gulp-таском и модуль hotel-quickstart, создающий необходимую структуру папок/файлов.
                Установка очень простая:
                apt-get install ruby ruby-gem python nodejs build-essentials && npm install -g hotel-quickstart && hotel-quickstart hotel && configure && make && npm install && bower update && gulp build && grunt serve && gulp watch hotel-manager && hotel-remote start --host localhost && hotel serve
                0
                Интересно. А с айпада в локальной сети можно открыть такой проект, если в проекте используются абсолютные пути?
                  0
                  Сервер browsersync это позволяет, мало того он синхронизирует состояние если открыть с нескольких устройств.
                  +1
                  Имею пачку контейнеров на lxc, openvz под задачи. То, что уже готово к продакшену — деплоится в докер сервер образами
                    0
                    gulp
                    gulp serve
                    gulp watch
                    ionic serve
                    browser-sync start --server --no-open --directory --files
                    http-server -p 9000
                    python -m http.server 8000
                    php -S localhost:8000
                    и так далее...


                    Окей, но точно так же я просто могу в npm кофиг записать эти команды. Единственное, что браузерный интерфейс. Эт прикольно да, но не знаю. Подобного рода доки я могу прочитать и в ридми проекта. Какой опыт использования? в чем профит, удобство, косяки, мега новый воркфлоу?

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое