Деплой Python-приложения на сервер

    Команда Simple-Server
    03.06.2026
    5 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Деплой приложения на сервере

    Когда вы разворачиваете приложения на облачном сервере, кроме непосредственного запуска контейнера может потребоваться настройка реверс-прокси (например nginx) и SSL. Docker — инструмент, который упрощает создание, развертывание и запуск приложений с использованием контейнеров.

    Контейнер docker — это набор зависимостей и кода, организованный в виде программного обеспечения, которое позволяет приложениям быстро и эффективно работать в различных вычислительных средах.

    В первую очередь мы устаналиваем Docker с официального сайта.

    Опубликуем приложение Flask.

    Создаём файл и называем его Dockerfile. Добавим в него код:

    # Docker позволяет наследовать существующие образы, поэтому в качестве базового образа устанавливаем образ Python. FROM python:3.8-slim-buster # Меняем рабочую директорию внутри контейнера. Все оставшиеся операции будут запускаться внутри /app контейнера. WORKDIR /app # Устанавливаем все зависимости из файла requirements.txt внутри контейнера. RUN pip install -r requirements.txt # Копируем все остальные файлы из текущей директории (та, в которой находится файл Dockerfile) в директорию /app внутри образа. COPY . /app # Запускаем интерпретатор python ENTRYPOINT [ "python" ] # Добавляем список параметров к ENTRYPOINT. для выполнения команды, которая запускает приложение. Это похоже на то, как вы бы запустили его Python на своем терминале, используя команду python name_.py CMD ["name_app.py" ]

    Создадим образ для только что созданного контейнера:

    docker build -t flask-docker .

    Для запуска контейнера выполняем код:

    docker run -d -p 5000:5000 flask-docker

    -d – для запуска контейнера в автономном режиме

    -p – для указания порта, который будет открыт

    Запустив localhost:5000 в браузере, увидим приложение.

    Деплой Django-приложения на Docker мало чем отличается от деплоя Flask-приложения.

    Создадим виртуальное окружение и Dockerfile, в который добавим код:

    FROM python:3.8-slim-buster WORKDIR /app COPY requirements.txt requirements.txt RUN pip3 install -r requirements.txt COPY . /app CMD ["python3", "manage.py", "runserver", "0.0.0.0:5000"]

    Создадим файл .dockerignore, в котором будет находиться название нашего виртуального окружения:

    Создадим образ контейнера и запустим контейнер, используя команды**** build и run:

    docker build --tag django-docker . docker run --publish 8000:8000 django-docker

    Запустив в браузере http://localhost:5000/, увидим приложение.

    Деплой на облачной платформе PythonAnywhere

    При использовании облачных сервисов, таких как PythonAnywhere или Heroku, вы сможете писать проекты прямо в браузере. Но для такой работы вам понадобится установка и подготовка Git-репозитория.

    Установка Git и создание Git-репозитория

    Вначале необходимо подготовить проект для Github. В своей учётной записи Github создайте новый репозиторий во вкладке Repositories. Назовите его по своему усмотрению и нажмите Create repository.

    Дальше вам нужно подключить проект к Github с помощью Git. Установить Git можно с официального сайта git-scm.com.

    Создадим локальный репозиторий на нашем компьютере. Внутри рабочего каталога вашего проекта (там, где находится manage.py) в консоли запускаем команду:

    Она инициализирует новый репозиторий git для вашего проекта.

    Создание файла .gitignore

    Необходимо создать файл в корневом каталоге проекта с именем .gitignore, который используется для указания git, какие файлы и папки игнорировать. Откройте редактор и внесите:

    *.log *.pot *.pyc __pycache__/ db.sqlite3 db.sqlite3-journal media static

    Мы указываем Git игнорировать базу данных разработки, статические файлы и медиафайлы.

    Теперь создаём requirements.txt. В нем перечислены все зависимости, необходимые проекту для правильной работы.

    pip freeze > requirements.txt

    Подключение git-репозитория к Github

    Теперь нужно связать локальный репозиторий с репозиторием на GitHub. Наберите в консоли следующую команду:

    git add --all git commit -m "first commit" git branch -M main git remote add origin https://github.com/<your_github_username>/<your_project>.git # your_github_username – логин на Github,  your_project – название репозитория git push -u origin main

    Внутри командной строки будет предложено ввести имя пользователя и пароль. С недавнего времени вместо пароля вводится персональный токен доступа. Для его получения, необходимо:

    1. В GitHub перейти в Settings -> Developer Settings -> Personal access tokens и нажать на Generate new token
    2. Нажать repo. Токен будет применим для всех указанных действий в ваших репозиториях.
    3. Нажать Generate Token.

    Теперь, при обновлении браузера, вы увидите весь код со своего компьютера в репозитории Github.

    Публикация на облачном сервисе

    Для использования созданного репозитория на PythonAnywhere необходимо Заказать VPS уровня «Beginner». После этого на главной странице во вкладке Consoles запускаем Bash-консоль. Чтобы опубликовать приложение на облачном сервисе, понадобится помощь программы, которая сделает это автоматически.

    Внутри bash-консоли запускаем строку для установки программы:

    pip3.6 install --user pythonanywhere

    Теперь активируем только что установленную утилиту:

    $ pa_autoconfigure_django.py https://github.com/<your_github_username >/<your_project>.git

    Приложение доступно для использования в интернете!


    Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны