Redesigned AUR Drawer Settings: compact layout, animations, context labels Enhanced Tooltip: infinite width, markdown links, 'warm paper' style Data: Updated Fedora reasons for Neofetch/Eza Refactor: cleaned up hooks and positioning
🐧 The only Mate you need for setup
TuxMate is a web-based Linux application installer that generates distro-specific shell scripts, that aims to be the simplest way to bulk-install applications on a fresh Linux system.
Maybe you've just installed a fresh Linux distro. Perhaps you're setting up a new machine or can't remember all the package names for your favorite apps?
📦 Supported Distributions
- Ubuntu / Debian (apt)
- Arch Linux (pacman + AUR)
- Fedora (dnf)
- openSUSE (zypper)
- Nix (nix-env)
- Flatpak
- Snap
✨ Features 🌟
Application Catalog
150+ applications across 15 categories: browsers, communication, dev tools, terminals, media, creative software, gaming, office, VPN/network, security, and more.
Smart Script Generation
- Detects already-installed packages
- Handles AUR packages automatically on Arch
- Enables RPM Fusion when needed on Fedora
- Parallel installation for Flatpak
- Network retry with exponential backoff
- Progress bars with ETA
- Colored output and summary reports
Availability Awareness
Shows which apps are available for your selected distro, with instructions for unavailable packages.
📸 Screenshots
🗂️ Project Structure
src/
├── app/ # Next.js app router
│ ├── page.tsx # Main page component
│ ├── layout.tsx # Root layout with meta tags
│ └── globals.css # Tailwind styles
├── components/
│ ├── app/ # App cards & categories
│ ├── command/ # Command footer & AUR bar
│ ├── common/ # Tooltips, loading states
│ ├── distro/ # Distribution selector
│ ├── header/ # Header & theme toggle
│ └── ui/ # Base UI components
├── hooks/ # React hooks
│ ├── useLinuxInit.ts # Main app state management
│ ├── useKeyboardNavigation.ts
│ ├── useTheme.ts
│ └── useDelayedTooltip.ts
├── lib/
│ ├── data.ts # Apps, distros, icons
│ ├── aur.ts # AUR package detection
│ ├── analytics.ts # Umami tracking
│ ├── generateInstallScript.ts
│ └── scripts/ # Per-distro script generators
└── __tests__/ # Vitest unit tests
🐳 Docker Deployment
Quick Start with Docker
# Build the Docker image
docker build -t tuxmate:latest .
# Run the container
docker run -p 3000:3000 tuxmate:latest
Using Pre-built Images
Pre-built Docker images are automatically published to GitHub Container Registry:
# Pull and run the latest image
docker pull ghcr.io/abusoww/tuxmate:latest
docker run -p 3000:3000 ghcr.io/abusoww/tuxmate:latest
# Or use a specific version
docker pull ghcr.io/abusoww/tuxmate:v1.0.0
docker run -p 3000:3000 ghcr.io/abusoww/tuxmate:v1.0.0
Using Docker Compose (Recommended)
# Start the application
docker-compose up -d
# View logs
docker-compose logs -f
# Stop the application
docker-compose down
Configuration
The Docker container exposes port 3000 by default. You can customize the port mapping:
docker run -p 8080:3000 tuxmate:latest
Environment Variables
The following environment variables are configured by default:
NODE_ENV=production- Run in production modePORT=3000- Application portNEXT_TELEMETRY_DISABLED=1- Disable Next.js anonymous telemetry
You can override these when running the container:
docker run -p 3000:3000 \
-e PORT=3000 \
-e NEXT_TELEMETRY_DISABLED=1 \
tuxmate:latest
🛠️ Tech Stack
- Next.js 16 (App Router)
- React 19
- TypeScript
- Tailwind CSS 4
- Framer Motion
- GSAP
- Vitest (testing)
- Lucide React (icons)
🚀 Usage
you can use the Arrow Keys or h j k l to navigate, Enter to select, Esc to go back, Space to toggle selection.
- Select your distribution from the dropdown
- Browse categories and select applications
- Copy the generated command or download the full install script
- Run the script on your Linux machine
🤝 Contribution
See CONTRIBUTING.md for contribution guidelines.
🎯 Roadmap
Completed
- Multi-distro support (Ubuntu, Debian, Arch, Fedora, openSUSE)
- Nix, Flatpak & Snap universal package support
- 150+ applications across 15 categories
- Smart script generation with error handling
- Dark / Light theme toggle with smooth animations
- Copy command & Download script
- Custom domain
- Docker support
- CI/CD shortcuts & workflow
- Search & filter applications (Real-time)
- AUR Helper selection (yay/paru) + Auto-detection
- Keyboard navigation (Vim keys, Arrows, Space, Esc, Enter)
- Package availability indicators (including AUR badges)
Planned
- Winget support (Windows)
- Homebrew support (macOS)
- Save custom presets / profiles
- Share configurations via URL
- More distros (Gentoo, Void, Alpine)
- PWA support for offline use
- Companion CLI tool
- Expand application catalog (200+)
- Dotfiles integration
📜 License
Licensed under the GPL-3.0 License
Free software — you can redistribute and modify it under the terms of the GNU General Public License.



