TuxMate is a simple web tool that generates install scripts for any Linux distro. Pick your apps, copy the command, done.
Fresh install? New machine? Can't remember every package name? We've all been there.
- Ubuntu / Debian (apt)
- Arch Linux (pacman + AUR)
- Fedora (dnf)
- openSUSE (zypper)
- Nix (nix-env)
- Flatpak
- Snap
- Homebrew (macOS + Linux)
180+ applications across 15 categories: browsers, communication, dev tools, terminals, media, creative software, gaming, office, VPN/network, security, and more.
- Detects already-installed packages
- Handles AUR packages automatically on Arch
- Homebrew formula/cask separation for macOS
- Parallel installation for Flatpak
- Network retry with exponential backoff
- Progress bars with ETA
- Colored output and summary reports
src/
βββ app/ # Next.js app router
β βββ page.tsx # Main page component
β βββ layout.tsx # Root layout with meta tags
β βββ globals.css # Tailwind styles
β βββ error.tsx # Error boundary
β βββ favicon.ico # Site favicon
βββ components/
β βββ app/ # App cards & categories
β βββ command/ # Command footer & AUR settings
β βββ common/ # Tooltips, loading states
β βββ distro/ # Distribution selector
β βββ header/ # Header links & info
β βββ search/ # Search overlay
β βββ ui/ # Theme toggle
βββ hooks/ # React hooks
β βββ useLinuxInit.ts # Main app state management
β βββ useKeyboardNavigation.ts
β βββ useTheme.tsx
β βββ useTooltip.ts
β βββ useDelayedTooltip.ts
βββ lib/
β βββ data.ts # Apps, distros, icons
β βββ aur.ts # AUR package detection
β βββ analytics.ts # Umami tracking
β βββ utils.ts # Utility functions
β βββ generateInstallScript.ts
β βββ scripts/ # Per-distro script generators
βββ __tests__/ # Vitest unit tests
# Build the Docker image
docker build -t tuxmate:latest .
# Run the container
docker run -p 3000:3000 tuxmate:latestPre-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# Start the application
docker-compose up -d
# View logs
docker-compose logs -f
# Stop the application
docker-compose downThe Docker container exposes port 3000 by default. You can customize the port mapping:
docker run -p 8080:3000 tuxmate:latestThe 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- Next.js 16 (App Router)
- React 19
- TypeScript
- Tailwind CSS 4
- Framer Motion
- GSAP
- Vitest (testing)
- Lucide React (icons)
| Key | Action |
|---|---|
β β β β / h j k l |
Navigate apps |
Space |
Toggle app selection |
Esc |
Clear focus |
/ |
Focus search |
y |
Copy command |
d |
Download script |
t |
Toggle theme |
c |
Clear all selections |
Tab |
Toggle preview drawer |
See CONTRIBUTING.md for contribution guidelines.
- Multi-distro support (Ubuntu, Debian, Arch, Fedora, openSUSE)
- Nix, Flatpak & Snap universal package support
- 180+ 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)
- Homebrew support (macOS + Linux)
- PWA support for offline use
- Winget support (Windows)
- Custom presets / profiles
- Share configurations via URL
- More distros (FreeBSD, Gentoo, Void, Alpine)
- Nix configuration.nix download
- i18n / Multi-language support
- Companion CLI tool
- Expand application catalog (200+)
- Dotfiles integration
- LinuxToys β User-friendly collection of tools for Linux with an intuitive interface
- Nixite β Generates bash scripts to install Linux software, inspired by Ninite
- tuxmate-cli β CLI companion for tuxmate, uses tuxmate's package database
No tips jar here. Iβm happy just knowing youβre using Linux.
If you want to earn some real life karma points, consider donating to the following organizations:
Comments, suggestions, bug reports and contributions are welcome.
Licensed under the GPL-3.0 License
Free software β you can redistribute and modify it under the terms of the GNU General Public License.



