Содержание
Как правильно установить тандыр в закрытом помещении и на улице?
Прочитав нашу статью, вы будете точно знать, как правильно установить тандыр в закрытом помещении, и что нужно учесть при хранении тандыра на улице. У каждой печи есть своя история, объясняющая ее конструкцию и главные характеристики. Все знают, что такое русская печь – большая, теплая, с лежанкой. Какой еще может быть печка в стране, где зимы довольно суровы, и нужно позаботиться не только о приготовлении еды? И многие знают, что такое тандыр – традиционная печь, используемая на Кавказе и в странах Средней Азии. Большая бочка или кувшин из глины, с крышкой, продукты опускаются внутрь, после того, как полностью прогорят дрова. Такие особенности конструкции тоже легко объяснить. Толстые стенки из глины хорошо накапливают жар, и потом медленно его отдают, в течение 3-4 часов. Этого времени вполне достаточно, чтобы приготовить обед даже на большую семью. Почему глина? А что еще взять в горах или степи? С топливом в этой местности тоже сложно, поэтому толстые стенки – большой плюс.
Много дров для их нагрева не требуется, да и поддерживать огонь нет необходимости, еда ведь готовится от жара раскаленной печки. Все продуманно. А какие вкусные, ароматные блюда может сделать настоящий узбекский тандыр! Совсем не такие, как на костре или в барбекю. Даже шашлык в такой печи получается особенно сочным и ароматным, мягким и невероятно вкусным. Лучше всего в тандыре готовить мясо и птицу, впрочем, грибы, овощи, рыба получается не менее сочными и вкусными. А копчение? Вы еще не пробовали копченую рыбку или мясо из тандыра? Многое потеряли. И, конечно же, первые блюда, каши – их тоже можно готовить в такой печи, и они получаются намного вкуснее, чем на плите или открытом огне. Одним словом, если вы живете в частном доме или часто выезжаете на природе, есть смысл купить переносной тандыр или установить стационарную печь. Ни разу об этом не пожалеете. Правда, чтобы печка радовала вас вкусными обедами и ужинами, ее нужно правильно установить. И уход ей тоже необходим, впрочем, он несложный.
Как установить тандыр в закрытом помещении?
Если с уличной установкой все просто – достаточно найти ровную, достаточно твердую площадку вдалеке от легковоспламеняющихся предметов и строений, то с установкой в доме ситуация сложнее. Прежде всего, необходимо обеспечить жаропрочную защиту вокруг печи. Это касается пола (делается фундамент, который обкладывается жаростойкой плиткой), окружающих стен и потолка, ведь пламя из печи может подниматься на высоту до метра, да еще и искры летят. Поэтому вокруг тандыра не должно быть ничего, что может загореться. Еще нужна хорошая вытяжка. Труба конструкцией тандыра не предусмотрена, весь дым идет в помещение – без мощной вытяжки не обойтись. Еще один вариант – труба непосредственно над печкой, как каминная, в этом случае тандыр устанавливается под кирпичным сводом. Категорически запрещено устанавливать печь в обычной беседке или помещении с низким потолком, без огнезащиты.
Как хранить тандыр на улице?
Такие сложности в эксплуатации печи внутри помещения легко объяснимы – печь для этого и не предназначена, она уличная.
А как хранить тандыр на улице? В этом нет никакой сложности. Для защиты от пыли, грязи и влаги приобретается или шьется непромокаемый чехол в виде мешка с затяжками внизу. Им печь накрывается после использования – естественно, тандыру дают остыть (только самостоятельно), удаляют из него угли и золу, аксессуары. А вот о жире беспокоиться не стоит – он выгорает при следующей растопке печи. Нужно ли убирать угли из тандыра во время приготовления еды? Если не использовать специальный рассекатель, то большая часть углей удаляется, оставляют совсем немного, для образования корочки на мясе или рыбе. Но если использовать рассекатель – тогда угли остаются, продолжая греть стенки печи, и не влияя на готовящуюся пищу.
Можно ли использовать тандыр зимой?
Да, посреди зимы тоже хочется вкусного шашлыка или запеченной бараньей ноги. Можно ли использовать тандыр зимой? Конечно же, можно. Только каждый раз его нужно растапливать постепенно, аккуратно, следуя правилам первого розжига.
Если стенки печи нагреются резко, они покроются трещинами. Так что, тандыр зимой на улице использовать можно, но осторожно.
|
Все больше людей стараются уйти от городской суеты и проводить больше времени за городом, вдыхая чистый воздух и наслаждаясь яркой, сочной, живописной природой. Многие совмещают такое времяпрепровождение с приготовлением пищи, используя для этого мангалы или барбекю. С востока к нам пришел еще один вид печи – тандыр на дровах. Это особый сосуд, в котором еда не теряет своих полезных свойств, не подгорает, приобретает тонкую хрустящую корочку и легкий аромат дымка.
Построить тандыр можно из кирпича своими руками
Существует несколько разных схем, по которым сооружают жаровню собственноручно, но наиболее презентабельно и надёжно смотрится тандыр из кирпича. Традиционная форма такой печи – круглая. Она может располагаться над землей или под ней, или же быть оборудованной колесиками, благодаря чему ее можно передвигать в любое удобное место.
Заливаем монолитный фундамент
Тандыр — установка тяжелая, поэтому без хорошего основания не обойтись. Первым делом выбираем грунт, на глубину до 30 см, далее в котлован засыпаем песчано-гравийную смесь. На следующем шаге производим армировку с крупноячеистой сетки или арматуры и выставляем опалубку по уровню. Затем заливаем все цементным раствором.
Подготавливаем кирпич и начинаем кладку
Приобретаем каменные блоки, глиняный кирпич или другой любой вид огнеупорного материала. Кладем его на специальную огнеупорную смесь, способную выдерживать температуру до 1000 градусов. Первыми двумя рядами формируем канал поддувала с дверкой, поверх которого устанавливаем колосники.
Сооружаем топливную камеру с горловиной 40 см
После того, как основание с поддувалом готово строим топливник. Для того, чтобы он получился правильной геометрической формы рекомендовано воспользоваться заранее подготовленным шаблоном.
Готовую конструкцию обмазываем глиной и добавляем последние штрихи
Когда процесс кладки окончен, все изделие покрывается слоем огнеупорной глины. Она выступает как связующий элемент способный плавно набирать и удерживать температуру. Тандыр снаружи можно украсить декоративной мозаикой или покрасить специальной краской. Сверху нужно предусмотреть деревянную или металлическую крышку.
Не обязательно применять кирпич, можно использовать бочку подходящего размера
Если использовать кирпич для построения восточной печи возможности нет, либо строитель из Вас не получился, Вы можете соорудить тандыр из глины, 200-литровой бочки или деревянной емкости.
Угощения из тандыра необыкновенно нежные, сочные и мягкие
В восточной печи-жаровне можно приготовить любое блюдо, самса и лаваши крепятся к раскаленным стенкам, а шашлык и рёбрышки подвешиваются вертикально, благодаря чему, по кусочкам мяса стекает жир, делая их сочными и мягкими. При этом, он не попадает на раскаленные угли, поэтому продукты не сгорают, а покрываются тонкой румяной корочкой. Можно приобрести готовый керамический тандыр, подготовить на участке прочную, ровную площадку и начинать приготовления, но гораздо приятнее изготовить печь своими руками.
|
Докер — Рецепты тандыра
Рекомендуемая установка
Рекомендуется настроить это приложение с помощью Docker.
Это не значит, что другие варианты плохие, просто
поддержка намного проще для этой настройки.
Это приложение можно установить, используя множество различных конфигураций Docker.
Пожалуйста, внимательно прочитайте инструкции к каждому примеру и решите, подходит ли вам этот способ.
Докер
Образ докера ( vabene1111/recipes ) просто предоставляет приложение для порта контейнера 8080 .
Его можно запустить и получить к нему доступ через порт 80, используя:
докер запустить -d \
-v "$(pwd)"/staticfiles:/opt/рецепты/staticfiles \
-v "$(pwd)"/медиафайлы:/opt/рецепты/медиафайлы \
-p 80:8080 \
-e СЕКРЕТ_КЛЮЧ=ВАШ_СЕКРЕТ_КЛЮЧ \
-e DB_ENGINE=django.db.backends.postgresql \
-e POSTGRES_HOST=db_recipes \
-e POSTGRES_PORT=5432 \
-e POSTGRES_USER=djangodb \
-e POSTGRES_PASSWORD=ВАШ_POSTGRES_SECRET_KEY \
-e POSTGRES_DB=djangodb \
--name recipes_1 \
вабене1111/рецепты
Пожалуйста, убедитесь, что если вы запускаете свой образ таким образом, проконсультируйтесь
.
env.template
в репозитории GitHub, чтобы проверить, требуются ли дополнительные переменные среды для вашей установки.
Также не забудьте заменить заполнители для SECRET_KEY и POSTGRES_PASSWORD !
Версии
В Docker Hub выпущены разные версии (теги).
- последнее Изображение по умолчанию. Тот, который вы должны использовать, если вы не знаете, что вам нужно что-то еще.
- beta Частично стабильная версия, которая время от времени обновляется. Ожидайте возникновения некоторых проблем.
- develop Если вам нужна самая передовая версия с потенциально большим количеством критических изменений, не стесняйтесь использовать эту версию (не рекомендуется!).
- X.Y.Z каждая выпущенная версия имеет свой собственный образ. Если вам нужно вернуться к старой версии или вы хотите убедиться, что вы остаетесь на одной конкретной версии, используйте эти теги.

