Compare commits
4 commits
03b21d932e
...
d402fa3f02
| Author | SHA1 | Date | |
|---|---|---|---|
| d402fa3f02 | |||
| a4d6d7feb9 | |||
| 6a4053f7e1 | |||
| 028a41d86a |
3 changed files with 45 additions and 46 deletions
|
|
@ -19,11 +19,6 @@ RUN chown -R appuser:appuser /app
|
|||
# Switch to non-root user
|
||||
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 8000
|
||||
|
||||
|
|
|
|||
51
README.md
51
README.md
|
|
@ -1,46 +1,49 @@
|
|||
# Project Name
|
||||
# Aukpad Paste Proxy
|
||||
|
||||
This proxy allows the paste creation from temporary aukpads via linedump. Can be used as a 'GUI' for linedump.
|
||||
|
||||
- Status: Beta - Docs missing, not suited for current linedump version
|
||||
|
||||
---
|
||||
|
||||
## Features
|
||||
|
||||
**Available**:
|
||||
|
||||
**Ideas**:
|
||||
|
||||
**Not planned**:
|
||||
This proxy allows the paste creation from temporary [aukpad](https://aukpad.com/) via [linedump](https://linedump.com/). Can be used as a 'GUI' for linedump.
|
||||
|
||||
---
|
||||
|
||||
## Usage
|
||||
|
||||
- Create a pad in aukpad.
|
||||
- Change the domain of the pad from `aukpad.com` `bin.aukpad.com`
|
||||
- Create new paste in linedump instance and get redirected
|
||||
- Create a pad in your aukpad instance of choice.
|
||||
- Replace the domain of the aukpad instance with the domain of the this proxy while leaving the {paste_id}- for example: https://aukpad.com/fef3 into https://bin.aukpad.com/fef3
|
||||
- This will create a paste on the chosen linedump instanec of this proxy.
|
||||
|
||||
Information can be found on the root page of the proxy instance.
|
||||
|
||||
---
|
||||
|
||||
## 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` |
|
||||
|
||||
|
||||
### Docker / Podman
|
||||
|
||||
```bash
|
||||
$CONTAINER_CMD run --name ${CONTAINER_NAME} \
|
||||
-p 127.0.0.1:${PORT_HOST}:${PORT_CONTAINER} \
|
||||
-e PAD_DOMAIN="${PAD_DOMAIN}" \
|
||||
-e DUMP_DOMAIN="${DUMP_DOMAIN}" \
|
||||
-e PROXY_DOMAIN="${PROXY_DOMAIN}" \
|
||||
# Example with Podman
|
||||
podman run -d --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="https://bin.aukpad.com" \
|
||||
--read-only \
|
||||
--security-opt no-new-privileges:true \
|
||||
--cap-drop ALL \
|
||||
--user 1000:1000 \
|
||||
-d ${IMAGE_NAME}:latest
|
||||
git.uphillsecurity.com/cf7/aukpad-paste-proxy:latest
|
||||
```
|
||||
|
||||
_Replace 'podman' with 'docker'._
|
||||
|
||||
---
|
||||
|
||||
## Security
|
||||
|
|
|
|||
35
main.py
35
main.py
|
|
@ -7,32 +7,32 @@ import os
|
|||
app = FastAPI(title="Aukpad Proxy Service", description="Proxy service for aukpad.com to linedump.com")
|
||||
|
||||
# Configuration from environment variables
|
||||
PAD_DOMAIN = os.getenv("PAD_DOMAIN", "aukpad.com")
|
||||
DUMP_DOMAIN = os.getenv("DUMP_DOMAIN", "linedump.com")
|
||||
PROXY_DOMAIN = os.getenv("PROXY_DOMAIN", "bin.aukpad.com")
|
||||
PAD_BASEURL = os.getenv("PAD_BASEURL", "https://aukpad.com")
|
||||
DUMP_BASEURL = os.getenv("DUMP_BASEURL", "https://linedump.com")
|
||||
PROXY_BASEURL = os.getenv("PROXY_BASEURL", "https://bin.aukpad.com")
|
||||
|
||||
@app.get("/{paste_id}")
|
||||
async def proxy_paste(paste_id: str):
|
||||
try:
|
||||
# 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:
|
||||
# Get content from pad
|
||||
pad_response = await client.get(pad_url)
|
||||
pad_response.raise_for_status()
|
||||
content = pad_response.text
|
||||
|
||||
|
||||
# Post content to dump domain
|
||||
dump_response = await client.post(
|
||||
f"https://{DUMP_DOMAIN}",
|
||||
DUMP_BASEURL,
|
||||
data=content,
|
||||
headers={"Content-Type": "text/plain"}
|
||||
)
|
||||
dump_response.raise_for_status()
|
||||
|
||||
# linedump.com returns the full URL in the response body
|
||||
dump_url = dump_response.text.strip()
|
||||
|
||||
# linedump.com returns the full URL in the first line of the response
|
||||
dump_url = dump_response.text.strip().splitlines()[0]
|
||||
|
||||
# Redirect to the dump URL
|
||||
return RedirectResponse(url=dump_url, status_code=302)
|
||||
|
|
@ -48,13 +48,14 @@ async def proxy_paste(paste_id: str):
|
|||
async def root():
|
||||
return {
|
||||
"service": "Aukpad Proxy Service",
|
||||
"description": f"This service proxies paste content from {PAD_DOMAIN} to {DUMP_DOMAIN}",
|
||||
"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}",
|
||||
"example": f"https://{PROXY_DOMAIN}/abc123 → fetches https://{PAD_DOMAIN}/abc123/raw → posts to https://{DUMP_DOMAIN} → redirects to result URL",
|
||||
"domains": {
|
||||
"proxy": PROXY_DOMAIN,
|
||||
"source": PAD_DOMAIN,
|
||||
"destination": DUMP_DOMAIN
|
||||
"description": f"This service proxies paste content from {PAD_BASEURL} to {DUMP_BASEURL}",
|
||||
"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"{PROXY_BASEURL}/abc123 → fetches {PAD_BASEURL}/abc123/raw → posts to {DUMP_BASEURL} → redirects to result URL",
|
||||
"source_code": "https://git.uphillsecurity.com/cf7/aukpad-paste-proxy",
|
||||
"base_urls": {
|
||||
"proxy": PROXY_BASEURL,
|
||||
"source": PAD_BASEURL,
|
||||
"destination": DUMP_BASEURL
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue