A microservice for managing and distributing proxies by email ID.
- REST API for proxy management
- Admin panel for proxy administration
- SQLite database for data persistence
- Basic authentication for admin access
GET /api/proxy/:email- Get current proxy for an emailPOST /api/proxy/:email/rotate- Request proxy rotation- Body:
{ "reason": "string" }
- Body:
GET /api/proxy/:email/history- Get proxy rotation history
GET /admin- Admin panel interfaceGET /api/admin/proxies- List all proxiesPOST /api/admin/proxies- Add new proxy- Body:
{ "host": "string", "port": number, "username": "string", "password": "string" }
- Body:
POST /api/admin/proxies/:email/rotate- Force proxy rotation- Body:
{ "reason": "string" }
- Body:
DELETE /api/admin/proxies/:id- Delete a proxy
- Install dependencies:
npm install- Start the server:
npm startThe server will start on port 8888 by default. You can change this by setting the PORT environment variable.
- URL:
http://localhost:8888/admin - Username:
admin - Password:
admin123
To run with Docker:
- Build the image:
docker build -t proxy-service .- Run the container (default port 8888, database in container):
docker run -p 8888:8888 proxy-serviceTo specify a custom port and mount a local database file:
docker run -p 8080:8080 -e PORT=8080 -v /path/to/your/proxies.db:/app/proxies.db proxy-service-p 8080:8080— проброс порта 8080-e PORT=8080— задать переменную окружения для порта-v /path/to/your/proxies.db:/app/proxies.db— проброс локального файла базы данных внутрь контейнера
The service uses SQLite for data storage. The database file (proxies.db) will be created automatically in the project root directory.
For development with auto-reload:
npm run devДля удаления прокси используйте метод:
DELETE /api/admin/proxies/:id
- Требуется basic auth (admin).
- Прокси не должен быть в использовании (
is_used = 0).
Dockerfile уже присутствует. Для автоматической сборки и публикации Docker-образа на архитектуру linux/amd64 добавлен workflow GitHub Actions (см. .github/workflows/docker-publish.yml).
Образ публикуется в GitHub Container Registry (ghcr.io).
Пример получения и запуска образа:
docker pull ghcr.io/rxflex/proxyservice:latest
docker run -p 8888:8888 ghcr.io/rxflex/proxyservice:latest