Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App Submission: Rusty Kaspad #2060

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
packaging.md
testing.md
.cursorrules
Binary file added gitea/.DS_Store
Binary file not shown.
Binary file added gitea/data/.DS_Store
Binary file not shown.
16 changes: 16 additions & 0 deletions kas-rusty-kaspad/config/nginx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
server {
listen 4321 default_server;
server_name _;

server_tokens off;

root /usr/share/nginx/html;
index index.html;

location / {
try_files $uri $uri/ /index.html;
}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
}
92 changes: 92 additions & 0 deletions kas-rusty-kaspad/data/web/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Rusty Kaspad Node</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
max-width: 800px;
margin: 0 auto;
padding: 20px;
background: #f5f5f5;
color: #333;
}
.container {
background: white;
padding: 30px;
border-radius: 10px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
h1 {
color: #2d2d2d;
margin-bottom: 20px;
}
.info-box {
background: #f8f9fa;
border-left: 4px solid #007bff;
padding: 15px;
margin: 15px 0;
border-radius: 4px;
}
.connection-details {
background: #e9ecef;
padding: 15px;
border-radius: 4px;
font-family: monospace;
}
.attribution {
font-size: 0.9em;
color: #666;
border-top: 1px solid #eee;
margin-top: 30px;
padding-top: 20px;
}
.attribution a {
color: #007bff;
text-decoration: none;
}
.attribution a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<div class="container">
<h1>Rusty Kaspad Node</h1>

<div class="info-box">
<h2>Node Status</h2>
<p>Your Kaspa node is running and providing essential network services including peer-to-peer networking and RPC functionality.</p>
<p>Please note that your node needs to fully synchronise with the Kaspa network before it can be used. Initial synchronisation may take at least 60 minutes depending on your hardware and network connection.</p>
</div>

<div class="info-box">
<h2>Connection Details</h2>
<div class="connection-details">
<p><strong>GRPC Port:</strong> 16110</p>
<p><strong>P2P Port:</strong> 16111</p>
<p><strong>WRPC (Borsh) Port:</strong> 17110</p>
<p><strong>WRPC (JSON) Port:</strong> 18110</p>
</div>
</div>

<div class="info-box">
<h2>Support the Network</h2>
<p>The very heart of Kaspa is the public nodes. Please consider making your node public.</p>
<p>To support the network, forward TCP port 16111 on your firewall to your Umbrel node IP address.</p>
</div>

<div class="info-box">
<h2>About Rusty Kaspad</h2>
<p>Rusty Kaspad is a Rust implementation of a Kaspa full node. Kaspa is a proof-of-work cryptocurrency with instant transaction confirmation through blockDAG technology.</p>
</div>

<div class="attribution">
<p>This containerised version of Rusty Kaspad was built by <a href="https://hub.docker.com/u/supertypo" target="_blank">Supertypo</a> based on the <a href="https://github.com/kaspanet/rusty-kaspa" target="_blank">official Rusty Kaspad source code</a>, and packaged for Umbrel by <a href="http://luke.dunshea.au" target="_blank">Luke Dunshea</a>.</p>
</div>
</div>
</body>
</html>
27 changes: 27 additions & 0 deletions kas-rusty-kaspad/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
version: "3.7"

Check notice on line 1 in kas-rusty-kaspad/docker-compose.yml

View workflow job for this annotation

GitHub Actions / Lint apps

Potentially using unsafe user in service "web"

The default container user "root" can lead to security vulnerabilities. If you are using the root user, please try to specify a different user (e.g. "1000:1000") in the compose file or try to set the UID/PUID and GID/PGID environment variables to 1000.

Check notice on line 1 in kas-rusty-kaspad/docker-compose.yml

View workflow job for this annotation

GitHub Actions / Lint apps

Potentially using unsafe user in service "node"

The default container user "root" can lead to security vulnerabilities. If you are using the root user, please try to specify a different user (e.g. "1000:1000") in the compose file or try to set the UID/PUID and GID/PGID environment variables to 1000.

services:
app_proxy:
environment:
APP_HOST: kas-rusty-kaspad_web_1
APP_PORT: 4321

web:
image: nginx:stable-alpine@sha256:b9e1705b69f778dca93cbbbe97d2c2562fb26cac1079cdea4e40d1dad98f14fe
restart: on-failure
stop_grace_period: 1m
volumes:
- ${APP_DATA_DIR}/config/nginx.conf:/etc/nginx/conf.d/default.conf
- ${APP_DATA_DIR}/data/web:/usr/share/nginx/html:ro

node:
image: supertypo/rusty-kaspad:v0.15.2@sha256:aafb6814c330af21d0753bce06b0b64a1290d8f336eab926c9b47a4ece8d5adc
restart: on-failure
stop_grace_period: 1m
volumes:
- ${APP_DATA_DIR}/data:/data
ports:

Check notice on line 23 in kas-rusty-kaspad/docker-compose.yml

View workflow job for this annotation

GitHub Actions / Lint apps

External port mapping "16110:16110"

Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).

Check notice on line 23 in kas-rusty-kaspad/docker-compose.yml

View workflow job for this annotation

GitHub Actions / Lint apps

External port mapping "16111:16111"

Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).

Check notice on line 23 in kas-rusty-kaspad/docker-compose.yml

View workflow job for this annotation

GitHub Actions / Lint apps

External port mapping "17110:17110"

Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).

Check notice on line 23 in kas-rusty-kaspad/docker-compose.yml

View workflow job for this annotation

GitHub Actions / Lint apps

External port mapping "18110:18110"

Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
- 16110:16110 # GRPC
- 16111:16111 # P2P
- 17110:17110 # WRPC (Borsh)
- 18110:18110 # WRPC (JSON)
36 changes: 36 additions & 0 deletions kas-rusty-kaspad/umbrel-app.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
manifestVersion: 1
id: kas-rusty-kaspad
category: finance
name: Rusty Kaspad
version: "v0.15.2"
tagline: A Rust implementation of a Kaspa full node
description: >-
Rusty Kaspad is a Rust implementation of a Kaspa full node. This node software
provides essential Kaspa network services including peer-to-peer networking and
RPC functionality.


Kaspa is a proof-of-work cryptocurrency with instant
transaction confirmation through blockDAG technology.


The very heart of Kaspa is the public nodes. Please consider making your node public
by forwarding TCP port 16111 on your firewall to your Umbrel node IP address to support the network.


This package uses the Docker container maintained by supertypo
(https://hub.docker.com/r/supertypo/rusty-kaspad), based on the official Kaspa
project v0.15.2.


Packaged for Umbrel by Luke Dunshea (http://luke.dunshea.au).

developer: Kaspa Community
website: https://github.com/kaspanet/rusty-kaspa
repo: https://github.com/kaspanet/rusty-kaspa
support: https://github.com/kaspanet/rusty-kaspa/issues
port: 4321
gallery: []
path: ""
submitter: Luke Dunshea
submission: https://github.com/getumbrel/umbrel-apps/pull/2060
Binary file added kollider/.DS_Store
Binary file not shown.
Binary file added kollider/data/.DS_Store
Binary file not shown.
Binary file added krystal-bull/.DS_Store
Binary file not shown.
Binary file added krystal-bull/data/.DS_Store
Binary file not shown.
Binary file added libre-relay/.DS_Store
Binary file not shown.
Binary file added libre-relay/data/.DS_Store
Binary file not shown.
Loading