Пошаговая инструкция
Создание простого API на Python с использованием Flask и его развертывание через Nginx. Все действия выполняются в терминале Linux.
Подготовка к работе
Откройте Konsole (Ctrl + Alt + T или через меню). Все команды в этой инструкции предназначены для выполнения в Konsole.
Если вы видите блок кода, например:
command_name argument
Это означает, что текст внутри нужно ввести в Konsole и нажать Enter.
Установка зависимостей
Установите Python, pip и виртуальное окружение.
sudo pacman -S python-pip python-virtualenv
Создание приложения
Подготовьте директорию и создайте виртуальное окружение.
mkdir -p ~/myapi
cd ~/myapi
python3 -m venv venv
source venv/bin/activate
pip install flask gunicorn
Написание кода API
Создайте файл app.py со следующим содержимым:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/hello', methods=['GET'])
def hello():
return jsonify({"message": "Hello from API!", "status": "success"})
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5500)
Тестовый запуск
Проверьте работу приложения.
python3 app.py
Откройте в браузере: http://localhost:5500/api/hello. Если все работает, остановите сервер (Ctrl+C).
Создание службы Systemd
Настройте автозапуск приложения через пользовательский systemd. Создайте директорию для юнитов, если её нет:
mkdir -p ~/.config/systemd/user/
Создайте файл ~/.config/systemd/user/myapi.service:
nano ~/.config/systemd/user/myapi.service
Содержимое файла (пути изменены на домашнюю директорию, Nginx не используется, слушаем порт 5500):
[Unit]
Description=Gunicorn instance to serve myapi
After=network.target
[Service]
WorkingDirectory=%h/myapi
Environment="PATH=%h/myapi/venv/bin"
# Запускаем Gunicorn на порту 5500
ExecStart=%h/myapi/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:5500 app:app
[Install]
WantedBy=default.target
Запуск службы
Активируйте и запустите службу.
systemctl --user start myapi
systemctl --user enable myapi
systemctl --user status myapi
Теперь ваше API доступно по адресу http://localhost:5500/api/hello.