mirror of
https://github.com/RoboSats/robosats-startos.git
synced 2026-01-13 05:18:16 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f5769c6f17 | |||
| bf4f47850d | |||
| 4d1e7d76e8 | |||
| dd9d49b3b1 | |||
| 889aba3519 | |||
| 442d82accd | |||
| ccf000b094 | |||
| d5167fd691 | |||
| 1d0626e288 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@ image.tar
|
||||
scripts/*.js
|
||||
.DS_Store
|
||||
.vscode/
|
||||
docker-images/
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
FROM recksato/robosats-client
|
||||
RUN apt-get update && apt-get install wget curl sudo bash tini -y \
|
||||
&& wget https://github.com/mikefarah/yq/releases/download/v4.25.1/yq_linux_arm.tar.gz -O - |\
|
||||
tar xz && mv yq_linux_arm /usr/bin/yq
|
||||
FROM recksato/robosats-client:v0.4.3-alpha
|
||||
RUN apt-get update && apt-get install wget curl sudo bash tini -y
|
||||
RUN wget https://github.com/mikefarah/yq/releases/download/v4.6.3/yq_linux_amd64.tar.gz -O - |\
|
||||
tar xz && mv yq_linux_amd64 /usr/bin/yq
|
||||
|
||||
ENV APP_HOST robosats.embassy
|
||||
ENV APP_PORT 12596
|
||||
@ -9,6 +9,5 @@ ENV TOR_PROXY_IP embassy
|
||||
ENV TOR_PROXY_PORT 9050
|
||||
|
||||
ADD ./docker_entrypoint.sh /usr/local/bin/docker_entrypoint.sh
|
||||
ADD check-web.sh /usr/local/bin/check-web.sh
|
||||
RUN chmod a+x /usr/local/bin/*.sh
|
||||
RUN chmod a+x *.sh
|
||||
|
||||
14
Makefile
14
Makefile
@ -10,10 +10,11 @@ all: verify
|
||||
verify: $(PKG_ID).s9pk
|
||||
embassy-sdk verify s9pk $(PKG_ID).s9pk
|
||||
|
||||
install: all
|
||||
install: $(PKG_ID).s9pk
|
||||
embassy-cli package install $(PKG_ID).s9pk
|
||||
|
||||
clean:
|
||||
rm -rf docker-images
|
||||
rm -f image.tar
|
||||
rm -f $(PKG_ID).s9pk
|
||||
rm -f scripts/*.js
|
||||
@ -21,8 +22,13 @@ clean:
|
||||
scripts/embassy.js: $(TS_FILES)
|
||||
deno bundle scripts/embassy.ts scripts/embassy.js
|
||||
|
||||
image.tar: Dockerfile docker_entrypoint.sh
|
||||
docker buildx build --tag start9/$(PKG_ID)/main:$(PKG_VERSION) --platform=linux/arm64 -o type=docker,dest=image.tar .
|
||||
docker-images/x86_64.tar: Dockerfile docker_entrypoint.sh
|
||||
mkdir -p docker-images
|
||||
docker buildx build --tag start9/$(PKG_ID)/main:$(PKG_VERSION) --platform=linux/amd64 --build-arg PLATFORM=amd64 -o type=docker,dest=docker-images/x86_64.tar .
|
||||
|
||||
$(PKG_ID).s9pk: check-web.sh manifest.yaml instructions.md icon.png LICENSE scripts/embassy.js image.tar
|
||||
docker-images/aarch64.tar: Dockerfile docker_entrypoint.sh
|
||||
mkdir -p docker-images
|
||||
docker buildx build --tag start9/$(PKG_ID)/main:$(PKG_VERSION) --platform=linux/arm64 --build-arg PLATFORM=arm64 -o type=docker,dest=docker-images/aarch64.tar .
|
||||
|
||||
$(PKG_ID).s9pk: manifest.yaml instructions.md LICENSE icon.png scripts/embassy.js docker-images/aarch64.tar docker-images/x86_64.tar
|
||||
embassy-sdk pack
|
||||
|
||||
@ -67,7 +67,7 @@ cd robosats-wrapper
|
||||
|
||||
## Building
|
||||
|
||||
To build the **Hello World** service, run the following command:
|
||||
To build the service, run the following command:
|
||||
|
||||
```
|
||||
make
|
||||
@ -86,6 +86,6 @@ embassy-cli --host https://embassy-q1w2e3r4.local package install robosats.s9pk
|
||||
**Tip:** You can also install the robosats.s9pk using **Sideload Service** under the **Embassy > SETTINGS** section.
|
||||
## Verify Install
|
||||
|
||||
Go to your Embassy Services page, select **Hello World**, configure and start the service.
|
||||
Go to your Embassy Services page, select RoboSats, configure and start the service.
|
||||
|
||||
**Done!**
|
||||
|
||||
13
check-web.sh
13
check-web.sh
@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
DURATION=$(</dev/stdin)
|
||||
if (($DURATION <= 5500)); then
|
||||
exit 60
|
||||
else
|
||||
curl --silent --fail robosats.embassy:12596 &>/dev/null
|
||||
WEB_RES=$?
|
||||
if [ $WEB_RES != 0 ]; then
|
||||
echo "RoboSats UI is unreachable, please wait" >&2
|
||||
exit 61
|
||||
fi
|
||||
fi
|
||||
@ -3,4 +3,4 @@
|
||||
set -ea
|
||||
|
||||
echo "Starting RoboSats..."
|
||||
exec tini -s ./robosats-client.sh
|
||||
exec tini ./robosats-client.sh
|
||||
|
||||
@ -1,23 +1,15 @@
|
||||
# Example written in yaml (toml and json are also acceptable)
|
||||
|
||||
# The package identifier used by the OS. This must be unique amongst all other known packages
|
||||
id: robosats
|
||||
# A human readable service title
|
||||
title: "RoboSats"
|
||||
# Service version - accepts up to four digits, where the last confirms to revisions necessary for EmbassyOS - see documentation: https://github.com/Start9Labs/emver-rs. This value will change with each release of the service.
|
||||
version: 0.1.0
|
||||
# Release notes for the update - can be a string, paragraph or URL
|
||||
release-notes: "Initial Release for EmabssyOS"
|
||||
# The type of license for the project. Include the LICENSE in the root of the project directory. A license is required for a Start9 package.
|
||||
version: 0.4.3.1
|
||||
release-notes: |
|
||||
* Updated to v0.4.3-alpha [Release Notes](https://github.com/Reckless-Satoshi/robosats/releases/tag/v0.4.3-alpha)
|
||||
* Added Donation Link for RoboSats team
|
||||
license: mit
|
||||
# The Start9 wrapper repository URL for the package. This repo contains the manifest file (this), any scripts necessary for configuration, backups, actions, or health checks (more below). This key must exist. But could be embedded into the source repository.
|
||||
wrapper-repo: "https://github.com/Start9Labs/robosats-wrapper"
|
||||
# The original project repository URL. There is no upstream repo in this example
|
||||
wrapper-repo: "https://github.com/kn0wmad/robosats-wrapper"
|
||||
upstream-repo: "https://github.com/Reckless-Satoshi/robosats"
|
||||
# URL to the support site / channel for the project. This key can be omitted if none exists, or it can link to the original project repository issues.
|
||||
support-site: "https://github.com/Reckless-Satoshi/robosats/issues"
|
||||
# URL to the marketing site for the project. This key can be omitted if none exists, or it can link to the original project repository.
|
||||
marketing-site: "https://learn.robosats.com/"
|
||||
donation-url: "https://learn.robosats.com/contribute/donate/"
|
||||
# The series of commands to build the project into an s9pk for arm64/v8. In this case we are using a Makefile with the simple build command "make".
|
||||
build: ["make"]
|
||||
# Human readable descriptors for the service. These are used throughout the EmbassyOS user interface, primarily in the marketplace.
|
||||
@ -35,40 +27,27 @@ assets:
|
||||
icon: icon.png
|
||||
# Default = INSTRUCTIONS.md
|
||||
instructions: instructions.md
|
||||
# Default = image.tar
|
||||
docker-images: image.tar
|
||||
# The main action for initializing the service. Currently, the only type of action available is docker.
|
||||
main:
|
||||
# Docker is currently the only action implementation
|
||||
type: docker
|
||||
# Identifier for the main image volume, which will be used when other actions need to mount to this volume.
|
||||
image: main
|
||||
# The executable binary for starting the initialization action. For docker actions, this is typically a "docker_entrypoint.sh" file. See the Dockerfile and the docker_entrypoint.sh in this project for additional details.
|
||||
entrypoint: "docker_entrypoint.sh"
|
||||
# Any arguments that should be passed into the entrypoint executable
|
||||
entrypoint: docker_entrypoint.sh
|
||||
args: []
|
||||
# Specifies where to mount the data volume(s), if there are any. Mounts for pointer dependency volumes are also denoted here. These are necessary if data needs to be read from / written to these volumes.
|
||||
mounts:
|
||||
# Specifies where on the service's file system its persistence directory should be mounted prior to service startup
|
||||
main: /root
|
||||
# Health checks
|
||||
health-checks:
|
||||
main:
|
||||
web-ui:
|
||||
name: Web Interface
|
||||
success-message: The RoboSats UI is ready to visit in a web browser
|
||||
type: docker
|
||||
image: main
|
||||
entrypoint: check-web.sh
|
||||
args: []
|
||||
io-format: json
|
||||
inject: true
|
||||
type: script
|
||||
config:
|
||||
get:
|
||||
type: script
|
||||
set:
|
||||
type: script
|
||||
properties:
|
||||
type: script
|
||||
# properties:
|
||||
# type: script
|
||||
# This denotes any data, asset, or pointer volumes that should be connected when the "docker run" command is invoked
|
||||
volumes:
|
||||
# This is the image where files from the project asset directory will go
|
||||
@ -129,8 +108,8 @@ backup:
|
||||
args:
|
||||
- duplicity
|
||||
- restore
|
||||
- /root/data
|
||||
- /mnt/backup
|
||||
- /root/data
|
||||
mounts:
|
||||
BACKUP: "/mnt/backup"
|
||||
main: "/root/data"
|
||||
|
||||
@ -1 +1 @@
|
||||
export * from "https://deno.land/x/embassyd_sdk@v0.3.1.1.2/mod.ts";
|
||||
export * from "https://deno.land/x/embassyd_sdk@v0.3.3.0.9/mod.ts";
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
export { setConfig } from "./procedures/setConfig.ts";
|
||||
export { getConfig } from "./procedures/getConfig.ts";
|
||||
export { properties } from "./procedures/properties.ts";
|
||||
// export { properties } from "./procedures/properties.ts";
|
||||
export { migration } from "./procedures/migrations.ts";
|
||||
export { health } from "./procedures/healthChecks.ts";
|
||||
|
||||
5
scripts/procedures/healthChecks.ts
Normal file
5
scripts/procedures/healthChecks.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { types as T, healthUtil } from "../deps.ts";
|
||||
|
||||
export const health: T.ExpectedExports.health = {
|
||||
"web-ui": healthUtil.checkWebUrl("http://robosats.embassy:12596/selfhosted")
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
import { compat, types as T } from "../deps.ts";
|
||||
|
||||
export const migration: T.ExpectedExports.migration = compat.migrations
|
||||
.fromMapping({}, "0.1.0" );
|
||||
.fromMapping({}, "0.4.3.1" );
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
import { compat, types as T } from "../deps.ts";
|
||||
|
||||
export const properties: T.ExpectedExports.properties = compat.properties;
|
||||
Reference in New Issue
Block a user