No description
- TypeScript 87.6%
- CSS 10.3%
- Dockerfile 0.8%
- JavaScript 0.8%
- HTML 0.5%
| backend | ||
| frontend | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| ecosystem.config.js | ||
| README.md | ||
Poporoxy
Proxy scraper system with automated testing, filtering, and management.
Architecture
- Backend: Bun + Hono + SQLite
- Frontend: Vanilla TypeScript + Vite (Brutalism Night Mode)
Quick Start
Development
# Install backend dependencies
cd backend && bun install
# Install frontend dependencies
cd ../frontend && bun install
# Start backend (port 3001)
cd backend && bun run dev
# Start frontend dev server (port 5173, proxies API to backend)
cd frontend && bun run dev
Docker
docker compose up -d
PM2
# Build frontend first
cd frontend && bun install && bun run build
cp -r dist ../backend/public
# Start with PM2
cd .. && pm2 start ecosystem.config.js
Environment Variables
| Variable | Default | Description |
|---|---|---|
PORT |
3001 |
Server port |
JWT_SECRET |
poporoxy-secret-key-change-in-production |
JWT signing secret |
DB_PATH |
poporoxy.db |
SQLite database path |
API Endpoints
Auth
POST /api/auth/register- Register{ username, password }POST /api/auth/login- Login{ username, password }
Proxies (Auth Required)
POST /api/proxies/scrape- Scrape, test, and save proxiesPOST /api/proxies/retest- Re-test all saved proxiesGET /api/proxies- List all proxiesGET /api/proxies/stats- Get proxy statisticsPOST /api/proxies/test/:id- Re-test a single proxyDELETE /api/proxies/:id- Delete a proxyDELETE /api/proxies- Clear all proxies
Config (Auth Required)
GET /api/config- Get user configPUT /api/config- Update config{ response_time_target, web_target, limit_val }
Features
- Scrape proxies from remote API endpoint
- Filter online proxies only
- Test each proxy for:
- Country detection via IP checker endpoint
- Web target accessibility (configurable target URL)
- Response time measurement
- Only save proxies that pass response time target AND web target check
- Per-user configuration and proxy lists
- Encrypted password storage (bcrypt)
- JWT authentication