Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NixInstall - Windows App Installer

Automate Windows app installation. Select apps, download a PowerShell script, and install everything with one command.

Live at: NixInstall.com

Features

  • 🎯 30+ popular Windows apps pre-configured
  • πŸ“Š Browse apps by category
  • πŸ” Search functionality
  • πŸ’Ύ Download custom PowerShell installation scripts
  • 🎨 Clean, modern UI
  • 🌐 Browser-compatible
  • πŸ”’ Admin privilege checking in generated scripts

Project Structure

installer-mvp/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ server.js          # Express server
β”‚   β”œβ”€β”€ apps.json          # App configurations
β”‚   └── package.json
└── frontend/
    β”œβ”€β”€ public/
    β”‚   └── index.html     # HTML template
    β”œβ”€β”€ src/
    β”‚   β”œβ”€β”€ App.js         # Main React component
    β”‚   β”œβ”€β”€ App.css        # Styling
    β”‚   β”œβ”€β”€ index.js       # React entry point
    β”‚   └── index.css      # Base CSS
    └── package.json

Local Development

Prerequisites

  • Node.js (v14+)
  • npm or yarn
  • Windows (for testing installation scripts)

Setup Backend

cd backend
npm install
npm start

The server will start on http://localhost:5000

Setup Frontend

In a new terminal:

cd frontend
npm install
npm start

The React app will open on http://localhost:3000

Production Deployment

Build Frontend

cd frontend
npm run build

This creates an optimized production build in the frontend/build directory.

Deploy to Cloud (Examples)

Option 1: Heroku

# Install Heroku CLI and login
heroku login

# Create a new app
heroku create your-app-name

# Deploy
git push heroku main

Update your Procfile:

web: cd backend && npm start

Option 2: Vercel (Frontend) + Any Node Host (Backend)

Frontend to Vercel:

npm install -g vercel
cd frontend
vercel

Backend to Railway, Render, or similar:

  • Push backend folder to Git
  • Connect to your hosting service
  • Set environment variables (if needed)

Option 3: Docker Deployment

Create a Dockerfile in the root directory:

FROM node:18-alpine

WORKDIR /app

# Install backend dependencies
COPY backend/package*.json ./backend/
RUN cd backend && npm ci --only=production

# Build frontend
COPY frontend/package*.json ./frontend/
COPY frontend ./frontend
RUN cd frontend && npm ci && npm run build

# Copy backend
COPY backend ./backend

EXPOSE 5000
CMD ["node", "backend/server.js"]

Build and run:

docker build -t app-installer .
docker run -p 5000:5000 app-installer

Environment Variables

For production, set:

NODE_ENV=production
PORT=5000

Configuration

Adding More Apps

Edit backend/apps.json:

{
  "id": "app-id",
  "name": "App Name",
  "category": "Category Name",
  "url": "https://download-url.com/installer.exe",
  "type": "exe",
  "args": "/silent /install"
}

Supported types:

  • exe - Windows executable
  • msi - Windows installer
  • zip - ZIP archive (will be extracted)

Generated PowerShell Script Features

The generated installation script:

  • βœ… Checks for administrator privileges
  • βœ… Creates a timestamped download directory
  • βœ… Downloads all selected apps
  • βœ… Executes installers with appropriate arguments
  • βœ… Provides detailed progress information
  • βœ… Handles errors gracefully
  • βœ… Preserves downloaded files for reference

Running the Script

# Right-click PowerShell β†’ "Run as Administrator"
# Navigate to the script location
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
.\install-apps.ps1

Browser Compatibility

  • Chrome/Chromium (v90+)
  • Firefox (v88+)
  • Safari (v14+)
  • Edge (v90+)

API Endpoints

GET /api/apps

Returns all available apps:

[
  {
    "id": "chrome",
    "name": "Google Chrome",
    "category": "Browser",
    "url": "https://...",
    "type": "exe",
    "args": "..."
  }
]

GET /api/categories

Returns array of unique categories:

["Browser", "Developer", "Utilities", ...]

POST /api/generate-script

Generates and downloads a PowerShell script.

Request:

{
  "appIds": ["chrome", "vscode", "git"]
}

Response: PowerShell script file (.ps1)

Roadmap

Phase 2:

  • User accounts / saved profiles
  • Installation history tracking
  • Custom app submissions
  • Installer verification (checksums)
  • Speed optimization with parallel downloads
  • Progress webhooks for monitoring

Phase 3:

  • Admin panel for managing apps
  • Analytics dashboard
  • Uninstall scripts
  • System configuration management
  • License compliance checking

Security Considerations

  • Scripts are generated client-side initially (can be moved to backend)
  • Downloaded files should be verified with checksums
  • Admin privileges required for script execution (built in)
  • URLs are publicly visible in the script (consider obfuscation for sensitive tools)

Troubleshooting

Script won't run

# Check execution policy
Get-ExecutionPolicy
# Temporarily bypass
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

Installation fails

  • Ensure running as Administrator
  • Check Windows Defender/antivirus isn't blocking downloads
  • Verify internet connection
  • Check individual app URLs are still active

License

Open source - feel free to modify and deploy

Support

For issues or questions, open a GitHub issue or contact the maintainers.

About

NixInstall is the fastest way to install and manage software on a new PC. Select your apps, click install, and let NixInstall handle the rest.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages