After a long time of using tools like GitHub pages and looking for someone to host my little virtual home, I've decided to go the way of the selfhost…. well almost, a VPS which is pretty much the same thing. My motivation was mainly to have much more control over the tools I use in the virtual world, like git servers, mail servers and more, and in the process learn how a web server works.
Easier than it sounds
I already had a domain name for almost a year, so what I was missing was the server. Sadly I can't afford to set one up at home, so I decided to rent a VPS for only 3.70 dollars a month, that's about 70 Mexican pesos. Come on, I spend more on a snack on the weekend.
Setting it up was quite simple, although I must say that I was guided entirely by Luke Smith's youtube videos, where he shows us step by step how to set up a web server with nginx. A little bit of research (i.e. the HexDSL video) led me to set up the gemini server using Agate. Actually it was very simple, I have currently running a web server, a mail server (not functional right now, because they have blocked my SMTP port until a month has passed, to confirm that it is not spam according to them), a git server, and I'm planning on setting up my own cloud with NextCloud. All for 70 pesos a month, and with the advantage that I have complete control over what happens on the server.
Publishing from Emacs
Since I want to have both a web page and a gemini capsule, and I don't want to write the same thing twice in two different markup languages, I decided to look for a way to write everything in a common language (markdown for example) and then export it to both a web page and the gemini capsule. After a bit of searching on "converters" and possible static site generators I discovered
org-publish, a function of
org-mode that allows to export .org files and generate complete projects, be it web sites or books in LaTeX or whatever you want.
With this in mind and a bit of trial and error with lisp, I managed to have what I currently have: a simple, plain page and the gemini capsule, both generated thanks to a series of org-mode files. Is there anything Emacs can't do?
I have to keep refining details yet, but I think it's already at a level to show it to the public. Let's see how it works and what other curious things I can do with the VPS, for the moment it seems that my synchronization and mail needs are solved, so I can say goodbye to Gmail and G-drive for the moment.