added docs changes

This commit is contained in:
2025-01-28 16:15:42 +00:00
parent 075d1850f6
commit 9b255265c4
3 changed files with 105 additions and 80 deletions

View File

@@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2025-01-27 Mon 22:30 -->
<!-- 2025-01-28 Tue 16:13 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
@@ -69,7 +69,7 @@
<li><a href="#pulling-plugin-from-a-remote-repo">3.0.17. Pulling plugin from a remote repo</a></li>
<li><a href="#deleting-plugin-from-the-plugin-directory">3.0.18. Deleting plugin from the plugin directory</a></li>
<li><a href="#added-custom-metadata-about-the-current-node">3.0.19. Added custom metadata about the current node</a></li>
<li><a href="#orge7e71d0">3.0.20. MapPort and link to domain name</a></li>
<li><a href="#org9bc31bd">3.0.20. MapPort and link to domain name</a></li>
</ul>
</li>
</ul>
@@ -99,8 +99,8 @@
</li>
<li><a href="#current-languages-supported">5.3. Current languages supported</a>
<ul>
<li><a href="#orgd6f44f0">5.3.1. Python</a></li>
<li><a href="#org62259ee">5.3.2. Haskell</a></li>
<li><a href="#org4aeb30e">5.3.1. Python</a></li>
<li><a href="#orgcccf645">5.3.2. Haskell</a></li>
</ul>
</li>
</ul>
@@ -117,22 +117,22 @@
</ul>
</li>
<li><a href="#client-mode">9. Client mode</a></li>
<li><a href="#org911165f">10. Blog posts</a>
<li><a href="#org5156fb1">10. Blog posts</a>
<ul>
<li><a href="#org8d81aa7">10.1. Self host within 5 minutes any program</a>
<li><a href="#org4e0e874">10.1. Self host within 5 minutes any program</a>
<ul>
<li><a href="#org0fb424b">10.1.1. 1. Find a program you want to run</a></li>
<li><a href="#orgca237a5">10.1.1. 1. Find a program you want to run</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org4971a44">11. Ideas for future potencial features</a>
<li><a href="#org6d0c58e">11. Ideas for future potencial features</a>
<ul>
<li><a href="#orgacf8d0e">11.1. To support hetrogenous set of Nodes that cannot run P2PRC</a>
<li><a href="#org408d405">11.1. To support hetrogenous set of Nodes that cannot run P2PRC</a>
<ul>
<li><a href="#org371b7e9">11.1.1. Assumptions:</a></li>
<li><a href="#org75ee93e">11.1.2. Set of interesting possible:</a></li>
<li><a href="#orgd337603">11.1.3. Implementation</a></li>
<li><a href="#orgc488227">11.1.1. Assumptions:</a></li>
<li><a href="#org254dd34">11.1.2. Set of interesting possible:</a></li>
<li><a href="#org94b2546">11.1.3. Implementation</a></li>
</ul>
</li>
</ul>
@@ -239,7 +239,7 @@ Go API to create and interact with the containers.
to install docker GPU</a>
</p>
<pre class="example" id="org9900f2d">
<pre class="example" id="org2c4f1d2">
// Do ensure that the docker command does not need sudo to run
sudo chmod 666 /var/run/docker.sock
</pre>
@@ -254,7 +254,7 @@ To set up the internal dependencies and build the entire go code into a
single binary
</p>
<pre class="example" id="org3dc2690">
<pre class="example" id="orga885178">
make
</pre>
</div>
@@ -267,7 +267,7 @@ To set up P2PRC on Windows, simply run this batch file. <b>Make sure you
are not in admin mode when running this.</b>
</p>
<pre class="example" id="org6c9e2ba">
<pre class="example" id="org081ebfa">
.\install.bat
</pre>
</div>
@@ -278,7 +278,7 @@ are not in admin mode when running this.</b>
<div id="outline-container-add-appropriate-paths-to-.bashrc" class="outline-4">
<h4 id="add-appropriate-paths-to-.bashrc"><span class="section-number-4">2.2.4.</span> Add appropriate paths to <code>.bashrc</code></h4>
<div class="outline-text-4" id="text-add-appropriate-paths-to-.bashrc">
<pre class="example" id="orgabe4c43">
<pre class="example" id="org4d38d65">
export P2PRC=/&lt;PATH&gt;/p2p-rendering-computation
export PATH=/&lt;PATH&gt;/p2p-rendering-computation:${PATH}
</pre>
@@ -288,7 +288,7 @@ export PATH=/&lt;PATH&gt;/p2p-rendering-computation:${PATH}
<div id="outline-container-test-if-binary-works" class="outline-4">
<h4 id="test-if-binary-works"><span class="section-number-4">2.2.5.</span> Test if binary works</h4>
<div class="outline-text-4" id="text-test-if-binary-works">
<pre class="example" id="org01f307e">
<pre class="example" id="orga86180c">
p2prc --help
</pre>
</div>
@@ -296,7 +296,7 @@ p2prc --help
<ol class="org-ol">
<li><a id="output"></a>Output:<br />
<div class="outline-text-5" id="text-output">
<pre class="example" id="orgbafdd7e">
<pre class="example" id="orge15b811">
NAME:
p2p-rendering-computation - p2p cli application to create and access VMs in other servers
@@ -359,7 +359,7 @@ GLOBAL OPTIONS:
<div id="outline-container-start-as-a-server" class="outline-4">
<h4 id="start-as-a-server"><span class="section-number-4">3.0.1.</span> Start as a server</h4>
<div class="outline-text-4" id="text-start-as-a-server">
<pre class="example" id="orgd5f610a">
<pre class="example" id="orgac14576">
p2prc -s
</pre>
</div>
@@ -368,7 +368,7 @@ p2prc -s
<div id="outline-container-view-server-specification" class="outline-4">
<h4 id="view-server-specification"><span class="section-number-4">3.0.2.</span> View server Specification</h4>
<div class="outline-text-4" id="text-view-server-specification">
<pre class="example" id="orgc638f14">
<pre class="example" id="org4755527">
p2prc --specs=&lt;ip address&gt;
</pre>
</div>
@@ -381,7 +381,7 @@ p2prc --specs=&lt;ip address&gt;
use the <code>--gpu</code> if you know the other machine has a gpu.
</p>
<pre class="example" id="orgcd2594e">
<pre class="example" id="org463e5bd">
p2prc --touch=&lt;server ip address&gt; -p &lt;number of ports&gt; --gpu
</pre>
</div>
@@ -394,7 +394,7 @@ p2prc --touch=&lt;server ip address&gt; -p &lt;number of ports&gt; --gpu
The docker id is present in the output where you create a container
</p>
<pre class="example" id="orgf21fe8f">
<pre class="example" id="orgbab2b05">
p2prc --rm=&lt;server ip address&gt; --id=&lt;docker container id&gt;
</pre>
</div>
@@ -403,7 +403,7 @@ p2prc --rm=&lt;server ip address&gt; --id=&lt;docker container id&gt;
<div id="outline-container-adding-servers-to-ip-table" class="outline-4">
<h4 id="adding-servers-to-ip-table"><span class="section-number-4">3.0.5.</span> Adding servers to ip table</h4>
<div class="outline-text-4" id="text-adding-servers-to-ip-table">
<pre class="example" id="org280f5a6">
<pre class="example" id="org8628c0e">
p2prc --as=&lt;server ip address you want to add&gt;
</pre>
</div>
@@ -412,7 +412,7 @@ p2prc --as=&lt;server ip address you want to add&gt;
<div id="outline-container-update-ip-table" class="outline-4">
<h4 id="update-ip-table"><span class="section-number-4">3.0.6.</span> Update ip table</h4>
<div class="outline-text-4" id="text-update-ip-table">
<pre class="example" id="orgcacd727">
<pre class="example" id="org84082c2">
p2prc --us
</pre>
</div>
@@ -421,7 +421,7 @@ p2prc --us
<div id="outline-container-list-servers" class="outline-4">
<h4 id="list-servers"><span class="section-number-4">3.0.7.</span> List Servers</h4>
<div class="outline-text-4" id="text-list-servers">
<pre class="example" id="org283c8df">
<pre class="example" id="org9b68d58">
p2prc --ls
</pre>
</div>
@@ -430,7 +430,7 @@ p2prc --ls
<div id="outline-container-view-network-interfaces" class="outline-4">
<h4 id="view-network-interfaces"><span class="section-number-4">3.0.8.</span> View Network interfaces</h4>
<div class="outline-text-4" id="text-view-network-interfaces">
<pre class="example" id="org263714d">
<pre class="example" id="org98fb075">
p2prc --ni
</pre>
</div>
@@ -439,7 +439,7 @@ p2prc --ni
<div id="outline-container-viewing-containers-created-client-side" class="outline-4">
<h4 id="viewing-containers-created-client-side"><span class="section-number-4">3.0.9.</span> Viewing Containers created Client side</h4>
<div class="outline-text-4" id="text-viewing-containers-created-client-side">
<pre class="example" id="org9129fc8">
<pre class="example" id="orgd2c5455">
p2prc --tc
</pre>
</div>
@@ -448,7 +448,7 @@ p2prc --tc
<div id="outline-container-running-plugin" class="outline-4">
<h4 id="running-plugin"><span class="section-number-4">3.0.10.</span> Running plugin</h4>
<div class="outline-text-4" id="text-running-plugin">
<pre class="example" id="org2e1a180">
<pre class="example" id="orgb84a3e6">
p2prc --plugin &lt;plugin name&gt; --id &lt;container id or group id&gt;
</pre>
</div>
@@ -457,7 +457,7 @@ p2prc --plugin &lt;plugin name&gt; --id &lt;container id or group id&gt;
<div id="outline-container-create-group" class="outline-4">
<h4 id="create-group"><span class="section-number-4">3.0.11.</span> Create group</h4>
<div class="outline-text-4" id="text-create-group">
<pre class="example" id="org693bb6d">
<pre class="example" id="org5fe8d6b">
p2prc --cgroup
</pre>
</div>
@@ -466,7 +466,7 @@ p2prc --cgroup
<div id="outline-container-add-container-to-group" class="outline-4">
<h4 id="add-container-to-group"><span class="section-number-4">3.0.12.</span> Add container to group</h4>
<div class="outline-text-4" id="text-add-container-to-group">
<pre class="example" id="orgdb540c9">
<pre class="example" id="orgbd0e28b">
p2prc --group &lt;group id&gt; --id &lt;container id&gt;
</pre>
</div>
@@ -475,7 +475,7 @@ p2prc --group &lt;group id&gt; --id &lt;container id&gt;
<div id="outline-container-view-groups" class="outline-4">
<h4 id="view-groups"><span class="section-number-4">3.0.13.</span> View groups</h4>
<div class="outline-text-4" id="text-view-groups">
<pre class="example" id="orga2b3491">
<pre class="example" id="orgc4e2a07">
p2prc --groups
</pre>
</div>
@@ -484,7 +484,7 @@ p2prc --groups
<div id="outline-container-view-specific-group" class="outline-4">
<h4 id="view-specific-group"><span class="section-number-4">3.0.14.</span> View specific group</h4>
<div class="outline-text-4" id="text-view-specific-group">
<pre class="example" id="orge702b8d">
<pre class="example" id="orge1ef788">
p2prc --group &lt;group id&gt;
</pre>
</div>
@@ -493,7 +493,7 @@ p2prc --group &lt;group id&gt;
<div id="outline-container-delete-container-from-group" class="outline-4">
<h4 id="delete-container-from-group"><span class="section-number-4">3.0.15.</span> Delete container from group</h4>
<div class="outline-text-4" id="text-delete-container-from-group">
<pre class="example" id="orgb171557">
<pre class="example" id="orgbe542b4">
p2prc --rmcgroup --group &lt;group id&gt; --id &lt;container id&gt;
</pre>
</div>
@@ -502,7 +502,7 @@ p2prc --rmcgroup --group &lt;group id&gt; --id &lt;container id&gt;
<div id="outline-container-delete-entire-group" class="outline-4">
<h4 id="delete-entire-group"><span class="section-number-4">3.0.16.</span> Delete entire group</h4>
<div class="outline-text-4" id="text-delete-entire-group">
<pre class="example" id="orgdfdc08e">
<pre class="example" id="orge8cb53a">
p2prc --rmgroup &lt;group id&gt;
</pre>
</div>
@@ -511,7 +511,7 @@ p2prc --rmgroup &lt;group id&gt;
<div id="outline-container-pulling-plugin-from-a-remote-repo" class="outline-4">
<h4 id="pulling-plugin-from-a-remote-repo"><span class="section-number-4">3.0.17.</span> Pulling plugin from a remote repo</h4>
<div class="outline-text-4" id="text-pulling-plugin-from-a-remote-repo">
<pre class="example" id="orgf067d84">
<pre class="example" id="org1a8f283">
p2prc --pp &lt;repo link&gt;
</pre>
</div>
@@ -520,7 +520,7 @@ p2prc --pp &lt;repo link&gt;
<div id="outline-container-deleting-plugin-from-the-plugin-directory" class="outline-4">
<h4 id="deleting-plugin-from-the-plugin-directory"><span class="section-number-4">3.0.18.</span> Deleting plugin from the plugin directory</h4>
<div class="outline-text-4" id="text-deleting-plugin-from-the-plugin-directory">
<pre class="example" id="orgd558474">
<pre class="example" id="org07d3762">
p2prc --rp &lt;plugin name&gt;
</pre>
</div>
@@ -529,29 +529,29 @@ p2prc --rp &lt;plugin name&gt;
<div id="outline-container-added-custom-metadata-about-the-current-node" class="outline-4">
<h4 id="added-custom-metadata-about-the-current-node"><span class="section-number-4">3.0.19.</span> Added custom metadata about the current node</h4>
<div class="outline-text-4" id="text-added-custom-metadata-about-the-current-node">
<pre class="example" id="org89d32f5">
<pre class="example" id="org0ab8a44">
p2prc --amd "custom metadata"
</pre>
</div>
</div>
<div id="outline-container-orge7e71d0" class="outline-4">
<h4 id="orge7e71d0"><span class="section-number-4">3.0.20.</span> MapPort and link to domain name</h4>
<div id="outline-container-org9bc31bd" class="outline-4">
<h4 id="org9bc31bd"><span class="section-number-4">3.0.20.</span> MapPort and link to domain name</h4>
<div class="outline-text-4" id="text-3-0-20">
<p>
Allows to expose remote ports from a machine in the P2P network.
</p>
<pre class="example" id="orged4f880">
<pre class="example" id="orgd3b7bc1">
p2prc --mp &lt;port no to map&gt; --dn &lt;domain name to link Mapped port against&gt;
</pre>
</div>
<ol class="org-ol">
<li><a id="org389139f"></a>MapPort in remote machine<br />
<li><a id="org5459ba4"></a>MapPort in remote machine<br />
<div class="outline-text-5" id="text-3-0-20-1">
<p>
This is to ensure ports on remote machines on the P2PRC can be easily opened.
</p>
<pre class="example" id="orgb60db2d">
<pre class="example" id="org69c39bd">
p2prc --mp &lt;port no to map&gt; --dn &lt;domain name to link Mapped port against&gt; --ra &lt;remote server address&gt;
</pre>
@@ -574,7 +574,7 @@ servers with optimal performance, enhancing their overall network experience.
</p>
<div id="orgca4317d" class="figure">
<div id="orge4d1f87" class="figure">
<p><img src="images/p2pmoduleArch.png" alt="p2pmoduleArch.png" />
</p>
<p><span class="figure-number">Figure 1: </span>UML diagram of P2P module</p>
@@ -675,7 +675,7 @@ from the TURN server. The flow below describes the workflow.
<li>Call <code>/FRPPort</code></li>
</ul>
<pre class="example" id="org104d81c">
<pre class="example" id="orgab0b3e5">
http://&lt;turn server ip&gt;:&lt;server port no&gt;/FRPport
</pre>
@@ -769,7 +769,7 @@ p2prc.h p2prc.so
Below are a sample set of commands to open the bindings implementation.
</p>
<pre class="example" id="orgf0695df">
<pre class="example" id="org158aa90">
# run
cd Bindings/
# list files
@@ -863,7 +863,7 @@ that convert a go object to JSON string initially and converts it to
<li><a id="a-pseudo-code-to-refer-to-the-common-function-implementation-shape-could-be-represented-as"></a>A Pseudo code to refer to the common function implementation shape could be represented as:<br />
<div class="outline-text-5" id="text-a-pseudo-code-to-refer-to-the-common-function-implementation-shape-could-be-represented-as">
<pre class="example" id="org69edb95">
<pre class="example" id="org1d40927">
func &lt;Function name&gt; (output *C.char) {
&lt;response&gt;,&lt;error&gt; := &lt;P2PRC function name&gt;(&lt;parameters if needed&gt;)
if &lt;error&gt; != nil {
@@ -882,8 +882,8 @@ func &lt;Function name&gt; (output *C.char) {
<h3 id="current-languages-supported"><span class="section-number-3">5.3.</span> Current languages supported</h3>
<div class="outline-text-3" id="text-current-languages-supported">
</div>
<div id="outline-container-orgd6f44f0" class="outline-4">
<h4 id="orgd6f44f0"><span class="section-number-4">5.3.1.</span> Python</h4>
<div id="outline-container-org4aeb30e" class="outline-4">
<h4 id="org4aeb30e"><span class="section-number-4">5.3.1.</span> Python</h4>
<div class="outline-text-4" id="text-5-3-1">
</div>
<ol class="org-ol">
@@ -921,8 +921,8 @@ called from other programming languages.
</ol>
</div>
<div id="outline-container-org62259ee" class="outline-4">
<h4 id="org62259ee"><span class="section-number-4">5.3.2.</span> Haskell</h4>
<div id="outline-container-orgcccf645" class="outline-4">
<h4 id="orgcccf645"><span class="section-number-4">5.3.2.</span> Haskell</h4>
<div class="outline-text-4" id="text-5-3-2">
<p>
P2PRC officially supports Haskell bindings and will further support
@@ -1040,7 +1040,7 @@ from the TURN server. The flow below describes the workflow.
<li>Call <code>/FRPPort</code></li>
</ul>
<pre class="example" id="org19072b5">
<pre class="example" id="org56e7758">
http://&lt;turn server ip&gt;:&lt;server port no&gt;/FRPport
</pre>
@@ -1075,21 +1075,36 @@ func main() {
<div id="outline-container-org911165f" class="outline-2">
<h2 id="org911165f"><span class="section-number-2">10.</span> Blog posts</h2>
<div id="outline-container-org5156fb1" class="outline-2">
<h2 id="org5156fb1"><span class="section-number-2">10.</span> Blog posts</h2>
<div class="outline-text-2" id="text-10">
</div>
<div id="outline-container-org8d81aa7" class="outline-3">
<h3 id="org8d81aa7"><span class="section-number-3">10.1.</span> Self host within 5 minutes any program</h3>
<div id="outline-container-org4e0e874" class="outline-3">
<h3 id="org4e0e874"><span class="section-number-3">10.1.</span> Self host within 5 minutes any program</h3>
<div class="outline-text-3" id="text-10-1">
<ul class="org-ul">
<li>Author: <a href="http://akilan.io/">Akilan Selvacoumar</a></li>
<li>Date: 28-01-2025</li>
</ul>
<ul class="org-ul">
<li>Video tutorial:</li>
</ul>
<div id="org7d2d80f" class="figure">
<p><a href="https://youtu.be/rN4SiVowg5E"><img src="https://i3.ytimg.com/vi/rN4SiVowg5E/maxresdefault.jpg" alt="maxresdefault.jpg" /></a>
</p>
</div>
<p>
This is a fun expirement for anyone to try to quickly run a server and
quickly do a map port and domain name mapping in a single command.
</p>
</div>
<div id="outline-container-org0fb424b" class="outline-4">
<h4 id="org0fb424b"><span class="section-number-4">10.1.1.</span> 1. Find a program you want to run</h4>
<div id="outline-container-orgca237a5" class="outline-4">
<h4 id="orgca237a5"><span class="section-number-4">10.1.1.</span> 1. Find a program you want to run</h4>
<div class="outline-text-4" id="text-10-1-1">
<p>
Let's try to setup a really easy program (Let's do with Linkwarden
@@ -1099,10 +1114,10 @@ compose installed on your local machine.
</div>
<ol class="org-ol">
<li><a id="org49ccb97"></a>Let's run Linkwarden using docker compose and P2PRC<br />
<li><a id="org8422892"></a>Let's run Linkwarden using docker compose and P2PRC<br />
<div class="outline-text-5" id="text-10-1-1-1">
<p>
<a href="https://docs.linkwarden.app/self-hosting/installation">Installation instrutions</a>:
<a href="https://docs.linkwarden.app/self-hosting/installation">Installation instructions</a>:
</p>
<pre class="example">
mkdir linkwarden &amp;&amp; cd linkwarden
@@ -1117,7 +1132,7 @@ Environment configuration
vim .env
# Change values
NEXTAUTH_URL=http://localhost:3000/api/v1/auth
NEXTAUTH_URL=https://&lt;DOMAIN NAME&gt;/api/v1/auth
NEXTAUTH_SECRET=VERY_SENSITIVE_SECRET
POSTGRES_PASSWORD=CUSTOM_POSTGRES_PASSWORD
</pre>
@@ -1150,7 +1165,7 @@ p2prc -s &amp;
Run map port and domain mapping
</p>
<pre class="example">
p2prc --mp 3000 --dn ldt.akilan.io
p2prc --mp 3000 --dn &lt;DOMAIN NAME&gt;
</pre>
<p>
@@ -1172,7 +1187,8 @@ A entry 217.76.63.222
</pre>
<p>
Your done now just head to ldt.akilan.io (Or your domain name you added)
Your done now just head to the DOMAIN NAME you added.
ex: <a href="https://linkwarden.akilan.io">https://linkwarden.akilan.io</a>
</p>
</div>
</li>
@@ -1190,8 +1206,8 @@ Your done now just head to ldt.akilan.io (Or your domain name you added)
<div id="outline-container-org4971a44" class="outline-2">
<h2 id="org4971a44"><span class="section-number-2">11.</span> Ideas for future potencial features</h2>
<div id="outline-container-org6d0c58e" class="outline-2">
<h2 id="org6d0c58e"><span class="section-number-2">11.</span> Ideas for future potencial features</h2>
<div class="outline-text-2" id="text-11">
<p>
Consists of personal loideas for the future of P2PRC.
@@ -1199,8 +1215,8 @@ At moment only has main contributors writiing to this.
</p>
</div>
<div id="outline-container-orgacf8d0e" class="outline-3">
<h3 id="orgacf8d0e"><span class="section-number-3">11.1.</span> To support hetrogenous set of Nodes that cannot run P2PRC</h3>
<div id="outline-container-org408d405" class="outline-3">
<h3 id="org408d405"><span class="section-number-3">11.1.</span> To support hetrogenous set of Nodes that cannot run P2PRC</h3>
<div class="outline-text-3" id="text-11-1">
<p>
This stems from a personal issue I have when doing research
@@ -1217,8 +1233,8 @@ network nodes.
</p>
</div>
<div id="outline-container-org371b7e9" class="outline-4">
<h4 id="org371b7e9"><span class="section-number-4">11.1.1.</span> Assumptions:</h4>
<div id="outline-container-orgc488227" class="outline-4">
<h4 id="orgc488227"><span class="section-number-4">11.1.1.</span> Assumptions:</h4>
<div class="outline-text-4" id="text-11-1-1">
<ul class="org-ul">
<li>I have a Morello board that cannot run P2PRC</li>
@@ -1231,8 +1247,8 @@ as well look into custom tasks into the hetrogenous hardware.</li>
</ul>
</div>
</div>
<div id="outline-container-org75ee93e" class="outline-4">
<h4 id="org75ee93e"><span class="section-number-4">11.1.2.</span> Set of interesting possible:</h4>
<div id="outline-container-org254dd34" class="outline-4">
<h4 id="org254dd34"><span class="section-number-4">11.1.2.</span> Set of interesting possible:</h4>
<div class="outline-text-4" id="text-11-1-2">
<p>
We build a cool set possibilities before and use this to build up the implementation
@@ -1249,8 +1265,8 @@ weight hypervisors.</li>
</ul>
</div>
</div>
<div id="outline-container-orgd337603" class="outline-4">
<h4 id="orgd337603"><span class="section-number-4">11.1.3.</span> Implementation</h4>
<div id="outline-container-org94b2546" class="outline-4">
<h4 id="org94b2546"><span class="section-number-4">11.1.3.</span> Implementation</h4>
<div class="outline-text-4" id="text-11-1-3">
<ul class="org-ul">
<li>To use implementations similar to <a href="https://linux.die.net/man/1/socat">socat</a> to ensure we can bind address of local
@@ -1264,7 +1280,7 @@ other nodes can access the Morello board who have permission access.</li>
</ul>
<div id="org167361a" class="figure">
<div id="org2f6d1e1" class="figure">
<p><img src="./images/P2PRCRemoteNodes.png" alt="P2PRCRemoteNodes.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Implementation idea (To be improved upon)</p>
@@ -1276,7 +1292,7 @@ other nodes can access the Morello board who have permission access.</li>
</div>
<div id="postamble" class="status">
<p class="author">Author: Akilan</p>
<p class="date">Created: 2025-01-27 Mon 22:30</p>
<p class="date">Created: 2025-01-28 Tue 16:13</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@@ -777,6 +777,14 @@ func main() {
* Blog posts
** Self host within 5 minutes any program
- Author: [[http://akilan.io/][Akilan Selvacoumar]]
- Date: 28-01-2025
- Video tutorial:
[[https://youtu.be/rN4SiVowg5E][https://i3.ytimg.com/vi/rN4SiVowg5E/maxresdefault.jpg]]
This is a fun expirement for anyone to try to quickly run a server and
quickly do a map port and domain name mapping in a single command.
@@ -786,7 +794,7 @@ quickly do a map port and domain name mapping in a single command.
compose installed on your local machine.
**** Let's run Linkwarden using docker compose and P2PRC
[[https://docs.linkwarden.app/self-hosting/installation][Installation instrutions]]:
[[https://docs.linkwarden.app/self-hosting/installation][Installation instructions]]:
#+BEGIN_SRC
mkdir linkwarden && cd linkwarden
curl -O https://raw.githubusercontent.com/linkwarden/linkwarden/refs/heads/main/docker-compose.yml
@@ -798,7 +806,7 @@ curl -L https://raw.githubusercontent.com/linkwarden/linkwarden/refs/heads/main/
vim .env
# Change values
NEXTAUTH_URL=http://localhost:3000/api/v1/auth
NEXTAUTH_URL=https://<DOMAIN NAME>/api/v1/auth
NEXTAUTH_SECRET=VERY_SENSITIVE_SECRET
POSTGRES_PASSWORD=CUSTOM_POSTGRES_PASSWORD
#+END_SRC
@@ -821,7 +829,7 @@ p2prc -s &
Run map port and domain mapping
#+BEGIN_SRC
p2prc --mp 3000 --dn ldt.akilan.io
p2prc --mp 3000 --dn <DOMAIN NAME>
#+END_SRC
Sample response
@@ -838,7 +846,8 @@ p2prc --mp 3000 --dn ldt.akilan.io
A entry 217.76.63.222
#+END_SRC
Your done now just head to ldt.akilan.io (Or your domain name you added)
Your done now just head to the DOMAIN NAME you added.
ex: https://linkwarden.akilan.io

View File

@@ -85,9 +85,9 @@ Users acting as clients retain full control over how tasks are batched and assig
<br>
## Documentation
We have documented to our best effort the basics of p2prc:
Link: https://p2prc.akilan.io/Docs/
## Link: https://p2prc.akilan.io/Docs/
<!--
<!--
## Introduction
This project aims to create a peer to peer (p2p) network, where a user can use the p2p network to act as a client (i.e sending tasks) or the server (i.e executing the tasks). A prototype application will be developed, which comes bundled with a p2p module and possible to execute docker containers or virtual environments across selected nodes.