Repository navigation
Quick Start Guide
This guide provides step-by-step instructions for getting the Secure Browser system up and running quickly.
- Prerequisites
- Installation
- Starting the Browser
- Browser Options
- Using the Search Tool
- Troubleshooting
Before starting the Secure Browser system, ensure you have the following:
- Python 3.7 or higher
- pip (Python package manager)
- Virtual environment (recommended)
- Internet connection (for loading web pages)
cd /home/robbie/Desktop/secure_browser# Create virtual environment
python3 -m venv .venv
# Activate virtual environment
# Linux/macOS:
source .venv/bin/activate
# Windows:
.venv\Scripts\activatepip install -r requirements.txtThis will install:
- PyQt5 and PyQtWebEngine (for PyQt5 browser)
- tkinterweb (for Tkinter browser)
- pywebview and qtpy (for WebView browser)
python3 main.py --helpExpected output:
usage: main.py [-h] [--browser {pyqt5,tkinter,webview,search}]
Secure Browser - A secure web browser implementation
options:
-h, --help show this help message and exit
--browser {pyqt5,tkinter,webview,search}
Select browser implementation (default: pyqt5)
python3 main.pyThis launches the PyQt5 browser with the default homepage (https://search.brave.com/).
# PyQt5 browser (default, feature-rich with tabs and dark theme)
python3 main.py --browser pyqt5
# Tkinter browser (lightweight, security-focused)
python3 main.py --browser tkinter
# WebView browser (native webview integration)
python3 main.py --browser webviewpython3 main.py --browser searchThis launches the Advanced Search Operators Tool for building complex search queries.
Features:
- Tabbed interface
- Dark theme
- Navigation controls (back, forward, reload, home)
- Settings dialog (VPN, JavaScript, proxy)
- Developer tools integration
Best for: Users who want a modern, feature-rich browser with tabbed browsing.
Usage:
python3 main.py --browser pyqt5Features:
- Lightweight
- HTTPS enforcement
- JavaScript toggle
- Whitelist/blacklist filtering
- Security headers
- User-agent customization
- Proxy support
- Bookmarks
Best for: Users who prioritize security and privacy.
Usage:
python3 main.py --browser tkinterFeatures:
- Native webview integration
- Navigation history
- Proxy settings
- Lightweight
Best for: Users who want native OS integration.
Usage:
python3 main.py --browser webviewNote: WebView browser may require system-level dependencies:
# Ubuntu/Debian:
sudo apt-get install python3-gi gir1.2-gtk-3.0
# Fedora:
sudo dnf install python3-gobject gtk3The Advanced Search Operators Tool helps you build complex search queries.
python3 main.py --browser search- Enter Base Query: Type your main search term in the query input field
-
Add Operators: Use the checkboxes to add search operators:
-
Site: Restrict search to a specific website (e.g.,
docs.python.org) -
Title: Search for terms in the page title (e.g.,
tutorial) -
File Type: Search for specific file types (e.g.,
pdf,doc) -
Exclude: Exclude terms from results (e.g.,
advertising) - Custom: Add custom search operators
-
Site: Restrict search to a specific website (e.g.,
- Preview Query: Click "Preview Query" to see the generated search string
- Execute Search: Click "Open in Browser" to execute the search in your default web browser
-
Search for Python tutorials on docs.python.org:
Python tutorial site:docs.python.org -
Search for PDF files about machine learning:
machine learning filetype:pdf -
Search for "tutorial" in page titles, excluding advertising:
tutorial intitle:tutorial -advertising
The default homepage is set to https://search.brave.com/. You can customize this by editing config/user_settings.json:
{
"home_url": "https://search.brave.com/",
"security": {
"https_enforcement": true,
"javascript_enabled": true,
"whitelist": [],
"blacklist": []
},
"proxy": {
"http": "",
"https": ""
}
}PyQt5 Browser:
- Access settings via the "Settings" button in the navigation bar
- Configure VPN usage, JavaScript, and proxy settings
Tkinter Browser:
- Access settings via the "⚙ Settings" button
- Configure user-agent, proxy, whitelist/blacklist, and JavaScript
WebView Browser:
- Access settings via the "⚙ Settings" button
- Configure user-agent and proxy settings
Symptom:
ModuleNotFoundError: No module named 'PyQt5'
Solution:
# Activate virtual environment
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txtSymptom: Command executes but no window appears
Solution:
# Check display environment (Linux)
echo $DISPLAY
# If no display, set up virtual display
sudo apt-get install xvfb
xvfb-run python3 main.pySymptom: Error about GTK or Qt dependencies
Solution:
# Install GTK dependencies (Ubuntu/Debian)
sudo apt-get install python3-gi gir1.2-gtk-3.0
# Install Qt dependencies (if using Qt backend)
sudo apt-get install python3-pyqt5 python3-pyqt5.qtwebengineSymptom: Warnings about "Unknown property box-shadow" or "transform"
Solution: These are non-critical warnings. Qt's stylesheet parser doesn't support all CSS3 properties. The browser still functions correctly.
Symptom: Pages don't load or show errors
Solution:
# Verify tkinterweb installation
pip show tkinterweb
# Reinstall if needed
pip install --upgrade tkinterwebTo run the browser in the background:
python3 main.py &Edit config/user_settings.json:
{
"home_url": "https://your-custom-url.com"
}Configure proxy in browser settings or via environment variables:
export http_proxy="http://proxy.example.com:8080"
export https_proxy="https://proxy.example.com:8080"
python3 main.py- Python 3.7+
- 512 MB RAM
- 100 MB disk space
- Python 3.9+
- 1 GB RAM
- 200 MB disk space
- Internet connection
- Read the Architecture Documentation to understand the system design
- Read the Security Documentation to learn about security features
- Read the Configuration Guide for detailed configuration options
- Read the Development Guide if you want to contribute
For issues or questions:
- Check the Troubleshooting Guide
- Review the API Documentation
- Check the project README.md
Note: This project is actively maintained. For the latest updates, check the project repository.