hugo-via-mysocket.md 4.5 KB

+++ title = "Selfhosting a Hugo blog with mysocket.io" author = ["George Jones"] publishDate = 2021-11-12 lastmod = 2022-02-26T08:59:49-05:00 tags = ["geek", "blogging", "org", "emacs", "HOWTO"] categories = ["blog"] draft = false +++

...that time when you realize your blog is hosted on a web site who's sole purpose is to support coding, and they plaster the motto

"Learn Git and Github without any code!"

all over their site, and you realize that its been taken over by marketing clones ... and it's time to do your geekly exit stage left and self host on a raspberry pi or something...

This is a HOWTO of the things I did to migrate my HUGO blog off github onto a self-hosted raspberry pi using mysocket.io.

The original setup is described here Publishing a blog on Github with Org and Hugo

1 Do normal development with local hugo server {#do-normal-development-with-local-hugo-server}

In =${HUGO_BASE_DIR}

gmj@ed blog [master] $ hugo server -v -D

browse to http//localhost:1313 to see updates in realtime.

2 Update config.toml {#update-config-dot-toml}

In ${HUGO_BASE_DIR}/config.toml update the following:

# baseurl = "https://eludom.github.io/"
baseurl = "https://curious.galthub.com/

#homepage = "eludom.github.io"
homepage = "curious.galthub.com"

3 run hugo to regenerate docs {#run-hugo-to-regenerate-docs}

The docs/ directory will be the root of your webserver

gmj@ed blog [master] $ hugo
Building sites …

                   | EN
-------------------+------
  Pages            | 210
  Paginator pages  |   0
  Non-page files   |   0
  Static files     |  78
  Processed images |   0
  Aliases          |   0
  Sitemaps         |   1
  Cleaned          |   0

Total in 2718 ms
gmj@ed blog [master] $ find . -mtime -^C
gmj@ed blog [master] $ hugo server -v -D^C
gmj@ed blog [master] $ find . -mtime -5 | head
.
./.#curious.org
./curious.org
./docs/index.html
./docs/404.html
./docs/robots.txt
./docs/about/index.html
./docs/about/index.xml
./docs/sitemap.xml
./docs/tags/poetry/index.html
...

TODO 4 Copy the files to where the web server is (if needed) {#copy-the-files-to-where-the-web-server-is--if-needed}

Which server...

      rsync -Cavz docs gmj@hangout:~/blog

TODO 5 Run local webserver {#run-local-webserver}

Run a web server with the root pointed at the docs/ directory

$ cd ~/blog/docs/
$ python3 -m http.server 1313

TODO 6 Set up tunnel {#set-up-tunnel}

Set up a tunnel

$ mysocketctl connect --port 1313 --name hugo test

TODO 7 Define CNAME {#define-cname}

...

TODO 8 Add the CNAME to the allowed domain names for the tunnel {#add-the-cname-to-the-allowed-domain-names-for-the-tunnel}

...

9 DONE install apache on raspberry pi using asnible {#done-install-apache-on-raspberry-pi-using-asnible}

TODO 10 Make sure apache root is on USB thumb drive {#make-sure-apache-root-is-on-usb-thumb-drive}

TODO 11 copy_rsync blog_docs to new apache root {#copy-rsync-blog-docs-to-new-apache-root}

  • cron?
  • Or use sshfs mounting from ed to hangout?

TODO 12 redirect apache root to blog {#redirect-apache-root-to-blog}

TODO 13 set up a new mysocket tunnel for blog/apache {#set-up-a-new-mysocket-tunnel-for-blog-apache}

TODO 14 set up CNAME curious.galthub.com pointing at tunnel {#set-up-cname-curious-dot-galthub-dot-com-pointing-at-tunnel}

14.0.1 Test it out {#test-it-out}

curl http://curious.port111.com

14.0.2 Future {#future}

  • archive.org?
  • CDN ?