diff --git a/INSTALL b/INSTALL
index 6a0ca605..53e2882e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -114,4 +114,4 @@ The next steps assume that you will be using the default html folder provided by
17. Select "Begin Installation"
### ALL DONE!
-Enjoy your installation of Podcast Generator! Consider spreading the word about the software or [contribute back to the project](https://github.com/PodcastGenerator/PodcastGenerator). If your self-hosted instance gets to be too much to handle or if the installation/maintainance/security seems too intimidating, please consider using our [hosting partner](https://rss.com/blog/how-to-create-an-rss-feed-for-a-podcast/). Free accounts are availble for students and Non-profits and other users start with a free trial and have the option to upgrade to a full featured hosted plan starting at $12.99/month (USD).
+Enjoy your installation of Podcast Generator! Consider spreading the word about the software or [contribute back to the project](https://github.com/PodcastGenerator/PodcastGenerator). If your self-hosted instance gets to be too much to handle or if the installation/maintainance/security seems too intimidating, please consider using our [hosting partner](https://rss.com/blog/how-to-create-an-rss-feed-for-a-podcast/). Free accounts are availble for students and Non-profits and other users start with a free trial and have the option to upgrade to a full featured hosted plan starting at $12.99/month (USD).
diff --git a/INSTALL.nginx b/INSTALL.nginx
new file mode 100644
index 00000000..2c217ed1
--- /dev/null
+++ b/INSTALL.nginx
@@ -0,0 +1,146 @@
+INSTALL
+====================
+Install from scratch - Basic
+====================
+
+1. Download the latest version of Podcast Generator;
+2. Unzip the zip package containing the script;
+3. Upload the resulting files and folders to your web server;
+4. Point your web browser to the URL corresponding to the location where Podcast Generator files were uploaded (e.g. http://mypodcastsite.com/podcastgen). You will be redirected automatically to the 3-step setup wizard;
+5. Log-in into Podcast Generator administration area and start publishing your podcast.
+
+
+Upgrade from 2.7
+==========
+MAKE A BACKUP OF YOUR ENTIRE PODCAST GENERATOR FOLDER BEFORE UPGRADING!!!!!
+
+1. Download the latest version
+2. Upload it to your web server, allow to overwrite files.
+3. Point your web browser to the URL corresponding to the location where Podcast Generator files were uploaded (e.g. http://mypodcastsite.com/podcastgen). You will be redirected to a password converter;
+4. Enjoy!
+
+INSTALL
+====================
+Install from scratch - Detailed
+====================
+*******
+Install Podcast Generator on Ubuntu 20.04
+Please read this through entirely before using.
+[//]: https://github.com/PodcastGenerator/PodcastGenerator/issues/272
+*******
+This guide assumes there is a fresh install of Ubuntu 20.04.3 and that the user initially logs into the server as the root user. The webserver used is nginx.
+
+### Access Your Server
+1. Open your local machine or login via ssh:
+
+2. Create a system user:
+
+`adduser replace_with_your_username`
+
+3. Add the new user to the sudo group:
+
+`usermod -aG sudo replace_with_your_username`
+
+4. Login with user:
+
+`su replace_with_your_username`
+
+5. Add port 22 and 80 to the firewall rules and enable:
+
+`sudo ufw allow 80`
+
+`sudo ufw allow 443
+
+`sudo ufw allow 22`
+
+`sudo ufw enable`
+
+`sudo ufw status`
+
+All active rules should then be shown.
+
+6. Update system:
+
+`sudo apt update && sudo apt upgrade`
+
+7. Install PHP, unzip and nginx:
+
+`sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath unzip nginx`
+
+8. Confirm PHP version and configure PHP for file uploads:
+
+`php --version`
+
+Output should look like:
+
+```PHP 7.2.24-0ubuntu0.18.04.6 (cli) (built: May 26 2020 13:09:11) ( NTS )
+Copyright (c) 1997-2018 The PHP Group
+Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
+ with Zend OPcache v7.2.24-0ubuntu0.18.04.6, Copyright (c) 1999-2018, by Zend Technologies)
+```
+
+Configure your PHP install so file uploads are allowed and working
+
+`sudo nano /etc/php/(version)/fpm/php.ini`
+
+Change the according lines to reflect
+`upload_max_filesize = 512M` and `post_max_size = 512M`
+
+### Install Podcast Generator
+The next steps assume that you will be using the default html folder provided by the apache install and no other virtual hosts are present.
+
+9. Navigate to the folder where PodcastGenerator will be installed:
+
+`cd /var/www/html`
+
+10. Remove index.html:
+
+`sudo rm -rf index*.html`
+
+11. Download the latest release: (replace url with the current release)
+
+`sudo wget https://github.com/albertobeta/PodcastGenerator/archive/v3.1.1.zip`
+
+12. Unzip PodcastGenerator: Replace with current release version
+
+`sudo unzip v3.1.1.zip`
+
+13. Move PodcastGenerator from the unzipped directory PodcastGenerator-3.1.1 to var/www/html:
+
+`sudo mv /var/www/html/PodcastGenerator-3.1.1/PodcastGenerator/* /var/www/html`
+
+14. Cleanup by removing unneccessary files:
+`sudo rm -rf PodcastGenerator-3.1.1/ v3.1.1.zip`
+
+15. Change ownership of the installation files: (NOTE, this is for Ubuntu. If you are using BSD,RHEL,CENTOS,etc. Ownership may be different on different opperating systems.)
+
+`sudo chown -R www-data:www-data /var/www/html`
+
+16. Copy the nginx configuration file to the configuration directory and enable it:
+
+`sudo mv /var/www/html/podcastgenerator-nginx.conf /etc/nginx/sites-available/podcastgenerator-nginx.conf`
+
+You may need to edit the configuration file to fit your environment. The file contains comments to help you through the process. `sudo nano /etc/nginx/sites-available/podcastgenerator-nginx.conf`
+
+Then restart nginx to apply your changes
+
+`sudo systemctl restart nginx`
+
+Create the file link to enable the webserver configuration
+
+`sudo ln -s /etc/nginx/sites-enabled/podcastgenerator-nginx.conf /etc/nginx/sites-available/podcastgenerator-nginx.conf`
+
+17. Optional: Install certbot and obtain a Let's Encrypt certificate:
+
+`sudo apt install certbot python3-certbot-nginx`
+
+`sudo certbot --nginx -d domain.of.your.podcastgenerator`
+
+18. Navigate to the IP, domain or local host address of the machine in a web browser:
+
+`ip.address.in.browser` or `domain.of.your.podcastgenerator`
+
+19. Select "Begin Installation"
+
+### ALL DONE!
+Enjoy your installation of Podcast Generator! Consider spreading the word about the software or [contribute back to the project](https://github.com/PodcastGenerator/PodcastGenerator). If your self-hosted instance gets to be too much to handle or if the installation/maintainance/security seems too intimidating, please consider using our [hosting partner](https://rss.com/blog/how-to-create-an-rss-feed-for-a-podcast/). Free accounts are availble for students and Non-profits and other users start with a free trial and have the option to upgrade to a full featured hosted plan starting at $12.99/month (USD).
diff --git a/PodcastGenerator/admin/episodes_edit.php b/PodcastGenerator/admin/episodes_edit.php
index 90415a91..b32c5b59 100644
--- a/PodcastGenerator/admin/episodes_edit.php
+++ b/PodcastGenerator/admin/episodes_edit.php
@@ -138,8 +138,14 @@
// If we have custom tags, ensure that they're valid XML
$customTags = $_POST['customtags'];
if (!isWellFormedXml($customTags)) {
- $error = _('Custom tags are not well-formed');
- goto error;
+ if ($config['customtagsenabled'] == 'yes') {
+ $error = _('Custom tags are not well-formed');
+ goto error;
+ } else {
+ // if we have custom tags disabled and the POST value is misformed,
+ // just clear it out.
+ $customTags = '';
+ }
}
// Go and actually generate the episode
@@ -281,7 +287,7 @@
-