Self-Host Your Own YouTube-Like Server with MediaCMS | Proxmox VE | Ubuntu LXC Container

As someone who values control over their content and wants to reduce reliance on centralized platforms like YouTube, I’ve been experimenting with self-hosting my own YouTube-like server. In this post, I’ll walk you through a step-by-step guide on how to set up a Proxmox VE server, Ubuntu LXC container, and MediaCMS.

Why Self-Host?

I recently needed to share a private slideshow with family members after my aunt’s funeral. I wanted to be able to control who had access to the content and when. However, YouTube flagged the music used in the video due to copyright concerns. This led me to explore alternative solutions that would allow me to share my media without relying on a centralized platform.

Solution Overview

To achieve this, we’ll use the following components:

  • Proxmox VE server
  • Ubuntu LXC container
  • MediaCMS
  • A type of reverse proxy, zerotrust or acess to internal services.

Step 1: Create an LXC Container

To get started, we’ll create a new LXC container from the Ubuntu 24.04 template.

To prep you will need to download a templet. We are going to select the 24.04 templet.. You will select your storage > “CT Templets” > “Templets”

Filter and select to download the 24.04 templet:

Upper right hand corner select “Create CT”:

For resources, GitHub provides a list of minimum requirements for our LXC container. Since I want to perform better, I’ve increased some settings to suit my needs. You can adjust these according to your requirements:

Min specs: 8 GB Ram / 2-4 CPUs

Define your node hostname and password:

Select the templet we downloaded

Define your space to use for this demo (512 GB thin virtual disk, selected) In my case I used discard mount option to save space as thin.

Define number of cpu cores to allow:

Define the amount of memory to use (12 GB RAM in our case)

Static set your ip address and gateway.

Define Your DNS

Once you’ve completed these steps, finish creating your container by clicking on “Finish”.

Step 2: Set Up Your URL for MediaCMS

Next, we’ll set up our URL for MediaCMS to point to the container.

  1. Power Up and from console login with your root password you defined earlier.

2. Validate IP address with save this as you will need it with a proxy or zerotrust

ip a

4. This is where the IP above becomes important. Put in the IP defined earlier for our new URL.

Step 3: Update OS and Install MediaCMS

Finally, we’ll update the Ubuntu operating system and install MediaCMS.

mediacms/docs/admins_docs.md at main · mediacms-io/mediacms · GitHub

Steps:

  1. Update ubuntu:
apt-get update -y && apt-get upgrade -y

2. Install git

apt-get install git -y

3. Pull install script and install Type yes when prompted.

mkdir /home/mediacms.io && cd /home/mediacms.io/
git clone https://github.com/mediacms-io/mediacms
cd /home/mediacms.io/mediacms/ && bash ./install.sh

We want to use https encryption to do this we want to use lets encrypt to do this we need to first via our proxy or whatever point the ip address to the server. I would recommend using something like a reverse proxy of zerotrust for security. Once you have the url pointing to your server you will put the url to start the encryption..

When the script is finished you can go to your url and log into admin..

Configure MediaCMS

Validate that under the following path it shows your url if not you will need to adjust. This is necessary if you did not do the encryption step.

  1. Go to the MediaCMS admin panel:
    • Click on “Sites”
    • Click on “localhost”
    • Change the domain name and display name to your URL (e.g., mediacms.maple-street.net)
  2. Save changes
  1. Go to the MediaCMS admin panel:

Click on “Sites”

Click on “localhost”

Change the domain name and display name to your URL (e.g., mediacms.maple-street.net)

Now when you upload a video and do a share link it should when accessing trough url give you non local path.

With these steps, you should now have a self-hosted YouTube-like server using Proxmox VE, Ubuntu LXC container, and MediaCMS. I’m excited to start sharing my media on this platform instead of relying on YouTube.

I hope this guide has been helpful! Let me know in the comments below if you have any questions or need further assistance.

Leave a Comment

WordPress Appliance - Powered by TurnKey Linux