Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build new site showing awesome-selfhosted data #912

Open
jamesread opened this issue Oct 24, 2024 · 3 comments
Open

Build new site showing awesome-selfhosted data #912

jamesread opened this issue Oct 24, 2024 · 3 comments
Labels
discussion General discussion enhancement New feature or request tools Automation and maintenance tools

Comments

@jamesread
Copy link

Hey there, I tried reaching out via email a day or two ago, but I'd like to also ask publicity; I have a new idea for how to display the awesome-selfhosted data in a way that some members of the community might find useful.

I'd like to not share the concept and site here, but discuss privately simply because I don't want to rip off the amazing work of this repo & contributors without your go ahead. My ideal outcome would be to contribute the idea back to this repo / organization - I have no commercial intents or anything like that.

My email address is [email protected] - can I share you some screenshots and links privately, and you say if you want me to contribute back, or stop, or go ahead but do my own thing? Thanks!

@nodiscc
Copy link
Member

nodiscc commented Oct 24, 2024

Hi @jamesread sorry for not taking the time to reply to your email yet, let's continue this discussion here - openness and transparency have characterized this project since the beginning.

Can you tell us more about this proposed way to display the data? (I already know from your email but again, let's discuss this publicly - it seemed interesting).

Anyone is free to reuse our data in any way they want, it is licensed under CC-BY-SA-3.0 which only requires that you give appropriate credit by linking back here in a visible way, and that your derived work stays under the same license.

About possible collaborations, we could implement this in any way we find comfortable, for example:

  • you maintain the tooling to update/generate the proposed website, host it on your own servers
  • we maintain the tooling in collaboration in a repository under the https://github.com/awesome-selfhosted/ organization, you host it on your own server
  • same as above, but we host it on the the server already hosting https://awesome-selfhosted.net/, under a subdomain. In this case, the deployment must be automated (as is the case with the current ansible role that deploys and updates awesome-selfhosted.net automatically. In fact it is expected that any tools used would be Free and Open-Source)

In any case, the main constraint is time required to maintain the solution (I barely have time to maintain the current list + the tooling responsible for automated maintenance/website generation), as all people involved are volunteers. So a high level of autonomy would be expected.

@nodiscc nodiscc added enhancement New feature or request tools Automation and maintenance tools discussion General discussion labels Oct 24, 2024
@jamesread
Copy link
Author

jamesread commented Oct 24, 2024

Hey @nodiscc , thanks so much for taking the time to reply - and I also appreciate that we can have this discussion in the open too, brilliant ;-)

So I as a huge fan of awesome-selfhosted myself (I even have OliveTin in the list!), one thing I found myself wanting to do was to work out almost a selfhosted "roadmap" for myself, or visualize the landscape of available options in an ecosystem. For me, I really like the visual offered by the CNCF landscape - http://l.cncf.io (which is very much aimed at the kubernetes community).

From knowing that the CNCF landscape software itself is open source, I just span up a quick experiment on my machine, a python script to injest the .yml files of the selfhosted data, and spit it back out again in a monolithic .yaml file needed by the CNCF landscape software. I then added the dashboard-icons repo, and the screenshots below are what I ended up with - talking about standing on the shoulders of 3 great projects, I hacked this together in an hour or so!

image

image

What I feel this format gives me over and above the existing html format at https://awesome-selfhosted.net/ is the same categories that you have, just with the simple project icons - this to me just feels very satisfying to browse.

Where I'd like to go from here, is to add the ability to mark projects as "todo", "not interested", and "have this in my stack". This would make it really nice for people to plan out their own self hosted roadmaps for themselves, and explore the interesting projects in this list.

I dare say it, but this site could easily be a docker container, which people can self host, if they want to keep their selfhosted "roadmaps" private. Equally, it would be nice to filter "just the stuff I'm running" for sharing screenshots with other people in the community, on reddit, twitter, etc :-)

I'm quite sure there are many people that value the information it's current format, so I'm not suggesting a replacement of awesome-selfhosted.net - my proposal here is for a new representation of the same data, just visually, with a mechanism to tag/edit the data for their personal needs.

I'd be more than happy to host myself, host on awesome-selfhosted.net under a subdomain (optionally on other servers), or just create a new project like "my-selfhosted-roadmap" that people just self host themslves, using the data?

My biggest fear about hosting an online version is the sheer bandwidth consumed by all the icons! There are certainly optimizations available there (like making it a couple of large imagemaps), however.

@nodiscc
Copy link
Member

nodiscc commented Oct 26, 2024

I am familiar with https://landscape.cncf.io/ (also involved in https://github.com/awesome-foss/awesome-sysadmin and we delegated part of the software catalog to the CNCF landscape since it is much more extensive, and the various views/options are very useful - I happen to prefer the "Card" view :) )

I think this would definitely be an interesting alternative to the existing site.

My biggest fear about hosting an online version is the sheer bandwidth consumed by all the icons

  • There are 2535 entries in the CNCF landscape (curl -s https://raw.githubusercontent.com/cncf/landscape/refs/heads/master/landscape.yml | grep -c ' name:')
  • and 1220 in awesome-selfhosted-data (ls awesome-selfhosted-data/software/ | wc -l).
  • https://landscape.cncf.io/ loads 18MB of svg files
  • This would put us at ~8MB per page load (only the first page load, these will be cached for a few hours afterwards).
  • There are ~2000 daily unique visitors on https://awesome-selfhosted.net/ (I wrote somewhere that I would share the stats but didn't have time yet)
  • which would put us at... 17GB bandwidth per day 🤣 if the new site receives the same amount of traffic.
  • Moving the icons to a large image map would only reduce the number of requests/connections (actually not really since we use HTTP2), not the total file size.
  • I think the hosting provider could handle this without problems though, even if it kind of feels like a waste.

a python script to injest the .yml files of the selfhosted data, and spit it back out again in a monolithic .yaml file needed by the CNCF landscape software.

This is great, are you willing to publish this tool under a FOSS license? We could arrange the organizational/ownership/maintenance model stuff at a later time.

add the ability to mark projects as "todo", "not interested", and "have this in my stack". This would make it really nice for people to plan out their own self hosted roadmaps for themselves

Agreed, wouldn't this require maintaining a fork of the CNCF landscape software though?

this site could easily be a docker container, which people can self host, if they want to keep their selfhosted "roadmaps" private

Also agreed, and regardless of the hosting/who-does-what option we pick later, having the possibility to generate the site locally is a requirement anyway.

OliveTin

👌 tried it briefly a while ago, and know it's in my list of things to add to my stack. I use Gitea issues to manage this "todo list" but the proposed tool would also work :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion General discussion enhancement New feature or request tools Automation and maintenance tools
Development

No branches or pull requests

2 participants