anyonehomep1mane commited on
Commit
472efd1
·
0 Parent(s):

Initial Changes

Browse files
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
CURL urls.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ http://localhost:7860/auth/
2
+ http://localhost:7860/auth/ping
3
+ http://localhost:7860/auth/hello/Alice
4
+
5
+ http://localhost:7860/task/
6
+ http://localhost:7860/task/ping
7
+ http://localhost:7860/task/task/123
Dockerfile ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.10-slim
2
+
3
+ WORKDIR /app
4
+
5
+ # Install system deps
6
+ RUN apt-get update && \
7
+ apt-get install -y nginx supervisor && \
8
+ rm -rf /var/lib/apt/lists/*
9
+
10
+ # Install Python deps
11
+ COPY requirements.txt .
12
+ RUN pip install --no-cache-dir -r requirements.txt
13
+
14
+ # Copy app code
15
+ COPY . .
16
+
17
+ # Copy configs
18
+ COPY nginx.conf /etc/nginx/nginx.conf
19
+ COPY supervisor.conf /etc/supervisor/conf.d/supervisor.conf
20
+
21
+ # Expose HF Space port
22
+ EXPOSE 7860
23
+
24
+ # Start everything
25
+ CMD ["sh", "-c", "nginx && supervisord -n -c /etc/supervisor/conf.d/supervisor.conf"]
README.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: FastApi Microservices
3
+ emoji: 📊
4
+ colorFrom: purple
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
auth_service/app/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ # Empty __init__.py to make the app directory a Python package
auth_service/app/main.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+
3
+ app = FastAPI(title="Auth Service")
4
+
5
+ @app.get("/")
6
+ def root():
7
+ return {
8
+ "service": "auth",
9
+ "message": "Auth service is running"
10
+ }
11
+
12
+ @app.get("/ping")
13
+ def ping():
14
+ return {
15
+ "service": "auth",
16
+ "status": "ok"
17
+ }
18
+
19
+ @app.get("/hello/{name}")
20
+ def hello(name: str):
21
+ return {
22
+ "service": "auth",
23
+ "hello": name
24
+ }
nginx.conf ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ worker_processes 1;
2
+
3
+ events {
4
+ worker_connections 1024;
5
+ }
6
+
7
+ http {
8
+
9
+ # Decide backend based on referer
10
+ map $http_referer $openapi_backend {
11
+ default "";
12
+ ~*/auth/ http://127.0.0.1:8001;
13
+ ~*/task/ http://127.0.0.1:8002;
14
+ }
15
+
16
+ server {
17
+ listen 7860;
18
+
19
+ # -------- AUTH SERVICE --------
20
+ location /auth/ {
21
+ proxy_pass http://127.0.0.1:8001/;
22
+ proxy_set_header Host $host;
23
+ }
24
+
25
+ # -------- TASK SERVICE --------
26
+ location /task/ {
27
+ proxy_pass http://127.0.0.1:8002/;
28
+ proxy_set_header Host $host;
29
+ }
30
+
31
+ # -------- OPENAPI (Swagger fix) --------
32
+ location = /openapi.json {
33
+ proxy_pass $openapi_backend/openapi.json;
34
+ }
35
+
36
+ # -------- FAVICON --------
37
+ location = /favicon.ico {
38
+ return 204;
39
+ access_log off;
40
+ }
41
+ }
42
+ }
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ fastapi
2
+ uvicorn[standard]
supervisor.conf ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [supervisord]
2
+ nodaemon=true
3
+ user=root
4
+ logfile=/dev/null
5
+ logfile_maxbytes=0
6
+
7
+ [program:auth_service]
8
+ command=uvicorn auth_service.app.main:app --host 0.0.0.0 --port 8001
9
+ stdout_logfile=/dev/fd/1
10
+ stdout_logfile_maxbytes=0
11
+ redirect_stderr=true
12
+ autorestart=true
13
+
14
+ [program:task_service]
15
+ command=uvicorn task_service.app.main:app --host 0.0.0.0 --port 8002
16
+ stdout_logfile=/dev/fd/1
17
+ stdout_logfile_maxbytes=0
18
+ redirect_stderr=true
19
+ autorestart=true
task_service/app/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ # Empty __init__.py to make the app directory a Python package
task_service/app/main.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+
3
+ app = FastAPI(title="Task Service")
4
+
5
+ @app.get("/")
6
+ def root():
7
+ return {
8
+ "service": "task",
9
+ "message": "Task service is running"
10
+ }
11
+
12
+ @app.get("/ping")
13
+ def ping():
14
+ return {
15
+ "service": "task",
16
+ "status": "ok"
17
+ }
18
+
19
+ @app.get("/task/{task_id}")
20
+ def get_task(task_id: int):
21
+ return {
22
+ "service": "task",
23
+ "task_id": task_id,
24
+ "status": "received"
25
+ }