Compare commits
5 Commits
article_pa
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ab5e04aaeb | ||
|
|
09bd5f3f35 | ||
|
|
7ae19d5f92 | ||
|
|
c5de9507d5 | ||
|
|
3449cb2a47 |
@@ -1,78 +0,0 @@
|
||||
# Git
|
||||
.git
|
||||
.gitignore
|
||||
.gitattributes
|
||||
|
||||
# Python
|
||||
__pycache__
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
*.so
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
pip-wheel-metadata/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
.pytest_cache/
|
||||
.coverage
|
||||
.coverage.*
|
||||
htmlcov/
|
||||
|
||||
# Virtual Environments
|
||||
venv/
|
||||
ENV/
|
||||
env/
|
||||
.venv
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# IDE
|
||||
.vscode/
|
||||
.idea/
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
.DS_Store
|
||||
.ropeproject
|
||||
|
||||
# Project specific
|
||||
.cache/
|
||||
.ruff_cache/
|
||||
*.db
|
||||
.pytest_cache/
|
||||
|
||||
# Docker
|
||||
.docker
|
||||
.dockerignore
|
||||
Dockerfile
|
||||
|
||||
# Build artifacts
|
||||
.flatpak-builder/
|
||||
build-dir/
|
||||
|
||||
# Node (если используется)
|
||||
node_modules/
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
|
||||
# OS
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# app
|
||||
tests/
|
||||
@@ -1,10 +1,7 @@
|
||||
# Урлы
|
||||
STREAM_URL=http://адрес видеопотока
|
||||
WEBSOCKET_URL=ws://адрес вебсокета клиента
|
||||
WEBSOCKET_URL_ROBOT=ws://адрес вебсокета робота
|
||||
HOST_APP=ip или доменное имя для app
|
||||
PORT_APP=порт для app
|
||||
IS_RELOAD=True для разработки, False для обычного использования
|
||||
STREAM_URL=адрес видеопотока
|
||||
WEBSOCKET_URL=адрес вебсокета клиента
|
||||
WEBSOCKET_URL_ROBOT=адрес вебсокета робота
|
||||
|
||||
# Команды для робота
|
||||
FORWARD=вперёд
|
||||
|
||||
53
.github/workflows/build.yml
vendored
53
.github/workflows/build.yml
vendored
@@ -1,53 +0,0 @@
|
||||
name: Build and backup docker conteiner
|
||||
|
||||
on:
|
||||
# Сработает при создании pull request в master ветку
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
# Сборка контейнера
|
||||
build:
|
||||
name: Run build conteiner
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Build Docker image
|
||||
run: |
|
||||
make docker-build
|
||||
env:
|
||||
PORT_APP: ${{ secrets.PORT_APP }}
|
||||
# Отправка образа в dockerhub
|
||||
push_dockerhub:
|
||||
name: Push image to docker hub
|
||||
runs-on: ubuntu-latest
|
||||
needs: build # ждёт успешной сборки
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: ${{ secrets.DOCKERHUB_USERNAME }}/web-robot-control-app:latest
|
||||
build-args: |
|
||||
PORT_APP=${{ secrets.PORT_APP }}
|
||||
13
Dockerfile
13
Dockerfile
@@ -1,13 +0,0 @@
|
||||
FROM python:3.12.0-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
PYTHONDONTWRITEBYTECODE=1
|
||||
|
||||
COPY . /app
|
||||
|
||||
RUN pip install poetry
|
||||
|
||||
RUN poetry config virtualenvs.create false && \
|
||||
poetry install --no-interaction --no-ansi
|
||||
26
Makefile
26
Makefile
@@ -1,26 +0,0 @@
|
||||
help:
|
||||
@echo "Доступные команды:"
|
||||
@echo " make docker-build - Собрать Docker образ"
|
||||
@echo " make docker-rebuild - Пересобрать Docker образ (с очисткой кеша)"
|
||||
@echo " make start-app-debug - Поднять контейнер с приложением (в режиме debug)"
|
||||
@echo " make start-app - Поднять контейнер с приложением"
|
||||
@echo " make stop-app - Остановить контейнер с приложением"
|
||||
@echo " make docker-pull - Скачать образ web-robot-control-app c Docker Hub"
|
||||
|
||||
docker-build:
|
||||
docker compose build
|
||||
|
||||
docker-rebuild:
|
||||
docker compose build --no-cache
|
||||
|
||||
start-app-debug:
|
||||
docker compose up
|
||||
|
||||
start-app:
|
||||
docker compose up -d
|
||||
|
||||
stop-app:
|
||||
docker stop web_robot_control
|
||||
|
||||
docker-pull:
|
||||
docker pull arduinum628/web-robot-control-app
|
||||
56
README.md
56
README.md
@@ -2,61 +2,11 @@
|
||||
|
||||
**Web-robot-control** - open source веб-приложение для управлением роботом и трансляции видео с веб-камеры.
|
||||
|
||||
## Запуск приложения (Linux / Mac OS)
|
||||
## Запуск приложения
|
||||
|
||||
**Способ 1 (локальная разработка)**
|
||||
**Запуск для локальной разработки**: `poetry run start_app`
|
||||
|
||||
- **Клонировать репозиторий**: `git clone git@github.com:Arduinum/web-robot-control.git`
|
||||
- **Перейти в папку проекта**: `cd web-robot-control`
|
||||
- **Установить библиотеки проекта**: `poetry install`
|
||||
- **Создать `.env` в корне проекта используя `.env.example` в качестве шаблона**
|
||||
- **Запуск приложения**: `poetry run start_app`
|
||||
|
||||
### Способ 2 (с использованим `docker-compose.yml`)
|
||||
|
||||
- **Клонировать репозиторий**: `git clone git@github.com:Arduinum/web-robot-control.git`
|
||||
- **Перейти в папку проекта**: `cd web-robot-control`
|
||||
- **Создать `.env` в корне проекта используя `.env.example` в качестве шаблона**
|
||||
- **Скачать образ**: `make docker-pull`
|
||||
- **Создать volume**: `docker volume create app`
|
||||
- **Запуск приложения**: `make start-app`
|
||||
|
||||
### Способ 3 (с использованием docker)
|
||||
|
||||
- **Создать `.env` в любом удоном месте используя `.env.example` в качестве шаблона**
|
||||
- **Скачать образ**: `docker pull arduinum628/web-robot-control-app`
|
||||
- **Создать volume**: `docker volume create app`
|
||||
- **Создать `.env` в корне проекта используя `.env.example` в качестве шаблона**
|
||||
- **Экспорт `.env` переменных**: `export $(grep -v '^#' .env | xargs)`
|
||||
- **Запуск приложения**: `docker run -d --name web_robot_control -p ${PORT_APP}:${PORT_APP} -v app:/app --env-file .env arduinum628/web-robot-control-app:latest poetry run start_app`
|
||||
|
||||
## Запуск приложения (Windows)
|
||||
|
||||
**Способ 1 (локальная разработка)**
|
||||
|
||||
- **Клонировать репозиторий**: `git clone git@github.com:Arduinum/web-robot-control.git`
|
||||
- **Перейти в папку проекта**: `cd web-robot-control`
|
||||
- **Установить библиотеки проекта**: `poetry install`
|
||||
- **Создать `.env` в корне проекта используя `.env.example` в качестве шаблона**
|
||||
- **Запуск приложения**: `poetry run start_app`
|
||||
|
||||
### Способ 2 (с использованим `docker-compose.yml`)
|
||||
|
||||
- **Клонировать репозиторий**: `git clone git@github.com:Arduinum/web-robot-control.git`
|
||||
- **Перейти в папку проекта**: `cd web-robot-control`
|
||||
- **Создать `.env` в корне проекта используя `.env.example` в качестве шаблона**
|
||||
- **Скачать образ**: `docker compose pull`
|
||||
- **Создать volume**: `docker volume create app`
|
||||
- **Запуск приложения**: `docker compose up -d`
|
||||
|
||||
### Способ 3 (с использованием docker)
|
||||
|
||||
- **Создать `.env` в любом удоном месте используя `.env.example` в качестве шаблона**
|
||||
- **Скачать образ**: `docker pull arduinum628/web-robot-control-app`
|
||||
- **Создать volume**: `docker volume create app`
|
||||
- **Создать `.env` в корне проекта используя `.env.example` в качестве шаблона**
|
||||
- **Экспорт `.env` переменных**: `export $(grep -v '^#' .env | xargs)`
|
||||
- **Запуск приложения**: `docker run -d --name web_robot_control -p $env:PORT_APP:$env:PORT_APP -v app:/app --env-file .env arduinum628/web-robot-control-app:latest poetry run start_app`
|
||||
**Todo:** создать Python-функцию для запуска веб-приложения и добавить её в скрипты Poetry
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
services:
|
||||
app:
|
||||
build: .
|
||||
image: arduinum628/web-robot-control-app:latest
|
||||
container_name: web_robot_control
|
||||
command: poetry run start_app
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- "${PORT_APP}:${PORT_APP}"
|
||||
volumes:
|
||||
- app:/app
|
||||
|
||||
volumes:
|
||||
app:
|
||||
@@ -31,9 +31,6 @@ class Settings(ModelConfig):
|
||||
|
||||
stream_url: str
|
||||
websocket_url_robot: str
|
||||
port_app: int
|
||||
host_app: str
|
||||
is_reload: bool
|
||||
commands_robot: CommandsRobot = CommandsRobot()
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
import uvicorn
|
||||
|
||||
from web_robot_control.settings import settings
|
||||
|
||||
|
||||
def start_app():
|
||||
"""Функция запуска приложения"""
|
||||
|
||||
uvicorn.run(
|
||||
'web_robot_control.main:app',
|
||||
host=settings.host_app,
|
||||
port=settings.port_app,
|
||||
reload=settings.is_reload
|
||||
host='127.0.0.1',
|
||||
port=8000,
|
||||
reload=True
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user