diff --git a/opsec/runtheblog/0.png b/opsec/runtheblog/0.png new file mode 100644 index 0000000..9b681b7 Binary files /dev/null and b/opsec/runtheblog/0.png differ diff --git a/opsec/runtheblog/10.png b/opsec/runtheblog/10.png new file mode 100644 index 0000000..8883c6b Binary files /dev/null and b/opsec/runtheblog/10.png differ diff --git a/opsec/runtheblog/11.png b/opsec/runtheblog/11.png new file mode 100644 index 0000000..c7023d0 Binary files /dev/null and b/opsec/runtheblog/11.png differ diff --git a/opsec/runtheblog/12.png b/opsec/runtheblog/12.png new file mode 100644 index 0000000..4b7b0d2 Binary files /dev/null and b/opsec/runtheblog/12.png differ diff --git a/opsec/runtheblog/13.png b/opsec/runtheblog/13.png new file mode 100644 index 0000000..074b131 Binary files /dev/null and b/opsec/runtheblog/13.png differ diff --git a/opsec/runtheblog/14.png b/opsec/runtheblog/14.png new file mode 100644 index 0000000..3b0d56a Binary files /dev/null and b/opsec/runtheblog/14.png differ diff --git a/opsec/runtheblog/15.png b/opsec/runtheblog/15.png new file mode 100644 index 0000000..68c579f Binary files /dev/null and b/opsec/runtheblog/15.png differ diff --git a/opsec/runtheblog/16.png b/opsec/runtheblog/16.png new file mode 100644 index 0000000..9bd11ae Binary files /dev/null and b/opsec/runtheblog/16.png differ diff --git a/opsec/runtheblog/17.png b/opsec/runtheblog/17.png new file mode 100644 index 0000000..c582123 Binary files /dev/null and b/opsec/runtheblog/17.png differ diff --git a/opsec/runtheblog/18.png b/opsec/runtheblog/18.png new file mode 100644 index 0000000..9f0323e Binary files /dev/null and b/opsec/runtheblog/18.png differ diff --git a/opsec/runtheblog/19.png b/opsec/runtheblog/19.png new file mode 100644 index 0000000..df319dd Binary files /dev/null and b/opsec/runtheblog/19.png differ diff --git a/opsec/runtheblog/20.png b/opsec/runtheblog/20.png new file mode 100644 index 0000000..7f05dba Binary files /dev/null and b/opsec/runtheblog/20.png differ diff --git a/opsec/runtheblog/21.png b/opsec/runtheblog/21.png new file mode 100644 index 0000000..d473d05 Binary files /dev/null and b/opsec/runtheblog/21.png differ diff --git a/opsec/runtheblog/22.png b/opsec/runtheblog/22.png new file mode 100644 index 0000000..b92fbcc Binary files /dev/null and b/opsec/runtheblog/22.png differ diff --git a/opsec/runtheblog/23.png b/opsec/runtheblog/23.png new file mode 100644 index 0000000..ee27801 Binary files /dev/null and b/opsec/runtheblog/23.png differ diff --git a/opsec/runtheblog/24.png b/opsec/runtheblog/24.png new file mode 100644 index 0000000..e53a9e5 Binary files /dev/null and b/opsec/runtheblog/24.png differ diff --git a/opsec/runtheblog/4.png b/opsec/runtheblog/4.png new file mode 100644 index 0000000..4705c5f Binary files /dev/null and b/opsec/runtheblog/4.png differ diff --git a/opsec/runtheblog/5.png b/opsec/runtheblog/5.png new file mode 100644 index 0000000..3d42d7c Binary files /dev/null and b/opsec/runtheblog/5.png differ diff --git a/opsec/runtheblog/6.png b/opsec/runtheblog/6.png new file mode 100644 index 0000000..e4c19b5 Binary files /dev/null and b/opsec/runtheblog/6.png differ diff --git a/opsec/runtheblog/7.png b/opsec/runtheblog/7.png new file mode 100644 index 0000000..bf25fe2 Binary files /dev/null and b/opsec/runtheblog/7.png differ diff --git a/opsec/runtheblog/8.png b/opsec/runtheblog/8.png new file mode 100644 index 0000000..946675d Binary files /dev/null and b/opsec/runtheblog/8.png differ diff --git a/opsec/runtheblog/9.png b/opsec/runtheblog/9.png new file mode 100644 index 0000000..ccd7fc9 Binary files /dev/null and b/opsec/runtheblog/9.png differ diff --git a/opsec/runtheblog/index.html b/opsec/runtheblog/index.html index 9525b41..344effa 100644 --- a/opsec/runtheblog/index.html +++ b/opsec/runtheblog/index.html @@ -75,9 +75,10 @@

