{"id":25912914,"url":"https://github.com/preterag/pipecdn","last_synced_at":"2025-03-03T10:17:25.526Z","repository":{"id":280356722,"uuid":"941706802","full_name":"preterag/pipecdn","owner":"preterag","description":"A complete implementation of a Pipe PoP (Points of Presence) node for the Pipe Network decentralized CDN. This repository includes automated setup scripts, monitoring tools, and documentation for running a node that helps deliver Surrealine content globally while earning rewards. Configured with the Surrealine referral code for additional benefits.","archived":false,"fork":false,"pushed_at":"2025-03-03T04:09:28.000Z","size":4594,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-03T04:23:02.980Z","etag":null,"topics":["content-delivery","decentralized-cdn","node-operator","pipe-network","solana","streaming-video","surrealine"],"latest_commit_sha":null,"homepage":"https://www.surrealine.com","language":"Shell","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/preterag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-02T22:39:10.000Z","updated_at":"2025-03-03T04:09:31.000Z","dependencies_parsed_at":"2025-03-03T01:03:16.559Z","dependency_job_id":null,"html_url":"https://github.com/preterag/pipecdn","commit_stats":null,"previous_names":["e3o8o/pipecdn","preterag/pipecdn"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preterag%2Fpipecdn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preterag%2Fpipecdn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preterag%2Fpipecdn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preterag%2Fpipecdn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/preterag","download_url":"https://codeload.github.com/preterag/pipecdn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241644551,"owners_count":19996179,"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","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":["content-delivery","decentralized-cdn","node-operator","pipe-network","solana","streaming-video","surrealine"],"created_at":"2025-03-03T10:17:25.017Z","updated_at":"2025-03-03T10:17:25.513Z","avatar_url":"https://github.com/preterag.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Pipe PoP Node\n\nA complete implementation for setting up and managing a Pipe PoP node for the [Pipe Network](https://docs.pipe.network/devnet-2) decentralized CDN.\n\n## ✨ Features\n\n- **🔄 Complete Setup Framework**: One-command setup script for easy deployment\n- **🛠️ Production-Ready Implementation**: Systemd service integration for reliable operation\n- **🧰 Comprehensive Management Tools**: Scripts for monitoring, updating, and maintaining your node\n- **🌐 Global Command Access**: Manage your node from anywhere with the global `pop` command\n- **📚 Detailed Documentation**: Step-by-step guides and reference materials\n- **🔗 Surrealine Integration**: Pre-configured with Surrealine referral code\n- **⚡ Optimized Performance**: Tuned for efficient operation\n- **🔮 Future-Proof Design**: Easy updates and maintenance\n- **📦 Multi-Format Packaging**: Available as AppImage, DEB, and RPM packages for easy installation\n\n## 🚦 Quick Start\n\nThe easiest way to set up a Pipe PoP node is to use our one-command setup script:\n\n```bash\n# Download and run the setup script\ncurl -L https://raw.githubusercontent.com/preterag/pipecdn/master/easy_setup.sh -o easy_setup.sh\nchmod +x easy_setup.sh\nsudo ./easy_setup.sh\n```\n\nThis script will:\n1. Install all necessary dependencies\n2. Set up your Solana wallet (or use your existing one)\n3. Download and configure the Pipe PoP binary\n4. Set up a systemd service for reliable operation\n5. Configure automatic backups\n6. Apply the Surrealine referral code (optional)\n7. Install the global `pop` command for easy management from anywhere\n\nAfter installation, you can immediately use the global `pop` command from anywhere on your system:\n\n```bash\n# Check your node status\npop --status\n\n# View available commands\npop --help\n```\n\n## 📦 Installation Packages\n\nWe provide multiple installation formats to suit different Linux distributions:\n\n### Universal Linux Package (AppImage)\n\nAppImage runs on virtually any Linux distribution without installation:\n\n```bash\n# Download the AppImage\nwget https://github.com/preterag/pipecdn/releases/download/v1.0.0/pipe-pop-node-1.0.0-x86_64.AppImage\n\n# Make it executable\nchmod +x pipe-pop-node-1.0.0-x86_64.AppImage\n\n# Run it (requires sudo)\nsudo ./pipe-pop-node-1.0.0-x86_64.AppImage\n```\n\n### Debian/Ubuntu Package (DEB)\n\nFor Debian-based distributions (Ubuntu, Mint, etc.):\n\n```bash\n# Download the DEB package\nwget https://github.com/preterag/pipecdn/releases/download/v1.0.0/pipe-pop-node_1.0.0_amd64.deb\n\n# Install it\nsudo apt install ./pipe-pop-node_1.0.0_amd64.deb\n\n# Run the setup\nsudo pop --setup\n```\n\n### Red Hat/Fedora/CentOS Package (RPM)\n\nFor Red Hat-based distributions (Fedora, CentOS, RHEL, etc.):\n\n```bash\n# Download the RPM package\nwget https://github.com/preterag/pipecdn/releases/download/v1.0.0/pipe-pop-node-1.0.0-1.x86_64.rpm\n\n# Install it\nsudo dnf install ./pipe-pop-node-1.0.0-1.x86_64.rpm\n\n# Run the setup\nsudo pop --setup\n```\n\n### Source Package\n\nFor manual installation from source:\n\n```bash\n# Download the source package\nwget https://github.com/preterag/pipecdn/releases/download/v1.0.0/pipe-pop-node-1.0.0-source.tar.gz\n\n# Extract it\ntar -xzf pipe-pop-node-1.0.0-source.tar.gz\ncd pipe-pop-node-1.0.0\n\n# Run the setup script\nsudo ./easy_setup.sh\n```\n\n## 📋 Manual Setup Instructions\n\nIf you prefer to set up your node manually, follow these steps:\n\n1. Clone this repository:\n   ```bash\n   git clone https://github.com/preterag/pipecdn.git\n   cd pipecdn\n   ```\n\n2. Run the setup script:\n   ```bash\n   chmod +x setup.sh\n   sudo ./setup.sh\n   ```\n\n3. Follow the on-screen instructions to complete the setup.\n\n4. Install the global `pop` command:\n   ```bash\n   sudo ./install_global_pop.sh\n   ```\n\n## 🌐 About Pipe Network\n\nThe Pipe Network is a decentralized content delivery network (CDN) with several key features:\n\n- **🔄 Decentralized Architecture**: Distributed network of nodes for content delivery\n- **📍 Hyperlocal Focus**: Content delivered from the closest geographical point\n- **⛓️ Blockchain-Powered**: Built on Solana for transparent operations\n- **💰 Cost Efficiency**: Lower costs compared to traditional CDNs\n- **⚖️ Equitable Access**: Fair compensation for node operators\n- **💳 Flexible Payment Structure**: Pay-as-you-go model\n- **🔒 Enhanced Security**: Distributed architecture reduces single points of failure\n- **⭐ Reputation System**: Rewards reliable nodes\n- **👥 Referral System**: Earn rewards for referring new nodes\n- **🔄 Automatic Updates**: Easy to keep your node up-to-date\n- **🌎 Geographic Distribution**: Global network of nodes\n- **🔓 Permissionless Participation**: Anyone can run a node\n\n## 🔌 Port Configuration\n\nThe Pipe PoP node requires the following ports to be open:\n\n- **Port 80**: HTTP traffic\n- **Port 443**: HTTPS traffic\n- **Port 8003**: Pipe PoP node communication\n\nThese ports are automatically configured during installation, but you may need to ensure they are properly forwarded in your router if you want your node to be accessible from the internet. The node may not actively listen on all ports until it receives traffic, which is normal behavior.\n\nTo check if the ports are properly configured, run:\n\n```bash\npop --monitor\n```\n\n## 🎬 About Surrealine\n\n[Surrealine](https://www.surrealine.com) is a streaming platform that utilizes the Pipe Network for content delivery. By using our referral code during setup, you support the Surrealine platform.\n\n**Contact Surrealine**:\n- 📧 Email: [hello@surrealine.com](mailto:hello@surrealine.com)\n- 🐦 Twitter: [@surrealine](https://twitter.com/surrealine)\n\n## 🎮 Managing Your Node\n\nAfter setting up your Pipe PoP node, you can manage it using the global `pop` command from anywhere on your system:\n\n```bash\n# Check node status\npop --status\n\n# Monitor node performance\npop --monitor\n\n# Create a backup\npop --backup\n\n# Check for updates\npop --check-update\n\n# Update to the latest version (requires sudo)\nsudo pop --update\n\n# View service logs\npop --logs\n\n# Restart the service (requires sudo)\nsudo pop --restart\n\n# Generate a referral code\npop --gen-referral-route\n\n# Check points and rewards\npop --points\n```\n\n## 💻 System Requirements\n\n- **Minimum**: 2GB RAM, 20GB free disk space, stable internet connection\n- **Recommended**: 4GB+ RAM, 100GB+ free disk space, 100Mbps+ internet connection\n\n## 📁 Directory Structure\n\n- `bin/`: Contains the Pipe PoP binary\n- `cache/`: Stores cache data\n- `config/`: Holds configuration files\n- `docs/`: Contains detailed documentation\n- `logs/`: Contains log files\n- `backups/`: Stores backup archives\n- `*.sh`: Various utility scripts for management\n\n## 📚 Documentation\n\nFor more detailed information, please refer to the following documentation:\n\n- [📑 Documentation Index](docs/README.md): Overview of all documentation\n- [🔧 Setup Guide](docs/SETUP_GUIDE.md): Detailed setup instructions\n- [🛠️ Maintenance Guide](docs/MAINTENANCE.md): Maintenance and operation guide\n- [❓ Troubleshooting Guide](docs/TROUBLESHOOTING.md): Common issues and solutions\n- [👥 Referral Guide](docs/REFERRAL_GUIDE.md): Information about the referral system\n- [⭐ Reputation System](docs/REPUTATION_SYSTEM.md): Explanation of the reputation system\n- [💻 Development Information](docs/DEVELOPMENT.md): Development details and implementation\n- [🌐 Global Command Guide](docs/GLOBAL_COMMAND.md): Guide to using the global `pop` command\n- [📝 Articles](docs/articles/): Detailed articles about our implementation journey\n\n## 🛠️ Maintenance\n\nRegular maintenance tasks:\n\n1. **💾 Backup**: Regularly backup your node_info.json file with `pop --backup`\n2. **📊 Monitor**: Check your node status with `pop --status`\n3. **🔄 Update**: Keep your Pipe PoP binary updated with `sudo pop --update`\n\n## ⚠️ Important Notes\n\n- A Solana wallet is required to receive rewards\n- Sufficient disk space is needed for cache data\n- Regular backups of node_info.json are essential\n\n## 🌟 Why Decentralized CDNs Matter\n\nTraditional CDNs face challenges with centralization, high costs, and limited geographic coverage. The Pipe Network's decentralized approach addresses these challenges by:\n\n- Democratizing content delivery infrastructure\n- Enabling anyone to participate in the network\n- Creating a more resilient and distributed system\n\n## 🔜 Future Directions\n\nWe're continuously improving the Pipe PoP node implementation. Future enhancements include:\n\n1. **🖥️ Web-Based Dashboard**: A user-friendly web interface for monitoring and managing nodes\n2. **📊 Enhanced Analytics**: More detailed performance analytics for node operators\n3. **⚙️ Automated Optimization**: Intelligent optimization of node configuration\n4. **📱 Mobile Notifications**: Alerts and notifications for important node events\n5. **🔄 Multi-Node Management**: Tools for managing multiple nodes from a single interface\n6. **💻 Cross-Platform Support**: Extending support beyond Linux to Windows and macOS systems\n\n## Scripts and Tools\n\nThe Pipe PoP node comes with several scripts to help you set up and manage your node:\n\n| Script | Version | Description |\n|--------|---------|-------------|\n| `easy_setup.sh` | v1.1.0 | Interactive setup script with guided installation |\n| `setup.sh` | v1.0.0 | Non-interactive setup script for automated deployments |\n| `fix_ports.sh` | v1.2.0 | Comprehensive port configuration and troubleshooting |\n| `backup.sh` | v1.0.0 | Creates backups of important node data |\n| `install_global_pop.sh` | v1.0.0 | Installs the global `pop` command for easy management |\n| `monitor.sh` | v1.0.0 | Monitors the node's performance and status |\n| `check_updates.sh` | v1.0.0 | Checks for updates to the Pipe PoP node |\n| `update_binary.sh` | v1.0.0 | Updates the Pipe PoP binary to the latest version |\n| `create_packages.sh` | v1.0.0 | Creates multi-format installation packages (AppImage, DEB, RPM) |\n\n\u003e Note: Some scripts may be deprecated in favor of more comprehensive alternatives. Always use the recommended script for each task.\n\n## Contributing\n\n👋 **Welcome Contributors!** We're excited that you're interested in improving the Pipe PoP node implementation. Your contributions help make this project better for everyone in the community. Whether you're fixing bugs, adding features, or improving documentation, your help is greatly appreciated!\n\nWe welcome contributions from the community! If you'd like to contribute to the Pipe PoP node implementation, please follow these guidelines:\n\n### How to Contribute\n\n1. **Fork the Repository**: Create your own fork of the repository on GitHub.\n2. **Create a Branch**: Create a branch for your feature or bugfix.\n3. **Make Changes**: Implement your changes, following the coding style and guidelines.\n4. **Add Tests**: If applicable, add tests for your changes.\n5. **Update Documentation**: Update the documentation to reflect your changes.\n6. **Submit a Pull Request**: Submit a pull request to the main repository.\n\n### Coding Guidelines\n\n- Follow the existing coding style and conventions.\n- Add appropriate comments to explain complex logic.\n- Include version information in all scripts (e.g., `# Version: 1.0.0`).\n- Update the version number when making significant changes.\n- Add your name to the contributors section of the script.\n\n### Versioning\n\nWe use semantic versioning for all scripts:\n\n- **MAJOR**: Incompatible API changes\n- **MINOR**: Added functionality in a backward-compatible manner\n- **PATCH**: Backward-compatible bug fixes\n\n### Getting Help\n\nIf you need help with contributing, please open an issue on GitHub or contact the Preterag team.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpreterag%2Fpipecdn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpreterag%2Fpipecdn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpreterag%2Fpipecdn/lists"}