UI APT Mirror - A containerized solution with UI

A review of my containerized APT mirror project with web interface, npm proxy, and file hosting capabilities for air gapped environments.

#Linux#Docker#Homelab

This project was born out of my need to work during frequent power outages in my country. So I needed a solution that could provide deb packages, npm packages, and file hosting all in one place while consuming minimal resources.

What is UI APT Mirror?

UI APT Mirror is a containerized solution that creates a complete offline development environment. It includes an APT mirror for Ubuntu/Debian packages, an optional npm proxy for Node.js packages, file hosting with media streaming, and developer cheatsheets - all accessible through web interfaces.

Key features
  • APT Mirror: Local Ubuntu/Debian package repository with automatic sync
  • NPM Proxy: Optional local npm registry cache for faster installs
  • File Hosting: Built-in file manager with video/audio streaming support
  • Admin Panel: Web interface for monitoring and management
  • Developer Cheatsheets: Offline command references and documentation
  • Multi-architecture: Supports both ARM64 and AMD64 systems

The setup script will ask for your domain (default: mirror.intra), sync frequency, admin password, and whether you need npm proxy functionality.

Using the mirror

Once deployed, you get multiple web interfaces:

  • http://mirror.intra - Browse and download packages
  • http://admin.mirror.intra - Admin panel for monitoring
  • http://files.mirror.intra - File hosting with media streaming
  • http://cheatsheets.mirror.intra - Developer command references
  • http://npm.mirror.intra - NPM proxy (if enabled)

To use the APT mirror on your systems, add this to /etc/apt/sources.list:

deb http://mirror.intra/archive.ubuntu.com/ubuntu noble main restricted universe multiverse
Installation

You can download the setup script from the project website:

  1. Visit ui-apt-mirror.dbashkatov.com
  2. Download the setup script
  3. Make it executable and run it:
./install.sh

The setup script will guide you through configuration and deployment. Once running, you'll have access to all four web interfaces for package management, administration, file hosting, and npm proxy.

The project is also available on GitHub.