https://github.com/red5pro/proxmox
Proxmox LXC Installation
https://github.com/red5pro/proxmox
Last synced: about 2 months ago
JSON representation
Proxmox LXC Installation
- Host: GitHub
- URL: https://github.com/red5pro/proxmox
- Owner: red5pro
- License: mit
- Created: 2025-10-17T18:34:10.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-10-17T23:46:52.000Z (9 months ago)
- Last Synced: 2025-12-26T08:08:13.796Z (7 months ago)
- Language: Shell
- Size: 50.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Red5 Pro Server - Proxmox LXC Helper Scripts
Automated installation scripts for deploying Red5 Pro Server on Proxmox Virtual Environment using LXC containers.
## Overview
This repository provides Proxmox helper scripts that automate the deployment of Red5 Pro Server in LXC containers. Red5 Pro is a real-time streaming server supporting WebRTC, RTMP, RTSP, HLS, and SRT protocols for ultra-low latency streaming applications.
## Features
- **Automated LXC Container Creation**: Pre-configured with optimal resources for Red5 Pro
- **Java 21 Installation**: Automatically installs required Java runtime
- **License Configuration**: Interactive prompt for Red5 Pro license key
- **Flexible Download Options**: Support for custom download URLs
- **Optional SSL/TLS**: Let's Encrypt certificate integration with automatic renewal
- **Systemd Service**: Red5 Pro configured as a system service with auto-start
- **Firewall Configuration**: Automatic UFW rules for all required ports
- **Update Support**: Built-in update mechanism for future releases
## Prerequisites
### Proxmox Environment
- Proxmox VE 8.x or higher
- Root access to Proxmox host
- Internet connectivity for package downloads
### Red5 Pro Requirements
- Valid Red5 Pro license key from https://account.red5.net/
- Red5 Pro server zip file hosted at an accessible URL
### Optional SSL Requirements
- Domain name pointing to your server's IP address
- Ports 80 and 443 accessible from the internet (for Let's Encrypt validation)
- Valid email address for certificate notifications
## Installation
### Quick Start
Run the following command on your Proxmox host with the required parameters:
```bash
bash <(wget -qLO - https://raw.githubusercontent.com/red5pro/proxmox/main/ct/red5install.sh) \
--license "your-license-key" \
--download-url "https://your-server.com/path/to/red5pro-server.zip"
```
### Command-Line Parameters
**Required:**
- `--license KEY` - Your Red5 Pro license key (obtain from https://account.red5.net/)
- `--download-url URL` - Direct URL to download the Red5 Pro server zip file
**Optional:**
- `--ssl-domain DOMAIN` - Your domain name (e.g., red5.example.com)
- `--ssl-email EMAIL` - Email address for Let's Encrypt notifications
- `--verbose` - Enable verbose output for debugging
- `--help` - Show help message
### Installation Examples
**Basic Installation (no SSL):**
```bash
bash <(wget -qLO - https://raw.githubusercontent.com/red5pro/proxmox/main/ct/red5install.sh) \
--license "your-license-key-here" \
--download-url "https://your-server.com/path/to/red5pro-server.zip"
```
**Installation with SSL:**
```bash
bash <(wget -qLO - https://raw.githubusercontent.com/red5pro/proxmox/main/ct/red5install.sh) \
--license "ABC123-DEF456-GHI789" \
--download-url "https://files.example.com/red5pro-server-11.0.0.zip" \
--ssl-domain "red5.example.com" \
--ssl-email "admin@example.com"
```
**Installation with Verbose Output (for debugging):**
```bash
bash <(wget -qLO - https://raw.githubusercontent.com/red5pro/proxmox/main/ct/red5install.sh) \
--license "your-license-key" \
--download-url "https://your-server.com/path/to/red5pro-server.zip" \
--verbose
```
### Container Configuration
During installation, you can choose:
1. **Default Settings** - Automated installation with optimal defaults
2. **Advanced Settings** - Customize CPU, RAM, disk, network, etc.
3. **Config File** - Use a previously saved configuration
## Default Container Specifications
- **CPU**: 4 cores
- **RAM**: 4096 MB (4 GB)
- **Disk**: 4 GB
- **OS**: Ubuntu 24.04
- **Type**: Privileged container
- **Category**: Media
## Network Ports
The following ports are configured and opened (if UFW is active):
| Port Range | Protocol | Purpose |
|-----------------|----------|-------------------|
| 5080 | TCP | HTTP |
| 443 | TCP | HTTPS (if SSL) |
| 1935 | TCP | RTMP |
| 8554 | TCP | RTSP |
| 8443 | TCP | RTMPS (if SSL) |
| 40000-65535 | UDP | WebRTC |
## Post-Installation
### Accessing Red5 Pro
After successful installation:
**Without SSL:**
- HTTP: `http://:5080`
**With SSL:**
- HTTP: `http://:5080`
- HTTPS: `https://`
- RTMPS: `rtmps://:8443`
### Service Management
Red5 Pro runs as a systemd service:
```bash
# Check service status
systemctl status red5pro
# Start service
systemctl start red5pro
# Stop service
systemctl stop red5pro
# Restart service
systemctl restart red5pro
# View logs
journalctl -u red5pro -f
```
### Red5 Pro Logs
Application logs are located at:
- `/usr/local/red5pro/log/red5.log`
## SSL Certificate Management
### Automatic Renewal
If SSL is configured during installation:
- Certificates automatically renew every 90 days via certbot
- Post-renewal hook regenerates Java keystores and truststores
- Red5 Pro service automatically restarts after renewal
### Manual Certificate Renewal
To manually renew certificates:
```bash
certbot renew
/etc/letsencrypt/renewal-hooks/post/red5pro-renew.sh
```
### SSL Files Location
Certificate files are stored at:
- `/etc/letsencrypt/live//`
- `fullchain.pem` - Full certificate chain
- `privkey.pem` - Private key
- `keystore.jks` - Java keystore
- `truststore.jks` - Java truststore
## Configuration
### Red5 Pro Configuration Files
- **Main Config**: `/usr/local/red5pro/conf/red5-core.properties`
- **Service File**: `/lib/systemd/system/red5pro.service`
- **License File**: `/usr/local/red5pro/LICENSE.KEY`
### Modifying SSL Settings
SSL configuration is appended to `red5-core.properties`:
```properties
# HTTPS Configuration
https.port=443
https.keystorepass=changeit
https.keystorefile=/etc/letsencrypt/live//keystore.jks
https.truststorepass=changeit
https.truststorefile=/etc/letsencrypt/live//truststore.jks
# RTMPS Configuration
rtmps.port=8443
rtmps.keystorepass=changeit
rtmps.keystorefile=/etc/letsencrypt/live//keystore.jks
rtmps.truststorepass=changeit
rtmps.truststorefile=/etc/letsencrypt/live//truststore.jks
```
## Updating Red5 Pro
The container script includes an update function. To update Red5 Pro:
```bash
# From inside the container
/usr/local/bin/update
```
Note: The update mechanism requires GitHub releases to be published at `red5pro/proxmox` with assets matching the pattern `red5pro-server-*-release.zip`.
## Troubleshooting
### Installation Issues
**Certificate Generation Fails:**
- Verify domain DNS points to server IP
- Ensure ports 80 and 443 are accessible
- Check firewall rules on both Proxmox host and router
- Review certbot logs: `journalctl -u certbot`
**Service Won't Start:**
- Check Java installation: `java -version`
- Verify license key: `cat /usr/local/red5pro/LICENSE.KEY`
- Review service status: `systemctl status red5pro`
- Check logs: `tail -f /usr/local/red5pro/log/red5.log`
**Download Fails:**
- Verify custom URL is accessible
- Check network connectivity from container
- Ensure sufficient disk space
### Common Issues
**Port Already in Use:**
```bash
# Check what's using the port
ss -tulpn | grep :5080
```
**Permission Issues:**
```bash
# Verify Red5 Pro directory ownership
ls -la /usr/local/red5pro
```
**Java Heap Size:**
Edit `/lib/systemd/system/red5pro.service` and modify memory settings if needed.
## File Structure
```
proxmox/
├── ct/
│ └── red5install.sh # Container creation script
├── install/
│ └── red5-install.sh # Installation script (runs inside container)
├── frontend/
│ └── public/
│ └── json/
│ └── red5pro.json # Metadata for helper scripts website
└── README.md # This file
```
## Repository Structure
This repository follows the Proxmox VE Helper-Scripts standard structure:
- **ct/**: Container creation scripts
- **install/**: Application installation scripts
- **frontend/public/json/**: Metadata files for web interface
## Development
### Testing Changes
When developing or testing modifications:
1. Fork this repository
2. Update script URLs to point to your fork
3. Test in a non-production Proxmox environment
4. Submit pull requests with changes
### Contributing
Contributions are welcome! Please ensure:
- Scripts follow existing coding standards
- Changes are tested on Proxmox VE 8.x+
- Documentation is updated accordingly
## Resources
### Red5 Pro Documentation
- Official Docs: https://www.red5.net/docs/
- SSL Configuration: https://www.red5.net/docs/installation/ssl/lets-encrypt/
- Account Portal: https://account.red5.net/
### Proxmox Resources
- Proxmox VE: https://www.proxmox.com/
- Community Scripts: https://community-scripts.github.io/ProxmoxVE/
### Let's Encrypt
- Certbot: https://certbot.eff.org/
- Documentation: https://letsencrypt.org/docs/
## License
MIT License - Copyright (c) 2025 mondain
See LICENSE file for details.
## Author
Paul Gregoire (mondain)
## Support
For issues related to:
- **These scripts**: Open an issue at https://github.com/red5pro/proxmox/issues
- **Red5 Pro Server**: Contact Red5 Pro support or visit https://www.red5.net/
- **Proxmox VE**: Visit https://forum.proxmox.com/
## Security Notes
- Default keystore/truststore password is `changeit` (Red5 Pro standard)
- License keys are stored in plain text at `/usr/local/red5pro/LICENSE.KEY`
- Ensure proper firewall rules to restrict access to management ports
- Keep Red5 Pro updated with latest security patches
- Use SSL/TLS for production deployments
## Disclaimer
This is an unofficial helper script for Red5 Pro Server. Red5 Pro is a commercial product requiring a valid license. Always review scripts before execution and test in non-production environments first.