samuelolubukun commited on
Commit
be85566
·
verified ·
1 Parent(s): 4f9ccc5

Upload 3 files

Browse files
Files changed (3) hide show
  1. Dockerfile +42 -0
  2. README.md +59 -5
  3. 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: Openserp Api
3
- emoji: 🐠
4
- colorFrom: yellow
5
  colorTo: green
6
  sdk: docker
7
- pinned: false
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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