Как хранить пароли и ключи в коде проектов? Всё о переменных окружения. Пример с Django

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 310

  • @t0digital
    @t0digital  10 місяців тому

    Мой курс «Хардкорная веб-разработка» - course.to.digital
    Вжух!

  • @deepbooster
    @deepbooster 4 роки тому +122

    Вот побольше таких best practices
    И музыка отличная

    • @t0digital
      @t0digital  4 роки тому +5

      Спасибо!

    • @ЯнФокин
      @ЯнФокин 3 роки тому

      Знаете, музыка похожа на музыку из торгового дома из Вай Сити

  • @dabuge
    @dabuge 4 роки тому +17

    Прекрасно! Спасибо огромное. На старости лет, просто для себя, учу Питон (в детстве программировал на Паскале). А началось все с вашего канала. )

    • @t0digital
      @t0digital  4 роки тому +3

      Рад, что полезно! Спасибо!

  • @kelevra1493
    @kelevra1493 4 роки тому +1

    Четкий канал, без кривляний, тупых приколов. Только полезная и доходчивая информация, без лишней воды.

  • @ЕгорМитрофанов-г7ъ
    @ЕгорМитрофанов-г7ъ 4 роки тому +5

    Недавно начал изучать Django и везде слышал, что пароли, учётки итд надо хранить в переменных окружения. Но никто об этом не рассказывал, а Вы сделали с примерами. Благодарю! Очень годный контент делаете.

  • @mrxrel8605
    @mrxrel8605 4 роки тому +23

    Как говорится, пришел по зову сердца

  • @yevhendomin7464
    @yevhendomin7464 3 роки тому +3

    Спасибо вам за ваш контент. Год назад я еще ничего не знал про программирование. В большей степени благодаря вашему каналу я с головой погрузился в программирование, получил первую работу джуном с хорошим окладом в одной из самых известных компаний мировых. Особая благодарочка за vim. Не знаю как я раньше без него работал. Еще раз спасибо. Один из самых интересных и полезных каналов в рунете.

    • @t0digital
      @t0digital  3 роки тому +1

      Йеее, спасибо! Очень рад за вас!

  • @go5190
    @go5190 4 роки тому

    Умные мысли в слух под красивую спокойную музыку. Спасибо!

  • @apuhtin16
    @apuhtin16 2 роки тому

    Спасибо тебе! Если что-то нужно узнать по python, то в начале смотрю на твоем канале. И чаще всего нахожу. Да еще в такой понятной и доступной форме.

  • @RamanTseshau
    @RamanTseshau 4 роки тому +45

    Да, а ещё можно хранить в разных хранилках типа Hashicorp Vault, Azure KeyVault и других системах менеджмента секретов, особенно если это не api ключи, а креды (юзернейм, пароль и т.п.). В гитхабе вроде есть возможность хранить секреты и вызывать их из кода в ci/cd пайплайнах

    • @karmicdude-
      @karmicdude- 4 роки тому +8

      Единственный нормальный коммент) Хорошей реализацией является Hashicop Vault

    • @AlexeyZubkov
      @AlexeyZubkov Рік тому

      а дак вот зачем нужен Vault..., до сего момента я ключи в postman хранил

  • @senatortre7326
    @senatortre7326 4 роки тому +9

    Спасибо, что прислушиваешься к запросам в комментариях! То что просил - получил 🥳 Респект.
    Предыдущее видео по Джанго тоже доставило. 👍🏻

  • @roppy__1580
    @roppy__1580 4 роки тому +1

    Лайк не глядя, я в натуре думаю что ты лучше чем некоторые блогер "программист"и

  • @АндрейРеш-г9в
    @АндрейРеш-г9в 4 роки тому +3

    Классные видео, с удовольствием все время смотрят у меня в семье парни 12 лет.

  • @NeimorJeck
    @NeimorJeck 4 роки тому +3

    Мне больше по душе хранить секюрные данные в '.env' файликах, создается два файла '.env' и '.env.example' в корене проектa, в env записываем ключи и значения а в example только ключи, .env разумеется улетает в gitignore. Теперь про то как превратить содержимое .env в переменные окружения, для этого есть библиотечка 'dotenv', к примеру в файле настроек выгружаем переменные окружения из .env файлика строчкой 'load_dotenv()', сразу же обращаемся к ним вот в таком формате BOT_TOKEN = os.getenv('BOT_TOKEN') а потому уже импортируя модуль настроек в любые файлы проекта обращаемся к значению переменой BOT_TOKEN просто по имени. Как по мне достаточно удобно и безопасно.

  • @stephan_inside
    @stephan_inside 4 роки тому +2

    Ещё один из промежуточных вариантов - создание файлов .env и .env.example. Первый есть только локально и мы не помещаем его в гит, а второй нужен для декларирования переменных, необходимых проекту.

    • @t0digital
      @t0digital  4 роки тому

      Да. И ещё ридми всегда очень кстати

  • @kubenet
    @kubenet 4 роки тому

    Спасибо за классный урок) Как раз изучаю Flask и был вопрос по хранению паролей и настроек проекта, теперь он решен)

  • @Миша-й8м1й
    @Миша-й8м1й 4 роки тому

    Спасибо что ты есть!

  • @eananyev
    @eananyev 4 роки тому

    Спасибо!
    Знал, канеш -- но тут разложили по полочкам, можно рекомендовать начинающим коллегам.

  • @chip253
    @chip253 2 роки тому

    Xм, только малесенькая поправочка - при развороте в кибернетисе или докете, в правилах деплоя будут указаны эти переменные окружения, с паролями, и эти правила деплоя будут лежать именно в репозитории 😙
    На практике - системные никто не использует, только на уровне приложения. Так что остается только хранить в репозитории конфиги для локала и теста, но без прода. А прод env есть только у одного человека.

  • @AlexeyFilimonov-v6p
    @AlexeyFilimonov-v6p 4 роки тому +1

    Еще as option удобно хранить с помощью модуля keyring. Хранит пароли он в системном хранилище (keychain в случае макоси ит.д.). Имхо максимально удобный интерфейс. Сам юзаю во всех проектах на python =)

  • @avtolub1
    @avtolub1 4 роки тому +26

    Не рассказал одну важную вещь: после добавления новых переменных окружения, например, в "~/.bashrc" НЕ ОБЯЗАТЕЛЬНО перелогиниваться/перезагружаться, достаточно выполнить следующую команду в терминале: "source ~/.bashrc".

    • @gustaugutter9477
      @gustaugutter9477 4 роки тому +2

      Или "exec bash"

    • @wobble_cat
      @wobble_cat 4 роки тому +9

      Существует очень распространенная конвенция dotenv и для ее реализации есть куча библиотек для всех популярных языков. Суть заключается в том, чтобы хранить конфеденциальные данные в файле .env который зачастую находится в корне проетка, и при старте программы, библиотека выгружает эти данные из файла в окружение.

  • @vsweetbread
    @vsweetbread 2 роки тому

    7:36
    пэсс - pass - проходить
    па(тот самый звук) - path - путь

  • @MyFunnyWeekend
    @MyFunnyWeekend 4 роки тому +3

    Супер годнота! Спасибо за контент , не останавливайся :)

    • @t0digital
      @t0digital  4 роки тому

      Будем фигачить дальше!

  • @MrDimka12101
    @MrDimka12101 4 роки тому +1

    Также можно запихнуть переменные окружения в файл .env (не коммитится! Можно оставить схему этого файла в .env.example). С помощью пакета environ считывать его так: environ.Env.read_env( '.env'). После этого они доступны в коде.

  • @vgvideo16538
    @vgvideo16538 4 роки тому +1

    Спасибо! Очень хотелось бы короткий гайд по работе с такими переменными в PyCharm. Подозреваю, что там есть какая-то автоматизация этих процессов.

    • @dremdem
      @dremdem 4 роки тому

      ibb.co/K2zpMQg Там все просто ) Но лучше, как сказали коллеги, хранить в .env файле. Кстати говоря на большом проекте таких файлов несколько. Обычно в git кладут "рыбу" с расширением txt где показывают пример .env файла. Для PROD, TEST, DEV файлы и соответственно набор переменных может быть разным. Ну и разумеется в .gitignore добавляется строчка, чтобы такие файлы не попадали в git.

  • @georgestatefield
    @georgestatefield 3 роки тому

    Весьма информативно, спасибо за ролик!

  • @victortamanov
    @victortamanov 4 роки тому

    Спасибо большое!!! Как раз то, что нужно!

  • @mpcomp12
    @mpcomp12 2 роки тому

    Спасибо за видео 👍

  • @mamashin
    @mamashin 4 роки тому +1

    Посмотрите на пакет decouple:
    Decouple helps you to organize your settings so that you can change parameters without having to redeploy your app.
    It also makes it easy for you to:
    - store parameters in ini or .env files;
    - define comprehensive default values;
    - properly convert values to the correct data type;
    - have only one configuration module to rule all your instances.

  • @pin689
    @pin689 4 роки тому +4

    По старинке пользуюсь конфигурационными файлами, и норм

  • @ihormanzii
    @ihormanzii 3 роки тому

    Для того что бы не перезагружать систему после добавления новых переменных окружения, можно использовать команду 'source'

  • @SiarheiAkhramenia
    @SiarheiAkhramenia 4 місяці тому

    Звук - бомба.
    Музыка - лишняя.
    Cheers! ✌

  • @adilrashitov2877
    @adilrashitov2877 4 роки тому

    Ооооо огромное спасибо! Как раз просил на эту тему ролик

    • @t0digital
      @t0digital  4 роки тому

      Концерт по заявкам:)!

  • @oleksiilobodiev9446
    @oleksiilobodiev9446 4 роки тому

    Спасибо за урок!)

  • @misterX389
    @misterX389 4 роки тому +1

    Круто, оч полезно, спасибо!

  • @vadimfedorets
    @vadimfedorets 4 роки тому +1

    Очень полезно и хорошо рассказано!)

  • @vladyslavstetsenko2655
    @vladyslavstetsenko2655 4 роки тому +1

    Было бы замечательно сделать видос по доккеру и его настройке)

    • @t0digital
      @t0digital  4 роки тому

      думаю, сделаю

  • @Ramzes646
    @Ramzes646 4 роки тому +1

    Спасибо за видео

  • @emutant01
    @emutant01 3 роки тому +1

    Передавать переменные через конфиг, который передается вида ./application application.conf плохо?
    Так можно тестировать и запускать сразу несколько конфигураций.

  • @AlexGott
    @AlexGott 4 роки тому

    Очень понравилось, полезная информация, спасибо огромное, очень ждал

  • @MrDmitriM
    @MrDmitriM 4 роки тому +1

    Просьба сделать видос про тестирование в django!!!

    • @t0digital
      @t0digital  4 роки тому +2

      Будет такой видос:)

  • @muhammedhilal5661
    @muhammedhilal5661 2 роки тому +1

    Лично я использую configParser в своих проектах и соответственно в config.ini хранятся не только API ключи, но много других настроек. Что касается безопасности, то просто добавляю этот config.ini в .gitignore😄

  • @sivr5vs38
    @sivr5vs38 4 роки тому

    Есть замечательная штука для того, чтобы можно было держать ключи в гите, Mozilla SOPS называется) ключи от него могут быть у разрабов и в CI

  • @mironovvova
    @mironovvova 4 роки тому +1

    Ожидал услышать что-то про vault и системы хранения паролей...

    • @t0digital
      @t0digital  4 роки тому

      возможно расскажу и про них, хотя судя по тому коду, что вижу на code review, что присылают, там до vault еще далеко, люди непосредственно в коде хардкодят пароли и ключи, даже не в настройках

    • @mironovvova
      @mironovvova 4 роки тому

      @@t0digital будем ждать!

  • @kalik54
    @kalik54 4 роки тому

    Спасибо, очень жду видео по эксепшенам

  • @timsbadalbaev2058
    @timsbadalbaev2058 3 роки тому

    Спасибо! Было познавательно

    • @t0digital
      @t0digital  3 роки тому +1

      рад, что полезно!

  • @pirognoe
    @pirognoe 4 роки тому

    Отличное видео. Жаль раньше не видел- узнал много нового. Ещё одна интересная для новичка тема - не секрет, что сложность вызывает не сам Джанго и первые упражнения по нему из учебника, а начальная настройка проекта. Я имею ввиду на каком-то удалённом сервере поднять Докер контейнер, настроить связь контейнера с внешним репозиторием и внешнего репозитория со своим проектом на локальной машине. Буду очень признателен за ссылку на видео по теме( если такие есть) или если такое видео появится на канале. Спасибо за полезные видео.

  • @andrewkondrashov6485
    @andrewkondrashov6485 2 роки тому

    Спасибо! А немножко про Vault?

  • @vadimdorokhov8375
    @vadimdorokhov8375 4 роки тому

    Полезно, большое спасибо!

    • @t0digital
      @t0digital  4 роки тому

      Рад, что полезно :)!

  • @dimonfx441
    @dimonfx441 2 роки тому

    Перелогиниваться не обязательно. Можно сделать:
    $ source path_to_file
    Переменные перечитаются из нужного файла

    • @t0digital
      @t0digital  2 роки тому

      Это не всегда работает корректно, зависит от настроек/плагинов в используемом шелле

    • @dimonfx441
      @dimonfx441 2 роки тому

      @@t0digital Возможно. Но в bash проблем не встречал. Zsh, который с недавних пор стал по умолчанию в manjaro и поэтому пришлось им попользоваться (для ознакомления, хотя бы) - у меня в принципе странно работал. Многие переменные окружения перечитывались с ошибками или вовсе не читались. Часть приложений и вовсе перестала запускаться. Вернулся на bash - проблем нет.

  • @arkadyaeternit9793
    @arkadyaeternit9793 4 роки тому

    То, что надо. Спасибо!

  • @GlebPoljakov
    @GlebPoljakov 4 роки тому +1

    Интересно было бы дополнить материал системами типа Vault.

    • @t0digital
      @t0digital  4 роки тому

      Возможно сделаю, спасибо

  • @DS-sf3ev
    @DS-sf3ev 2 роки тому

    Здорово)

  • @Jedimaster1908
    @Jedimaster1908 4 роки тому +12

    А чем метод с переменными окружения лучше хранения в py-файле отдельном? Как я понимаю sh-файл и py-файл будут лежать в .gitignore. Только с пайтоновским файлом ты импортируешь модуль и используешь переменные, а с sh сначала пишешь в переменные окружения, а потом опять из программы читаешь...

    • @АнтонБорисов-ь2о
      @АнтонБорисов-ь2о 3 роки тому +1

      Я подозреваю что единственное преимущество это то что в докер проще будет прокинуть переменную окружения чем файл

    • @КлинокСтальной
      @КлинокСтальной 3 роки тому +1

      Если .py файла не будет, то будет ошибка импорта. Всё таки это раз это код, то теперь это часть проекта, которую нельзя добавлять в .gitignore.

    • @DarkTatarin
      @DarkTatarin 2 роки тому +3

      @@КлинокСтальной, ошибка импорта? Так а что, если программист предусмотрел, что этого файла (пусть возьмём, что всё будет в json) может и не быть (if os.path.isfile(): json.load())...
      Так ещё в .gitignore можно добавлять отдельные файлы и не вижу ничего такого плохого в этом. Плюс, засорять переменные среды системы - не очень хорошая идея, имхо

    • @КлинокСтальной
      @КлинокСтальной 2 роки тому +1

      @@DarkTatarin, json это уже другое, его не надо импортировать. Это не py-файл. Файлы кода всегда должны быть, а не "может есть, а может и нет". Многие ЯП, особенно компилируемые, даже не дадут тебе делать импорт модуля через if, да и в питоне это костыльно и небезопасно.
      И я не говорил, что надо засорять переменные среды системы. У переменных среды есть вроде бы пять уровней. На уровне системы, на уровне юзера, на уровне терминальной сессии, на уровне процесса, и еще чё то. Самый последний - это переменные среды процесса. Ты в терминале можешь перед командой написать переменные вот так:
      $ APP_VAR1=1 APP_VAR2=2 python3 start_app.py
      И эти переменные будут только у запущенной программы.
      И если ты в коде вызовешь что-то типа setenv("VAR1", "1"), то она будет существовать только на уровне процесса (может, дочерним процессам тоже передастся, я хз)
      Json тоже неплох для всяких настроек, но переменные окружения более гибки - их можно задавать разными способами. Их реально много. Сложить в файл, попросить systemd задать переменные, попросить gunicorn задать переменные. Очень гибко получается. Можно одно и то же приложение без проблем с разными значениями запускать

  • @alexanderpastuhanov174
    @alexanderpastuhanov174 4 роки тому

    Спасибо большое! Очень помогли!

  • @vitalii7672
    @vitalii7672 4 роки тому

    "Поддержать нас". Кто входит в команду? Очень интересно, кто создаёт такой прекрасный и полезный материал))

    • @t0digital
      @t0digital  4 роки тому +2

      на самом деле я один сейчас делаю контент и все по каналу, но говорю МЫ, потому что рассказываю в том числе о проектах нашей команды и что-то на основе нашего общего опыта внутри команды

  • @wobble_cat
    @wobble_cat 4 роки тому +1

    Если уж необходимо сохранять чувствительные данные в репозитории, например в случае с IaC, есть утилита git-secret которая использует стандартное PGP шифрования

  • @ИльяАхметов-з8в
    @ИльяАхметов-з8в 4 роки тому +2

    Как говорится не по колокольчику, а по зову сердца)

    • @t0digital
      @t0digital  4 роки тому

      Хахах :) спасибо!

  • @resuuserovich9399
    @resuuserovich9399 4 роки тому +4

    Применить изменения в кофиге без перезапуска сессии и перезагрузки: "source ~/.zshenv" , "source ~/.bashrc"

    • @t0digital
      @t0digital  4 роки тому +4

      Да, можно так

  • @pythonavr
    @pythonavr 4 роки тому

    Спасибо большое за ролик! Особенно приятно видеть как вышел ролик, который я сам просил в комментариях под записью пару дней назад. Очень классно когда ютубер реально слушает аудиторию, а не просто говорит "Вы у меня самые лучшие, ваше мнение важно для меня". Ещё раз огромное спасибо, чуть попозже обязательно кину донат, потому что благодарить одними словами - на мой взгляд, просто неуважение к автору.

  • @fakefakekovich4257
    @fakefakekovich4257 4 роки тому +6

    Каждый день новые видосы, я попал в рай?

    • @t0digital
      @t0digital  4 роки тому +3

      Сделаем и этот мир райским:)!

  • @kannykl7575
    @kannykl7575 4 роки тому +2

    Не глядя, лайк!

  • @ИванИванов-н9т9ъ
    @ИванИванов-н9т9ъ 4 роки тому +2

    Здравствуйте, уважаемый! Спасибо за интересное видео. Расскажите пожалуйста, как обеспечить защиту данных от утечки на арендованном vps (прежде всего от владельцев vps)?

    • @qbmain1487
      @qbmain1487 4 роки тому +2

      Аренда VPS по сути подразумевает доверие владельцам VPS. Не думаю, что стоит париться об этом, если арендуете машину не у ноунеймов

    • @ВячеславКрайний
      @ВячеславКрайний 4 роки тому

      В текущем проекте подключение к бд храним в переменных окружения. А вот кучу всяких апи кей хранятся в таблице а в код подтягиваются функцией которая через справочник проверяет какой ключ какому пользователю можно выдать

  • @ИльяКрасняк-ц8б
    @ИльяКрасняк-ц8б 4 роки тому +1

    Был бы здорово если бы вы сделали видео про асинхронность в python. Контен огонь)

    • @t0digital
      @t0digital  4 роки тому

      Спасибо! Про асинхронность будет!

  • @timur8216
    @timur8216 4 роки тому

    Супер!

  • @m1nd-s7k
    @m1nd-s7k 8 місяців тому

    музыка зачет

  • @astoscope
    @astoscope 4 роки тому

    Спасибо.
    Расскажи про pipenv/virtualenv ещё

  • @SergMirny_yt
    @SergMirny_yt 4 роки тому

    Круто. Спасибо большое

  • @olegmlavets5216
    @olegmlavets5216 4 роки тому +3

    Я просто создавал пайтон файл в котором определял переменные, и импортировал в конфиг

  • @savel2work
    @savel2work 4 роки тому

    Полезное видео, спасибо!

  • @AlexeyZubkov
    @AlexeyZubkov Рік тому

    Дружище, а как то можно их получать из Маковского key-chain? И сразу второй вопрос, а есть ли библиотека на Python взаимодействующая с key-chain?

  • @DataScienceGuy
    @DataScienceGuy 4 роки тому

    Спасибо, было полезно. Как и всегда впрочем)

  • @artemmalynovskyi7445
    @artemmalynovskyi7445 4 роки тому +5

    Пролистал видео, не увидел решений типа HashCorp Vault/AWS Secrets Manager. В этом случае переменные никогда не попадают на сервер в виде файлов/переменных окружения. что в целом здорово. И в случае Secrets Manager, не нужен никакой токен для доступа, просто дается к секрету доступ с конкретного сервера(или любой другой вариант настройки доступный на Амазоне).

    • @oleksiilobodiev9446
      @oleksiilobodiev9446 4 роки тому

      HashiCorp Vault have some config file for this task

    • @artemmalynovskyi7445
      @artemmalynovskyi7445 4 роки тому +1

      @@oleksiilobodiev9446 yeah, I know. But anyway, this approach wasn't mentioned by author. I think it's separated approach(together with Secrets Manager, of course there are some difference between those services)

  • @illiatanasiuk8904
    @illiatanasiuk8904 4 роки тому

    Видел в какой-то статье в интернете, и сам пользуюсь, чтобы переменные с .bashrc применились, после сохранения файла исполняю source .bashrc, чтобы не перезаходить.

    • @t0digital
      @t0digital  4 роки тому +1

      Можно, но может приводить к ошибкам, там может быть много всего понаписано корявенького)

    • @illiatanasiuk8904
      @illiatanasiuk8904 4 роки тому

      Диджитализируй! Окей, спасибо, потому и написал, узнать, ок или нет)

  • @emutant01
    @emutant01 3 роки тому

    Хороший канал

  • @ViacheslavShostak
    @ViacheslavShostak 4 роки тому

    Отличный видос! А что вы скажите на счёт git-crypt?

  • @mainsport7851
    @mainsport7851 4 роки тому

    Отличное видео.

  • @romez1990
    @romez1990 4 роки тому +1

    Почему про dotenv не рассказал?

  • @alexeyzhurov7747
    @alexeyzhurov7747 4 роки тому

    Спасибо, было полезно

  • @insidecabinet
    @insidecabinet 4 роки тому

    Спасибо!

  • @МаксимВязовский-е3ч

    Ничего не понял, но очень интересно

  • @shaon_os
    @shaon_os Рік тому +1

    Что за шрифт?! Очень классный

    • @t0digital
      @t0digital  Рік тому

      Скорее всего Monaco

  • @antonmullakhmetov707
    @antonmullakhmetov707 4 роки тому

    Спасибо

  • @dmytrokorbanytskyi1586
    @dmytrokorbanytskyi1586 4 роки тому

    Хороший подход, а как в supervisord засунуть список переменных из файла не подскажете?

    • @t0digital
      @t0digital  4 роки тому

      Я бы рекомендовал systemd вместо supervisord coreos.com/os/docs/latest/using-environment-variables-in-systemd-units.html
      Можно сделать файл просто ключ=значение, его будет читать systemd, и его же может читать shell script. Для systemd shell скрипт будет не нужен, просто для себя, что-то в консоли запустить

  • @nail-meow
    @nail-meow 4 роки тому +1

    Какая область видимости у переменных, добавленных через файл? Т.е. понятно, что все, что запущено в рамках этого bash процесса руками пользователя - увидит переменные, вопрос в том, могут ли какие-то демоны получить доступ к этим переменным? Тут после обновления ios выяснилось, что на мобильном очень много приложений пытаются читать все, до чего могут дотянуться, включая буфер обмена. Сразу приходит в голову то, что если переменные видны куда-то, кроме приложения, их кто-то утащит. Про продакшен с докером понятно, а как быть с компами разработчиков со всякими facebook меседжерами, и подобными пылесосами конф. данных?

    • @KonstantinMakarov
      @KonstantinMakarov 2 роки тому

      В /proc//environ видны все переменные окружения, доступные запущенному процессу. Этот файл имеет права "только чтение" пользователю процесса (400). Т.е., чтобы лишние процессы не могли прочитать конфиденциальные данные из переменных окружения, нужно запускать целевой процесс от имени отдельного пользователя, под которым больше никто не входит (у него нет прав на интерактивный логин в шелл) и не запускается. Так делают все "взрослые" демоны и утилиты: postgres, nginx, ...

  • @pavel5878
    @pavel5878 Рік тому

    те любо кто получает доступ к нашему серверу, например какая то программа, она может прочитать наш ENV и отправить пароли куда то очень далеко? Интересно есть ли более безопасный метод хранения паролей?

  • @hardcodd
    @hardcodd 4 роки тому

    А мне нравится django-environ. =)

  • @TheVenom20003
    @TheVenom20003 3 роки тому +1

    Товарищи. Подскажите пожалуйста, вопрос скорей всего банальный, заранее извиняюсь. Вот перенесли мы ключ в переменную окружения. отправили проект в гит (все это на компьютере на котором ведется разработка). Теперь на самом сервере клонируем данные проект, но где взять ключи? Что-то я не догнал

  • @АлександрГордиенко-ь4ф

    Подписался на boosty

    • @t0digital
      @t0digital  4 роки тому +1

      Юхууу, спасибо!

  • @ge_bassist8232
    @ge_bassist8232 4 роки тому

    спасибо)

  • @problitzru
    @problitzru 3 роки тому

    Хм, а чем не устраивает вариант с использованием пакета python-dotenv? Вроде удобнее

  • @ДмитрийЛегостаев-р9ш

    Спасибо! Более-менее понял. Это хороший или неочень комментарий

  • @Ybuotue
    @Ybuotue 2 роки тому +1

    В целом супер, но не сказал как имея этот sh скрипт пользоваться им в проекте.

  • @theFearGate
    @theFearGate 4 роки тому

    Коммент для продвижения канала с отличным контентом

  • @frolovskii_v
    @frolovskii_v 3 роки тому

    Где-то я далеко от темы или сейчас был просто наглядный пример забивания переменных систему локально? Просто я таким начал заниматься в самом начале знакомства с linux используя aliasы. А к примеру весь код хранится в репе, из репы он идёт в teamcity агент и от туда деплоится на серверы как в таком случае хранить пасворды и прочие api?

  • @wasyaokyn4077
    @wasyaokyn4077 4 роки тому

    Возник небольшой вопрос. Есть такая либка для питона как keyring. Было бы интересно узнать Ваше мнение по поводу необходимости этой либки.

  • @АртёмПерепелица-п3б

    В первую очередь, благодарю за полезный контент канале. Очень приятно слушать, не напрягает и все по существу.
    По делу: Не обязательно перезагружать операционную систему или перелогиниться для подгрузки новых переменных. Это Linux, ему не нужен ребут :)
    По идее, достаточно выполнить source ~/.bashrc, в котором и объявляются переменные

  • @dima12011201
    @dima12011201 3 роки тому

    А Вам не кажется, что 2 переменная, которая в .bash_... файле, это тоже переменная сеанса, а не юзера. Думаю что уровень юзера не должен зависеть от выбора шела. Если не прав, поправьте плиз.

  • @ivanl7786
    @ivanl7786 2 роки тому

    Было бы здорово, видеть не просто код, но и схемы. Например, 4 уровня можно было отобразить схематично.
    И как пред-преджун скажу, что действия с vim были совершено непонятны.
    1. Где документ создавался, в какой директории, что за export? 2. Если приложение запускается на облачном сервисе для запуска скриптов, там тоже есть переменные окружения или для этого нужно сервер арендовать?

    • @fedor_ado
      @fedor_ado 2 роки тому

      У тебя в огороде бузина - в Киеве дядька. Арендуй сервер, сразу всё поймёшь и гуглить не надо будет. :))

    • @ivanl7786
      @ivanl7786 2 роки тому

      ​@@fedor_ado, ну вот так все кто записывает видео и думают наверное. Куда мне до тебя, Фёдор... ты же наверное любого незнакомого предмета касаешься и уже понимаешь как он собран. Тебе бы авиационные или ракетные двигатели собирать.

    • @fedor_ado
      @fedor_ado 2 роки тому

      @@ivanl7786 ты пост свой почитай, там у тебя вся вселенная собрана. Если он на твои растекания мысли по древу отвечать будет - проще тебя на курсы компьютерной грамотности отправить. Формулируй или гугли усиленно, в итоге у тебя сформируется представление о предмете. Без обид.

  • @ВладКурлук
    @ВладКурлук 4 роки тому

    Awesome!