Why are you letting me run the blog ?

As you have probably noticed after looking at the footer of any of the blogposts in this blog, they are all licensed under the public domain license. This means that there is no copyright restrictions at all, it is free for all, forever.

+

The reason behind this stems from Sum Nihil, where i strongly believe that it doesn't matter who does the work, who gets the fame, who gets to profit off of it, what truly matters is that the work gets done, no matter who does it.

Here, the work is to make sure that everyone out there knows that when using the right technology in the right way, they cannot be oppressed, silenced, censored, controlled, and governed anymore. If you can help me reach that goal i'm definitely going to welcome it, even if it means to allow other people to run the blog.

-

The entire blog is meant to remain available for free, for everyone, over clearnet and over the Tor network. Ideally i'd like it to be resillient to takedowns in the case if something were to happen to it in the future. Therefore, the more people run the blog themselves, the more resillient it will become, and the farther the word will be able to go out there.

+

The entire blog is meant to remain available for free, for everyone, over clearnet and over the Tor network. Ideally i'd like it to be resillient to takedowns in the case if something were to happen to me in the future. Therefore, the more people run the blog themselves, the more resillient it will become, and the farther the word will be able to go out there.

@@ -212,7 +213,7 @@ nginx: configuration file /etc/nginx/nginx.conf test is successful

Tor Hidden Service Setup



-

Now since the clearnet is easily censored nowadays, let's make sure it is also available over Tor. Let's first install Tor:

+

Since clearnet websites are easily censorable nowadays, let's make sure it is censorship-resistant by making it available over Tor. Let's first install Tor:


 [ Datura ] [ /dev/pts/23 ] [~]
 → apt install tor -y
