Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
Ah, Ok.
I do as (or a similar workflow): I rsync the content directory and let Hugo on the server render. My sites are public, but perhaps they're just much smaller or not as popular; Hugo renders even my largest site in about a second, but for a large, slow, heavy-use production situation I could see a push-and-swap process for a more atomic site update.
I don't see the degradation you do, but there are so many possible variables.
My biggest gripe about Hugo is how limited it is in supporting source document formats. There's no mechanism for hooking in different formats, and the team is reluctant to merge PRs for other formats. When I started with Hugo, I had a large repository of essays spanning a decade and written in a variety of markup, from asciidoc (which I used for years), to reST, to markdown; and markdown is by far the worst. I was faced with converting everything to markdown, which was usually a lossy process because markdown is so limited, or not publishing all of that history. And now we have djot, which is almost the perfect plain text markup language, but I again have to first do a lossy conversion to markdown to get Hugo to consume it. It low-key sucks, and I'm actively looking for an alternative that has a more flexible AST-based model for which new formats can be added; something that consumes a format like pandoc's AST.
Did you look at Pelican? I share the frustration with much of Hugo's infrastructure: the template language is buggy and inscrutable, and the plugin architecture wanting.
I ended up with Hugo, but I considered Pelican. It uses standard Jinja templates, which I find much more rational (but it might just be me) and I recall there were plugins for a lot of things, including different source formats. The code is written in Python, so that even if there isn't a plugin for a format you need, there probably is a Python library for it and it should be relatively easy to make it a plugin.
Crap, now I want to switch to Pelican...
I have not, but I will. I may also look at Zola, although it, too, appears at the surface level to be tightly coupled with markdown.
It's just Go templates, which are pretty solid; I'd be surprised by any bugs, unless they're in the Hugo short codes. The syntax is challenging, even if you're a Go developer and use it all the time. It's a bespoke DSL, and a pretty awful one: it's verbose, obtuse, and makes some common things hard.
Go is my language of choice, but my faith gets shaky whenever I have to use templates.
I'm not a huge fan of Python; despite its popularity, it's got a lot of problems, not least of which is the whole Python 2/3 fiasco; which, years later, is still plaguing us. However, if I can containerized it so it isn't constantly breaking in the background when I do a system update, I'm not opposed to using a project written in it. At least it isn't Node; I won't let that crap onto any server I admin.
Edit: Zola has the same problem as Hugo.