diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2021-01-07 17:48:59 +0100 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2021-01-07 17:48:59 +0100 |
| commit | 918af836f606a104e255443cb48b67f5373a3b1e (patch) | |
| tree | cca0b0aada15751c2f5900eebb816b3e9131321b /blog | |
| parent | 7f6942a3ab320d97d84c39ded8db1ed2b6e6eae3 (diff) | |
| download | cacharle.xyz-918af836f606a104e255443cb48b67f5373a3b1e.tar.gz cacharle.xyz-918af836f606a104e255443cb48b67f5373a3b1e.tar.bz2 cacharle.xyz-918af836f606a104e255443cb48b67f5373a3b1e.zip | |
Diffstat (limited to 'blog')
| -rw-r--r-- | blog/server_roadmap.md | 96 |
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. |