Без понижения версии
В настоящее время нет возможности вернуться к более старой версии, так как нет механизма понижения версии базы данных.
Вы, вероятно, могли бы сделать это, но я не могу помочь вам с этим. Выбирайте с умом, если хотите использовать нестабильные образы.
Тем не менее, beta обычно должна работать, если вам нравятся частые обновления и новые вещи.
Докер Составление
Основным, а также рекомендуемым вариантом установки этого приложения является Docker Compose.
- Выберите
docker-compose.ymlиз приведенных ниже примеров. - Загрузите файл конфигурации
.envс помощьюwgetwget https://raw.githubusercontent.com/vabene1111/recipes/develop/.env.template -O .env
- Отредактируйте соответственно (НЕОБХОДИМО установить
SECRET_KEYиPOSTGRES_PASSWORD). - Запустите свой контейнер, используя
docker-compose up -d.
Обычная
Эта конфигурация предоставляет доступ к приложению через контейнерный веб-сервер nginx через порт 80 вашего компьютера.
Имейте в виду, что наличие другого веб-сервера или контейнера, работающего на вашем хост-компьютере через порт 80, заблокирует его работу.
wget https://raw.githubusercontent.com/vabene1111/recipes/develop/docs/install/docker/plain/docker-compose.yml
версия: "3"
Сервисы:
db_recipes:
перезапуск: всегда
изображение: postgres:11-alpine
тома:
- ./postgresql:/var/lib/postgresql/данные
env_file:
- ./.env
веб_рецепты:
перезапуск: всегда
изображение: vabene1111/рецепты
env_file:
- ./.env
тома:
- статические файлы:/opt/рецепты/статические файлы
- nginx_config:/opt/рецепты/nginx/conf.d
- ./медиафайлы:/опт/рецепты/медиафайлы
зависит от:
- db_recipes
nginx_рецепты:
изображение: nginx: mainline-alpine
перезапуск: всегда
порты:
- 80:80
env_file:
- .
/.env
зависит от:
- веб-рецепты
тома:
- nginx_config:/etc/nginx/conf.d:ро
- статические файлы:/статические:ro
- ./медиафайлы:/медиа:ро
тома:
nginx_config:
статические файлы:
Примечание
Не забудьте загрузить и настроить файл .env !
Обратный прокси-сервер
Большинство развертываний, скорее всего, будут использовать обратный прокси-сервер.
Если вашего обратного прокси-сервера нет в списке ниже, обратитесь к главе Другие.
Траефик
Если вы используете Traefik, эта конфигурация для вас.
wget https://raw.githubusercontent.com/vabene1111/recipes/develop/docs/install/docker/traefik-nginx/docker-compose.yml
версия: "3"
Сервисы:
db_recipes:
перезапуск: всегда
изображение: postgres:11-alpine
тома:
- ./postgresql:/var/lib/postgresql/данные
env_file:
- ./.env
сети:
- дефолт
веб_рецепты:
перезапуск: всегда
изображение: vabene1111/рецепты
env_file:
- .
/.env
тома:
- статические файлы:/opt/рецепты/статические файлы
- nginx_config:/opt/рецепты/nginx/conf.d
- ./медиафайлы:/опт/рецепты/медиафайлы
зависит от:
- db_recipes
сети:
- дефолт
nginx_рецепты:
изображение: nginx: mainline-alpine
перезапуск: всегда
env_file:
- ./.env
тома:
- nginx_config:/etc/nginx/conf.d:ро
- статические файлы:/статические:ro
- ./медиафайлы:/медиа:ро
labels: # ярлыки примера traefik
- "traefik.enable=true"
- "traefik.http.routers.recipes.rule=Host(`recipes.mydomain.com`, `recipes.myotherdomain.com`)"
- "traefik.http.routers.recipes.entrypoints=web_secure" # ваша конечная точка https
- "traefik.http.routers.recipes.tls.certresolver=le_resolver" # ваш преобразователь сертификатов
зависит от:
- веб-рецепты
сети:
- дефолт
- траефик
сети:
дефолт:
traefik: # Это ваша внешняя сеть traefik
внешний: правда
тома:
nginx_config:
статические файлы:
Примечание
Не забудьте загрузить и настроить файл .!
env
Nginx-прокси jwilder
Это пример создания докера с использованием обратного прокси-сервера jwilder nginx.
в сочетании с компаньоном jrcs letsencrypt.
См. соответствующую документацию по настройке обратного прокси-сервера и сетей.
Настройка client_max_body_size
При использовании прокси-сервера Nginx от jwilder загрузка будет ограничена размером файла 1 МБ. Это можно решить, отрегулировав переменная client_max_body_size в конфигурации jwilder nginx.
Не забудьте добавить соответствующие переменные среды в файл .env :
ВИРТУАЛЬНЫЙ_ХОСТ= LETSENCRYPT_HOST= LETSENCRYPT_EMAIL=
wget https://raw.githubusercontent.com/vabene1111/recipes/develop/docs/install/docker/nginx-proxy/docker-compose.yml
версия: "3"
Сервисы:
db_recipes:
перезапуск: всегда
изображение: postgres:11-alpine
тома:
- ./postgresql:/var/lib/postgresql/данные
env_file:
- .
/.env
сети:
- дефолт
веб_рецепты:
перезапуск: всегда
изображение: vabene1111/рецепты
env_file:
- ./.env
тома:
- статические файлы:/opt/рецепты/статические файлы
- nginx_config:/opt/рецепты/nginx/conf.d
- ./медиафайлы:/опт/рецепты/медиафайлы
зависит от:
- db_recipes
сети:
- дефолт
nginx_рецепты:
изображение: nginx: mainline-alpine
перезапуск: всегда
env_file:
- ./.env
зависит от:
- веб-рецепты
тома:
- nginx_config:/etc/nginx/conf.d:ро
- статические файлы:/статические:ro
- ./медиафайлы:/медиа:ро
сети:
- дефолт
- nginx-прокси
сети:
дефолт:
nginx-прокси:
внешний:
имя: nginx-прокси
тома:
nginx_config:
статические файлы:
Примечание
Не забудьте загрузить и настроить файл .env !
Nginx Swag от LinuxServer
Этот контейнер представляет собой универсальное решение, созданное LinuxServer.
io.
Он содержит шаблоны для популярных приложений, в том числе Tandoor Recipes, поэтому вам не нужно вручную настраивать nginx и отказываться от шаблона, предоставленного в репозитории Tandoor. Конфигурация тандыра называется recipes.subdomain.conf.sample , которую вы можете адаптировать для своего экземпляра.
Если вы используете Swag на порту по умолчанию, вам просто нужно изменить имя контейнера на свое.
Если вы запускаете Swag на пользовательском порту, необходимо изменить некоторые заголовки:
- Создать копию
proxy.conf - Заменить
proxy_set_header X-Forwarded-Host $host;иproxy_set_header Хост $host; отдо-
proxy_set_header X-Forwarded-Host $http_host;иproxy_set_header Хост $http_host;
-
- Обновление
recipes.subdomain.confдля использования нового файла - Перезапустите контейнер linuxserver/swag, и рецепты будут работать правильно
Подробнее здесь.
В обоих случаях обязательно смонтируйте /media/ в контейнере swag, чтобы он указывал на каталог Tandoor Recipes Media.
См. соответствующую документацию по настройке контейнера.
Пошаговые инструкции по настройке с нуля см. в этом примере.
Чистый Nginx
Если Nginx установлен локально в вашей хост-системе без использования какой-либо сторонней интеграции, такой как Swag или аналогичной, это для вас.
Вы можете использовать файл Docker-Compose из Plain.
Настройка файла Docker-Compose
Замените 80:80 на PORT:80 , где PORT — желаемый внешний порт.
В приведенном ниже примере конфигурации nginx используется 8080.
Пример конфигурации с LetsEncrypt для начала работы можно увидеть ниже.
Обратите внимание, что, поскольку каждая настройка отличается, вам может потребоваться настроить некоторые вещи.
Заполнители
Не забудьте заменить домен и порт.
сервер {
if ($host = recipes.mydomain.tld) { # заменить домен
вернуть 301 https://$host$request_uri;
}
имя_сервера recipes.mydomain.tld; # заменить домен
слушать 80;
вернуть 404;
}
сервер {
имя_сервера recipes.mydomain.tld; # заменить домен
слушать 443 ssl;
ssl_certificate /etc/letsencrypt/live/recipes.mydomain.tld/fullchain.pem; # заменить домен
ssl_certificate_key /etc/letsencrypt/live/recipes.mydomain.tld/privkey.pem; # заменить домен
включить /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
расположение / {
proxy_set_header Хост $http_host; # вместо этого попробуйте $host, если это не сработает
proxy_set_header X-Forwarded-Proto $ схема;
прокси_пароль http://127.0.0.1:8080; # заменить порт
proxy_redirect http://127.0.0.1:8080 https://recipes.domain.tld; # заменить порт и домен
}
}
Примечание
Не забудьте загрузить и настроить файл .!
env
Апач
Вы можете использовать файл Docker-Compose из Plain.
Настройка файла Docker-Compose
Замените 80:80 на PORT:80 , где PORT — желаемый внешний порт.
В приведенном ниже примере конфигурации Apache используется 8080.
Если вы используете, например. LetsEncrypt для шифрования SSL, вы можете использовать пример конфигурации из solaris7590 ниже.
Заполнители
Не забудьте заменить домен и порт.
<Виртуальный хост *:80> ServerAdmin [email protected] # заменить домен ServerName mydomain.de # заменить домен Редирект постоянный / https://mydomain.de/ # заменить домен виртуальный хост> <Виртуальный хост *:443> ServerAdmin [email protected] # заменить домен ServerName mydomain.de # заменить домен SSLEngine включен RequestHeader устанавливает X-Forwarded-Proto "https" Заголовок всегда устанавливает Access-Control-Allow-Origin "*" ProxyPreserveHost включен Прокси-запросы выключены ProxyPass / http://localhost:8080/ # заменить порт ProxyPassReverse / http://localhost:8080/ # заменить порт SSLCertificateFile /etc/letsencrypt/live/mydomain. de/fullchain.pem # заменить домен/путь SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.de/privkey.pem # заменить домен/путь Включить /etc/letsencrypt/options-ssl-apache.conf Журнал ошибок ${APACHE_LOG_DIR}/recipes_error.log CustomLog ${APACHE_LOG_DIR}/recipes_access.log вместе виртуальный хост> ЕслиМодуль>
Если у вас возникли проблемы с приведенным выше примером конфигурации, вы можете попробовать пример конфигурации beedaddy.
Примечание
Не забудьте загрузить и настроить файл .env !
Другие
Если вы не используете ни один из вышеупомянутых обратных прокси-серверов или хотите использовать существующий на вашем хост-компьютере (например, локальный nginx или Caddy), просто используйте настройку Plain выше и измените исходящий порт на один из ваших предпочтений.
Пример конфигурации порта (внутри соответствующего файла docker-compose.yml): 8123:80 вместо 80:80 или если вы хотите быть уверены, что Tandoor просто доступен через ваш прокси и не хотите возиться с брандмауэром, то 127. тоже хороший вариант.
0.0.1:8123:80
Примечание
Не забудьте загрузить и настроить файл .env !
Nginx против Gunicorn
Во всех примерах используется дополнительный контейнер nginx для обслуживания медиафайлов и работы в качестве прямого веб-сервера.
это технически не требуется , но очень рекомендуется .
я не на 100% разбираюсь в глубоких технических тонкостях но разработчики гуникорна,
сервер WSGi, который обрабатывает выполнение Python, прямо заявляют, что его не рекомендуется развертывать без nginx.
Вы также, скорее всего, не увидите снижения производительности или использования большого количества места, поскольку nginx — очень легкий контейнер.
Если вы запускаете небольшое частное развертывание и не заботитесь о производительности, безопасности и всем остальном, не стесняйтесь запускать
без контейнера nginx.
Предупреждение
При работе без nginx обязательно включите GUNICORN_MEDIA в . . Без него медиафайлы будут загружаться
env
но не отображается на странице.
Дополнительные сведения см. в выпуске 0.9.0.
и выпуск 201, где обсуждались эти темы.
См. также официальную документацию gunicorn.
Конфигурация Nginx
Чтобы предоставить пользователю (вам) максимальную свободу при выборе способа развертывания этого приложения,
веб-сервер не связан напрямую с образом Docker.
У этого есть недостаток: сложно предоставить конфигурацию веб-серверу (например, nginx). До
версия 0.13.0 , это нужно было сделать вручную, загрузив файл конфигурации nginx и поместив его в каталог, который
затем был смонтирован в контейнер nginx.
Начиная с версии 0.13.0 файл конфигурации поставляется с использованием образа приложения ( vabene1111/recipes ). Затем его монтируют
в хост-систему и оттуда в контейнер nginx.
Это не совсем чистое решение, но я не смог найти лучшей альтернативы, которая обеспечивала бы такое же количество
удобство использования.
Если вы знаете какой-либо лучший способ, не стесняйтесь открывать вопрос.
Тома против привязанных монтирований
Поскольку я лично предпочитаю хранить свои данные там, где находится мой docker-compose.yml , в примере используются привязки
файлы конфигурации для всех пользовательских данных (например, Postgresql и медиафайлы).
Предупреждение
Обратите внимание, что есть разница в функциональности
между ними, и вы не всегда можете просто поменять их местами.
Вы можете переместить все в тома, если хотите, но вы не можете преобразовать файл конфигурации nginx в привязку
устанавливать.
Если вы это сделаете, вам придется вручную создать файл конфигурации nginx и перезапустить контейнер один раз после его создания.
Обязательно укажите все необходимые заголовки в конфигурации nginx/Apache/Caddy/…!
нгинкс:
местоположение / {
proxy_set_header Хост $http_host; # вместо этого попробуйте $host, если это не сработает
proxy_set_header X-Forwarded-Proto $ схема;
прокси_пароль http://127.
0.0.1:8080; # заменить порт
proxy_redirect http://127.0.0.1:8080 https://recipes.domain.tld; # заменить порт и домен
}
Апач:
RequestHeader установить X-Forwarded-Proto "https" Заголовок всегда устанавливает Access-Control-Allow-Origin "*" ProxyPreserveHost включен Прокси-запросы выключены ProxyPass / http://localhost:8080/ # заменить порт ProxyPassReverse / http://localhost:8080/ # заменить порт
Проблемы с настройкой на Raspberry Pi
Предупреждение
Если вы хотите использовать Tandoor на Raspberry Pi под управлением 32-разрядной операционной системы, вам необходимо использовать следующее
теги образа докера: last-raspi , beta-raspi и версия
Мы настоятельно рекомендуем использовать новый 64-битный образ Raspian, поскольку 32-битная версия не тестировалась.
Если у вас возникли проблемы с установкой Tandoor на Raspberry Pi или аналогичном устройстве,
следуйте этим инструкциям:
- Остановить все контейнеры Tandoor (
docker-compose down) - Удалить папку локальной базы данных (обычно «postgresql» в той же папке, что и ваш файл «docker-compose.
yml») - Снова запустить контейнеры Tandoor (
docker-compose up -d) - Подождите не менее 2-3 минут, а затем проверьте, все ли работает сейчас (миграция может занять некоторое время!)
- Если нет, проверьте журналы контейнера web_recipes с помощью
журналов докерови убедитесь, что все миграции действительно уже выполнены
Конфигурация nginx подпути
При размещении по подпути вы можете изменить конфигурацию nginx по умолчанию (которая монтируется через именованный том из контейнера приложения в контейнер nginx)
со следующей конфигурацией.
location /my_app { # изменить имя подпапки
включить /config/nginx/proxy.conf;
прокси_пароль https://mywebapp.com/; # измените имя вашего хоста: порт
proxy_set_header Хост $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Script-Name /my_app; # изменить имя подпапки
proxy_cookie_path //my_app; # изменить имя подпапки
}
местоположение /медиа/ {
включить /config/nginx/proxy.
conf;
псевдоним /медиафайлы/;
client_max_body_size 16M;
}
местоположение /статическое/ {
включить /config/nginx/proxy.conf;
псевдоним /staticfiles/;
client_max_body_size 16M;
}
Руководство — Рецепты тандыра
Эти инструкции основаны на стандартных инструкциях django/gunicorn/postgresql (например)
Предупреждение
Обязательно используйте как минимум python 3.9 и как минимум pip, связанный с python 3.9. В зависимости от вашего дистрибутива, вызывающего python или pip , будет использоваться python2 вместо python 3.9. На момент написания этой документации также доступна версия 3.10.
Убедитесь, что на вашей машине установлено не менее 2048 МБ памяти, иначе сборка пряжи завершится ошибкой с НЕУСТРАНИМАЯ ОШИБКА: достигнут предел кучи Не удалось выделить память — куча JavaScript не хватает памяти .
Предпосылки
Пользователь установки: sudo useradd recipes
Обновите репозитории и обновите свою ОС: sudo apt update && sudo apt upgrade -y
Установите все необходимые компоненты sudo apt install -y git curl python3 python3-pip python3-venv nginx
Получить последнюю версию из репозитория: git clone https://github.
com/vabene1111/recipes.git -b master
Переместить в каталог /var/www : mv recipes /var/www
Перейти в каталог: cd /var/www/recipes
Дайте пользователю разрешения: chown -R recipes:www-data /var/www/recipes
Создать виртуальную среду: python3 -m venv /var/www/recipes
Установить инструменты Javascript (требуется nodejs >= 12)
### Просто используйте одну из этих возможностей! # Использование Убунту curl -fsSL https://deb.nodesource.com/setup_lts.x | судо -E баш - sudo apt install -y nodejs # Использование Debian от имени root curl -fsSL https://deb.nodesource.com/setup_lts.x | баш - меткая установка -y nodejs # Использование дистрибутива на основе RPM ## ... как корень curl -fsSL https://rpm.nodesource.com/setup_lts.x | баш - ## ... без привилегий root curl -fsSL https://rpm.nodesource.com/setup_lts.x | судо баш -
sudo npm install --global yarn
Установить требования postgresql
sudo apt install -y libpq-dev postgresql
Установка требований LDAP
sudo apt install -y libsasl2-dev python3-dev libldap2-dev libssl-dev
Требования к проекту установки
Обновление
Зависимости меняются с большинством обновлений, поэтому следующие шаги необходимо выполнять повторно при каждом обновлении, иначе приложение может перестать работать.
См. раздел Обновление ниже.
Использование двоичных файлов из виртуальной среды:
/var/www/recipes/bin/pip3 install -r requirements.txt
Вам также потребуется установить требования к внешнему интерфейсу и собрать их. Для этого перейдите в папку ./vue и запустите
кд ./вью пряжа установить пряжа строить
Настройка postgresql
sudo -u postgres psql
В консоли psql:
СОЗДАТЬ БАЗУ ДАННЫХ djangodb; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ djangouser С ПАРОЛЕМ 'пароль'; ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА БАЗУ ДАННЫХ djangodb djangouser; ИЗМЕНИТЬ ВЛАДЕЛЬЦА БАЗЫ ДАННЫХ djangodb НА djangouser; --Возможно, не обязательно, но должно быть быстрее: ИЗМЕНИТЬ РОЛЬ djangouser SET client_encoding TO 'utf8'; ИЗМЕНИТЬ РОЛЬ djangouser SET default_transaction_isolation TO «прочитать зафиксировано»; ИЗМЕНИТЬ РОЛЬ djangouser УСТАНОВИТЬ часовой пояс В «UTC»; -- Предоставьте права суперпользователя вашему новому пользователю, оно будет удалено позже ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ djangouser С СУПЕРПОЛЬЗОВАТЕЛЕМ; --выход из среды Postgres выход
Загрузите файл конфигурации . и отредактируйте его соответствующим образом .
env
wget https://raw.githubusercontent.com/vabene1111/recipes/develop/.env.template -O /var/www/recipes/.env
Что редактировать:
-
SECRET_KEY: используйте что-то безопасное (сгенерируйте его с помощьюbase64 /dev/urandom | head -c50f.e.). -
POSTGRES_HOST: вероятно 127.0.0.1. -
POSTGRES_PASSWORD: пароль, который мы установили ранее при настройке djangodb. 9#]» | xargs) для загрузки переменных из/var/www/recipes/.envВыполнить
bin/python3 manage.py migrateи вернуть суперпользователя из postgres:
sudo -u postgres psql` и `ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ djangouser WITH NOSUPERUSER; выход
Создайте статические файлы:
bin/python3 manage.py collectstatic --no-inputиbin/python3 manage.py collectstatic_js_reverseи запомните папку, в которую были скопированы файлы.
Настройка веб-служб
огнестрельное оружие
Создайте службу, которая будет запускать gunicorn при загрузке:
sudo nano /etc/systemd/system/gunicorn_recipes.serviceИ введите эти строки:
[Единица измерения] Description=демон Gunicorn для рецептов После=network.target [Обслуживание] Тип=простой Перезапустить = всегда Рестартсек=3 Пользователь=рецепты Группа=www-данные Рабочий каталог=/var/www/рецепты EnvironmentFile=/var/www/recipes/.env ExecStart=/var/www/recipes/bin/gunicorn --файл журнала ошибок /tmp/gunicorn_err.log --отладка на уровне журнала --capture-output --bind рецепты unix:/var/www/recipes/recipes.sock .wsgi: приложение [Установить] WantedBy=многопользовательская.цель
Примечание :
-error-logfile /tmp/gunicorn_err.log --log-level debug --capture-outputполезны для отладки и могут быть удалены позжеNote2 : исправьте путь в строке
ExecStartк тому месту, где находятся ваши пушка и рецепты.

