DevPi Server

Pavel 03.12.2025 22:30 166 просмотров

1. Установка devpi-server, devpi-web и devpi-client

Выполните установку необходимых компонентов:

pip install devpi-server devpi-web devpi-client

2. Создание секретного файла

Для безопасности создайте секретный файл:

devpi-gen-secret -o ~/.devpi/secretfile

Этот файл нужен для подписи и защиты сессий сервера.


3. Запуск devpi-server с секретным файлом

Запустите сервер, указав путь к секретному файлу, каталог для хранения данных, хост и порт:

devpi-server --secretfile ~/.devpi/secretfile --host 0.0.0.0 --port 3141 --serverdir ~/.devpi/server

4. Настройка запуска devpi-server как systemd сервиса

Создайте systemd юнит-файл /etc/systemd/system/devpi.service со следующим содержимым (замените user на реального системного пользователя, под которым будет работать сервер):

[Unit]
Description=Devpi Server
After=network.target

[Service]
User=user
ExecStart=/usr/local/bin/devpi-server --secretfile /home/user/.devpi/secretfile --host 0.0.0.0 --port 3141 --serverdir /home/user/.devpi/server
Restart=always

[Install]
WantedBy=multi-user.target

Убедитесь, что путь /usr/local/bin/devpi-server соответствует месту установки devpi-server (можно узнать командой which devpi-server).


5. Запуск и автозапуск systemd сервиса

Выполните команды:

sudo systemctl daemon-reload
sudo systemctl start devpi.service
sudo systemctl enable devpi.service

Проверить статус сервиса:

sudo systemctl status devpi.service

6. Настройка devpi-клиента

В другом терминале или на клиентской машине настройте devpi-клиент:

devpi use http://<ваш_сервер>:3141

Просмотрите доступные индексы:

devpi use -l

7. Авторизация и создание пользователей/индексов

Войдите под предустановленным пользователем root (пароль по умолчанию пустой):

devpi login root --password ''

Создайте нового пользователя (например, myuser):

devpi user -c myuser password=123

Войдите под новым пользователем:

devpi login myuser --password 123

Создайте индекс (хранилище пакетов):

devpi index -c myindex

Установите клиент использовать созданный индекс:

devpi use http://<ваш_сервер>:3141/myuser/myindex/

8. Получение API-ключа

Для автоматизации загрузок можно получить api_key пользователя:

devpi user myuser

В выводе ищите строку api_key, можно использовать его вместо пароля.


9. Загрузка пакетов в локальный репозиторий

Поместите все скачанные или собственные пакеты (.whl, .tar.gz) в одну папку.

Загрузите пакеты в индекс:

devpi upload /путь/к/папке/*

10. Использование пакетов из локального репозитория

Устанавливайте пакеты через pip, указывая локальный сервер:

pip install --index-url http://<ваш_сервер>:3141/myuser/myindex/ название_пакета --trusted-host <ваш_сервер>

11. Дополнительные рекомендации

  • Для реального окружения включайте HTTPS.
  • Управляйте пользователями и паролями для безопасности.
  • Логи сервера и данные хранятся в папке, указанной в --serverdir.
  • Можно настроить зеркалирование PyPi для ускорения и экономии трафика.

HTTPS:

location /devpi/ { 
proxy_pass http://127.0.0.1:3141/; 
proxy_set_header Host $host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for
proxy_set_header X-Forwarded-Proto $scheme;
 }

Комментарии (0)

Для добавления комментария необходимо войти в аккаунт

Войти / Зарегистрироваться