From 505fee778fc6a0f18b93b9f30f9008cf3e99dffb Mon Sep 17 00:00:00 2001 From: Johannes Hendrik Gerard van der Weide Date: Fri, 27 Oct 2023 11:43:18 +0200 Subject: [PATCH] Updated styling and YAHOO first blog :3 :3 :3 --- _navbar.yml | 6 +- _site.yml | 2 +- docs/example_project1.html | 8 +- .../figure-html/pressure-1.png | Bin 16279 -> 0 bytes docs/index.html | 27 +- docs/main.css | 68 +++++ ...example_project2.html => owncast.nix.html} | 259 +++++++++--------- example_project2.Rmd | 29 -- index.Rmd | 14 +- main.css | 68 +++++ owncast.nix.Rmd | 95 +++++++ 11 files changed, 381 insertions(+), 195 deletions(-) delete mode 100644 docs/example_project2_files/figure-html/pressure-1.png create mode 100644 docs/main.css rename docs/{example_project2.html => owncast.nix.html} (62%) delete mode 100644 example_project2.Rmd create mode 100644 main.css create mode 100644 owncast.nix.Rmd diff --git a/_navbar.yml b/_navbar.yml index a79e8ba..ede36c3 100644 --- a/_navbar.yml +++ b/_navbar.yml @@ -15,10 +15,8 @@ left: - text: "Blog Posts" menu: - - text: "Example Project 1" - href: ./example_project1.html - - text: "Example Project 2" - href: ./example_project2.html + - text: "owncast.nix" + href: ./owncast.nix.html right: - text: "Source" diff --git a/_site.yml b/_site.yml index bb3fde3..6fb5a04 100644 --- a/_site.yml +++ b/_site.yml @@ -2,7 +2,7 @@ name: "HermitCollective Blogs" output_dir: 'docs' output: html_document: - theme: darkly + css: main.css highlight: zenburn toc: true toc_depth: 2 diff --git a/docs/example_project1.html b/docs/example_project1.html index b444b39..fa7950c 100644 --- a/docs/example_project1.html +++ b/docs/example_project1.html @@ -17,7 +17,7 @@ - + @@ -151,6 +151,7 @@ code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */ + @@ -443,10 +444,7 @@ div.tocify { diff --git a/docs/example_project2_files/figure-html/pressure-1.png b/docs/example_project2_files/figure-html/pressure-1.png deleted file mode 100644 index 0f00f6ff66741db9bec5f3bb869e9bf79f8c37cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16279 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 - + @@ -46,6 +46,7 @@ + @@ -259,10 +260,7 @@ $(document).ready(function () { @@ -285,18 +283,19 @@ $(document).ready(function () { -

Welcome to my website!

-
-

This is still very much work in progress

-

Click the links in the menu above to look around.

+

Welcome to blog archive and directory of HermitCollective!

+
+

Info

+

Blogs can be found under the “Blog Posts” tab.
+Under the “HermitCollective” tab you will find all of HermitCollective’s +services.

Notes

-

This website is a collection of regular (R)Markdown document, so you -can use all the usual formatting.

-

If you are new to R Markdown, you can learn more about it on the R Markdown website.

+

Every blog will have a link the the authors website and a link to a +fediverse post +where you can comment on the blog.

diff --git a/docs/main.css b/docs/main.css new file mode 100644 index 0000000..9f28688 --- /dev/null +++ b/docs/main.css @@ -0,0 +1,68 @@ +body { + background: #1E1E1E; + color: white; +} + +.bg { + background: #242424; +} + +h1 { + background: #1E1E1E; + color: white; +} + +dive { + background: #1E1E1E; + color: white; +} + +a:link { + color: #b30000; +} + +a:hover { + color: #EFEEEE; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + margin-top: 2px; + list-style: none; + font-size: 15px; + text-align: left; + background-color: #242424; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #EFEEEE; + white-space: nowrap; +} + +.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { + z-index: 2; + color: #b30000; + background-color: #242424; + border-color: #242424; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + background-color: #242424; +} + diff --git a/docs/example_project2.html b/docs/owncast.nix.html similarity index 62% rename from docs/example_project2.html rename to docs/owncast.nix.html index bfcf342..4f0ee61 100644 --- a/docs/example_project2.html +++ b/docs/owncast.nix.html @@ -9,15 +9,16 @@ + - + -Example Project 2 +Setting Up Owncast with NixOS - + @@ -46,111 +47,11 @@ - - - + @@ -443,10 +344,7 @@ div.tocify { @@ -464,38 +362,129 @@ div.tocify { -

Example Project 2

-

2023-10-26

+

Setting Up Owncast with NixOS

+

Hertog

+

2023-10-27

-
-

R Markdown

-

This is an R Markdown document. Markdown is a simple formatting -syntax for authoring HTML, PDF, and MS Word documents. For more details -on using R Markdown see http://rmarkdown.rstudio.com.

-

When you click the Knit button a document will be -generated that includes both content as well as the output of any -embedded R code chunks within the document. You can embed an R code -chunk like this:

-
summary(cars)
-
##      speed           dist       
-##  Min.   : 4.0   Min.   :  2.00  
-##  1st Qu.:12.0   1st Qu.: 26.00  
-##  Median :15.0   Median : 36.00  
-##  Mean   :15.4   Mean   : 42.98  
-##  3rd Qu.:19.0   3rd Qu.: 56.00  
-##  Max.   :25.0   Max.   :120.00
+
+

What is Owncast?

+

Owncast is a lightweight +program to set up your own livestreaming website as an alternative to +streaming on twitch or youtube.

+

It is fully free and open source licensed under the MIT license and can even be linked +with the fediverse!

+

Which to me is perfect! I really wanted to get back into +livestreaming (I used to do this on twitch allot) but I wanted a +platform without adds or corporate influence and thus owncast.

+
+
+

As for NixOS

+

I use NixOS to selfhost everything I can (including this website!) +but I couldn’t find any wiki pages or concrete owncast configurations +online, I did eventually get it working and will share my configuration +here.

+
+

The Owncast part of the config

+

This part is the easiest it is simply enabling it setting an unused +port (the default and recommended is 8080) and then let owncast open +that part of the firewall.

+
services.owncast = {
+    enable = true;
+    port = 8080;
+    openFirewall = true;
+  };
+
+
+

The nginx part!

+

Nginx is needed to setup a proxy so we can link owncast to our domain +and ensure everything will run securely. We begin by setting the +(sub)domain that we wish to point at owncast and we enable SSL and ACME. +The locations part needs to point at the port we set earlier so that +nginx knows to point at owncast. Owncast also needs websockets so we set +that to true as wel, the extra config is to ensure our proxy works.

+
 services.nginx.virtualHosts."live.hermitcollective.net" = {
+      forceSSL = true;
+      enableACME = true;
+      locations."/" = {
+        proxyPass = "http://localhost:8080";
+        proxyWebsockets = true; # needed if you need to use WebSocket
+        extraConfig =
+          # required when the target is also TLS server with multiple hosts
+          "proxy_ssl_server_name on;" +
+          # required when the server wants to use HTTP Authentication
+          "proxy_pass_header Authorization;"
+          ;
+      };
+  };
+
+
+

The full config and some extra information

+

Your entire config should look something like this now at which point +you can sudo nixos-rebuild switch!:

+
{ config, pkgs, ... }:
+
+{
+  services.owncast = {
+    enable = true;
+    port = 8080;
+    openFirewall = true;
+  };
+  # Homepages
+  services.nginx.virtualHosts."yourdomain.net" = {
+      forceSSL = true;
+      enableACME = true;
+      locations."/" = {
+        proxyPass = "http://localhost:8080";
+        proxyWebsockets = true; # needed if you need to use WebSocket
+        extraConfig =
+          # required when the target is also TLS server with multiple hosts
+          "proxy_ssl_server_name on;" +
+          # required when the server wants to use HTTP Authentication
+          "proxy_pass_header Authorization;"
+          ;
+      };
+  };
+}
+

We are not done yet however there is one more this that is required +on the nixos side of things and quite a few things in your owncast +webpage.

+

While we did setup nginx for this owncast we didn’t do a full nginx +setup, this is because in my homeserver nginx is used for many things +and I want to avoid duplicate nix code so I have a separate nginx config +which can be found here.

+

Now that that is done we can go into our owncast web page at https://yourdomain.net/admin. Here it will ask you to +log in the default for this is Username: Admin and Password: abc123 you +want to replace this as soon as possible! Luckely there is the owncast +admin page you just logged into for that, either hit view next to +streaming keys in the home page or head to Stream Keys in Server Setup +under the Configuration tab.

+

When you are done with that open your favourite streaming application +set the livestreaming service to custom and use this link rtmp://yourdomain.net:1935/live with the streamkey you +just set!

+
+
+

Further help

+

If you need extra configuring (and know what you are doing) more +owncast options can be found here +and the owncast documentation can be found here. Is your version not up to +date with Nix pkgs? run nix-channel --update. Lastely if +this guide gets out of date my current owncast config can be found here.

-
-

Including Plots

-

You can also embed plots, for example:

-

-

Note that the echo = FALSE parameter was added to the -code chunk to prevent printing of the R code that generated the -plot.

diff --git a/example_project2.Rmd b/example_project2.Rmd deleted file mode 100644 index 8a17e55..0000000 --- a/example_project2.Rmd +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Example Project 2" -output: html_document -date: "2023-10-26" ---- - -```{r setup, include=FALSE} -knitr::opts_chunk$set(echo = TRUE) -``` - -## R Markdown - -This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see . - -When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this: - -```{r cars} -summary(cars) -``` - -## Including Plots - -You can also embed plots, for example: - -```{r pressure, echo=FALSE} -plot(pressure) -``` - -Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot. diff --git a/index.Rmd b/index.Rmd index 422bdd9..4154277 100644 --- a/index.Rmd +++ b/index.Rmd @@ -8,19 +8,19 @@ output: -**Welcome to my website!** +**Welcome to blog archive and directory of [HermitCollective](https://hermitcollective.net/)!** -# This is still very much work in progress +# Info -Click the links in the menu above to look around. +Blogs can be found under the "Blog Posts" tab. +Under the "HermitCollective" tab you will find all of HermitCollective's services. # Notes - -This website is a collection of regular (R)Markdown document, so you can use all the usual formatting. - -If you are new to R Markdown, you can learn more about it [on the R Markdown website](https://rmarkdown.rstudio.com/). +Every blog will have a link the the authors website and a link to a [fediverse](https://en.wikipedia.org/wiki/Fediverse) post where you can comment on the blog. + + diff --git a/main.css b/main.css new file mode 100644 index 0000000..9f28688 --- /dev/null +++ b/main.css @@ -0,0 +1,68 @@ +body { + background: #1E1E1E; + color: white; +} + +.bg { + background: #242424; +} + +h1 { + background: #1E1E1E; + color: white; +} + +dive { + background: #1E1E1E; + color: white; +} + +a:link { + color: #b30000; +} + +a:hover { + color: #EFEEEE; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + margin-top: 2px; + list-style: none; + font-size: 15px; + text-align: left; + background-color: #242424; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #EFEEEE; + white-space: nowrap; +} + +.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { + z-index: 2; + color: #b30000; + background-color: #242424; + border-color: #242424; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + background-color: #242424; +} + diff --git a/owncast.nix.Rmd b/owncast.nix.Rmd new file mode 100644 index 0000000..6ac9e3f --- /dev/null +++ b/owncast.nix.Rmd @@ -0,0 +1,95 @@ +--- +title: "Setting Up Owncast with NixOS" +output: html_document +date: "2023-10-27" +author: "[Hertog](https://hertog.hermitcollective.net)" +--- + +## What is Owncast? + +[Owncast](https://owncast.online/) is a lightweight program to set up your own livestreaming website as an alternative to streaming on twitch or youtube. + +It is fully free and open source licensed under the [MIT license](https://mit-license.org/) and can even be linked with the [fediverse!](https://en.wikipedia.org/wiki/Fediverse) + +Which to me is perfect! I really wanted to get back into livestreaming (I used to do this on twitch allot) but I wanted a platform without adds or corporate influence and thus owncast. + +## As for NixOS +I use NixOS to selfhost everything I can (including this website!) but I couldn't find any wiki pages or concrete owncast configurations online, I did eventually get it working and will share my configuration here. + +### The Owncast part of the config +This part is the easiest it is simply enabling it setting an unused port (the default and recommended is 8080) and then let owncast open that part of the firewall. + +``` +services.owncast = { + enable = true; + port = 8080; + openFirewall = true; + }; +``` + +### The nginx part! +Nginx is needed to setup a proxy so we can link owncast to our domain and ensure everything will run securely. +We begin by setting the (sub)domain that we wish to point at owncast and we enable SSL and ACME. +The locations part needs to point at the port we set earlier so that nginx knows to point at owncast. +Owncast also needs websockets so we set that to true as wel, the extra config is to ensure our proxy works. + +``` + services.nginx.virtualHosts."live.hermitcollective.net" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:8080"; + proxyWebsockets = true; # needed if you need to use WebSocket + extraConfig = + # required when the target is also TLS server with multiple hosts + "proxy_ssl_server_name on;" + + # required when the server wants to use HTTP Authentication + "proxy_pass_header Authorization;" + ; + }; + }; +``` + +### The full config and some extra information +Your entire config should look something like this now at which point you can sudo nixos-rebuild switch!: +``` +{ config, pkgs, ... }: + +{ + services.owncast = { + enable = true; + port = 8080; + openFirewall = true; + }; + # Homepages + services.nginx.virtualHosts."yourdomain.net" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:8080"; + proxyWebsockets = true; # needed if you need to use WebSocket + extraConfig = + # required when the target is also TLS server with multiple hosts + "proxy_ssl_server_name on;" + + # required when the server wants to use HTTP Authentication + "proxy_pass_header Authorization;" + ; + }; + }; +} +``` +We are not done yet however there is one more this that is required on the nixos side of things and quite a few things in your owncast webpage. + +While we did setup nginx for this owncast we didn't do a full nginx setup, this is because in my homeserver nginx is used for many things and I want to avoid duplicate nix code so I have a separate nginx config which can be found [here](https://git.saragerretsen.nl/Hertog/HermitCollective.nix/src/branch/main/services/nginx.nix). + +Now that that is done we can go into our owncast web page at https://yourdomain.net/admin. +Here it will ask you to log in the default for this is Username: Admin and Password: abc123 you want to replace this as soon as possible! +Luckely there is the owncast admin page you just logged into for that, either hit view next to streaming keys in the home page or head to Stream Keys in Server Setup under the Configuration tab. + +When you are done with that open your favourite streaming application set the livestreaming service to custom and use this link rtmp://yourdomain.net:1935/live with the streamkey you just set! + + +### Further help +If you need extra configuring (and know what you are doing) more owncast options can be found [here](https://search.nixos.org/options?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=owncast) and the owncast documentation can be found [here](https://owncast.online/docs/). +Is your version not up to date with Nix pkgs? run ``` nix-channel --update ```. +Lastely if this guide gets out of date my current owncast config can be found [here](https://git.saragerretsen.nl/Hertog/HermitCollective.nix/src/branch/main/services/owncast.nix).