New tutorial for Oasis
This commit is contained in:
		
							parent
							
								
									289d9cb49b
								
							
						
					
					
						commit
						bd8ac670bc
					
				
					 7 changed files with 159 additions and 72 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | *stignore* | ||||||
							
								
								
									
										0
									
								
								.stignore
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								.stignore
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										138
									
								
								feed.xml
									
										
									
									
									
								
							
							
						
						
									
										138
									
								
								feed.xml
									
										
									
									
									
								
							|  | @ -2,14 +2,79 @@ | ||||||
| <feed xmlns="http://www.w3.org/2005/Atom"> | <feed xmlns="http://www.w3.org/2005/Atom"> | ||||||
| 
 | 
 | ||||||
| 	<title>MayVaneDay: Latest Updates</title> | 	<title>MayVaneDay: Latest Updates</title> | ||||||
| 	<link href="https://mayvaneday.art/feed.xml" rel="self" /> | 	<link href="https://mayvaneday.org/feed.xml" rel="self" /> | ||||||
| 	<link href="https://mayvaneday.art" /> | 	<link href="https://mayvaneday.org" /> | ||||||
| 	<id>https://mayvaneday.art/feed.xml</id> | 	<id>https://mayvaneday.art/feed.xml</id> | ||||||
| 	<author> | 	<author> | ||||||
| 		<name>Vane Vander</name> | 		<name>Vane Vander</name> | ||||||
| 		<email>vanevander@mayvaneday.art</email> | 		<email>vanevander@mayvaneday.art</email> | ||||||
| 	</author> | 	</author> | ||||||
| 	 | 	 | ||||||
|  | 	<entry> | ||||||
|  | 		<title>How to run Oasis, a Secure Scuttlebutt client, on a remote server</title> | ||||||
|  | 		<link href="https://mayvaneday.org/tutorials/oasis.html" /> | ||||||
|  | 		<id>https://mayvaneday.org/tutorials/oasis.html</id> | ||||||
|  | 		<published>2021-11-13</published> | ||||||
|  | 		<summary type="html"><![CDATA[<article> | ||||||
|  | 				<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> | ||||||
|  | 				</article>]]> | ||||||
|  | 		</summary> | ||||||
|  | 	</entry> | ||||||
|  | 	 | ||||||
| 	<entry> | 	<entry> | ||||||
| 		<title>Analog Hole</title> | 		<title>Analog Hole</title> | ||||||
| 		<link href="https://mayvaneday.art/blog/2021/november/nft.html" /> | 		<link href="https://mayvaneday.art/blog/2021/november/nft.html" /> | ||||||
|  | @ -267,73 +332,4 @@ | ||||||
| 		</summary> | 		</summary> | ||||||
| 	</entry> | 	</entry> | ||||||
| 
 | 
 | ||||||
| 	<entry> |  | ||||||
| 		<title>The Ridge</title> |  | ||||||
| 		<link href="https://mayvaneday.art/poetry/r/ridge.txt" /> |  | ||||||
| 		<id>https://mayvaneday.art/poetry/r/ridge.txt</id> |  | ||||||
| 		<published>2021-08-23</published> |  | ||||||
| 		<summary type="html"><![CDATA[<article> |  | ||||||
| <pre> |  | ||||||
| It's been |  | ||||||
| too long since I've haunted here, |  | ||||||
| too long since the flood, |  | ||||||
| too long since I've buried myself, |  | ||||||
| cursing the hallowed sun. |  | ||||||
| 
 |  | ||||||
| Another day, |  | ||||||
| another pain, |  | ||||||
| another reminder why I should restrain |  | ||||||
| this desperate yearning to be at your side. |  | ||||||
| I can't control myself, you insist, |  | ||||||
| can't care for myself, can't abide |  | ||||||
| by a single plea: |  | ||||||
| *wait for me |  | ||||||
| until the war is done.* |  | ||||||
| But how can I stay inert at the sidelines? |  | ||||||
| How can I watch, patient, as you struggle for life? |  | ||||||
| 
 |  | ||||||
| I keep looking at your face. |  | ||||||
| I keep looking into your eyes, |  | ||||||
| into the depravity |  | ||||||
| void of grace, |  | ||||||
| the sweaty sleepless nights, |  | ||||||
| the frights |  | ||||||
| that dance between the stone space of your skull. |  | ||||||
| 
 |  | ||||||
| Little said, but oft reply |  | ||||||
| in hopes this boat crosses Imaginai, |  | ||||||
| the fierce rivers, the gaudy veil |  | ||||||
| that I would without a pause assail |  | ||||||
| if it meant bringing closer by one more day |  | ||||||
| Eris' death, |  | ||||||
| the shatter of masks, |  | ||||||
| our withdrawal for some time |  | ||||||
| into this world I've somehow made |  | ||||||
| without Seliph's curse, |  | ||||||
| without my sacrifice. |  | ||||||
| 
 |  | ||||||
| How many times have you asked |  | ||||||
| what I would do once that day passed? |  | ||||||
| How long 'til I set down |  | ||||||
| this crown, |  | ||||||
| bade job goodbye, |  | ||||||
| convince parents and friends |  | ||||||
| that, although I disappear, |  | ||||||
| I'm off to a place where I'll be alright? |  | ||||||
| Don't come looking for me, |  | ||||||
| don't waste your "precious" fruitless time. |  | ||||||
| Your daughter was a sinner, |  | ||||||
| passionate, iniquitous, |  | ||||||
| desiring, delirious, divine. |  | ||||||
| 
 |  | ||||||
| It's been |  | ||||||
| too long since I've haunted here, |  | ||||||
| since I've had to justify |  | ||||||
| my right |  | ||||||
| to survive. |  | ||||||
| </pre> |  | ||||||
| 				</article>]]> |  | ||||||
| 		</summary> |  | ||||||
| 	</entry> |  | ||||||
| 
 |  | ||||||
