Skip to content

gethexon/hexon

Repository files navigation

Hexon

Let's hexo online!

GitHub release (latest by date)

English | 中文

home screen

❔ How it works?

Hexon is a GUI for hexo with git, run commands and manage content for you.

⭐️ Features

  • Post and page management
  • Front-matter template
  • Online image management use imageur

📘 Guide

Before Install

Make sure your git, hexo and Node.js workflow is fine. Hexon only provide a GUI for these commands, but not implement them.

Install

git clone https://github.com/gethexon/hexon --depth 1
cd hexon
pnpm install
pnpm run setup

Uninstall

Just remove the folder you just cloned

rm -rf hexon

Start

For plain Node.js:

pnpm start

For better devOps with pm2

pnpm prd
# or integrate pm2 with `pnpm start` manually

Update

Just uninstall the old one and install the new one.

💻 Commands

  • pnpm run setup: install and config
  • pnpm start: start hexon with node
  • pnpm prd: start hexon with pm2
  • pnpm resetpwd: reset password
  • pnpm script: manage custom script

You can replace hexon commands with your own bash script inside hexo blog folder.

e.g. modify git sync script

  1. write your script in <hexo-blog-path>/git_sync.sh
  2. run pnpm script
  3. select git sync
  4. set script to bash ./git_sync.sh

🖥️ Develop

  • Check out main branch.
  • Run pnpm dev-init install dependencies and config hexon.
  • Run pnpm dev and show your magic!

💩 Have trouble?

❓ Want to know more?

Start a discussion.

👌🏻 FAQ

404 Error

Maybe mistakes in revert proxy config(e.g. Nginx or Apache config). To verify, use curl on your server directly request assets without any revert proxy. This should be a command looks like:

curl http://localhost:5777/assets/HMonacoEditor.5101bbae.js

Or hexon failure. Just raise an issue.

If you are using Apache's reverse proxy... Please make sure to add `AllowEncodedSlashes NoDecode` in your `VirtualHost` configuration, and add `nocanon` at the end of the `ProxyPass` setting.

See https://stackoverflow.com/questions/52034899/express-nodejs-server-through-apache-proxy-error-404-for-route-with-express-par and https://stackoverflow.com/questions/4390436/need-to-allow-encoded-slashes-on-apache

Example:

<VirtualHost *:443>
    ServerName blog-admin.example.com

    SSLCertificateFile /etc/certificates/example.com.crt
    SSLCertificateKeyFile /etc/certificates/example.com.key
    SSLCertificateChainFile /etc/certificates/example.com.crt

    SSLEngine On
    SSLProxyEngine On
    ProxyRequests Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode

    ProxyPass / http://localhost:5777/ nocanon
    ProxyPassReverse / http://localhost:5777/
</VirtualHost>

Star history

Star History Chart

Contributors

License

GPL-3.0 © winwin2011