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 matchPC 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 & 11You can run a fast, low-maintenance Hexo blog on a Linux VPS by building Markdown into static files, publishing the generated public directory, and serving it with NGINX. Point your domain’s DNS records at the VPS, then use Certbot’s NGINX integration to enable HTTPS. This guide covers the complete path from an empty server to a repeatable deployment.
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 you are building
Hexo is a static-site generator. You write posts in Markdown and keep site settings and theme files in a project directory. Hexo processes those inputs into HTML, CSS, JavaScript, images and other assets. The finished site is written to the project’s public directory. NGINX serves those files directly; it does not run Hexo, Node.js or a database for each visitor.
As an Amazon Associate I earn from qualifying purchases.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsThe production request path is therefore simple:
- You edit source files and posts.
- Hexo runs a build and refreshes
public. - You copy or synchronize
publicto a web directory on the VPS. - NGINX maps the request URL to a file below its configured
root. - DNS sends the domain to the VPS, and TLS protects the connection.
Keeping the source project and the served output separate makes deployments easier to audit and roll back. The web server should read only the generated files, not your Git metadata, draft notes or editing credentials.
Prerequisites and version requirements
Prepare these items before creating the project:
| Requirement | What it is used for | Important qualification |
|---|---|---|
| Linux VPS or build machine | Runs the build, serves files, or both | There is no authoritative VPS-size, build-time or page-speed figure in the Hexo documentation. Choose resources according to site size, traffic, build dependencies and the provider’s current limits. |
| Git | Source control and optional checkout-based deployment | Hexo lists Git as an official requirement. |
| Node.js and npm | Runs Hexo and its themes/plugins | Hexo 8.0 and later requires Node.js 20.19.0 or newer. Use a currently supported release whenever possible. |
| A domain name | Provides a stable public address | You will need DNS A and, where applicable, AAAA records pointing to the VPS. |
| NGINX | Serves static files and terminates HTTPS | Install it through your Linux distribution’s package system and follow that distribution’s service-management conventions. |
Use the latest Hexo release and the recommended Node.js version when your project can support them. If your distribution ships an older Node.js package, install a supported release by another user-level method rather than lowering the Hexo requirement.
#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.
Decide where to build
You can build on your workstation, on the VPS, or in a CI system and then transfer only public. Building away from the production server limits the amount of software and source material exposed on the public host. Building on the VPS is convenient for a small personal site, while a controlled checkout or CI job gives you a repeatable environment and a clear release history. None of these choices is mandated by Hexo; select one and document it so every deployment follows the same path.
Install Git and a supported Node.js release
Install Git and Node.js using your Linux distribution’s package manager or a maintained Node.js version manager. Verify the versions before installing Hexo:
git --version
node --version
npm --version
For Hexo 8.x, the node --version result must be at least 20.19.0. If you plan to build on your laptop or CI runner, perform this check there as well as on any VPS that will build releases.
Install the Hexo command-line package for the account that will perform builds:
npm install -g hexo-cli
A global npm installation can fail with EACCES when npm tries to write to a system-owned directory. Do not bypass that error by running npm as root or by adding sudo to the install. Correct npm’s user-level permissions or invoke the command through npx, which can run a project-local or fetched CLI without requiring a system-wide write.
npx hexo --version
If hexo is reported as command not found after a successful global installation, the npm global binary directory is probably not on your shell’s PATH. Add the directory for your normal user, or use npx hexo consistently.
Recommended Free Tools
Initialize the Hexo project
Create the starter project in a directory that is not directly served by NGINX:
- Install the CLI as described above.
- Initialize a project named
blog. - Enter the project directory and install its dependencies.
- Create a first post.
- Start the local preview server.
hexo init blog
cd blog
npm install
hexo new 'Hello Hexo'
hexo server
The equivalent form with a local or on-demand CLI is:
npx hexo init blog
cd blog
npm install
npx hexo new 'Hello Hexo'
npx hexo server
By default, hexo server listens at http://localhost:4000/. On a remote VPS, do not expose that development server as your public web service; use NGINX to serve the generated files instead.
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.
The initialized project includes an _config.yml file, package.json, scaffolds, source and themes. Posts created by hexo new are placed in source/_posts. Keep the project and its dependency lockfile in version control, but keep the generated public directory as a build artifact unless your deployment policy specifically requires committing it.
Free tools Windows power users keep installed
One-click scans. No signup required.
Configure the site before publishing
Set identity, URL and permalinks
Open _config.yml and set the site title, subtitle, author, language and canonical URL. The URL should be the final public origin, including the HTTPS scheme once TLS is enabled. Set a permalink pattern deliberately before publishing many posts; changing it later creates broken inbound links unless you add redirects.
Keep YAML syntax exact. Use spaces rather than tabs, quote values that contain a colon or other YAML punctuation, and preserve the indentation supplied by the starter configuration. After editing, run a local build so syntax errors are found before a release is copied to the VPS.
Select and customize a theme
The theme setting chooses the theme directory under themes. A theme can add layouts, stylesheets, scripts and configuration of its own. Install a theme’s dependencies in the project directory, commit the theme configuration you rely on, and regenerate after every theme change. A theme that works in the preview is not automatically safe to deploy: inspect the generated output for missing assets and incorrect absolute URLs.
Write a post
A generated post is a Markdown file with front matter at the top. Edit the file under source/_posts, add headings and images using the conventions of your chosen theme, then save it. Keep image paths and links relative to the site structure you have configured. Drafts should remain outside the published source tree or use the draft workflow supported by your Hexo setup.
Preview and generate production files
Use the preview server while editing, then create a clean production build:
hexo clean
hexo generate
hexo clean removes stale generated files and cache data. It is especially useful after changing a theme, permalink rule or plugin when the preview appears to contain old output. hexo generate writes the deployable site to public. Inspect that directory before publishing: it should contain an index.html at the site root and the asset directories expected by your theme.
If a deployment plugin is configured, hexo deploy -g performs a generate operation before deploying. That shortcut is convenient, but it does not replace checking the destination, permissions and rollback procedure for your VPS.
Choose a deployment method
Hexo defines the build primitives, not a single VPS deployment architecture. Compare the practical choices using the following dimensions:
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
| Approach | Build location | File transfer | Rollback characteristics | Best fit |
|---|---|---|---|---|
| Build on the VPS | Production server | Git checkout or direct edits followed by a local build | Depends on your Git history and release discipline; an in-place build can leave a partially updated tree if interrupted | Small personal sites where simplicity matters more than isolation |
| Build locally | Workstation | Secure copy or rsync over SSH |
Good when each upload targets a versioned release directory | Owners who want to preview and verify before touching production |
| Build in CI | Controlled automation runner | Artifact transfer or an SSH-based deployment job | Strongest audit trail when artifacts and release identifiers are retained | Teams or sites with several contributors and scheduled publishing |
| Hexo deploy plugin | Wherever Hexo runs | Plugin-defined destination | Varies by plugin and target; document the plugin’s overwrite behavior before relying on it | Projects that prefer a command integrated with the Hexo workflow |
Regardless of the method, publish only the contents of public. Keep the source checkout, .git data, npm credentials and editing keys outside the NGINX document root.
A versioned release layout
A release layout makes a failed upload recoverable. Create a directory such as /var/www/hexo/releases/<release-id>, copy the contents of public into it, and point /var/www/hexo/current at the selected release. A symbolic-link switch is normally fast because NGINX begins reading the new complete tree instead of observing files arriving one by one. Retain at least one known-good release until the new one has been checked.
For an SSH transfer, an rsync job can synchronize a verified build:
rsync -az --delete public/ deploy@example-vps:/var/www/hexo/releases/release-id/
Use --delete only when the destination is dedicated to that release; it removes destination files that are absent from the source. Upload to a new directory first, verify the contents, then switch the current link. If you synchronize directly into the live directory, a network interruption can leave a mixture of old and new assets.
Configure NGINX to serve Hexo
NGINX’s root directive identifies the filesystem directory used to find a requested file; NGINX appends the request URI to that path. Set the root to the directory containing the generated files, not to the Hexo project directory that merely contains public.
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/hexo/current;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Replace the domain names and filesystem path. The index index.html directive makes a directory request resolve to that file. The try_files rule checks the requested path and returns a 404 when no matching file exists; this is appropriate for a static Hexo site and avoids sending arbitrary missing URLs to an application fallback.
Ensure the NGINX worker can traverse every parent directory and read the generated files, while the deployment account can create new release directories and switch the release link. Use the least-permissive ownership and mode settings that satisfy both jobs. Do not make the entire project writable by the web-server account.
After creating or editing the server block, validate it with the NGINX configuration-test command supplied by your distribution (the standard binary commonly accepts nginx -t). Reload the service through the distribution’s service manager only after validation succeeds. If your distribution requires enabling a site configuration or removing a default server, perform that step according to its packaging layout.
Point DNS at the VPS
At your DNS provider, create an A record for the hostname that should resolve to the VPS’s IPv4 address. Add an AAAA record only when the VPS has a working IPv6 address and NGINX is listening on IPv6. If you publish both apex and www, create records for both names or use the provider’s supported alias mechanism.
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.
DNS changes become visible according to the records’ TTL and resolver caches. Before requesting a certificate, confirm that the names in your NGINX server_name directive resolve to the intended VPS from outside your local network. An old address or an unintended AAAA record can cause certificate validation to reach the wrong machine.
Enable HTTPS with Certbot
Install Certbot and its NGINX integration using packages appropriate for your Linux distribution. Once the HTTP server block is reachable on the public domain, request certificates for every name you intend to serve:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
sudo certbot --nginx -d example.com -d www.example.com
The NGINX plugin obtains the certificate and can modify the NGINX configuration. Review the proposed redirect and choose whether all HTTP requests should be sent to HTTPS. If you use a different redirect policy, implement it deliberately and test both schemes after the change.
NGINX’s TLS configuration needs an SSL-enabled listener plus certificate and private-key paths. Protect the private key so ordinary users cannot read it while leaving it readable by the NGINX master process as required by the server. Do not paste private keys into the site directory or source repository.
After issuance, test the apex and www names separately, check that HTTP behaves according to your redirect policy, and confirm that assets load over HTTPS without mixed-content warnings. Test renewal using the renewal mechanism documented by your Certbot installation; possession of a certificate today does not prove that automatic renewal will work later. For an ACME HTTP challenge, the validation service must be able to reach the VPS on port 80. A firewall, reverse proxy or incorrect DNS record can block issuance even when the site appears to work from one network.
Publish updates safely
- Make and commit source changes, including posts, theme files and
_config.yml. - Build in the selected environment with the same Node.js major version used for previous releases.
- Run
hexo cleanwhen caches or old generated files could affect the result, then runhexo generate. - Inspect
publicfor the expected index, post URLs, images, stylesheets and scripts. - Copy the complete output to a new release directory rather than overwriting the active one.
- Check ownership and permissions, switch the NGINX root or release link, and reload NGINX only if configuration changed.
- Request the homepage, a new post, an old post and a deliberately missing URL over HTTPS.
- Keep the previous release until these checks pass; switch the link back if the new release is faulty.
When a permalink, domain or theme asset path changes, expect old URLs or browser caches to expose mistakes that a homepage check will not reveal. Add redirects or preserve the old path when continuity matters.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Troubleshooting
hexo: command not found
The CLI is either not installed for the current user or its npm global bin directory is absent from PATH. Run npx hexo, install the CLI for the account that performs builds, or correct that account’s shell path. Confirm with hexo --version or npx hexo --version.
EACCES while installing npm packages
This indicates that npm is trying to write somewhere the current user cannot modify. Fix the user-level npm prefix or use a project-local installation. Do not solve it by running the install as root; that often creates files the deployment user cannot update later.
The generated site is stale or missing recent edits
Run hexo clean followed by hexo generate. Confirm that you edited the source file under source/_posts and that the deployment copied the newly generated public directory rather than an older build artifact.
Best Value
NGINX returns 404 for the homepage
Check that the configured root contains index.html and that the active release link points to that directory. Verify that the requested hostname selects the intended server_name block. Then review the try_files rule and NGINX error log for the exact filesystem path it attempted.
A different site appears
The hostname may be selecting another server block, or DNS may still point to an old address. Compare the requested hostname with server_name, inspect enabled configurations, and verify both A and AAAA records. Test the domain after DNS caches have expired.
Certbot cannot complete validation
Confirm that every -d name resolves to this VPS and that inbound TCP port 80 is reachable. The HTTP challenge cannot succeed if a firewall blocks port 80, another service owns the port, or an AAAA record sends the validator to an unconfigured IPv6 endpoint. Correct DNS or connectivity first, then rerun the request.
Stylesheets or images are missing after deployment
Inspect the generated HTML for the asset URLs and verify that the corresponding files exist below the NGINX root. A site URL, permalink or theme base-path change can make links point to a directory that was never copied. Rebuild after correcting configuration and deploy a complete release, not only the changed HTML file.
Security and maintenance checklist
- Keep Node.js, npm dependencies, Hexo, themes and plugins updated on a planned schedule, checking compatibility before changing the build environment.
- Store source control and deployment credentials outside the web root, with permissions limited to the accounts that need them.
- Use a non-root deployment account and grant it only the access needed to create releases and switch the active path.
- Restrict NGINX’s private-key file while allowing the NGINX master process to read it.
- Back up the source repository, configuration and any release data you cannot recreate. Generated files are reproducible only when the source and dependency versions are preserved.
- Monitor disk usage, certificate-renewal results and NGINX errors. A static site has no application database to alert you when a build or DNS change silently fails.
- Keep at least one verified previous release so a bad theme update or malformed post can be reversed quickly.
Final deployment model
The reliable pattern is to treat Hexo as a build step and NGINX as a static file server. Install a supported Node.js release and Git, initialize the project, configure _config.yml, write posts under source/_posts, and generate into public. Transfer that directory to a versioned release path, set NGINX’s root to the active release, point DNS at the VPS, and obtain HTTPS with Certbot’s NGINX plugin. Keeping those boundaries intact gives you predictable updates, straightforward diagnostics and a rollback path without running Hexo in production for every request.
Frequently Asked Questions
Does Node.js need to remain running after the Hexo site is published?
No. Visitors receive the static files generated in public. Node.js is required wherever you run the Hexo build, but NGINX can serve an already generated release without a Node.js application process.
Can I host several Hexo sites on one VPS?
Yes. Give each site its own generated release directory and NGINX server block, with separate server_name values and roots. Keep each source project and deployment account separated so one site’s files cannot overwrite another’s.
What should I back up for a Hexo blog?
Back up the source repository, _config.yml, theme and plugin files, dependency lockfile, deployment configuration and any media that is not stored in the repository. The generated public directory can normally be rebuilt from those inputs.
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.
Recommended Free Tools




