Compare commits
No commits in common. "main" and "main" have entirely different histories.
288
ccdn/README.md
288
ccdn/README.md
@ -1,144 +1,146 @@
|
|||||||
# Community Content Delivery Network (CCDN)
|
# 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._
|
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
|
|
||||||
|
Availability of HPR Content
|
||||||
The HPR site has traditionally been run on a single instance which makes the project vulnerable.
|
|
||||||
|
The HPR site has been 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.
|
|
||||||
|
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.
|
|
||||||
|
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.
|
|
||||||
|
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.
|
|
||||||
|
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.
|
|
||||||
|
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.
|
# Looking to the past
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
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_
|
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
|
## Requirements for Hosting
|
||||||
- fixed IP address
|
|
||||||
- unlimited bandwidth
|
- 24/7 Home Service
|
||||||
- fast > 500mb/sec upload
|
- fixed IP address
|
||||||
- large > 3T of storage
|
- unlimited bandwidth
|
||||||
- permission from your ISP to run a web server
|
- fast > 500mb/sec upload
|
||||||
- Contact information know to the Janitors
|
- large > 1T of storage
|
||||||
- Optional: [UPS](https://en.wikipedia.org/wiki/Uninterruptible_power_supply)
|
- 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
|
## Mediation for the Internet Archive Outage
|
||||||
eg: `https://hub.hackerpublicradio.org/redirect.php?id=9999`
|
|
||||||
|
Links media files will be updated to point to a redirect service running on the HPR Hub
|
||||||
This will maintain a list of HPR mirrors and for now do a simple random redirect
|
eg: `https://hub.hackerpublicradio.org/redirect.php?id=9999`
|
||||||
|
|
||||||
- https://hpr.nyc3.cdn.digitaloceanspaces.com/ → alpha.nj.us.na.mirror.hackerpublicradio.org
|
This will maintain a list of HPR mirrors and for now do a simple random redirect
|
||||||
- https://188.212.114.84/HPR/ → alpha.
|
|
||||||
- Internet Archive - DOWN
|
- https://hpr.nyc3.cdn.digitaloceanspaces.com/ → alpha.nj.us.na.mirror.hackerpublicradio.org
|
||||||
|
- https://188.212.114.84/HPR/ → alpha.
|
||||||
Maxmind GeoIP free edition has:
|
- Internet Archive - DOWN
|
||||||
|
|
||||||
Geolocation codes
|
Maxmind GeoIP free edition has:
|
||||||
|
|
||||||
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:
|
Geolocation codes
|
||||||
continent
|
|
||||||
|
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:
|
||||||
a two-character continent code, as follows:
|
continent
|
||||||
|
|
||||||
AF - Africa
|
a two-character continent code, as follows:
|
||||||
AN - Antarctica
|
|
||||||
AS - Asia
|
AF - Africa
|
||||||
EU - Europe
|
AN - Antarctica
|
||||||
NA - North America
|
AS - Asia
|
||||||
OC - Oceania
|
EU - Europe
|
||||||
SA - South America
|
NA - North America
|
||||||
country the two-character ISO 3166-1 country code
|
OC - Oceania
|
||||||
subdivision the region-portion of the ISO 3166-2 code for the region
|
SA - South America
|
||||||
|
country the two-character ISO 3166-1 country code
|
||||||
So I will use that.
|
subdivision the region-portion of the ISO 3166-2 code for the region
|
||||||
Ken Fallon (PA7KEN, G5KEN)
|
|
||||||
Although parsing is better with https://github.com/maxmind/mmdbinspect/
|
So I will use that.
|
||||||
I created a new documentation repo but am keeping the old one around for now as a work in progress
|
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
|
To that end I'm removing port 80 from `borg` and 443 from another server to point to the new server ``
|
||||||
That will redirect to one of the mirrors, currently only `vger.mirror.hackerpublicradio.org` but then the IA once it's back, and also
|
|
||||||
|
I plan to update the feeds, and the site to point to
|
||||||
For any of that I need media files - so this is fix now, check later.
|
That will redirect to one of the mirrors, currently only `vger.mirror.hackerpublicradio.org` but then the IA once it's back, and also
|
||||||
|
|
||||||
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`
|
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 ?
|
# Origne Server
|
||||||
|
|
||||||
This will need to be RW to the processes generating tools, but RO to the admins volunteers of the mirror ccdn network.
|
Where is the source of truth ? As in where will the mirrors rsync the files from ?
|
||||||
|
|
||||||
Using `rsync.net` is not ideal as we only have one account with RW access.
|
This will need to be RW to the processes generating tools, but RO to the admins volunteers of the mirror ccdn network.
|
||||||
|
|
||||||
> 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?
|
Using `rsync.net` is not ideal as we only have one account with RW access.
|
||||||
|
|
||||||
For now it makes sense to have this on `borg`.
|
> 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
|
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.
|
||||||
# Are files available
|
I want to be able add the encoded media, and the transcripts to the assets table as part of their generation
|
||||||
|
|
||||||
eps valid=1
|
# Are files available
|
||||||
show needs to be in eps table
|
|
||||||
|
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?
|
# Hosting a complete copy
|
||||||
|
|
||||||
> 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?
|
Where does a complete copy of the website that is easy to download to another computer live?
|
||||||
|
|
||||||
## Internet Archive (IA)
|
> 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?
|
||||||
|
|
||||||
What files associated with an episode are allowed to be stored on IA?
|
## Internet Archive (IA)
|
||||||
|
|
||||||
* full show notes?
|
What files associated with an episode are allowed to be stored on IA?
|
||||||
* Other associated example files?
|
|
||||||
* images
|
* full show notes?
|
||||||
* audio
|
* Other associated example files?
|
||||||
|
* images
|
||||||
What are the standard/best practices for organizing files on IA?
|
* audio
|
||||||
|
|
||||||
If we can store all show related files on IA, is that what we want to do?
|
What are the standard/best practices for organizing files on IA?
|
||||||
Should IA be the main storage of a shows assets?
|
|
||||||
|
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.
|
## git repository
|
||||||
|
|
||||||
We could also take advantage of GitLab, GitHub or other git hosting providers as mirrors.
|
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.
|
||||||
|
|
||||||
## Docker image
|
We could also take advantage of GitLab, GitHub or other git hosting providers as mirrors.
|
||||||
|
|
||||||
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.
|
## Docker image
|
||||||
|
|
||||||
Another way would be to have the image automatically rsync the website to initialize and then update on a regular basis.
|
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.
|
||||||
-->
|
-->
|
@ -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.
|
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.
|
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 run up to date patched stable software.
|
||||||
|
|
||||||
We have a long tradition of supporting and sharing hacker culture. Any identified vulnerabilities are fixed with credit if requested.
|
We have a long tradition of supporting and sharing hacker culture. Any identified vulnerability 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.
|
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 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.
|
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
|
Once you have set up your account, you will need to set up your local
|
||||||
development environment. [Instructions here](set-up-development-environment.md)
|
development environment. [Instructions here](set-up-development-environment.md)
|
||||||
|
|
||||||
Changes can be submitted as described in [hpr3797 :: How to submit changes to HPR](https://hackerpublicradio.org/eps/hpr3797/index.html).
|
Changes can be submittted as described in [hpr3797 :: How to submit changes to HPR](https://hackerpublicradio.org/eps/hpr3797/index.html).
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user