| </feed> | </feed> | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ | ||||||
| 		<meta name="abuseipdb-verification" content="vbeJNq7o" /> | 		<meta name="abuseipdb-verification" content="vbeJNq7o" /> | ||||||
| 		<meta name="description" content="Vane Vander's personal website"> | 		<meta name="description" content="Vane Vander's personal website"> | ||||||
| 	</head> | 	</head> | ||||||
| 	<body> | 	<body class="index"> | ||||||
| 	<div class="box"> | 	<div class="box"> | ||||||
| 		<h2>Welcome to MayVaneDay Studios</h2> | 		<h2>Welcome to MayVaneDay Studios</h2> | ||||||
| 	</div> | 	</div> | ||||||
|  | @ -29,6 +29,10 @@ | ||||||
| 		</ul> | 		</ul> | ||||||
| 	</div> | 	</div> | ||||||
| 	<hr> | 	<hr> | ||||||
|  | 	<div class="box"> | ||||||
|  | 		<p><strong>Stop scraping my website.</strong> You now have <b><i>two</i></b> options for pulling a full copy of my website: ZeroNet and Git. Both of these will auto-update and give you the actual source files, unlike a recursive <code>wget</code> or whatever that will mangle everything. Save yourself and me the grief and just use these instead.</p> | ||||||
|  | 	</div> | ||||||
|  | 	<hr> | ||||||
| 	<div class="box"> | 	<div class="box"> | ||||||
| 		<p><a href="./blog/index.html">Blog</a> <a href="./feed.xml">(RSS Feed)</a></p> | 		<p><a href="./blog/index.html">Blog</a> <a href="./feed.xml">(RSS Feed)</a></p> | ||||||
| 		<p><a href="./poetry/">Poetry</a></p> | 		<p><a href="./poetry/">Poetry</a></p> | ||||||
|  | @ -47,6 +51,7 @@ | ||||||
| 		<a href="http://127.0.0.1:8888/USK@Up0ipQCQjyY2PaGofU-P63kJMb54E0~2xZiUnyxPypM,rGmJhPDVou6DwS6Eh23sZ93hVbDaA6v4D5l3vWsN-oY,AQACAAE/mayvaneday/-1/">[Freenet]</a> | 		<a href="http://127.0.0.1:8888/USK@Up0ipQCQjyY2PaGofU-P63kJMb54E0~2xZiUnyxPypM,rGmJhPDVou6DwS6Eh23sZ93hVbDaA6v4D5l3vWsN-oY,AQACAAE/mayvaneday/-1/">[Freenet]</a> | ||||||
| 		<a href="http://meynethaffeecapsvfphrcnfrx44w2nskgls2juwitibvqctk2plvhqd.onion">[Tor]</a> | 		<a href="http://meynethaffeecapsvfphrcnfrx44w2nskgls2juwitibvqctk2plvhqd.onion">[Tor]</a> | ||||||
| 		<a href="http://ikhuwze4r597pn6shynuc7dk1io1ahywxn5e1wu769apzfmcyjfo.loki">[Lokinet]</a> | 		<a href="http://ikhuwze4r597pn6shynuc7dk1io1ahywxn5e1wu769apzfmcyjfo.loki">[Lokinet]</a> | ||||||
|  | 		<a href="https://gogs.letsdecentralize.org/letheposting/mayvaneday.org">[Git]</a> | ||||||
| 	</div> | 	</div> | ||||||
| 	</body> | 	</body> | ||||||
| </html> | </html> | ||||||
|  |  | ||||||
|  | @ -23,6 +23,10 @@ body { | ||||||
| 	margin-bottom: 10px; | 	margin-bottom: 10px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .index { | ||||||
|  | 	max-width: 670px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| a, a:visited { | a, a:visited { | ||||||
| 	text-decoration: none; | 	text-decoration: none; | ||||||
| 	color: inherit; | 	color: inherit; | ||||||
|  |  | ||||||
|  | @ -23,6 +23,7 @@ | ||||||
| 		<hr> | 		<hr> | ||||||
| 		<div class="box"> | 		<div class="box"> | ||||||
| 			<p><a href="./nook.html">Root the Nook 1st Gen on Linux</a></p> | 			<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="./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="./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="./vlc.html">Play music in the CLI with an equalizer</a></p> | ||||||
|  |  | ||||||
							
								
								
									
										80
									
								
								tutorials/oasis.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								tutorials/oasis.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,80 @@ | ||||||
|  | <!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> | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vane Vander
						Vane Vander