forked from michael.heier/citadel-core
Compare commits
6 Commits
stable
...
release/0.
Author | SHA1 | Date | |
---|---|---|---|
|
875269b72b | ||
|
3fb2937310 | ||
|
566e18f614 | ||
|
d7fed54847 | ||
|
ec88c6ab69 | ||
|
47ac67d3e2 |
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -22,7 +22,7 @@ statuses/*
|
||||||
app-data
|
app-data
|
||||||
apps
|
apps
|
||||||
electrs/*
|
electrs/*
|
||||||
fulcrumx/*
|
fulcrum/*
|
||||||
nginx/*
|
nginx/*
|
||||||
redis/*
|
redis/*
|
||||||
docker-compose.override.yml
|
docker-compose.override.yml
|
||||||
|
@ -43,7 +43,7 @@ db/citadel-seed/*
|
||||||
!db/.gitkeep
|
!db/.gitkeep
|
||||||
!nginx/.gitkeep
|
!nginx/.gitkeep
|
||||||
!redis/.gitkeep
|
!redis/.gitkeep
|
||||||
!fulcrumx/.gitkeep
|
!fulcrum/.gitkeep
|
||||||
|
|
||||||
!**/*.license
|
!**/*.license
|
||||||
services/installed.json
|
services/installed.json
|
||||||
|
|
|
@ -118,26 +118,6 @@ def getUserData():
|
||||||
userData = json.load(f)
|
userData = json.load(f)
|
||||||
return userData
|
return userData
|
||||||
|
|
||||||
def checkUpdateAvailable(name: str) -> bool:
|
|
||||||
latestAppYml = yaml.safe_load(getAppYml(name))
|
|
||||||
with open(os.path.join(appsDir, name, "app.yml"), "r") as f:
|
|
||||||
originalAppYml = yaml.safe_load(f)
|
|
||||||
if not "metadata" in latestAppYml or not "version" in latestAppYml["metadata"] or not "metadata" in originalAppYml or not "version" in originalAppYml["metadata"]:
|
|
||||||
print("App {} is not valid".format(name))
|
|
||||||
return False
|
|
||||||
return semver.compare(latestAppYml["metadata"]["version"], originalAppYml["metadata"]["version"]) > 0
|
|
||||||
|
|
||||||
def getAvailableUpdates():
|
|
||||||
availableUpdates = []
|
|
||||||
apps = findAndValidateApps(appsDir)
|
|
||||||
for app in apps:
|
|
||||||
try:
|
|
||||||
if checkUpdateAvailable(app):
|
|
||||||
availableUpdates.append(app)
|
|
||||||
except Exception:
|
|
||||||
print("Warning: Can't check app {} yet".format(app), file=sys.stderr)
|
|
||||||
return availableUpdates
|
|
||||||
|
|
||||||
def startInstalled():
|
def startInstalled():
|
||||||
# If userfile doesn't exist, just do nothing
|
# If userfile doesn't exist, just do nothing
|
||||||
userData = {}
|
userData = {}
|
||||||
|
@ -364,3 +344,59 @@ def updateRepos():
|
||||||
shutil.rmtree(tempDir)
|
shutil.rmtree(tempDir)
|
||||||
with open(os.path.join(appsDir, "sourceMap.json"), "w") as f:
|
with open(os.path.join(appsDir, "sourceMap.json"), "w") as f:
|
||||||
json.dump(sourceMap, f)
|
json.dump(sourceMap, f)
|
||||||
|
|
||||||
|
|
||||||
|
def getAvailableUpdates():
|
||||||
|
availableUpdates = {}
|
||||||
|
repos = []
|
||||||
|
ignoreApps = []
|
||||||
|
with open(sourcesList) as f:
|
||||||
|
repos = f.readlines()
|
||||||
|
try:
|
||||||
|
with open(updateIgnore) as f:
|
||||||
|
ignoreApps = f.readlines()
|
||||||
|
except: pass
|
||||||
|
# For each repo, clone the repo to a temporary dir, checkout the branch,
|
||||||
|
# and overwrite the current app dir with the contents of the temporary dir/apps/app
|
||||||
|
# Set this to ignoreApps. Normally, it keeps track of apps already installed from repos higher in the list,
|
||||||
|
# but apps specified in updateignore have the highest priority
|
||||||
|
alreadyDefined = [s.strip() for s in ignoreApps]
|
||||||
|
for repo in repos:
|
||||||
|
repo = repo.strip()
|
||||||
|
if repo == "":
|
||||||
|
continue
|
||||||
|
# Also ignore comments
|
||||||
|
if repo.startswith("#"):
|
||||||
|
continue
|
||||||
|
# Split the repo into the git url and the branch
|
||||||
|
repo = repo.split(" ")
|
||||||
|
if len(repo) != 2:
|
||||||
|
print("Error: Invalid repo format in " + sourcesList, file=sys.stderr)
|
||||||
|
exit(1)
|
||||||
|
gitUrl = repo[0]
|
||||||
|
branch = repo[1]
|
||||||
|
# Clone the repo to a temporary dir
|
||||||
|
tempDir = tempfile.mkdtemp()
|
||||||
|
# Git clone with a depth of 1 to avoid cloning the entire repo
|
||||||
|
# Don't print anything to stdout, as we don't want to see the git clone output
|
||||||
|
subprocess.run("git clone --depth 1 --branch {} {} {}".format(branch, gitUrl, tempDir), shell=True, stdout=subprocess.DEVNULL)
|
||||||
|
# Overwrite the current app dir with the contents of the temporary dir/apps/app
|
||||||
|
for app in os.listdir(os.path.join(tempDir, "apps")):
|
||||||
|
try:
|
||||||
|
# if the app is already installed (or a simple file instead of a valid app), skip it
|
||||||
|
if app in alreadyDefined or not os.path.isdir(os.path.join(tempDir, "apps", app)):
|
||||||
|
continue
|
||||||
|
with open(os.path.join(appsDir, app, "app.yml"), "r") as f:
|
||||||
|
originalAppYml = yaml.safe_load(f)
|
||||||
|
with open(os.path.join(tempDir, "apps", app, "app.yml"), "r") as f:
|
||||||
|
latestAppYml = yaml.safe_load(f)
|
||||||
|
if semver.compare(latestAppYml["metadata"]["version"], originalAppYml["metadata"]["version"]) > 0:
|
||||||
|
availableUpdates[app] = {
|
||||||
|
"updateFrom": originalAppYml["metadata"]["version"],
|
||||||
|
"updateTo": latestAppYml["metadata"]["version"]
|
||||||
|
}
|
||||||
|
except Exception:
|
||||||
|
print("Warning: Can't check app {} (yet)".format(app), file=sys.stderr)
|
||||||
|
# Remove the temporary dir
|
||||||
|
shutil.rmtree(tempDir)
|
||||||
|
return availableUpdates
|
||||||
|
|
|
@ -375,12 +375,12 @@ if [[ "$command" = "configure" ]]; then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$2" = "fulcrumx" ]]; then
|
if [[ "$2" = "fulcrum" ]]; then
|
||||||
if $persist; then
|
if $persist; then
|
||||||
edit_file $CITADEL_ROOT/templates/fulcrumx-sample.conf
|
edit_file $CITADEL_ROOT/templates/fulcrum-sample.conf
|
||||||
prompt_apply_config electrum true
|
prompt_apply_config electrum true
|
||||||
else
|
else
|
||||||
edit_file $CITADEL_ROOT/fulcrumx/fulcrumx.conf
|
edit_file $CITADEL_ROOT/fulcrum/fulcrum.conf
|
||||||
prompt_apply_config electrum false
|
prompt_apply_config electrum false
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|
|
@ -65,7 +65,7 @@ services:
|
||||||
ipv4_address: $NGINX_IP
|
ipv4_address: $NGINX_IP
|
||||||
bitcoin:
|
bitcoin:
|
||||||
container_name: bitcoin
|
container_name: bitcoin
|
||||||
image: nolim1t/bitcoinknots:v22.0.knots20211108@sha256:a475da2b2ecda55fcc65ea23e1a36c58b2c10549f1c3d3bb3c31c7dda1127354
|
image: ghcr.io/runcitadel/bitcoinknots:main@sha256:5fbee0f6f0d09d42aacc11c373ffe6162210c42ce21e6eba294e547e3ad80219
|
||||||
depends_on:
|
depends_on:
|
||||||
- tor
|
- tor
|
||||||
volumes:
|
volumes:
|
||||||
|
@ -79,7 +79,7 @@ services:
|
||||||
ipv4_address: $BITCOIN_IP
|
ipv4_address: $BITCOIN_IP
|
||||||
lightning:
|
lightning:
|
||||||
container_name: lightning
|
container_name: lightning
|
||||||
image: lightninglabs/lnd:v0.14.3-beta@sha256:6a2234b0aad4caed3d993736816b198d6228f32c59b27ba2218d5ebf516ae905
|
image: lightninglabs/lnd:v0.15.0-beta@sha256:d227a9db0727ff56020c8d6604c8c369757123d238ab6ce679579c2dd0d0d259
|
||||||
user: 1000:1000
|
user: 1000:1000
|
||||||
depends_on:
|
depends_on:
|
||||||
- tor
|
- tor
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"version": "0.0.6",
|
"version": "0.0.7",
|
||||||
"name": "Citadel 0.0.6",
|
"name": "Citadel 0.0.7",
|
||||||
"requires": ">=0.0.1",
|
"requires": ">=0.0.1",
|
||||||
"notes": "This update fixes a security issue in Tor which could lead to slower Tor performance or your node being inaccessible via Tor."
|
"notes": "While we are busy with the next huge update, you may need to wait longer for updates. This update updates Bitcoin Knots and LND to their latest versions to ensure apps can utilize their latest features. In addition, this update includes the Citadel CLI. More information on that will be published soon."
|
||||||
}
|
}
|
||||||
|
|
2
scripts/configure
vendored
2
scripts/configure
vendored
|
@ -334,7 +334,7 @@ templates_to_build = {
|
||||||
"./templates/bitcoin-sample.conf": "./bitcoin/bitcoin.conf",
|
"./templates/bitcoin-sample.conf": "./bitcoin/bitcoin.conf",
|
||||||
"./templates/.env-sample": "./.env",
|
"./templates/.env-sample": "./.env",
|
||||||
"./templates/electrs-sample.toml": "./electrs/electrs.toml",
|
"./templates/electrs-sample.toml": "./electrs/electrs.toml",
|
||||||
"./templates/fulcrumx-sample.conf": "./fulcrumx/fulcrumx.conf",
|
"./templates/fulcrum-sample.conf": "./fulcrum/fulcrum.conf",
|
||||||
"./templates/nginx-sample.conf": "./nginx/nginx.conf"
|
"./templates/nginx-sample.conf": "./nginx/nginx.conf"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ pkill -f ./scripts/status-monitor || true
|
||||||
./scripts/status-monitor storage 60 &>> "${CITADEL_LOGS}/status-monitor.log" &
|
./scripts/status-monitor storage 60 &>> "${CITADEL_LOGS}/status-monitor.log" &
|
||||||
./scripts/status-monitor temperature 15 &>> "${CITADEL_LOGS}/status-monitor.log" &
|
./scripts/status-monitor temperature 15 &>> "${CITADEL_LOGS}/status-monitor.log" &
|
||||||
./scripts/status-monitor uptime 15 &>> "${CITADEL_LOGS}/status-monitor.log" &
|
./scripts/status-monitor uptime 15 &>> "${CITADEL_LOGS}/status-monitor.log" &
|
||||||
./scripts/status-monitor app-updates 300 &>> "${CITADEL_LOGS}/status-monitor.log" &
|
./scripts/status-monitor app-updates 600 &>> "${CITADEL_LOGS}/status-monitor.log" &
|
||||||
|
|
||||||
echo "Starting backup monitor..."
|
echo "Starting backup monitor..."
|
||||||
echo
|
echo
|
||||||
|
|
|
@ -12,4 +12,4 @@ nginx/*
|
||||||
services/installed.yml
|
services/installed.yml
|
||||||
apps/sourceMap.json
|
apps/sourceMap.json
|
||||||
apps/.updateignore
|
apps/.updateignore
|
||||||
fulcrumx/*
|
fulcrum/*
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
# SPDX-FileCopyrightText: 2021-2022 Citadel and contributors
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
bitcoin:
|
|
||||||
container_name: bitcoin
|
|
||||||
image: ghcr.io/runcitadel/bitcoin-custom:main@sha256:d0af506f8dc92a434e845305ac4252d0601b699c4b3bc4443073a0a2e237f3a0
|
|
||||||
depends_on:
|
|
||||||
- tor
|
|
||||||
volumes:
|
|
||||||
- ${PWD}/bitcoin:/data/.bitcoin
|
|
||||||
restart: on-failure
|
|
||||||
stop_grace_period: 1m
|
|
||||||
ports:
|
|
||||||
- $BITCOIN_P2P_PORT:$BITCOIN_P2P_PORT
|
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
ipv4_address: $BITCOIN_IP
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
bitcoin:
|
bitcoin:
|
||||||
container_name: bitcoin
|
container_name: bitcoin
|
||||||
image: lncm/bitcoind:v22.0@sha256:37a1adb29b3abc9f972f0d981f45e41e5fca2e22816a023faa9fdc0084aa4507
|
image: lncm/bitcoind:v23.0@sha256:57317c90d89156a30327fe1b8e51b836e0fd1a8ba13721eb2e75e6b35a570e26
|
||||||
depends_on:
|
depends_on:
|
||||||
- tor
|
- tor
|
||||||
volumes:
|
volumes:
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
bitcoin:
|
bitcoin:
|
||||||
container_name: bitcoin
|
container_name: bitcoin
|
||||||
image: nolim1t/bitcoinknots:v22.0.knots20211108@sha256:a475da2b2ecda55fcc65ea23e1a36c58b2c10549f1c3d3bb3c31c7dda1127354
|
image: ghcr.io/runcitadel/bitcoinknots:main@sha256:5fbee0f6f0d09d42aacc11c373ffe6162210c42ce21e6eba294e547e3ad80219
|
||||||
depends_on:
|
depends_on:
|
||||||
- tor
|
- tor
|
||||||
volumes:
|
volumes:
|
||||||
|
|
|
@ -4,12 +4,12 @@
|
||||||
|
|
||||||
electrum:
|
electrum:
|
||||||
container_name: electrum
|
container_name: electrum
|
||||||
image: ghcr.io/runcitadel/fulcrumx:latest@sha256:a74abdfe8397f02482faed6bd828477c452df071129f66ad6596d0ab8d29cf39
|
image: cculianu/fulcrum:latest@sha256:c0543f8b8a5bf6b0c447d8525d6b4360a6c07532f7741f19cc2c179968e71848
|
||||||
working_dir: /data
|
working_dir: /data
|
||||||
volumes:
|
volumes:
|
||||||
- ${PWD}/bitcoin:/bitcoin:ro
|
- ${PWD}/bitcoin:/bitcoin:ro
|
||||||
- ${PWD}/fulcrumx:/data
|
- ${PWD}/fulcrum:/data
|
||||||
command: /usr/bin/FulcrumX /data/fulcrumx.conf
|
command: /usr/bin/Fulcrum /data/fulcrum.conf
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
stop_grace_period: 5m
|
stop_grace_period: 5m
|
||||||
ports:
|
ports:
|
|
@ -1,19 +0,0 @@
|
||||||
# SPDX-FileCopyrightText: 2021-2022 Citadel and contributors
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
electrum:
|
|
||||||
container_name: electrum
|
|
||||||
image: ghcr.io/runcitadel/fulcrumx:latest@sha256:557a54a5652b475b01c59eb6cffee3568f18b74d875c4cc125e5ac190c4b0706
|
|
||||||
working_dir: /data
|
|
||||||
volumes:
|
|
||||||
- ${PWD}/bitcoin:/bitcoin:ro
|
|
||||||
- ${PWD}/fulcrumx:/data
|
|
||||||
command: /usr/bin/FulcrumX /data/fulcrumx.conf
|
|
||||||
restart: on-failure
|
|
||||||
stop_grace_period: 5m
|
|
||||||
ports:
|
|
||||||
- "$ELECTRUM_PORT:$ELECTRUM_PORT"
|
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
ipv4_address: $ELECTRUM_IP
|
|
|
@ -1,6 +1,6 @@
|
||||||
lightning:
|
lightning:
|
||||||
container_name: lightning
|
container_name: lightning
|
||||||
image: lightninglabs/lnd:v0.14.3-beta@sha256:6a2234b0aad4caed3d993736816b198d6228f32c59b27ba2218d5ebf516ae905
|
image: lightninglabs/lnd:v0.15.0-beta@sha256:d227a9db0727ff56020c8d6604c8c369757123d238ab6ce679579c2dd0d0d259
|
||||||
user: 1000:1000
|
user: 1000:1000
|
||||||
depends_on:
|
depends_on:
|
||||||
- tor
|
- tor
|
||||||
|
|
Loading…
Reference in New Issue
Block a user