Server roadmap
Lately I’ve been thinking on how to improve my server, hopefully this article will allow me to flush some ideas out of my mind and make them more concrete.
A more comprehensive description of the philosophy behind this server can be found on the about page.
Here is the gist of it:
- Self hosting services like git, email, search engine
- Centralization - Server interacts with external services (GitHub, Twitter, …) automatically synchronizing them with the self-hosted ones.
- Privacy - Better control over my data
- Experimentation - Playground for new ideas
- Learning - Implementing something yourself is often the best way to learn it.
Website
Design
The main hierarchy of the site is already in place but there is a crucial lack of design. I would like it to be clean and minimalist, the location of the content and it’s description should be obvious.
Design goals:
- Less JavaScript - It’s mandatory to display interactive maps, utilities and jupyter notebooks. The rest should be JS free.
- Less CSS - No fancy animation, no modern CSS features.
- Everything indexed and explained on the home page.
- Only 2 fonts (mono-space and sans-serif)
- Text based - Limit the use of icons and images
Site generator
I currently use a small shell script to generate HTML/RSS from templates and convert markdown and jupyter notebooks to HTML. Although it works and is pretty small (130 loc), extensibility is slim to none and the code is ugly.
I want to write my own static site generator in Common Lisp.
Why?
- Good language to bootstrap your way up from scratch
- Gaining more experience in meta programming
- Clean/extensible code
- Flexing on soydevs
Features
- Templating language, Lisp code in HTML/RSS in the same vein as ejs
- Converting markdown to HTML (currently using
pandoc
but it’s a bit slow) - Separating the generated HTML from the templates
Walks
I’m satisfied with the current implementation of the interactive map with Openstreetmap and Leaflet. Since I’m only using a very small subset of Leaflet’s features, I could rewrite those from scratch at some point although it’s not a priority.
On the walks index page, I’d like to add a screenshot preview, the date, the distance traveled and maybe a small description of the walk.
When a new gpx files is added it should be pushed to Openstreetmap GPS traces.
Newsletter
Normies prefer email over RSS feeds so it would be nice if I had a newsletter which act as a proxy to the RSS feed. I want to keep this site static so I should create a dedicated website for this purpose. It would work with any feed not just the one on my website.
Jupyter notebooks
The HTML generated by nbconvert
is very bloated but I don’t see myself writing my own converter any time soon so I think I’ll stick with it.
I do need to change the theme to a dark one.
Maybe some part of those article could be done with groff or RMarkdown but I’d loose the execution of Python code which is essential. I should look into a solution to write juptyer notebook in a text file.
Git server
The git server should automatically push to other hosting services (GitHub, Gitlab, Bitbucket, …), because pushing to both my server and GitHub creates a lot of friction during development.
stagit is a fine static front-end generator but lacks:
- A File tree, instead of all file directly listed
- Conversion of a markdown README to HTML, I added this feature with a small script
- Programming language highlighting
- A Modern design
I’ve been looking toward cgit which has all those features while being minimalist (although not as much as stagit).
Searx instance
The response time is 2/3 time slower than Duckduckgo or Google since it has to query my server + the search engines to aggregate. I should move the server to Belgium to improve it (currently in France).
Querying google doesn’t work for some reason so my instance mainly just acts as a proxy for Duckduckgo which defeats the purpose of searx. I should connect it to as much privacy respecting search engines as possible.
It would be nice if I made my instance more public by adding it to searx.space. But before I do, I have to put some antibot software in place.
Email server
I currently use Luke Smith’s email-wiz so I don’t really understand how my email server is configured. I should take a deeper look into the configuration before fully migrating to it, I’m still using Gmail for most tasks.
I’ve also noticed that my mails are still sometimes marked as spam by Gmail.