The umbrel app store, located at getumbrel/umbrel-apps, did not have the apps I wanted so I made my own app store.
Apps I included are,
- TiddlyWiki -- A non-linear personal web notebook
- wallabag -- Read your articles later
- Monica CRM -- Personal CRM done right
- MediaGoblin -- Media publishing platform that anyone can run
- MinIO -- High Performance Object Storage
- Wireguard Server
PLEASE NOTE INSTALLATION OF APP STORE FROM GUI DOES NOT WORK AT THIS TIME
To test Dentropy's Umbrel Appstore
, you can add this repository through the Umbrel CLI interface as shown in the following demo:
To add an app store:
# Install
sudo ~/umbrel/scripts/repo add https://github.com/dentropy/dentropys-umbrel-appstore
# Update
sudo ~/umbrel/scripts/repo update
To install an app from the app store
sudo ~/umbrel/scripts/app install tiddlywiki
sudo ~/umbrel/scripts/app install wallabag
sudo ~/umbrel/scripts/app install monica
sudo ~/umbrel/scripts/app install wireguard_server
# Since Appstore GUI does not work you need to fetch the mediagoblin password manually
# You can recover password using script at end of README
sudo ~/umbrel/scripts/app install mediagoblin
sudo ~/umbrel/scripts/app install minio
To uninstall an app from the app store
sudo ~/umbrel/scripts/app uninstall tiddlywiki
sudo ~/umbrel/scripts/app uninstall wallabag
sudo ~/umbrel/scripts/app uninstall monica
sudo ~/umbrel/scripts/app uninstall mediagoblin
sudo ~/umbrel/scripts/app uninstall minio
sudo ~/umbrel/scripts/app uninstall wireguard_server
To remove an app store:
sudo ~/umbrel/scripts/repo remove https://github.com/getumbrel/umbrel-community-app-store.git
Run the script below to generate passwords for minio and mediagoblin, generalized script available at recover_umbrel_password.sh
# REMEMBER TO CHANGE THIS TO APP YOU WANT PASSWORD FOR
# App name can be found in umbrel-app.yml for example ./mediagoblin/umbrel-app.yml
UMBREL_ROOT="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)"
# UMBREL_ROOT when umbrel installed on user dentropy is /home/dentropy/umbrel/app-data
app_entropy_identifier="app-${app}-seed"
derive_entropy () {
# Make sure we use the seed from the real Umbrel installation if this is
# an OTA update.
SEED_FILE="${UMBREL_ROOT}/db/umbrel-seed/seed"
if [[ ! -f "${SEED_FILE}" ]] && [[ -f "${UMBREL_ROOT}/../.umbrel" ]]; then
SEED_FILE="${UMBREL_ROOT}/../db/umbrel-seed/seed"
fi
identifier="${1}"
umbrel_seed=$(cat "${SEED_FILE}") || true
if [[ -z "$umbrel_seed" ]] || [[ -z "$identifier" ]]; then
>&2 echo "Missing derivation parameter, this is unsafe, exiting."
exit 1
fi
# We need `sed 's/^.* //'` to trim the "(stdin)= " prefix from some versions of openssl
printf "%s" "${identifier}" | openssl dgst -sha256 -hmac "${umbrel_seed}" | sed 's/^.* //'
}
export mediagoblin_APP_PASSWORD=$(derive_entropy "app-mediagoblin-seed-APP_PASSWORD")
export minio_APP_PASSWORD=$(derive_entropy "app-minio-seed-APP_PASSWORD")
echo "mediagoblin user : umbrel"
echo "mediagoblin password: $mediagoblin_APP_PASSWORD"
echo "mediagoblin user : umbrel"
echo "minio password: $minio_APP_PASSWORD"
sudo docker exec wallabag_app_1 /var/www/wallabag/bin/console doctrine:migrations:migrate --env=prod --no-interaction