Compare commits

10 Commits
main ... main

Author SHA1 Message Date
200abbd8ee Move Requested topics #13, created new pages 2025-08-29 12:32:31 +02:00
b4a5da7274 Update suggested_changes.md 2025-06-07 07:41:06 +00:00
e3fb66286a Update suggested_changes.md 2025-06-06 19:58:48 +00:00
50e48a8516 Add design_requirements.md 2025-06-06 19:32:25 +00:00
abdb8974fd Added sonos platform 2025-03-08 12:18:44 +01:00
Ken Fallon
501313de54 Update ccdn/README.md 2025-02-17 18:24:59 +00:00
Ken Fallon
66abf13b74 Update ccdn/README.md 2025-02-17 18:23:25 +00:00
Ken Fallon
e39593f8eb Update ccdn/README.md 2025-02-17 18:17:24 +00:00
Ken Fallon
6f5b545c09 Merge pull request '#10 - developer_information.md typographical errors.' (#11) from sgoti/hpr_documentation:future into main
Reviewed-on: HPR/hpr_documentation#11
2025-02-13 11:31:12 +00:00
Sgoti
93bcd4f171 #10 - developer_information.md typographical errors. 2025-02-12 18:17:41 -05:00
6 changed files with 311 additions and 150 deletions

View File

@@ -1,146 +1,144 @@
# Community Content Delivery Network (CCDN)
A location to track the deployment of the HPR Community Content Delivery Network, that provides a mirror network for our content.
Availability of HPR Content
The HPR site has been traditionally been run on a single instance, which makes the project vulnerable.
We have experienced several times where we have suffered from issues resulting from system outages, denial of service attacks, forced decommissioning, or increased costs.
There is a clear need to host the content in multiple geographically distributed networks to increase reliability and redundancy.
Applying a [Content Delivery Network](https://en.wikipedia.org/wiki/Content_delivery_network) in front of the provider addresses some but not all of these issues.
These large vendor solutions provide free tiers, but the long term business model shows that these are not sustainable.
Additionally the algorithms used would flag behavior considered normal for HPR contributors, as suspicious and would deny them access.
# Looking to the past
At the dawn of the Internet, it was common for websites and services like DNS to be [mirrored](https://en.wikipedia.org/wiki/Mirror_site) by friends.
This was for a long time not a viable option for HPR as the quantity of Audio Content was expensive to host and transfer, and was therefore beyond what a home user could reliably serve.
Over time, in some locations members of our community have access to facilities that a few years ago would have been reserved for Internet Service Providers.
If you are interested in helping hosting the HPR site and media, then please get in touch with _admin @ hackerpublicradio.org_
## Requirements for Hosting
- 24/7 Home Service
- fixed IP address
- unlimited bandwidth
- fast > 500mb/sec upload
- large > 1T of storage
- permission from your ISP to run a web server
- Contact information know to the Janitors
- Optional: [UPS](https://en.wikipedia.org/wiki/Uninterruptible_power_supply)
<!--
## Mediation for the Internet Archive Outage
Links media files will be updated to point to a redirect service running on the HPR Hub
eg: `https://hub.hackerpublicradio.org/redirect.php?id=9999`
This will maintain a list of HPR mirrors and for now do a simple random redirect
- https://hpr.nyc3.cdn.digitaloceanspaces.com/ → alpha.nj.us.na.mirror.hackerpublicradio.org
- https://188.212.114.84/HPR/ → alpha.
- Internet Archive - DOWN
Maxmind GeoIP free edition has:
Geolocation codes
Our data includes codes that can be used to identify the continent, country, subdivision, and postal or metro code area of the geolocation of the IP address. The codes follow these conventions:
continent
a two-character continent code, as follows:
AF - Africa
AN - Antarctica
AS - Asia
EU - Europe
NA - North America
OC - Oceania
SA - South America
country the two-character ISO 3166-1 country code
subdivision the region-portion of the ISO 3166-2 code for the region
So I will use that.
Ken Fallon (PA7KEN, G5KEN)
Although parsing is better with https://github.com/maxmind/mmdbinspect/
I created a new documentation repo but am keeping the old one around for now as a work in progress
To that end I'm removing port 80 from `borg` and 443 from another server to point to the new server ``
I plan to update the feeds, and the site to point to
That will redirect to one of the mirrors, currently only `vger.mirror.hackerpublicradio.org` but then the IA once it's back, and also
For any of that I need media files - so this is fix now, check later.
We have an account on `rsync.net` which I think we should use privately to push to from the `hpr_generator/static` and the `static/static`
# Origne Server
Where is the source of truth ? As in where will the mirrors rsync the files from ?
This will need to be RW to the processes generating tools, but RO to the admins volunteers of the mirror ccdn network.
Using `rsync.net` is not ideal as we only have one account with RW access.
> What is currently stored on `rsync.net`? Is it just the media files or the html, extended show notes, and related show images, or both?
For now it makes sense to have this on `borg`.
So for now it will be on borg. There are many disadvantages to this, single point of contact, same backup disk as the rsync source, and if I get ddosed were down. However for now that seems to be the way to go
This also means a change to how we send out files. The end point is no longer the IA but having it on the ccdn.
I want to be able add the encoded media, and the transcripts to the assets table as part of their generation
# Are files available
eps valid=1
show needs to be in eps table
# Hosting a complete copy
Where does a complete copy of the website that is easy to download to another computer live?
> What does hosting a complete copy of the website mean? Is this the static site (html, css, images [host and episode], media [ogg, mp3, spx, vtt, srt, txt]) and dynamic hub stuff?
## Internet Archive (IA)
What files associated with an episode are allowed to be stored on IA?
* full show notes?
* Other associated example files?
* images
* audio
What are the standard/best practices for organizing files on IA?
If we can store all show related files on IA, is that what we want to do?
Should IA be the main storage of a shows assets?
## git repository
As Ken as mentioned before, a git repository could be used to allow for an easy way to download and keep updated a complete copy of the website (perhaps without the audio files). This could be achieved relatively simply.
We could also take advantage of GitLab, GitHub or other git hosting providers as mirrors.
## Docker image
The image would not come with the static html, but would be set up to run the site-generator and associated update scripts on a regular basis.
Another way would be to have the image automatically rsync the website to initialize and then update on a regular basis.
# Community Content Delivery Network (CCDN)
_A location to track the deployment of the HPR Community Content Delivery Network, that provides a mirror network for our content._
## Availability of HPR Content
The HPR site has traditionally been run on a single instance which makes the project vulnerable.
We have experienced several occasions where we have suffered downtime, resulting from system outages, denial of service attacks, forced decommissioning, or increased costs.
There is a clear need to host the content in multiple geographically distributed networks to increase reliability and redundancy.
Applying a [Content Delivery Network](https://en.wikipedia.org/wiki/Content_delivery_network) in front of the provider addresses some but not all of these issues.
These large vendor solutions provide free tiers, but the long term business model shows that these are not sustainable.
Additionally the algorithms used would flag behavior, considered normal for HPR contributors, as suspicious and would deny them access.
## Looking to the past
At the dawn of the Internet, it was common for websites and services like DNS to be [mirrored](https://en.wikipedia.org/wiki/Mirror_site) by friends.
This was for a long time not a viable option for HPR as the quantity of Audio Content was expensive to host and transfer, and was therefore beyond what a home user could reliably serve.
Over time, and in some locations members of our community have access to facilities that a few years ago would have been reserved for Internet Service Providers.
If you are one of the fortunate people, and would like to contribute hosting of a mirror of the HPR site and media, then please get in touch with _admin @ hackerpublicradio.org_
### Requirements for Hosting
- 24/7 Home Service
- fixed IP address
- unlimited bandwidth
- fast > 500mb/sec upload
- large > 3T of storage
- permission from your ISP to run a web server
- Contact information know to the Janitors
- Optional: [UPS](https://en.wikipedia.org/wiki/Uninterruptible_power_supply)
<!--
## Mediation for the Internet Archive Outage
Links media files will be updated to point to a redirect service running on the HPR Hub
eg: `https://hub.hackerpublicradio.org/redirect.php?id=9999`
This will maintain a list of HPR mirrors and for now do a simple random redirect
- https://hpr.nyc3.cdn.digitaloceanspaces.com/ → alpha.nj.us.na.mirror.hackerpublicradio.org
- https://188.212.114.84/HPR/ → alpha.
- Internet Archive - DOWN
Maxmind GeoIP free edition has:
Geolocation codes
Our data includes codes that can be used to identify the continent, country, subdivision, and postal or metro code area of the geolocation of the IP address. The codes follow these conventions:
continent
a two-character continent code, as follows:
AF - Africa
AN - Antarctica
AS - Asia
EU - Europe
NA - North America
OC - Oceania
SA - South America
country the two-character ISO 3166-1 country code
subdivision the region-portion of the ISO 3166-2 code for the region
So I will use that.
Ken Fallon (PA7KEN, G5KEN)
Although parsing is better with https://github.com/maxmind/mmdbinspect/
I created a new documentation repo but am keeping the old one around for now as a work in progress
To that end I'm removing port 80 from `borg` and 443 from another server to point to the new server ``
I plan to update the feeds, and the site to point to
That will redirect to one of the mirrors, currently only `vger.mirror.hackerpublicradio.org` but then the IA once it's back, and also
For any of that I need media files - so this is fix now, check later.
We have an account on `rsync.net` which I think we should use privately to push to from the `hpr_generator/static` and the `static/static`
# Origne Server
Where is the source of truth ? As in where will the mirrors rsync the files from ?
This will need to be RW to the processes generating tools, but RO to the admins volunteers of the mirror ccdn network.
Using `rsync.net` is not ideal as we only have one account with RW access.
> What is currently stored on `rsync.net`? Is it just the media files or the html, extended show notes, and related show images, or both?
For now it makes sense to have this on `borg`.
So for now it will be on borg. There are many disadvantages to this, single point of contact, same backup disk as the rsync source, and if I get ddosed were down. However for now that seems to be the way to go
This also means a change to how we send out files. The end point is no longer the IA but having it on the ccdn.
I want to be able add the encoded media, and the transcripts to the assets table as part of their generation
# Are files available
eps valid=1
show needs to be in eps table
# Hosting a complete copy
Where does a complete copy of the website that is easy to download to another computer live?
> What does hosting a complete copy of the website mean? Is this the static site (html, css, images [host and episode], media [ogg, mp3, spx, vtt, srt, txt]) and dynamic hub stuff?
## Internet Archive (IA)
What files associated with an episode are allowed to be stored on IA?
* full show notes?
* Other associated example files?
* images
* audio
What are the standard/best practices for organizing files on IA?
If we can store all show related files on IA, is that what we want to do?
Should IA be the main storage of a shows assets?
## git repository
As Ken as mentioned before, a git repository could be used to allow for an easy way to download and keep updated a complete copy of the website (perhaps without the audio files). This could be achieved relatively simply.
We could also take advantage of GitLab, GitHub or other git hosting providers as mirrors.
## Docker image
The image would not come with the static html, but would be set up to run the site-generator and associated update scripts on a regular basis.
Another way would be to have the image automatically rsync the website to initialize and then update on a regular basis.
-->

View File

@@ -16,7 +16,7 @@ Some things we can change without discussion but other things we need to get inp
Changes can take a long time, community approval can take several months, while other changes require a lot of work from volunteers who are focused on other priorities.
We allow redistribution by releasing all our content under a [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/). In the same vein all our code is released under [aGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html), or other [OSI approved licenses](https://opensource.org/licenses) .
We allow redistribution by releasing all our content under a [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/). In the same vein all our code is released under [aGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html), or other [OSI approved licenses](https://opensource.org/licenses).
We do not track statistics to the detriment of our prime directive.
@@ -36,7 +36,7 @@ That said, we move with the times when there is a clear advantage to do so.
We run up to date patched stable software.
We have a long tradition of supporting and sharing hacker culture. Any identified vulnerability are fixed with credit if requested.
We have a long tradition of supporting and sharing hacker culture. Any identified vulnerabilities are fixed with credit if requested.
We use [RSS](https://www.rssboard.org/rss-specification) as a delivery mechanism, which is by default fault tolerant.
@@ -46,7 +46,7 @@ All our code is on [GitTea](https://repo.anhonesthost.net/HPR), please clone loc
[Our database](https://hackerpublicradio.org/hpr.sql) is updated frequently, please copy locally.
Our media is served from our [Community Content Delivery Network (CCDN)](https://repo.anhonesthost.net/HPR/hpr_documentation/ccdn/)
Our media is served from our [Community Content Delivery Network (CCDN)](https://repo.anhonesthost.net/HPR/hpr_documentation/ccdn/).
Bug reports, and patches are welcome from anyone without commitment.
@@ -61,5 +61,5 @@ In order to contribute you need to [create an account](https://repo.anhonesthost
Once you have set up your account, you will need to set up your local
development environment. [Instructions here](set-up-development-environment.md)
Changes can be submittted as described in [hpr3797 :: How to submit changes to HPR](https://hackerpublicradio.org/eps/hpr3797/index.html).
Changes can be submitted as described in [hpr3797 :: How to submit changes to HPR](https://hackerpublicradio.org/eps/hpr3797/index.html).

View File

@@ -22,9 +22,9 @@ The following are some of the clients, and we request that people help out repor
- [Podchaser](https://repo.anhonesthost.net/HPR/hpr_documentation/src/branch/main/podcatchers/Podchaser)
- [Podtail](https://repo.anhonesthost.net/HPR/hpr_documentation/src/branch/main/podcatchers/Podtail)
- [Radio.net](https://repo.anhonesthost.net/HPR/hpr_documentation/src/branch/main/podcatchers/RadioNet)
- [Sonos](https://repo.anhonesthost.net/HPR/hpr_documentation/src/branch/main/podcatchers/Sonos)
- [Spotify](https://repo.anhonesthost.net/HPR/hpr_documentation/src/branch/main/podcatchers/Spotify)
- [stagefright](https://repo.anhonesthost.net/HPR/hpr_documentation/src/branch/main/podcatchers/stagefright)
- [Top Podcast](https://repo.anhonesthost.net/HPR/hpr_documentation/src/branch/main/podcatchers/TopPodcast)
See Wikipedia for a [list of podcast clients](https://en.wikipedia.org/wiki/List_of_podcast_clients).

View File

@@ -0,0 +1,25 @@
# Sonos
<a href="https://upload.wikimedia.org/wikipedia/commons/a/a8/Sonos_Logo.jpg" >
<img width="200" src="https://upload.wikimedia.org/wikipedia/commons/a/a8/Sonos_Logo.jpg" alt="Sonos logo" />
</a>
<!--
- Confirmed working with HPR Feeds and [CCDN](https://repo.anhonesthost.net/HPR/hpr_documentation/wiki/Community-Content-Delivery-Network)
- [Source Code on GitHub](https://gpodder.github.io/)
-->
## Description
![Sonos UI](podcatcher_Sonos.png "A screenshot of the Sonos UI")
```
```
## How to install
## Subcribing to HPR
## Playback

View File

@@ -0,0 +1,92 @@
# Requested topics
This is a list of topics that have been requested by the community.
## General
- How did you get into podcasting/linux/geekdom?
- What podcasts you listen to and can recommend
- What's in your bag? Tell us what tools/gear/stuff you keep close at hand.
- What got you into Linux?
- Your favorite Android applications.
- Your favorite desktop applications.
- Your favorite browser extensions.
- A introduction to Wireshark.
- How to set up your own blog.
- Choosing a artistic design for website, business cards etc.
- Music Theory
- Installing a VPN to your home network
- Init and System.d
- Episodes for the LPI, or the Networking series.
- Beginning Audio Series for HPR and OSMP Release
- Hackintosh computers - what are they, why would you want one.
- Grub 2.0 introduction and customization.
- FM Transmitter hack to listen into internet streams
- How I Got Into Accessible Computing
- How to do knitting
- How to build a house
- How to solder <a href="<!--% absolute_path(baseurl) %-->eps/hpr1037/index.html">hpr1037</a>,
<a href="<!--% absolute_path(baseurl) %-->eps/hpr1047/index.html">hpr1047</a>
- How to weld
- How to fix a car
- Reviews of stream playing software, (for linuxheads who don't want to keep a browser tab open all the time)
- Reviews of stream ripping software on linux
- Beginners guide to gnuplot
- Nagios series, intro, setup, advanced ...
- How to set up GPG/openPGP
- What I do with my Raspberry Pi
- It broke, I fixed it
- How does coreboot work
- Introduction to HAM Radio
- I've moved and they do it like this here
- How to record a tag team tutorial on a topic
- Open Street Map new editor
- etymology
- functional versus procedural programming
- sed, awk and grep
- Setting up imap/smtp (gmail) in a cli mail program
- Irssi - a sane setup
- Your view of the future
- Alternative uses for Bayesian email classifiers (<a href="https://www.youtube.com/watch?v=JKB5CojW4AA">more info</a>)
- How to use a multimeter, and other basic electronic components like a 555 timer
- How does Hubble remain fixed on a spot in space while in orbit of the earth
- Gnu automake system.
- Any experiences integrating Dell/Wyse thin- and zero- clients into linux networks.
- What Are the Answers I Need, To the Questions I Don't Know Enough to Ask?
## Networking
### IPv6
- What is an IP address, and what is IPv6 - basic settings. Why can't we just NAT at the ISP level, are there privacy issues in having your MAC address as part of your IP?
- How to setup IPv6 on Linux, BSD, Windows, Mac, Spark, Android etc
- IPv6 Addressing terminology , format, shortcuts, address structure, (link local, unique and global), reservations, subnetting, allocation
- IPv6 Firewall, what to block what to allow
- Packet structure
- Troubleshooting IPv6 network issue, using common tools with IPv6, ping icmp, telnet, curl, tcpdump, wireshark,etc
- How discovery is handled, what is used for dhcp
- DNS server setup
- Routing server setup
- Setting up common services like ssh, apache, nginx
- Setting up VPN like wireguard
- Explanation of the new Anycast and why you would use it.
- Transition plans tips and tricks.
## Security
What do we need for a firewall and what are the detection/prevention technologies that we could be implementing?
Beyond Firewall and an IDS/IPS, what do I need?
If you were to treat your home network like a corporate server farm, what tools and hardware would it entail to treat your home network like a security professional?
Should one use a secondary IDS, behind the firewall, to record what the primary defenses missed.
Where and how do I set that up?
Beyond firewall and IDS, what other tools should we be running ?
Where should they be in my network, and how many physical boxes are we talking about ?
Emphasis should be on low power devices and free as in beer tools.
How to Read Logs and Formulate a Response to an Intrusion.
What I've learned from SW, is that you can't prevent an intrusion, it's how to respond when you are compromised.
Again, according to SW, the security manager's job is to detect intrusions, inside 48 hours rather than 48 months.
How can you protect your proprietary data and customer database?
Better uses for IPFS and IPNS to get a better understanding of practical use of this.

46
suggested_changes.md Normal file
View File

@@ -0,0 +1,46 @@
# HPR Suggested Change
## Track reservation key in eps table
Moved from https://repo.anhonesthost.net/HPR/hpr_generator/issues/238
A uploaded show is know by it's key, this should be kept in the eps table so it can be located easily.
## Remove deprecated fields in eps table
Check if version and downloads can be deprecated.
## Comment links should be clickable
Should they ? More moderation needed ?
https://repo.anhonesthost.net/HPR/hpr_generator/issues/157
## Audit of media and supplementary files
https://repo.anhonesthost.net/HPR/hpr_generator/issues/154
Given a show like 2173, which was built to link to supplementary notes on the HPR server, these notes (and other assets) are currently not available because the links are incorrect.
This show references several assets for example:
sqlite> select filename from assets where episode_id = 2173;
┌─────────────────────────────┐
│ filename │
├─────────────────────────────┤
│ hpr2173/blinkt_client.py │
│ hpr2173/blinkt_legends.svg │
│ hpr2173/cronjob_comments │
│ hpr2173/full_shownotes.html │
│ hpr2173/img_01.png │
│ hpr2173/img_02.png │
│ hpr2173/img_03.png │
│ hpr2173/img_04.png │
│ hpr2173/img_05.png │
│ hpr2173/img_06.png │
└─────────────────────────────┘
These are on the IA with the same filenames.
Could this issue be resolved by redirection?