Spaces:
Runtime error
Runtime error
Upload 3 files
Browse files- Dockerfile +42 -0
- README.md +59 -5
- config.yaml +57 -0
Dockerfile
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Build
|
| 2 |
+
FROM golang:alpine AS builder
|
| 3 |
+
|
| 4 |
+
LABEL stage=gobuilder
|
| 5 |
+
RUN apk update --no-cache && apk add --no-cache tzdata
|
| 6 |
+
|
| 7 |
+
WORKDIR /build
|
| 8 |
+
|
| 9 |
+
ADD go.mod .
|
| 10 |
+
ADD go.sum .
|
| 11 |
+
RUN go mod download
|
| 12 |
+
|
| 13 |
+
COPY . .
|
| 14 |
+
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /app/openserp .
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
FROM zenika/alpine-chrome:with-chromedriver
|
| 18 |
+
|
| 19 |
+
ENV PYTHONUNBUFFERED=1 \
|
| 20 |
+
HF_PORT=7860
|
| 21 |
+
|
| 22 |
+
WORKDIR /usr/local/bin
|
| 23 |
+
|
| 24 |
+
COPY --from=builder /app/openserp /usr/local/bin/openserp
|
| 25 |
+
|
| 26 |
+
COPY config.yaml ./config.yaml
|
| 27 |
+
|
| 28 |
+
RUN chmod +x /usr/local/bin/openserp
|
| 29 |
+
|
| 30 |
+
RUN mkdir -p /home/appuser && \
|
| 31 |
+
addgroup -g 1000 appuser && \
|
| 32 |
+
adduser -D -u 1000 -G appuser appuser && \
|
| 33 |
+
chown -R appuser:appuser /usr/local/bin
|
| 34 |
+
|
| 35 |
+
USER appuser
|
| 36 |
+
|
| 37 |
+
EXPOSE 7860
|
| 38 |
+
|
| 39 |
+
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
|
| 40 |
+
CMD wget --no-verbose --tries=1 --spider http://localhost:7860/health || exit 1
|
| 41 |
+
|
| 42 |
+
CMD ["openserp", "serve", "-a", "0.0.0.0", "-p", "7860"]
|
README.md
CHANGED
|
@@ -1,10 +1,64 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
colorTo: green
|
| 6 |
sdk: docker
|
| 7 |
-
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: OpenSERP API
|
| 3 |
+
emoji: 🔍
|
| 4 |
+
colorFrom: blue
|
| 5 |
colorTo: green
|
| 6 |
sdk: docker
|
| 7 |
+
app_port: 7860
|
| 8 |
---
|
| 9 |
|
| 10 |
+
# OpenSERP API Service
|
| 11 |
+
|
| 12 |
+
Open-source search engine results API (Google, Yandex, Baidu, Bing, DuckDuckGo).
|
| 13 |
+
|
| 14 |
+
## API Endpoints
|
| 15 |
+
|
| 16 |
+
### Mega Search
|
| 17 |
+
```bash
|
| 18 |
+
curl "https://YOUR_SPACE.hf.space/mega/search?text=golang&limit=10"
|
| 19 |
+
```
|
| 20 |
+
|
| 21 |
+
### Search Specific Engine
|
| 22 |
+
```bash
|
| 23 |
+
curl "https://YOUR_SPACE.hf.space/google/search?text=golang&limit=10"
|
| 24 |
+
curl "https://YOUR_SPACE.hf.space/duck/search?text=golang&limit=10"
|
| 25 |
+
curl "https://YOUR_SPACE.hf.space/bing/search?text=golang&limit=10"
|
| 26 |
+
```
|
| 27 |
+
|
| 28 |
+
### Image Search
|
| 29 |
+
```bash
|
| 30 |
+
curl "https://YOUR_SPACE.hf.space/mega/image?text=golang logo&limit=20"
|
| 31 |
+
```
|
| 32 |
+
|
| 33 |
+
### List Available Engines
|
| 34 |
+
```bash
|
| 35 |
+
curl "https://YOUR_SPACE.hf.space/mega/engines"
|
| 36 |
+
```
|
| 37 |
+
|
| 38 |
+
### Health Check
|
| 39 |
+
```bash
|
| 40 |
+
curl "https://YOUR_SPACE.hf.space/health"
|
| 41 |
+
```
|
| 42 |
+
|
| 43 |
+
## Query Parameters
|
| 44 |
+
|
| 45 |
+
| Parameter | Description | Example |
|
| 46 |
+
|-----------|-------------|---------|
|
| 47 |
+
| `text` | Search query | `golang programming` |
|
| 48 |
+
| `lang` | Language code | `EN`, `DE`, `RU` |
|
| 49 |
+
| `date` | Date range | `20230101..20231231` |
|
| 50 |
+
| `file` | File extension | `PDF`, `DOC` |
|
| 51 |
+
| `site` | Site-specific | `github.com` |
|
| 52 |
+
| `limit` | Results count | `10`, `25` |
|
| 53 |
+
|
| 54 |
+
## Environment Variables (Optional)
|
| 55 |
+
|
| 56 |
+
Set in HF Space Settings > Repository Secrets:
|
| 57 |
+
|
| 58 |
+
| Variable | Description |
|
| 59 |
+
|----------|-------------|
|
| 60 |
+
| `PROXY` | HTTP/SOCKS5 proxy URL |
|
| 61 |
+
|
| 62 |
+
## Credits
|
| 63 |
+
|
| 64 |
+
Built with [OpenSERP](https://github.com/karust/openserp) by karust.
|
config.yaml
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
server:
|
| 2 |
+
host: 0.0.0.0
|
| 3 |
+
port: 7860
|
| 4 |
+
debug: false
|
| 5 |
+
verbose: true
|
| 6 |
+
raw_requests: false
|
| 7 |
+
insecure: true
|
| 8 |
+
|
| 9 |
+
app:
|
| 10 |
+
timeout: 15
|
| 11 |
+
browser_path: ""
|
| 12 |
+
head: false
|
| 13 |
+
leakless: false
|
| 14 |
+
leave_head: false
|
| 15 |
+
stealth: false
|
| 16 |
+
|
| 17 |
+
proxies:
|
| 18 |
+
# Set PROXY env var or uncomment below:
|
| 19 |
+
#global: http://127.0.0.1:8080
|
| 20 |
+
health:
|
| 21 |
+
failure_threshold: 3
|
| 22 |
+
|
| 23 |
+
cache:
|
| 24 |
+
ttl_seconds: 60
|
| 25 |
+
max_size: 1000
|
| 26 |
+
|
| 27 |
+
resilience:
|
| 28 |
+
max_retries: 2
|
| 29 |
+
allow_endpoint_fallback: false
|
| 30 |
+
|
| 31 |
+
cors:
|
| 32 |
+
enabled: true
|
| 33 |
+
allow_origins: "*"
|
| 34 |
+
allow_methods: "GET, POST, OPTIONS"
|
| 35 |
+
allow_headers: "Origin, Content-Type, Accept, Authorization, X-Use-Proxy"
|
| 36 |
+
max_age: 86400
|
| 37 |
+
|
| 38 |
+
google:
|
| 39 |
+
rate_requests: 4
|
| 40 |
+
rate_burst: 2
|
| 41 |
+
captcha: true
|
| 42 |
+
|
| 43 |
+
yandex:
|
| 44 |
+
rate_requests: 4
|
| 45 |
+
rate_burst: 2
|
| 46 |
+
|
| 47 |
+
baidu:
|
| 48 |
+
rate_requests: 4
|
| 49 |
+
rate_burst: 2
|
| 50 |
+
|
| 51 |
+
bing:
|
| 52 |
+
rate_requests: 4
|
| 53 |
+
rate_burst: 2
|
| 54 |
+
|
| 55 |
+
duckduckgo:
|
| 56 |
+
rate_requests: 4
|
| 57 |
+
rate_burst: 2
|