Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstalliTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
A free Render web service can host the part of a learning platform that holds no data, but it cannot hold the LMS database or course uploads. Moodle’s documented route is a PHP application on shared hosting, which is where the database and the moodledata directory belong. Any setup that puts a frontend or API on Render has to treat Render as stateless and keep all durable data on the shared host or on a paid, backed-up service. Everything below assumes that split, and it is only suitable for a demo, a pilot, or a test class.
Decide the architecture before you touch a server
The phrase “full-stack LMS on shared hosting plus Render” can describe two very different systems, so pin down which one you are building.
- Option A: Moodle only, on shared hosting. Moodle is installed the way Moodle’s own cPanel guide describes. Render is not involved. This is the documented path, and it is the one this article’s installation steps cover.
- Option B: Moodle on shared hosting, custom frontend and API on Render. Moodle keeps its database, users, courses, and files. A separate application you wrote runs on Render and talks to Moodle over its web services. This is a chosen architecture, not something Moodle does by default. Moodle is not automatically split across two hosts.
- Option C: a fully custom LMS on Render. Your own frontend, backend, and database are all yours. Render’s own guidance separates these into a frontend, a backend API, and a datastore, each as its own service. Moodle is not part of this option.
The rest of this article covers A, and B where it adds a Render component. Option C follows Render’s general deployment model, and the free-tier limits in the sections below apply to it just as much.
Where each piece lives, and whether it survives
Most failed free-tier deployments fail on this one question. Before you deploy, list every piece of state the LMS produces and assign it to a host that keeps it.
#1 Best Overall
- 【Powerful Load-bearing】12U Network Rack Open Frame is constructed from durable cold rolled steel; Rack shelf supports enhance stability, wall-mounted capacity of 130lbs, the ground-mounted up to 260lbs
- 【Considerate Designs】Open-frame layout, including a top panel adding space, anti-slip shelf stops fixing devices and compatible racks for stack and expansion to meet requirements of home server rack
- 【Complete Accessories】A 12U open frame server rack, two ventilated shelves, four shelf stops, four velcro straps and a set of equipment mounting screws
- 【Versatile Application】Ideal for space-efficient multi-device setups in warehouses, retail, classrooms, offices and more; Excellent choices as AV Rack/IT Rack
- 【Effortless Setup】 Network Rack includes hardware, a comprehensive manual, mounting hole drilling template and an online assembly video to simplify setup
| Component | Suitable host in this design | Why |
|---|---|---|
| Moodle code | Shared hosting (Option A or B) | Moodle’s documented installation target; PHP runtime provided by the host. |
| Moodle database (MySQL, MariaDB, or PostgreSQL) | Shared-host database service | Persistent, managed through cPanel tools. Render free Postgres is not suitable: it expires after 30 days and has no backups. |
moodledata (uploads, cache, sessions) |
Shared-host home directory, outside public_html |
Render free web services lose local filesystem changes on restart, redeploy, or spin-down. |
| Custom frontend (static build) | Render Static Site | Only static assets, so nothing is lost when it restarts. |
| Custom API or proxy to Moodle | Render web service (free or paid) | Stateless if it stores nothing locally. Holds the Moodle web services token as an environment variable. |
The shared-hosting side
MoodleDocs’ cPanel Shared Hosting Installation guide describes shared hosting as a moderate-cost option for a small number of students on a self-managed Moodle site. The same passage warns that performance problems and limits on student numbers may occur. The guide does not give a student-count threshold, so you need to test your own load before committing a class to it.
Requirements to verify first
The cPanel instructions covered here apply to Moodle 5.1. Confirm the requirements for the exact release you install, because they change between versions.
Rank #2
- ADJUSTABLE DEPTH: 4-Post 42U open frame server rack with 4 vertical rails and adjustable mounting depth 22" to 40" (56,0cm to 101,7cm); Compatible with various servers / switches / data / AV and other IT equipment; EIA/ECA-310-E Compliant
- EASY ASSEMBLY: Mobile network rack with easy-to-follow assembly instructions and online video; Compact flat-pack shipping to avoid damage and facilitate installation; Total product height of 80.3in (204 cm) with casters, 78in (198cm) without casters
- COLD ROLLED STEEL: Durable 4 Post 19in open frame rack designed for ventilation with 42U mounting height and 1320lb (600kg) weight capacity (stationary); 3 install options included: casters, levelling feet, or base-plate to secure rack to the floor
- HARDWARE INCLUDED: Rolling computer/data rack includes cage nuts and screws to mount equipment, easy to read Units (U) and depth adjustment markings, cable management hooks for organization, and required assembly tools
- THE IT PRO'S CHOICE: Designed and built for IT Professionals, this 42U rack is backed for 2-years, including free lifetime 24/5 multi-lingual technical assistance
- PHP 8.2 or newer, with the extensions listed in the guide: sodium, curl, openssl, mbstring, xml, intl, json, and fileinfo.
- PHP settings:
memory_limitat 128M or higher,max_input_varsat 5000 or higher, and file uploads enabled. - Database: MySQL 8.4, MariaDB 10.11.0, or PostgreSQL 13 minimum.
- Hosting tools: SSL on the domain, and access to PHP Selector, phpMyAdmin, a database wizard or manager, Terminal, and File Manager.
- Scheduled tasks: Moodle needs its cron job to run regularly. Ask the host whether cron jobs are available on your plan and how often they can run.
- Backup and restore: ask the host what it backs up, how often, and how you restore a single database or a
moodledatadirectory.
Installation sequence
- In cPanel, open PHP Selector and select PHP 8.2 or newer. Enable the extensions listed above and confirm the PHP settings.
- Create a database and a database user with the database wizard or manager, and grant the user all privileges on that database. Note the host name, database name, user, and password.
- Use Terminal or File Manager to create
~/moodledatain your home directory, outsidepublic_html. Moodle’s data directory must not be web-accessible. - Place the Moodle code in your home directory and link the Moodle public directory into
public_html, as the guide describes. Only the public part of the code should be reachable from the web. - Open the domain in a browser and run the Moodle web installer. Enter the database details and point the data directory to
~/moodledata. - Set up the cron job in cPanel (Cron Jobs), following the schedule that Moodle’s administration pages recommend for your version.
If the installer reports a PHP or database version problem, fix it in PHP Selector or the database tools before retrying. Do not lower the requirements to get past the check.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
The Render side: what the free tier does and does not do
Render distinguishes a Web Service, which runs server-side code, from a Static Site, which serves only static assets. A Web Service is configured from a connected Git repository with a branch, a build command, a start command, and environment variables. Render’s FAQ states that PHP applications can be deployed with a Docker image, but that alone does not mean Moodle should run there. Moodle on Render would still need persistent storage for its data and a durable database, and the free tier provides neither.
Rank #3
- Adjustable Depth: 23-40'' adjustable depth is used for servers and network equipment, ensuring enough space for AV equipment, components, and cabling, while allowing you to access ports and equipment from multiple sides.
- Strong Load Capacity: Ground-Mounted Load Capacity: 500 lbs, Wall-Mounted Load Capacity: 150 lbs. The av rack is made of carbon steel for better weldability performance and can help save space while meeting your need to place multiple devices.
- User-friendly Design: Ergonomic design makes the open frame av rack easier to use. The additional top panel is able to place other items with more available space. Roller design moves anywhere and anytime, is convenient, and is more energy-saving.
- Complete Accessories: We provide the accessories you need, including 2 x Pallets, 145 x M5*10 Cross Head Screws, 4 x Casters, 4 x M10*50 Expansion Screws,10 x M6*12 Cage Nuts, 1 x Grounding Wire, 1 x User Manual.
- Wide Application: The server rack wall mount maximizes the use of available space, suitable for retail venues, classrooms, offices, and other places where space is limited.
The free-tier limits, as Render’s free-tier documentation states them when checked in 2026:
- Idle spin-down: free web services spin down after 15 minutes without inbound traffic. Render’s FAQ puts it this way: “Free web service instances spin down if they receive no incoming traffic for 15 consecutive minutes.” Waking takes about one minute, so the first request after an idle period can look broken.
- Ephemeral filesystem: changes to a free web service’s local filesystem are lost on redeploy, restart, or spin-down.
- Free Postgres: 1 GB capacity, a 30-day lifetime, no backups, and a 14-day upgrade grace period after expiry before deletion.
- Instance hours: 750 free instance hours per workspace per calendar month, shared across all free web services in that workspace. A single service running around the clock uses about 744 hours in a 31-day month, so two always-on free services will exhaust the pool.
- Production use: Render’s documentation says free instances are not for production applications.
These limits are why the Render component in Option B should be a stateless API or a static frontend, with no uploads, no local database, and no state that matters if it disappears.
Rank #4
- Universal 19” Rack Mount Compatibility – Perfect for pro audio, video, IT, and network gear. Compatible with mixers, routers, patch panels, servers, power amps, and more.
- Heavy-Duty Load Capacity – Built to support up to 550 lbs. Ideal for studio gear, DJ setups, server equipment, and AV components that demand serious stability.
- Robust Steel Frame & Design – Made with 1.5mm thick steel and weighs 36 lbs for maximum durability, reduced vibration, and long-term reliability in any setting.
- Mobile & Secure – Preinstalled with 3” industrial-grade caster wheels (lockable), making it easy to move and position your rack exactly where you need it.
- All-In-One Setup Kit Included – Comes with 34 rack screws (5mm & 6mm), a 1U blank spacer, and an assembly tool—ready for fast installation out of the box.
Connecting a Render frontend to Moodle on shared hosting
If you use Option B, the browser should not call Moodle directly. Route calls through your Render backend so the Moodle token stays on the server and the browser never sees it. This also avoids cross-origin browser restrictions between the Render domain and the Moodle domain.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Set up Moodle’s web services
- As a site administrator, enable web services under Site administration > Advanced features. Then enable the REST protocol under Site administration > Server > Web services > Manage protocols. Menu labels can shift between releases, so check them against your Moodle 5.1 install.
- Create a dedicated service under web services that includes only the functions your application needs. Do not use a full administrator account for this.
- Create a dedicated user with only the capabilities that service needs, then generate a token for that user and service.
Call Moodle from the Render backend
- In the Render dashboard, open your web service, go to Environment, and add the Moodle base URL and token as environment variables. Do not commit either to the repository.
- Test the connection from a terminal with a read-only function first. The example below uses
core_webservice_get_site_info, which returns basic site information.
curl -X POST "https://lms.example.com/webservice/rest/server.php"
-d "wstoken=$MOODLE_TOKEN"
-d "wsfunction=core_webservice_get_site_info"
-d "moodlewsrestformat=json"
Sending the token in the POST body keeps it out of URLs, which web server and proxy logs often record. Replace lms.example.com with your Moodle domain. A successful response returns JSON with the site name and version. An error such as an invalid token or a disallowed function means the service, the user, or the token setup is wrong, not the Render side.
Best Value
- Adjustable Depth: Depth adjustable from 23" to 40", this open frame server rack accommodates servers and network equipment while providing ample space for A/V gears and cable management. Enjoy easy access to ports and devices from multiple angles.
- High Weight Capacity: Supports up to 300 lbs on the floor (200 lbs when adjusted to maximum depth) and 200 lbs when wall-mounted (depth cannot be adjusted in wall-mounted mode). Made from carbon steel for superior welding performance and durability, this open frame rack is designed to save space while accommodating multiple devices.
- User-Friendly Design: Designed with your convenience in mind, this open frame server rack features an top shelf for extra storage and improved space utilization. The rolling casters let you move it effortlessly wherever you need it, making setup and movement a breeze.
- Widely Applicable: Maximize your space with this adaptable open frame server rack, designed to make the most of every inch. Ideal for retail spots, classrooms, offices, and any area where space is at a premium, it delivers practical solutions for your storage needs.
- Everything You Need: Our open-frame rack comes with fully equipped accessory kit for easy setup and secure installation: 2 x Trays, 4 x Casters, 1 x set of Screws, 16 x M6*12 Cage Nuts, 1 x Grounding Wire, 1 x Internal & External Hex Wrenches, and 1 x User Manual.
Failure modes and recovery
- The first page takes a minute or more. This is the free-tier wake-up. It is not a crash. For anything students use, a paid always-on instance is the only fix that removes it.
- Uploads disappear after a deploy. Any file written to the Render service’s local disk is gone. Move uploads to
moodledataon the shared host, or to external storage, before going live. - The Render Postgres database has stopped working. After 30 days the free database expires. You have 14 days after expiry before deletion, and free Postgres has no backups. Export it before the expiry date, and do not treat it as your LMS database in the first place.
- Moodle shows a blank page or an installation error. Check PHP version and extensions in PHP Selector, then
memory_limitandmax_input_vars. Check that the database version meets the minimum for your release. - Scheduled tasks never run. Grades, notifications, and cleanup depend on cron. If cron is not configured or the host restricts it, the site appears to work until those features stop.
- Backups do not restore. Test a restore on a copy before you need one. Confirm that the database and
moodledataare both included. - Performance drops as students join. Shared hosting is shared. Watch CPU, memory, and database limits during a real class, not a single test user.
Demo versus live course
The same architecture can serve very different purposes. Use this table to decide which version you are running.
| Concern | Demo or test class on free resources | Live course with real students |
|---|---|---|
| Moodle location | Shared hosting, as documented | Shared hosting on a plan that matches the expected load, or another host you have verified |
| Render role | Static frontend or stateless API only | Stateless frontend and API on a paid service, if used at all |
| Database | Shared-host database, with a tested backup | Shared-host or other managed database with backups you have restored from |
| Uploads | moodledata outside the public web root |
Same, plus a backup schedule for moodledata |
| Idle behaviour | Accept the wake-up delay | Avoid free spin-down for anything students use |
| Free-tier limits | Acceptable for testing | Not a basis for production |
If a live course is the goal, the lowest-risk path is to run Moodle on a shared-hosting plan you have verified against the requirements above, and to keep any Render component out of the data path. Check current Render pricing before you plan for a paid instance, because the free tier does not carry over to paid service.
The hard way is a reasonable way to learn how Moodle and a separate frontend talk to each other. It is not a reasonable way to run a course that students depend on.
Recommended Free Tools
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