Далее рассмотрим, как построить стационарную печь.
Кладку производят горизонтальным или вертикальным методом. Полукруглую форму кирпичу можно придавать с помощью болгарки со специальным алмазным кругом по камню. Высота тандыра должна быть не менее метра в высоту от основания, можно и больше. Главное, чтобы им было удобно пользоваться.
Любую получившуюся композицию можно сверху облагородить мозаичной плиткой, песчаником, морскими камушками, керамикой. Предмет станет настоящим украшением сада. Рецепты, как приготовить в тандыре любимые блюда и инструкцию, как протопить его впервые Вы без проблем найдете на любом тематическом сайте.

/.env
зависит от:
- веб-рецепты
тома:
- nginx_config:/etc/nginx/conf.d:ро
- статические файлы:/статические:ro
- ./медиафайлы:/медиа:ро
тома:
nginx_config:
статические файлы:
/.env
тома:
- статические файлы:/opt/рецепты/статические файлы
- nginx_config:/opt/рецепты/nginx/conf.d
- ./медиафайлы:/опт/рецепты/медиафайлы
зависит от:
- db_recipes
сети:
- дефолт
nginx_рецепты:
изображение: nginx: mainline-alpine
перезапуск: всегда
env_file:
- ./.env
тома:
- nginx_config:/etc/nginx/conf.d:ро
- статические файлы:/статические:ro
- ./медиафайлы:/медиа:ро
labels: # ярлыки примера traefik
- "traefik.enable=true"
- "traefik.http.routers.recipes.rule=Host(`recipes.mydomain.com`, `recipes.myotherdomain.com`)"
- "traefik.http.routers.recipes.entrypoints=web_secure" # ваша конечная точка https
- "traefik.http.routers.recipes.tls.certresolver=le_resolver" # ваш преобразователь сертификатов
зависит от:
- веб-рецепты
сети:
- дефолт
- траефик
сети:
дефолт:
traefik: # Это ваша внешняя сеть traefik
внешний: правда
тома:
nginx_config:
статические файлы:
/.env
сети:
- дефолт
веб_рецепты:
перезапуск: всегда
изображение: vabene1111/рецепты
env_file:
- ./.env
тома:
- статические файлы:/opt/рецепты/статические файлы
- nginx_config:/opt/рецепты/nginx/conf.d
- ./медиафайлы:/опт/рецепты/медиафайлы
зависит от:
- db_recipes
сети:
- дефолт
nginx_рецепты:
изображение: nginx: mainline-alpine
перезапуск: всегда
env_file:
- ./.env
зависит от:
- веб-рецепты
тома:
- nginx_config:/etc/nginx/conf.d:ро
- статические файлы:/статические:ro
- ./медиафайлы:/медиа:ро
сети:
- дефолт
- nginx-прокси
сети:
дефолт:
nginx-прокси:
внешний:
имя: nginx-прокси
тома:
nginx_config:
статические файлы:
de/fullchain.pem # заменить домен/путь
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.de/privkey.pem # заменить домен/путь
Включить /etc/letsencrypt/options-ssl-apache.conf
Журнал ошибок ${APACHE_LOG_DIR}/recipes_error.log
CustomLog ${APACHE_LOG_DIR}/recipes_access.log вместе
виртуальный хост>
ЕслиМодуль>
0.0.1:8080; # заменить порт
proxy_redirect http://127.0.0.1:8080 https://recipes.domain.tld; # заменить порт и домен
}
yml»)
conf;
псевдоним /медиафайлы/;
client_max_body_size 16M;
}
местоположение /статическое/ {
включить /config/nginx/proxy.conf;
псевдоним /staticfiles/;
client_max_body_size 16M;
}

