MediaCMS is a modern, fully-featured, open source CMS that is easy to install, maintain, and customize. It can be used to build an online video, audio, and photo portal within minutes. MediaCMS can also be installed on a local server that’s not exposed to the internet. MediaCMS’s interface and features closely resemble YouTube so it’s familiar and intuitive to use. Use cases to self-host your content:
- Maintain company control for employee onboarding or training videos.
- Build online communities.
- Students get video lessons without distractions.
- Organize personal audio, photos, and videos.
- Backup of your YouTube content in case Google decides to delete your account or your channel gets hacked.
We’re continuing to use Linode for this example but I’m also going to start incorporating other VPS providers for my tutorials soon. We’ll be using the minimum hardware requirements of 2 CPUs and 4GB of RAM. That’ll provide enough disk space & power for now but you’ll have to think of your needs for serious installations. MediaCMS recommends that your server has 3x the disk space of your expected video uploads to account for original and encoded versions of your videos.
My Linode’s specs: OS=Ubuntu 20.04 LTS (developer recommended), Region=Dallas, TX, Plan=Shared CPU Linode 4GB ($20/mon, 4GB RAM, 2 CPUs, 80GB SSD). Also I went to my domain name provider and made a DNS entry for mediacms1.theitguycj.com so that I can get to the website by domain name and get an SSL cert for a secure connection.
Once the server is ready, we’ll make a new mediacms.io folder in the home directory and navigate to it.
mkdir /home/mediacms.io && cd /home/mediacms.io/
Clone the MediaCMS git repository to this folder.
git clone https://github.com/mediacms-io/mediacms
Next, navigate to the mediacms folder and run the installation script. It’ll ask you if you want the script to install necessary applications and dependencies. Type yes then press Enter.
cd /home/mediacms.io/mediacms/ && bash ./install.sh
The next prompt will ask if you have a portal (website) URL where you want to deploy MediaCMS, otherwise it’ll use localhost. If you provide a domain name, it will use Let’s Encrypt service to install a valid SSL certificate. I used mediacms1.theitguycj.com in my example. Then it’ll ask for a portal name. This will be displayed in the browser tab, otherwise it’ll use MediaCMS. I used IT Guy CJ Hosted MediaCMS. Don’t use any apostrophes in the portal name!!! Don’t ask how long it took me to figure that out… … Smh…
After a few minutes, the installation will complete. Please copy the username and password that it gives you to log in. If you happen to click away, here is a link to commands to reset it: https://github.com/mediacms-io/mediacms/discussions/81.
It’s crucial to follow the developer’s documentation ESPECIALLY when customizing applications or making major changes. Here’s the link to their docs: https://github.com/mediacms-io/mediacms/blob/main/docs/admins_docs.md#5-configuration. Do not edit the cms/settings.py file directly! They advise you to override the settings in cms/local_settings.py. The docs also mention where and how to make HTML changes and back up the site. Once changes are made, restart the mediacms service to apply the edits.
systemctl restart mediacms
I spent what time I could editing my site to show as an example of what can be done…. Which I’m not good with HTML or CSS so I only changed the default color to dark mode, disabled sign ups, and changed the logo. You can Google “powered by MediaCMS” to see other installations but, honestly, there’s not really many completed installs besides https://cinemata.org/, https://criticalcommons.org/, and https://demo.mediacms.io/. Here’s a blog post for ideas on how to use the software: https://engagemedia.org/2022/cinemata-update/. Give MediaCMS a try, tell me what you think, and give a shoutout/donation to the developers for their hard work. Take care.