CAHNGE *-DOMAIN to *-BASEURL to handle protocols better #5
This commit is contained in:
parent
03b21d932e
commit
028a41d86a
3 changed files with 42 additions and 24 deletions
|
|
@ -19,11 +19,6 @@ RUN chown -R appuser:appuser /app
|
||||||
# Switch to non-root user
|
# Switch to non-root user
|
||||||
USER appuser
|
USER appuser
|
||||||
|
|
||||||
# Set default environment variables
|
|
||||||
ENV PAD_DOMAIN=aukpad.com
|
|
||||||
ENV DUMP_DOMAIN=linedump.com
|
|
||||||
ENV PROXY_DOMAIN=bin.aukpad.com
|
|
||||||
|
|
||||||
# Expose port
|
# Expose port
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
|
|
|
||||||
33
README.md
33
README.md
|
|
@ -1,4 +1,4 @@
|
||||||
# Project Name
|
# Aukpad Paste Proxy
|
||||||
|
|
||||||
This proxy allows the paste creation from temporary aukpads via linedump. Can be used as a 'GUI' for linedump.
|
This proxy allows the paste creation from temporary aukpads via linedump. Can be used as a 'GUI' for linedump.
|
||||||
|
|
||||||
|
|
@ -26,19 +26,42 @@ This proxy allows the paste creation from temporary aukpads via linedump. Can be
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
WIP
|
### Environment Variables
|
||||||
|
|
||||||
|
| Variable | Description | Default |
|
||||||
|
|----------|-------------|---------|
|
||||||
|
| `PAD_BASEURL` | Source paste service base URL including protocol | `https://aukpad.com` |
|
||||||
|
| `DUMP_BASEURL` | Destination paste service base URL including protocol | `https://linedump.com` |
|
||||||
|
| `PROXY_BASEURL` | This proxy's base URL for documentation including protocol | `https://bin.aukpad.com` |
|
||||||
|
|
||||||
|
|
||||||
|
### Manual Container Run
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Using variables
|
||||||
$CONTAINER_CMD run --name ${CONTAINER_NAME} \
|
$CONTAINER_CMD run --name ${CONTAINER_NAME} \
|
||||||
-p 127.0.0.1:${PORT_HOST}:${PORT_CONTAINER} \
|
-p 127.0.0.1:${PORT_HOST}:${PORT_CONTAINER} \
|
||||||
-e PAD_DOMAIN="${PAD_DOMAIN}" \
|
-e PAD_BASEURL="${PAD_BASEURL}" \
|
||||||
-e DUMP_DOMAIN="${DUMP_DOMAIN}" \
|
-e DUMP_BASEURL="${DUMP_BASEURL}" \
|
||||||
-e PROXY_DOMAIN="${PROXY_DOMAIN}" \
|
-e PROXY_BASEURL="${PROXY_BASEURL}" \
|
||||||
--read-only \
|
--read-only \
|
||||||
--security-opt no-new-privileges:true \
|
--security-opt no-new-privileges:true \
|
||||||
--cap-drop ALL \
|
--cap-drop ALL \
|
||||||
--user 1000:1000 \
|
--user 1000:1000 \
|
||||||
-d ${IMAGE_NAME}:latest
|
-d ${IMAGE_NAME}:latest
|
||||||
|
|
||||||
|
# Example with Podman
|
||||||
|
podman run --name aukpad-paste-proxy \
|
||||||
|
--replace \
|
||||||
|
-p 127.0.0.1:8001:8000 \
|
||||||
|
-e PAD_BASEURL="https://aukpad.com" \
|
||||||
|
-e DUMP_BASEURL="https://linedump.com" \
|
||||||
|
-e PROXY_BASEURL="http://127.0.0.1:8001" \
|
||||||
|
--read-only \
|
||||||
|
--security-opt no-new-privileges:true \
|
||||||
|
--cap-drop ALL \
|
||||||
|
--user 1000:1000 \
|
||||||
|
-d localhost/aukpad-proxy:dev
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
28
main.py
28
main.py
|
|
@ -7,25 +7,25 @@ import os
|
||||||
app = FastAPI(title="Aukpad Proxy Service", description="Proxy service for aukpad.com to linedump.com")
|
app = FastAPI(title="Aukpad Proxy Service", description="Proxy service for aukpad.com to linedump.com")
|
||||||
|
|
||||||
# Configuration from environment variables
|
# Configuration from environment variables
|
||||||
PAD_DOMAIN = os.getenv("PAD_DOMAIN", "aukpad.com")
|
PAD_BASEURL = os.getenv("PAD_BASEURL", "https://aukpad.com")
|
||||||
DUMP_DOMAIN = os.getenv("DUMP_DOMAIN", "linedump.com")
|
DUMP_BASEURL = os.getenv("DUMP_BASEURL", "https://linedump.com")
|
||||||
PROXY_DOMAIN = os.getenv("PROXY_DOMAIN", "bin.aukpad.com")
|
PROXY_BASEURL = os.getenv("PROXY_BASEURL", "https://bin.aukpad.com")
|
||||||
|
|
||||||
@app.get("/{paste_id}")
|
@app.get("/{paste_id}")
|
||||||
async def proxy_paste(paste_id: str):
|
async def proxy_paste(paste_id: str):
|
||||||
try:
|
try:
|
||||||
# Fetch content from pad domain
|
# Fetch content from pad domain
|
||||||
pad_url = f"https://{PAD_DOMAIN}/{paste_id}/raw"
|
pad_url = f"{PAD_BASEURL}/{paste_id}/raw"
|
||||||
|
|
||||||
async with httpx.AsyncClient() as client:
|
async with httpx.AsyncClient() as client:
|
||||||
# Get content from pad
|
# Get content from pad
|
||||||
pad_response = await client.get(pad_url)
|
pad_response = await client.get(pad_url)
|
||||||
pad_response.raise_for_status()
|
pad_response.raise_for_status()
|
||||||
content = pad_response.text
|
content = pad_response.text
|
||||||
|
|
||||||
# Post content to dump domain
|
# Post content to dump domain
|
||||||
dump_response = await client.post(
|
dump_response = await client.post(
|
||||||
f"https://{DUMP_DOMAIN}",
|
DUMP_BASEURL,
|
||||||
data=content,
|
data=content,
|
||||||
headers={"Content-Type": "text/plain"}
|
headers={"Content-Type": "text/plain"}
|
||||||
)
|
)
|
||||||
|
|
@ -48,13 +48,13 @@ async def proxy_paste(paste_id: str):
|
||||||
async def root():
|
async def root():
|
||||||
return {
|
return {
|
||||||
"service": "Aukpad Proxy Service",
|
"service": "Aukpad Proxy Service",
|
||||||
"description": f"This service proxies paste content from {PAD_DOMAIN} to {DUMP_DOMAIN}",
|
"description": f"This service proxies paste content from {PAD_BASEURL} to {DUMP_BASEURL}",
|
||||||
"usage": f"Visit https://{PROXY_DOMAIN}/{{paste_id}} to fetch content from https://{PAD_DOMAIN}/{{paste_id}}/raw and redirect to the posted URL on {DUMP_DOMAIN}",
|
"usage": f"Visit {PROXY_BASEURL}/{{paste_id}} to fetch content from {PAD_BASEURL}/{{paste_id}}/raw and redirect to the posted URL on {DUMP_BASEURL}",
|
||||||
"example": f"https://{PROXY_DOMAIN}/abc123 → fetches https://{PAD_DOMAIN}/abc123/raw → posts to https://{DUMP_DOMAIN} → redirects to result URL",
|
"example": f"{PROXY_BASEURL}/abc123 → fetches {PAD_BASEURL}/abc123/raw → posts to {DUMP_BASEURL} → redirects to result URL",
|
||||||
"domains": {
|
"base_urls": {
|
||||||
"proxy": PROXY_DOMAIN,
|
"proxy": PROXY_BASEURL,
|
||||||
"source": PAD_DOMAIN,
|
"source": PAD_BASEURL,
|
||||||
"destination": DUMP_DOMAIN
|
"destination": DUMP_BASEURL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue