A web-based tool for browsing and searching APT repositories. This tool allows you to explore package repositories, view package information, and download packages directly from the browser.
- Browse APT repositories by entering the base URL
- View repository metadata including architectures and components
- Browse and search packages in the repository
- Support for both regular and gzipped (.gz) Packages files
- Automatic fallback to gzipped version when regular Packages file is not available
- Visual indicator in UI when gzipped version is being used
- Download packages directly from the repository
- Responsive UI for desktop and mobile devices
- Docker support for easy deployment
- GitHub Container Registry integration for automated builds
- Python 3.7+
- UV package manager (recommended) or pip
- Docker (optional, for containerized deployment)
-
Install UV if you haven't already:
curl -sSf https://astral.sh/uv/install.sh | sh
-
Clone the repository:
git clone https://github.com/HeyMeco/WebAPT.git cd WebAPT
-
Run the setup script:
./run.sh
-
Clone the repository:
git clone https://github.com/HeyMeco/WebAPT.git cd WebAPT
-
Create and activate a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
python app.py
The application will be available at http://localhost:5000
The application supports the following environment variables:
APTREPO
: Set a default APT repository URL. When this is set, the UI will automatically use this repository and disable the URL input field.
Example:
APTREPO=https://apt.armbian.com python app.py
-
Build the image:
docker build -t webapt .
-
Run the container:
docker run -p 5000:5000 webapt
With environment variable:
docker run -p 5000:5000 -e APTREPO=https://apt.armbian.com webapt
The latest Docker image is available at ghcr.io/HeyMeco/WebAPT
:
docker pull ghcr.io/HeyMeco/WebAPT:main
docker run -p 5000:5000 ghcr.io/HeyMeco/WebAPT:main
With environment variable:
docker run -p 5000:5000 -e APTREPO=https://apt.armbian.com ghcr.io/HeyMeco/WebAPT:main
- Enter an APT repository base URL (e.g., https://apt.armbian.com/dists/noble)
- The application fetches the Release file to get repository metadata
- Select an architecture and component to view available packages
- Use the search feature to find specific packages
- Download packages directly from the repository
WebAPT/
├── app.py # Main Flask application
├── lib/ # Core functionality
│ ├── __init__.py
│ └── apt_parser.py # APT repository parsing
├── static/ # Static assets
│ ├── script.js # Client-side JavaScript
│ └── style.css # Stylesheets
├── templates/ # HTML templates
│ └── index.html # Main page template
├── Dockerfile # Container configuration
├── requirements.txt # Python dependencies
└── run.sh # Setup and run script
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE file for details