first commit
This commit is contained in:
commit
289d9cb49b
273 changed files with 12085 additions and 0 deletions
49
tutorials/gemini-tor.html
Executable file
49
tutorials/gemini-tor.html
Executable file
|
@ -0,0 +1,49 @@
|
|||
<!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>
|
50
tutorials/hyperdrive.html
Executable file
50
tutorials/hyperdrive.html
Executable file
|
@ -0,0 +1,50 @@
|
|||
<!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>
|
76
tutorials/i2p.html
Executable file
76
tutorials/i2p.html
Executable file
|
@ -0,0 +1,76 @@
|
|||
<!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>
|
38
tutorials/index.html
Executable file
38
tutorials/index.html
Executable file
|
@ -0,0 +1,38 @@
|
|||
<!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="./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>
|
89
tutorials/kobo-webdav.html
Executable file
89
tutorials/kobo-webdav.html
Executable file
|
@ -0,0 +1,89 @@
|
|||
<!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>
|
42
tutorials/kristall-haiku.html
Executable file
42
tutorials/kristall-haiku.html
Executable file
|
@ -0,0 +1,42 @@
|
|||
<!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>
|
50
tutorials/lokinet-32.html
Executable file
50
tutorials/lokinet-32.html
Executable file
|
@ -0,0 +1,50 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to build and install LokiNet on Linux Mint 32-bit - 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 build and install LokiNet on Linux Mint 32-bit</h1></p>
|
||||
<p>published: 2020-04-11</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol type="1">
|
||||
<li>Install LokiNet’s build dependencies:</li>
|
||||
</ol>
|
||||
<p><code>sudo apt install build-essential cmake git libcap-dev curl libuv1-dev libsodium-dev libcurl4-openssl-dev pkg-config</code></p>
|
||||
<ol start="2" type="1">
|
||||
<li>Clone the LokiNet Git repository:</li>
|
||||
</ol>
|
||||
<p><code>git clone https://github.com/loki-project/loki-network; cd loki-network</code></p>
|
||||
<p><code>git submodule update --init --recursive</code></p>
|
||||
<ol start="3" type="1">
|
||||
<li>Edit the Makefile to force the correct libsodium to be used.</li>
|
||||
</ol>
|
||||
<p>Open <code>Makefile</code> in your text editor of choice. Find the line that says <code>DOWNLOAD_SODIUM</code>. Change <code>OFF</code> to <code>ON</code>.</p>
|
||||
<ol start="4" type="1">
|
||||
<li>Build and install LokiNet:</li>
|
||||
</ol>
|
||||
<p><code>make</code> <code>sudo make install</code></p>
|
||||
<ol start="5" type="1">
|
||||
<li>Bootstrap and run:</li>
|
||||
</ol>
|
||||
<p><code>lokinet -g</code></p>
|
||||
<p><code>lokinet-bootstrap</code></p>
|
||||
<p><code>lokinet</code></p>
|
||||
<p>If the LokiNet executable complains about not being able to set up network interfaces, run this command:</p>
|
||||
<p><code>sudo setcap cap_net_admin,cap_net_bind_service=+eip /path/to/lokinet/executable</code></p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
104
tutorials/misskey.html
Executable file
104
tutorials/misskey.html
Executable file
|
@ -0,0 +1,104 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to install Misskey on Debian 9 - 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 Misskey on Debian 9</h1></p>
|
||||
<p>published: 2019-09-21</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol type="1">
|
||||
<li>Create a user for Misskey:</li>
|
||||
</ol>
|
||||
<p><code>adduser --disabled-password --disabled-login misskey</code></p>
|
||||
<p><code>adduser misskey sudo</code></p>
|
||||
<p><code>passwd</span> misskey</a></code></p>
|
||||
<p>Give the misskey user a strong password. Write it down somewhere safe.</p>
|
||||
<ol start="2" type="1">
|
||||
<li>Add the Node.js and PostgreSQL repositories:</li>
|
||||
</ol>
|
||||
<p><code>curl -sL https://deb.nodesource.com/setup_12.x |bash</code></p>
|
||||
<p><code>echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgdg.list</code></p>
|
||||
<p><code>cd /tmp</code></p>
|
||||
<p><code>wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -</code></p>
|
||||
<p><code>apt-get update</code></p>
|
||||
<ol start="3" type="1">
|
||||
<li>Install Misskey’s dependencies:</li>
|
||||
</ol>
|
||||
<p><code>apt-get install -y nodejs postgresql redis-server build-essential python certbot byobu sudo</code></p>
|
||||
<ol start="4" type="1">
|
||||
<li>Set up a password for PostgreSQL:</li>
|
||||
</ol>
|
||||
<p><code>passwd postgres</code></p>
|
||||
<p>Write this password down somewhere safe. You’ll need it later.</p>
|
||||
<ol start="5" type="1">
|
||||
<li>Download Misskey:</li>
|
||||
</ol>
|
||||
<p><code>su - misskey</code></p>
|
||||
<p><code>git clone -b master git://github.com/syuilo/misskey.git</code></p>
|
||||
<p><code>cd misskey</code></p>
|
||||
<p><code>git checkout master</code></p>
|
||||
<p><code>npm install</code></p>
|
||||
<ol start="6" type="1">
|
||||
<li>Configure Misskey:</li>
|
||||
</ol>
|
||||
<p><code>cp .config/example.yml .config/default.yml</code></p>
|
||||
<p>Edit <code>.config/default.yml</code> with your terminal editor of choice.</p>
|
||||
<p><code>url</code> should be the URL of your server.</p>
|
||||
<p>Assuming you don’t know what you’re doing, which is probably true if you’re reading this, uncomment the line that says <code>port: 443</code>. This will make Misskey start its own web server on port 443 (the HTTPS port).</p>
|
||||
<p>Uncomment the <code>key:</code> and <code>cert:</code> lines. Replace example.tld in the file path with the same URL as you used above, omitting the <code>https://</code> at the beginning.</p>
|
||||
<p>Under the <code>user: postgres</code> line, there should be a password line. Make sure it is uncommented and put in the password that you set up earlier.</p>
|
||||
<p>Uncomment the <code>autoAdmin: true</code> line. This will make the first user registrated on the instance the admin of the instance. Hopefully this is you!</p>
|
||||
<ol start="7" type="1">
|
||||
<li>Set up PostgreSQL:</li>
|
||||
</ol>
|
||||
<p><code>exit</code></p>
|
||||
<p><code>su - postgres</code></p>
|
||||
<p>You are now logged in as the postgres user. Type in <code>psql</code> and press enter. A different command prompt should show up. Type in <code>CREATE DATABASE misskey;</code> and follow whatever instructions it gives you.</p>
|
||||
<!-- ALTER USER postgres PASSWORD 'newPassword'; as well? needs investigation-->
|
||||
<ol start="8" type="1">
|
||||
<li>Set up SSL:</li>
|
||||
</ol>
|
||||
<p><code>exit</code></p>
|
||||
<p><code>certbot certonly -d example.tld</code></p>
|
||||
<p><code>example.tld</code> should be the URL you previously configured in the Misskey config file. Make sure that your DNS is properly set up to point to your server’s IP address.</p>
|
||||
<p>Follow the instructions Certbot gives you.</p>
|
||||
<ol start="9" type="1">
|
||||
<li>Compile Misskey:</li>
|
||||
</ol>
|
||||
<p><code>su - misskey</code></p>
|
||||
<p><code>cd misskey</code></p>
|
||||
<p><code>NODE_ENV=production npm run build</code></p>
|
||||
<p>Sit back for a hot minute while it compiles. If you have 2 GB or less of RAM, pick a god and pray. If you have less than 1 GB of RAM and you’ve somehow made it this far, nuke your server and give up now.</p>
|
||||
<p>After that’s done, run <code>npm run init</code> to set up the Misskey database.</p>
|
||||
<ol start="10" type="1">
|
||||
<li>Run Misskey:</li>
|
||||
</ol>
|
||||
<p><code>cd ~</code></p>
|
||||
<p><code>byobu</code></p>
|
||||
<p>You are now in Byobu. This is a window manager for the command line. This will allow you to daemonize Misskey (run it in the background) without using systemd, which is an absolute pain in the ass to diagnose and fix.</p>
|
||||
<p><code>cd misskey</code></p>
|
||||
<p><code>sudo NODE_ENV=production npm start</code></p>
|
||||
<p>If everything looks good (there are no fatal error messages), open your configured URL in a web browser and complete setup from the web interface.</p>
|
||||
<p>When you want to close the terminal, press Ctrl and A at the same time. Pick the first option for whatever Byobu nags you about. Press Ctrl and A again, and then press D. You should get a “detached from session” message. Log out of the misskey user and then the root user until the terminal disconnects from the server.</p>
|
||||
<p>If Misskey ever locks up or it uses more than 70% of the server’s CPU, either:</p>
|
||||
<ul>
|
||||
<li>log in as root, run <code>systemctl reboot now</code> to reboot the server, then log in as root, <code>su - misskey</code>, and repeat step 10 to get Misskey running again.</li>
|
||||
<li>use your VPS provider’s dashboard to reboot the server, then log in as root, <code>su - misskey</code>, and repeat step 10 to get Misskey running again.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
57
tutorials/nook.html
Executable file
57
tutorials/nook.html
Executable file
|
@ -0,0 +1,57 @@
|
|||
<!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>
|
76
tutorials/onion.html
Executable file
76
tutorials/onion.html
Executable file
|
@ -0,0 +1,76 @@
|
|||
<!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>
|
44
tutorials/playlist-clip.html
Executable file
44
tutorials/playlist-clip.html
Executable file
|
@ -0,0 +1,44 @@
|
|||
<!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>
|
55
tutorials/syncthing-tails.html
Executable file
55
tutorials/syncthing-tails.html
Executable file
|
@ -0,0 +1,55 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>How to install Syncthing on Tails - 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 Syncthing on Tails</h1></p>
|
||||
<p>published: 2019-07-01</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<ol type="1">
|
||||
<li>Create a persistent volume in Tails. If you already have a persistent volume configured with Additional Software, Dotfiles, and Personal Data enabled, skip to step 2.</li>
|
||||
</ol>
|
||||
<p>After your first boot, go to the Applications menu in the top left corner. Open the Tails menu, and then select “Configure persistent volume”. Follow the on-screen instructions. At the very least, enable Additional Software, Dotfiles, and Personal Data. When the on-screen instructions tell you to reboot, do so.</p>
|
||||
<ol start="2" type="1">
|
||||
<li><a href="https://tails.boum.org/doc/first_steps/welcome_screen/administration_password/index.en.html">Set up an admin password on Tails.</a></li>
|
||||
</ol>
|
||||
<p>On boot, go to the advanced settings button in Tails Greeter (the first window that pops up, before you go to the desktop). Click on the plus button, then select Administration Password. Type in a password of your choice and click Add.</p>
|
||||
<ol start="3" type="1">
|
||||
<li>Install Syncthing.</li>
|
||||
</ol>
|
||||
<p><code>sudo apt install syncthing</code></p>
|
||||
<ol start="4" type="1">
|
||||
<li>Configure Syncthing to use Tails’ SOCKS5 proxy and use your Persistent folder for its configuration.</li>
|
||||
</ol>
|
||||
<p>Open ~/.bashrc in your favorite text editor. At the end of the file, add the following lines:</p>
|
||||
<p><code>export all_proxy=socks5://127.0.0.1:9150</code></p>
|
||||
<p><code>alias sta=‘syncthing --home=/home/amnesia/Persistent/.config/syncthing’</code></p>
|
||||
<p>Save and close the file. Copy it into your persistent Dotfiles folder, usually at <code>/live/persistence/TailsData_unlocked/dotfiles/</code>.</p>
|
||||
<ol start="5" type="1">
|
||||
<li>Initialize and start Syncthing.</li>
|
||||
</ol>
|
||||
<p>Reboot and unlock your persistent volume. Once on the desktop, open a terminal and type <code>sta</code>.</p>
|
||||
<ol start="6" type="1">
|
||||
<li>Configure Tor Browser to connect to the Syncthing web interface.</li>
|
||||
</ol>
|
||||
<p>Open Tor Browser (obviously). Open the hamburger menu and click on Preferences. At the very bottom, click on “Settings” next to “Configure how Tor Browser connects to the internet”. In the “no proxy for” box, type in “127.0.0.1” without the quotes.</p>
|
||||
<p>Click the OK box and exit Preferences. Open another terminal and type:</p>
|
||||
<p><code>sudo iptables -I OUTPUT -o lo -p tcp --dport 8384 -j ACCEPT</code></p>
|
||||
<p>You will need to do step 6 every time you reboot Tails, as there is currently no way to make this persistent.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="box">
|
||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
39
tutorials/tiles.html
Executable file
39
tutorials/tiles.html
Executable file
|
@ -0,0 +1,39 @@
|
|||
<!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>
|
63
tutorials/vlc.html
Executable file
63
tutorials/vlc.html
Executable file
|
@ -0,0 +1,63 @@
|
|||
<!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>
|
84
tutorials/yggdrasil.html
Executable file
84
tutorials/yggdrasil.html
Executable file
|
@ -0,0 +1,84 @@
|
|||
<!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>
|
103
tutorials/zeronet.html
Executable file
103
tutorials/zeronet.html
Executable file
|
@ -0,0 +1,103 @@
|
|||
<!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>
|
Loading…
Add table
Add a link
Reference in a new issue