Sign inSign up

raphaeljaeger/argus-proxy

By raphaeljaeger

•Updated 23 days ago

Image
Networking
Security
0

92

raphaeljaeger/argus-proxy repository overview

⁠Argus Proxy

Argus Proxy is a modern, Docker-ready forward web proxy designed for network traffic control, web filtering, security, and centralized access management.

It provides a web-based administration interface with powerful filtering and security features, making it suitable for home networks, businesses, schools, laboratories, and other managed network environments.

⁠Features

⁠Forward Proxy
  • HTTP/HTTPS forward proxy
  • Centralized web traffic management
  • Configurable proxy port
⁠Blacklist & Whitelist
  • Block unwanted domains and URLs
  • Allow specific domains or destinations
  • Combine blacklist and whitelist rules for flexible access control
⁠URL & Domain Redirects
  • Redirect requests to other destinations
  • Enforce alternative URLs or internal services
  • Useful for custom access policies and network management
⁠HTTPS / SSL Interception
  • Optional HTTPS traffic inspection
  • Enables deeper inspection and filtering of encrypted traffic
  • Requires clients to trust the configured proxy CA
⁠Custom Error & Block Pages
  • Custom web pages for blocked requests
  • Dedicated error-page web server
  • Provides users with a clear explanation when access is denied
⁠Virus Scanning
  • Optional integration with ClamAV
  • Scan downloaded files for malware
  • ClamAV runs as a separate Docker container
  • Can be enabled or disabled through the Argus GUI
⁠File Filtering
  • Filter downloads based on file types
  • Prevent unwanted or potentially dangerous file downloads
  • Combine file filtering with virus scanning for additional protection
⁠Built-in NTP Server
  • Optional built-in NTP server
  • Can be enabled directly from the Argus GUI
  • Useful for controlled network environments
⁠Web-based Administration
  • Centralized configuration through the Argus Web GUI
  • Manage proxy settings, filtering rules, redirects, and security features
⁠MySQL Database
  • Persistent application data storage
  • Configurable database connection
  • Supports MySQL as the database backend
⁠Docker Support
  • Easy deployment using Docker Compose
  • Optional ClamAV integration
  • Persistent ClamAV virus database through a Docker volume

⁠Default Login

After the first installation, Argus can be accessed using the following default administrator credentials:

  • Username: admin
  • Password: admin

Important: Change the default password immediately after the first login, especially in production environments.

⁠Ports

PortProtocolPurpose
8080TCPArgus Web GUI
8888TCPForward Proxy
8081TCPError / Block Page Web Server
123UDPBuilt-in NTP Server

The NTP port is only required when the built-in NTP server is enabled in the Argus GUI.

⁠Virus Scanning

Virus scanning is optional and uses ClamAV.

If virus scanning is required, deploy the included clamav service. Argus uses the Docker service hostname clamav and port 3310 by default, so no additional environment variables are required.

If virus scanning is not needed, the ClamAV service can be removed from the Docker Compose configuration. Virus scanning can then remain disabled in the Argus GUI.

ClamAV's virus database is stored in a persistent Docker volume:

argus-clamav-data

This prevents the virus database from being lost when the container is recreated.

⁠Docker Compose

The following Docker Compose configuration deploys Argus together with the optional ClamAV virus scanner:

version: "3.8"

services:
  argus:
    build: .
    restart: unless-stopped
    ports:
      - "8080:8080"       # Web GUI
      - "8888:8888"       # Forward proxy
      - "8081:8081"       # Error page web server
      - "123:123/udp"     # Built-in NTP server (only needed if enabled in the GUI)
    environment:
      DB_HOST: mysql
      DB_PORT: 3306
      DB_NAME: argus
      DB_USER: argus
      DB_PASSWORD: changeme
      DB_DIALECT: mysql
      SESSION_SECRET: "please-change-this-to-a-long-random-string"

      # Optional environment variables
      WEBGUI_PORT: 8080
      PROXY_PORT: 8888
      ERRORPAGE_PORT: 8081
      NTP_PORT: 123

  # Optional: only needed if virus scanning (ClamAV) should be enabled.
  # Can be removed if virus scanning is not needed.
  # Leave virus scanning disabled in the Argus GUI when this service is removed.
  clamav:
    image: clamav/clamav:stable
    restart: unless-stopped
    volumes:
      - argus-clamav-data:/var/lib/clamav

volumes:
  argus-clamav-data:

⁠Database

Argus requires a MySQL database.

The Docker Compose configuration expects a MySQL server with the following settings:

SettingValue
Hostmysql
Port3306
Databaseargus
Usernameargus
Passwordchangeme
Dialectmysql

The mysql hostname must be reachable from the Argus container. If MySQL is deployed in the same Docker Compose stack, the service should normally be named mysql.

For production deployments, replace the example database password with a strong password.

⁠Configuration

The following environment variables can be used to configure Argus:

VariableDefaultDescription
DB_HOSTmysqlMySQL database hostname
DB_PORT3306MySQL database port
DB_NAMEargusDatabase name
DB_USERargusDatabase username
DB_PASSWORDchangemeDatabase password
DB_DIALECTmysqlDatabase dialect
SESSION_SECRET-Secret used for application sessions
WEBGUI_PORT8080Web GUI port
PROXY_PORT8888Forward proxy port
ERRORPAGE_PORT8081Error page web server port
NTP_PORT123Built-in NTP server port

Tag summary

Content type

Image

Digest

sha256:2f0aa55f1…

Size

64 MB

Last updated

23 days ago

docker pull raphaeljaeger/argus-proxy