@@ -363,17 +364,41 @@ server {
 	    
-

Setting up the collaboration



-

Now in order to make sure you can welcome external contributions, you need at least to be able to have a gitea instance:

+

Setting up Collaboration



+

Now in order to make sure you can welcome external contributions, you need at least to be able to have a gitea instance like the one i have at https://git.nowhere.moe:

- -

Once setup, you can clone the blog-contributions repository in your gitea instance:

- -

And then, you can recreate the kanban board like so:

- + + + + + +

Now here you have a simple mirror git repo of the blog, once a day it will synchronize the new changes onto your mirror which is always useful to have in case if the main repository gets taken down.

-

And then adding issues into it like so:

- +

If it were to get taken down for whatever reason, or if you decide to branch out and do your own thing with the blog, you can edit the repository to not be a mirror anymore (meaning you'll be able to push your own commits without going through me):

+ + + + +

And once done you can recreate the collaboration kanban board like so:

+ + + + +

Then you can add the an issue per tutorial into it like so:

+ + + +

You can also add labels to add more details on each issue, to be visible from the kanban board:

+ + + +

Then on each issue you can add labels on each like so:

+ +

Here the workflow is preety straightforward, the first column is there for the tutorials that dont have the todolist written yet, the second column is for those that do but aren't assigned to someone yet, the third column is for the assigned tutorials (with a 1 month default deadline), the fourth column is for the maintainer to review what the contributor has sent, and the last column is for the tutorials that are completed:

+ +

And then obviously, don't forget to have a SimpleX Chatroom to make sure you can chat easily with your contributors like i do here, this will help brainstorm ideas quickly and help clear up misconceptions with your audience directly:

+ +

And there you go! you now have a platform to receive criticism, collaborate and produce quality content.

@@ -387,14 +412,163 @@ server {

Setting up a Mirror List



-

Now in order to give people a list of all the backup blog mirrors in one go, i list them manually on an uptimekuma instance:

- -

First, the mirror (clearnet and .onion) gets added into the "testing" category:

- -

Then, if the mirror is still reachable after 1 month, i move it into the "stable" category:

- -

And there the mirror stays until i see it is no longer reachable.

- +

Now in order to give people a list of all the backup blog mirrors in one go, to make it simple i recommend just listing them manually in a textfile that you update on a monthly basis:

+

+[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog]
+→ vim mirrors.txt
+
+[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog]
+→ cat mirrors.txt
+### Active ###
+
+Nihilist:
+-Clearnet: https://blog.nowhere.moe
+-Tor: http://blog.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion
+-Clearnet: https://git.nowhere.moe/nihilist/blog-contributions
+-Tor: http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/blog-contributions
+
+Anon1:
+-Clearnet: link1
+-Tor: link.onion1
+
+Anon2:
+-Clearnet: link2
+-Tor: link.onion2
+
+
+### Inactive ###
+
+### Removed ###
+
+
+

Then each month, validate that each link is still reachable, and if one of the links isnt reachable just move it to the "Inactive" category:

+

+[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog]
+→ vim mirrors.txt
+
+[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog]
+→ cat mirrors.txt
+### Active ###
+
+Nihilist:
+-Clearnet: https://blog.nowhere.moe
+-Tor: http://blog.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion
+-Clearnet: https://git.nowhere.moe/nihilist/blog-contributions
+-Tor: http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/blog-contributions
+
+Anon1:
+-Clearnet: link1
+-Tor: link.onion1
+
+### Inactive ###
+
+Anon2:
+-Clearnet: link2
+-Tor: link.onion2
+
+### Removed ###
+
+
+ +

Next month upon the next review, check if the mirror is still no longer reachable just move it to the "Removed" category:

+

+[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog]
+→ vim mirrors.txt
+
+[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog]
+→ cat mirrors.txt
+### Active ###
+
+Nihilist:
+-Clearnet: https://blog.nowhere.moe
+-Tor: http://blog.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion
+-Clearnet: https://git.nowhere.moe/nihilist/blog-contributions
+-Tor: http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/blog-contributions
+
+Anon1:
+-Clearnet: link1
+-Tor: link.onion1
+
+### Inactive ###
+
+### Removed ###
+
+Anon2:
+-Clearnet: link2
+-Tor: link.onion2
+
+
+

Don't forget to git push the file onto the git repository and you're good !

+

+[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog-contributions]
+→ vim mirrors.txt
+
+[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog-contributions]
+→ cat mirrors.txt
+### Active ###
+
+Nihilist:
+-Clearnet: https://blog.nowhere.moe
+-Tor: http://blog.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion
+-Clearnet: https://git.nowhere.moe/nihilist/blog-contributions
+-Tor: http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/blog-contributions
+
+
+
+### Inactive ###
+
+
+### Removed ###
+
+[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog-contributions]
+→ cat push.sh
+#!/bin/bash
+git config --global user.email "nihilist@contact.nowhere.moe"
+git config --global user.name "nihilist"
+
+git add -A
+git commit
+git push
+
+[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog-contributions]
+→ ./push.sh
+
+add mirrors.txt
+# Please enter the commit message for your changes. Lines starting
+# with '#' will be ignored, and an empty message aborts the commit.
+#
+# On branch main
+# Your branch is up to date with 'origin/main'.
+#
+# Changes to be committed:
+#   new file:   mirrors.txt
+#   modified:   push.sh
+
+:wq
+
+[main 39b29a3] add mirrors.txt
+ 2 files changed, 15 insertions(+), 2 deletions(-)
+ create mode 100644 mirrors.txt
+
+Username for 'https://git.nowhere.moe': nihilist
+Password for 'https://nihilist@git.nowhere.moe':
+
+Enumerating objects: 6, done.
+Counting objects: 100% (6/6), done.
+Delta compression using up to 4 threads
+Compressing objects: 100% (4/4), done.
+Writing objects: 100% (4/4), 581 bytes | 290.00 KiB/s, done.
+Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
+remote: . Processing 1 references
+remote: Processed 1 references in total
+To https://git.nowhere.moe/nihilist/blog-contributions
+   d1bc9ce..39b29a3  main -> main
+
+
+

And that's it! you have now made the mirrors.txt file accessible to your audience. they can simply download it like so:

+

+
+