Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows 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
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
To run Jekyll on an Ubuntu VPS, install Ruby and the native build prerequisites, install Jekyll and Bundler in a user-local gem directory, create a project with a locked dependency set, build it with bundle exec jekyll build, and point Nginx at the resulting _site directory. Jekyll generates HTML, CSS, JavaScript, images and other static assets; your production server normally delivers those files instead of keeping Jekyll’s development server running.
This guide takes you from an empty Ubuntu server to an HTTP site and then to HTTPS. It also explains when a VPS is the wrong choice, how to keep deployments reproducible, and how to diagnose the failures that most often appear at the Ruby, build, Nginx and certificate stages.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →What Jekyll on a VPS actually does
Jekyll is a Ruby static-site generator. It reads Markdown, Liquid templates, configuration and assets, then renders a complete static website. The generated files are placed in a directory named _site. Nginx, Apache or another web server can serve that directory directly.
There are two distinct processes:
- Build time: Jekyll runs on your workstation, in a deployment job or on the VPS and converts the source tree into
_site. - Request time: Nginx returns the already-generated files to visitors. It does not need Ruby or Jekyll for each page request.
This separation is the main operational advantage of a Jekyll VPS. Pages are assembled before visitors request them, so there is no application runtime, database or server-side template process to keep alive. You still have to maintain the Ubuntu host, Nginx configuration, DNS, certificates, backups and deployment process.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
Choose between a VPS and managed repository hosting
A VPS is appropriate when you want shell access, control of Nginx and the operating system, custom firewall rules, or the ability to run other services on the same server. It also makes you responsible for updates, hardening, monitoring and recovery.
GitHub Pages is the simpler alternative when your site can live in a repository-managed workflow. GitHub documents both branch-based deployment and custom GitHub Actions workflows for Jekyll. You trade operating-system control for a managed build and hosting environment.
| Decision factor | Ubuntu VPS | GitHub Pages |
|---|---|---|
| Server administration | You maintain Ubuntu, Ruby, Nginx, firewall rules, certificates and backups. | The hosting platform manages the web servers and much of the deployment plumbing. |
| Build control | You can choose the Ruby and gem environment and run your own build command. | You use the platform’s supported Jekyll workflow or a custom Actions workflow. |
| Plugin and process freedom | You control the build and can run other server-side processes, subject to your own security and capacity limits. | Build and plugin behavior is constrained by the Pages environment and workflow you select. |
| Domain control | You configure DNS and the Nginx server block yourself. | You configure a custom domain through the repository-hosting service. |
| Operational effort | Higher: patching, logs, renewals and recovery are your responsibility. | Lower for the host itself, but repository and workflow configuration still require care. |
When evaluating a VPS, check for SSH and sudo access, an Ubuntu image, enough CPU and storage for your source and build artifacts, backup options, IPv4 and IPv6 support, firewall controls and the provider’s support model. Current provider prices and plan limits vary and are not part of this setup guide.
Prerequisites before you install anything
Use an ordinary sudo-capable account over SSH rather than doing routine work as root. You need:
- An Ubuntu VPS that you can reach over SSH.
- Permission to install packages and create files under the site and Nginx directories.
- A project source tree, either created on the VPS or checked out from version control.
- A registered domain and DNS access if the site will be public.
- A network path that can eventually accept HTTP on port 80 and HTTPS on port 443.
You can build on your computer and copy _site to the server, or build on the VPS from a deployment checkout. Building on the VPS is convenient for a small site; building elsewhere can reduce the software installed on the production host. In either case, keep the source, Gemfile and Gemfile.lock in a private working tree when only the generated output should be public.
Prepare Ruby and Jekyll on Ubuntu
Update packages and install build prerequisites
Jekyll’s Ubuntu installation guidance calls for Ruby, a compiler toolchain and the zlib development headers. Connect over SSH and run:
Free tools Windows power users keep installed
One-click scans. No signup required.
sudo apt-get update
sudo apt-get install ruby-full build-essential zlib1g-dev
ruby-full supplies Ruby and the standard development components; build-essential provides the compiler tools needed by gems with native extensions; and zlib1g-dev supplies headers required by common Ruby packages.
Keep gems out of the system Ruby path
The official Ubuntu instructions recommend configuring a user-local gem directory instead of installing application gems into the system Ruby location. The exact shell-profile block can change as the guide evolves and can differ between shells, so copy that block from the current Jekyll Ubuntu installation page, reload your shell profile, and confirm that your user-local gem bin directory is on PATH. This avoids mixing project dependencies with files owned by the operating-system package manager.
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
After the profile is active, install the command-line tools:
gem install jekyll bundler
Check that the commands resolve for your account:
ruby --version
jekyll --version
bundle --version
The exact version numbers depend on the Ubuntu image, Ruby packages and the date of installation. Do not assume that a command found in one shell is available to a service account or to a non-interactive deployment shell; test with the same account and environment that will perform the build.
Create a site and preview it
Generate the project skeleton
Create a new site, enter its directory, install the dependencies and start the development server:
jekyll new my-site
cd my-site
bundle install
bundle exec jekyll serve
The jekyll new command creates the initial project structure, including a Gemfile. bundle install resolves the gems and creates or updates Gemfile.lock. Running Jekyll through bundle exec makes Bundler use the versions selected for this project instead of whichever compatible gems happen to be installed globally.
By default, the development server is intended for previewing and authoring. It listens on a local interface suitable for testing, not as a permanent public production service. If you are authoring interactively and your workflow supports automatic browser refreshes, use:
bundle exec jekyll serve --livereload
When testing from another machine, treat exposing the development server as a temporary diagnostic step. Production traffic should go through Nginx and the generated files.
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 →Understand the important files
_config.ymlcontains site-wide settings such as the site URL, base path, theme and build options._posts/holds conventionally dated posts when you use Jekyll’s posts workflow._layouts/,_includes/and_data/hold reusable templates, fragments and data.assets/and other ordinary files become part of the generated site according to your configuration.Gemfiledeclares the project’s Ruby dependencies.Gemfile.lockrecords the resolved versions used for a reproducible installation._site/is generated output. Do not edit it as if it were the source tree; regenerate it from source.
Make builds reproducible with Bundler
Commit both Gemfile and Gemfile.lock to version control. The Gemfile describes what the project needs; the lockfile records the concrete versions and dependency graph that Bundler selected. Keeping both files lets a later deployment reproduce the environment instead of resolving a new set of versions unexpectedly.
Use bundle exec for every project operation, including serving, building and any Jekyll plugin command. A typical deployment checkout therefore begins with:
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
bundle install
If you deploy to GitHub Pages, its documentation describes using the github-pages gem to match the production Jekyll environment used by Pages. That dependency choice belongs in the project’s Gemfile and lockfile, not in an undocumented global installation.
When a lockfile changes, review the diff and test the generated site before publishing. A successful dependency installation does not guarantee that layouts, plugins or URL settings still produce the expected output.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Build the production artifact
From the project directory, create the deployable site with:
bundle exec jekyll build
The command writes the finished website to _site. Inspect that directory before pointing a public server at it:
- Confirm that
_site/index.htmlexists. - Open representative post, page, image, CSS and JavaScript paths.
- Check that links use the intended domain and base path.
- Verify that files required at runtime were copied into
_site.
Nginx can use the checkout’s _site directory as its document root, or you can copy or synchronize the generated contents into a separate release directory. The latter keeps source and output clearly separated and makes it easier to switch back to a previous build. Whichever layout you choose, the Nginx worker must have permission to traverse the parent directories and read the generated files.
Install Nginx and publish over HTTP
Install the web server
sudo apt install nginx
Ubuntu’s Nginx layout uses /etc/nginx/sites-available/ for server-block files and /etc/nginx/sites-enabled/ for the enabled symlinks. Create a file named for your domain, such as /etc/nginx/sites-available/example.com, and start with a simple HTTP block:
Recommended Free Tools
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /srv/my-site/_site;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Replace the domain names and root path with your own values. The root must be the directory that actually contains the generated index.html, not the parent source directory unless that is where your build output lives.
Enable and validate the server block
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
nginx -t checks syntax before a reload. If Ubuntu’s default site answers for the same address, disable or remove that conflicting enabled configuration after confirming you no longer need it. A reload applies a valid configuration without unnecessarily stopping the service.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
At this stage, request the domain over HTTP after DNS points to the VPS. A 404 usually means Nginx is using a different root, the requested server name does not match the enabled block, or the expected file is absent. A permission error means the Nginx worker cannot read the file or traverse one of its parent directories.
Point DNS at the VPS
Register the domain before requesting a certificate, then create DNS records that resolve the names in your Nginx server_name directive to the VPS. Use an address record for IPv4 and, if you publish IPv6, an IPv6 record as well. Make sure every name you pass to Certbot resolves to this server; including www in the certificate request requires a working DNS record for www.
DNS changes can take time to appear at different resolvers. Test resolution from outside the VPS and verify that the answer is the expected address. Do not proceed to certificate issuance while the name still points to an old server or a parking page.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Enable HTTPS with Let’s Encrypt and Certbot
Meet the HTTP-01 requirements
For a public certificate, the domain must resolve to the VPS and port 80 must be reachable from the internet for the HTTP-01 validation challenge. Check cloud firewall rules, the VPS firewall and any upstream network policy before running Certbot. A locally working Nginx site is not enough if outside traffic cannot reach port 80.
Install Certbot and request the certificate
Ubuntu recommends Let’s Encrypt for internet-facing servers. Install Certbot from the snap package and let its Nginx plugin configure the matching server block:
sudo snap install --classic certbot
sudo certbot --nginx -d example.com -d www.example.com
Replace both names with the names you actually serve. The Nginx plugin can edit the server block and reload Nginx after successful validation. Read each prompt, especially the choice to redirect HTTP traffic to HTTPS, and inspect the resulting configuration afterward.
Let’s Encrypt certificates are valid for 90 days. Certbot installs a systemd timer that attempts renewal twice daily. Confirm that automated renewal works instead of waiting for expiry:
sudo certbot renew --dry-run
A dry run exercises the renewal path without replacing the live certificate. Continue to monitor the timer and Nginx logs, particularly after changing DNS, firewall rules or server-block files.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
A practical deployment routine
For a small VPS-hosted site, a deliberate release routine is safer than editing files directly in _site:
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problems- Update the source checkout from your version-control system or upload a reviewed change.
- Confirm that
GemfileandGemfile.lockare present. - Run
bundle installwhen dependencies changed. - Run
bundle exec jekyll build. - Check that
_site/index.htmland representative URLs were generated. - Synchronize or activate the new output directory used by Nginx.
- Request the site over HTTPS and inspect the Nginx error log if a page fails.
Keep at least one known-good generated release or source commit so you can restore the previous site if a layout, plugin or configuration change breaks production. Back up the source checkout, lockfile, Nginx configuration and any deployment scripts; the generated output can be rebuilt when those inputs are available.
Troubleshoot the common failure points
Ruby or native-extension errors during installation
Errors while installing gems commonly indicate that the VPS Ruby version, compiler tools, zlib headers and the versions locked by the project do not agree. Confirm that the prerequisite packages are installed, run the project commands through bundle exec, and consult the current Jekyll installation and troubleshooting guidance for the specific error. Avoid applying a Ruby-version workaround copied from an unrelated project without checking the locked dependencies.
The site builds locally but production returns 404
First verify that the build actually produced _site/index.html and that Nginx’s root points to that exact directory. Then check that the enabled server block’s server_name matches the hostname in the request. Finally inspect URL settings such as the site base path and confirm that Nginx can read the files. A correct build served from the wrong root still produces a 404.
Nginx refuses to reload
Run sudo nginx -t and read the reported file and line number. Typical causes are a missing semicolon, a malformed symlink, duplicate directives or a path typo. Fix the configuration, test again, and reload only after the syntax check succeeds.
Certbot cannot validate the domain
Certificate issuance fails when DNS does not resolve to this VPS or when the validation request cannot reach port 80. Check the A and AAAA records, remove stale records if necessary, verify cloud and host firewall rules, and confirm that the HTTP server block responds for the requested name. Rerun Certbot only after external resolution and port reachability are correct.
Files exist but Nginx cannot read them
Check permissions on the generated files and every parent directory in the path. The Nginx worker needs read access to files and execute (directory traversal) access to directories. Correct ownership and modes in the deployment directory rather than granting broad write access to the web-server account.
Maintenance checklist after launch
- Apply Ubuntu security updates through your normal maintenance window.
- Keep SSH access limited to the accounts and keys that need it, and avoid routine root sessions.
- Retain the Gemfile and lockfile with the source revision that produced each release.
- Review generated output before activating it.
- Back up source, configuration and deployment metadata, not just the current web directory.
- Check Nginx configuration with
nginx -tbefore every reload. - Run
certbot renew --dry-runperiodically and investigate timer or renewal failures. - Verify both IPv4 and IPv6 behavior if both DNS record types are published.
With this arrangement, Jekyll remains a build tool and Nginx remains the production web server: the VPS compiles a versioned source tree into _site, and visitors receive the resulting static files over a certificate-protected connection.
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.

