Загрузка...

Установка любого софта на свой сервер Linux

Тема в разделе Статьи создана пользователем Producer 8 фев 2025. (поднята 5 апр 2025) 406 просмотров

Загрузка...
  1. Producer
    Producer Автор темы 8 фев 2025 Актеры, монтаж - lolz.live/threads/8123967 12 176 7 янв 2025

    Большой штат сотрудников и актеров, качественный монтаж - все что нужно что бы ваш проект стал популярным!
    Выполняем сложные проекты под ключ, без лишних вопросов

    Actors Hub by Producer - снимет с ваших плеч лишние задачи

    [IMG]

    Привет! В данной статье я расскажу об установке любого софта на свой сервер Linux
    Данная статья расскажет о командах и скриптах, которые будут вам помогать при установке своих программ на сервер
    Docker - это виртуальная машина, которая создает отдельные контейнеры для ваших программ. Данный вариант подойдет людям, которые используют один сервер для многих задач. Скорее, данный вариант подойдет разработчикам, нежели людям которые не особо шарят в коде. Docker дает узкую настройку контейнера. Например, у меня есть backend для интернет-магазина на FastAPI (Python), который запускается при помощи сервера Uvicorn.

    Для начала стоит его установить
    Код
    sudo apt update
    sudo apt install docker

    sudo systemctl enable --now docker
    Первая команда обновляет репозитории
    Вторая скачивает Docker
    Третья команда запускает сервис Docker на сервере, который будет работать даже если сервер перезагрузится

    Код
    FROM python:3.11-slim # Образ Python
    WORKDIR /app # Рабочая директория (желательно не менять)
    COPY . . # Копируем весь код
    RUN pip install --no-cache-dir -r requirements.txt # Устанавливаем библиотеку
    CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] # Запускаем приложение
    ⁡FROM python:3.11-slim
    ⁡ - Образ Python 3.11 Slim. Данное значение отвечает за то, что именно будет работать нашем контейнере
    ⁡COPY . .
    ⁡ - копируем весь код из нашей папки в рабочую директорию контейнера

    Для запуска нашего контейнера надо сделать образ при помощи команды
    Код
    docker build -t imagename .
    imagename - название вашего образа. например, marketplace_backend или shop_backend

    После сборки образа мы должны его запустить
    Код
    docker run -d -p 8000:8000 imagename
    Флаг -d запускает контейнер в фоне, а -p 8000:8000 пробрасывает 8000 порт из контейнера на наш 8000 порт.
    Screen - утилита, которая создает отдельную сессию на сервере, которая будет работать в фоне. Данный способ подходит людям, которым надо что-то быстро поставить на сервер и не парится об этом. Ее не надо устанавливать, она заранее встроена в Unix и Unix-подобные операционные системы.

    Для старта работы нам стоит ввести команду
    Код
    screen -S name
    Вместо name ставьте удобное вам имя для сессии
    И все! Запускайте вашу программу внутри этой сессии и спокойно закрывайте терминал.

    Если вдруг вам понадобилось вернуться в сессию, введите команду
    Код
    screen -r name
    Вместо name вставляйте имя вашей сессии

    Больше по поводу этого способа сказать нечего, он очень прост и удобен. Но знайте, сессия слетает после перезагрузки сервера.
    nohup - это команда, которая игнорирует выход из сессии и продолжает процесс после завершения сессии. Этот способ поможет для запуска долгих процессов, но которые должны завершится в скором времени. Например, парсеры или чекеры

    Для запуска скрипта через nohup следует ввести команду
    Код
    nohup python3 app.py
    Тут я запускаю app.py при помощи python3

    Для запуска любой команды в фоне просто перед командой напишите
    ⁡nohup
    tmux - терминальный мультиплексор, который позволяет создавать сессии и очень удобно ими управлять. Данная софтина имеет очень много скриптов для кастомизации. Можно сделать сразу несколько окон одной сессии и ими управлять

    Для использования keybinds (комбинаций клавиш для работы) следует нажать
    ⁡ctrl + b


    Для создания самой сессии tmux введите
    Код
    tmux new -s sessionname
    Вместо sessionname введите имя вашей сессии для последующего подключения к ней. Далее просто запустите ваш скрипт
    Для выхода вам нужно нажать
    ⁡ctrl + b
    ⁡, затем
    ⁡d


    Для подключения к сессии введите
    Код
    tmux attach -t sessionname
    Также замените sessionname на имя вашей сессии
    Если вы часто ребутаете (перезапускаете) сервер, вам лучше создать сервис, который будет запускаться и работать вместе с системой.

    Для начала перейдите в вашу директорию со скриптом/программой и введите
    ⁡pwd

    Данная команда выведет полный путь до вашей рабочей директории

    После создайте файл сессии
    Код
    sudo nano /etc/systemd/system/servicename.service
    Данная команда создаст и откроет файл вашего сервиса. Вместо servicename введите удобное вам имя сессии
    После чего вставьте туда данную конфигурацию

    Я не могу вставить сюда код сервиса, оно просто не парсится BB-Code как Код. Как инлайн-текст
    ⁡[Unit]

    Description=Описание вашего сервиса

    After=network.target

    [Service]

    ExecStart=/usr/bin/python3 /путь/до/скрипта/имяфайласоскриптом

    Restart=always

    User=root

    WorkingDirectory=/путь/до/скрипта/

    [Install]

    WantedBy=multi-user.target


    В Unit -> Description замените описание. Оно поможет для других людей на сервере (если такие есть)
    В Service -> ExecStart введите команду для запуска. Обязательно нужен полный путь до программы, через которую работает ваш скрипт (интерпретатор например) и полный путь до вашего скрипта. У меня указан python, т.к. я в основном пользуюсь именно Python-скриптами.
    В Service -> User введите имя пользователя. По стандарту ставьте root
    В Service -> WorkingDirectory введите полный путь до директории со скриптом без названия скрипта (то что вам вывел pwd)


    ⁡sudo systemctl daemon-reload

    sudo systemctl start servicename

    sudo systemctl enable servicename


    Первая команда обновляет все сервисы.
    Вторая команда запускает ваш сервис. Вместо servicename вставьте имя вашего сервиса
    Третья команда добавляет ваш сервис в сервисы, которые запускаются с системой. То есть, даже если ваш сервер перезагрузится, ваш скрипт или код будет запущен.
    Спасибо за прочтение статьи! Надеюсь, она вам станет методичкой для всех случаев)
     
    Этот материал оказался полезным?
    Вы можете отблагодарить автора темы путем перевода средств на баланс
    Отблагодарить автора
  2. Deps
    Deps 9 фев 2025 :thomas: 767 25 июн 2021
    tmux - без запара
     
  3. Hattori
    Hattori 1 май 2025 2245 11 дек 2018
    Довольно полезно, лично я в основном докером пользуюсь :colobok_dance:
     
Top