{"id":31934843,"url":"https://github.com/community-scripts/proxmoxve-local","last_synced_at":"2025-10-14T06:57:00.738Z","repository":{"id":317856627,"uuid":"1069104196","full_name":"community-scripts/ProxmoxVE-Local","owner":"community-scripts","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-13T13:30:04.000Z","size":1780,"stargazers_count":43,"open_issues_count":5,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-13T14:03:12.754Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/community-scripts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-03T12:10:45.000Z","updated_at":"2025-10-13T13:30:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"5286c966-77d4-468d-b564-8b96e0ea1610","html_url":"https://github.com/community-scripts/ProxmoxVE-Local","commit_stats":null,"previous_names":["community-scripts/proxmoxve-local"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/community-scripts/ProxmoxVE-Local","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/community-scripts%2FProxmoxVE-Local","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/community-scripts%2FProxmoxVE-Local/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/community-scripts%2FProxmoxVE-Local/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/community-scripts%2FProxmoxVE-Local/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/community-scripts","download_url":"https://codeload.github.com/community-scripts/ProxmoxVE-Local/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/community-scripts%2FProxmoxVE-Local/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018139,"owners_count":26086285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-14T06:56:57.148Z","updated_at":"2025-10-14T06:57:00.726Z","avatar_url":"https://github.com/community-scripts.png","language":"TypeScript","readme":"# PVE Scripts Local 🚀\n\nA modern web-based management interface for Proxmox VE (PVE) helper scripts. This tool provides a user-friendly way to discover, download, and execute community-sourced Proxmox scripts locally with real-time terminal output streaming. No more need for curl -\u003e bash calls, it all happens in your enviroment.\n\n\n\u003cimg width=\"1725\" height=\"1088\" alt=\"image\" src=\"https://github.com/user-attachments/assets/75323765-7375-4346-a41e-08d219275248\" /\u003e\n\n\n\n## 🎯 Deployment Options\n\nThis application can be deployed in multiple ways to suit different environments:\n\n- **📦 Debian LXC Container**: Deploy inside a Debian LXC container for better isolation\n- **🔧 Helper Script**: Use the automated helper script for easy setup\n\nAll deployment methods provide the same functionality and web interface.\n\n## 🌟 Features\n\n- **Web-based Interface**: Modern React/Next.js frontend with real-time terminal emulation\n- **Script Discovery**: Browse and search through community Proxmox scripts from GitHub\n- **One-Click Execution**: Run scripts directly from the web interface with live output\n- **Real-time Terminal**: Full terminal emulation with xterm.js for interactive script execution\n- **Script Management**: Download, update, and manage local script collections\n- **Security**: Sandboxed script execution with path validation and time limits\n- **Database Integration**: PostgreSQL backend for script metadata and execution history\n- **WebSocket Communication**: Real-time bidirectional communication for script execution\n- \n\n## 🏗️ Architecture\n\n### Frontend\n- **Next.js 15** with React 19\n- **TypeScript** for type safety\n- **Tailwind CSS** for styling\n- **xterm.js** for terminal emulation\n- **tRPC** for type-safe API communication\n\n### Backend\n- **Node.js** server with WebSocket support\n- **WebSocket Server** for real-time script execution\n- **Script Downloader Service** for GitHub integration\n\n### Scripts\n- **Core Functions**: Shared utilities and build functions\n- **Container Scripts**: Pre-configured LXC container setups\n- **Installation Scripts**: System setup and configuration tools\n\n### Database\n- **SQLite Database**: Local database stored at `data/settings.db`\n- **Server Management**: Stores Proxmox server configurations and credentials\n- **Automatic Setup**: Database and tables are created automatically on first run\n- **Data Persistence**: Settings persist across application restarts\n\n## 📋 Prerequisites\n\n### For All Deployment Methods\n- **Node.js** 22+ and npm\n- **Git** for cloning the repository\n- **Proxmox VE environment** (host or access to Proxmox cluster)\n- **SQLite** (included with Node.js better-sqlite3 package)\n\n\n### For Debian LXC Container Installation\n- **Debian LXC container** (Debian 11+ recommended)\n- **build-essentials**: `apt install build-essential`\n- Container with sufficient resources (2GB RAM, 4GB storage minimum)\n- Network access from container to Proxmox host\n- Optional: Privileged container for full Proxmox integration\n\n## 🚀 Installation\n\nChoose the installation method that best fits your environment:\n\n### Option 1: Debian LXC Container Installation\n\nFor better isolation and security, you can run PVE Scripts Local inside a Debian LXC container:\n\n#### Step 1: Create Debian LXC Container\n\n```bash\nbash -c \"$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/debian.sh)\"\n```\n\n#### Step 2: Install Dependencies in Container\n```bash\n# Enter the container\npct enter 100\n\n# Update and install dependencies\napt update \u0026\u0026 apt install -y build-essential git curl\n\n# Install Node.js 24.x\ncurl -fsSL https://deb.nodesource.com/setup_24.x | bash -\napt install -y nodejs\n```\n\n#### Step 3: Clone and Setup Application\n```bash\n# Clone the repository\ngit clone https://github.com/community-scripts/ProxmoxVE-Local.git /opt/PVESciptslocal\ncd PVESciptslocal\n\n# Install dependencies and build\nnpm install\ncp .env.example .env\nnpm run build\n\n# Create database directory\nmkdir -p data\nchmod 755 data\n```\n\n#### Step 4: Start the Application\n```bash\n# Start in production mode\nnpm start\n\n# Or create a systemd service (optional)\n# Create systemd service for easy management\n```\n\n**Access the application:**\n- 🌐 Container IP: `http://\u003cCONTAINER_IP\u003e:3000`\n- 🔧 Container management: `pct start 100`, `pct stop 100`, `pct status 100`\n\n### Option 2: Use the helper script\n\nThis creates the LXC and installs the APP for you.\n\n```bash\nbash -c \"$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/pve-scripts-local.sh)\"\n```\n\n## 🎯 Usage\n\n### 1. Access the Web Interface\n\nThe web interface is accessible regardless of your deployment method:\n\n- **LXC Container Installation**: `http://\u003cCONTAINER_IP\u003e:3000`\n- **Custom Installation**: `http://\u003cYOUR_IP\u003e:3000`\n\n### 2. Service Management\n\n#### For helper-script installations (systemd service):\n```bash\n# Start the service\nsystemctl start pvescriptslocal\n\n# Stop the service\nsystemctl stop pvescriptslocal\n\n# Check service status\nsystemctl status pvescriptslocal\n\n# Enable auto-start on boot\nsystemctl enable pvescriptslocal\n\n# View service logs\njournalctl -u pvescriptslocal -f\n```\n\n\n#### For manual installations:\n```bash\n# Start application\nnpm start\n\n# Development mode\nnpm run dev:server\n\n# Build for production\nnpm run build\n```\n\n### 3. Browse Available Scripts\n\n- The main page displays a grid of available Proxmox scripts\n- Use the search functionality to find specific scripts\n- Scripts are categorized by type (containers, installations, etc.)\n\n### 4. Download Scripts\n\n- Click on any script card to view details\n- Use the \"Download\" button to fetch scripts from the ProxmoxVE GitHub\n- Downloaded scripts are stored locally in the `scripts/` directory\n\n### 5. Execute Scripts\n\n- Click \"Run Script\" on any downloaded script\n- A terminal window will open with real-time output\n- Interact with the script through the web terminal\n- Use the close button to stop execution\n\n### 6. Script Management\n\n- View script execution history\n- Update scripts to latest versions\n- Manage local script collections\n\n### 7. Database Management\n\nThe application uses SQLite for storing server configurations:\n\n- **Database Location**: `data/settings.db`\n- **Automatic Creation**: Database and tables are created on first run\n- **Server Storage**: Proxmox server credentials and configurations\n- **Backup**: Copy `data/settings.db` to backup your server configurations\n- **Reset**: Delete `data/settings.db` to reset all server configurations\n\n## 📁 Project Structure\n\n```\nPVESciptslocal/\n├── scripts/                  # Script collection\n│   ├── core/                 # Core utility functions\n│   │   ├── build.func        # Build system functions\n│   │   ├── tools.func        # Tool installation functions\n│   │   └── create_lxc.sh     # LXC container creation\n│   ├── ct/                   # Container templates \n│   └── install/              # Installation scripts\n├── src/                      # Source code\n│   ├── app/                  # Next.js app directory\n│   │   ├── _components/      # React components\n│   │   └── page.tsx          # Main page\n│   └── server/               # Server-side code\n│       ├── database.js       # SQLite database service\n│       └── services/         # Business logic services\n├── data/                     # Database storage\n│   └── settings.db           # SQLite database file\n├── public/                   # Static assets\n├── server.js                 # Main server file\n└── package.json              # Dependencies and scripts\n```\n\n\n## 🚀 Development\n\n### Prerequisites for Development\n- Node.js 22+\n- Git\n\n### Development Commands\n\n```bash\n# Install dependencies\nnpm install\n```\n\n# Start development server\n```bash\nnpm run dev:server\n```\n\n### Project Structure for Developers\n\n- **Frontend**: React components in `src/app/_components/`\n- **Backend**: Server logic in `src/server/`\n- **API**: tRPC routers for type-safe API communication\n- **Scripts**: Bash scripts in `scripts/` directory\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n**Note**: This is beta software. Use with caution in production environments and always backup your Proxmox configuration before running scripts.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommunity-scripts%2Fproxmoxve-local","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommunity-scripts%2Fproxmoxve-local","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommunity-scripts%2Fproxmoxve-local/lists"}