Podcast-server/README.md

92 lines
3.8 KiB
Markdown

<<<<<<< HEAD
# Podcast Server 🚀
A lightweight, professional-grade podcast hosting and management platform designed for churches and small organizations. Built with PHP 8 and MySQL, this system provides a seamless way to host audio content, track analytics, and engage listeners via push notifications.
Developed and tested on **Ubuntu 20.04** using the standard **LAMP** stack.
## ✨ Features
- **Episode Management**: Easy upload of audio files and cover art.
- **Admin Dashboard**: Comprehensive control panel for managing episodes, settings, and users.
- **Role-Based Access (RBAC)**: Supports 'Administrator' and 'Editor' roles for secure collaboration.
- **Real-time Analytics**: Track episode plays and listening duration.
- **Push Notifications**: Integrated subscription system for listener engagement.
- **RSS Feed Generation**: Fully compatible feed for platforms like Spotify, Apple Podcasts, etc.
- **PWA Ready**: Offline capabilities and "Add to Home Screen" support via Service Workers.
- **Automated Setup**: Built-in installation wizard for easy deployment.
- **Backup & Restore**: Simple system utilities for data safety using `tar`.
## 🛠️ Requirements
The software has been tested and verified on the following environment:
- **OS**: Ubuntu 20.04 (LTS)
- **Web Server**: Apache2
- **PHP**: 8.0 or higher
- **Database**: MySQL 8.0+ or MariaDB
- **PHP Extensions**: `pdo_mysql`, `mbstring`, `gd`, `curl`
- **System Utilities**: `tar` (required for backup/restore features)
## 🚀 Installation
### 1. Clone the Repository
Clone this project into your web root directory (e.g., `/var/www/html/podcast`):
```bash
cd /var/www/html
sudo git clone https://git.linology.tech/michael/Podcast-server podcast
```
### 2. Set Permissions
The web server needs write access to specific directories for uploads and configuration:
```bash
sudo chown -R www-data:www-data /var/www/html/podcast
sudo chmod -R 755 /var/www/html/podcast
```
### 3. PHP Configuration (Recommended)
Podcast audio files can be large. Ensure your `php.ini` (usually `/etc/php/8.0/apache2/php.ini`) allows large uploads:
```ini
upload_max_filesize = 100M
post_max_size = 110M
memory_limit = 256M
```
After editing, restart Apache:
```bash
sudo systemctl restart apache2
```
### 4. Run the Setup Wizard
Open your browser and navigate to:
`http://your-server-ip/podcast/setup.php`
The setup script will:
- Verify folder permissions and PHP settings.
- Create the MySQL database and tables automatically.
- Initialize the first Administrator account.
- Generate your `includes/config.php` file.
## 📂 Project Structure
- `/admin`: Administrative interface and management scripts.
- `/assets`: CSS, JS, and default assets. Uploaded media is stored here.
- `/includes`: Core logic, database connection, and utility functions.
- `/sql`: Database schema files.
- `feed.php`: Automatically generated RSS feed for podcast players.
- `setup.php`: The automated installation script.
## 🔒 Security & Git
- **Configuration**: The `includes/config.php` file is excluded from Git via `.gitignore` to protect your database credentials.
- **Uploads**: Audio and image uploads are excluded from Git to keep the repository lightweight.
- **Setup**: After a successful installation, it is recommended to delete `setup.php` or move it outside the web root.
## 🤝 Contributing
Feel free to fork this project and submit pull requests to the [Linology Git](https://git.linology.tech/michael/Podcast-server) instance.
## 📄 License
This project is licensed under the MIT License.
=======
# Podcast-server
A lightweight, professional-grade podcast hosting and management platform designed for churches and small organizations. Built with PHP 8 and MySQL, this system provides a seamless way to host audio content, track analytics, and engage listeners via push notifications.
>>>>>>> de0edf94110f2fe94fafd5cb8cf258079f336584