Большой штат сотрудников и актеров, качественный монтаж - все что нужно что бы ваш проект стал популярным! Выполняем сложные проекты под ключ, без лишних вопросов Actors Hub by Producer - снимет с ваших плеч лишние задачи Привет! В данной статье я расскажу об установке любого софта на свой сервер Linux Данная статья расскажет о командах и скриптах, которые будут вам помогать при установке своих программ на сервер Docker - идеально, но запарно Docker - это виртуальная машина, которая создает отдельные контейнеры для ваших программ. Данный вариант подойдет людям, которые используют один сервер для многих задач. Скорее, данный вариант подойдет разработчикам, нежели людям которые не особо шарят в коде. Docker дает узкую настройку контейнера. Например, у меня есть backend для интернет-магазина на FastAPI (Python), который запускается при помощи сервера Uvicorn. Для начала стоит его установить sudo apt update sudo apt install docker sudo systemctl enable --now docker Code 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"] # Запускаем приложение Code 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 . Code docker build -t imagename . imagename - название вашего образа. например, marketplace_backend или shop_backend После сборки образа мы должны его запустить docker run -d -p 8000:8000 imagename Code docker run -d -p 8000:8000 imagename Флаг -d запускает контейнер в фоне, а -p 8000:8000 пробрасывает 8000 порт из контейнера на наш 8000 порт. Screen - быстро и просто, но не надежно Screen - утилита, которая создает отдельную сессию на сервере, которая будет работать в фоне. Данный способ подходит людям, которым надо что-то быстро поставить на сервер и не парится об этом. Ее не надо устанавливать, она заранее встроена в Unix и Unix-подобные операционные системы. Для старта работы нам стоит ввести команду screen -S name Code screen -S name Вместо name ставьте удобное вам имя для сессии И все! Запускайте вашу программу внутри этой сессии и спокойно закрывайте терминал. Если вдруг вам понадобилось вернуться в сессию, введите команду screen -r name Code screen -r name Вместо name вставляйте имя вашей сессии Больше по поводу этого способа сказать нечего, он очень прост и удобен. Но знайте, сессия слетает после перезагрузки сервера. nohup - супер просто, ненадежно nohup - это команда, которая игнорирует выход из сессии и продолжает процесс после завершения сессии. Этот способ поможет для запуска долгих процессов, но которые должны завершится в скором времени. Например, парсеры или чекеры Для запуска скрипта через nohup следует ввести команду nohup python3 app.py Code nohup python3 app.py Тут я запускаю app.py при помощи python3 Для запуска любой команды в фоне просто перед командой напишите nohup tmux - универсальный и удобный и способ tmux - терминальный мультиплексор, который позволяет создавать сессии и очень удобно ими управлять. Данная софтина имеет очень много скриптов для кастомизации. Можно сделать сразу несколько окон одной сессии и ими управлять Для использования keybinds (комбинаций клавиш для работы) следует нажать ctrl + b Для создания самой сессии tmux введите tmux new -s sessionname Code tmux new -s sessionname Вместо sessionname введите имя вашей сессии для последующего подключения к ней. Далее просто запустите ваш скрипт Для выхода вам нужно нажать ctrl + b , затем d Для подключения к сессии введите tmux attach -t sessionname Code tmux attach -t sessionname Также замените sessionname на имя вашей сессии Systemd сервис - самый надежный, но запарный метод Если вы часто ребутаете (перезапускаете) сервер, вам лучше создать сервис, который будет запускаться и работать вместе с системой. Для начала перейдите в вашу директорию со скриптом/программой и введите pwd Данная команда выведет полный путь до вашей рабочей директории После создайте файл сессии sudo nano /etc/systemd/system/servicename.service Code 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 вставьте имя вашего сервиса Третья команда добавляет ваш сервис в сервисы, которые запускаются с системой. То есть, даже если ваш сервер перезагрузится, ваш скрипт или код будет запущен. Спасибо за прочтение статьи! Надеюсь, она вам станет методичкой для всех случаев)