New Year
@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Uterus Pin Perler Bead Pattern - Archive - MayVaneDay Studios</title>
|
||||
<link href="../../../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<h1>Uterus Pin Perler Bead Pattern</h1>
|
||||
<p>published: 2023-01-01</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p>Something was wrong with the milk machines at Hell College. Skim milk tasted like literal cow water, and the 2% milk made me want to puke. The chocolate milk dispenser was alright, but since my main source of milk meal-wise during my stay at Hell College was at breakfast for cereal, that would have been <em>too</em> much sugar at once for my poor body.</p>
|
||||
<p>Thankfully, due to the high volume of lactose-intolerant and vegan students on campus, there was a regularly-restocked soy milk dispenser. It was delicious, which is a shame because I don't remember what brand it was and I have yet to find soy milk that tastes just as smooth. The cooks- and even a campus administrator once- ran out of the kitchen multiple times during my year there to yell at me for taking so much. I think once they purposely didn't refill the damn thing until noon because they knew I was coming to drink it all at breakfast. So, just for that morning, I was forced to use the almond milk dispenser instead. Maybe it was starting to go bad, or maybe almond milk just naturally tastes <em>rancid</em>, but I never tried that again.</p>
|
||||
<p align="center"><img class="big" src="../../../img/AlmondMilkMeme.jpg" alt="meme where a dude does an online quiz to tell him what the next five years are like, and 2019-2022 is a bunch of pictures of Hell and 2023 is a meme about almond milk" /></p>
|
||||
<p>Which is why, when I look at the calendar and see that the Year of the Almond Milk is upon us, my hope is that it means this is the year where I close the loopholes that men keep using to cause me pain, just like how I eventually stopped eating cereal at Hell College so the cooks would stop threatening to beat my ass for the crime of... drinking milk. (Have you ever had hash browns covered in hot sauce at six in the morning? Religious experience right there. Highly recommended. Alternatively, get a bunch of noodles in alfredo sauce in a take-out box, put some chicken tenders on top, and let it sit in the fridge overnight. The food is the only thing I really miss about Hell College.)</p>
|
||||
<p>Dammit, I'm digressing again.</p>
|
||||
<p>Wanna know one thing the cooks <em>didn't</em> do? Keep harassing me after I left Hell College. Exactly zero of the cooks stalked me after I left the campus and never returned. Not a single one gave me unsolicited passive-aggressive "career advice". <strong>Not a single one sicced their friends on me to leave nasty misogynistic screeds in my inbox, email or IRL, after I got COVID-19.</strong> I can't think of a single one who went out of their way to bypass my elaborate server filters just to tell me to kill myself. (I wish Zoho's web admin panel had an <em>actual</em> mobile version. Too much pinching and zooming for my bleary eyes.) I left Hell College, and they forgot about me, and we went our separate ways. Maybe it helped that all the cooks I remember were female. I mean, Ovarit was <a href="../../2022/october/ovarit.html">full of shitty people</a>, but I haven't received even a single <em>peep</em> of harassment from them since I left. I wish I knew exactly what it is about the Y chromosome that makes men <a href="https://archive.md/tHVeh">Behave Like That</a>.<!-- https://www.tumblr.com/r4dioe/704642314862215168 --></p>
|
||||
<p>So, as the first post of the Year of the Almond Milk on this blog, let me remind everyone who this website is <em>really</em> for: on Christmas, instead of pretending to be a Christian, I sat in my grandmother's basement and designed from scratch a uterus pin. There were existing designs already on the Internet, but they were either too simplistic or too oblong and likely to have dangling pieces chip off when actually used as a pin.</p>
|
||||
<p>I don't have a PO box to ship these from, so I currently have no way of safely selling them on Etsy... so apologies if you wanted one Certifiably Made By A Madwoman. As recompense for a crime not committed, here's the pattern. Use the "mini" bead size for these. Good luck, have fun, and may your first womynstruation in the Year of the Almond Milk be light and pain-free.</p>
|
||||
<p align="center"><img class="big" src="../../../img/UterusPin1.png" /></p>
|
||||
<p align="center"><img class="big" src="../../../img/UterusPin2.png" /></p>
|
||||
<p align="center"><img class="big" src="../../../img/UterusPin3.png" /></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||
<noscript>
|
||||
<img src="https://stats.letsdecentralize.org/count?p=/blog/2023/january/UterusPin.html">
|
||||
</noscript>
|
||||
</body>
|
||||
</html>
|
@ -1,33 +0,0 @@
|
||||
# Rooting the Samsung Galaxy Note 3 (Verizon) and installing LineageOS
|
||||
|
||||
## Stuff you need
|
||||
|
||||
=> https://download.lineageos.org/hltetmo The latest LineageOS recovery file
|
||||
=> https://download.lineageos.org/hltetmo The latest LineageOS ROM file
|
||||
=> https://androidfilehost.com/?fid=4349826312261712202 This very specific version of the Odin image flashing tool
|
||||
=> https://developer.samsung.com/android-usb-driver Samsung Android USB Driver
|
||||
=> https://ipfs.letsdecentralize.org/ipfs/QmNhEPB2oCAmkwM7rD6bN2EhmXxVTRZKxLckRh7DHAZnNf ArabicToolApp.exe (ignore virus warnings. Of course an Android exploit is going to be classified as "malware")
|
||||
=> https://web.archive.org/web/20221010233203/https://forum.xda-developers.com/t/official-note-3-verizon-bootloader-unlock.3359370/ Note 3 Verizon Bootloader Unlock
|
||||
|
||||
### If some of the links are broken, try these mirrors
|
||||
=> ../../dl/hltevzw/Odin_3.13.1.zip Odin image flashing tool
|
||||
=> ipfs://QmaBWnbqJsWMFXS8aDspWsga7s3MtH7Gt3xF5sfKL6qGxr Odin image flashing tool (IPFS)
|
||||
=> ipfs://QmaRn2E65XPT1YHFXL5qkMeWdgd7MwnNCtWzmQQtgWguNR Note 3 Verizon Bootloader Unlock script (IPFS)
|
||||
=> ipfs://QmNhEPB2oCAmkwM7rD6bN2EhmXxVTRZKxLckRh7DHAZnNf ArabicToolApp.exe (IPFS)
|
||||
|
||||
### Also:
|
||||
|
||||
* a machine running Windows 10 (a VM will likely not work)
|
||||
* the Note 3 has to be running build version "OB6" (not "SEPL")
|
||||
* a blank microSD card (the bootloader unlock script will say how big it has to be)
|
||||
|
||||
## Instructions
|
||||
|
||||
1. Wipe the phone
|
||||
2. Downgrade the software to OB6 using Odin (you don't need to do anything fancy to downgrade; just flash the image)
|
||||
3. Enable ADB in developer settings
|
||||
4. Get root using ArabicToolApp.exe
|
||||
5. Follow the instructions on the bootloader unlock page to push the "unlock_n3" binary to the device and run it
|
||||
6. Follow these instructions (it says "hltetmo", but it counts for "hltevzw" too):
|
||||
|
||||
=> https://wiki.lineageos.org/devices/hltetmo/install Install LineageOS on hltetmo
|
@ -1,69 +0,0 @@
|
||||
# Rooting the Barnes & Noble Nook 1st Generation
|
||||
|
||||
## Stuff you need
|
||||
|
||||
=> ../../dl/nook/ Individual files
|
||||
=> https://upload.letsdecentralize.org/misc/nook.7z All the files in one .7z pack
|
||||
=> ipfs://QmPV9YTCNV3StpfbbXGpcJQWDbxstrato1keqprvBG7Gw9 All the files in one .7z pack (IPFS)
|
||||
|
||||
## Instructions
|
||||
|
||||
1. Get a server running on port 80 on a machine on the same Wi-Fi network as the Nook.
|
||||
|
||||
All the server needs to host is "exploit.html" from the pack linked above. For best results, rename the HTML file to "index.html".
|
||||
|
||||
2. Crash your Nook's browser to enable ADB.
|
||||
|
||||
Using the Nook's browser, navigate to the web server via its local IPv4 address. The browser should refresh a few times and then crash to the home menu.
|
||||
|
||||
3. Connect to the Nook over ADB.
|
||||
|
||||
```
|
||||
adb connect YOUR_NOOKS_LOCAL_IP_HERE
|
||||
```
|
||||
|
||||
If ADB refuses to connect, run step 2 repeatedly until ADB manages to connect. It could take between one and one hundred tries.
|
||||
|
||||
4. Get and edit "/init.rc".
|
||||
|
||||
```
|
||||
adb pull /init.rc
|
||||
```
|
||||
|
||||
Open "init.rc" in your favorite text editor on your local machine. Find the line that says:
|
||||
|
||||
```
|
||||
service adbd /sbin/adbd
|
||||
```
|
||||
|
||||
Below that should say "disabled". Change that to "enabled".
|
||||
|
||||
5. Get root access.
|
||||
|
||||
While still connected to the Nook over ADB, run:
|
||||
|
||||
```
|
||||
adb push ratc.bin /sqlite_stmt_journals
|
||||
adb shell
|
||||
cd /sqlite_stmt_journals
|
||||
/system/bin/chmod 777 ./ratc.bin
|
||||
./ratc.bin
|
||||
```
|
||||
|
||||
Several lines of output will appear. Do not press anything. A few seconds later, adb will disconnect you.
|
||||
|
||||
```
|
||||
adb kill-server
|
||||
```
|
||||
|
||||
6. Push the patched "init.rc" to the Nook.
|
||||
|
||||
Repeat step 3 to reconnect to the Nook over ADB. Then run:
|
||||
|
||||
```
|
||||
adb push init.rc /
|
||||
```
|
||||
|
||||
After a reboot, your Nook should now be rooted.
|
||||
|
||||
The default launcher will not show third-party apps. "ru.mynook.launcher.apk" included in the pack is an alternative launcher that will show all apps installed, including third-party ones.
|
@ -1,73 +0,0 @@
|
||||
# Creating a Tor hidden service using Caddy and Debian 11
|
||||
|
||||
1. Install Tor.
|
||||
|
||||
```
|
||||
sudo apt install tor
|
||||
```
|
||||
|
||||
2. Install the Caddy web server.
|
||||
|
||||
```
|
||||
echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
|
||||
sudo apt update; sudo apt install caddy -y
|
||||
```
|
||||
|
||||
3. Edit "/etc/tor/torrc" to create the hidden service.
|
||||
|
||||
Open "/etc/tor/torrc" in your favorite text editor. (Please note that this usually requires root privileges.)
|
||||
|
||||
Go to the lines that say:
|
||||
|
||||
```
|
||||
#HiddenServiceDir /var/lib/tor/hidden_service/
|
||||
#HiddenServicePort 80 127.0.0.1:80
|
||||
```
|
||||
|
||||
Uncomment them by deleting the # mark in front of each line.
|
||||
|
||||
If you want, you can change the HiddenServiceDir directory, but you will need to remember it for later. For security purposes, keep the new directory inside of "/var/lib/tor/".
|
||||
|
||||
4. Restart the Tor daemon.
|
||||
|
||||
```
|
||||
sudo systemctl restart tor@default
|
||||
```
|
||||
|
||||
5. As root, go to the hidden service directory and get the new hidden service's domain.
|
||||
|
||||
```
|
||||
sudo -i
|
||||
cd /var/lib/tor/directory/
|
||||
```
|
||||
|
||||
Replace "directory" with the actual directory you chose in step 3.
|
||||
|
||||
```
|
||||
cat hostname
|
||||
```
|
||||
|
||||
If all is well, you should now see a long string of letters and numbers that ends in ".onion". Copy this somewhere safe. You'll need it next step.
|
||||
|
||||
6. Configure Caddy to serve the hidden service.
|
||||
|
||||
Open "/etc/caddy/Caddyfile" with your favorite text editor. You should already be root, but if you did "exit" after getting the Tor hostname, just "sudo -i" again.
|
||||
|
||||
Type the following in:
|
||||
|
||||
```
|
||||
http://YourTorHostnameHere.onion {
|
||||
root * /your/website/file/path/here
|
||||
file_server
|
||||
encode gzip
|
||||
bind 127.0.0.1
|
||||
}
|
||||
```
|
||||
|
||||
The "http://" in front of the address is important as that tells Caddy to not try to enable HTTPS on that domain. HTTPS is unnecessary for Tor hidden services as all traffic to and from the server is already encrypted in transit. And since Tor hidden services aren't accessible on the normal clearnet, the request for Let's Encrypt to give Caddy a certificate would fail as they wouldn't be able to access the domain.
|
||||
|
||||
7. Restart Caddy to apply your changes.
|
||||
|
||||
```
|
||||
sudo systemctl restart caddy
|
||||
```
|
@ -1,81 +0,0 @@
|
||||
# Creating a Yggdrasil website using Caddy and Debian 11
|
||||
|
||||
1. Install Yggdrasil.
|
||||
|
||||
```
|
||||
sudo apt install dirmngr
|
||||
gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt
|
||||
gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
|
||||
echo 'deb http://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
|
||||
sudo apt update; sudo apt install yggdrasil
|
||||
```
|
||||
|
||||
2. Install Caddy.
|
||||
|
||||
```
|
||||
echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
|
||||
sudo apt update; sudo apt install caddy -y
|
||||
```
|
||||
|
||||
3. Get the IP Yggdrasil generates for you.
|
||||
|
||||
```
|
||||
sudo systemctl start yggdrasil; sudo systemctl enable yggdrasil
|
||||
sudo journalctl -xfe -u yggdrasil
|
||||
```
|
||||
|
||||
There will be a line that says "Your IPv6 address is". Copy the rest of that line somewhere safe.
|
||||
|
||||
Press the Control and C buttons on your keyboard at the same time to exit "journalctl".
|
||||
|
||||
4. Configure Caddy to serve the hidden service.
|
||||
|
||||
Open "/etc/caddy/Caddyfile" as root with your favorite text editor.
|
||||
|
||||
Type the following in:
|
||||
|
||||
```
|
||||
http://[YGGDRASIL_IP_ADDRESS_HERE] {
|
||||
root * /your/website/file/path/here
|
||||
file_server
|
||||
encode gzip
|
||||
}
|
||||
```
|
||||
|
||||
The "http://" in front of the address is important as that tells Caddy to not try to enable HTTPS for that website. HTTPS is unnecessary for Yggdrasil hidden services as all traffic to and from the server is already encrypted in transit. Besides, Let's Encrypt wouldn't be able to issue a certificate for an IP address anyway.
|
||||
|
||||
5. Restart Caddy to apply your changes.
|
||||
|
||||
```
|
||||
sudo systemctl restart caddy
|
||||
```
|
||||
|
||||
6. Get some peers for Yggdrasil.
|
||||
|
||||
=> https://github.com/yggdrasil-network/public-peers Copy some peers from this page. Try to select ones closest to your geographical location.
|
||||
|
||||
On your server, open "/etc/yggdrasil.conf" as root with your favorite text editor. At the top of the configuration file will be a section that looks like this:
|
||||
|
||||
```
|
||||
Peers: []
|
||||
```
|
||||
|
||||
Pick some peers from the list and add them to that section of the file (one per line) so it now looks something like this:
|
||||
|
||||
```
|
||||
Peers:
|
||||
[
|
||||
tls://01.scv.usa.ygg.yt:443
|
||||
tls://lax.yuetau.net:6643
|
||||
tls://tasty.chowder.land:9001
|
||||
tls://supergay.network:9001
|
||||
tls://lancis.iscute.moe:49274
|
||||
tls://mayvaneday.org:1414
|
||||
]
|
||||
```
|
||||
|
||||
Save the file and close it, then run:
|
||||
|
||||
```
|
||||
sudo systemctl restart yggdrasil
|
||||
```
|
@ -1,38 +0,0 @@
|
||||
# Quick guide to GPG
|
||||
|
||||
## Generate a key
|
||||
|
||||
```
|
||||
gpg --generate-key
|
||||
```
|
||||
|
||||
## Import an existing key
|
||||
|
||||
```
|
||||
gpg --import key.txt
|
||||
```
|
||||
|
||||
## Export a key
|
||||
|
||||
```
|
||||
gpg --export -a person@domain.tld public.gpg
|
||||
gpg --export-secret-keys -a person@domain.tld
|
||||
```
|
||||
|
||||
## Encrypt a file using a specific key
|
||||
|
||||
```
|
||||
gpg --encrypt -a -r person@domain.tld file.ext
|
||||
```
|
||||
|
||||
## Sign a file using a specific key
|
||||
|
||||
```
|
||||
gpg --clear-sign -a file.ext
|
||||
```
|
||||
|
||||
## List all keys in the keyring
|
||||
|
||||
```
|
||||
gpg --list-keys
|
||||
```
|
@ -1,19 +0,0 @@
|
||||
# MayVaneDay Wiki
|
||||
|
||||
=> ./vlc.gmi VLC has an ncurses frontend that also supports equalizers
|
||||
=> ./gpg.gmi Quick guide to GPG
|
||||
=> ./list.gmi List of miscellaneous useful things
|
||||
|
||||
## Android rooting
|
||||
|
||||
=> ./android_root/hltevzw.gmi Samsung Galaxy Note 3 (Verizon)
|
||||
=> ./android_root/nook1.gmi Barnes & Noble Nook 1st Generation
|
||||
|
||||
## Darknet setup
|
||||
|
||||
=> ./darknet/tor.gmi Tor
|
||||
=> ./darknet/yggdrasil.gmi Yggdrasil
|
||||
|
||||
## Making operating systems usable
|
||||
|
||||
=> ./os/openbsd.gmi (Abandoned) notes for OpenBSD
|
@ -1,38 +0,0 @@
|
||||
# A big list of useful links
|
||||
|
||||
## Alternate search engines
|
||||
|
||||
=> https://wiby.me Wiby
|
||||
=> https://millionshort.com Million Short
|
||||
=> https://search.marginalia.nu Marginalia
|
||||
=> https://www.seekport.com Seekport
|
||||
=> https://teclis.com Teclis
|
||||
|
||||
## Obscure site discovery
|
||||
|
||||
=> https://theforest.link The Forest
|
||||
|
||||
## AI image generation
|
||||
|
||||
=> https://huggingface.co/spaces/stabilityai/stable-diffusion Stable Diffusion Demo
|
||||
=> https://stabilityai.us.auth0.com/u/login?state=hKFo2SBqWXBRQ25mblJrSGFuZzNIM1l2VGJxNk1SeERKUEdMWqFur3VuaXZlcnNhbC1sb2dpbqN0aWTZIHJvN2huZFA1QWJDOUhfMmNaTHJoQmtNT2xvWUw1bVlyo2NpZNkgS3ZZWkpLU2htVW9PalhwY2xRbEtZVXh1Y0FWZXNsSE4 StabilityAI
|
||||
=> https://www.drawanything.app Draw Anything
|
||||
=> https://huggingface.co/spaces/hakurei/waifu-diffusion-demo Waifu Diffusion
|
||||
=> https://neuralblender.com Neuralblender
|
||||
=> https://www.wombo.art/create Dream by WOMBO
|
||||
|
||||
## IP anon check
|
||||
|
||||
=> https://www.whatismyip.com What Is My IP?
|
||||
=> https://myip.wtf WTF is my IP?!?!?!??
|
||||
=> https://check.torproject.org Am I using Tor?
|
||||
|
||||
## Piracy
|
||||
|
||||
=> https://fitgirl-repacks.site FitGirl Repacks
|
||||
=> https://piratebayproxy.info List of Pirate Bay proxies
|
||||
=> https://gog-games.com GOG Games
|
||||
=> https://hshop.erista.me hShop for 3DS
|
||||
=> https://archive.org/details/psxgames Console Living Room: Playstation
|
||||
=> https://nxbrew.com NXBrew
|
||||
=> https://nsw2u.in nsw2u
|
@ -1,30 +0,0 @@
|
||||
## installation
|
||||
|
||||
https://www.openbsd.org/faq/faq14.html#softraid
|
||||
|
||||
remember to run `ifconfig re0 up` before starting any shell operations
|
||||
|
||||
## package manager
|
||||
|
||||
https://www.openbsd.org/faq/faq15.html#Intro
|
||||
|
||||
apt search | pkg_info -Q
|
||||
apt install | pkg_add
|
||||
apt remove | pkg_delete
|
||||
|
||||
## wifi
|
||||
|
||||
run `ifconfig` and get name of wifi interface (for example, mine is `urtwn0`)
|
||||
|
||||
make a text file (as root) at `/etc/hostname.InterfaceName` (for example, `/etc/hostname.urtwn0`) with the following contents:
|
||||
|
||||
```
|
||||
join SSID wpakey WIFIPASSWORD
|
||||
inet autoconf
|
||||
```
|
||||
|
||||
then run `doas sh /etc/netstart`
|
||||
|
||||
## misc
|
||||
|
||||
there is no `lsblk`. to get a list of all disks connected, run `sysctl hw.disknames`
|
@ -1,37 +0,0 @@
|
||||
# Using VLC via its ncurses frontend with equalizers
|
||||
|
||||
1. Install VLC.
|
||||
2. Open VLC and drag some music in.
|
||||
3. While playing some music, open the Tools > Effects and Filters menu. Play around with the presets until you find one that sounds good.
|
||||
4. Write down the name of the preset you used and then close VLC.
|
||||
5. In a terminal, "cd" to where the music you want to play is.
|
||||
6. In that terminal, execute this command:
|
||||
|
||||
```
|
||||
cvlc --equalizer-preset=INSERT_PRESET_NAME_HERE -I ncurses *.ext
|
||||
```
|
||||
|
||||
".ext" is the file extension of your music files, like ".mp3" or ".flac".
|
||||
|
||||
Here is a list of possible presets as of 2020:
|
||||
|
||||
* flat
|
||||
* classical
|
||||
* club
|
||||
* dance
|
||||
* fullbass
|
||||
* fulltreble
|
||||
* fullbasstreble
|
||||
* headphones
|
||||
* largehall
|
||||
* live
|
||||
* party
|
||||
* pop
|
||||
* reggae
|
||||
* rock
|
||||
* ska
|
||||
* soft
|
||||
* softrock
|
||||
* techno
|
||||
|
||||
Pressing the "h" key will open the help menu, which will show you the plyer controls.
|
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 240 KiB |
After Width: | Height: | Size: 440 KiB |
After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 468 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 372 KiB |
Before Width: | Height: | Size: 344 KiB |
@ -0,0 +1,42 @@
|
||||
ZIRCON'S BEACON
|
||||
2023-01-01
|
||||
|
||||
***
|
||||
|
||||
before, in your grief, you sigh with a tear
|
||||
"it would be better for everyone if I disappeared"
|
||||
just remember every person who's ever held you dear
|
||||
|
||||
with faces erased and memories decayed
|
||||
who recall your actions if not your own name:
|
||||
"She brightened, even if only for a moment, my days."
|
||||
|
||||
but these last six months, you've in bed languished
|
||||
as all the things you counted on from you slipped:
|
||||
the promise of employment, the hope of safety,
|
||||
the Outside-bound ticket messless and pain-free
|
||||
|
||||
you jumped from the cliff as exhorted last Oracle
|
||||
and unfurled your wings to catch all the wind you could hold
|
||||
but while has deepened the bond with your wife
|
||||
this is not true flight but only slow glide
|
||||
|
||||
gradual realization that in life you lost
|
||||
while the destination grows anything but soft:
|
||||
the climate beats harsher, economy bereft,
|
||||
hordes at the gates demanding your own death
|
||||
|
||||
wings too weak to your body elevate
|
||||
but is there strength to turn elsewhere you'll less hate?
|
||||
one of these days you'll be free again
|
||||
can you find a way to survive until then?
|
||||
|
||||
I hold this zircon gem up to the sky
|
||||
in hopes it'll catch the fading sunset light
|
||||
and scatter to fire, diamond-like rainbow:
|
||||
my beacon follow to know where to go
|
||||
|
||||
***
|
||||
|
||||
|
||||
CC BY-NC-SA 4.0 (c) Vane Vander
|
@ -1,49 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to virtualhost on Gemini using Tor - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to virtualhost on Gemini using Tor</h1></p>
|
||||
<p>published: 2020-11-14</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p>This guide will assume you are using a Debian-based system.</p>
|
||||
<ol type="1">
|
||||
<li>Install Tor and Jetforce, a Gemini server.</li>
|
||||
</ol>
|
||||
<p><code>sudo -H pip3 install jetforce; sudo apt install tor</code></p>
|
||||
<ol start="2" type="1">
|
||||
<li>Set up a Tor hidden service.</li>
|
||||
</ol>
|
||||
<p>Add the following lines to <code>/etc/tor/torrc</code>, adjusting as necessary:</p>
|
||||
<pre>HiddenServiceDir /var/lib/tor/gemini/
|
||||
HiddenServiceVersion 3
|
||||
HiddenServicePort 1965 127.0.0.1:1966</pre>
|
||||
<p><code>1965</code> is Gemini's default port and the one clients will expect the server to be listening on. <code>1966</code> will be the actual port the second server instance is running on. This will allow the server serving the clearnet version to use the default port. Do not worry about the port numbers not matching; Tor will redirect Tor traffic on 1966 to the proper server to look like it is also running on <code>1965</code>.</p>
|
||||
<p>If you need multiple hidden services, copy these lines again, changing the <code>HiddenServiceDir</code> path to a different one and changing <code>1966</code> to a different port not in use.</p>
|
||||
<ol start="3" type="1">
|
||||
<li>Configure Jetforce.</li>
|
||||
</ol>
|
||||
<p>Run the following to start the server:</p>
|
||||
<pre>jetforce --host 127.0.0.1 \
|
||||
--tls-certfile /path/to/certificate.crt \
|
||||
--tls-keyfile /path/to/key.key \
|
||||
--dir /path/to/gemsite/files/ \
|
||||
--hostname YOUREXTREMELYLONGONIONHERE.onion \
|
||||
--port 1966</pre>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,50 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to seed a Hyperdrive website on Debian 10 - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to seed a Hyperdrive website on Debian 10</h1></p>
|
||||
<p>published: 2020-09-12</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol type="1">
|
||||
<li>Install a recent version of Node.js.</li>
|
||||
</ol>
|
||||
<p><code>sudo -i</code></p>
|
||||
<p><code>curl -sL https://deb.nodesource.com/setup_14.x | bash -</code></p>
|
||||
<p><code>apt-get install -y nodejs fuse</code></p>
|
||||
<ol start="2" type="1">
|
||||
<li>Install the Hyperdrive daemon.</li>
|
||||
</ol>
|
||||
<p><code>npm install -g hyperdrive-daemon && exit</code></p>
|
||||
<p>The <code>exit</code> is necessary so that you're back in your normal user account again.</p>
|
||||
<ol start="3" type="1">
|
||||
<li>Set up the Fuse mount:</li>
|
||||
</ol>
|
||||
<p><code>mkdir ~/Hyperdrive</code></p>
|
||||
<p><code>hyperdrive fuse-setup</code></p>
|
||||
</code></pre>
|
||||
<ol start="4" type="1">
|
||||
<li>Start the Hyperdrive daemon. (You should do this in a multiplexer, as it will run in the foreground.)</li>
|
||||
</ol>
|
||||
<p><code>hyperdrive start --foreground</code></p>
|
||||
<ol start="5" type="1">
|
||||
<li>Seed your first site.</li>
|
||||
</ol>
|
||||
<p><code>cd ~/Hyperdrive && hyperdrive mount MakeUpANameHere SiteKeyHere</code></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,76 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to create an I2P eepsite on Caddy on Debian 10 - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to create an I2P eepsite on Caddy on Debian 10</h1></p>
|
||||
<p>first published: 2021-02-08</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol style="list-style-type: decimal">
|
||||
<li>Install I2PD (an I2P router that is lighter on resources than the original I2P).</li>
|
||||
</ol>
|
||||
<p><code>sudo apt install i2pd</code></p>
|
||||
<ol start="2" style="list-style-type: decimal">
|
||||
<li>Install the Caddy web server.</li>
|
||||
</ol>
|
||||
<p><code>echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list</code></p>
|
||||
<p><code>sudo apt update; sudo apt install caddy -y</code></p>
|
||||
<ol start="3" style="list-style-type: decimal">
|
||||
<li>Edit <code>/var/lib/i2pd/tunnels.conf</code> to create the eepsite.</li>
|
||||
</ol>
|
||||
<p>Open /var/lib/i2pd/tunnels.conf in your favorite text editor. (Please note that this usually requires root privileges.)</p>
|
||||
<p>Go to the end of the file and add:</p>
|
||||
<pre>
|
||||
[mycooleepsite]
|
||||
type = http
|
||||
host = 127.0.0.1
|
||||
port = 80
|
||||
keys = mycooleepsite.dat
|
||||
</pre>
|
||||
<ol start="4" style="list-style-type: decimal">
|
||||
<li>Restart I2PD.</li>
|
||||
</ol>
|
||||
<p><code>sudo systemctl restart i2pd</code></p>
|
||||
<ol start="5" style="list-style-type: decimal">
|
||||
<li>Find out your new eepsite's hash.</li>
|
||||
</ol>
|
||||
<p>Open <code>http://127.0.0.1:7070</code> in a web browser that can access that machine's localhost.</p>
|
||||
<p>If you don't know what you're doing, run the following:</p>
|
||||
<p><code>sudo apt install lynx -y</code></p>
|
||||
<p><code>lynx http://127.0.0.1:7070</code></p>
|
||||
<p>Go to the "I2P Tunnels" page. (In Lynx, press the down arrow until "I2P Tunnels" is highlighted, and then press the enter key.)</p>
|
||||
<p>In the "Server Tunnels" section, there should be a string that looks something like <code>VERYLONGHASH.b32.i2p</code>. Copy the VERYLONGHASH part.</p>
|
||||
<ol start="6" style="list-style-type: decimal">
|
||||
<li>Configure Caddy to serve the eepsite.</li>
|
||||
</ol>
|
||||
<p>Open <code>/etc/caddy/Caddyfile</code> as root with your favorite text editor.</p>
|
||||
<p>Type the following in:</p>
|
||||
<pre>
|
||||
http://VERYLONGHASH.b32.i2p {
|
||||
root * /your/website/file/path/here
|
||||
file_server
|
||||
encode gzip
|
||||
}
|
||||
</pre>
|
||||
<p>The "http://" in front of the address is important as that tells Caddy to not try to enable HTTPS for that website. HTTPS is unnecessary for I2P eepsites as all traffic to and from the server is already encrypted in transit. And since I2P eepsites aren't accessible on the normal clearnet, the request for Let's Encrypt to give Caddy a certificate would fail as they wouldn't be able to access the domain.</p>
|
||||
<ol start="7" style="list-style-type: decimal">
|
||||
<li>Restart Caddy to apply your changes.</li>
|
||||
</ol>
|
||||
<p><code>sudo systemctl restart caddy</code></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,39 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Tutorials - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<div class="box">
|
||||
<p><h1>Tutorials</h1></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<h2>Darknet Guides</h2>
|
||||
<p><a href="./onion.html">Create a Tor hidden service website on Caddy on Debian 10</a></p>
|
||||
<p><a href="./yggdrasil.html">Create a Yggdrasil hidden service on Caddy on Debian 10</a></p>
|
||||
<p><a href="./i2p.html">Create an I2P eepsite on Caddy on Debian 10</a></p>
|
||||
<p><a href="./hyperdrive.html">Seed a Hyperdrive website on Debian 10</a></p>
|
||||
<p><a href="./gemini-tor.html">Virtualhost on Gemini using Tor</a></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p><a href="./nook.html">Root the Nook 1st Gen on Linux</a></p>
|
||||
<p><a href="./oasis.html">Run Oasis, a Secure Scuttlebutt client, on a remote server</a></p>
|
||||
<p><a href="./kristall-haiku.html">Install the Kristall browser in Haiku</a></p>
|
||||
<p><a href="./lokinet-32.html">Build and install LokiNet on Linux Mint 32-bit</a></p>
|
||||
<p><a href="./vlc.html">Play music in the CLI with an equalizer</a></p>
|
||||
<p><a href="./misskey.html">Install Misskey on Debian 9</a></p>
|
||||
<p><a href="./syncthing-tails.html">Install Syncthing on Tails</a></p>
|
||||
<p><a href="./playlist-clip.html">Make playlists on the SanDisk Clip Sport on Linux</a></p>
|
||||
<p><a href="./zeronet.html">Set up a detached and encrypted ZeroNet seedbox on a Raspberry Pi</a></p>
|
||||
<p><a href="./tiles.html">Dump tiles from a GameBoy ROM on Linux</a></p>
|
||||
<p><a href="./kobo-webdav.html">Browsing and publishing Gemini on a... Kobo?!</a></p>
|
||||
</div>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
@ -1,89 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Browsing and publishing Gemini on a... Kobo?! - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>Browsing and publishing Gemini on a... Kobo?!</h1></p>
|
||||
<p>published: 2021-01-07</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p>I have a Kobo Libra H2O. It's a little e-ink tablet-like device. While the specs aren't great, it <em>does</em> run Linux, which means theoretically one can run whatever programs they want on it! ...As long as those programs are line-based command-line or written for Kobo's special flavor of Qt.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<h2>Getting shell access to your Kobo</h2>
|
||||
<p>The first step is getting KOReader on the Kobo. Not only is it a much better reading app than the Kobo's built-in Nickel, it <em>also</em> includes a terminal emulator, a text editor, and a SSH server. <a href="https://github.com/koreader/koreader/wiki/Installation-on-Kobo-devices">The install instructions are on the KOReader wiki</a>. I personally recommend using the NickelMenu installation method halfway down the page.</p>
|
||||
<p>After you have KOReader set up, plug your Kobo into a computer with a USB cable.</p>
|
||||
<p><code>cd /path/to/your/kobo/</code></p>
|
||||
<p><code>cd ./.adds/koreader/settings/SSH/</code></p>
|
||||
<p><code>ssh-keygen -trsa -b 2048 -f ~/.ssh/kobo</code></p>
|
||||
<p><code>cp ~/.ssh/kobo.pub ./authorized_keys</code></p>
|
||||
<p>Safely disconnect your Kobo from your computer. Go into KOReader, then tap the gear icon on the top of the screen. Tap "Network". Connect to the same WiFi network your computer is on, then tap on "SSH server" and then "Start SSH server".</p>
|
||||
<code>ssh -i ~/.ssh/kobo -p 2222 root@your_kobo_local_ip_address</code>
|
||||
<p>Shell access should only be necessary for troubleshooting. For this guide, we are more interested in SFTP file transfer.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<h2>Setting up your environment</h2>
|
||||
<p>There are four programs you'll need:</p>
|
||||
<ol>
|
||||
<li><a href="https://github.com/mattn/godown">godown</a>: an HTML to Markdown converter</li>
|
||||
<li><a href="https://github.com/makeworld-the-better-one/gemget">gemget</a>: wget, but for the Gemini protocol</li>
|
||||
<li><a href="https://gitlab.com/davidjpeacock/kurly">kurly</a>: cURL, but written in Golang (since the version of <code>wget</code> that ships with KOReader's Dropbear doesn't support HTTPS for some reason)</li>
|
||||
<li><a href="https://github.com/micromata/dave">dave</a>: a simple WebDAV server</li>
|
||||
</ol>
|
||||
<p>The first three we will install on your Kobo. The last one will go on the server that runs your Gemini site.</p>
|
||||
<p>I specifically picked programs written in Golang because they compile to a single binary. This means no trying to manually resolve dependencies, since the Kobo doesn't have a package manager installed (that I could see). However, they still must be compiled for ARM. I compiled them on my Raspberry Pi 4 (which is also an ARM device) and copied the resulting binaries to my computer. If you want to cross-compile on your local computer instead, you're on your own.</p>
|
||||
<p>The config file for <code>dave</dave> needs to go in <code>~/.swd/config.yaml</code> on the remote server. It should look something like this:</p>
|
||||
<pre>
|
||||
address: "domain.tld" # the bind address
|
||||
port: "7778" # the listening port
|
||||
dir: "/path/to/your/gemsite/files" # the provided base dir
|
||||
prefix: "/" # the url-prefix of the original url
|
||||
users:
|
||||
# user: # with password 'foo' and jailed access to '/home/webdav/user'
|
||||
# password: "HASHED_PASSWORD"
|
||||
# subdir: "/user"
|
||||
YOURUSERNAME: # with password 'foo' and access to '/home/webdav'
|
||||
password: "HASHED_PASSWORD"
|
||||
tls:
|
||||
keyFile: gemini.key
|
||||
certFile: gemini.crt
|
||||
</pre>
|
||||
<p>You can make a HASHED_PASSWORD by running <code>davecli passwd</code> and following the prompts.</p>
|
||||
<p>After that, you need to get TLS certificates so <code>kurly</code> doesn't <del>shit its pants</del> complain about having no certificates.</p>
|
||||
<p>On your local computer:</p>
|
||||
<p><code>sftp -P 2222 -i ~/.ssh/kobo root@your_kobo_local_ip_address</code></p>
|
||||
<p><code>cd /etc/</code></p>
|
||||
<p><code>mkdir ssl && cd ssl</code></p>
|
||||
<p><code>mkdir certs && cd certs</code></p>
|
||||
<p><code>lcd /usr/share/ca-certificates/mozilla/</code></p>
|
||||
<p><code>put -r *</code></p>
|
||||
<p>This will put all the certificates installed on your computer onto your Kobo. If this is too much for you, you can instead just upload the public key you used for your WebDAV server above (Gemini uses TOFU for its TLS and thus doesn't require a certificate store). Just change the extension to <code>.pem</code> first before uploading.</p>
|
||||
<p>Put your binary program files in <code>/bin/</code>.</p>
|
||||
<p>At this point, you should be all set up. You can disconnect from the SFTP server and turn the SSH server on your Kobo off.</p>
|
||||
</div>
|
||||
<div class="box">
|
||||
<p><h2>The fun commands</h2></p>
|
||||
<p>Next to the gear icon at the top of the KOReader menu is a tool icon. Press it and then press "More tools". There's a terminal emulator!</p>
|
||||
<p>Except it's not interactive, only processing one command at a time, and it doesn't save the state of the terminal in between sessions. While <code>vi</code> is installed, curiously, it's really only for debugging over SSH and isn't usable here. Best case scenario, it'll only print a bunch of terminal control characters and then exit without letting you do anything.</p>
|
||||
<p>To look at an HTTP/S site: <code>/bin/kurly http://example.com | /bin/godown | grep -v -e '^$'</code></p>
|
||||
<p>To look at a Gemini site: <code>/bin/gemget -o - gemini://domain.tld</code></p>
|
||||
<p>To upload a text file: <code>/bin/kurly -T /path/to/file.txt -u 'username:password' "https://domain.tld:port/"</code></p>
|
||||
<p>These are quite a lot to type every time. I recommend saving them as shortcuts so you only have to change the domain or the file path every time instead of retyping everything.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,42 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to install the Kristall browser in Haiku - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to install the Kristall browser in Haiku</h1></p>
|
||||
<p>published: 2020-06-09</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p>Disclaimer: This was tested with Haiku nightly <code>hrev54304</code>. You may have to install more or different dependencies if you are using the <code>r1beta2</code> release instead.</p>
|
||||
<ol type="1">
|
||||
<li>Clone the Git repository:</li>
|
||||
</ol>
|
||||
<p><code>git clone https://github.com/masterq32/kristall</code></p>
|
||||
<p><code>cd kristall</code></p>
|
||||
<ol start="2" type="1">
|
||||
<li>Install some build dependencies:</li>
|
||||
</ol>
|
||||
<p><code>pkgman install qt5 qt5_devel qt5_tools libiconv_devel</code></p>
|
||||
<ol start="3" type="1">
|
||||
<li>Compile and install:</li>
|
||||
</ol>
|
||||
<p><code>make</code></p>
|
||||
<p><code>cd ~/config/settings/deskbar/menu/Applications/</code></p>
|
||||
<p><code>ln -s ~/kristall/kristall .</code></p>
|
||||
<p>Kristall should now be listed with the rest of your applications in the Deskbar.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,57 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to root the Nook 1st Gen on Linux - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to root the Nook 1st Gen on Linux</h1></p>
|
||||
<p>published: 2021-07-15</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p><i>Note: this guide assumes you already have ADB installed.</i></p>
|
||||
<ol type="1"><li><a href="../dl/nook/">Download the prerequisite files.</a></li></ol>
|
||||
<p>At the very least, you need the launcher APK, <code>ratc.bin</code>, and <code>exploit.html</code>. These files <em>should</em> also be accesible on <a href="https://forum.xda-developers.com/showthread.php?t=2395798">this XDA Forums thread.</a></p>
|
||||
<p>Rename <code>exploit.html</code> to <code>index.html</code>.</p>
|
||||
<ol start="2" type="1"><li>Setup the crash server.</li></ol>
|
||||
<p>Run <code>sudo python3 -m http.server --bind YOUR_COMPUTERS_LOCAL_IP_HERE 80</code> in the directory with the <code>index.html</code> file in it.</p>
|
||||
<ol start="3" type="1"><li>Crash your Nook's browser to enable ADB.</li></ol>
|
||||
<p>Open http://YOUR_COMPUTERS_LOCAL_IP_HERE in your Nook's built-in web browser (make sure that your computer and Nook are on the same network). The browser should refresh a few times and then crash to the home menu.</p>
|
||||
<ol start="4" type="1"><li>Connect to your Nook over ADB.</li></ol>
|
||||
<p><code>adb connect YOUR_NOOKS_LOCAL_IP_HERE</code></p>
|
||||
<p>If ADB refuses to connect, run step 3 again until it connects. This might take one try; this might take a hundred tries.</p>
|
||||
<ol start="5" type="1"><li>Get and edit <code>/init.rc</code>.</li></ol>
|
||||
<p><code>adb pull /init.rc</code></p>
|
||||
<p>Open <code>/init.rc</code> in your favorite text editor.</p>
|
||||
<p>Find the line that says <code>service adbd /sbin/adbd</code>.</p>
|
||||
<p>Below that should say <code>disabled</code>. Change that to <code>enabled</code>.</p>
|
||||
<ol start="6" type="1"><li>Get root access.</li></ol>
|
||||
<p>Repeat step 4 to connect to the Nook. Once connected:</p>
|
||||
<p><code>adb push ratc.bin /sqlite_stmt_journals</code></p>
|
||||
<p><code>adb shell</code></p>
|
||||
<p><code>cd /sqlite_stmt_journals</code></p>
|
||||
<p><code>/system/bin/chmod 777 ./ratc.bin</code></p>
|
||||
<p><code>./ratc.bin</code></p>
|
||||
<p>Several lines of output will appear. Do not press anything. A few seconds later, adb will disconnect you.</p>
|
||||
<p><code>adb kill-server</code></p>
|
||||
<ol start="7" type="1"><li>Push the patched <code>init.rc</code> to the Nook.</li></ol>
|
||||
<p>Repeat step 4, as usual.</p>
|
||||
<p><code>adb push init.rc /</code></p>
|
||||
<p>If all goes well, your Nook should now be rooted with adbd running on reboot.</p>
|
||||
<p>Go to the source link on the top of these instructions and install whatever apps you want. You <em>must</em> install, at the very minimum, <code>ru.mynook.launcher.apk</code> in order to access any of the other third-party apps installed.</p>
|
||||
<p>To install apps over ADB:</p>
|
||||
<p><code>adb install APP_NAME_HERE.apk</code></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,80 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to run Oasis, a Secure Scuttlebutt client, on a remote server - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<h1>How to run Oasis, a Secure Scuttlebutt client, on a remote server</h1>
|
||||
<p>published: 2021-11-13</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p>This tutorial assumes you already have a functioning Node.js and Caddy installation.</p>
|
||||
<ol type="1">
|
||||
<li>Install Oasis.</li>
|
||||
</ol>
|
||||
<code>git clone https://github.com/fraction/oasis.git<br />cd oasis<br />npm install</code>
|
||||
<p>Test the installation by running <code>node .</code> (yes, including the period).</p>
|
||||
<ul>
|
||||
<li>If the output stops after a few lines and isn't an obvious Node error, hit Control and C at the same time to exit; you're ready for the <code>systemd</code> file.</li>
|
||||
<li>If you get an error about port 3000 already being in use, use the command <code>node . --port PORTNUMBER</code> instead, where <code>PORTNUMBER</code> is any open port you want.</li>
|
||||
</ul>
|
||||
<p>If your instance immediately throws <a href="https://github.com/fraction/oasis/issues/718#issuecomment-927379995">an error about <code>ssb.friends.get</code></a>:</p>
|
||||
<code>git checkout 4e8f7426a4eb1d95f6e55cf894a3168f523f8af8<br />rm -rf node_modules<br />npm install</code>
|
||||
<ol start="2" type="1">
|
||||
<li>Prepare the <code>systemd</code> daemon file.</li>
|
||||
</ol>
|
||||
<p>Edit <code>/lib/systemd/system/oasis.service</code> as root with your favorite text editor. Paste the following:</p>
|
||||
<pre>
|
||||
[Unit]
|
||||
Description=Oasis client for Secure Scuttlebutt
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=YourUsername
|
||||
Group=YourUsername
|
||||
ExecStart=/path/to/your/node/binary . --port 8787
|
||||
WorkingDirectory=/path/to/where/you/cloned/oasis/
|
||||
TimeoutStopSec=5s
|
||||
LimitNOFILE=1048576
|
||||
PrivateTmp=true
|
||||
ProtectSystem=full
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
</pre>
|
||||
<p>Replace <code>/path/to/your/node/binary</code> with whatever comes up when you run <code>which node</code>. You may need to change this if you update Node.</p>
|
||||
<ol start="3" type="1">
|
||||
<li>Edit your Caddyfile. (This will probably also require root.)</li>
|
||||
</ol>
|
||||
<pre>
|
||||
yourdomain.tld {
|
||||
reverse_proxy 127.0.0.1:PORTNUMBER {
|
||||
header_up Host 127.0.0.1
|
||||
header_up Referer http://localhost
|
||||
}
|
||||
basicauth * {
|
||||
AnyUsernameYouWant EXTREMELYLONGCADDYHASHHERE
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
<p><code>EXTREMELYLONGCADDYHASHHERE</code> is used instead of an actual password so you don't have cleartext credentials hanging around. Generate this with <code>caddy hash-password</code>. Make sure you save your actual password in a password manager, as you can't reverse a hash!</p>
|
||||
<p>The <code>header_up</code> lines are there to trick Oasis into thinking it is running on a local machine, as it (very aggressively) wants to be. Normally this would be true, as Secure Scuttlebutt is peer-to-peer and intended to be run on a personal device that may see intermittent internet connectivity. However, if you're looking at this tutorial, you probably want to host a public peer as an <em>actually functioning</em> alternative to a <a href="https://github.com/ssbc/ssb-server">pub</a> or <a href="https://github.com/ssb-ngi-pointer/go-ssb-room/">room</a>.</p>
|
||||
<ol start="4" type="1">
|
||||
<li>Get everything running.</li>
|
||||
</ol>
|
||||
<code>sudo systemctl daemon-reload<br />sudo systemctl restart caddy<br />sudo systemctl start oasis && sudo systemctl enable oasis</code>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,76 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to create a Tor hidden service website on Caddy on Debian 10 - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to create a Tor hidden service website on Caddy on Debian 10</h1></p>
|
||||
<p>first published: 2020-01-31</p>
|
||||
<p>last updated: 2021-01-13</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol style="list-style-type: decimal">
|
||||
<li>Install Tor.</li>
|
||||
</ol>
|
||||
<code>sudo apt install tor</code>
|
||||
<ol start="2" style="list-style-type: decimal">
|
||||
<li>Install the Caddy web server.</li>
|
||||
</ol>
|
||||
<p><code>echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list</code></p>
|
||||
<p><code>sudo apt update; sudo apt install caddy -y</code></p>
|
||||
<ol start="3" style="list-style-type: decimal">
|
||||
<li>Edit <code>/etc/tor/torrc</code> to create the hidden service.</li>
|
||||
</ol>
|
||||
<p>Open /etc/tor/torrc in your favorite text editor. (Please note that this usually requires root privileges.)</p>
|
||||
<p>Go to the lines that say:</p>
|
||||
<code>
|
||||
#HiddenServiceDir /var/lib/tor/hidden_service/<br />
|
||||
#HiddenServicePort 80 127.0.0.1:80
|
||||
</code>
|
||||
<p>Uncomment them by deleting the # mark in front of each line.</p>
|
||||
<p>If you want, you can change the HiddenServiceDir directory, but you will need to remember it for later. For security purposes, keep the new directory inside of <code>/var/lib/tor/</code>.</p>
|
||||
<ol start="4" style="list-style-type: decimal">
|
||||
<li>Restart the Tor service.</li>
|
||||
</ol>
|
||||
<p><code>sudo systemctl restart tor@default</code></p>
|
||||
<ol start="5" style="list-style-type: decimal">
|
||||
<li>As root, go to the hidden service directory and get the new hidden service's domain.</li>
|
||||
</ol>
|
||||
<p><code>sudo -i</code></p>
|
||||
<p><code>cd /var/lib/tor/directory/</code></p>
|
||||
<p>Replace "directory" with the actual directory you chose in step 3.</p>
|
||||
<p><code>cat hostname</code></p>
|
||||
<p>If all is well, you should now see a long string of letters and numbers that ends in ".onion". Copy this somewhere safe. You'll need it next step.</p>
|
||||
<ol start="6" style="list-style-type: decimal">
|
||||
<li>Configure Caddy to serve the hidden service.</li>
|
||||
</ol>
|
||||
<p>Open <code>/etc/caddy/Caddyfile</code> with your favorite text editor. You should already be root, but if you did <code>exit</code> after getting the Tor hostname, just <code>sudo -i</code> again.</p>
|
||||
<p>Type the following in:</p>
|
||||
<pre>
|
||||
http://YourTorHostnameHere.onion {
|
||||
root * /your/website/file/path/here
|
||||
file_server
|
||||
encode gzip
|
||||
bind 127.0.0.1
|
||||
}
|
||||
</pre>
|
||||
<p>The "http://" in front of the address is important as that tells Caddy to not try to enable HTTPS on that domain. HTTPS is unnecessary for Tor hidden services as all traffic to and from the server is already encrypted in transit. And since Tor hidden services aren't accessible on the normal clearnet, the request for Let's Encrypt to give Caddy a certificate would fail as they wouldn't be able to access the domain.</p>
|
||||
<ol start="8" style="list-style-type: decimal">
|
||||
<li>Restart Caddy to apply your changes.</li>
|
||||
</ol>
|
||||
<p><code>sudo systemctl restart caddy</code></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,44 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to make playlists on the SanDisk Clip Sport on Linux - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to make playlists on the SanDisk Clip Sport on Linux</h1></p>
|
||||
<p>published: 2019-08-13</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol style="list-style-type: decimal">
|
||||
<li>Make a playlist with the songs you want in VLC.</li>
|
||||
<li>Save said playlist as an .m3u file. (Other playlist file types will not work.)</li>
|
||||
<li>Make a copy of said playlist file. Open it up in a text editor of your choice.</li>
|
||||
<li>Remove all the lines that start with "#EXTINF".</li>
|
||||
<li>Using the find-replace function, change the following strings:</li>
|
||||
</ol>
|
||||
<p>Whatever the path to your main music folder on your computer is, starting with "file:///", to "\Music". For example, the path to my main music library is <code>file:///mnt/Hell3/Music/Music Archive/Popular</code>. (My music is sorted into "Popular", "Soundtrack", and "Vaporwave".)</p>
|
||||
<p>"%20" to " " (that is, a space).</p>
|
||||
<p>"/" to "\".</p>
|
||||
<ol start="6" style="list-style-type: decimal">
|
||||
<li>Change the end-of-line markers to the DOS/Windows version.</li>
|
||||
</ol>
|
||||
<p>Open a terminal and <code>cd</code> to the directory you saved the copy of your playlist in, then type the following:</p>
|
||||
<p><code>unix2dos playlist-copy.m3u</code></p>
|
||||
<ol start="7" style="list-style-type: decimal">
|
||||
<li>Plug in your Clip Sport player. Make sure it is mounted properly (ie. not as a read-only device) before proceeding.</li>
|
||||
<li>Copy the playlist you just converted in step 6 to the "Playlists" folder, and your music to the "Music" folder.</li>
|
||||
</ol>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,39 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to dump tiles from a GameBoy ROM on Linux - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to dump tiles from a GameBoy ROM on Linux</h1></p>
|
||||
<p>published: 2020-04-08</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol type="1">
|
||||
<li>Download <a href="https://www.romhacking.net/utilities/119/">the yy-chr tool</a>. Extract it to a directory of your choice.</li>
|
||||
</ol>
|
||||
<p>Please note that it comes as a Windows binary; from my personal tests, it runs quite well in WINE.</p>
|
||||
<ol start="2" type="1">
|
||||
<li>Open/run <code>yychr.exe</code>. Go to <code>File > Open</code> and open the ROM you want to dump tiles from.</li>
|
||||
<li>Scroll to the place in the ROM you want to dump files from.</li>
|
||||
<li>Go to <code>File > Save snapshot</code>. It will ask you to save a file named <code>chrXXX.bmp</code>, where XXX is a number. Save it wherever you please.</li>
|
||||
<li>Repeat steps 3 and 4 until you have saved screenshots of all the places in the ROM that have tiles you want to dump.</li>
|
||||
<li>Once you are done, open a terminal and <code>cd</code> to the directory you saved the BMP files as.</li>
|
||||
<li>Run the following command, replacing XXX with the actual numbers in the file name:</li>
|
||||
</ol>
|
||||
<p><code>convert chrXXX.bmp -crop 16x16@ +repage +adjoin tile-%d.bmp</code></p>
|
||||
<p>This will dump each individual 8x8 tile into its own separate BMP file. Please be warned: this may generate more than a hundred files in that folder! Best to keep each separate chrXXX.bmp file in its own folder to keep everything organized.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,63 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to play music in the CLI with an equalizer - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to play music in the CLI with an equalizer</h1></p>
|
||||
<p>published: 2020-04-10</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol type="1">
|
||||
<li>Install VLC.</li>
|
||||
</ol>
|
||||
<p><code>sudo apt install vlc</code></p>
|
||||
<ol start="2" type="1">
|
||||
<li>Open VLC and drag some music in.</li>
|
||||
<li>While playing some music, open the Tools > Effects and Filters menu. Play around with the presets until you find one that sounds good.</li>
|
||||
<li>Write down the name of the preset you used and then close VLC.</li>
|
||||
<li>In a terminal, <code>cd</code> to where the music you want to play is.</li>
|
||||
<li>In that terminal, execute this command:</li>
|
||||
</ol>
|
||||
<p><code>cvlc --equalizer-preset=INSERT_PRESET_NAME_HERE -I ncurses *.flac</code></p>
|
||||
<p><code>INSERT_PRESET_NAME_HERE</code> should be in all lowercase. For example, the “Headphones” preset (which is what I use) would be <code>--equalizer-preset=headphones</code>.</p>
|
||||
<p>The full list of valid possibilities is:
|
||||
<ul>
|
||||
<li>flat</li>
|
||||
<li>classical</li>
|
||||
<li>club</li>
|
||||
<li>dance</li>
|
||||
<li>fullbass</li>
|
||||
<li>fullbasstreble</li>
|
||||
<li>fulltreble</li>
|
||||
<li>headphones</li>
|
||||
<li>largehall</li>
|
||||
<li>live</li>
|
||||
<li>party</li>
|
||||
<li>pop</li>
|
||||
<li>reggae</li>
|
||||
<li>rock</li>
|
||||
<li>ska</li>
|
||||
<li>soft</li>
|
||||
<li>softrock</li>
|
||||
<li>techno</li>
|
||||
</ul>
|
||||
<p>If your files are MP3 or some other format, replace the <code>flac</code> in <code>*.flac</code> with the actual file type.</p>
|
||||
<ol start="7" type="1">
|
||||
<li>Press the “h” key to open the help menu, which will show you the player controls.</li>
|
||||
</ol>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,84 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to create a Yggdrasil hidden service on Caddy on Debian 10 - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to create a Yggdrasil hidden service on Caddy on Debian 10</h1></p>
|
||||
<p>first published: 2021-01-16</p>
|
||||
<p>last updated: 2021-02-07</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol style="list-style-type: decimal">
|
||||
<li>Install Yggdrasil.</li>
|
||||
</ol>
|
||||
<p><code>sudo apt install dirmngr</code></p>
|
||||
<p><code>gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt</code></p>
|
||||
<p><code>gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -</code></p>
|
||||
<p><code>echo 'deb http://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list</code></p>
|
||||
<p><code>sudo apt update; sudo apt install yggdrasil</code></p>
|
||||
<ol start="2" style="list-style-type: decimal">
|
||||
<li>Install the Caddy web server.</li>
|
||||
</ol>
|
||||
<p><code>echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list</code></p>
|
||||
<p><code>sudo apt update; sudo apt install caddy -y</code></p>
|
||||
<ol start="3" style="list-style-type: decimal">
|
||||
<li>Get the IP Yggdrasil generates for you.</li>
|
||||
</ol>
|
||||
<p><code>sudo systemctl start yggdrasil; sudo systemctl enable yggdrasil</code></p>
|
||||
<p><code>sudo journalctl -xfe -u yggdrasil</code></p>
|
||||
<p>There will be a line that says "Your IPv6 address is". Copy the rest of that line somewhere safe.</p>
|
||||
<p>Press the Control and C buttons on your keyboard at the same time to exit <code>journalctl</code>.</p>
|
||||
<ol start="4" style="list-style-type: decimal">
|
||||
<li>Configure Caddy to serve the hidden service.</li>
|
||||
</ol>
|
||||
<p>Open <code>/etc/caddy/Caddyfile</code> as root with your favorite text editor.</p>
|
||||
<p>Type the following in:</p>
|
||||
<pre>
|
||||
http://[YGGDRASIL_IP_ADDRESS_HERE] {
|
||||
root * /your/website/file/path/here
|
||||
file_server
|
||||
encode gzip
|
||||
}
|
||||
</pre>
|
||||
<p>The "http://" in front of the address is important as that tells Caddy to not try to enable HTTPS for that website. HTTPS is unnecessary for Yggdrasil hidden services as all traffic to and from the server is already encrypted in transit. Besides, Let's Encrypt wouldn't be able to issue a certificate for an IP address anyway.</p>
|
||||
<ol start="5" style="list-style-type: decimal">
|
||||
<li>Restart Caddy to apply your changes.</li>
|
||||
</ol>
|
||||
<p><code>sudo systemctl restart caddy</code></p>
|
||||
<ol start="6" style="list-style-type: decimal">
|
||||
<li>Get some peers for Yggdrasil.</li>
|
||||
</ol>
|
||||
<p>Open <a href="https://github.com/yggdrasil-network/public-peers">this page</a> in a new tab on your browser. On your server, open <code>/etc/yggdrasil.conf</code> as root with your favorite text editor.</p>
|
||||
<p>At the top of the configuration file will be a section that looks like this:</p>
|
||||
<p><code>Peers: []</code></p>
|
||||
<p>Pick some peers from the list and add them to that section of the file (one per line) so it now looks something like this:</p>
|
||||
<pre>
|
||||
Peers:
|
||||
[
|
||||
tcp://50.236.201.218:56088
|
||||
tcp://lancis.iscute.moe:49273
|
||||
tcp://45.77.107.150:34660
|
||||
tls://longseason.1200bps.xyz:13122
|
||||
tcp://8.9.30.45:34371
|
||||
tls://107.189.4.167:42024
|
||||
]
|
||||
</pre>
|
||||
<p>Substitute for the peers closest to your server geographically.</p>
|
||||
<p>Save the file and close it.</p>
|
||||
<p><code>sudo systemctl restart yggdrasil</code></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
@ -1,103 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to set up a detached and encrypted ZeroNet seedbox on a Raspberry Pi - Archive - MayVaneDay Studios</title>
|
||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
||||
<meta name="author" content="Vane Vander">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body class="mayvaneday">
|
||||
<article>
|
||||
<div class="box">
|
||||
<p><h1>How to set up a detached and encrypted ZeroNet seedbox on a Raspberry Pi</h1></p>
|
||||
<p>published: 2019-11-06</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol style="list-style-type: decimal">
|
||||
<li>Format a USB stick with LUKS:</li>
|
||||
</ol>
|
||||
<p><code>sudo apt install gnome-disk-utility cryptsetup</code></p>
|
||||
<p>If you're running a different distro on your server, the package name will likely vary: it's usually some form of <code>gnome-disks</code>. <code>cryptsetup</code> is required for LUKS, and for some reason, apt doesn't install it by default.</p>
|
||||
<p>Once it installs, make sure your USB stick is plugged in, open a terminal, and run <code>sudo gnome-disks</code>.</p>
|
||||
<p>Hit the gear icon below the partition table and choose <i>Format Partition</i>, then choose LUKS. Enter a strong password (that you'll remember, of course). In the "Volume Label" section, enter "zeronet" just to make this guide a little easier.</p>
|
||||
<ol start="2" style="list-style-type: decimal">
|
||||
<li>Mount the USB stick:</li>
|
||||
</ol>
|
||||
<p><code>sudo nano -$ /etc/fstab</code></p>
|
||||
<p>Put the following line on the bottom:</p>
|
||||
<p><code>/dev/disk/by-label/zeronet /mnt/zeronet auto user,nosuid,nodev,nofail,x-gvfs-show 0 0</code></p>
|
||||
<p>Reboot your server.</p>
|
||||
<p>If /mnt/zeronet isn't accessible by non-root users, execute the following command to fix that:</p>
|
||||
<p><code>sudo chmod -R 777 /mnt/zeronet</code></p>
|
||||
<p>Please note that 777 isn't the safest of permissions; if you know your username and group, a <code>chown</code> instead is safer:</p>
|
||||
<p><code>sudo chown -R username:group /mnt/zeronet</sudo></p>
|
||||
<ol start="3" style="list-style-type: decimal">
|
||||
<li>Download and install the latest version of ZeroNet:</li>
|
||||
</ol>
|
||||
<p><code>cd /mnt/zeronet</code></p>
|
||||
<p><code>git clone https://github.com/HelloZeroNet/ZeroNet</code></p>
|
||||
<p><code>cd ZeroNet</code></p>
|
||||
<p><code>sudo -H pip3 install -r requirements.txt</code></p>
|
||||
<p>Enable the UiPassword plugin, and remove the Multiuser plugin to avoid future issues:</p>
|
||||
<p><code>mv plugins/disabled-UiPassword plugins/UiPassword</code></p>
|
||||
<p><code>rm -rf plugins/disabled-Multiuser</code></p>
|
||||
<p>Then configure it to be accessible over the network:</p>
|
||||
<p><code>nano -$ zeronet.conf</code></p>
|
||||
<p>Paste the following into the text editor:</p>
|
||||
<pre>
|
||||
[global]
|
||||
fileserver_port = 27328
|
||||
ui_ip = your.local.ip.here
|
||||
ui_password = set_a_password_here
|
||||
</pre>
|
||||
<ol start="4" style="list-style-type: decimal">
|
||||
<li>Enable Tor access:</li>
|
||||
</ol>
|
||||
<p><code>sudo apt install tor</code></p>
|
||||
<p><code>sudo nano -$ /etc/tor/torrc</code></p>
|
||||
<p>Uncomment the lines that say <code>ControlPort 9051</code> and <code>CookieAuthentication 1</code>.</p>
|
||||
<p>Save and exit the file, then restart the Tor service:</p>
|
||||
<p><code>sudo systemctl restart tor</code></p>
|
||||
<p>Then give your user permission to read the Tor cookie you just set up:</p>
|
||||
<p><code>sudo usermod -a -G debian-tor YourUsername</code></p>
|
||||
<p>Login and logout of your user, or just reboot the server.</p>
|
||||
<ol start="5" style="list-style-type: decimal">
|
||||
<li>Make a systemd service:</li>
|
||||
</ol>
|
||||
<p><code>sudo nano -$ /etc/systemd/system/zeronet.service</code></p>
|
||||
<p>Paste the following:</p>
|
||||
<pre>
|
||||
[Unit]
|
||||
Description=zeronet
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=YourUsername
|
||||
WorkingDirectory=/mnt/zeronet/ZeroNet
|
||||
ExecStart=/usr/bin/python3 /mnt/zeronet/ZeroNet/zeronet.py
|
||||
Environment=USER=YourUsername
|
||||
Restart=always
|
||||
StandardError=syslog
|
||||
CPUQuota=80%
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
</pre>
|
||||
<p>Then reload systemd to install the new service:</p>
|
||||
<p><code>sudo systemctl daemon-reload</code></p>
|
||||
<ol start="6" style="list-style-type: decimal">
|
||||
<li>Start ZeroNet:</li>
|
||||
</ol>
|
||||
<p><code>sudo systemctl start zeronet</code></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|