What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Install Ruby and Jekyll on a sudo-capable Ubuntu account, create a project with Bundler, build it into the _site directory, and let Nginx serve those static files. Point your domain’s DNS at the VPS, then use Certbot with Let’s Encrypt to add HTTPS. The VPS runs the build when you deploy; it normally does not keep Jekyll’s development server running for visitors.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
What Jekyll on a VPS actually does
Jekyll is a Ruby static-site generator. It takes Markdown content, Liquid templates, layouts, stylesheets, and configuration, renders them, and writes a complete static website. The generated files can be served by Nginx, Apache, or another ordinary web server.
As an Amazon Associate I earn from qualifying purchases.
Recommended Free Tools
That separation matters on a small VPS:
- Build stage: Ruby, Jekyll, Bundler, your source tree, and the project’s gems turn the source into HTML, CSS, JavaScript, images, feeds, and other files.
- Serving stage: Nginx reads the generated files from
_siteand sends them to browsers. It does not need Ruby for each request.
For local editing, bundle exec jekyll serve starts a development server and watches files. For publication, use bundle exec jekyll build, then expose the resulting directory through Nginx. Keeping those roles separate reduces the attack surface and avoids tying public traffic to a development process.
Choose a VPS or managed repository hosting
An Ubuntu VPS is the better fit when you need SSH and sudo access, control over Nginx and firewall rules, custom build steps, or other server processes beside the website. You are responsible for operating-system updates, backups, DNS, certificates, access control, and deployments.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
A managed repository-hosting service can build and publish a Jekyll site from a branch or a custom CI workflow. That removes server maintenance, but the build environment, plugin policy, domain configuration, and supported processing options are controlled by the service. It is useful when the site is already maintained in a repository and you do not need shell access or long-running server software.
| Decision point | Ubuntu VPS | Managed repository hosting |
|---|---|---|
| Operating-system access | SSH and sudo are available; you maintain the host. | No VPS administration; the platform owns the runtime. |
| Build control | Install the Ruby and gem versions your project requires and run your own commands. | Use the platform’s supported Jekyll environment or a provided workflow. |
| Web server | Configure Nginx, document roots, redirects, logs, and firewall rules yourself. | HTTPS and web serving are handled by the platform, subject to its settings. |
| Plugins and processes | You can run compatible plugins and additional processes, while accepting the maintenance and security work. | Plugins and build steps may be restricted; no general-purpose VPS process is available. |
| Domain control | Point DNS to the VPS and obtain a certificate on that host. | Use the platform’s custom-domain procedure and DNS records. |
| Backups and recovery | You must back up source, configuration, and any server data. | The provider manages platform infrastructure, but you still need a copy of your repository and content. |
For the VPS route, compare candidate plans by SSH/sudo availability, an Ubuntu image, enough CPU and memory for Ruby native extensions, storage headroom, backup options, IPv4 and IPv6 support, firewall controls, and support quality. Current provider prices and limits are not universal, so verify them on the provider’s own product page before ordering.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesPrepare the Ubuntu VPS
Connect with an ordinary administrative account
Connect over SSH with an account that can use sudo. Avoid using the root account for routine work. Confirm that the host is the intended machine, and keep a second administrative access method available before changing SSH or firewall settings.
Update the package index and install Ruby, a compiler toolchain, and the zlib development headers required by common Ruby gems:
sudo apt-get update
sudo apt-get install ruby-full build-essential zlib1g-dev
The exact package names can vary between Ubuntu releases. If apt reports a missing package, check that the VPS is running a supported Ubuntu release and that its package sources are enabled rather than substituting random Ruby packages.
Keep gems out of the system Ruby path
Jekyll’s Ubuntu installation guidance recommends a user-local gem directory. Configure that directory in the shell profile used by your deployment account, then reload the profile. The current Jekyll guide’s shell snippet should be copied at installation time because profile files and recommended paths can change between Ubuntu and Ruby versions.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
After the profile change is active, install Jekyll and Bundler as that user:
gem install jekyll bundler
Check that the commands resolve to the expected installation:
ruby --version
gem --version
jekyll --version
bundle --version
Do not mix a system-wide gem install performed with sudo and a user-local install in the same project. That commonly produces permission errors or causes the shell to invoke a different gem set than the one used during deployment.
Create a site and preview it safely
Generate the project skeleton
From the directory where you keep application source, create a new site and enter it:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated 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 matchjekyll new my-site
cd my-site
The generated project includes a Gemfile, configuration, layouts, and starter content. Inspect the Gemfile before installing dependencies. It describes the gems the project expects; the lockfile records the exact resolved versions for the platform.
Install and lock dependencies
bundle install
Commit both Gemfile and the generated Gemfile.lock to your source repository. Bundler can then reproduce the same dependency set on the VPS and during later deployments. Run project commands through Bundler so the lockfile, rather than an unrelated globally installed gem, determines what executes.
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
Preview during authoring
bundle exec jekyll serve
By default, the development server is intended for local preview. If your workflow supports automatic browser refreshes, use:
bundle exec jekyll serve --livereload
Do not expose this development server directly to the public internet as your production web server. It is designed for authoring and diagnostics, not hardened traffic handling, access logging, or certificate termination.
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 →Build the production artifact
Run the reproducible build
bundle exec jekyll build
Jekyll writes the finished site to _site unless the project’s configuration changes the destination. Look for an entry point before configuring Nginx:
test -f _site/index.html && echo "Build contains an index page"
The _site directory is the deployable artifact. Keep Markdown, layouts, data files, the Gemfile, and the lockfile in the source checkout; publish only generated output to the web document root. You can either point Nginx directly at the checkout’s _site directory or copy/synchronize the contents into a separate release directory. A separate directory makes it easier to replace one complete build without exposing half-written files.
Use a consistent deployment sequence
A simple manual deployment from the project checkout is:
- Fetch or copy the intended source revision.
- Run
bundle installso the VPS honors the committed lockfile. - Run
bundle exec jekyll build. - Verify that the expected files exist under
_siteand that their ownership and permissions allow Nginx to read them. - Publish the complete
_sitedirectory at the path used by the Nginx server block. - Reload Nginx only when its configuration changed; a static-file replacement normally needs no web-server restart.
Keep the source checkout and deployment credentials private. Never place private keys, environment secrets, or unpublished content under the public document root.
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Install and configure Nginx
Install the web server
sudo apt install nginx
Ubuntu’s Nginx layout uses a configuration file in /etc/nginx/sites-available/ and a symbolic link in /etc/nginx/sites-enabled/. Create a file named for the domain, such as /etc/nginx/sites-available/example.com.
Point the server block at _site
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 filesystem path with your values. The root must be the directory that actually contains the generated index.html. A common mistake is pointing it at the project root, where Nginx cannot find the rendered files.
Enable and test the site
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 the reload. If the default site claims the same address or produces an unexpected page, remove or disable that conflicting link after confirming it is not needed. Ensure the Nginx worker can traverse every parent directory and read the files under _site; restrictive ownership or mode bits can look like a missing-file problem.
At this stage, request the VPS’s address or configured hostname over HTTP. A successful response should come from the generated site. A 404 usually means the wrong server block matched, the root is wrong, or the build did not create the requested path.
Connect DNS and add HTTPS
Make DNS resolve to the VPS
Register the domain, then create records that resolve the names in server_name to the VPS. An A record is used for IPv4 and an AAAA record for IPv6 when the VPS has a working IPv6 address. Test both paths if you publish both records; a broken IPv6 route can make some visitors fail even while IPv4 works.
DNS changes can take time to appear at recursive resolvers. Do not request a certificate until the names resolve to this server, and make sure any host firewall or cloud firewall permits inbound TCP port 80.
Best Value
Request and install a Let’s Encrypt certificate
Ubuntu recommends Let’s Encrypt for internet-facing servers. Its certificates are free, automated, trusted by major browsers and clients, and valid for 90 days. Certbot installs a systemd timer that attempts renewal twice daily.
Free tools Windows power users keep installed
One-click scans. No signup required.
sudo snap install --classic certbot
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot renew --dry-run
The Nginx plugin finds the matching server block, obtains the certificate, edits Nginx for TLS, and reloads the service. The dry run exercises renewal without replacing the live certificate. Keep the renewal check in place and review failures rather than assuming a certificate will renew indefinitely.
For production, redirect HTTP requests to HTTPS after certificate issuance. Certbot can offer to configure the redirect; inspect the resulting server blocks and keep only the domain names you actually control. If issuance fails, correct DNS or port-80 reachability first, then rerun Certbot. Repeated retries will not fix a name that still points elsewhere or a firewall that still blocks the HTTP-01 challenge.
Operate updates without breaking the site
Separate source, build output, and configuration
- Store the source checkout,
Gemfile, and lockfile under a non-public path. - Use a dedicated public directory for the generated artifact.
- Keep Nginx configuration in
/etc/nginxand back it up with the server’s operational configuration. - Keep private SSH keys, API credentials, and unpublished drafts outside the document root.
Before an operating-system upgrade or gem update, take a backup or snapshot appropriate to your VPS. A static site is easy to rebuild only when the source repository, lockfile, custom data, and deployment configuration are all preserved.
Update dependencies deliberately
Do not delete Gemfile.lock merely to make an installation error disappear. A Ruby or native-extension error generally indicates that the VPS’s Ruby version, compiler/build tools, or locked gems do not agree. First confirm the installed Ruby and Bundler versions, rerun commands with bundle exec, and consult the current Jekyll installation and troubleshooting guidance for the specific error. A workaround that is valid for one Ubuntu release or gem version is not automatically valid for another.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Check the rendered result before publishing
Build in a temporary or staging location when practical. Verify the home page, navigation links, feeds, assets, and any generated collections. Pay attention to a configured URL base or subpath: a site that works at the root locally can generate links that point to the wrong location when deployed below a path.
Troubleshoot the failures you are most likely to see
Ruby, Bundler, or native-extension errors
- Confirm that
ruby-full,build-essential, andzlib1g-devare installed. - Check which Ruby and gem executables the shell is using with
ruby --version,gem environment, andwhich bundle. - Run
bundle installand all Jekyll commands from the project directory. - Use
bundle execso the lockfile controls the active gem versions. - If the locked dependency set cannot compile on the selected Ubuntu/Ruby combination, resolve that compatibility issue intentionally rather than installing an unrelated global gem.
The build succeeds but the browser returns 404
- Check that
_site/index.htmlexists after the build. - Compare the Nginx
rootwith the actual absolute path to_site. - Confirm that the request’s hostname exactly matches an enabled
server_name. - Check URL base or permalink settings when only nested pages fail.
- Check directory traversal and file-read permissions for the Nginx worker.
- Run
sudo nginx -tand inspect the active server block if another site appears.
Certbot cannot validate the domain
- Resolve the A and AAAA records from outside the VPS and confirm they point to this host.
- Allow inbound TCP port 80 in both the VPS firewall and any provider-level firewall.
- Make sure Nginx is listening on port 80 and the domain’s server block is enabled.
- Correct DNS or reachability, then rerun the certificate command.
The site worked before an update
Compare the deployed source revision, Gemfile.lock, generated output, and Nginx configuration with the last known-good deployment. Rebuild the previous locked revision and restore its complete artifact if necessary. Because Jekyll output is static, rolling back the generated directory is usually safer than trying to repair individual files in place.
Quick Recap
Launch checklist
- SSH access uses a sudo-capable non-root account.
- Ubuntu packages are updated and Ruby, build tools, and zlib headers are installed.
- The user-local gem path is configured according to the current Jekyll Ubuntu guidance.
jekyllandbundlerrun for the intended user.- The project contains a committed
GemfileandGemfile.lock. bundle exec jekyll buildproduces the expected_sitefiles.- Nginx’s enabled server block uses the correct domain and document root.
sudo nginx -tpasses before every configuration reload.- DNS records resolve to the VPS and port 80 is reachable.
- Certbot has issued the certificate and
sudo certbot renew --dry-runsucceeds. - Backups include source, lockfile, Nginx configuration, and any deployment metadata.
Key commands at a glance
# Ubuntu prerequisites
sudo apt-get update
sudo apt-get install ruby-full build-essential zlib1g-dev
# Install the Ruby tools after configuring a user-local gem path
gem install jekyll bundler
# Create and preview
jekyll new my-site
cd my-site
bundle install
bundle exec jekyll serve
# Build for publication
bundle exec jekyll build
# Install and enable Nginx
sudo apt install nginx
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
# HTTPS
sudo snap install --classic certbot
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot renew --dry-run
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.

