aboutsummaryrefslogtreecommitdiff
path: root/blog
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2021-01-07 17:48:59 +0100
committerCharles Cabergs <me@cacharle.xyz>2021-01-07 17:48:59 +0100
commit918af836f606a104e255443cb48b67f5373a3b1e (patch)
treecca0b0aada15751c2f5900eebb816b3e9131321b /blog
parent7f6942a3ab320d97d84c39ded8db1ed2b6e6eae3 (diff)
downloadcacharle.xyz-master.tar.gz
cacharle.xyz-master.tar.bz2
cacharle.xyz-master.zip
Added Server roadmap blog articleHEADmaster
Diffstat (limited to 'blog')
-rw-r--r--blog/server_roadmap.md96
1 files changed, 96 insertions, 0 deletions
diff --git a/blog/server_roadmap.md b/blog/server_roadmap.md
new file mode 100644
index 0000000..e03aa20
--- /dev/null
+++ b/blog/server_roadmap.md
@@ -0,0 +1,96 @@
+# 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](/about.html).
+
+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](https://lisp-lang.org).
+
+#### 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](https://ejs.co/)
+* 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](https://osm.org) and [Leaflet](https://leafletjs.com/). 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](/walks/), 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](https://www.openstreetmap.org/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](https://www.gnu.org/software/groff/) or [RMarkdown](https://rmarkdown.rstudio.com/) 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](https://git.cacharle.xyz)
+
+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](https://codemadness.org/stagit.html) 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](https://git.zx2c4.com/cgit/about/) which has all those features while being minimalist (although not as much as stagit).
+
+## [Searx instance](https://searx.cacharle.xyz)
+
+The response time is 2/3 time slower than [Duckduckgo](https://duckduckgo.com) or [Google](https://google.com) 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](https://searx.space). But before I do, I have to put some antibot software in place.
+
+## Email server
+
+I currently use [Luke Smith](https://lukesmith.xyz)'s [email-wiz](https://github.com/LukeSmithxyz/emailwiz) 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](https://gmail.com) for most tasks.
+
+I've also noticed that my mails are still sometimes marked as spam by Gmail.