chore: replace docker compose setup with powershell backend launcher
All checks were successful
CI / test (push) Successful in 41s
All checks were successful
CI / test (push) Successful in 41s
This commit is contained in:
18
README.md
18
README.md
@@ -28,7 +28,7 @@ It lets an LLM use controlled local tools (screen, click, type, shell) to comple
|
|||||||
main.py
|
main.py
|
||||||
screenjob.py
|
screenjob.py
|
||||||
requirements.txt
|
requirements.txt
|
||||||
docker-compose.yml
|
start_backend.ps1
|
||||||
src/
|
src/
|
||||||
agent.py
|
agent.py
|
||||||
app_main.py
|
app_main.py
|
||||||
@@ -103,6 +103,12 @@ CLI JSON output includes both legacy and structured fields:
|
|||||||
python main.py server
|
python main.py server
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Or use the PowerShell launcher:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
.\start_backend.ps1
|
||||||
|
```
|
||||||
|
|
||||||
Auth for all API routes:
|
Auth for all API routes:
|
||||||
|
|
||||||
- `Authorization: Bearer <SCREENJOB_TOKEN>`
|
- `Authorization: Bearer <SCREENJOB_TOKEN>`
|
||||||
@@ -164,16 +170,6 @@ Each job payload includes:
|
|||||||
|
|
||||||
`data` should contain useful structured output for the requester (text, object, list, etc.).
|
`data` should contain useful structured output for the requester (text, object, list, etc.).
|
||||||
|
|
||||||
## Docker Compose
|
|
||||||
|
|
||||||
Run server in container:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
docker compose up --build
|
|
||||||
```
|
|
||||||
|
|
||||||
Service uses official Python image and reads `.env`.
|
|
||||||
|
|
||||||
## Verification
|
## Verification
|
||||||
|
|
||||||
Local:
|
Local:
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
services:
|
|
||||||
screenjob:
|
|
||||||
image: python:3.11-slim
|
|
||||||
working_dir: /app
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
SCREENJOB_HOST: 0.0.0.0
|
|
||||||
SCREENJOB_PORT: 8787
|
|
||||||
volumes:
|
|
||||||
- ./:/app
|
|
||||||
ports:
|
|
||||||
- "8787:8787"
|
|
||||||
command: >
|
|
||||||
sh -c "pip install --no-cache-dir -r requirements.txt &&
|
|
||||||
python main.py server"
|
|
||||||
restart: unless-stopped
|
|
||||||
35
start_backend.ps1
Normal file
35
start_backend.ps1
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
Set-StrictMode -Version Latest
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
|
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||||
|
Set-Location $scriptDir
|
||||||
|
|
||||||
|
function Test-EnvVarLine {
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true)][string]$FilePath,
|
||||||
|
[Parameter(Mandatory = $true)][string]$Name
|
||||||
|
)
|
||||||
|
if (-not (Test-Path -LiteralPath $FilePath)) {
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
return [bool](Select-String -Path $FilePath -Pattern ("^\s*" + [regex]::Escape($Name) + "=") -Quiet)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (-not (Get-Command python -ErrorAction SilentlyContinue)) {
|
||||||
|
throw "Python was not found in PATH. Install Python 3.11+ and retry."
|
||||||
|
}
|
||||||
|
|
||||||
|
$envFile = Join-Path $scriptDir ".env"
|
||||||
|
if (-not (Test-Path -LiteralPath $envFile)) {
|
||||||
|
Write-Warning ".env was not found at $envFile. Server startup may fail if required vars are missing."
|
||||||
|
} else {
|
||||||
|
if (-not (Test-EnvVarLine -FilePath $envFile -Name "OPENAI_API_KEY")) {
|
||||||
|
Write-Warning ".env is missing OPENAI_API_KEY."
|
||||||
|
}
|
||||||
|
if (-not (Test-EnvVarLine -FilePath $envFile -Name "SCREENJOB_TOKEN")) {
|
||||||
|
Write-Warning ".env is missing SCREENJOB_TOKEN."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Starting ScreenJob backend on configured host/port..." -ForegroundColor Cyan
|
||||||
|
python main.py server
|
||||||
Reference in New Issue
Block a user