From 89b17ea2b27b80c9deacae08279a5bbe7e184078 Mon Sep 17 00:00:00 2001 From: Dmitry Fofanov Date: Thu, 30 Apr 2026 07:41:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D1=83=D0=BA=D1=82=D1=83=D1=80=D1=8B=20=D0=BA=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=87=D0=B8=D1=82=D0=B0=D0=B5=D0=BC=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=20=D0=B8=20=D1=83=D0=B4=D0=BE=D0=B1=D1=81?= =?UTF-8?q?=D1=82=D0=B2=D0=B0=20=D1=81=D0=BE=D0=BF=D1=80=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- activepieces/data/app/cache/.gitkeep | 0 activepieces/data/db/.gitkeep | 0 activepieces/data/redis/.gitkeep | 0 activepieces/dfwebos-app.yml | 63 ++ activepieces/docker-compose.yml | 63 ++ activepieces/exports.sh | 1 + adguard-home/data/conf/.gitkeep | 0 adguard-home/data/work/.gitkeep | 0 adguard-home/dfwebos-app.yml | 52 ++ adguard-home/docker-compose.yml | 15 + adventurelog/data/app/.gitkeep | 0 adventurelog/data/db/.gitkeep | 0 adventurelog/dfwebos-app.yml | 43 ++ adventurelog/docker-compose.yml | 50 ++ adventurelog/hooks/pre-start | 9 + affine/data/config/.gitkeep | 0 affine/data/storage/blob/.gitkeep | 0 affine/data/storage/postgres/.gitkeep | 0 affine/data/storage/redis/.gitkeep | 0 affine/dfwebos-app.yml | 51 ++ affine/docker-compose.yml | 71 ++ agent-zero/data/.gitkeep | 0 agent-zero/dfwebos-app.yml | 40 ++ agent-zero/docker-compose.yml | 15 + agent-zero/exports.sh | 16 + agora/data/entrypoint.sh | 8 + agora/data/www/admin/index.html | 16 + agora/database/filebrowser.db | 0 agora/dfwebos-app.yml | 30 + agora/docker-compose.yml | 65 ++ agora/exports.sh | 4 + agora/files/.gitkeep | 0 agora/nginx/nginx.conf.template | 28 + airtrail/data/db/.gitkeep | 0 airtrail/data/uploads/.gitkeep | 0 airtrail/dfwebos-app.yml | 41 ++ airtrail/docker-compose.yml | 40 ++ akaunting/db/.gitkeep | 1 + akaunting/dfwebos-app.yml | 67 ++ akaunting/docker-compose.yml | 41 ++ alby-nostr-wallet-connect/data/.gitkeep | 0 alby-nostr-wallet-connect/dfwebos-app.yml | 40 ++ alby-nostr-wallet-connect/docker-compose.yml | 21 + albyhub/data/.gitkeep | 0 albyhub/dfwebos-app.yml | 57 ++ albyhub/docker-compose.yml | 22 + albyhub/exports.sh | 14 + appsmith/data/app/.gitkeep | 0 appsmith/dfwebos-app.yml | 49 ++ appsmith/docker-compose.yml | 16 + arcane/data/app_data/.gitkeep | 1 + arcane/data/docker/.gitkeep | 1 + arcane/data/projects/.gitkeep | 1 + arcane/dfwebos-app.yml | 60 ++ arcane/docker-compose.yml | 43 ++ arcane/entrypoint.sh | 38 + arcane/hooks/pre-start | 7 + audiobookshelf/data/config/.gitkeep | 0 audiobookshelf/data/metadata/.gitkeep | 0 audiobookshelf/dfwebos-app.yml | 76 ++ audiobookshelf/docker-compose.yml | 27 + audiobookshelf/exports.sh | 16 + autobrr/data/.gitkeep | 0 autobrr/dfwebos-app.yml | 52 ++ autobrr/docker-compose.yml | 16 + .../data/opt-timemachine/.gitkeep | 0 back-that-mac-up/data/run-samba/.gitkeep | 0 .../data/var-cache-samba/.gitkeep | 0 back-that-mac-up/data/var-lib-samba/.gitkeep | 0 back-that-mac-up/dfwebos-app.yml | 58 ++ back-that-mac-up/docker-compose.yml | 53 ++ baikal/data/Specific/.gitkeep | 1 + baikal/data/config/.gitkeep | 1 + baikal/dfwebos-app.yml | 46 ++ baikal/docker-compose.yml | 15 + bassin/data/config/ckpool.conf.template | 16 + bassin/data/www/.gitkeep | 0 bassin/dfwebos-app.yml | 62 ++ bassin/docker-compose.yml | 69 ++ bassin/hooks/pre-start | 32 + bazarr/data/config/.gitkeep | 0 bazarr/dfwebos-app.yml | 54 ++ bazarr/docker-compose.yml | 18 + bentopdf/dfwebos-app.yml | 45 ++ bentopdf/docker-compose.yml | 11 + bffless/data/config/domain.txt.example | 13 + bffless/data/db/init-databases.sql | 9 + bffless/data/frontend/.gitkeep | 1 + bffless/data/nginx/.gitkeep | 1 + bffless/data/postgres/.gitkeep | 0 bffless/data/uploads/.gitkeep | 0 bffless/dfwebos-app.yml | 40 ++ bffless/docker-compose.yml | 145 ++++ bitaxe-sentry/data/sentry/.gitkeep | 0 bitaxe-sentry/dfwebos-app.yml | 33 + bitaxe-sentry/docker-compose.yml | 30 + bitbalance/data/.gitkeep | 1 + bitbalance/dfwebos-app.yml | 37 + bitbalance/docker-compose.yml | 19 + bitcoin-knots/data/app/.gitkeep | 0 bitcoin-knots/data/bitcoin/.gitkeep | 0 bitcoin-knots/data/i2pd/.gitkeep | 0 bitcoin-knots/dfwebos-app.yml | 91 +++ bitcoin-knots/docker-compose.yml | 83 +++ bitcoin-knots/exports.sh | 105 +++ bitcoin-knots/hooks/pre-start | 61 ++ bitcoin-knots/scripts/rpcauth.py | 46 ++ bitcoin-knots/torrc.template | 13 + .../data/bitcoin/.gitkeep | 0 .../data/electrs/.gitkeep | 0 bitcoin-regtest-dashboard/dfwebos-app.yml | 45 ++ bitcoin-regtest-dashboard/docker-compose.yml | 89 +++ bitcoin/data/app/.gitkeep | 0 bitcoin/data/bitcoin/.gitkeep | 0 bitcoin/data/i2pd/.gitkeep | 0 bitcoin/dfwebos-app.yml | 91 +++ bitcoin/docker-compose.yml | 85 +++ bitcoin/exports.sh | 81 +++ bitcoin/hooks/pre-start | 61 ++ bitcoin/scripts/rpcauth.py | 46 ++ bitcoin/torrc.template | 13 + bitfeed/data/.gitkeep | 0 bitfeed/dfwebos-app.yml | 32 + bitfeed/docker-compose.yml | 39 ++ bitwatch/data/.gitkeep | 0 bitwatch/dfwebos-app.yml | 43 ++ bitwatch/docker-compose.yml | 15 + bitwatch/exports.sh | 0 bleskomat-server/data/.gitkeep | 0 bleskomat-server/data/db/.gitkeep | 0 bleskomat-server/data/web/.gitkeep | 0 bleskomat-server/dfwebos-app.yml | 24 + bleskomat-server/docker-compose.yml | 44 ++ blinko/data/app/.gitkeep | 1 + blinko/data/db/.gitkeep | 1 + blinko/dfwebos-app.yml | 48 ++ blinko/docker-compose.yml | 50 ++ blockstream-blind-oracle/data/.gitkeep | 0 blockstream-blind-oracle/data/pins/.gitkeep | 0 .../data/server_private_key.key | 1 + .../data/server_public_key.pub | 1 + blockstream-blind-oracle/dfwebos-app.yml | 35 + blockstream-blind-oracle/docker-compose.yml | 50 ++ blockstream-blind-oracle/exports.sh | 8 + blockstream-blind-oracle/hooks/pre-start | 33 + blockstream-blind-oracle/torrc.template | 3 + bluewallet/data/redis/.gitkeep | 0 bluewallet/dfwebos-app.yml | 30 + bluewallet/docker-compose.yml | 34 + booklore/data/app/.gitkeep | 1 + booklore/data/books/.gitkeep | 1 + booklore/data/db/.gitkeep | 1 + booklore/dfwebos-app.yml | 62 ++ booklore/docker-compose.yml | 35 + btc-rpc-explorer/dfwebos-app.yml | 42 ++ btc-rpc-explorer/docker-compose.yml | 35 + btcpay-server/data/btcpay/.gitkeep | 0 btcpay-server/data/nbxplorer/.gitkeep | 0 btcpay-server/data/postgres/.gitkeep | 0 btcpay-server/dfwebos-app.yml | 60 ++ btcpay-server/docker-compose.yml | 68 ++ btctracker/data/.gitkeep | 1 + btctracker/dfwebos-app.yml | 54 ++ btctracker/docker-compose.yml | 19 + budibase/data/budibase/.gitkeep | 0 budibase/dfwebos-app.yml | 53 ++ budibase/docker-compose.yml | 17 + calibre-web/data/books/metadata.db | Bin 0 -> 356352 bytes calibre-web/data/config/.gitkeep | 0 calibre-web/dfwebos-app.yml | 48 ++ calibre-web/docker-compose.yml | 18 + campfire/data/app/.gitkeep | 1 + campfire/data/redis/.gitkeep | 0 campfire/dfwebos-app.yml | 38 + campfire/docker-compose.yml | 50 ++ canary/data/.gitkeep | 1 + canary/dfwebos-app.yml | 35 + canary/docker-compose.yml | 34 + canary/exports.sh | 10 + cashu-me/dfwebos-app.yml | 49 ++ cashu-me/docker-compose.yml | 12 + chantools/data/.gitkeep | 0 chantools/dfwebos-app.yml | 36 + chantools/docker-compose.yml | 24 + chatbot-ui/dfwebos-app.yml | 56 ++ chatbot-ui/docker-compose.yml | 10 + chatpad-ai/dfwebos-app.yml | 29 + chatpad-ai/docker-compose.yml | 11 + chromium/data/.gitkeep | 0 chromium/dfwebos-app.yml | 33 + chromium/docker-compose.yml | 16 + circuitbreaker/data/.gitkeep | 0 circuitbreaker/dfwebos-app.yml | 65 ++ circuitbreaker/docker-compose.yml | 18 + cloudflared/.gitattributes | 1 + cloudflared/data/.gitkeep | 0 cloudflared/dfwebos-app.yml | 40 ++ cloudflared/docker-compose.yml | 35 + cloudflared/exports.sh | 1 + cobalt/dfwebos-app.yml | 43 ++ cobalt/docker-compose.yml | 21 + code-server/data/.bashrc | 1 + code-server/data/.loaders/init.sh | 41 ++ code-server/dfwebos-app.yml | 35 + code-server/docker-compose.yml | 16 + convertx/data/app/.gitkeep | 1 + convertx/dfwebos-app.yml | 42 ++ convertx/docker-compose.yml | 16 + copyparty/data/config/config.conf | 15 + copyparty/data/cp_data/.gitkeep | 1 + copyparty/data/media/.gitkeep | 1 + copyparty/data/shared/.gitkeep | 1 + copyparty/dfwebos-app.yml | 56 ++ copyparty/docker-compose.yml | 19 + core-lightning-rtl/data/boltz/.gitkeep | 0 core-lightning-rtl/data/rtl/RTL-Config.json | 25 + core-lightning-rtl/dfwebos-app.yml | 52 ++ core-lightning-rtl/docker-compose.yml | 45 ++ core-lightning-rtl/exports.sh | 17 + core-lightning-rtl/hooks/pre-start | 40 ++ core-lightning/data/lightningd/.gitkeep | 0 core-lightning/dfwebos-app.yml | 63 ++ core-lightning/docker-compose.yml | 89 +++ core-lightning/exports.sh | 21 + core-lightning/hooks/pre-start | 26 + core-lightning/torrc.template | 3 + databag/data/databag/.gitkeep | 0 databag/dfwebos-app.yml | 66 ++ databag/docker-compose.yml | 16 + datum/data/settings/datum_gateway_config.json | 29 + datum/dfwebos-app.yml | 90 +++ datum/docker-compose.yml | 19 + datum/hooks/pre-start | 58 ++ dcrpulse/data/.gitkeep | 0 dcrpulse/dfwebos-app.yml | 43 ++ dcrpulse/docker-compose.yml | 84 +++ deepsea/data/config.json | 7 + deepsea/dfwebos-app.yml | 115 +++ deepsea/docker-compose.yml | 14 + dockge/data/docker/.gitkeep | 0 dockge/data/dockge-data/.gitkeep | 0 dockge/data/dockge-stacks/.gitkeep | 0 dockge/dfwebos-app.yml | 61 ++ dockge/docker-compose.yml | 38 + dockge/entrypoint.sh | 47 ++ docmost/data/db_data/.gitkeep | 1 + docmost/data/docmost_data/.gitkeep | 1 + docmost/data/redis_data/.gitkeep | 1 + docmost/dfwebos-app.yml | 55 ++ docmost/docker-compose.yml | 41 ++ docuseal/data/app/.gitkeep | 0 docuseal/data/db/.gitkeep | 0 docuseal/dfwebos-app.yml | 44 ++ docuseal/docker-compose.yml | 28 + domain-locker/data/db_data/.gitkeep | 1 + domain-locker/dfwebos-app.yml | 47 ++ domain-locker/docker-compose.yml | 43 ++ donetick/data/app/.gitkeep | 1 + donetick/data/config/selfhosted.yaml | 25 + donetick/dfwebos-app.yml | 53 ++ donetick/docker-compose.yml | 19 + downtify/dfwebos-app.yml | 36 + downtify/docker-compose.yml | 13 + dumbpad/data/.gitkeep | 0 dumbpad/dfwebos-app.yml | 41 ++ dumbpad/docker-compose.yml | 16 + duplicati/data/.gitkeep | 0 duplicati/dfwebos-app.yml | 61 ++ duplicati/docker-compose.yml | 22 + electrs/data/electrs/.gitkeep | 0 electrs/dfwebos-app.yml | 40 ++ electrs/docker-compose.yml | 54 ++ electrs/exports.sh | 7 + electrs/hooks/pre-start | 26 + electrs/torrc.template | 3 + electrumx/data/electrumx/.gitkeep | 0 electrumx/dfwebos-app.yml | 39 ++ electrumx/docker-compose.yml | 53 ++ electrumx/exports.sh | 30 + electrumx/hooks/pre-start | 26 + electrumx/torrc.template | 4 + element/dfwebos-app.yml | 62 ++ element/docker-compose.yml | 13 + elements/data/.gitkeep | 0 elements/dfwebos-app.yml | 37 + elements/docker-compose.yml | 70 ++ elements/exports.sh | 8 + elements/hooks/pre-start | 26 + elements/torrc.template | 7 + emby/dfwebos-app.yml | 2 +- emby/docker-compose.yml | 2 +- enclosed/data/.gitkeep | 0 enclosed/dfwebos-app.yml | 46 ++ enclosed/docker-compose.yml | 15 + .../app/activity_files/bulk_import/.gitkeep | 0 .../app/activity_files/processed/.gitkeep | 0 endurain/data/app/activity_media/.gitkeep | 0 endurain/data/app/server_images/.gitkeep | 0 endurain/data/app/user_images/.gitkeep | 0 endurain/data/db/.gitkeep | 0 endurain/data/logs/.gitkeep | 0 endurain/dfwebos-app.yml | 59 ++ endurain/docker-compose.yml | 46 ++ endurain/hooks/pre-start | 114 +++ endurain/settings.env | 3 + esphome/data/.gitkeep | 0 esphome/data/secrets.yaml | 0 esphome/dfwebos-app.yml | 38 + esphome/docker-compose.yml | 9 + etherpad/data/etherpad-var/.gitkeep | 1 + etherpad/data/plugins/.gitkeep | 1 + etherpad/data/postgres_data/.gitkeep | 1 + etherpad/dfwebos-app.yml | 56 ++ etherpad/docker-compose.yml | 50 ++ excalidraw/data/.gitkeep | 1 + excalidraw/dfwebos-app.yml | 43 ++ excalidraw/docker-compose.yml | 17 + fedimint-gateway/data/entrypoint.sh | 9 + fedimint-gateway/dfwebos-app.yml | 65 ++ fedimint-gateway/docker-compose.yml | 33 + fedimintd/data/.gitkeep | 0 fedimintd/dfwebos-app.yml | 96 +++ fedimintd/docker-compose.yml | 25 + file-browser/data/filebrowser.db | 0 file-browser/dfwebos-app.yml | 38 + file-browser/docker-compose.yml | 21 + file-browser/exports.sh | 22 + file-drop/dfwebos-app.yml | 24 + file-drop/docker-compose.yml | 14 + firefly-iii-importer/dfwebos-app.yml | 48 ++ firefly-iii-importer/docker-compose.yml | 15 + firefly-iii-importer/hooks/pre-start | 18 + firefly-iii/data/logs/.gitkeep | 0 firefly-iii/data/mysql/.gitkeep | 0 firefly-iii/data/upload/.gitkeep | 0 firefly-iii/dfwebos-app.yml | 62 ++ firefly-iii/docker-compose.yml | 38 + firefly-iii/exports.sh | 1 + firefly-iii/hooks/pre-start | 26 + firefox/data/config/.gitkeep | 0 firefox/dfwebos-app.yml | 51 ++ firefox/docker-compose.yml | 17 + fizzy/data/app/.gitkeep | 1 + fizzy/dfwebos-app.yml | 30 + fizzy/docker-compose.yml | 31 + flaresolverr/dfwebos-app.yml | 35 + flaresolverr/docker-compose.yml | 23 + flatnotes/data/.gitkeep | 0 flatnotes/dfwebos-app.yml | 41 ++ flatnotes/docker-compose.yml | 20 + forgejo/data/db/.gitkeep | 0 forgejo/data/forgejo/config/.gitkeep | 0 forgejo/data/forgejo/data/.gitkeep | 0 forgejo/dfwebos-app.yml | 62 ++ forgejo/docker-compose.yml | 50 ++ forgejo/exports.sh | 2 + formicaio/data/formicaio/.gitkeep | 0 formicaio/dfwebos-app.yml | 96 +++ formicaio/docker-compose.yml | 29 + fossflow/data/diagrams/.gitkeep | 0 fossflow/dfwebos-app.yml | 51 ++ fossflow/docker-compose.yml | 17 + freshrss/data/.gitkeep | 0 freshrss/dfwebos-app.yml | 65 ++ freshrss/docker-compose.yml | 17 + frigate/data/config/config.yml | 14 + frigate/data/storage/.gitkeep | 0 frigate/dfwebos-app.yml | 58 ++ frigate/docker-compose.yml | 28 + frigate/hooks/pre-start | 22 + fulcrum/data/fulcrum-logs/.gitkeep | 0 fulcrum/data/fulcrum/.gitkeep | 0 fulcrum/dfwebos-app.yml | 44 ++ fulcrum/docker-compose.yml | 69 ++ fulcrum/exports.sh | 22 + fulcrum/hooks/pre-start | 63 ++ fulcrum/torrc.template | 3 + ghost/data/content/.gitkeep | 1 + ghost/data/db/.gitkeep | 1 + ghost/dfwebos-app.yml | 53 ++ ghost/docker-compose.yml | 32 + ghostfolio/data/postgres/.gitkeep | 0 ghostfolio/data/redis/.gitkeep | 0 ghostfolio/dfwebos-app.yml | 46 ++ ghostfolio/docker-compose.yml | 47 ++ ghostfolio/exports.sh | 5 + gitea-mirror/data/.gitkeep | 0 gitea-mirror/dfwebos-app.yml | 50 ++ gitea-mirror/docker-compose.yml | 31 + gitea-mirror/exports.sh | 16 + gitea/data/db/.gitkeep | 0 gitea/data/gitea/config/.gitkeep | 0 gitea/data/gitea/data/.gitkeep | 0 gitea/dfwebos-app.yml | 54 ++ gitea/docker-compose.yml | 43 ++ gitea/exports.sh | 2 + gitingest/dfwebos-app.yml | 54 ++ gitingest/docker-compose.yml | 15 + gitingest/exports.sh | 3 + gitlab/data/config/.gitkeep | 0 gitlab/data/data/.gitkeep | 0 gitlab/data/logs/.gitkeep | 0 gitlab/dfwebos-app.yml | 80 +++ gitlab/docker-compose.yml | 34 + gitlab/hooks/pre-start | 222 ++++++ grafana/data/.gitkeep | 0 grafana/dfwebos-app.yml | 51 ++ grafana/docker-compose.yml | 16 + habitica/data/db/.gitkeep | 1 + habitica/data/dbconf/.gitkeep | 1 + habitica/dfwebos-app.yml | 40 ++ habitica/docker-compose.yml | 39 ++ heimdall/config/.gitkeep | 0 heimdall/dfwebos-app.yml | 46 ++ heimdall/docker-compose.yml | 17 + helipad/data/.gitkeep | 0 helipad/dfwebos-app.yml | 58 ++ helipad/docker-compose.yml | 19 + hermes-agent/data/hermes/.gitkeep | 0 hermes-agent/dfwebos-app.yml | 52 ++ hermes-agent/docker-compose.yml | 49 ++ holesail-switchboard/data/.gitkeep | 0 holesail-switchboard/dfwebos-app.yml | 45 ++ holesail-switchboard/docker-compose.yml | 32 + homarr/data/.gitkeep | 1 + homarr/dfwebos-app.yml | 43 ++ homarr/docker-compose.yml | 15 + home-assistant-fusion-ui/data/fusion/.gitkeep | 0 home-assistant-fusion-ui/dfwebos-app.yml | 31 + home-assistant-fusion-ui/docker-compose.yml | 22 + home-assistant-fusion-ui/exports.sh | 1 + home-assistant/data/.gitkeep | 0 home-assistant/dfwebos-app.yml | 60 ++ home-assistant/docker-compose.yml | 13 + home-assistant/hooks/pre-start | 31 + homebox/data/.gitkeep | 0 homebox/dfwebos-app.yml | 43 ++ homebox/docker-compose.yml | 19 + homebridge/data/homebridge/.gitkeep | 0 homebridge/dfwebos-app.yml | 53 ++ homebridge/docker-compose.yml | 11 + homebridge/exports.sh | 5 + homehub/data/app_data/.gitkeep | 1 + homehub/data/config/config.yml | 59 ++ homehub/data/media/.gitkeep | 1 + homehub/data/pdfs/.gitkeep | 1 + homehub/data/uploads/.gitkeep | 1 + homehub/dfwebos-app.yml | 47 ++ homehub/docker-compose.yml | 20 + hortusfox/data/backup/.gitkeep | 1 + hortusfox/data/db_data/.gitkeep | 1 + hortusfox/data/images/.gitkeep | 1 + hortusfox/data/logs/.gitkeep | 1 + hortusfox/data/migrate/.gitkeep | 1 + hortusfox/data/themes/.gitkeep | 1 + hortusfox/dfwebos-app.yml | 49 ++ hortusfox/docker-compose.yml | 39 ++ immich/data/model-cache/.gitkeep | 0 immich/data/postgres/.gitkeep | 0 immich/data/redis/.gitkeep | 0 immich/data/upload/.gitkeep | 0 immich/dfwebos-app.yml | 83 +++ immich/docker-compose.yml | 62 ++ immich/hooks/pre-start | 101 +++ influxdb/data/chronograf/.gitkeep | 0 influxdb/data/influxdb/.gitkeep | 0 influxdb/dfwebos-app.yml | 84 +++ influxdb/docker-compose.yml | 32 + influxdb/hooks/pre-start | 18 + influxdb2/data/config/.gitkeep | 1 + influxdb2/data/data/.gitkeep | 1 + influxdb2/dfwebos-app.yml | 53 ++ influxdb2/docker-compose.yml | 14 + invidious/data/companioncache/.gitkeep | 0 invidious/data/db/.gitkeep | 0 invidious/dfwebos-app.yml | 70 ++ invidious/docker-compose.yml | 62 ++ invidious/exports.sh | 1 + invidious/hooks/pre-start | 28 + invio/data/.gitkeep | 0 invio/dfwebos-app.yml | 35 + invio/docker-compose.yml | 33 + invoice-ninja/config/nginx.conf | 55 ++ invoice-ninja/data/db/.gitkeep | 0 invoice-ninja/data/public/.gitkeep | 0 invoice-ninja/data/redis/.gitkeep | 0 invoice-ninja/data/storage/.gitkeep | 0 invoice-ninja/dfwebos-app.yml | 37 + invoice-ninja/docker-compose.yml | 87 +++ invoice-ninja/exports.sh | 7 + invoice-ninja/hooks/pre-start | 173 +++++ ipfs-podcasting/cfg/.gitkeep | 1 + ipfs-podcasting/dfwebos-app.yml | 27 + ipfs-podcasting/docker-compose.yml | 19 + ipfs-podcasting/ipfs/.gitkeep | 1 + itchysats/data/.gitkeep | 0 itchysats/dfwebos-app.yml | 72 ++ itchysats/docker-compose.yml | 21 + ittools/dfwebos-app.yml | 36 + ittools/docker-compose.yml | 17 + jackett/data/.gitkeep | 0 jackett/dfwebos-app.yml | 51 ++ jackett/docker-compose.yml | 19 + jam/data/joinmarket/.gitkeep | 0 jam/dfwebos-app.yml | 45 ++ jam/docker-compose.yml | 27 + jellyfin/dfwebos-app.yml | 2 +- jellyseerr/data/config/.gitkeep | 0 jellyseerr/dfwebos-app.yml | 61 ++ jellyseerr/docker-compose.yml | 22 + jellyseerr/hooks/pre-start | 9 + jotty/data/app/.gitkeep | 0 jotty/data/cache/.gitkeep | 0 jotty/data/config/.gitkeep | 0 jotty/dfwebos-app.yml | 60 ++ jotty/docker-compose.yml | 17 + jupyterlab/data/.gitkeep | 0 jupyterlab/dfwebos-app.yml | 49 ++ jupyterlab/docker-compose.yml | 14 + just-download/data/config/.gitkeep | 0 just-download/dfwebos-app.yml | 29 + just-download/docker-compose.yml | 18 + kan/data/db/.gitkeep | 0 kan/dfwebos-app.yml | 44 ++ kan/docker-compose.yml | 42 ++ karakeep/data/karakeep_data/.gitkeep | 1 + karakeep/data/meilisearch_data/.gitkeep | 1 + karakeep/dfwebos-app.yml | 49 ++ karakeep/docker-compose.yml | 50 ++ karakeep/settings.env | 1 + kimai/data/app/plugins/.gitkeep | 0 kimai/data/db/.gitkeep | 0 kimai/dfwebos-app.yml | 44 ++ kimai/docker-compose.yml | 42 ++ kitchenowl/data/kitchenowl_db/.gitkeep | 1 + kitchenowl/data/kitchenowl_files/.gitkeep | 1 + kitchenowl/dfwebos-app.yml | 48 ++ kitchenowl/docker-compose.yml | 41 ++ kiwix/data/.gitkeep | 0 kiwix/dfwebos-app.yml | 43 ++ kiwix/docker-compose.yml | 16 + kokoro/dfwebos-app.yml | 43 ++ kokoro/docker-compose.yml | 12 + kollider/data/cache/images/.gitkeep | 0 kollider/data/logs/.gitkeep | 0 kollider/dfwebos-app.yml | 40 ++ kollider/docker-compose.yml | 44 ++ kollider/exports.sh | 1 + komodo/data/core/.gitkeep | 1 + komodo/data/docker/.gitkeep | 1 + komodo/data/ferretdb/.gitkeep | 1 + komodo/data/keys/.gitkeep | 0 komodo/data/periphery/.gitkeep | 1 + komodo/data/postgres/.gitkeep | 1 + komodo/dfwebos-app.yml | 37 + komodo/docker-compose.yml | 96 +++ komodo/entrypoint.sh | 47 ++ komodo/hooks/pre-start | 31 + komodo/settings.env | 20 + krystal-bull/data/log/.gitkeep | 0 krystal-bull/data/oracleserver/.gitkeep | 0 krystal-bull/dfwebos-app.yml | 38 + krystal-bull/docker-compose.yml | 38 + libre-relay/data/app/.gitkeep | 0 libre-relay/data/bitcoin/.gitkeep | 0 libre-relay/data/i2pd/.gitkeep | 0 libre-relay/dfwebos-app.yml | 89 +++ libre-relay/docker-compose.yml | 79 +++ libre-relay/exports.sh | 171 +++++ libre-relay/hooks/pre-start | 26 + libre-relay/scripts/rpcauth.py | 46 ++ libre-relay/torrc.template | 13 + librechat/.env | 661 ++++++++++++++++++ librechat/data/api/images/.gitkeep | 0 librechat/data/api/librechat.yaml | 277 ++++++++ librechat/data/api/logs/.gitkeep | 0 librechat/data/api/uploads/.gitkeep | 0 librechat/data/db/.gitkeep | 0 librechat/data/meilisearch/.gitkeep | 0 librechat/data/vectordb/.gitkeep | 0 librechat/dfwebos-app.yml | 103 +++ librechat/docker-compose.yml | 81 +++ librechat/hooks/pre-start | 55 ++ libreddit/dfwebos-app.yml | 35 + libreddit/docker-compose.yml | 18 + libreoffice/data/config/.gitkeep | 0 libreoffice/dfwebos-app.yml | 42 ++ libreoffice/docker-compose.yml | 17 + librephotos/data/cache/.gitkeep | 1 + librephotos/data/db/.gitkeep | 1 + librephotos/data/logs/.gitkeep | 1 + librephotos/data/photos/.gitkeep | 1 + librephotos/data/protected_media/.gitkeep | 1 + librephotos/dfwebos-app.yml | 52 ++ librephotos/docker-compose.yml | 70 ++ librespeed/data/config/.gitkeep | 0 librespeed/dfwebos-app.yml | 31 + librespeed/docker-compose.yml | 16 + librespeed/hooks/post-update | 4 + libretranslate/data/api_keys/.gitkeep | 0 libretranslate/data/models/.gitkeep | 0 libretranslate/dfwebos-app.yml | 40 ++ libretranslate/docker-compose.yml | 28 + libretranslate/hooks/pre-start | 26 + lidarr/data/config/.gitkeep | 0 lidarr/dfwebos-app.yml | 45 ++ lidarr/docker-compose.yml | 41 ++ lidarr/exports.sh | 13 + lidarr/hooks/post-install | 24 + lightning-shell/data/.gitkeep | 0 lightning-shell/dfwebos-app.yml | 42 ++ lightning-shell/docker-compose.yml | 23 + lightning-terminal/data/.gitkeep | 0 lightning-terminal/dfwebos-app.yml | 104 +++ lightning-terminal/docker-compose.yml | 27 + lightning/data/lightning/.gitkeep | 0 lightning/data/lnd/.gitkeep | 0 lightning/dfwebos-app.yml | 105 +++ lightning/docker-compose.yml | 69 ++ lightning/exports.sh | 90 +++ lightning/hooks/pre-start | 26 + lightning/torrc.template | 7 + linkstack/data/.gitkeep | 1 + linkstack/dfwebos-app.yml | 45 ++ linkstack/docker-compose.yml | 28 + linkwarden/data/app/.gitkeep | 0 linkwarden/data/db/.gitkeep | 0 linkwarden/dfwebos-app.yml | 37 + linkwarden/docker-compose.yml | 33 + llama-gpt/dfwebos-app.yml | 43 ++ llama-gpt/docker-compose.yml | 23 + llama-gpt/hooks/pre-install | 34 + ln-visualizer/dfwebos-app.yml | 37 + ln-visualizer/docker-compose.yml | 29 + lnbits-holesail-proxy/data/.gitkeep | 0 lnbits-holesail-proxy/dfwebos-app.yml | 32 + lnbits-holesail-proxy/docker-compose.yml | 20 + lnbits/data/.gitkeep | 0 lnbits/dfwebos-app.yml | 43 ++ lnbits/docker-compose.yml | 35 + lndboss/.bosgui/.env | 0 lndboss/dfwebos-app.yml | 44 ++ lndboss/docker-compose.yml | 20 + lndg/data/db/.gitkeep | 0 lndg/data/logs/lndg-controller.log | 0 lndg/dfwebos-app.yml | 31 + lndg/docker-compose.yml | 24 + lndg/exports.sh | 2 + lndg/hooks/pre-start | 50 ++ lnmarkets/dfwebos-app.yml | 34 + lnmarkets/docker-compose.yml | 24 + lnmarkets/exports.sh | 2 + lnplus/dfwebos-app.yml | 32 + lnplus/docker-compose.yml | 21 + lobe-chat/bucket.config.json | 24 + lobe-chat/data/db/.gitkeep | 0 lobe-chat/data/redis/.gitkeep | 0 lobe-chat/data/rustfs-logs/.gitkeep | 0 lobe-chat/data/rustfs/.gitkeep | 0 lobe-chat/data/searxng/settings.yml | 6 + lobe-chat/dfwebos-app.yml | 50 ++ lobe-chat/docker-compose.yml | 119 ++++ lobe-chat/hooks/pre-start | 166 +++++ localai/data/images/.gitkeep | 0 localai/data/models/.gitkeep | 0 localai/dfwebos-app.yml | 46 ++ localai/docker-compose.yml | 20 + lubelogger/data/app/.gitkeep | 1 + lubelogger/data/keys/.gitkeep | 1 + lubelogger/dfwebos-app.yml | 38 + lubelogger/docker-compose.yml | 15 + lunalytics/data/logs/.gitkeep | 1 + lunalytics/data/lunalytics_data/.gitkeep | 1 + lunalytics/dfwebos-app.yml | 47 ++ lunalytics/docker-compose.yml | 21 + mailarchiver/data/appsettings.json | 79 +++ mailarchiver/data/database/.gitignore | 0 mailarchiver/dfwebos-app.yml | 72 ++ mailarchiver/docker-compose.yml | 32 + mainsail/data/config.json | 3 + mainsail/dfwebos-app.yml | 51 ++ mainsail/docker-compose.yml | 13 + matter-server/data/.gitkeep | 0 matter-server/dfwebos-app.yml | 38 + matter-server/docker-compose.yml | 16 + .../app/mattermost/client-plugins/.gitkeep | 0 .../data/app/mattermost/config/.gitkeep | 0 mattermost/data/app/mattermost/data/.gitkeep | 0 mattermost/data/app/mattermost/logs/.gitkeep | 0 .../data/app/mattermost/plugins/.gitkeep | 0 mattermost/data/db/.gitkeep | 0 mattermost/dfwebos-app.yml | 45 ++ mattermost/docker-compose.yml | 50 ++ maybe/data/postgres/.gitkeep | 0 maybe/data/rails/.gitkeep | 0 maybe/data/redis/.gitkeep | 0 maybe/dfwebos-app.yml | 36 + maybe/docker-compose.yml | 84 +++ maybe/hooks/pre-start | 42 ++ mazanoke/dfwebos-app.yml | 33 + mazanoke/docker-compose.yml | 19 + mealie/data/.gitkeep | 0 mealie/dfwebos-app.yml | 52 ++ mealie/docker-compose.yml | 21 + memos/data/.gitkeep | 0 memos/dfwebos-app.yml | 51 ++ memos/docker-compose.yml | 19 + mempool/data/.gitkeep | 0 mempool/dfwebos-app.yml | 76 ++ mempool/docker-compose.yml | 84 +++ mempool/exports.sh | 17 + mempool/mysql/data/.gitkeep | 0 metube/dfwebos-app.yml | 30 + metube/docker-compose.yml | 15 + miner-sentinel/data/db/.gitkeep | 0 miner-sentinel/dfwebos-app.yml | 67 ++ miner-sentinel/docker-compose.yml | 90 +++ minio/data/minio/.gitkeep | 1 + minio/dfwebos-app.yml | 47 ++ minio/docker-compose.yml | 24 + monero/data/app/.gitkeep | 0 monero/data/i2pd/.gitkeep | 0 monero/data/monero/.gitkeep | 0 monero/dfwebos-app.yml | 36 + monero/docker-compose.yml | 79 +++ monero/exports.sh | 95 +++ monero/hooks/pre-start | 26 + monero/scripts/rpcauth.py | 47 ++ monero/torrc.template | 13 + monetr/data/app/.gitkeep | 0 monetr/data/db/.gitkeep | 0 monetr/data/valkey/.gitkeep | 0 monetr/dfwebos-app.yml | 39 ++ monetr/docker-compose.yml | 60 ++ morphos/dfwebos-app.yml | 47 ++ morphos/docker-compose.yml | 12 + mosquitto/data/config/mosquitto.conf | 18 + mosquitto/data/log/.gitkeep | 1 + mosquitto/data/mosquitto/.gitkeep | 1 + mosquitto/data/nginx/default.conf | 36 + mosquitto/data/www/favicon.png | Bin 0 -> 4913 bytes mosquitto/data/www/index.html | 308 ++++++++ mosquitto/data/www/logo.png | Bin 0 -> 16510 bytes mosquitto/dfwebos-app.yml | 51 ++ mosquitto/docker-compose.yml | 26 + mosquitto/hooks/pre-start | 62 ++ mqttx-web/dfwebos-app.yml | 48 ++ mqttx-web/docker-compose.yml | 10 + mstream/data/.gitkeep | 1 + mstream/dfwebos-app.yml | 43 ++ mstream/docker-compose.yml | 17 + music-assistant/data/settings.json | 83 +++ music-assistant/dfwebos-app.yml | 68 ++ music-assistant/docker-compose.yml | 21 + music-assistant/hooks/pre-start | 27 + myspeed/data/myspeed/.gitkeep | 0 myspeed/dfwebos-app.yml | 28 + myspeed/docker-compose.yml | 15 + n8n/data/.gitkeep | 0 n8n/dfwebos-app.yml | 55 ++ n8n/docker-compose.yml | 26 + navidrome/data/.gitkeep | 1 + navidrome/dfwebos-app.yml | 68 ++ navidrome/docker-compose.yml | 16 + navidrome/hooks/pre-start | 23 + neko/dfwebos-app.yml | 48 ++ neko/docker-compose.yml | 23 + netbird/data/app_data/.gitkeep | 1 + netbird/data/www/favicon.png | Bin 0 -> 4570 bytes netbird/data/www/index.html | 180 +++++ netbird/data/www/logo.png | Bin 0 -> 22577 bytes netbird/dfwebos-app.yml | 49 ++ netbird/docker-compose.yml | 25 + netbird/hooks/post-start | 37 + networkingtoolbox/dfwebos-app.yml | 36 + networkingtoolbox/docker-compose.yml | 22 + nextcloud/data/db/.gitkeep | 0 nextcloud/data/nextcloud/.gitkeep | 0 nextcloud/data/redis/.gitkeep | 0 nextcloud/dfwebos-app.yml | 52 ++ nextcloud/docker-compose.yml | 75 ++ nextcloud/exports.sh | 4 + nextcloud/hooks/post-start | 34 + nextcloud/hooks/post-update | 44 ++ nextcloud/hooks/pre-start | 178 +++++ nginx-proxy-manager/data/letsencrypt/.gitkeep | 0 nginx-proxy-manager/data/npm-data/.gitkeep | 0 nginx-proxy-manager/dfwebos-app.yml | 52 ++ nginx-proxy-manager/docker-compose.yml | 26 + nitter/data/nitter/.gitkeep | 0 nitter/data/redis/.gitkeep | 0 nitter/dfwebos-app.yml | 75 ++ nitter/docker-compose.yml | 32 + nocodb/data/app/.gitkeep | 0 nocodb/data/db/.gitkeep | 0 nocodb/dfwebos-app.yml | 54 ++ nocodb/docker-compose.yml | 38 + node-red-standalone/data/settings.js | 489 +++++++++++++ node-red-standalone/dfwebos-app.yml | 43 ++ node-red-standalone/docker-compose.yml | 12 + node-red/data/admin-credentials.json | 1 + node-red/data/flows.json | 221 ++++++ node-red/data/settings.js | 497 +++++++++++++ node-red/dfwebos-app.yml | 53 ++ node-red/docker-compose.yml | 28 + nolooking/dfwebos-app.yml | 37 + nolooking/docker-compose.yml | 25 + nostr-relay/data/relay-proxy/.gitkeep | 0 nostr-relay/data/relay/config.toml | 154 ++++ nostr-relay/data/relay/db/.gitkeep | 0 nostr-relay/dfwebos-app.yml | 88 +++ nostr-relay/docker-compose.yml | 38 + nostr-relay/hooks/pre-start | 7 + nostrudel/dfwebos-app.yml | 38 + nostrudel/docker-compose.yml | 22 + ntfy/data/cache/.gitkeep | 0 ntfy/data/data/.gitkeep | 0 ntfy/data/lib/.gitkeep | 0 ntfy/dfwebos-app.yml | 64 ++ ntfy/docker-compose.yml | 28 + ntfy/entrypoint.sh | 5 + nutstash-wallet/dfwebos-app.yml | 30 + nutstash-wallet/docker-compose.yml | 14 + oak-node/data/.gitkeep | 0 oak-node/dfwebos-app.yml | 35 + oak-node/docker-compose.yml | 26 + oak-node/log/.gitkeep | 0 obsidian/data/config/.gitkeep | 0 obsidian/dfwebos-app.yml | 38 + obsidian/docker-compose.yml | 17 + octoprint/dfwebos-app.yml | 40 ++ octoprint/docker-compose.yml | 16 + ollama/data/.gitkeep | 0 ollama/dfwebos-app.yml | 48 ++ ollama/docker-compose.yml | 17 + ollama/exports.sh | 1 + omnitools/dfwebos-app.yml | 65 ++ omnitools/docker-compose.yml | 15 + onlyoffice-nextcloud/data/cache/.gitkeep | 0 onlyoffice-nextcloud/data/certs/.gitkeep | 0 onlyoffice-nextcloud/data/db/.gitkeep | 0 onlyoffice-nextcloud/data/logs/.gitkeep | 0 onlyoffice-nextcloud/dfwebos-app.yml | 34 + onlyoffice-nextcloud/docker-compose.yml | 33 + onlyoffice-nextcloud/exports.sh | 3 + open-webui/data/open-webui/.gitkeep | 0 open-webui/dfwebos-app.yml | 60 ++ open-webui/docker-compose.yml | 18 + openclaw/data/linuxbrew/.gitkeep | 0 openclaw/dfwebos-app.yml | 65 ++ openclaw/docker-compose.yml | 18 + openclaw/hooks/pre-start | 34 + opencode/data/opencode/.gitkeep | 0 opencode/data/opencode/projects/.gitkeep | 0 opencode/dfwebos-app.yml | 71 ++ opencode/docker-compose.yml | 17 + openhands/data/docker/.gitkeep | 1 + openhands/data/openhands/.gitkeep | 1 + openhands/data/workspace/.gitkeep | 1 + openhands/dfwebos-app.yml | 48 ++ openhands/docker-compose.yml | 51 ++ openhands/entrypoint.sh | 47 ++ openreader/data/docstore/.gitkeep | 1 + openreader/dfwebos-app.yml | 46 ++ openreader/docker-compose.yml | 16 + openresty-manager/data/acme/.gitkeep | 1 + openresty-manager/data/conf/.gitkeep | 1 + openresty-manager/data/data/.gitkeep | 1 + openresty-manager/data/logs/.gitkeep | 1 + openresty-manager/dfwebos-app.yml | 48 ++ openresty-manager/docker-compose.yml | 26 + openresty-manager/hooks/pre-start | 11 + ordinals/data/ord/.gitkeep | 0 ordinals/dfwebos-app.yml | 41 ++ ordinals/docker-compose.yml | 29 + ordinals/hooks/pre-start | 86 +++ outline/data/app/.gitkeep | 0 outline/data/config/config.yaml.template | 27 + outline/data/db/.gitkeep | 0 outline/data/dex/.gitkeep | 0 outline/data/redis/.gitkeep | 0 outline/dfwebos-app.yml | 67 ++ outline/docker-compose.yml | 80 +++ outline/exports.sh | 1 + outline/hooks/pre-start | 16 + outline/settings.env | 6 + overseerr/data/config/.gitkeep | 0 overseerr/dfwebos-app.yml | 52 ++ overseerr/docker-compose.yml | 17 + owncloud/data/app/.gitkeep | 1 + owncloud/data/config/.gitkeep | 1 + owncloud/data/db/.gitkeep | 1 + owncloud/data/redis/.gitkeep | 1 + owncloud/dfwebos-app.yml | 47 ++ owncloud/docker-compose.yml | 71 ++ owncloud/exports.sh | 2 + palmr/data/.gitkeep | 0 palmr/dfwebos-app.yml | 49 ++ palmr/docker-compose.yml | 18 + paperless/data/data/.gitkeep | 0 paperless/data/media/.gitkeep | 0 paperless/data/pgdata/.gitkeep | 0 paperless/data/redisdata/.gitkeep | 0 paperless/dfwebos-app.yml | 53 ++ paperless/docker-compose.yml | 62 ++ paperless/exports.sh | 32 + papra/data/.gitkeep | 0 papra/dfwebos-app.yml | 40 ++ papra/docker-compose.yml | 16 + passky-client/dfwebos-app.yml | 35 + passky-client/docker-compose.yml | 13 + passky-server/data/passky/.gitkeep | 0 passky-server/dfwebos-app.yml | 37 + passky-server/docker-compose.yml | 63 ++ pastefy/data/db/.gitkeep | 1 + pastefy/dfwebos-app.yml | 39 ++ pastefy/docker-compose.yml | 38 + peerswap/data/.gitkeep | 0 peerswap/dfwebos-app.yml | 28 + peerswap/docker-compose.yml | 38 + peerswap/exports.sh | 1 + penpot/data/assets/.gitkeep | 0 penpot/data/postgres/.gitkeep | 0 penpot/dfwebos-app.yml | 34 + penpot/docker-compose.yml | 74 ++ penpot/exports.sh | 1 + perplexica/data/app_data/.gitkeep | 1 + perplexica/data/uploads/.gitkeep | 1 + perplexica/dfwebos-app.yml | 48 ++ perplexica/docker-compose.yml | 14 + photoprism/database/.gitkeep | 0 photoprism/dfwebos-app.yml | 66 ++ photoprism/docker-compose.yml | 48 ++ photoprism/originals/.gitkeep | 0 photoprism/storage/.gitkeep | 0 pi-hole/data/dnsmasq/.gitkeep | 0 pi-hole/data/pihole/.gitkeep | 0 pi-hole/dfwebos-app.yml | 52 ++ pi-hole/docker-compose.yml | 20 + pi-hole/hooks/pre-install | 33 + picsur/data/db/.gitkeep | 1 + picsur/dfwebos-app.yml | 35 + picsur/docker-compose.yml | 45 ++ pinchflat/data/config/.gitkeep | 0 pinchflat/dfwebos-app.yml | 52 ++ pinchflat/docker-compose.yml | 14 + pingvin-share/data/backend/.gitkeep | 0 pingvin-share/data/images/.gitkeep | 0 pingvin-share/dfwebos-app.yml | 44 ++ pingvin-share/docker-compose.yml | 16 + pingvin-share/hooks/pre-start | 9 + plane/config/nginx.conf | 64 ++ plane/data/db/.gitkeep | 0 plane/data/rabbitmq/.gitkeep | 0 plane/data/redis/.gitkeep | 0 plane/data/uploads/.gitkeep | 0 plane/dfwebos-app.yml | 39 ++ plane/docker-compose.yml | 222 ++++++ plane/hooks/pre-start | 101 +++ plane/settings.env | 10 + plausible/clickhouse/clickhouse-config.xml | 23 + .../clickhouse/clickhouse-user-config.xml | 8 + plausible/db-data/.gitkeep | 0 plausible/dfwebos-app.yml | 40 ++ plausible/docker-compose.yml | 45 ++ plausible/event-data/.gitkeep | 0 plausible/event-logs/.gitkeep | 0 plausible/exports.sh | 2 + plex/data/config/.gitkeep | 0 plex/data/transcode/.gitkeep | 0 plex/dfwebos-app.yml | 49 ++ plex/docker-compose.yml | 31 + plex/exports.sh | 6 + pocketbase/data/data/.gitkeep | 0 pocketbase/data/hooks/.gitkeep | 0 .../data/migrations/initial_superuser.js | 22 + pocketbase/data/public/.gitkeep | 0 pocketbase/dfwebos-app.yml | 59 ++ pocketbase/docker-compose.yml | 20 + portainer/default-password | 1 + portainer/dfwebos-app.yml | 71 ++ portainer/docker-compose.yml | 36 + portainer/entrypoint.sh | 47 ++ portainer/hooks/pre-start | 7 + poznote/data/.gitkeep | 1 + poznote/dfwebos-app.yml | 48 ++ poznote/docker-compose.yml | 35 + privatebin/data/privatebin-data/.gitkeep | 1 + privatebin/dfwebos-app.yml | 67 ++ privatebin/docker-compose.yml | 16 + prowlarr/data/config/.gitkeep | 0 prowlarr/dfwebos-app.yml | 57 ++ prowlarr/docker-compose.yml | 52 ++ prowlarr/exports.sh | 18 + public-pool-web/data/postgres/.gitkeep | 0 public-pool-web/data/redis/.gitkeep | 0 public-pool-web/dfwebos-app.yml | 48 ++ public-pool-web/docker-compose.yml | 58 ++ public-pool-web/exports.sh | 9 + public-pool/data/database/.gitkeep | 0 public-pool/data/proxy/nginx.conf | 11 + public-pool/dfwebos-app.yml | 53 ++ public-pool/docker-compose.yml | 54 ++ pyload-ng/data/config/.gitkeep | 0 pyload-ng/dfwebos-app.yml | 32 + pyload-ng/docker-compose.yml | 17 + qbittorrent/data/config/.gitkeep | 0 qbittorrent/dfwebos-app.yml | 56 ++ qbittorrent/docker-compose.yml | 20 + qbittorrent/hooks/post-start | 117 ++++ radarr/data/config/.gitkeep | 0 radarr/dfwebos-app.yml | 47 ++ radarr/docker-compose.yml | 41 ++ radarr/exports.sh | 13 + radarr/hooks/post-install | 24 + readarr/data/config/.gitkeep | 0 readarr/dfwebos-app.yml | 52 ++ readarr/docker-compose.yml | 41 ++ readarr/exports.sh | 13 + readarr/hooks/post-install | 24 + readur/data/postgres_data/.gitkeep | 1 + readur/data/uploads/.gitkeep | 1 + readur/data/watch/.gitkeep | 1 + readur/dfwebos-app.yml | 46 ++ readur/docker-compose.yml | 57 ++ remmina/data/config/.gitkeep | 0 remmina/dfwebos-app.yml | 51 ++ remmina/docker-compose.yml | 16 + restreamer/config/.gitkeep | 1 + restreamer/data/.gitkeep | 1 + restreamer/dfwebos-app.yml | 35 + restreamer/docker-compose.yml | 22 + ride-the-lightning/boltz/.gitkeep | 0 ride-the-lightning/dfwebos-app.yml | 51 ++ ride-the-lightning/docker-compose.yml | 54 ++ ride-the-lightning/exports.sh | 17 + ride-the-lightning/rtl/.gitkeep | 0 ride-the-lightning/rtl/RTL-Config.json | 22 + ride-the-lightning/rtl/entrypoint.sh | 10 + robosats/dfwebos-app.yml | 85 +++ robosats/docker-compose.yml | 16 + romm/data/assets/.gitkeep | 0 romm/data/config/config.yml | 44 ++ romm/data/db/.gitkeep | 0 romm/data/library/.gitkeep | 0 romm/data/redis/.gitkeep | 0 romm/data/resources/.gitkeep | 0 romm/dfwebos-app.yml | 48 ++ romm/docker-compose.yml | 51 ++ romm/hooks/pre-start | 84 +++ rotki/data/data/.gitkeep | 0 rotki/data/logs/.gitkeep | 0 rotki/dfwebos-app.yml | 60 ++ rotki/docker-compose.yml | 16 + route96/data/config.yaml | 11 + route96/data/db/.gitkeep | 0 route96/data/uploads/.gitkeep | 0 route96/dfwebos-app.yml | 46 ++ route96/docker-compose.yml | 33 + rustdesk-server/data/hbbr/.gitkeep | 1 + rustdesk-server/data/hbbs/.gitkeep | 1 + rustdesk-server/data/www/favicon.png | Bin 0 -> 875 bytes rustdesk-server/data/www/index.html | 359 ++++++++++ rustdesk-server/data/www/logo.png | Bin 0 -> 21228 bytes rustdesk-server/dfwebos-app.yml | 42 ++ rustdesk-server/docker-compose.yml | 41 ++ rustdesk-server/hooks/post-start | 21 + rusty-kaspad/data/.gitkeep | 1 + rusty-kaspad/data/app/.gitkeep | 1 + rusty-kaspad/dfwebos-app.yml | 50 ++ rusty-kaspad/docker-compose.yml | 26 + sabnzbd/data/config/.gitkeep | 0 sabnzbd/dfwebos-app.yml | 49 ++ sabnzbd/docker-compose.yml | 22 + sabnzbd/hooks/post-install | 131 ++++ saifa/data/app/.gitkeep | 0 saifa/data/redis_data/.gitkeep | 0 saifa/dfwebos-app.yml | 37 + saifa/docker-compose.yml | 40 ++ samba/data/samba/smb.conf | 19 + samba/dfwebos-app.yml | 50 ++ samba/docker-compose.yml | 28 + samourai-server/dfwebos-app.yml | 43 ++ samourai-server/docker-compose.yml | 157 +++++ samourai-server/exports.sh | 16 + samourai-server/hooks/pre-start | 27 + samourai-server/mysql/data/.gitkeep | 0 samourai-server/nginx/connect.conf | 22 + .../nginx/connect/css/normalize.css | 349 +++++++++ samourai-server/nginx/connect/css/style.css | 143 ++++ samourai-server/nginx/connect/img/icon.svg | 19 + samourai-server/nginx/connect/index.html | 98 +++ .../nginx/connect/js/conf.template.js | 7 + .../nginx/connect/js/qrcode.min.js | 2 + samourai-server/nginx/connect/js/script.js | 44 ++ samourai-server/nginx/mainnet.conf | 66 ++ samourai-server/nginx/nginx.conf | 44 ++ samourai-server/nginx/testnet.conf | 71 ++ samourai-server/nginx/wait-for | 79 +++ samourai-server/torrc.template | 7 + samourai-server/whirlpool/.gitkeep | 0 satsale/data/.gitkeep | 0 satsale/dfwebos-app.yml | 38 + satsale/docker-compose.yml | 25 + satwatch/data/db/.gitkeep | 0 satwatch/dfwebos-app.yml | 34 + satwatch/docker-compose.yml | 40 ++ satwatch/exports.yml | 0 satwatch/hooks/pre-start | 17 + scanservjs/data/config/.gitkeep | 0 scanservjs/data/scans/.gitkeep | 0 scanservjs/dfwebos-app.yml | 31 + scanservjs/docker-compose.yml | 19 + seafile/data/db/.gitkeep | 0 seafile/data/seadoc-data/.gitkeep | 0 seafile/data/seafile-data/.gitkeep | 0 seafile/dfwebos-app.yml | 50 ++ seafile/docker-compose.yml | 57 ++ searxng/data/cache/.gitkeep | 0 searxng/data/config/.gitkeep | 0 searxng/data/config/settings.yml | 8 + searxng/dfwebos-app.yml | 41 ++ searxng/docker-compose.yml | 18 + searxng/hooks/pre-start | 26 + shopstr/dfwebos-app.yml | 36 + shopstr/docker-compose.yml | 15 + simple-torrent/data/config/.gitkeep | 0 simple-torrent/data/downloads/.gitkeep | 0 simple-torrent/data/torrents/.gitkeep | 0 simple-torrent/dfwebos-app.yml | 53 ++ simple-torrent/docker-compose.yml | 19 + simple-torrent/hooks/pre-start | 61 ++ slink/data/images/.gitkeep | 1 + slink/data/var/.gitkeep | 1 + slink/dfwebos-app.yml | 49 ++ slink/docker-compose.yml | 26 + snapdrop/data/config/.gitkeep | 0 snapdrop/dfwebos-app.yml | 25 + snapdrop/docker-compose.yml | 16 + snort/dfwebos-app.yml | 74 ++ snort/docker-compose.yml | 11 + snowflake/data/.gitkeep | 0 snowflake/data/index.html | 166 +++++ snowflake/dfwebos-app.yml | 51 ++ snowflake/docker-compose.yml | 23 + snowflake/hooks/pre-start | 188 +++++ solidtime/data/app/.gitkeep | 0 solidtime/data/app/app/.gitkeep | 0 solidtime/data/app/framework/cache/.gitkeep | 0 solidtime/data/app/framework/views/.gitkeep | 0 solidtime/data/app/logs/.gitkeep | 0 solidtime/data/db/.gitkeep | 0 solidtime/dfwebos-app.yml | 55 ++ solidtime/docker-compose.yml | 215 ++++++ solidtime/hooks/post-start | 15 + solidtime/hooks/post-update | 10 + solidtime/hooks/pre-start | 93 +++ solidtime/keys.env | 0 sonarr/data/config/.gitkeep | 0 sonarr/dfwebos-app.yml | 41 ++ sonarr/docker-compose.yml | 41 ++ sonarr/exports.sh | 13 + sonarr/hooks/post-install | 24 + sparkkiosk/data/.gitkeep | 0 sparkkiosk/dfwebos-app.yml | 30 + sparkkiosk/docker-compose.yml | 29 + specter-desktop/data/.gitkeep | 0 specter-desktop/dfwebos-app.yml | 63 ++ specter-desktop/docker-compose.yml | 26 + sphinx-relay/data/.gitkeep | 0 sphinx-relay/dfwebos-app.yml | 48 ++ sphinx-relay/docker-compose.yml | 25 + sphinx-relay/exports.sh | 2 + sqlitebrowser/data/config/.gitkeep | 1 + sqlitebrowser/dfwebos-app.yml | 52 ++ sqlitebrowser/docker-compose.yml | 15 + squeaknode/dfwebos-app.yml | 31 + squeaknode/docker-compose.yml | 58 ++ squeaknode/exports.sh | 7 + squeaknode/hooks/pre-start | 26 + squeaknode/sqk/.gitkeep | 0 squeaknode/torrc.template | 4 + squeakroad/data/.gitkeep | 0 squeakroad/dfwebos-app.yml | 35 + squeakroad/docker-compose.yml | 27 + stalwart/data/.gitkeep | 0 stalwart/dfwebos-app.yml | 70 ++ stalwart/docker-compose.yml | 25 + stalwart/hooks/post-start | 86 +++ stirling-pdf/data/configs/.gitkeep | 0 stirling-pdf/data/logs/.gitkeep | 0 stirling-pdf/data/pipeline/.gitkeep | 0 stirling-pdf/data/tessdata/.gitkeep | 0 stirling-pdf/dfwebos-app.yml | 71 ++ stirling-pdf/docker-compose.yml | 26 + strix/dfwebos-app.yml | 32 + strix/docker-compose.yml | 13 + super-productivity/dfwebos-app.yml | 73 ++ super-productivity/docker-compose.yml | 11 + sure/data/postgres/.gitkeep | 0 sure/data/rails/.gitkeep | 0 sure/data/redis/.gitkeep | 0 sure/dfwebos-app.yml | 38 + sure/docker-compose.yml | 85 +++ suredbits-wallet/data/log/.gitkeep | 0 suredbits-wallet/data/wallet/.gitkeep | 0 suredbits-wallet/dfwebos-app.yml | 33 + suredbits-wallet/docker-compose.yml | 64 ++ suredbits-wallet/exports.sh | 4 + suredbits-wallet/hooks/pre-start | 26 + suredbits-wallet/torrc.template | 3 + swingmusic/data/config/.gitkeep | 1 + swingmusic/data/music/.gitkeep | 1 + swingmusic/dfwebos-app.yml | 44 ++ swingmusic/docker-compose.yml | 19 + synapse/data/synapse/.gitkeep | 0 synapse/dfwebos-app.yml | 54 ++ synapse/docker-compose.yml | 25 + synapse/exports.sh | 2 + syncthing/data/.gitkeep | 0 syncthing/dfwebos-app.yml | 39 ++ syncthing/docker-compose.yml | 21 + tailscale/data/.gitkeep | 0 tailscale/dfwebos-app.yml | 36 + tailscale/docker-compose.yml | 11 + tailscale/exports.sh | 18 + tallycoin-connect/data/.gitkeep | 0 tallycoin-connect/dfwebos-app.yml | 39 ++ tallycoin-connect/docker-compose.yml | 22 + tallycoin-connect/hooks/post-update | 4 + tautulli/dfwebos-app.yml | 48 ++ tautulli/docker-compose.yml | 16 + tdex/caddy-data/Caddyfile | 6 + tdex/dfwebos-app.yml | 57 ++ tdex/docker-compose.yml | 68 ++ tdex/exports.sh | 4 + tdex/hooks/pre-start | 42 ++ tdex/ocean-data/.gitkeep | 0 tdex/tdexd/.gitkeep | 0 tdex/torrc.template | 3 + teamspeak/data/.gitkeep | 0 teamspeak/dfwebos-app.yml | 85 +++ teamspeak/docker-compose.yml | 31 + technitium-dns/data/.gitkeep | 0 technitium-dns/dfwebos-app.yml | 42 ++ technitium-dns/docker-compose.yml | 42 ++ termix/data/.gitkeep | 1 + termix/dfwebos-app.yml | 78 +++ termix/docker-compose.yml | 13 + thelounge/data/.gitkeep | 0 thelounge/dfwebos-app.yml | 32 + thelounge/docker-compose.yml | 16 + thelounge/hooks/pre-start | 58 ++ thinkdashboard/data/.gitkeep | 0 thinkdashboard/dfwebos-app.yml | 35 + thinkdashboard/docker-compose.yml | 15 + threema/dfwebos-app.yml | 37 + threema/docker-compose.yml | 13 + thunderhub/data/thubConfig.yaml | 13 + thunderhub/dfwebos-app.yml | 36 + thunderhub/docker-compose.yml | 24 + tools/translate-hash-comments.js | 259 +++++++ tools/translate-manifests.js | 260 +++++++ torbrowser/config/.gitkeep | 1 + torbrowser/dfwebos-app.yml | 43 ++ torbrowser/docker-compose.yml | 15 + torq/data/passwd | 1 + torq/data/torq/.gitkeep | 0 torq/dfwebos-app.yml | 77 ++ torq/docker-compose.yml | 43 ++ toshi-moto/data/db/diagnostic.data/.gitkeep | 0 toshi-moto/data/db/journal/.gitkeep | 0 toshi-moto/data/proxy/nginx.conf | 36 + toshi-moto/data/server-logs/.gitkeep | 0 toshi-moto/dfwebos-app.yml | 47 ++ toshi-moto/docker-compose.yml | 39 ++ transmission/data/config/.gitkeep | 0 transmission/dfwebos-app.yml | 91 +++ transmission/docker-compose.yml | 27 + trilium-notes/data/.gitkeep | 0 trilium-notes/dfwebos-app.yml | 77 ++ trilium-notes/docker-compose.yml | 16 + trip/data/app/.gitkeep | 1 + trip/dfwebos-app.yml | 46 ++ trip/docker-compose.yml | 15 + tubearchivist/data/cache/.gitkeep | 0 tubearchivist/data/elasticsearch/.gitkeep | 0 tubearchivist/data/media/.gitkeep | 0 tubearchivist/data/redis/.gitkeep | 0 tubearchivist/dfwebos-app.yml | 48 ++ tubearchivist/docker-compose.yml | 53 ++ twenty/data/db-data/.gitkeep | 1 + twenty/data/docker-data/.gitkeep | 1 + twenty/data/redis/.gitkeep | 1 + twenty/data/server-local-data/.gitkeep | 1 + twenty/dfwebos-app.yml | 59 ++ twenty/docker-compose.yml | 76 ++ twenty/hooks/post-update | 14 + umami/data/db/.gitkeep | 0 umami/dfwebos-app.yml | 67 ++ umami/docker-compose.yml | 27 + uptime-kuma/data/.gitkeep | 0 uptime-kuma/data/uptime-kuma/.gitkeep | 0 uptime-kuma/dfwebos-app.yml | 60 ++ uptime-kuma/docker-compose.yml | 15 + urbit-bitcoin-connector/dfwebos-app.yml | 39 ++ urbit-bitcoin-connector/docker-compose.yml | 27 + urbit-bitcoin-connector/exports.sh | 3 + urbit/dfwebos-app.yml | 44 ++ urbit/docker-compose.yml | 17 + usocial/data/.gitkeep | 0 usocial/dfwebos-app.yml | 39 ++ usocial/docker-compose.yml | 32 + vaultwarden/data/.gitkeep | 0 vaultwarden/dfwebos-app.yml | 69 ++ vaultwarden/docker-compose.yml | 18 + vert/dfwebos-app.yml | 34 + vert/docker-compose.yml | 15 + vikunja/data/db/.gitkeep | 0 vikunja/data/files/.gitkeep | 0 vikunja/dfwebos-app.yml | 49 ++ vikunja/docker-compose.yml | 41 ++ wanderer/data/data.ms/.gitkeep | 1 + wanderer/data/pb_data/.gitkeep | 1 + wanderer/data/uploads/.gitkeep | 1 + wanderer/dfwebos-app.yml | 50 ++ wanderer/docker-compose.yml | 62 ++ wanderer/exports.sh | 1 + watch-your-lan/data/WatchYourLAN/.gitkeep | 0 watch-your-lan/dfwebos-app.yml | 36 + watch-your-lan/docker-compose.yml | 20 + wavelog/data/config/.gitkeep | 0 wavelog/data/db/.gitkeep | 0 wavelog/data/uploads/.gitkeep | 0 wavelog/data/userdata/.gitkeep | 0 wavelog/dfwebos-app.yml | 58 ++ wavelog/docker-compose.yml | 29 + wavelog/hooks/pre-start | 28 + webcheck/data/.gitkeep | 1 + webcheck/dfwebos-app.yml | 47 ++ webcheck/docker-compose.yml | 12 + wger/config/nginx.conf | 27 + wger/config/prod.env | 97 +++ wger/data/celery-beat/.gitkeep | 1 + wger/data/media/.gitkeep | 1 + wger/data/postgres-data/.gitkeep | 1 + wger/data/redis-data/.gitkeep | 1 + wger/data/static/.gitkeep | 1 + wger/dfwebos-app.yml | 57 ++ wger/docker-compose.yml | 113 +++ wger/exports.sh | 16 + whoogle-search/dfwebos-app.yml | 83 +++ whoogle-search/docker-compose.yml | 16 + wikijs/config/.gitkeep | 0 wikijs/data/.gitkeep | 0 wikijs/dfwebos-app.yml | 39 ++ wikijs/docker-compose.yml | 17 + wikijs/hooks/pre-start | 15 + wikijs/repo/.gitkeep | 0 wingfit/data/.gitkeep | 1 + wingfit/dfwebos-app.yml | 37 + wingfit/docker-compose.yml | 14 + wireguard/data/wireguard/.gitkeep | 0 wireguard/dfwebos-app.yml | 61 ++ wireguard/docker-compose.yml | 24 + wizarr/data/.gitkeep | 1 + wizarr/dfwebos-app.yml | 41 ++ wizarr/docker-compose.yml | 18 + woofbot-lnd/data/db/diagnostic.data/.gitkeep | 0 woofbot-lnd/data/db/journal/.gitkeep | 0 woofbot-lnd/data/server-logs/.gitkeep | 0 woofbot-lnd/dfwebos-app.yml | 36 + woofbot-lnd/docker-compose.yml | 43 ++ woofbot/data/db/diagnostic.data/.gitkeep | 0 woofbot/data/db/journal/.gitkeep | 0 woofbot/data/server-logs/.gitkeep | 0 woofbot/dfwebos-app.yml | 33 + woofbot/docker-compose.yml | 37 + woofbot/hooks/pre-start | 10 + wordpress/data/db/.gitkeep | 0 wordpress/data/wordpress/.gitkeep | 0 wordpress/dfwebos-app.yml | 51 ++ wordpress/docker-compose.yml | 33 + yamtrack/data/db/.gitkeep | 1 + yamtrack/data/redis/.gitkeep | 1 + yamtrack/dfwebos-app.yml | 54 ++ yamtrack/docker-compose.yml | 29 + yucca/data/data/.gitkeep | 0 yucca/data/ffmpeg/.gitkeep | 0 yucca/dfwebos-app.yml | 30 + yucca/docker-compose.yml | 23 + zabbix/data/postgres/.gitkeep | 0 zabbix/dfwebos-app.yml | 59 ++ zabbix/docker-compose.yml | 56 ++ zen/data/app/.gitkeep | 1 + zen/data/images/.gitkeep | 1 + zen/dfwebos-app.yml | 57 ++ zen/docker-compose.yml | 15 + zeronote/dfwebos-app.yml | 25 + zeronote/docker-compose.yml | 14 + zigbee2mqtt/data/.gitkeep | 1 + zigbee2mqtt/dfwebos-app.yml | 58 ++ zigbee2mqtt/docker-compose.yml | 19 + zoraxy/data/config/.gitkeep | 1 + zoraxy/dfwebos-app.yml | 76 ++ zoraxy/docker-compose.yml | 22 + 1406 files changed, 38483 insertions(+), 3 deletions(-) create mode 100644 activepieces/data/app/cache/.gitkeep create mode 100644 activepieces/data/db/.gitkeep create mode 100644 activepieces/data/redis/.gitkeep create mode 100644 activepieces/dfwebos-app.yml create mode 100644 activepieces/docker-compose.yml create mode 100644 activepieces/exports.sh create mode 100644 adguard-home/data/conf/.gitkeep create mode 100644 adguard-home/data/work/.gitkeep create mode 100644 adguard-home/dfwebos-app.yml create mode 100644 adguard-home/docker-compose.yml create mode 100644 adventurelog/data/app/.gitkeep create mode 100644 adventurelog/data/db/.gitkeep create mode 100644 adventurelog/dfwebos-app.yml create mode 100644 adventurelog/docker-compose.yml create mode 100755 adventurelog/hooks/pre-start create mode 100644 affine/data/config/.gitkeep create mode 100644 affine/data/storage/blob/.gitkeep create mode 100644 affine/data/storage/postgres/.gitkeep create mode 100644 affine/data/storage/redis/.gitkeep create mode 100644 affine/dfwebos-app.yml create mode 100644 affine/docker-compose.yml create mode 100644 agent-zero/data/.gitkeep create mode 100644 agent-zero/dfwebos-app.yml create mode 100644 agent-zero/docker-compose.yml create mode 100644 agent-zero/exports.sh create mode 100755 agora/data/entrypoint.sh create mode 100644 agora/data/www/admin/index.html create mode 100644 agora/database/filebrowser.db create mode 100644 agora/dfwebos-app.yml create mode 100644 agora/docker-compose.yml create mode 100644 agora/exports.sh create mode 100644 agora/files/.gitkeep create mode 100644 agora/nginx/nginx.conf.template create mode 100644 airtrail/data/db/.gitkeep create mode 100644 airtrail/data/uploads/.gitkeep create mode 100644 airtrail/dfwebos-app.yml create mode 100644 airtrail/docker-compose.yml create mode 100644 akaunting/db/.gitkeep create mode 100644 akaunting/dfwebos-app.yml create mode 100644 akaunting/docker-compose.yml create mode 100644 alby-nostr-wallet-connect/data/.gitkeep create mode 100644 alby-nostr-wallet-connect/dfwebos-app.yml create mode 100644 alby-nostr-wallet-connect/docker-compose.yml create mode 100644 albyhub/data/.gitkeep create mode 100644 albyhub/dfwebos-app.yml create mode 100644 albyhub/docker-compose.yml create mode 100644 albyhub/exports.sh create mode 100644 appsmith/data/app/.gitkeep create mode 100644 appsmith/dfwebos-app.yml create mode 100644 appsmith/docker-compose.yml create mode 100644 arcane/data/app_data/.gitkeep create mode 100644 arcane/data/docker/.gitkeep create mode 100644 arcane/data/projects/.gitkeep create mode 100644 arcane/dfwebos-app.yml create mode 100644 arcane/docker-compose.yml create mode 100755 arcane/entrypoint.sh create mode 100755 arcane/hooks/pre-start create mode 100644 audiobookshelf/data/config/.gitkeep create mode 100644 audiobookshelf/data/metadata/.gitkeep create mode 100644 audiobookshelf/dfwebos-app.yml create mode 100644 audiobookshelf/docker-compose.yml create mode 100644 audiobookshelf/exports.sh create mode 100644 autobrr/data/.gitkeep create mode 100644 autobrr/dfwebos-app.yml create mode 100644 autobrr/docker-compose.yml create mode 100644 back-that-mac-up/data/opt-timemachine/.gitkeep create mode 100644 back-that-mac-up/data/run-samba/.gitkeep create mode 100644 back-that-mac-up/data/var-cache-samba/.gitkeep create mode 100644 back-that-mac-up/data/var-lib-samba/.gitkeep create mode 100644 back-that-mac-up/dfwebos-app.yml create mode 100644 back-that-mac-up/docker-compose.yml create mode 100644 baikal/data/Specific/.gitkeep create mode 100644 baikal/data/config/.gitkeep create mode 100644 baikal/dfwebos-app.yml create mode 100644 baikal/docker-compose.yml create mode 100644 bassin/data/config/ckpool.conf.template create mode 100644 bassin/data/www/.gitkeep create mode 100644 bassin/dfwebos-app.yml create mode 100644 bassin/docker-compose.yml create mode 100755 bassin/hooks/pre-start create mode 100644 bazarr/data/config/.gitkeep create mode 100644 bazarr/dfwebos-app.yml create mode 100644 bazarr/docker-compose.yml create mode 100644 bentopdf/dfwebos-app.yml create mode 100644 bentopdf/docker-compose.yml create mode 100644 bffless/data/config/domain.txt.example create mode 100644 bffless/data/db/init-databases.sql create mode 100644 bffless/data/frontend/.gitkeep create mode 100644 bffless/data/nginx/.gitkeep create mode 100644 bffless/data/postgres/.gitkeep create mode 100644 bffless/data/uploads/.gitkeep create mode 100644 bffless/dfwebos-app.yml create mode 100644 bffless/docker-compose.yml create mode 100644 bitaxe-sentry/data/sentry/.gitkeep create mode 100644 bitaxe-sentry/dfwebos-app.yml create mode 100644 bitaxe-sentry/docker-compose.yml create mode 100644 bitbalance/data/.gitkeep create mode 100644 bitbalance/dfwebos-app.yml create mode 100644 bitbalance/docker-compose.yml create mode 100644 bitcoin-knots/data/app/.gitkeep create mode 100644 bitcoin-knots/data/bitcoin/.gitkeep create mode 100644 bitcoin-knots/data/i2pd/.gitkeep create mode 100644 bitcoin-knots/dfwebos-app.yml create mode 100644 bitcoin-knots/docker-compose.yml create mode 100644 bitcoin-knots/exports.sh create mode 100755 bitcoin-knots/hooks/pre-start create mode 100755 bitcoin-knots/scripts/rpcauth.py create mode 100644 bitcoin-knots/torrc.template create mode 100644 bitcoin-regtest-dashboard/data/bitcoin/.gitkeep create mode 100644 bitcoin-regtest-dashboard/data/electrs/.gitkeep create mode 100644 bitcoin-regtest-dashboard/dfwebos-app.yml create mode 100644 bitcoin-regtest-dashboard/docker-compose.yml create mode 100644 bitcoin/data/app/.gitkeep create mode 100644 bitcoin/data/bitcoin/.gitkeep create mode 100644 bitcoin/data/i2pd/.gitkeep create mode 100644 bitcoin/dfwebos-app.yml create mode 100644 bitcoin/docker-compose.yml create mode 100644 bitcoin/exports.sh create mode 100755 bitcoin/hooks/pre-start create mode 100755 bitcoin/scripts/rpcauth.py create mode 100644 bitcoin/torrc.template create mode 100644 bitfeed/data/.gitkeep create mode 100644 bitfeed/dfwebos-app.yml create mode 100644 bitfeed/docker-compose.yml create mode 100644 bitwatch/data/.gitkeep create mode 100644 bitwatch/dfwebos-app.yml create mode 100644 bitwatch/docker-compose.yml create mode 100644 bitwatch/exports.sh create mode 100644 bleskomat-server/data/.gitkeep create mode 100644 bleskomat-server/data/db/.gitkeep create mode 100644 bleskomat-server/data/web/.gitkeep create mode 100644 bleskomat-server/dfwebos-app.yml create mode 100644 bleskomat-server/docker-compose.yml create mode 100644 blinko/data/app/.gitkeep create mode 100644 blinko/data/db/.gitkeep create mode 100644 blinko/dfwebos-app.yml create mode 100644 blinko/docker-compose.yml create mode 100644 blockstream-blind-oracle/data/.gitkeep create mode 100644 blockstream-blind-oracle/data/pins/.gitkeep create mode 100644 blockstream-blind-oracle/data/server_private_key.key create mode 100644 blockstream-blind-oracle/data/server_public_key.pub create mode 100644 blockstream-blind-oracle/dfwebos-app.yml create mode 100644 blockstream-blind-oracle/docker-compose.yml create mode 100755 blockstream-blind-oracle/exports.sh create mode 100755 blockstream-blind-oracle/hooks/pre-start create mode 100644 blockstream-blind-oracle/torrc.template create mode 100644 bluewallet/data/redis/.gitkeep create mode 100644 bluewallet/dfwebos-app.yml create mode 100644 bluewallet/docker-compose.yml create mode 100644 booklore/data/app/.gitkeep create mode 100644 booklore/data/books/.gitkeep create mode 100644 booklore/data/db/.gitkeep create mode 100644 booklore/dfwebos-app.yml create mode 100644 booklore/docker-compose.yml create mode 100644 btc-rpc-explorer/dfwebos-app.yml create mode 100644 btc-rpc-explorer/docker-compose.yml create mode 100644 btcpay-server/data/btcpay/.gitkeep create mode 100644 btcpay-server/data/nbxplorer/.gitkeep create mode 100644 btcpay-server/data/postgres/.gitkeep create mode 100644 btcpay-server/dfwebos-app.yml create mode 100644 btcpay-server/docker-compose.yml create mode 100644 btctracker/data/.gitkeep create mode 100644 btctracker/dfwebos-app.yml create mode 100644 btctracker/docker-compose.yml create mode 100644 budibase/data/budibase/.gitkeep create mode 100644 budibase/dfwebos-app.yml create mode 100644 budibase/docker-compose.yml create mode 100644 calibre-web/data/books/metadata.db create mode 100644 calibre-web/data/config/.gitkeep create mode 100644 calibre-web/dfwebos-app.yml create mode 100644 calibre-web/docker-compose.yml create mode 100644 campfire/data/app/.gitkeep create mode 100644 campfire/data/redis/.gitkeep create mode 100644 campfire/dfwebos-app.yml create mode 100644 campfire/docker-compose.yml create mode 100644 canary/data/.gitkeep create mode 100644 canary/dfwebos-app.yml create mode 100644 canary/docker-compose.yml create mode 100644 canary/exports.sh create mode 100644 cashu-me/dfwebos-app.yml create mode 100644 cashu-me/docker-compose.yml create mode 100644 chantools/data/.gitkeep create mode 100644 chantools/dfwebos-app.yml create mode 100644 chantools/docker-compose.yml create mode 100644 chatbot-ui/dfwebos-app.yml create mode 100644 chatbot-ui/docker-compose.yml create mode 100644 chatpad-ai/dfwebos-app.yml create mode 100644 chatpad-ai/docker-compose.yml create mode 100644 chromium/data/.gitkeep create mode 100644 chromium/dfwebos-app.yml create mode 100644 chromium/docker-compose.yml create mode 100644 circuitbreaker/data/.gitkeep create mode 100644 circuitbreaker/dfwebos-app.yml create mode 100644 circuitbreaker/docker-compose.yml create mode 100644 cloudflared/.gitattributes create mode 100644 cloudflared/data/.gitkeep create mode 100644 cloudflared/dfwebos-app.yml create mode 100644 cloudflared/docker-compose.yml create mode 100644 cloudflared/exports.sh create mode 100644 cobalt/dfwebos-app.yml create mode 100644 cobalt/docker-compose.yml create mode 100644 code-server/data/.bashrc create mode 100644 code-server/data/.loaders/init.sh create mode 100644 code-server/dfwebos-app.yml create mode 100644 code-server/docker-compose.yml create mode 100644 convertx/data/app/.gitkeep create mode 100644 convertx/dfwebos-app.yml create mode 100644 convertx/docker-compose.yml create mode 100644 copyparty/data/config/config.conf create mode 100644 copyparty/data/cp_data/.gitkeep create mode 100644 copyparty/data/media/.gitkeep create mode 100644 copyparty/data/shared/.gitkeep create mode 100644 copyparty/dfwebos-app.yml create mode 100644 copyparty/docker-compose.yml create mode 100644 core-lightning-rtl/data/boltz/.gitkeep create mode 100644 core-lightning-rtl/data/rtl/RTL-Config.json create mode 100644 core-lightning-rtl/dfwebos-app.yml create mode 100644 core-lightning-rtl/docker-compose.yml create mode 100644 core-lightning-rtl/exports.sh create mode 100755 core-lightning-rtl/hooks/pre-start create mode 100644 core-lightning/data/lightningd/.gitkeep create mode 100644 core-lightning/dfwebos-app.yml create mode 100644 core-lightning/docker-compose.yml create mode 100644 core-lightning/exports.sh create mode 100755 core-lightning/hooks/pre-start create mode 100644 core-lightning/torrc.template create mode 100644 databag/data/databag/.gitkeep create mode 100644 databag/dfwebos-app.yml create mode 100644 databag/docker-compose.yml create mode 100644 datum/data/settings/datum_gateway_config.json create mode 100644 datum/dfwebos-app.yml create mode 100644 datum/docker-compose.yml create mode 100755 datum/hooks/pre-start create mode 100644 dcrpulse/data/.gitkeep create mode 100644 dcrpulse/dfwebos-app.yml create mode 100644 dcrpulse/docker-compose.yml create mode 100644 deepsea/data/config.json create mode 100644 deepsea/dfwebos-app.yml create mode 100644 deepsea/docker-compose.yml create mode 100644 dockge/data/docker/.gitkeep create mode 100644 dockge/data/dockge-data/.gitkeep create mode 100644 dockge/data/dockge-stacks/.gitkeep create mode 100644 dockge/dfwebos-app.yml create mode 100644 dockge/docker-compose.yml create mode 100755 dockge/entrypoint.sh create mode 100644 docmost/data/db_data/.gitkeep create mode 100644 docmost/data/docmost_data/.gitkeep create mode 100644 docmost/data/redis_data/.gitkeep create mode 100644 docmost/dfwebos-app.yml create mode 100644 docmost/docker-compose.yml create mode 100644 docuseal/data/app/.gitkeep create mode 100644 docuseal/data/db/.gitkeep create mode 100644 docuseal/dfwebos-app.yml create mode 100644 docuseal/docker-compose.yml create mode 100644 domain-locker/data/db_data/.gitkeep create mode 100644 domain-locker/dfwebos-app.yml create mode 100644 domain-locker/docker-compose.yml create mode 100644 donetick/data/app/.gitkeep create mode 100644 donetick/data/config/selfhosted.yaml create mode 100644 donetick/dfwebos-app.yml create mode 100644 donetick/docker-compose.yml create mode 100644 downtify/dfwebos-app.yml create mode 100644 downtify/docker-compose.yml create mode 100644 dumbpad/data/.gitkeep create mode 100644 dumbpad/dfwebos-app.yml create mode 100644 dumbpad/docker-compose.yml create mode 100644 duplicati/data/.gitkeep create mode 100644 duplicati/dfwebos-app.yml create mode 100644 duplicati/docker-compose.yml create mode 100644 electrs/data/electrs/.gitkeep create mode 100644 electrs/dfwebos-app.yml create mode 100644 electrs/docker-compose.yml create mode 100644 electrs/exports.sh create mode 100755 electrs/hooks/pre-start create mode 100644 electrs/torrc.template create mode 100644 electrumx/data/electrumx/.gitkeep create mode 100644 electrumx/dfwebos-app.yml create mode 100644 electrumx/docker-compose.yml create mode 100644 electrumx/exports.sh create mode 100755 electrumx/hooks/pre-start create mode 100644 electrumx/torrc.template create mode 100644 element/dfwebos-app.yml create mode 100644 element/docker-compose.yml create mode 100644 elements/data/.gitkeep create mode 100644 elements/dfwebos-app.yml create mode 100644 elements/docker-compose.yml create mode 100644 elements/exports.sh create mode 100755 elements/hooks/pre-start create mode 100644 elements/torrc.template create mode 100644 enclosed/data/.gitkeep create mode 100644 enclosed/dfwebos-app.yml create mode 100644 enclosed/docker-compose.yml create mode 100644 endurain/data/app/activity_files/bulk_import/.gitkeep create mode 100644 endurain/data/app/activity_files/processed/.gitkeep create mode 100644 endurain/data/app/activity_media/.gitkeep create mode 100644 endurain/data/app/server_images/.gitkeep create mode 100644 endurain/data/app/user_images/.gitkeep create mode 100644 endurain/data/db/.gitkeep create mode 100644 endurain/data/logs/.gitkeep create mode 100644 endurain/dfwebos-app.yml create mode 100644 endurain/docker-compose.yml create mode 100755 endurain/hooks/pre-start create mode 100644 endurain/settings.env create mode 100644 esphome/data/.gitkeep create mode 100644 esphome/data/secrets.yaml create mode 100644 esphome/dfwebos-app.yml create mode 100644 esphome/docker-compose.yml create mode 100644 etherpad/data/etherpad-var/.gitkeep create mode 100644 etherpad/data/plugins/.gitkeep create mode 100644 etherpad/data/postgres_data/.gitkeep create mode 100644 etherpad/dfwebos-app.yml create mode 100644 etherpad/docker-compose.yml create mode 100644 excalidraw/data/.gitkeep create mode 100644 excalidraw/dfwebos-app.yml create mode 100644 excalidraw/docker-compose.yml create mode 100755 fedimint-gateway/data/entrypoint.sh create mode 100644 fedimint-gateway/dfwebos-app.yml create mode 100644 fedimint-gateway/docker-compose.yml create mode 100644 fedimintd/data/.gitkeep create mode 100644 fedimintd/dfwebos-app.yml create mode 100644 fedimintd/docker-compose.yml create mode 100644 file-browser/data/filebrowser.db create mode 100644 file-browser/dfwebos-app.yml create mode 100644 file-browser/docker-compose.yml create mode 100644 file-browser/exports.sh create mode 100644 file-drop/dfwebos-app.yml create mode 100644 file-drop/docker-compose.yml create mode 100644 firefly-iii-importer/dfwebos-app.yml create mode 100644 firefly-iii-importer/docker-compose.yml create mode 100755 firefly-iii-importer/hooks/pre-start create mode 100644 firefly-iii/data/logs/.gitkeep create mode 100644 firefly-iii/data/mysql/.gitkeep create mode 100644 firefly-iii/data/upload/.gitkeep create mode 100644 firefly-iii/dfwebos-app.yml create mode 100644 firefly-iii/docker-compose.yml create mode 100644 firefly-iii/exports.sh create mode 100755 firefly-iii/hooks/pre-start create mode 100644 firefox/data/config/.gitkeep create mode 100644 firefox/dfwebos-app.yml create mode 100644 firefox/docker-compose.yml create mode 100644 fizzy/data/app/.gitkeep create mode 100644 fizzy/dfwebos-app.yml create mode 100644 fizzy/docker-compose.yml create mode 100644 flaresolverr/dfwebos-app.yml create mode 100644 flaresolverr/docker-compose.yml create mode 100644 flatnotes/data/.gitkeep create mode 100644 flatnotes/dfwebos-app.yml create mode 100644 flatnotes/docker-compose.yml create mode 100644 forgejo/data/db/.gitkeep create mode 100644 forgejo/data/forgejo/config/.gitkeep create mode 100644 forgejo/data/forgejo/data/.gitkeep create mode 100644 forgejo/dfwebos-app.yml create mode 100644 forgejo/docker-compose.yml create mode 100644 forgejo/exports.sh create mode 100644 formicaio/data/formicaio/.gitkeep create mode 100644 formicaio/dfwebos-app.yml create mode 100644 formicaio/docker-compose.yml create mode 100644 fossflow/data/diagrams/.gitkeep create mode 100644 fossflow/dfwebos-app.yml create mode 100644 fossflow/docker-compose.yml create mode 100644 freshrss/data/.gitkeep create mode 100644 freshrss/dfwebos-app.yml create mode 100644 freshrss/docker-compose.yml create mode 100644 frigate/data/config/config.yml create mode 100644 frigate/data/storage/.gitkeep create mode 100644 frigate/dfwebos-app.yml create mode 100644 frigate/docker-compose.yml create mode 100755 frigate/hooks/pre-start create mode 100644 fulcrum/data/fulcrum-logs/.gitkeep create mode 100644 fulcrum/data/fulcrum/.gitkeep create mode 100644 fulcrum/dfwebos-app.yml create mode 100644 fulcrum/docker-compose.yml create mode 100644 fulcrum/exports.sh create mode 100755 fulcrum/hooks/pre-start create mode 100644 fulcrum/torrc.template create mode 100644 ghost/data/content/.gitkeep create mode 100644 ghost/data/db/.gitkeep create mode 100644 ghost/dfwebos-app.yml create mode 100644 ghost/docker-compose.yml create mode 100644 ghostfolio/data/postgres/.gitkeep create mode 100644 ghostfolio/data/redis/.gitkeep create mode 100644 ghostfolio/dfwebos-app.yml create mode 100644 ghostfolio/docker-compose.yml create mode 100644 ghostfolio/exports.sh create mode 100644 gitea-mirror/data/.gitkeep create mode 100644 gitea-mirror/dfwebos-app.yml create mode 100644 gitea-mirror/docker-compose.yml create mode 100644 gitea-mirror/exports.sh create mode 100644 gitea/data/db/.gitkeep create mode 100644 gitea/data/gitea/config/.gitkeep create mode 100644 gitea/data/gitea/data/.gitkeep create mode 100644 gitea/dfwebos-app.yml create mode 100644 gitea/docker-compose.yml create mode 100644 gitea/exports.sh create mode 100644 gitingest/dfwebos-app.yml create mode 100644 gitingest/docker-compose.yml create mode 100644 gitingest/exports.sh create mode 100644 gitlab/data/config/.gitkeep create mode 100644 gitlab/data/data/.gitkeep create mode 100644 gitlab/data/logs/.gitkeep create mode 100644 gitlab/dfwebos-app.yml create mode 100644 gitlab/docker-compose.yml create mode 100755 gitlab/hooks/pre-start create mode 100644 grafana/data/.gitkeep create mode 100644 grafana/dfwebos-app.yml create mode 100644 grafana/docker-compose.yml create mode 100644 habitica/data/db/.gitkeep create mode 100644 habitica/data/dbconf/.gitkeep create mode 100644 habitica/dfwebos-app.yml create mode 100644 habitica/docker-compose.yml create mode 100644 heimdall/config/.gitkeep create mode 100644 heimdall/dfwebos-app.yml create mode 100644 heimdall/docker-compose.yml create mode 100644 helipad/data/.gitkeep create mode 100644 helipad/dfwebos-app.yml create mode 100644 helipad/docker-compose.yml create mode 100644 hermes-agent/data/hermes/.gitkeep create mode 100644 hermes-agent/dfwebos-app.yml create mode 100644 hermes-agent/docker-compose.yml create mode 100644 holesail-switchboard/data/.gitkeep create mode 100644 holesail-switchboard/dfwebos-app.yml create mode 100644 holesail-switchboard/docker-compose.yml create mode 100644 homarr/data/.gitkeep create mode 100644 homarr/dfwebos-app.yml create mode 100644 homarr/docker-compose.yml create mode 100644 home-assistant-fusion-ui/data/fusion/.gitkeep create mode 100644 home-assistant-fusion-ui/dfwebos-app.yml create mode 100644 home-assistant-fusion-ui/docker-compose.yml create mode 100644 home-assistant-fusion-ui/exports.sh create mode 100644 home-assistant/data/.gitkeep create mode 100644 home-assistant/dfwebos-app.yml create mode 100644 home-assistant/docker-compose.yml create mode 100755 home-assistant/hooks/pre-start create mode 100644 homebox/data/.gitkeep create mode 100644 homebox/dfwebos-app.yml create mode 100644 homebox/docker-compose.yml create mode 100644 homebridge/data/homebridge/.gitkeep create mode 100644 homebridge/dfwebos-app.yml create mode 100644 homebridge/docker-compose.yml create mode 100644 homebridge/exports.sh create mode 100644 homehub/data/app_data/.gitkeep create mode 100644 homehub/data/config/config.yml create mode 100644 homehub/data/media/.gitkeep create mode 100644 homehub/data/pdfs/.gitkeep create mode 100644 homehub/data/uploads/.gitkeep create mode 100644 homehub/dfwebos-app.yml create mode 100644 homehub/docker-compose.yml create mode 100644 hortusfox/data/backup/.gitkeep create mode 100644 hortusfox/data/db_data/.gitkeep create mode 100644 hortusfox/data/images/.gitkeep create mode 100644 hortusfox/data/logs/.gitkeep create mode 100644 hortusfox/data/migrate/.gitkeep create mode 100644 hortusfox/data/themes/.gitkeep create mode 100644 hortusfox/dfwebos-app.yml create mode 100644 hortusfox/docker-compose.yml create mode 100644 immich/data/model-cache/.gitkeep create mode 100644 immich/data/postgres/.gitkeep create mode 100644 immich/data/redis/.gitkeep create mode 100644 immich/data/upload/.gitkeep create mode 100644 immich/dfwebos-app.yml create mode 100644 immich/docker-compose.yml create mode 100755 immich/hooks/pre-start create mode 100644 influxdb/data/chronograf/.gitkeep create mode 100644 influxdb/data/influxdb/.gitkeep create mode 100644 influxdb/dfwebos-app.yml create mode 100644 influxdb/docker-compose.yml create mode 100755 influxdb/hooks/pre-start create mode 100644 influxdb2/data/config/.gitkeep create mode 100644 influxdb2/data/data/.gitkeep create mode 100644 influxdb2/dfwebos-app.yml create mode 100644 influxdb2/docker-compose.yml create mode 100644 invidious/data/companioncache/.gitkeep create mode 100644 invidious/data/db/.gitkeep create mode 100644 invidious/dfwebos-app.yml create mode 100644 invidious/docker-compose.yml create mode 100644 invidious/exports.sh create mode 100755 invidious/hooks/pre-start create mode 100644 invio/data/.gitkeep create mode 100644 invio/dfwebos-app.yml create mode 100644 invio/docker-compose.yml create mode 100644 invoice-ninja/config/nginx.conf create mode 100644 invoice-ninja/data/db/.gitkeep create mode 100644 invoice-ninja/data/public/.gitkeep create mode 100644 invoice-ninja/data/redis/.gitkeep create mode 100644 invoice-ninja/data/storage/.gitkeep create mode 100644 invoice-ninja/dfwebos-app.yml create mode 100644 invoice-ninja/docker-compose.yml create mode 100644 invoice-ninja/exports.sh create mode 100755 invoice-ninja/hooks/pre-start create mode 100644 ipfs-podcasting/cfg/.gitkeep create mode 100644 ipfs-podcasting/dfwebos-app.yml create mode 100644 ipfs-podcasting/docker-compose.yml create mode 100644 ipfs-podcasting/ipfs/.gitkeep create mode 100644 itchysats/data/.gitkeep create mode 100644 itchysats/dfwebos-app.yml create mode 100644 itchysats/docker-compose.yml create mode 100644 ittools/dfwebos-app.yml create mode 100644 ittools/docker-compose.yml create mode 100644 jackett/data/.gitkeep create mode 100644 jackett/dfwebos-app.yml create mode 100644 jackett/docker-compose.yml create mode 100644 jam/data/joinmarket/.gitkeep create mode 100644 jam/dfwebos-app.yml create mode 100644 jam/docker-compose.yml create mode 100644 jellyseerr/data/config/.gitkeep create mode 100644 jellyseerr/dfwebos-app.yml create mode 100644 jellyseerr/docker-compose.yml create mode 100755 jellyseerr/hooks/pre-start create mode 100644 jotty/data/app/.gitkeep create mode 100644 jotty/data/cache/.gitkeep create mode 100644 jotty/data/config/.gitkeep create mode 100644 jotty/dfwebos-app.yml create mode 100644 jotty/docker-compose.yml create mode 100644 jupyterlab/data/.gitkeep create mode 100644 jupyterlab/dfwebos-app.yml create mode 100644 jupyterlab/docker-compose.yml create mode 100644 just-download/data/config/.gitkeep create mode 100644 just-download/dfwebos-app.yml create mode 100644 just-download/docker-compose.yml create mode 100644 kan/data/db/.gitkeep create mode 100644 kan/dfwebos-app.yml create mode 100644 kan/docker-compose.yml create mode 100644 karakeep/data/karakeep_data/.gitkeep create mode 100644 karakeep/data/meilisearch_data/.gitkeep create mode 100644 karakeep/dfwebos-app.yml create mode 100644 karakeep/docker-compose.yml create mode 100644 karakeep/settings.env create mode 100644 kimai/data/app/plugins/.gitkeep create mode 100644 kimai/data/db/.gitkeep create mode 100644 kimai/dfwebos-app.yml create mode 100644 kimai/docker-compose.yml create mode 100644 kitchenowl/data/kitchenowl_db/.gitkeep create mode 100644 kitchenowl/data/kitchenowl_files/.gitkeep create mode 100644 kitchenowl/dfwebos-app.yml create mode 100644 kitchenowl/docker-compose.yml create mode 100644 kiwix/data/.gitkeep create mode 100644 kiwix/dfwebos-app.yml create mode 100644 kiwix/docker-compose.yml create mode 100644 kokoro/dfwebos-app.yml create mode 100644 kokoro/docker-compose.yml create mode 100644 kollider/data/cache/images/.gitkeep create mode 100644 kollider/data/logs/.gitkeep create mode 100644 kollider/dfwebos-app.yml create mode 100644 kollider/docker-compose.yml create mode 100644 kollider/exports.sh create mode 100644 komodo/data/core/.gitkeep create mode 100644 komodo/data/docker/.gitkeep create mode 100644 komodo/data/ferretdb/.gitkeep create mode 100644 komodo/data/keys/.gitkeep create mode 100644 komodo/data/periphery/.gitkeep create mode 100644 komodo/data/postgres/.gitkeep create mode 100644 komodo/dfwebos-app.yml create mode 100644 komodo/docker-compose.yml create mode 100755 komodo/entrypoint.sh create mode 100755 komodo/hooks/pre-start create mode 100644 komodo/settings.env create mode 100644 krystal-bull/data/log/.gitkeep create mode 100644 krystal-bull/data/oracleserver/.gitkeep create mode 100644 krystal-bull/dfwebos-app.yml create mode 100644 krystal-bull/docker-compose.yml create mode 100644 libre-relay/data/app/.gitkeep create mode 100644 libre-relay/data/bitcoin/.gitkeep create mode 100644 libre-relay/data/i2pd/.gitkeep create mode 100644 libre-relay/dfwebos-app.yml create mode 100644 libre-relay/docker-compose.yml create mode 100644 libre-relay/exports.sh create mode 100755 libre-relay/hooks/pre-start create mode 100755 libre-relay/scripts/rpcauth.py create mode 100644 libre-relay/torrc.template create mode 100644 librechat/.env create mode 100644 librechat/data/api/images/.gitkeep create mode 100644 librechat/data/api/librechat.yaml create mode 100644 librechat/data/api/logs/.gitkeep create mode 100644 librechat/data/api/uploads/.gitkeep create mode 100644 librechat/data/db/.gitkeep create mode 100644 librechat/data/meilisearch/.gitkeep create mode 100644 librechat/data/vectordb/.gitkeep create mode 100644 librechat/dfwebos-app.yml create mode 100644 librechat/docker-compose.yml create mode 100755 librechat/hooks/pre-start create mode 100644 libreddit/dfwebos-app.yml create mode 100644 libreddit/docker-compose.yml create mode 100644 libreoffice/data/config/.gitkeep create mode 100644 libreoffice/dfwebos-app.yml create mode 100644 libreoffice/docker-compose.yml create mode 100644 librephotos/data/cache/.gitkeep create mode 100644 librephotos/data/db/.gitkeep create mode 100644 librephotos/data/logs/.gitkeep create mode 100644 librephotos/data/photos/.gitkeep create mode 100644 librephotos/data/protected_media/.gitkeep create mode 100644 librephotos/dfwebos-app.yml create mode 100644 librephotos/docker-compose.yml create mode 100644 librespeed/data/config/.gitkeep create mode 100644 librespeed/dfwebos-app.yml create mode 100644 librespeed/docker-compose.yml create mode 100755 librespeed/hooks/post-update create mode 100644 libretranslate/data/api_keys/.gitkeep create mode 100644 libretranslate/data/models/.gitkeep create mode 100644 libretranslate/dfwebos-app.yml create mode 100644 libretranslate/docker-compose.yml create mode 100755 libretranslate/hooks/pre-start create mode 100644 lidarr/data/config/.gitkeep create mode 100644 lidarr/dfwebos-app.yml create mode 100644 lidarr/docker-compose.yml create mode 100644 lidarr/exports.sh create mode 100755 lidarr/hooks/post-install create mode 100644 lightning-shell/data/.gitkeep create mode 100644 lightning-shell/dfwebos-app.yml create mode 100644 lightning-shell/docker-compose.yml create mode 100644 lightning-terminal/data/.gitkeep create mode 100644 lightning-terminal/dfwebos-app.yml create mode 100644 lightning-terminal/docker-compose.yml create mode 100644 lightning/data/lightning/.gitkeep create mode 100644 lightning/data/lnd/.gitkeep create mode 100644 lightning/dfwebos-app.yml create mode 100644 lightning/docker-compose.yml create mode 100644 lightning/exports.sh create mode 100755 lightning/hooks/pre-start create mode 100644 lightning/torrc.template create mode 100644 linkstack/data/.gitkeep create mode 100644 linkstack/dfwebos-app.yml create mode 100644 linkstack/docker-compose.yml create mode 100644 linkwarden/data/app/.gitkeep create mode 100644 linkwarden/data/db/.gitkeep create mode 100644 linkwarden/dfwebos-app.yml create mode 100644 linkwarden/docker-compose.yml create mode 100644 llama-gpt/dfwebos-app.yml create mode 100644 llama-gpt/docker-compose.yml create mode 100755 llama-gpt/hooks/pre-install create mode 100644 ln-visualizer/dfwebos-app.yml create mode 100644 ln-visualizer/docker-compose.yml create mode 100644 lnbits-holesail-proxy/data/.gitkeep create mode 100644 lnbits-holesail-proxy/dfwebos-app.yml create mode 100644 lnbits-holesail-proxy/docker-compose.yml create mode 100644 lnbits/data/.gitkeep create mode 100644 lnbits/dfwebos-app.yml create mode 100644 lnbits/docker-compose.yml create mode 100644 lndboss/.bosgui/.env create mode 100644 lndboss/dfwebos-app.yml create mode 100644 lndboss/docker-compose.yml create mode 100644 lndg/data/db/.gitkeep create mode 100644 lndg/data/logs/lndg-controller.log create mode 100644 lndg/dfwebos-app.yml create mode 100644 lndg/docker-compose.yml create mode 100644 lndg/exports.sh create mode 100755 lndg/hooks/pre-start create mode 100644 lnmarkets/dfwebos-app.yml create mode 100644 lnmarkets/docker-compose.yml create mode 100644 lnmarkets/exports.sh create mode 100644 lnplus/dfwebos-app.yml create mode 100644 lnplus/docker-compose.yml create mode 100644 lobe-chat/bucket.config.json create mode 100644 lobe-chat/data/db/.gitkeep create mode 100644 lobe-chat/data/redis/.gitkeep create mode 100644 lobe-chat/data/rustfs-logs/.gitkeep create mode 100644 lobe-chat/data/rustfs/.gitkeep create mode 100644 lobe-chat/data/searxng/settings.yml create mode 100644 lobe-chat/dfwebos-app.yml create mode 100644 lobe-chat/docker-compose.yml create mode 100755 lobe-chat/hooks/pre-start create mode 100644 localai/data/images/.gitkeep create mode 100644 localai/data/models/.gitkeep create mode 100644 localai/dfwebos-app.yml create mode 100644 localai/docker-compose.yml create mode 100644 lubelogger/data/app/.gitkeep create mode 100644 lubelogger/data/keys/.gitkeep create mode 100644 lubelogger/dfwebos-app.yml create mode 100644 lubelogger/docker-compose.yml create mode 100644 lunalytics/data/logs/.gitkeep create mode 100644 lunalytics/data/lunalytics_data/.gitkeep create mode 100644 lunalytics/dfwebos-app.yml create mode 100644 lunalytics/docker-compose.yml create mode 100644 mailarchiver/data/appsettings.json create mode 100644 mailarchiver/data/database/.gitignore create mode 100644 mailarchiver/dfwebos-app.yml create mode 100644 mailarchiver/docker-compose.yml create mode 100644 mainsail/data/config.json create mode 100644 mainsail/dfwebos-app.yml create mode 100644 mainsail/docker-compose.yml create mode 100644 matter-server/data/.gitkeep create mode 100644 matter-server/dfwebos-app.yml create mode 100644 matter-server/docker-compose.yml create mode 100644 mattermost/data/app/mattermost/client-plugins/.gitkeep create mode 100644 mattermost/data/app/mattermost/config/.gitkeep create mode 100644 mattermost/data/app/mattermost/data/.gitkeep create mode 100644 mattermost/data/app/mattermost/logs/.gitkeep create mode 100644 mattermost/data/app/mattermost/plugins/.gitkeep create mode 100644 mattermost/data/db/.gitkeep create mode 100644 mattermost/dfwebos-app.yml create mode 100644 mattermost/docker-compose.yml create mode 100644 maybe/data/postgres/.gitkeep create mode 100644 maybe/data/rails/.gitkeep create mode 100644 maybe/data/redis/.gitkeep create mode 100644 maybe/dfwebos-app.yml create mode 100644 maybe/docker-compose.yml create mode 100755 maybe/hooks/pre-start create mode 100644 mazanoke/dfwebos-app.yml create mode 100644 mazanoke/docker-compose.yml create mode 100644 mealie/data/.gitkeep create mode 100644 mealie/dfwebos-app.yml create mode 100644 mealie/docker-compose.yml create mode 100644 memos/data/.gitkeep create mode 100644 memos/dfwebos-app.yml create mode 100644 memos/docker-compose.yml create mode 100644 mempool/data/.gitkeep create mode 100644 mempool/dfwebos-app.yml create mode 100644 mempool/docker-compose.yml create mode 100644 mempool/exports.sh create mode 100644 mempool/mysql/data/.gitkeep create mode 100644 metube/dfwebos-app.yml create mode 100644 metube/docker-compose.yml create mode 100644 miner-sentinel/data/db/.gitkeep create mode 100644 miner-sentinel/dfwebos-app.yml create mode 100644 miner-sentinel/docker-compose.yml create mode 100644 minio/data/minio/.gitkeep create mode 100644 minio/dfwebos-app.yml create mode 100644 minio/docker-compose.yml create mode 100644 monero/data/app/.gitkeep create mode 100644 monero/data/i2pd/.gitkeep create mode 100644 monero/data/monero/.gitkeep create mode 100644 monero/dfwebos-app.yml create mode 100644 monero/docker-compose.yml create mode 100644 monero/exports.sh create mode 100755 monero/hooks/pre-start create mode 100755 monero/scripts/rpcauth.py create mode 100644 monero/torrc.template create mode 100644 monetr/data/app/.gitkeep create mode 100644 monetr/data/db/.gitkeep create mode 100644 monetr/data/valkey/.gitkeep create mode 100644 monetr/dfwebos-app.yml create mode 100644 monetr/docker-compose.yml create mode 100644 morphos/dfwebos-app.yml create mode 100644 morphos/docker-compose.yml create mode 100644 mosquitto/data/config/mosquitto.conf create mode 100644 mosquitto/data/log/.gitkeep create mode 100644 mosquitto/data/mosquitto/.gitkeep create mode 100644 mosquitto/data/nginx/default.conf create mode 100644 mosquitto/data/www/favicon.png create mode 100644 mosquitto/data/www/index.html create mode 100644 mosquitto/data/www/logo.png create mode 100644 mosquitto/dfwebos-app.yml create mode 100644 mosquitto/docker-compose.yml create mode 100755 mosquitto/hooks/pre-start create mode 100644 mqttx-web/dfwebos-app.yml create mode 100644 mqttx-web/docker-compose.yml create mode 100644 mstream/data/.gitkeep create mode 100644 mstream/dfwebos-app.yml create mode 100644 mstream/docker-compose.yml create mode 100644 music-assistant/data/settings.json create mode 100644 music-assistant/dfwebos-app.yml create mode 100644 music-assistant/docker-compose.yml create mode 100755 music-assistant/hooks/pre-start create mode 100644 myspeed/data/myspeed/.gitkeep create mode 100644 myspeed/dfwebos-app.yml create mode 100644 myspeed/docker-compose.yml create mode 100644 n8n/data/.gitkeep create mode 100644 n8n/dfwebos-app.yml create mode 100644 n8n/docker-compose.yml create mode 100644 navidrome/data/.gitkeep create mode 100644 navidrome/dfwebos-app.yml create mode 100644 navidrome/docker-compose.yml create mode 100755 navidrome/hooks/pre-start create mode 100644 neko/dfwebos-app.yml create mode 100644 neko/docker-compose.yml create mode 100644 netbird/data/app_data/.gitkeep create mode 100644 netbird/data/www/favicon.png create mode 100644 netbird/data/www/index.html create mode 100644 netbird/data/www/logo.png create mode 100644 netbird/dfwebos-app.yml create mode 100644 netbird/docker-compose.yml create mode 100755 netbird/hooks/post-start create mode 100644 networkingtoolbox/dfwebos-app.yml create mode 100644 networkingtoolbox/docker-compose.yml create mode 100644 nextcloud/data/db/.gitkeep create mode 100644 nextcloud/data/nextcloud/.gitkeep create mode 100644 nextcloud/data/redis/.gitkeep create mode 100644 nextcloud/dfwebos-app.yml create mode 100644 nextcloud/docker-compose.yml create mode 100644 nextcloud/exports.sh create mode 100755 nextcloud/hooks/post-start create mode 100755 nextcloud/hooks/post-update create mode 100755 nextcloud/hooks/pre-start create mode 100644 nginx-proxy-manager/data/letsencrypt/.gitkeep create mode 100644 nginx-proxy-manager/data/npm-data/.gitkeep create mode 100644 nginx-proxy-manager/dfwebos-app.yml create mode 100644 nginx-proxy-manager/docker-compose.yml create mode 100644 nitter/data/nitter/.gitkeep create mode 100644 nitter/data/redis/.gitkeep create mode 100644 nitter/dfwebos-app.yml create mode 100644 nitter/docker-compose.yml create mode 100644 nocodb/data/app/.gitkeep create mode 100644 nocodb/data/db/.gitkeep create mode 100644 nocodb/dfwebos-app.yml create mode 100644 nocodb/docker-compose.yml create mode 100644 node-red-standalone/data/settings.js create mode 100644 node-red-standalone/dfwebos-app.yml create mode 100644 node-red-standalone/docker-compose.yml create mode 100644 node-red/data/admin-credentials.json create mode 100644 node-red/data/flows.json create mode 100644 node-red/data/settings.js create mode 100644 node-red/dfwebos-app.yml create mode 100644 node-red/docker-compose.yml create mode 100644 nolooking/dfwebos-app.yml create mode 100644 nolooking/docker-compose.yml create mode 100644 nostr-relay/data/relay-proxy/.gitkeep create mode 100644 nostr-relay/data/relay/config.toml create mode 100644 nostr-relay/data/relay/db/.gitkeep create mode 100644 nostr-relay/dfwebos-app.yml create mode 100644 nostr-relay/docker-compose.yml create mode 100755 nostr-relay/hooks/pre-start create mode 100644 nostrudel/dfwebos-app.yml create mode 100644 nostrudel/docker-compose.yml create mode 100644 ntfy/data/cache/.gitkeep create mode 100644 ntfy/data/data/.gitkeep create mode 100644 ntfy/data/lib/.gitkeep create mode 100644 ntfy/dfwebos-app.yml create mode 100644 ntfy/docker-compose.yml create mode 100644 ntfy/entrypoint.sh create mode 100644 nutstash-wallet/dfwebos-app.yml create mode 100644 nutstash-wallet/docker-compose.yml create mode 100644 oak-node/data/.gitkeep create mode 100644 oak-node/dfwebos-app.yml create mode 100644 oak-node/docker-compose.yml create mode 100644 oak-node/log/.gitkeep create mode 100644 obsidian/data/config/.gitkeep create mode 100644 obsidian/dfwebos-app.yml create mode 100644 obsidian/docker-compose.yml create mode 100644 octoprint/dfwebos-app.yml create mode 100644 octoprint/docker-compose.yml create mode 100644 ollama/data/.gitkeep create mode 100644 ollama/dfwebos-app.yml create mode 100644 ollama/docker-compose.yml create mode 100644 ollama/exports.sh create mode 100644 omnitools/dfwebos-app.yml create mode 100644 omnitools/docker-compose.yml create mode 100644 onlyoffice-nextcloud/data/cache/.gitkeep create mode 100644 onlyoffice-nextcloud/data/certs/.gitkeep create mode 100644 onlyoffice-nextcloud/data/db/.gitkeep create mode 100644 onlyoffice-nextcloud/data/logs/.gitkeep create mode 100644 onlyoffice-nextcloud/dfwebos-app.yml create mode 100644 onlyoffice-nextcloud/docker-compose.yml create mode 100644 onlyoffice-nextcloud/exports.sh create mode 100644 open-webui/data/open-webui/.gitkeep create mode 100644 open-webui/dfwebos-app.yml create mode 100644 open-webui/docker-compose.yml create mode 100644 openclaw/data/linuxbrew/.gitkeep create mode 100644 openclaw/dfwebos-app.yml create mode 100644 openclaw/docker-compose.yml create mode 100755 openclaw/hooks/pre-start create mode 100644 opencode/data/opencode/.gitkeep create mode 100644 opencode/data/opencode/projects/.gitkeep create mode 100644 opencode/dfwebos-app.yml create mode 100644 opencode/docker-compose.yml create mode 100644 openhands/data/docker/.gitkeep create mode 100644 openhands/data/openhands/.gitkeep create mode 100644 openhands/data/workspace/.gitkeep create mode 100644 openhands/dfwebos-app.yml create mode 100644 openhands/docker-compose.yml create mode 100755 openhands/entrypoint.sh create mode 100644 openreader/data/docstore/.gitkeep create mode 100644 openreader/dfwebos-app.yml create mode 100644 openreader/docker-compose.yml create mode 100644 openresty-manager/data/acme/.gitkeep create mode 100644 openresty-manager/data/conf/.gitkeep create mode 100644 openresty-manager/data/data/.gitkeep create mode 100644 openresty-manager/data/logs/.gitkeep create mode 100644 openresty-manager/dfwebos-app.yml create mode 100644 openresty-manager/docker-compose.yml create mode 100755 openresty-manager/hooks/pre-start create mode 100644 ordinals/data/ord/.gitkeep create mode 100644 ordinals/dfwebos-app.yml create mode 100644 ordinals/docker-compose.yml create mode 100755 ordinals/hooks/pre-start create mode 100644 outline/data/app/.gitkeep create mode 100644 outline/data/config/config.yaml.template create mode 100644 outline/data/db/.gitkeep create mode 100644 outline/data/dex/.gitkeep create mode 100644 outline/data/redis/.gitkeep create mode 100644 outline/dfwebos-app.yml create mode 100644 outline/docker-compose.yml create mode 100644 outline/exports.sh create mode 100755 outline/hooks/pre-start create mode 100644 outline/settings.env create mode 100644 overseerr/data/config/.gitkeep create mode 100644 overseerr/dfwebos-app.yml create mode 100644 overseerr/docker-compose.yml create mode 100644 owncloud/data/app/.gitkeep create mode 100644 owncloud/data/config/.gitkeep create mode 100644 owncloud/data/db/.gitkeep create mode 100644 owncloud/data/redis/.gitkeep create mode 100644 owncloud/dfwebos-app.yml create mode 100644 owncloud/docker-compose.yml create mode 100644 owncloud/exports.sh create mode 100644 palmr/data/.gitkeep create mode 100644 palmr/dfwebos-app.yml create mode 100644 palmr/docker-compose.yml create mode 100644 paperless/data/data/.gitkeep create mode 100644 paperless/data/media/.gitkeep create mode 100644 paperless/data/pgdata/.gitkeep create mode 100644 paperless/data/redisdata/.gitkeep create mode 100644 paperless/dfwebos-app.yml create mode 100644 paperless/docker-compose.yml create mode 100755 paperless/exports.sh create mode 100644 papra/data/.gitkeep create mode 100644 papra/dfwebos-app.yml create mode 100644 papra/docker-compose.yml create mode 100644 passky-client/dfwebos-app.yml create mode 100644 passky-client/docker-compose.yml create mode 100644 passky-server/data/passky/.gitkeep create mode 100644 passky-server/dfwebos-app.yml create mode 100644 passky-server/docker-compose.yml create mode 100644 pastefy/data/db/.gitkeep create mode 100644 pastefy/dfwebos-app.yml create mode 100644 pastefy/docker-compose.yml create mode 100644 peerswap/data/.gitkeep create mode 100644 peerswap/dfwebos-app.yml create mode 100644 peerswap/docker-compose.yml create mode 100644 peerswap/exports.sh create mode 100644 penpot/data/assets/.gitkeep create mode 100644 penpot/data/postgres/.gitkeep create mode 100644 penpot/dfwebos-app.yml create mode 100644 penpot/docker-compose.yml create mode 100644 penpot/exports.sh create mode 100644 perplexica/data/app_data/.gitkeep create mode 100644 perplexica/data/uploads/.gitkeep create mode 100644 perplexica/dfwebos-app.yml create mode 100644 perplexica/docker-compose.yml create mode 100755 photoprism/database/.gitkeep create mode 100644 photoprism/dfwebos-app.yml create mode 100644 photoprism/docker-compose.yml create mode 100755 photoprism/originals/.gitkeep create mode 100755 photoprism/storage/.gitkeep create mode 100644 pi-hole/data/dnsmasq/.gitkeep create mode 100644 pi-hole/data/pihole/.gitkeep create mode 100644 pi-hole/dfwebos-app.yml create mode 100644 pi-hole/docker-compose.yml create mode 100755 pi-hole/hooks/pre-install create mode 100644 picsur/data/db/.gitkeep create mode 100644 picsur/dfwebos-app.yml create mode 100644 picsur/docker-compose.yml create mode 100644 pinchflat/data/config/.gitkeep create mode 100644 pinchflat/dfwebos-app.yml create mode 100644 pinchflat/docker-compose.yml create mode 100644 pingvin-share/data/backend/.gitkeep create mode 100644 pingvin-share/data/images/.gitkeep create mode 100644 pingvin-share/dfwebos-app.yml create mode 100644 pingvin-share/docker-compose.yml create mode 100755 pingvin-share/hooks/pre-start create mode 100644 plane/config/nginx.conf create mode 100644 plane/data/db/.gitkeep create mode 100644 plane/data/rabbitmq/.gitkeep create mode 100644 plane/data/redis/.gitkeep create mode 100644 plane/data/uploads/.gitkeep create mode 100644 plane/dfwebos-app.yml create mode 100644 plane/docker-compose.yml create mode 100755 plane/hooks/pre-start create mode 100644 plane/settings.env create mode 100644 plausible/clickhouse/clickhouse-config.xml create mode 100644 plausible/clickhouse/clickhouse-user-config.xml create mode 100644 plausible/db-data/.gitkeep create mode 100644 plausible/dfwebos-app.yml create mode 100644 plausible/docker-compose.yml create mode 100644 plausible/event-data/.gitkeep create mode 100644 plausible/event-logs/.gitkeep create mode 100644 plausible/exports.sh create mode 100644 plex/data/config/.gitkeep create mode 100644 plex/data/transcode/.gitkeep create mode 100644 plex/dfwebos-app.yml create mode 100644 plex/docker-compose.yml create mode 100644 plex/exports.sh create mode 100644 pocketbase/data/data/.gitkeep create mode 100644 pocketbase/data/hooks/.gitkeep create mode 100644 pocketbase/data/migrations/initial_superuser.js create mode 100644 pocketbase/data/public/.gitkeep create mode 100644 pocketbase/dfwebos-app.yml create mode 100644 pocketbase/docker-compose.yml create mode 100644 portainer/default-password create mode 100644 portainer/dfwebos-app.yml create mode 100644 portainer/docker-compose.yml create mode 100755 portainer/entrypoint.sh create mode 100755 portainer/hooks/pre-start create mode 100644 poznote/data/.gitkeep create mode 100644 poznote/dfwebos-app.yml create mode 100644 poznote/docker-compose.yml create mode 100644 privatebin/data/privatebin-data/.gitkeep create mode 100644 privatebin/dfwebos-app.yml create mode 100644 privatebin/docker-compose.yml create mode 100644 prowlarr/data/config/.gitkeep create mode 100644 prowlarr/dfwebos-app.yml create mode 100644 prowlarr/docker-compose.yml create mode 100644 prowlarr/exports.sh create mode 100644 public-pool-web/data/postgres/.gitkeep create mode 100644 public-pool-web/data/redis/.gitkeep create mode 100644 public-pool-web/dfwebos-app.yml create mode 100644 public-pool-web/docker-compose.yml create mode 100644 public-pool-web/exports.sh create mode 100644 public-pool/data/database/.gitkeep create mode 100644 public-pool/data/proxy/nginx.conf create mode 100644 public-pool/dfwebos-app.yml create mode 100644 public-pool/docker-compose.yml create mode 100644 pyload-ng/data/config/.gitkeep create mode 100644 pyload-ng/dfwebos-app.yml create mode 100644 pyload-ng/docker-compose.yml create mode 100644 qbittorrent/data/config/.gitkeep create mode 100644 qbittorrent/dfwebos-app.yml create mode 100644 qbittorrent/docker-compose.yml create mode 100755 qbittorrent/hooks/post-start create mode 100644 radarr/data/config/.gitkeep create mode 100644 radarr/dfwebos-app.yml create mode 100644 radarr/docker-compose.yml create mode 100644 radarr/exports.sh create mode 100755 radarr/hooks/post-install create mode 100644 readarr/data/config/.gitkeep create mode 100644 readarr/dfwebos-app.yml create mode 100644 readarr/docker-compose.yml create mode 100644 readarr/exports.sh create mode 100755 readarr/hooks/post-install create mode 100644 readur/data/postgres_data/.gitkeep create mode 100644 readur/data/uploads/.gitkeep create mode 100644 readur/data/watch/.gitkeep create mode 100644 readur/dfwebos-app.yml create mode 100644 readur/docker-compose.yml create mode 100644 remmina/data/config/.gitkeep create mode 100644 remmina/dfwebos-app.yml create mode 100644 remmina/docker-compose.yml create mode 100644 restreamer/config/.gitkeep create mode 100644 restreamer/data/.gitkeep create mode 100644 restreamer/dfwebos-app.yml create mode 100644 restreamer/docker-compose.yml create mode 100644 ride-the-lightning/boltz/.gitkeep create mode 100644 ride-the-lightning/dfwebos-app.yml create mode 100644 ride-the-lightning/docker-compose.yml create mode 100644 ride-the-lightning/exports.sh create mode 100644 ride-the-lightning/rtl/.gitkeep create mode 100644 ride-the-lightning/rtl/RTL-Config.json create mode 100755 ride-the-lightning/rtl/entrypoint.sh create mode 100644 robosats/dfwebos-app.yml create mode 100644 robosats/docker-compose.yml create mode 100644 romm/data/assets/.gitkeep create mode 100644 romm/data/config/config.yml create mode 100644 romm/data/db/.gitkeep create mode 100644 romm/data/library/.gitkeep create mode 100644 romm/data/redis/.gitkeep create mode 100644 romm/data/resources/.gitkeep create mode 100644 romm/dfwebos-app.yml create mode 100644 romm/docker-compose.yml create mode 100755 romm/hooks/pre-start create mode 100644 rotki/data/data/.gitkeep create mode 100644 rotki/data/logs/.gitkeep create mode 100644 rotki/dfwebos-app.yml create mode 100644 rotki/docker-compose.yml create mode 100644 route96/data/config.yaml create mode 100644 route96/data/db/.gitkeep create mode 100644 route96/data/uploads/.gitkeep create mode 100644 route96/dfwebos-app.yml create mode 100644 route96/docker-compose.yml create mode 100644 rustdesk-server/data/hbbr/.gitkeep create mode 100644 rustdesk-server/data/hbbs/.gitkeep create mode 100644 rustdesk-server/data/www/favicon.png create mode 100644 rustdesk-server/data/www/index.html create mode 100644 rustdesk-server/data/www/logo.png create mode 100644 rustdesk-server/dfwebos-app.yml create mode 100644 rustdesk-server/docker-compose.yml create mode 100755 rustdesk-server/hooks/post-start create mode 100644 rusty-kaspad/data/.gitkeep create mode 100644 rusty-kaspad/data/app/.gitkeep create mode 100644 rusty-kaspad/dfwebos-app.yml create mode 100644 rusty-kaspad/docker-compose.yml create mode 100644 sabnzbd/data/config/.gitkeep create mode 100644 sabnzbd/dfwebos-app.yml create mode 100644 sabnzbd/docker-compose.yml create mode 100755 sabnzbd/hooks/post-install create mode 100644 saifa/data/app/.gitkeep create mode 100644 saifa/data/redis_data/.gitkeep create mode 100644 saifa/dfwebos-app.yml create mode 100644 saifa/docker-compose.yml create mode 100644 samba/data/samba/smb.conf create mode 100644 samba/dfwebos-app.yml create mode 100644 samba/docker-compose.yml create mode 100644 samourai-server/dfwebos-app.yml create mode 100644 samourai-server/docker-compose.yml create mode 100644 samourai-server/exports.sh create mode 100755 samourai-server/hooks/pre-start create mode 100644 samourai-server/mysql/data/.gitkeep create mode 100644 samourai-server/nginx/connect.conf create mode 100644 samourai-server/nginx/connect/css/normalize.css create mode 100644 samourai-server/nginx/connect/css/style.css create mode 100644 samourai-server/nginx/connect/img/icon.svg create mode 100644 samourai-server/nginx/connect/index.html create mode 100644 samourai-server/nginx/connect/js/conf.template.js create mode 100644 samourai-server/nginx/connect/js/qrcode.min.js create mode 100644 samourai-server/nginx/connect/js/script.js create mode 100644 samourai-server/nginx/mainnet.conf create mode 100644 samourai-server/nginx/nginx.conf create mode 100644 samourai-server/nginx/testnet.conf create mode 100755 samourai-server/nginx/wait-for create mode 100644 samourai-server/torrc.template create mode 100644 samourai-server/whirlpool/.gitkeep create mode 100644 satsale/data/.gitkeep create mode 100644 satsale/dfwebos-app.yml create mode 100644 satsale/docker-compose.yml create mode 100644 satwatch/data/db/.gitkeep create mode 100644 satwatch/dfwebos-app.yml create mode 100644 satwatch/docker-compose.yml create mode 100644 satwatch/exports.yml create mode 100755 satwatch/hooks/pre-start create mode 100644 scanservjs/data/config/.gitkeep create mode 100644 scanservjs/data/scans/.gitkeep create mode 100644 scanservjs/dfwebos-app.yml create mode 100644 scanservjs/docker-compose.yml create mode 100644 seafile/data/db/.gitkeep create mode 100644 seafile/data/seadoc-data/.gitkeep create mode 100644 seafile/data/seafile-data/.gitkeep create mode 100644 seafile/dfwebos-app.yml create mode 100644 seafile/docker-compose.yml create mode 100644 searxng/data/cache/.gitkeep create mode 100644 searxng/data/config/.gitkeep create mode 100644 searxng/data/config/settings.yml create mode 100644 searxng/dfwebos-app.yml create mode 100644 searxng/docker-compose.yml create mode 100755 searxng/hooks/pre-start create mode 100644 shopstr/dfwebos-app.yml create mode 100644 shopstr/docker-compose.yml create mode 100644 simple-torrent/data/config/.gitkeep create mode 100644 simple-torrent/data/downloads/.gitkeep create mode 100644 simple-torrent/data/torrents/.gitkeep create mode 100644 simple-torrent/dfwebos-app.yml create mode 100644 simple-torrent/docker-compose.yml create mode 100755 simple-torrent/hooks/pre-start create mode 100644 slink/data/images/.gitkeep create mode 100644 slink/data/var/.gitkeep create mode 100644 slink/dfwebos-app.yml create mode 100644 slink/docker-compose.yml create mode 100644 snapdrop/data/config/.gitkeep create mode 100644 snapdrop/dfwebos-app.yml create mode 100644 snapdrop/docker-compose.yml create mode 100644 snort/dfwebos-app.yml create mode 100644 snort/docker-compose.yml create mode 100644 snowflake/data/.gitkeep create mode 100644 snowflake/data/index.html create mode 100644 snowflake/dfwebos-app.yml create mode 100644 snowflake/docker-compose.yml create mode 100755 snowflake/hooks/pre-start create mode 100644 solidtime/data/app/.gitkeep create mode 100644 solidtime/data/app/app/.gitkeep create mode 100644 solidtime/data/app/framework/cache/.gitkeep create mode 100644 solidtime/data/app/framework/views/.gitkeep create mode 100644 solidtime/data/app/logs/.gitkeep create mode 100644 solidtime/data/db/.gitkeep create mode 100644 solidtime/dfwebos-app.yml create mode 100644 solidtime/docker-compose.yml create mode 100755 solidtime/hooks/post-start create mode 100755 solidtime/hooks/post-update create mode 100755 solidtime/hooks/pre-start create mode 100644 solidtime/keys.env create mode 100644 sonarr/data/config/.gitkeep create mode 100644 sonarr/dfwebos-app.yml create mode 100644 sonarr/docker-compose.yml create mode 100644 sonarr/exports.sh create mode 100755 sonarr/hooks/post-install create mode 100644 sparkkiosk/data/.gitkeep create mode 100644 sparkkiosk/dfwebos-app.yml create mode 100644 sparkkiosk/docker-compose.yml create mode 100644 specter-desktop/data/.gitkeep create mode 100644 specter-desktop/dfwebos-app.yml create mode 100644 specter-desktop/docker-compose.yml create mode 100644 sphinx-relay/data/.gitkeep create mode 100644 sphinx-relay/dfwebos-app.yml create mode 100644 sphinx-relay/docker-compose.yml create mode 100644 sphinx-relay/exports.sh create mode 100644 sqlitebrowser/data/config/.gitkeep create mode 100644 sqlitebrowser/dfwebos-app.yml create mode 100644 sqlitebrowser/docker-compose.yml create mode 100644 squeaknode/dfwebos-app.yml create mode 100644 squeaknode/docker-compose.yml create mode 100644 squeaknode/exports.sh create mode 100755 squeaknode/hooks/pre-start create mode 100644 squeaknode/sqk/.gitkeep create mode 100644 squeaknode/torrc.template create mode 100644 squeakroad/data/.gitkeep create mode 100644 squeakroad/dfwebos-app.yml create mode 100644 squeakroad/docker-compose.yml create mode 100644 stalwart/data/.gitkeep create mode 100644 stalwart/dfwebos-app.yml create mode 100644 stalwart/docker-compose.yml create mode 100755 stalwart/hooks/post-start create mode 100644 stirling-pdf/data/configs/.gitkeep create mode 100644 stirling-pdf/data/logs/.gitkeep create mode 100644 stirling-pdf/data/pipeline/.gitkeep create mode 100644 stirling-pdf/data/tessdata/.gitkeep create mode 100644 stirling-pdf/dfwebos-app.yml create mode 100644 stirling-pdf/docker-compose.yml create mode 100644 strix/dfwebos-app.yml create mode 100644 strix/docker-compose.yml create mode 100644 super-productivity/dfwebos-app.yml create mode 100644 super-productivity/docker-compose.yml create mode 100644 sure/data/postgres/.gitkeep create mode 100644 sure/data/rails/.gitkeep create mode 100644 sure/data/redis/.gitkeep create mode 100644 sure/dfwebos-app.yml create mode 100644 sure/docker-compose.yml create mode 100644 suredbits-wallet/data/log/.gitkeep create mode 100644 suredbits-wallet/data/wallet/.gitkeep create mode 100644 suredbits-wallet/dfwebos-app.yml create mode 100644 suredbits-wallet/docker-compose.yml create mode 100644 suredbits-wallet/exports.sh create mode 100755 suredbits-wallet/hooks/pre-start create mode 100644 suredbits-wallet/torrc.template create mode 100644 swingmusic/data/config/.gitkeep create mode 100644 swingmusic/data/music/.gitkeep create mode 100644 swingmusic/dfwebos-app.yml create mode 100644 swingmusic/docker-compose.yml create mode 100644 synapse/data/synapse/.gitkeep create mode 100644 synapse/dfwebos-app.yml create mode 100644 synapse/docker-compose.yml create mode 100644 synapse/exports.sh create mode 100644 syncthing/data/.gitkeep create mode 100644 syncthing/dfwebos-app.yml create mode 100644 syncthing/docker-compose.yml create mode 100644 tailscale/data/.gitkeep create mode 100644 tailscale/dfwebos-app.yml create mode 100644 tailscale/docker-compose.yml create mode 100644 tailscale/exports.sh create mode 100644 tallycoin-connect/data/.gitkeep create mode 100644 tallycoin-connect/dfwebos-app.yml create mode 100644 tallycoin-connect/docker-compose.yml create mode 100755 tallycoin-connect/hooks/post-update create mode 100644 tautulli/dfwebos-app.yml create mode 100644 tautulli/docker-compose.yml create mode 100644 tdex/caddy-data/Caddyfile create mode 100644 tdex/dfwebos-app.yml create mode 100644 tdex/docker-compose.yml create mode 100644 tdex/exports.sh create mode 100755 tdex/hooks/pre-start create mode 100644 tdex/ocean-data/.gitkeep create mode 100644 tdex/tdexd/.gitkeep create mode 100644 tdex/torrc.template create mode 100644 teamspeak/data/.gitkeep create mode 100644 teamspeak/dfwebos-app.yml create mode 100644 teamspeak/docker-compose.yml create mode 100644 technitium-dns/data/.gitkeep create mode 100644 technitium-dns/dfwebos-app.yml create mode 100644 technitium-dns/docker-compose.yml create mode 100644 termix/data/.gitkeep create mode 100644 termix/dfwebos-app.yml create mode 100644 termix/docker-compose.yml create mode 100644 thelounge/data/.gitkeep create mode 100644 thelounge/dfwebos-app.yml create mode 100644 thelounge/docker-compose.yml create mode 100755 thelounge/hooks/pre-start create mode 100644 thinkdashboard/data/.gitkeep create mode 100644 thinkdashboard/dfwebos-app.yml create mode 100644 thinkdashboard/docker-compose.yml create mode 100644 threema/dfwebos-app.yml create mode 100644 threema/docker-compose.yml create mode 100644 thunderhub/data/thubConfig.yaml create mode 100644 thunderhub/dfwebos-app.yml create mode 100644 thunderhub/docker-compose.yml create mode 100644 tools/translate-hash-comments.js create mode 100644 tools/translate-manifests.js create mode 100644 torbrowser/config/.gitkeep create mode 100644 torbrowser/dfwebos-app.yml create mode 100644 torbrowser/docker-compose.yml create mode 100644 torq/data/passwd create mode 100644 torq/data/torq/.gitkeep create mode 100644 torq/dfwebos-app.yml create mode 100644 torq/docker-compose.yml create mode 100644 toshi-moto/data/db/diagnostic.data/.gitkeep create mode 100644 toshi-moto/data/db/journal/.gitkeep create mode 100644 toshi-moto/data/proxy/nginx.conf create mode 100644 toshi-moto/data/server-logs/.gitkeep create mode 100644 toshi-moto/dfwebos-app.yml create mode 100644 toshi-moto/docker-compose.yml create mode 100644 transmission/data/config/.gitkeep create mode 100644 transmission/dfwebos-app.yml create mode 100644 transmission/docker-compose.yml create mode 100644 trilium-notes/data/.gitkeep create mode 100644 trilium-notes/dfwebos-app.yml create mode 100644 trilium-notes/docker-compose.yml create mode 100644 trip/data/app/.gitkeep create mode 100644 trip/dfwebos-app.yml create mode 100644 trip/docker-compose.yml create mode 100644 tubearchivist/data/cache/.gitkeep create mode 100644 tubearchivist/data/elasticsearch/.gitkeep create mode 100644 tubearchivist/data/media/.gitkeep create mode 100644 tubearchivist/data/redis/.gitkeep create mode 100644 tubearchivist/dfwebos-app.yml create mode 100644 tubearchivist/docker-compose.yml create mode 100644 twenty/data/db-data/.gitkeep create mode 100644 twenty/data/docker-data/.gitkeep create mode 100644 twenty/data/redis/.gitkeep create mode 100644 twenty/data/server-local-data/.gitkeep create mode 100644 twenty/dfwebos-app.yml create mode 100644 twenty/docker-compose.yml create mode 100755 twenty/hooks/post-update create mode 100644 umami/data/db/.gitkeep create mode 100644 umami/dfwebos-app.yml create mode 100644 umami/docker-compose.yml create mode 100644 uptime-kuma/data/.gitkeep create mode 100644 uptime-kuma/data/uptime-kuma/.gitkeep create mode 100644 uptime-kuma/dfwebos-app.yml create mode 100644 uptime-kuma/docker-compose.yml create mode 100644 urbit-bitcoin-connector/dfwebos-app.yml create mode 100644 urbit-bitcoin-connector/docker-compose.yml create mode 100644 urbit-bitcoin-connector/exports.sh create mode 100644 urbit/dfwebos-app.yml create mode 100644 urbit/docker-compose.yml create mode 100644 usocial/data/.gitkeep create mode 100644 usocial/dfwebos-app.yml create mode 100644 usocial/docker-compose.yml create mode 100644 vaultwarden/data/.gitkeep create mode 100644 vaultwarden/dfwebos-app.yml create mode 100644 vaultwarden/docker-compose.yml create mode 100644 vert/dfwebos-app.yml create mode 100644 vert/docker-compose.yml create mode 100644 vikunja/data/db/.gitkeep create mode 100644 vikunja/data/files/.gitkeep create mode 100644 vikunja/dfwebos-app.yml create mode 100644 vikunja/docker-compose.yml create mode 100644 wanderer/data/data.ms/.gitkeep create mode 100644 wanderer/data/pb_data/.gitkeep create mode 100644 wanderer/data/uploads/.gitkeep create mode 100644 wanderer/dfwebos-app.yml create mode 100644 wanderer/docker-compose.yml create mode 100644 wanderer/exports.sh create mode 100644 watch-your-lan/data/WatchYourLAN/.gitkeep create mode 100644 watch-your-lan/dfwebos-app.yml create mode 100644 watch-your-lan/docker-compose.yml create mode 100644 wavelog/data/config/.gitkeep create mode 100644 wavelog/data/db/.gitkeep create mode 100644 wavelog/data/uploads/.gitkeep create mode 100644 wavelog/data/userdata/.gitkeep create mode 100644 wavelog/dfwebos-app.yml create mode 100644 wavelog/docker-compose.yml create mode 100755 wavelog/hooks/pre-start create mode 100644 webcheck/data/.gitkeep create mode 100644 webcheck/dfwebos-app.yml create mode 100644 webcheck/docker-compose.yml create mode 100644 wger/config/nginx.conf create mode 100644 wger/config/prod.env create mode 100644 wger/data/celery-beat/.gitkeep create mode 100644 wger/data/media/.gitkeep create mode 100644 wger/data/postgres-data/.gitkeep create mode 100644 wger/data/redis-data/.gitkeep create mode 100644 wger/data/static/.gitkeep create mode 100644 wger/dfwebos-app.yml create mode 100644 wger/docker-compose.yml create mode 100644 wger/exports.sh create mode 100644 whoogle-search/dfwebos-app.yml create mode 100644 whoogle-search/docker-compose.yml create mode 100644 wikijs/config/.gitkeep create mode 100644 wikijs/data/.gitkeep create mode 100644 wikijs/dfwebos-app.yml create mode 100644 wikijs/docker-compose.yml create mode 100755 wikijs/hooks/pre-start create mode 100644 wikijs/repo/.gitkeep create mode 100644 wingfit/data/.gitkeep create mode 100644 wingfit/dfwebos-app.yml create mode 100644 wingfit/docker-compose.yml create mode 100644 wireguard/data/wireguard/.gitkeep create mode 100644 wireguard/dfwebos-app.yml create mode 100644 wireguard/docker-compose.yml create mode 100644 wizarr/data/.gitkeep create mode 100644 wizarr/dfwebos-app.yml create mode 100644 wizarr/docker-compose.yml create mode 100644 woofbot-lnd/data/db/diagnostic.data/.gitkeep create mode 100644 woofbot-lnd/data/db/journal/.gitkeep create mode 100644 woofbot-lnd/data/server-logs/.gitkeep create mode 100644 woofbot-lnd/dfwebos-app.yml create mode 100644 woofbot-lnd/docker-compose.yml create mode 100644 woofbot/data/db/diagnostic.data/.gitkeep create mode 100644 woofbot/data/db/journal/.gitkeep create mode 100644 woofbot/data/server-logs/.gitkeep create mode 100644 woofbot/dfwebos-app.yml create mode 100644 woofbot/docker-compose.yml create mode 100755 woofbot/hooks/pre-start create mode 100644 wordpress/data/db/.gitkeep create mode 100644 wordpress/data/wordpress/.gitkeep create mode 100644 wordpress/dfwebos-app.yml create mode 100644 wordpress/docker-compose.yml create mode 100644 yamtrack/data/db/.gitkeep create mode 100644 yamtrack/data/redis/.gitkeep create mode 100644 yamtrack/dfwebos-app.yml create mode 100644 yamtrack/docker-compose.yml create mode 100644 yucca/data/data/.gitkeep create mode 100644 yucca/data/ffmpeg/.gitkeep create mode 100644 yucca/dfwebos-app.yml create mode 100644 yucca/docker-compose.yml create mode 100644 zabbix/data/postgres/.gitkeep create mode 100644 zabbix/dfwebos-app.yml create mode 100644 zabbix/docker-compose.yml create mode 100644 zen/data/app/.gitkeep create mode 100644 zen/data/images/.gitkeep create mode 100644 zen/dfwebos-app.yml create mode 100644 zen/docker-compose.yml create mode 100644 zeronote/dfwebos-app.yml create mode 100644 zeronote/docker-compose.yml create mode 100644 zigbee2mqtt/data/.gitkeep create mode 100644 zigbee2mqtt/dfwebos-app.yml create mode 100644 zigbee2mqtt/docker-compose.yml create mode 100644 zoraxy/data/config/.gitkeep create mode 100644 zoraxy/dfwebos-app.yml create mode 100644 zoraxy/docker-compose.yml diff --git a/activepieces/data/app/cache/.gitkeep b/activepieces/data/app/cache/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/activepieces/data/db/.gitkeep b/activepieces/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/activepieces/data/redis/.gitkeep b/activepieces/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/activepieces/dfwebos-app.yml b/activepieces/dfwebos-app.yml new file mode 100644 index 0000000..df0d8c8 --- /dev/null +++ b/activepieces/dfwebos-app.yml @@ -0,0 +1,63 @@ +manifestVersion: 1 +id: activepieces +category: automation +name: Activepieces +version: "0.82.1" +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ исправлСния ошибок: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ мноТСство Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Telnyx, Kustomer, Freshservice, Chargebee, Paddle, AIPrise, DocuSign ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ AWS Bedrock Π² качСствС поставщика ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ИИ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​блокировка ΠΏΠΎΡ‚ΠΎΠΊΠ° с Π±Π°Π½Π½Π΅Ρ€ΠΎΠΌ рСдактирования Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для прСдотвращСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ MCP, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ созданиС ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΠ΄Π½ΠΈΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ, самоанализ схСмы ΠΈ инструмСнты ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка исходящСго прокси-сСрвСра для сСтСвой изоляции. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° β€‹β€‹ΠΎΡˆΠΈΠ±ΠΊΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ участникам ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ постоянно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΎΡΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ «НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅Β». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ условия Π³ΠΎΠ½ΠΊΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ/Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ памяти Π² пСсочницС ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ памяти. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ OAuth2 Π² старых вСрсиях частСй. + - Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ axios ΠΈ nodemailer для устранСния уязвимостСй. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/activepieces/activepieces/releases. +tagline: "Π’Π°Ρˆ самый Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΉ инструмСнт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ИИ" +description: >- + 🀯 Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² Activepieces + + + Π’Π°Ρˆ самый ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ типобСзопасной структуры частСй, написанной Π½Π° Typescript. + + + + πŸ”₯ Π§Π΅ΠΌ Activepieces отличаСтся: + - πŸ’– ВсС Π»ΡŽΠ±ΡΡ‚: ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ ΠΊΠ°ΠΊ для тСхничСских, Ρ‚Π°ΠΊ ΠΈ для нСтСхничСских ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ быстроС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅. + + - 🌐 ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Π°Ρ экосистСма: всС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ доступны Π½Π° npmjs.com, 60% Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² созданы сообщСством. + + - πŸ› οΈ Части написаны Π½Π° Typescript: Части β€” это ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ npm Π² TypeScript, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»Π½ΡƒΡŽ настройку с Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ возмоТностями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ для локальной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ частСй Π½Π° вашСй машинС. 😎 + + - πŸ€– Π“ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊ ИИ: встроСнныС части ИИ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ поставщиками ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнных Π°Π³Π΅Π½Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСго ИИ SDK, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Copilot, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ конструктора. + + - 🏒 Π“ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° прСдприятиях: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ инструмСнты, ΠΈ любой сотрудник ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ конструктор Π±Π΅Π· ΠΊΠΎΠ΄Π°. Полная кастомизация ΠΎΡ‚ Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³Π° Π΄ΠΎ управлСния. + + - πŸ”’ Задуманная Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ сСти для максимальной бСзопасности ΠΈ контроля Π½Π°Π΄ вашими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. + + - 🧠 Π§Π΅Π»ΠΎΠ²Π΅ΠΊ Π² Ρ†ΠΈΠΊΠ»Π΅: ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ одобрСния. Π­Ρ‚ΠΎ всСго лишь части, построСнныС Π½Π° основС каркаса частСй, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΈΡ… частСй. 🎨 + + - πŸ’»Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ чСловСчСского Π²Π²ΠΎΠ΄Π°: встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² чСловСчСского Π²Π²ΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Β«Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ‡Π°Ρ‚Π°Β» πŸ’¬ ΠΈ Β«Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ„ΠΎΡ€ΠΌΡ‹Β» πŸ“. +developer: Activepieces +website: https://www.activepieces.com/ +dependencies: [] +repo: https://github.com/activepieces/activepieces/ +support: https://community.activepieces.com/ +port: 8146 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +backupIgnore: + - data/app/cache/* + - data/redis/* +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/2481 diff --git a/activepieces/docker-compose.yml b/activepieces/docker-compose.yml new file mode 100644 index 0000000..a70f6fd --- /dev/null +++ b/activepieces/docker-compose.yml @@ -0,0 +1,63 @@ +version: '3.0' +services: + app_proxy: + environment: + APP_HOST: activepieces_app_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + app: + ## Π±Π΅Π· Ρ€ΡƒΡ‚Π° ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ + #user: "1000:1000" + image: ghcr.io/activepieces/activepieces:0.82.1@sha256:5fbb7df25f52c703a27b228ba9989887a7751d2aaf905182c764200f339fccb2 + restart: on-failure + environment: + AP_ENGINE_EXECUTABLE_PATH: dist/packages/engine/main.js + AP_API_KEY: ${APP_PASSWORD} + AP_ENCRYPTION_KEY: ${APP_AP_ENCRYPTION_KEY} + AP_JWT_SECRET: ${APP_PASSWORD} + AP_ENVIRONMENT: prod + AP_FRONTEND_URL: http://${DEVICE_DOMAIN_NAME}:8146 + AP_WEBHOOK_TIMEOUT_SECONDS: 30 + AP_TRIGGER_DEFAULT_POLL_INTERVAL: 5 + AP_POSTGRES_DATABASE: activepieces + AP_POSTGRES_HOST: activepieces_db_1 + AP_POSTGRES_PORT: 5432 + AP_POSTGRES_USERNAME: activepieces + AP_POSTGRES_PASSWORD: activepieces + AP_EXECUTION_MODE: UNSANDBOXED + AP_REDIS_HOST: activepieces_redis_1 + AP_REDIS_PORT: 6379 + AP_FLOW_TIMEOUT_SECONDS: 600 + AP_TELEMETRY_ENABLED: "true" + AP_TEMPLATES_SOURCE_URL: "https://cloud.activepieces.com/api/v1/flow-templates" + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + volumes: + - ${APP_DATA_DIR}/data/app/cache:/usr/src/app/cache + + db: + user: "1000:1000" + image: postgres:17.4@sha256:4aed4b0525233308fc5de1b8d47f92326460d598dc5f004d14b41f183360b4e9 + restart: on-failure + environment: + POSTGRES_DB: activepieces + POSTGRES_PASSWORD: activepieces + POSTGRES_USER: activepieces + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U activepieces"] + interval: 5s + timeout: 5s + retries: 5 + + redis: + user: "1000:1000" + image: redis:7.4.3@sha256:ee8ec723c831b815c3e2f2c6fbd1c145c68d1c04ba284f044ec1434fbca0fee8 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis:/data diff --git a/activepieces/exports.sh b/activepieces/exports.sh new file mode 100644 index 0000000..d70bc54 --- /dev/null +++ b/activepieces/exports.sh @@ -0,0 +1 @@ +export APP_AP_ENCRYPTION_KEY=$(derive_entropy "${app_entropy_identifier}-AP_ENCRYPTION_KEY" | head -c32) diff --git a/adguard-home/data/conf/.gitkeep b/adguard-home/data/conf/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/adguard-home/data/work/.gitkeep b/adguard-home/data/work/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/adguard-home/dfwebos-app.yml b/adguard-home/dfwebos-app.yml new file mode 100644 index 0000000..451cdae --- /dev/null +++ b/adguard-home/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1 +id: adguard-home +category: networking +name: AdGuard Home +version: "0.107.74" +tagline: ΠžΠ±Ρ‰Π΅ΡΠ΅Ρ‚Π΅Π²ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ ΠΈ отслСТивания +description: >- + ⚠️ НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π²Π°ΠΆΠ½Ρ‹Π΅ инструкции ΠΏΠΎ настройкС. + + + AdGuard Home β€” комплСксноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ ΠΈ отслСТивания Π½Π° всСх устройствах Π² вашСй домашнСй сСти. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΈΡ€ всС большС внСдряСт Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π²Π΅Ρ‰Π΅ΠΉ, + Π‘ ростом числа ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… устройств сохранСниС контроля Π½Π°Π΄ всСй ΡΠ΅Ρ‚ΡŒΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. AdGuard Home позволяСт Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ этим, обСспСчивая Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ + бСспрСпятствСнный просмотр страниц Π½Π° любом устройствС ΠΏΠΎΠ΄ вашСй ΠΊΡ€Ρ‹ΡˆΠ΅ΠΉ. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Π’ мастСрС настройки Π²Π°ΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Β«ΠŸΠΎΡ€Ρ‚Β» Π²Π΅Π±-интСрфСйса администратора Π½Π° 8095. + Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями ΠΈΠ· DFWebOS App Store ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ доступно. + ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Π·Π½Π°Ρ‡ΠΎΠΊ прилоТСния Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС umbrelOS. +releaseNotes: >- + Π’ этом выпускС основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся исправлСниям ошибок ΠΈ обновлСниям бСзопасности. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ бСзопасности: + β€” Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ внСшнСго интСрфСйса ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ для устранСния извСстной уязвимости (CVE-2026-40175). + - Базовая вСрсия Go ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ​​для устранСния Π½Π΅Π΄Π°Π²Π½ΠΈΡ… уязвимостСй бСзопасности Go. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​нСкоррСктная пСрСсылка запросов ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° настроСны восходящиС ΠΏΠΎΡ‚ΠΎΠΊΠΈ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° β€‹β€‹ΠΎΡˆΠΈΠ±ΠΊΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ настройка строгой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ SNI TLS Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΠ»Π°ΡΡŒ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ TLS. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅/Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ списками Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π½Ρ‹Ρ…. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/AdguardTeam/AdGuardHome/releases. +developer: Adguard +website: https://adguard.com/fr/adguard-home/overview.html +dependencies: [] +repo: https://github.com/AdguardTeam/AdGuardHome +support: https://github.com/AdguardTeam/AdGuardHome/issues +port: 8095 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Julienpeps +submission: https://github.com/getumbrel/dfwebos-apps/pull/1038 diff --git a/adguard-home/docker-compose.yml b/adguard-home/docker-compose.yml new file mode 100644 index 0000000..5d541b0 --- /dev/null +++ b/adguard-home/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + server: + image: adguard/adguardhome:v0.107.74@sha256:f29c58a91f79387cbbbb042e140814f58e830d457d44af03d662c8df43db9dea + # ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π΅Π±-адрСс Π½Π° ΠΏΠΎΡ€Ρ‚ 8095, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° с Thunderhub + # ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ· Dockerfile: https://github.com/AdguardTeam/AdGuardHome/blob/master/docker/Dockerfile + command: ["--no-check-update", "-c", "/opt/adguardhome/conf/AdGuardHome.yaml", "-w", "/opt/adguardhome/work", "--web-addr", "0.0.0.0:8095"] + restart: on-failure + network_mode: host + volumes: + - ${APP_DATA_DIR}/data/work:/opt/adguardhome/work + - ${APP_DATA_DIR}/data/conf:/opt/adguardhome/conf + cap_add: + - NET_ADMIN diff --git a/adventurelog/data/app/.gitkeep b/adventurelog/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/adventurelog/data/db/.gitkeep b/adventurelog/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/adventurelog/dfwebos-app.yml b/adventurelog/dfwebos-app.yml new file mode 100644 index 0000000..7eee924 --- /dev/null +++ b/adventurelog/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1.1 +id: adventurelog +category: files +name: AdventureLog +version: "v0.12.0" +tagline: Автономный Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΉ ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΠΎΠ΅Π·Π΄ΠΎΠΊ +description: >- + πŸ—ΊοΈ Начав с простой ΠΈΠ΄Π΅ΠΈ отслСТивания мСст ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΉ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ), AdventureLog прСвратился Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ спутника Π² ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡΡ…. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ AdventureLog Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ свои ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Π³Π΄Π΅ Π²Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ ΠΌΠΈΡ€Π°, совмСстно ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ΅Π·Π΄ΠΊΡƒ ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своими впСчатлСниями с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈ сСмьСй. + + + AdventureLog Π±Ρ‹Π» создан, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ: отсутствиС соврСмСнного, ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π² использовании спутника для ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΉ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. МногиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ прилоТСния для ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΉ Π»ΠΈΠ±ΠΎ слишком слоТны, Π»ΠΈΠ±ΠΎ слишком Π΄ΠΎΡ€ΠΎΠ³ΠΈ, Π»ΠΈΠ±ΠΎ слишком Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ°. AdventureLog стрСмится Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΌ: простым, красивым ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ для всСх. +releaseNotes: >- + AdventureLog v0.12.0 β€” это ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΅Π·Π΄ΠΎΠΊ, составлСниС ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты для ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΉ. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + + + - ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСработанная систСма ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ пСрСтаскивания, измСнСния порядка ΠΈ планирования Π½Π° основС ΠΊΠ°Ρ€Ρ‚. + - ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ дня Π½Π΅Π΄Π΅Π»ΠΈ: дСнь Π½Π΅Π΄Π΅Π»ΠΈ отобраТаСтся Π² коллСкциях ΠΈ прСдставлСниях ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°. + - ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ списки для элСмСнтов всСй ΠΏΠΎΠ΅Π·Π΄ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π΅. + - НовыС инструмСнты Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ с полями Π·Π°Ρ‚Ρ€Π°Ρ‚ для мСстополоТСний, транспорта ΠΈ проТивания, Π° Ρ‚Π°ΠΊΠΆΠ΅ настройки Π²Π°Π»ΡŽΡ‚Ρ‹. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² GPX для записСй ΠΎ транспортировкС. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ аутСнтификация OIDC с автоматичСским ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, привязкой ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ. + - ОбновлСн Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ интСрфСйс со статусами, Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ основной Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΎΠΌ фотографиями. + - НовыС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡƒΠΌΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³ΠΎΡ€ΠΎΠ΄Π°/мСста. + - Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ восстановлСниС. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок для часовых поясов, ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€Π΅ΠΉ, рСдактирования мСстополоТСния ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° интСрфСйс. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/seanmorley15/AdventureLog/releases/. +developer: Sean Morley +website: https://adventurelog.app/ +repo: https://github.com/seanmorley15/AdventureLog +support: https://github.com/seanmorley15/AdventureLog/issues +port: 8015 +submitter: Mateo Silguero +submission: https://github.com/getumbrel/dfwebos-apps/pull/2222 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/adventurelog/docker-compose.yml b/adventurelog/docker-compose.yml new file mode 100644 index 0000000..9e4d300 --- /dev/null +++ b/adventurelog/docker-compose.yml @@ -0,0 +1,50 @@ +version: '3.7' +services: + app_proxy: + environment: + APP_HOST: adventurelog_web_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + web: + image: ghcr.io/seanmorley15/adventurelog-frontend:v0.12.0@sha256:9aa653603eb1305f3c34c61bc99b40a394295aed3fecd8c9777a9e5c04c7155e + restart: on-failure + environment: + PUBLIC_SERVER_URL: "http://adventurelogserver1:8000" + ORIGIN: "http://${DEVICE_DOMAIN_NAME}:8015" + BODY_SIZE_LIMIT: "Infinity" + depends_on: + - server + db: + image: ghcr.io/baosystems/postgis:15-3.5@sha256:ac619116c8ee81a386eb878956950d798b57c502985c12eb6e7be1598aa8d02f + restart: on-failure + environment: + POSTGRES_DB: database + POSTGRES_USER: adventure + POSTGRES_PASSWORD: adventure + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data/ + + server: + image: ghcr.io/seanmorley15/adventurelog-backend:v0.12.0@sha256:68725d6a3692333e0049607f32078e865e95ebdb8a13e0c5512a01ef766770ae + container_name: adventurelogserver1 # needs to be set for the frontend to be able to connect (underline not supported) + restart: on-failure + environment: + - PGHOST=adventurelog_db_1 + - PGDATABASE=database + - PGUSER=adventure + - PGPASSWORD=adventure + - SECRET_KEY=adventure + - DJANGO_ADMIN_USERNAME=admin + - DJANGO_ADMIN_PASSWORD=admin + - DJANGO_ADMIN_EMAIL=admin@example.com + - PUBLIC_URL=http://${DEVICE_DOMAIN_NAME}:8016 + - CSRF_TRUSTED_ORIGINS=http://${DEVICE_DOMAIN_NAME}:8015 + - DEBUG=False + - FRONTEND_URL=http://${DEVICE_DOMAIN_NAME}:8015 + ports: + - '8016:80' + depends_on: + - db + volumes: + - ${APP_DATA_DIR}/data/app:/code/media/ diff --git a/adventurelog/hooks/pre-start b/adventurelog/hooks/pre-start new file mode 100755 index 0000000..007bb1a --- /dev/null +++ b/adventurelog/hooks/pre-start @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" + +# Π£Π΄Π°Π»ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» .gitignore ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ссли ΠΎΠ½ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. + +[ -f "${APP_DATA_DIR}/data/app/.gitignore" ] && rm -f "${APP_DATA_DIR}/data/app/.gitignore" +[ -f "${APP_DATA_DIR}/data/db/.gitignore" ] && rm -f "${APP_DATA_DIR}/data/db/.gitignore" diff --git a/affine/data/config/.gitkeep b/affine/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/affine/data/storage/blob/.gitkeep b/affine/data/storage/blob/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/affine/data/storage/postgres/.gitkeep b/affine/data/storage/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/affine/data/storage/redis/.gitkeep b/affine/data/storage/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/affine/dfwebos-app.yml b/affine/dfwebos-app.yml new file mode 100644 index 0000000..813c4ff --- /dev/null +++ b/affine/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1 +id: affine +name: Affine +tagline: ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Notion, Miro ΠΈ Airtable +category: files +version: "0.26.3" +port: 3013 +description: >- + Готовая ΠΊ использованию Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Notion & Miro с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ориСнтированная Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ориСнтированная Π½Π° локальноС использованиС. + Одна Π³ΠΈΠΏΠ΅Ρ€Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для нСистрСбимых творчСских ΡƒΠΌΠΎΠ². + + + Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π° Π½Π΅ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ваш ΠΎΠ±Ρ€Π°Π· ΠΆΠΈΠ·Π½ΠΈ. AFFiNE создан для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΡ† ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заботятся ΠΎ своих Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ привязки ΠΊ поставщику ΠΈ хотят ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими основными инструмСнтами. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π² свой собствСнный экзСмпляр Affine: + + + 1. Когда Π²Ρ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Affine, ΠΎΠ½ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись администратора. + + 2. ПослС настройки ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи администратора Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ снова ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Affine с Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ экрана umbrelOS. + + 3. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Affine Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ дСмонстрационноС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство». + + 4. Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ инструкциям, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Affine со своим Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌ экзСмпляром! +developer: toeverything +website: https://affine.pro +submitter: Jasper +submission: https://github.com/getumbrel/dfwebos-apps/pull/990 +repo: https://github.com/toeverything/AFFiNE +support: https://docs.affine.pro +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° плавная ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ пСрСтаскивании ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ сопоставлСниС клавиш для раскладок ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ БША. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΡΡ‚ΠΈΠ»ΡŒ выноски ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° S3 для Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Ρ… установок. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° панСль администратора с ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ панСлью управлСния ΠΈ интСрфСйсом настроСк. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​проблСма, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ история ΠΌΠΎΠ³Π»Π° ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΎ врСмя ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/toeverything/AFFiNE/releases. +dependencies: [] +path: "" +defaultUsername: "" diff --git a/affine/docker-compose.yml b/affine/docker-compose.yml new file mode 100644 index 0000000..845ba0d --- /dev/null +++ b/affine/docker-compose.yml @@ -0,0 +1,71 @@ +services: + + app_proxy: + environment: + APP_HOST: affine_web_1 + APP_PORT: 3010 + + web: + image: ghcr.io/toeverything/affine:0.26.3@sha256:725aaceb0ed94d4b832ae6ef9414503291c9b2b4f60bd6f3c7eef571b6149add + restart: on-failure + environment: + - AFFINE_CONFIG_PATH=/root/.affine/config + - REDIS_SERVER_HOST=affine_redis_1 + - DATABASE_URL=postgres://affine:affine@affine_db_1:5432/affine + - NODE_ENV=production + volumes: + - ${APP_DATA_DIR}/data/config:/root/.affine/config + - ${APP_DATA_DIR}/data/storage/blob:/root/.affine/storage + depends_on: + redis: + condition: service_healthy + db: + condition: service_healthy + migration: + condition: service_completed_successfully + + migration: + image: ghcr.io/toeverything/affine:0.26.3@sha256:725aaceb0ed94d4b832ae6ef9414503291c9b2b4f60bd6f3c7eef571b6149add + restart: on-failure + command: + ['sh', '-c', 'node ./scripts/self-host-predeploy'] + environment: + - AFFINE_CONFIG_PATH=/root/.affine/config + - REDIS_SERVER_HOST=affine_redis_1 + - DATABASE_URL=postgres://affine:affine@affine_db_1:5432/affine + - NODE_ENV=production + volumes: + - ${APP_DATA_DIR}/data/config:/root/.affine/config + - ${APP_DATA_DIR}/data/storage/blob:/root/.affine/storage + depends_on: + redis: + condition: service_healthy + db: + condition: service_healthy + + redis: + image: redis:7.2.4@sha256:e647cfe134bf5e8e74e620f66346f93418acfc240b71dd85640325cb7cd01402 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/storage/redis:/data + healthcheck: + test: ['CMD', 'redis-cli', '--raw', 'incr', 'ping'] + interval: 10s + timeout: 5s + retries: 5 + + db: + image: postgres:16.2@sha256:f58300ac8d393b2e3b09d36ea12d7d24ee9440440e421472a300e929ddb63460 + restart: on-failure + environment: + POSTGRES_USER: affine + POSTGRES_PASSWORD: affine + POSTGRES_DB: affine + PGDATA: /var/lib/postgresql/data/pgdata + volumes: + - ${APP_DATA_DIR}/data/storage/postgres:/var/lib/postgresql/data + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U affine'] + interval: 10s + timeout: 5s + retries: 5 diff --git a/agent-zero/data/.gitkeep b/agent-zero/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agent-zero/dfwebos-app.yml b/agent-zero/dfwebos-app.yml new file mode 100644 index 0000000..e624025 --- /dev/null +++ b/agent-zero/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1 +id: agent-zero +name: Agent Zero +tagline: ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ, органичная агСнтная структура, которая растСт ΠΈ учится вмСстС с Π²Π°ΠΌΠΈ. +category: ai +version: "v1.9" +port: 3005 +description: >- + «АгСнт Ноль» β€” это ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ, органичная агСнтная структура, которая растСт ΠΈ учится вмСстС с Π²Π°ΠΌΠΈ. + Он ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Dockerized ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Ρ‡ΠΈ Π² тСкст ΠΈ TTS. + + + **ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ особСнности:** + - **ΠŸΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния**: ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. + - **ИспользованиС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°:** МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ (Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅). + – **ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅:** ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄. + - **ΠŸΠ°ΠΌΡΡ‚ΡŒ:** учится Π½Π° основС взаимодСйствия. + + + **Начиная:** + 1. ЗапуститС АгСнт Ноль. + 2. НастройтС свои ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² настройках. + + + ⚠️ **Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:** АгСнт Π—Π΅Ρ€ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄. Π‘Π΅Π³ΠΈΡ‚Π΅ остороТно. +developer: Agent Zero AI +website: https://github.com/agent0ai/agent-zero +submitter: slimatic +submission: https://github.com/getumbrel/dfwebos-apps/pull/4115 +repo: https://github.com/agent0ai/agent-zero +support: https://github.com/agent0ai/agent-zero/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "" +defaultPassword: "" +dependencies: [] +releaseNotes: "" +path: "" diff --git a/agent-zero/docker-compose.yml b/agent-zero/docker-compose.yml new file mode 100644 index 0000000..bb8d852 --- /dev/null +++ b/agent-zero/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: agent-zero_web_1 + APP_PORT: 80 + + web: + image: agent0ai/agent-zero:v1.9@sha256:a18a33c0e3dcc2f111979d6c874ead4be4a820513d3d3bfb931c5b47fcb301a9 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/a0 + environment: + - ALLOWED_ORIGINS=http://${DEVICE_DOMAIN_NAME}:${APP_AGENTZERO_PORT},http://${DEVICE_HOSTNAME}:${APP_AGENTZERO_PORT},${APP_AGENTZERO_LOCAL_URLS} diff --git a/agent-zero/exports.sh b/agent-zero/exports.sh new file mode 100644 index 0000000..2e6df1b --- /dev/null +++ b/agent-zero/exports.sh @@ -0,0 +1,16 @@ +export APP_AGENTZERO_PORT="3005" + +local_ips=$(hostname --all-ip-addresses 2> /dev/null) || local_ips="" +export APP_AGENTZERO_LOCAL_IPS="${local_ips}" + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ URLs с http:// ΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠΌ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ запятыми. +ips_with_port=$(for ip in $local_ips; do + # ΠžΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ адрСса IPv6 Π² [] + if [[ "$ip" == *:* ]]; then + echo -n "http://[$ip]:$APP_AGENTZERO_PORT," + else + echo -n "http://$ip:$APP_AGENTZERO_PORT," + fi +done | sed 's/,$//') + +export APP_AGENTZERO_LOCAL_URLS="${ips_with_port}" diff --git a/agora/data/entrypoint.sh b/agora/data/entrypoint.sh new file mode 100755 index 0000000..2eaac8e --- /dev/null +++ b/agora/data/entrypoint.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env sh + +# ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ +/filebrowser config init +/filebrowser config set --branding.name "Agora Admin File Browser" +/filebrowser users add dfwebos ${APP_PASSWORD} + +exec /filebrowser -p 8080 --baseurl "/admin/files" diff --git a/agora/data/www/admin/index.html b/agora/data/www/admin/index.html new file mode 100644 index 0000000..f39c7f0 --- /dev/null +++ b/agora/data/www/admin/index.html @@ -0,0 +1,16 @@ + + + + + ПанСль администратора Agora + + +

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² панСль администратора Agora!

+ + + diff --git a/agora/database/filebrowser.db b/agora/database/filebrowser.db new file mode 100644 index 0000000..e69de29 diff --git a/agora/dfwebos-app.yml b/agora/dfwebos-app.yml new file mode 100644 index 0000000..a021c94 --- /dev/null +++ b/agora/dfwebos-app.yml @@ -0,0 +1,30 @@ +manifestVersion: 1 +id: agora +category: files +name: Agora +version: "0.1.2" +tagline: ΠŸΡ€ΠΎΠ΄Π°ΠΉΡ‚Π΅ свои Ρ„Π°ΠΉΠ»Ρ‹ Π·Π° Bitcoin +description: >- + Agora β€” это ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π·Π° + Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½ с использованиСм сСти Lightning. + + + Agora обслуТиваСт содСрТимоС локального ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, прСдоставляя списки Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ загруТая ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· HTTP. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΏΠΎΠ»Π½Ρ‹ΠΉ PDF-Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ PDF-Ρ„Π°ΠΉΠ»Ρ‹ Π² своСм Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Если Π°Π³ΠΎΡ€Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΊ ΡƒΠ·Π»Ρƒ LND, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈΡΡŒ сСтСвыС ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Lightning. +developer: Casey Rodarmor & SΓΆnke Hahn +website: https://agora-org.github.io/agora/ +dependencies: + - lightning +repo: https://github.com/agora-org/agora +support: https://t.me/agoradiscussion +port: 12080 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: /admin/ +deterministicPassword: true +defaultUsername: dfwebos +torOnly: false +submitter: Jonathan Zernik +submission: https://github.com/getumbrel/umbrel/pull/1282 +releaseNotes: "" \ No newline at end of file diff --git a/agora/docker-compose.yml b/agora/docker-compose.yml new file mode 100644 index 0000000..65350d1 --- /dev/null +++ b/agora/docker-compose.yml @@ -0,0 +1,65 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_AGORA_IP + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + filebrowser: + image: filebrowser/filebrowser:v2.21.1@sha256:e1f43b1b8a1acb1d7cd5f934454e7a2ef571ea3bab48b0e1ed0fa97ef9df8d69 + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/files:/srv + - ${APP_DATA_DIR}/database/filebrowser.db:/database.db + - ${APP_DATA_DIR}/data:/data + environment: + APP_PASSWORD: "$APP_PASSWORD" + entrypoint: /data/entrypoint.sh + networks: + default: + ipv4_address: $APP_AGORA_FILEBROWSER_IP + + agora: + image: ghcr.io/agora-org/agora:sha-48d3205@sha256:35eda120a8d868c7fa3b9cbdcad7cc2245b9fe7e0c5356c8091bb0bf9a65222d + restart: on-failure + init: true + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/files:/files + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + user: "1000:1000" + environment: + # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды LND + LND_RPC_AUTHORITY: "$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT" + TLS_CERT_PATH: "/lnd/tls.cert" + INVOICES_MACAROON_PATH: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/invoice.macaroon" + + # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды прилоТСния + FILES_DIR: "/files" + AGORA_PORT: 8080 + networks: + default: + ipv4_address: $APP_AGORA_SERVER_IP + + nginx: + image: nginx:1.19-alpine@sha256:07ab71a2c8e4ecb19a5a5abcfb3a4f175946c001c8af288b1aa766d67b0d05d2 + init: true + restart: on-failure + volumes: + - ${APP_DATA_DIR}/nginx/nginx.conf.template:/etc/nginx/templates/nginx.conf.template + - ${APP_DATA_DIR}/data/www:/usr/share/nginx/html + environment: + NGINX_ENVSUBST_OUTPUT_DIR: /etc/nginx/ + APP_AGORA_SERVER_IP: $APP_AGORA_SERVER_IP + APP_AGORA_FILEBROWSER_IP: $APP_AGORA_FILEBROWSER_IP + APP_HIDDEN_SERVICE: $APP_HIDDEN_SERVICE + depends_on: + - agora + - filebrowser + networks: + default: + ipv4_address: $APP_AGORA_IP diff --git a/agora/exports.sh b/agora/exports.sh new file mode 100644 index 0000000..55346a0 --- /dev/null +++ b/agora/exports.sh @@ -0,0 +1,4 @@ +export APP_AGORA_IP="10.21.21.87" +export APP_AGORA_PORT="12080" +export APP_AGORA_SERVER_IP="10.21.21.88" +export APP_AGORA_FILEBROWSER_IP="10.21.21.89" \ No newline at end of file diff --git a/agora/files/.gitkeep b/agora/files/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agora/nginx/nginx.conf.template b/agora/nginx/nginx.conf.template new file mode 100644 index 0000000..f98a83d --- /dev/null +++ b/agora/nginx/nginx.conf.template @@ -0,0 +1,28 @@ +events { } + +http { + + +server { + listen 80; + server_name _; + + location / { + proxy_pass http://${APP_AGORA_SERVER_IP}:8080; + } + + location /admin { + root /usr/share/nginx/html; + ssi on; + set $ssihiddenservice "${APP_HIDDEN_SERVICE}"; + index index.html; + } + + location /admin/files { + client_max_body_size 0; + proxy_pass http://${APP_AGORA_FILEBROWSER_IP}:8080; + } + + } + +} diff --git a/airtrail/data/db/.gitkeep b/airtrail/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/airtrail/data/uploads/.gitkeep b/airtrail/data/uploads/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/airtrail/dfwebos-app.yml b/airtrail/dfwebos-app.yml new file mode 100644 index 0000000..1131371 --- /dev/null +++ b/airtrail/dfwebos-app.yml @@ -0,0 +1,41 @@ +manifestVersion: 1 +id: airtrail +category: files +name: AirTrail +version: "3.9.0" +tagline: БоврСмСнная ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ систСма отслСТивания рСйсов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. +description: >- + Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ свои рСйсы ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΠΎΠ»Π΅Ρ‚ΠΎΠ². + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + - **ΠšΠ°Ρ€Ρ‚Π° ΠΌΠΈΡ€Π°**: просматривайтС всС свои рСйсы Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Π΅ ΠΌΠΈΡ€Π°. + + - **Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΏΠΎΠ»Π΅Ρ‚ΠΎΠ²**: отслСТивайтС всС свои рСйсы Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. + + - **Бтатистика**: ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ прСдставлСниС ΠΎΠ± истории ΠΏΠΎΠ»Π΅Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ статистики. + + - **НСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ**: управляйтС нСсколькими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ рСйсами, Π·Π°Ρ‰ΠΈΡ‰Π°ΠΉΡ‚Π΅ свои Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ с вашим ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ OAuth. + + - **Адаптивный Π΄ΠΈΠ·Π°ΠΉΠ½**: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° любом устройствС с Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ. + + - **Π’Π΅ΠΌΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ**: ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ свСтлым ΠΈ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ. + + - **Π˜ΠΌΠΏΠΎΡ€Ρ‚ рСйсов**: ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ рСйсы ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источников, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ MyFlightRadar24, App in the Air ΠΈ JetLog. +releaseNotes: "" +developer: Johan Ohly +website: https://airtrail.johan.ohly.dk +dependencies: [] +repo: https://github.com/johanohly/AirTrail +support: https://github.com/johanohly/AirTrail/issues +port: 3256 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: cergmin +submission: https://github.com/getumbrel/dfwebos-apps/pull/4199 diff --git a/airtrail/docker-compose.yml b/airtrail/docker-compose.yml new file mode 100644 index 0000000..5607d7d --- /dev/null +++ b/airtrail/docker-compose.yml @@ -0,0 +1,40 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: airtrail_app_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + app: + image: johly/airtrail:v3.9.0@sha256:8e909ac815046b0eefa773c33e69fd0aeaad84398ed49dd34f926e7f5daa3fdf + user: "1000:1000" + restart: on-failure + depends_on: + postgres: + condition: service_healthy + environment: + UPLOAD_LOCATION: /app/uploads + DB_URL: postgres://airtrail:itworkslocally@airtrail_postgres_1:5432/airtrail + volumes: + - ${APP_DATA_DIR}/data/uploads:/app/uploads + + postgres: + image: postgres:18.3-alpine@sha256:52098013b4b64a746626437d38afc03cabff6cdeb4d3d92e2342aa95f0ce56ea + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + POSTGRES_DB: airtrail + POSTGRES_USER: airtrail + POSTGRES_PASSWORD: itworkslocally + PGDATA: /data/pgdata + healthcheck: + test: "pg_isready -U airtrail -h localhost -d airtrail" + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + volumes: + - ${APP_DATA_DIR}/data/db:/data diff --git a/akaunting/db/.gitkeep b/akaunting/db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/akaunting/db/.gitkeep @@ -0,0 +1 @@ + diff --git a/akaunting/dfwebos-app.yml b/akaunting/dfwebos-app.yml new file mode 100644 index 0000000..98f0b9a --- /dev/null +++ b/akaunting/dfwebos-app.yml @@ -0,0 +1,67 @@ +manifestVersion: 1 +id: akaunting +name: Akaunting +tagline: Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎΠ΅ бухгалтСрскоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΌΠ°Π»ΠΎΠ³ΠΎ бизнСса ΠΈ фрилансСров +category: finance +version: "3.1.21" +port: 8773 +description: >- + πŸ“Š Акаунтинг β€” ΠΌΠΎΡ‰Π½ΠΎΠ΅ бухгалтСрскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ финансами для ΠΌΠ°Π»ΠΎΠ³ΠΎ бизнСса, фрилансСров ΠΈ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚Π΅Π»Π΅ΠΉ. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ комплСксноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для управлСния Π΄ΠΎΡ…ΠΎΠ΄Π°ΠΌΠΈ, расходами, счСтами ΠΈ финансовыми ΠΎΡ‚Ρ‡Π΅Ρ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±Π·ΠΎΡ€Π° Π²Π°ΡˆΠΈΡ… финансов. Благодаря ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятному Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΌ функциям Akaunting ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя Π½Π° административных Π·Π°Π΄Π°Ρ‡Π°Ρ…, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. + + + Akaunting создан для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π°ΡˆΠΈΡ… повсСднСвных бухгалтСрских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ: ΠΎΡ‚ создания ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… счСтов Π΄ΠΎ управлСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, поставщиками ΠΈ рСгулярными ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°ΠΌΠΈ. Он Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ²Π°Π»ΡŽΡ‚Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, интСграция ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ для Π±ΠΎΠ»Π΅Π΅ быстрого двиТСния Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹Ρ… срСдств ΠΈ отслСТиваниС запасов для обСспСчСния согласованности запасов ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆ. Для Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ трСбуСтся Π΅Ρ‰Π΅ большС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, встроСнный ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² соотвСтствии с вашими потрСбностями. + + + β„Ή Для доступа ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прилоТСния Π²Π°ΠΌ понадобится ΠΊΠ»ΡŽΡ‡ API. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° сайтС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°: https://akaunting.com. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности: + + + πŸ’° ВыставлСниС счСтов. Π‘ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ создавайтС, настраивайтС ΠΈ отправляйтС ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ счСта. + + + πŸ“₯ ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ расходов. ЗаписывайтС, классифицируйтС ΠΈ отслСТивайтС расходы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своим Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ. + + + πŸ“Š ЀинансовыС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎ прибылях ΠΈ ΡƒΠ±Ρ‹Ρ‚ΠΊΠ°Ρ…, балансовыС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ½ΡΡ‚ΡŒ вашС финансовоС состояниС. + + + πŸ‘₯ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ поставщиками. Π”Π΅Ρ€ΠΆΠΈΡ‚Π΅ всС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΈ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΡ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π»Π΅Π³ΠΊΠΎ доступными. + + + πŸ’³ Онлайн-ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°ΠΉΡ‚Π΅ клиСнтскиС ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Ρ‡Π΅Ρ€Π΅Π· PayPal, Stripe ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ популярныС ΡˆΠ»ΡŽΠ·Ρ‹. + + + 🌍 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ²Π°Π»ΡŽΡ‚Π½ΠΎΡΡ‚ΠΈ. ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π°Π»ΡŽΡ‚Π°Ρ… с автоматичСским ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ курса. + + + 🧾 РСгулярноС выставлСниС счСтов. АвтоматизируйтС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ счСта ΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ ΠΏΠΎ подпискам ΠΈΠ»ΠΈ долгосрочным ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°ΠΌ. + + + πŸ“¦ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ запасами. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΈ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + + + πŸ”§ Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ App Store. Π Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ надстроСк, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ расчСт Π·Π°Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ. +developer: Akaunting Inc. +website: https://akaunting.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3290 +repo: https://github.com/akaunting/akaunting +support: https://github.com/akaunting/akaunting/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΠΎΠ΅ исправлСниС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​проблСма с вСрсиСй модуля кэша. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/akaunting/akaunting/releases. +dependencies: [] +path: "" +defaultUsername: dfwebos@dfwebos.local +deterministicPassword: true diff --git a/akaunting/docker-compose.yml b/akaunting/docker-compose.yml new file mode 100644 index 0000000..8f5feb1 --- /dev/null +++ b/akaunting/docker-compose.yml @@ -0,0 +1,41 @@ +version: "3.7" + +services: + + app_proxy: + environment: + APP_HOST: akaunting_app_1 + APP_PORT: 80 + + app: + image: akaunting/akaunting:3.1.21@sha256:918bbc77981e5b96ab6aa6838491cfa7c98cb4ee7bbf9532ee083e7e66d04255 + # Π±Π΅Π· Ρ€ΡƒΡ‚Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ + #user: "1000:1000" + restart: on-failure + environment: + AKAUNTING_SETUP: "true" + LOCALE: en-US + DB_HOST: akaunting_db_1 + DB_PORT: 3306 + DB_NAME: akaunting + DB_USERNAME: admin + DB_PASSWORD: akaunting_password + DB_PREFIX: asd_ + COMPANY_NAME: "My Company" + COMPANY_EMAIL: my@company.com + ADMIN_EMAIL: dfwebos@dfwebos.local + ADMIN_PASSWORD: ${APP_PASSWORD} + depends_on: + - db + + db: + image: mariadb:11.8.2@sha256:2bcbaec92bd9d4f6591bc8103d3a8e6d0512ee2235506e47a2e129d190444405 + user: "1000:1000" + restart: on-failure + environment: + MYSQL_DATABASE: akaunting + MYSQL_USER: admin + MYSQL_PASSWORD: akaunting_password + MYSQL_RANDOM_ROOT_PASSWORD: "yes" + volumes: + - ${APP_DATA_DIR}/db:/var/lib/mysql diff --git a/alby-nostr-wallet-connect/data/.gitkeep b/alby-nostr-wallet-connect/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/alby-nostr-wallet-connect/dfwebos-app.yml b/alby-nostr-wallet-connect/dfwebos-app.yml new file mode 100644 index 0000000..4961451 --- /dev/null +++ b/alby-nostr-wallet-connect/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1.2 +id: alby-nostr-wallet-connect +name: Nostr Wallet Connect +tagline: Π‘ΠΈΠ»Π° зарядов Π½Π° ΠΊΠΎΠ½Ρ‡ΠΈΠΊΠ°Ρ… Π²Π°ΡˆΠΈΡ… ΠΏΠ°Π»ΡŒΡ†Π΅Π² +category: bitcoin +version: "0.4.2" +port: 58000 +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± устарСвании: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° объявили это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΈ поэтому большС Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ обновлСния. + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Alby Hub Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ являСтся Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ этого прилоТСния ΠΎΡ‚ Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈ Π΅Π³ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто Π½Π΅Π³ΠΎ. + + + ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свой ΡƒΠ·Π΅Π» LND Ρ‡Π΅Ρ€Π΅Π· Nostr, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запись Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Damus & Amethyst. + + + πŸ› οΈΠ˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ + + - ПошаговоС руководство ΠΏΠΎ амСтисту: https://blog.getalby.com/native-zapping-in-amethyst + + - Π’ΠΈΠ΄Π΅ΠΎΠ³ΠΈΠ΄ Damus: https://streamable.com/bareih +developer: Alby +website: http://getalby.com/ +submitter: Alby +submission: https://github.com/getumbrel/dfwebos-apps/pull/636 +repo: https://github.com/getAlby/nostr-wallet-connect +support: https://github.com/getAlby/nostr-wallet-connect/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + - Π’ этом выпускС исправлСн ряд ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ: высокая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ЦП ΠΈ мСдлСнная Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с большим количСством ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + + - Π’Π°ΠΊΠΆΠ΅ исправлСно нСсоотвСтствиС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. +dependencies: + - lightning +path: "" +defaultUsername: "" +defaultPassword: "" +disabled: true diff --git a/alby-nostr-wallet-connect/docker-compose.yml b/alby-nostr-wallet-connect/docker-compose.yml new file mode 100644 index 0000000..0ccc043 --- /dev/null +++ b/alby-nostr-wallet-connect/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: alby-nostr-wallet-connect_server_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + server: + image: ghcr.io/getalby/nostr-wallet-connect:0.4.2@sha256:8e75c28eba2155ab1ad605e8d9c8de7e601dcc55d497e8641d37ae4cb3a4e433 + volumes: + - ${APP_DATA_DIR}/data:/data + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + LN_BACKEND_TYPE: "LND" + LND_ADDRESS: $APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT + LND_CERT_FILE: "/lnd/tls.cert" + LND_MACAROON_FILE: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon" + DATABASE_URI: "/data/nostr-wallet-connect.db" + COOKIE_SECRET: "666" + restart: on-failure + stop_grace_period: 1m diff --git a/albyhub/data/.gitkeep b/albyhub/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/albyhub/dfwebos-app.yml b/albyhub/dfwebos-app.yml new file mode 100644 index 0000000..2979c33 --- /dev/null +++ b/albyhub/dfwebos-app.yml @@ -0,0 +1,57 @@ +manifestVersion: 1 +id: albyhub +name: Alby Hub ✨ +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ кошСлСк Lightning со встроСнными ΡƒΠ·Π»Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ ΠΊ прилоТСниям +category: bitcoin +version: "1.21.6" +port: 59000 +description: >- + Alby Hub β€” это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ кошСлСк Bitcoin Lightning с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ самым простым Π² использовании сСтСвым ΡƒΠ·Π»ΠΎΠΌ Lightning, доступным ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ. + НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ частным Π»ΠΈΡ†ΠΎΠΌ, создатСлСм ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Alby Hub β€” это ваш Ρ†Π΅Π½Ρ‚Ρ€ бСспрСпятствСнных ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ Bitcoin. + + + Π›Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ прилоТСниям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Alby ΠΈΠ»ΠΈ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Alby Go, создавайтС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ кошСльки для сСмьи ΠΈ Π΄Ρ€ΡƒΠ·Π΅ΠΉ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими срСдствами β€” ΠΈ всС это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятного интСрфСйса ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² API. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + + Alby Hub ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ двумя способами: + + 1) Π’ качСствС Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ прилоТСния Π±Π΅Π· установлСнного ΡƒΠ·Π»Π° Lightning (LND): ΠΏΡ€ΠΈ установкС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠΠ°Ρ‡Π°Ρ‚ΡŒ (LDK)Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΡƒΠ·Π΅Π» Lightning Π½Π° основС LDK. + + 2) ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Lightning Node (LND), Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌΡƒ Π½Π° вашСм DFWebOS: ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сначала установитС ΠΈ настройтС Lightning Node Π½Π° вашСм DFWebOS. Π—Π°Ρ‚Π΅ΠΌ установитС Alby Hub, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски настроится Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Lightning Node, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌΡƒ Π½Π° вашСм DFWebOS. + + + ΠŸΠžΠ›Π•Π—ΠΠ«Π• Π‘Π‘Π«Π›ΠšΠ˜ + - Запросы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, доска ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² - https://feedback.getalby.com/-alby-hub-request-a-feature + - БообщСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² - https://discord.getalby.com/ + - Бписок ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» NWC - https://github.com/getAlby/awesome-nwc +developer: Alby +website: https://albyhub.com +submitter: Alby +submission: https://github.com/getumbrel/dfwebos-apps/pull/1409 +repo: https://github.com/getAlby/hub +support: https://support.getalby.com +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ измСнСния Π² этом выпускС: + - ОбновлСна β€‹β€‹Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Boltz для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π°. + - ΠžΠ±ΠΌΠ΅Π½Ρ‹ (Lightning Π½Π° ΠΎΠ½Ρ‡Π΅ΠΉΠ½) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 ΠΎΠ½Ρ‡Π΅ΠΉΠ½ подтвСрТдСния вмСсто 2 + - На страницу Π·Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° β€‹β€‹Ρ€Π΅Ρ„Π΅Ρ€Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Алби. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Castamatic Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + - Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° Alby ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ со 150 тыс. Π΄ΠΎ 250 тыс. сат. + - Π£Π΄Π°Π»Π΅Π½ макси-Ρ€Π΅ΠΆΠΈΠΌ Bitcoin. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​страница 404. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок ΠΈ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/getAlby/hub/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/albyhub/docker-compose.yml b/albyhub/docker-compose.yml new file mode 100644 index 0000000..b93166d --- /dev/null +++ b/albyhub/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: albyhub_server_1 + APP_PORT: 8080 + server: + image: ghcr.io/getalby/hub:v1.21.6@sha256:dc05806a3384f57ded8aca2ba58d47ec93a0aeb213539b5faf32e7a3c71b5c32 + user: 1000:1000 + volumes: + - ${APP_DATA_DIR}/data:/data + - ${DFWEBOS_ROOT}/app-data/lightning/data/lnd:/lnd:ro + environment: + LN_BACKEND_TYPE: ${APP_ALBYHUB_LN_BACKEND:-LDK} + LND_ADDRESS: ${APP_ALBYHUB_LND_ADDRESS} + LND_CERT_FILE: ${APP_ALBYHUB_LND_CERT_FILE} + LND_MACAROON_FILE: ${APP_ALBYHUB_LND_MACAROON_FILE} + WORK_DIR: "/data/albyhub" + COOKIE_SECRET: ${APP_SEED} + LOG_EVENTS: "true" + restart: on-failure + stop_grace_period: 3m diff --git a/albyhub/exports.sh b/albyhub/exports.sh new file mode 100644 index 0000000..043efef --- /dev/null +++ b/albyhub/exports.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Lightning Node, ΠΈ Ссли Π΄Π°, экспортируйтС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. +installed_apps=$("${DFWEBOS_ROOT}/scripts/app" ls-installed) + +if echo "$installed_apps" | grep --quiet -x 'lightning'; then + export APP_ALBYHUB_LN_BACKEND="LND" + export APP_ALBYHUB_LND_ADDRESS="10.21.21.9:10009" + export APP_ALBYHUB_LND_CERT_FILE="/lnd/tls.cert" + # Π‘Π΅Π· `lightning` Π² качСствС зависимости Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΌΠ°ΠΊΠ°Ρ€ΠΎΠ½ LND. + # Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Alby Hub Π² настоящСС врСмя Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с основной ΡΠ΅Ρ‚ΡŒΡŽ. + # Когда Π² DFWebOS Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ зависимости, ΠΌΡ‹ смоТСм Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ этому вопросу. + export APP_ALBYHUB_LND_MACAROON_FILE="/lnd/data/chain/bitcoin/mainnet/admin.macaroon" +fi diff --git a/appsmith/data/app/.gitkeep b/appsmith/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/appsmith/dfwebos-app.yml b/appsmith/dfwebos-app.yml new file mode 100644 index 0000000..63da46b --- /dev/null +++ b/appsmith/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1 +id: appsmith +name: Appsmith +tagline: ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для создания ΠΏΠ°Π½Π΅Π»Π΅ΠΉ администратора, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… инструмСнтов ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ. +category: developer +version: "v1.99" +port: 8654 +description: >- + Appsmith β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ написания ΠΊΠΎΠ΄Π°, призванная ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ быстро ΠΈ эффСктивно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ инструмСнты ΠΈ бизнСс-прилоТСния. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΏΠ°Π½Π΅Π»ΠΈ администратора, графичСскиС интСрфСйсы Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы утвСрТдСния, Appsmith прСдоставляСт ΠΌΠΎΡ‰Π½ΡƒΡŽ, Π½ΠΎ Π³ΠΈΠ±ΠΊΡƒΡŽ срСду для создания Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· Π·Π°Ρ‚Ρ€Π°Ρ‚ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. + + + По своСй сути Appsmith ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ интСрфСйс пСрСтаскивания с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 45 настраиваСмыми Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ, Π±Π΅ΡΡˆΠΎΠ²Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 18 источниками Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ API PostgreSQL, MongoDB, REST ΠΈ GraphQL, Π° Ρ‚Π°ΠΊΠΆΠ΅ встроСнный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ JavaScript для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ интСрактивности. Π­Ρ‚Π° комбинация позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ нСтСхничСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ динамичСскиС прилоТСния, управляСмыС Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. + + + Appsmith ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий Π½Π° основС Git, Ρ‡Ρ‚ΠΎ позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ эффСктивно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ измСнСниями ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π•Π³ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° основана Π½Π° шаблонС модСль-прСдставлСниС-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ (MVC), ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ Ρ‡ΠΈΡΡ‚ΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Appsmith ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ развСртывания ΠΊΠ°ΠΊ Π² ΠΎΠ±Π»Π°ΠΊΠ΅, Ρ‚Π°ΠΊ ΠΈ Π½Π° собствСнном хостингС, обСспСчивая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ вашими прилоТСниями. + + + Appsmith, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ 10 000 ΠΊΠΎΠΌΠ°Π½Π΄ Π² 150 странах, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ Dropbox, Twilio ΠΈ GSK, прСдставляСт собой ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для создания Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… инструмСнтов, ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. + + + Π―Π²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ стартапом, стрСмящимся ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, ΠΈΠ»ΠΈ прСдприятиСм, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡ‰Π΅Ρ‚ настраиваСмыС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Appsmith ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ инструмСнты ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ для удовлСтворСния Π²Π°ΡˆΠΈΡ… потрСбностСй. +developer: Appsmith +website: https://www.appsmith.com/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/2634 +repo: https://github.com/appsmithorg/appsmith +support: https://discord.com/invite/rBTTVJp +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +defaultUsername: "" +defaultPassword: "" +dependencies: [] +releaseNotes: >- + Π’ этом выпускС основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся исправлСниям бСзопасности ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΠΌ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ: + - 🚨 Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ мноТСство уязвимостСй бСзопасности, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π·Π°Ρ‰ΠΈΡ‚Ρƒ SSRF, ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ XSS ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ACL. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​проблСма, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ³ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ дСйствия ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​автоматичСская вставка Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠ°Ρ ΠΊ сбоям Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ со стилСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€Π° полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ. + - ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ состояниС Π³ΠΎΠ½ΠΊΠΈ ΠΏΡ€ΠΈ создании ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​проблСма, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ запросы ΠΊ источнику Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π»ΠΈΡΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Π΅ отсутствовало. + - Нормализованы элСктронныС письма ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ для удалСния Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… символов ΠΠ½ΠΈΠΊΠΎΠ΄Π°. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/appsmithorg/appsmith/releases. +path: "" diff --git a/appsmith/docker-compose.yml b/appsmith/docker-compose.yml new file mode 100644 index 0000000..2be3e75 --- /dev/null +++ b/appsmith/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: appsmith_app_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + app: + image: appsmith/appsmith-ce:v1.99@sha256:eb9c41524a4be8103666b38b437d5496cb62ead292d9642ba130d8ed37a28aca + environment: + APPSMITH_ENCRYPTION_PASSWORD: ${APP_PASSWORD} + APPSMITH_ENCRYPTION_SALT: ${APP_PASSWORD} + volumes: + - ${APP_DATA_DIR}/data/app:/appsmith-stacks diff --git a/arcane/data/app_data/.gitkeep b/arcane/data/app_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/arcane/data/app_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/arcane/data/docker/.gitkeep b/arcane/data/docker/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/arcane/data/docker/.gitkeep @@ -0,0 +1 @@ + diff --git a/arcane/data/projects/.gitkeep b/arcane/data/projects/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/arcane/data/projects/.gitkeep @@ -0,0 +1 @@ + diff --git a/arcane/dfwebos-app.yml b/arcane/dfwebos-app.yml new file mode 100644 index 0000000..9166581 --- /dev/null +++ b/arcane/dfwebos-app.yml @@ -0,0 +1,60 @@ +manifestVersion: 1.1 +id: arcane +category: developer +name: Arcane +version: "1.18.1" +tagline: ΠŸΡ€ΠΎΡΡ‚Π°Ρ ΠΈ соврСмСнная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° управлСния Docker. +description: >- + ⚠️ ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для своих ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠΌΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Docker. Π”Π°Π½Π½Ρ‹Π΅ Π² Ρ‚ΠΎΠΌΠ°Ρ…, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎ привязкС, Π±ΡƒΠ΄ΡƒΡ‚ потСряны ΠΏΡ€ΠΈ пСрСзапускС ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ прилоТСния Arcane. + + + ⚠️ Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Docker ΠΈ вашими прилоТСниями DFWebOS. + + + Arcane β€” это мощная ΠΈ соврСмСнная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, прСдназначСнная для упрощСния взаимодСйствия Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² со срСдами Docker. Он обСспСчиваСт Ρ†Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ всС аспСкты управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ, ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ сСти, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΌΠ° с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ. + + + Помимо Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ управлСния, Arcane ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, прСдлагая ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ инструмСнты, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² своих Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссах. Π•Π³ΠΎ встроСнный Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» позволяСт Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, Π° встроСнный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° обСспСчиваСт Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ настройку ΠΈΠ»ΠΈ настройку сцСнариСв Π±Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° внСшниС прилоТСния. Анализ систСмы Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ прСдставлСниС ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΡ… инфраструктуры ΠΈ использовании рСсурсов. + + + ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΈΠ·Π²Π°Π½Π° ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ Ρ€Π°Π·Ρ€Ρ‹Π² ΠΌΠ΅ΠΆΠ΄Ρƒ простотой ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ. Он сочСтаСт Π² сСбС чистый соврСмСнный Π΄ΠΈΠ·Π°ΠΉΠ½ с ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ сСрвСрными возмоТностями, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ подходящим ΠΊΠ°ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… локально, Ρ‚Π°ΠΊ ΠΈ для профСссионалов, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ установками. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Arcane ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ большС ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° использованиС Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Π΅ΠΌ Π½Π° административной ΠΏΠ°Π½Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° создании ΠΈ запускС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Π½Π΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ слоТных ΠΊΠΎΠΌΠ°Π½Π΄ Docker. + + + 🧩 Arcane on DFWebOS ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ этим рСкомСндациям, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. + + + 1. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠΌΠ° Docker для своих ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π›ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, хранящиСся Π² привязках, Π±ΡƒΠ΄ΡƒΡ‚ потСряны ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ пСрСзапускС прилоТСния Arcane. + + + 2. ИспользованиС ΠΏΠΎΡ€Ρ‚ΠΎΠ². ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ вашими ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, систСмными слуТбами DFWebOS ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ установлСнными ΠΈΠ»ΠΈ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌΠΈ прилоТСниями. НазначайтС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠΎΡ€Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹. + + + 3. ПовСдСниС ΠΏΡ€ΠΈ пСрСзапускС. НастройтС для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ пСрСзапуска, Ссли ΠΎΠ½Π° Π½Π΅ остановлСна ​​или всСгда. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… автоматичСский пСрСзапуск послС пСрСзапуска ΠΈΠ»ΠΈ обновлСния Arcane. + + + 4. Π’Π΅Π±-доступ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌΡƒ Π²Π΅Π±-интСрфСйс, ΠΏΠΎ адрСсу `dfwebos.local:PORT_NUMBER`. НапримСр, Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 5050, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ http://dfwebos.local:5050` Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. +website: https://getarcane.app/ +dependencies: [] +repo: https://github.com/getarcaneapp/arcane +support: https://github.com/getarcaneapp/arcane/issues +port: 3552 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +defaultUsername: "arcane" +defaultPassword: "arcane-admin" +releaseNotes: >- + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΈ создании ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ синхронизации Git. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/getarcaneapp/arcane/releases. +permissions: + - GPU +developer: Arcane +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/4017 diff --git a/arcane/docker-compose.yml b/arcane/docker-compose.yml new file mode 100644 index 0000000..4998ab7 --- /dev/null +++ b/arcane/docker-compose.yml @@ -0,0 +1,43 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: arcane_arcane_1 + APP_PORT: 3552 + + docker: + image: docker:27.2.0-dind@sha256:f9f72ad901a78f27be922b2d320bbc263174f12919c1b37e6a01f828fa904565 + privileged: true + network_mode: host + stop_grace_period: 1m + restart: on-failure + environment: + DOCKER_ENSURE_BRIDGE: "dind0:10.32.0.1/16" + entrypoint: /entrypoint.sh + command: > + dockerd + --bridge dind0 + --data-root /data/data + --exec-root /data/exec + --host unix:///data/docker.sock + --pidfile /data/docker.pid + volumes: + - ${APP_DATA_DIR}/entrypoint.sh:/entrypoint.sh + - ${APP_DATA_DIR}/data/docker:/data + + arcane: + image: ghcr.io/getarcaneapp/arcane:v1.18.1@sha256:6d8a51ddca2399106ea20da9db17271a91dd97150cada449aba4edce2ae682c2 + depends_on: + - docker + restart: on-failure + environment: + APP_URL: http://${DEVICE_DOMAIN_NAME}:3552 + PUID: 1000 + PGID: 1000 + ENCRYPTION_KEY: ${APP_PASSWORD} + JWT_SECRET: ${APP_PASSWORD} + volumes: + - ${APP_DATA_DIR}/data/app_data:/app/data + - ${APP_DATA_DIR}/data/projects:/app/data/projects + - ${APP_DATA_DIR}/data/docker:/var/run diff --git a/arcane/entrypoint.sh b/arcane/entrypoint.sh new file mode 100755 index 0000000..9e29bdf --- /dev/null +++ b/arcane/entrypoint.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +pidfile="/var/run/docker.pid" +if [[ -f "${pidfile}" ]] +then + rm -f "${pidfile}" +fi + +for command in iptables iptables-restore iptables-restore-translate iptables-save iptables-translate +do + ln -sf /sbin/xtables-nft-multi /sbin/$command +done + +ensure_bridge_exists() { + local name="${1}" + local ip_range="${2}" + if ip link show "${name}" &>/dev/null + then + echo "Bridge '${name}' already exists. Skipping creation." + ip addr show "${name}" + return + fi + echo "Bridge '${name}' does not exist. Creating..." + ip link add "${name}" type bridge + ip addr add "${ip_range}" dev "${name}" + ip link set "${name}" up + echo "Bridge '${name}' is now up with IP range '${ip_range}'." + ip addr show "${name}" +} + +if [[ "${DOCKER_ENSURE_BRIDGE}" != "" ]] +then + bridge="${DOCKER_ENSURE_BRIDGE%%:*}" + ip_range="${DOCKER_ENSURE_BRIDGE#*:}" + ensure_bridge_exists "${bridge}" "${ip_range}" +fi + +exec dockerd-entrypoint.sh $@ diff --git a/arcane/hooks/pre-start b/arcane/hooks/pre-start new file mode 100755 index 0000000..199a463 --- /dev/null +++ b/arcane/hooks/pre-start @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/data" + +# Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ Ρ„Π°ΠΉΠ» docker.pid, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ послС ΠΏΠ΅Ρ€Π΅Π±ΠΎΠ΅Π² Π² ΠΏΠΎΠ΄Π°Ρ‡Π΅ элСктроэнСргии ΠΈΠ»ΠΈ сбоСв. +rm -f "${APP_DATA_DIR}/docker/docker.pid" diff --git a/audiobookshelf/data/config/.gitkeep b/audiobookshelf/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/audiobookshelf/data/metadata/.gitkeep b/audiobookshelf/data/metadata/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/audiobookshelf/dfwebos-app.yml b/audiobookshelf/dfwebos-app.yml new file mode 100644 index 0000000..d44bbea --- /dev/null +++ b/audiobookshelf/dfwebos-app.yml @@ -0,0 +1,76 @@ +manifestVersion: 1 +id: audiobookshelf +name: Audiobookshelf +tagline: Π‘Π΅Ρ€Π²Π΅Ρ€ Π°ΡƒΠ΄ΠΈΠΎΠΊΠ½ΠΈΠ³ ΠΈ подкастов +category: media +version: "2.34.0" +port: 13378 +description: >- + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + + - ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ прилоТСния для Android ΠΈ iOS (Π² Π±Π΅Ρ‚Π°-вСрсии) + + - ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° всСх Π°ΡƒΠ΄ΠΈΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π½Π° Π»Π΅Ρ‚Ρƒ + + - Π˜Ρ‰ΠΈΡ‚Π΅ ΠΈ добавляйтС подкасты для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ эпизодов с автоматичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. + + - ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° с настраиваСмыми Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ + + - БохраняСт прогрСсс ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ синхронизируСтся ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами. + + - АвтоматичСски ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ обновлСния Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π΅Ρ‚ нСобходимости ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ + + - Π—Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ подкасты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ массовой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ°ΠΏΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ пСрСтаскивания. + + - Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… + автоматичСскоС Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. + + - ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡΠΈΠ²Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (PWA) + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Chromecast Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ для Android. + + - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠ±Π»ΠΎΠΆΠΊΠΈ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… источников. + + - Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π³Π»Π°Π² ΠΈ поиск Π³Π»Π°Π² (с использованиСм Audnexus API) + + - ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ ваши Π°ΡƒΠ΄ΠΈΠΎΡ„Π°ΠΉΠ»Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ m4b + + - ВстраивайтС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ изобраТСния ΠΎΠ±Π»ΠΎΠΆΠΊΠΈ Π² ваши Π°ΡƒΠ΄ΠΈΠΎΡ„Π°ΠΉΠ»Ρ‹ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Tone) + + - Базовая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° элСктронных ΠΊΠ½ΠΈΠ³ ΠΈ элСктронных ΠΊΠ½ΠΈΠ³ (ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ) + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android (Π±Π΅Ρ‚Π°-вСрсия) + + - ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ Google Play. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ iOS (ранняя Π±Π΅Ρ‚Π°-вСрсия) + + - Доступно ΠΏΡ€ΠΈ использовании тСстового ΠΏΠΎΠ»Π΅Ρ‚Π°: https://testflight.apple.com/join/wiic7QIW. +developer: advplyr +website: https://audiobookshelf.org +repo: https://github.com/advplyr/audiobookshelf +support: https://discord.gg/pJsjuNCKRq +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + НовыС возмоТности: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ японский язык ΠΈ Япония Π² качСствС Ρ€Π΅Π³ΠΈΠΎΠ½Π° поиска подкастов. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка автозаполнСния Π² полях Π²Ρ…ΠΎΠ΄Π° ΠΈ настройки для совмСстимости с ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π΅Π΄Π°Π²Π½ΠΈΠ΅ эпизоды, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ обновлялись ΠΈΠ· кСша ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ прогрСсса ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ошибок, ΠΊΠΎΠ³Π΄Π° Π² расписании автоматичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ подкаста ΡƒΠΊΠ°Π·Π°Π½ΠΎ нСдопустимоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ cron. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/advplyr/audiobookshelf/releases. +submitter: Jasper +submission: https://github.com/getumbrel/dfwebos-apps/pull/302 diff --git a/audiobookshelf/docker-compose.yml b/audiobookshelf/docker-compose.yml new file mode 100644 index 0000000..9c2caab --- /dev/null +++ b/audiobookshelf/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: audiobookshelf_web_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + web: + image: ghcr.io/advplyr/audiobookshelf:2.34.0@sha256:4143292c530f6ac6700afd13360c04f477e4f1a81c1c97c4224b1c7e4330c5c4 + user: 1000:1000 + init: true + restart: on-failure + stop_grace_period: 1m + healthcheck: + disable: true + environment: + - CONFIG_PATH=/home/node/config + - METADATA_PATH=/home/node/metadata + - AUDIOBOOKSHELF_UID=1000 + - AUDIOBOOKSHELF_GID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/home/node/config + - ${APP_DATA_DIR}/data/metadata:/home/node/metadata + - ${DFWEBOS_ROOT}/data/storage/downloads/audiobooks:/audiobooks + - ${DFWEBOS_ROOT}/data/storage/downloads/podcasts:/podcasts diff --git a/audiobookshelf/exports.sh b/audiobookshelf/exports.sh new file mode 100644 index 0000000..d85e2b3 --- /dev/null +++ b/audiobookshelf/exports.sh @@ -0,0 +1,16 @@ +DFWEBOS_DATA_DIR="${DFWEBOS_ROOT}/data" +DFWEBOS_DATA_STORAGE_AUDIOBOOKS_DIR="${DFWEBOS_DATA_DIR}/storage/downloads/audiobooks" +DFWEBOS_DATA_STORAGE_PODCASTS_DIR="${DFWEBOS_DATA_DIR}/storage/downloads/podcasts" +DESIRED_OWNER="1000:1000" + +if [[ ! -d "${DFWEBOS_DATA_STORAGE_AUDIOBOOKS_DIR}" ]]; then + mkdir -p "${DFWEBOS_DATA_STORAGE_AUDIOBOOKS_DIR}" + + chown "${DESIRED_OWNER}" "${DFWEBOS_DATA_STORAGE_AUDIOBOOKS_DIR}" +fi + +if [[ ! -d "${DFWEBOS_DATA_STORAGE_PODCASTS_DIR}" ]]; then + mkdir -p "${DFWEBOS_DATA_STORAGE_PODCASTS_DIR}" + + chown "${DESIRED_OWNER}" "${DFWEBOS_DATA_STORAGE_PODCASTS_DIR}" +fi \ No newline at end of file diff --git a/autobrr/data/.gitkeep b/autobrr/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/autobrr/dfwebos-app.yml b/autobrr/dfwebos-app.yml new file mode 100644 index 0000000..e81a1e5 --- /dev/null +++ b/autobrr/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1 +id: autobrr +category: media +name: autobrr +version: "1.76.0" +tagline: БоврСмСнная, простая Π² использовании автоматизация Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ ΠΈ Usenet. +description: >- + autobrr β€” соврСмСнный инструмСнт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ ΠΈ usenet. + Π’Π΄ΠΎΡ…Π½ΠΎΠ²Π»ΡΡΡΡŒ идСями Ρ‚Π°ΠΊΠΈΡ… инструмСнтов, ΠΊΠ°ΠΊ trackarr, autodl-irssi ΠΈ flexget, ΠΌΡ‹ создали ΠΎΠ΄ΠΈΠ½ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ всС это, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈ Π΅Ρ‰Π΅ нСсколько. + + + МногиС индСксаторы Π°Π½ΠΎΠ½ΡΠΈΡ€ΡƒΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ Π½Π° своих IRC-ΠΊΠ°Π½Π°Π»Π°Ρ… сразу послС ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° сайт. + + + autobrr отслСТиваСт Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°Π½Π°Π»Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-Ρ„Π°ΠΉΠ» сразу послС Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° основС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ установили Π² autobrr. + + + Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ отправляСт этот Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-Ρ„Π°ΠΉΠ» Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ: qBittorrent, Deluge, Radarr, Sonarr, ΠΏΠ°ΠΏΠΊΠ° просмотра ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка PKCE для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ OIDC. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка Ρ‚ΠΈΠΏΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ NZB для RSS-ΠΊΠ°Π½Π°Π»ΠΎΠ². + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка индСксатора InfinityHD. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка индСксатора Retro Movies Club. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка индСксатора Samaritano. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка индСксатора SeedPool (Music). + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка `/sleep` Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ IRC. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка французского, Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΎΠ³ΠΎ, русского ΠΈ испанского языков. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (i18n) для языков английского языка ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ китайского языка. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ выпусков, Ссли PUSH_APPROVED отсутствуСт Π² спискС очистки. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ прокси-сСрвСра индСксатора Π² Π²Π΅Π±-вСрсии интСрфСйс. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://autobrr.com/release-notes. +developer: autobrr +website: https://autobrr.com/ +dependencies: [] +repo: https://github.com/autobrr/autobrr +support: https://autobrr.com/introduction +port: 7474 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: fabricionaweb +submission: https://github.com/getumbrel/dfwebos-apps/pull/731 diff --git a/autobrr/docker-compose.yml b/autobrr/docker-compose.yml new file mode 100644 index 0000000..c256816 --- /dev/null +++ b/autobrr/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: autobrr_web_1 + APP_PORT: 7474 + PROXY_AUTH_ADD: "false" + + web: + image: ghcr.io/autobrr/autobrr:v1.76.0@sha256:f0f4d73fcd77700b1c98233562cd94a78b9bf685a7594a0aac4f8a9436b5044d + restart: on-failure + stop_grace_period: 1m + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data:/config diff --git a/back-that-mac-up/data/opt-timemachine/.gitkeep b/back-that-mac-up/data/opt-timemachine/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/back-that-mac-up/data/run-samba/.gitkeep b/back-that-mac-up/data/run-samba/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/back-that-mac-up/data/var-cache-samba/.gitkeep b/back-that-mac-up/data/var-cache-samba/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/back-that-mac-up/data/var-lib-samba/.gitkeep b/back-that-mac-up/data/var-lib-samba/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/back-that-mac-up/dfwebos-app.yml b/back-that-mac-up/dfwebos-app.yml new file mode 100644 index 0000000..7228f6e --- /dev/null +++ b/back-that-mac-up/dfwebos-app.yml @@ -0,0 +1,58 @@ +manifestVersion: 1.2 +id: back-that-mac-up +category: files +name: Back That Mac Up +version: "1.1.0" +tagline: Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию вашСго Mac Π½Π° DFWebOS с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Time Machine +description: > + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это нСпосрСдствСнно Π² DFWebOSOS... Ρ…ΠΌΠΌΠΌΠΌΠΌΠΌΠΌ. + + + ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ Back That Mac Up β€” ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ DFWebOS. + + + Π‘ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ создайтС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию вашСго Mac Π½Π° DFWebOS с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Time Machine. ΠŸΡ€ΠΎΡΡ‚ΠΎ слСдуйтС инструкциям Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ DFWebOS Π² качСствС мСста Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Time Machine, ΠΈ всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ! + + + ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ слСдуйтС инструкциям Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. Time Machine выполняСт Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вашСго Mac, сохраняя СТСчасныС Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π·Π° послСдниС 24 часа, Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π·Π° послСдний мСсяц ΠΈ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π·Π° всС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ мСсяцы. + Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ½, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ пространство Π½Π° вашСм DFWebOS, автоматичСски удаляя самыС старыС Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ мСсто ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. + + + Для бСспСрСбойного Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, Π΄Π°ΠΆΠ΅ Ссли ваш Mac Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ Ρ‚ΠΎΠΉ ΠΆΠ΅ сСти, Ρ‡Ρ‚ΠΎ ΠΈ ваш DFWebOS, просто установитС Tailscale Π½Π° свой DFWebOS ΠΈ свой Mac ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ smb://DFWebOS Π² качСствС адрСса сСрвСра. +releaseNotes: >- + πŸŽ‰ Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ доступны для DFWebOSOS 1.0. + + + Π’ этом ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ появился Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для Back That Mac Up, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ сразу ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ использованиС Time Machine прямо с Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ экрана вашСго DFWebOS. + + + ПослС обновлСния Π΄ΠΎ DFWebOSOS 1.0 Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС ΠΈ Π²Ρ‹Π±Ρ€Π°Π² Β«Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹Β» ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Π² Β«Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹Β» Π² Dock. +developer: DFWebOS +website: https://DFWebOS.com +dependencies: [] +repo: https://github.com/getDFWebOS/DFWebOS-back-that-mac-up +support: https://community.getDFWebOS.com +port: 3012 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +widgets: + - id: "disk-usage" + type: "text-with-progress" + refresh: "1m" + endpoint: "server:80/api/widgets/disk-usage" + link: "" + example: + type: "text-with-progress" + link: "" + title: "Time Machine Usage" + text: "420 GB" + progressLabel: "580 GB left" + progress: 0.42 +submitter: DFWebOS +submission: https://github.com/getDFWebOS/dfwebos-apps/pull/929 +disabled: true diff --git a/back-that-mac-up/docker-compose.yml b/back-that-mac-up/docker-compose.yml new file mode 100644 index 0000000..974ef75 --- /dev/null +++ b/back-that-mac-up/docker-compose.yml @@ -0,0 +1,53 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: back-that-mac-up_server_1 + APP_PORT: 80 + + server: + image: getwebos/dfwebos-back-that-mac-up:1.0.1@sha256:d9561eebd791fcaaddb9885b9ace25dec42374c4ab0fe17035493a264081688c + restart: on-failure + environment: + TIME_MACHINE_DIR: "/timemachine" + volumes: + # это вСсь ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄Π°Π½Π½Ρ‹Ρ… back-that-mac-up (вмСсто этого ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ установки Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° opt-timemachine) + - ${APP_DATA_DIR}/data:/timemachine + + timemachine: + image: mbentley/timemachine:smb-20231122@sha256:861560184a5c9f3b4f2a8bef4549ef4168d80c57a9de81b16bc5e6eead24ff3f + hostname: dfwebos + environment: + ADVERTISED_HOSTNAME: "dfwebos" + CUSTOM_SMB_CONF: "false" + CUSTOM_USER: "false" + DEBUG_LEVEL: "1" + HIDE_SHARES: "no" + EXTERNAL_CONF: "" + MIMIC_MODEL: "TimeCapsule8,119" + TM_USERNAME: "timemachine" + TM_GROUPNAME: "timemachine" + TM_UID: "1000" + TM_GID: "1000" + PASSWORD: "timemachine" + SET_PERMISSIONS: "false" + SHARE_NAME: "DFWebOS - Time Machine" + SMB_INHERIT_PERMISSIONS: "no" + SMB_NFS_ACES: "no" + SMB_METADATA: "stream" + SMB_PORT: "445" + SMB_VFS_OBJECTS: "acl_xattr fruit streams_xattr" + VOLUME_SIZE_LIMIT: "0" + WORKGROUP: "WORKGROUP" + restart: unless-stopped + ports: + - "137:137/udp" + - "138:138/udp" + - "139:139" + - "445:445" + volumes: + - ${APP_DATA_DIR}/data/opt-timemachine:/opt/timemachine + - ${APP_DATA_DIR}/data/var-lib-samba:/var/lib/samba + - ${APP_DATA_DIR}/data/var-cache-samba:/var/cache/samba + - ${APP_DATA_DIR}/data/run-samba:/run/samba \ No newline at end of file diff --git a/baikal/data/Specific/.gitkeep b/baikal/data/Specific/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/baikal/data/Specific/.gitkeep @@ -0,0 +1 @@ + diff --git a/baikal/data/config/.gitkeep b/baikal/data/config/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/baikal/data/config/.gitkeep @@ -0,0 +1 @@ + diff --git a/baikal/dfwebos-app.yml b/baikal/dfwebos-app.yml new file mode 100644 index 0000000..a00ea16 --- /dev/null +++ b/baikal/dfwebos-app.yml @@ -0,0 +1,46 @@ +manifestVersion: 1 +id: baikal +name: Baikal +tagline: Π›Π΅Π³ΠΊΠΈΠΉ сСрвСр калСндаря ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² +category: networking +version: "0.10.1" +port: 8890 +description: >- + πŸͺ† Baikal Server β€” это Π»Π΅Π³ΠΊΠΈΠΉ сСрвСр CalDAV ΠΈ CardDAV, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят бСзопасно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своим ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€Π΅ΠΌ ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° собствСнном сСрвСрС. Π­Ρ‚ΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, адрСсными ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ ΠΈ калСндарями, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ доступным ΠΊΠ°ΠΊ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Ρ‚Π°ΠΊ ΠΈ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + + + Одной ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… особСнностСй Π‘Π°ΠΉΠΊΠ°Π»Π° являСтся простота установки ΠΈ настройки. Для этого трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ сСрвСр с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ PHP, Π° это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Π΅ тСхничСскиС знания для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… MySQL ΠΈ SQLite для хранСния Π΄Π°Π½Π½Ρ‹Ρ…, обСспСчивая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ ΠΈ потрСбностСй. + + + Baikal позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ своим ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ ΠΈ калСндарям с любого устройства. Он совмСстим с ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ спСктром ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ iOS, macOS, DAVx5 Π½Π° Android, Mozilla Thunderbird ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ CalDAV ΠΈ CardDAV. Π­Ρ‚Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ смоТСтС Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. + + + Помимо ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Baikal удСляСт особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ бСзопасности Π΄Π°Π½Π½Ρ‹Ρ…. РазмСщая свои ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΠΈ ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹ сохраняСтС ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своСй Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, защищая Π΅Π΅ ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ ΠΈ нСсанкционированного доступа. Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ Π² эпоху, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°ΡΡ‚ΡƒΡ‰ΡƒΡŽ ΠΎΠ·Π°Π±ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ. + + + НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, ΠΈΡ‰ΡƒΡ‰ΠΈΠΌ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ€Π³Π°Π½Π°ΠΉΠ·Π΅Ρ€Π°, ΠΈΠ»ΠΈ нСбольшой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Π½ΡƒΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΉΡΡ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹, Baikal Server прСдоставляСт ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ эффСктивный способ управлСния вашим расписаниСм ΠΈ потрСбностями Π² ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°Ρ…, обСспСчивая ΠΏΡ€ΠΈ этом ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Благодаря высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ простому интСрфСйсу Baikal являСтся ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΈΡ‰Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для управлСния ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€Π΅ΠΌ ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ. + +developer: fruux GmbH +website: https://sabre.io/baikal/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/1606 +repo: https://github.com/sabre-io/Baikal +support: https://github.com/sabre-io/Baikal/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΈ использовании ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… прокси. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… PostgreSQL. + - НовыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ экран настройки Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² мастСрС установки. + - ОбновлСно Π΄ΠΎ sabre/dav 4.7.0. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/sabre-io/Baikal/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/baikal/docker-compose.yml b/baikal/docker-compose.yml new file mode 100644 index 0000000..3c0e53c --- /dev/null +++ b/baikal/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: baikal_web_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + web: + image: ckulka/baikal:0.10.1@sha256:2385faeb7cc165d2b080c0ed8c84cc59e84d03107f814ad897ab62684c792f7b + # Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ запускаСтся ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ 33:33 ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΏΡ€ΠΈ создании (https://github.com/ckulka/baikal-docker/blob/master/examples/docker-compose.localvolumes.yaml) + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/config:/var/www/baikal/config + - ${APP_DATA_DIR}/data/Specific:/var/www/baikal/Specific diff --git a/bassin/data/config/ckpool.conf.template b/bassin/data/config/ckpool.conf.template new file mode 100644 index 0000000..4d48dad --- /dev/null +++ b/bassin/data/config/ckpool.conf.template @@ -0,0 +1,16 @@ +{ +"btcd" : [ + { + "url": "${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}", + "auth": "${APP_BITCOIN_RPC_USER}", + "pass": "${APP_BITCOIN_RPC_PASS}", + "notify" : true + } +], +"btcsig" : "/mined by Bassin on DFWebOS/", +"mindiff": 1, +"startdiff": 42, +"maxdiff" : 0, +"logdir" : "/www", +"zmqblock" : "tcp://${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_ZMQ_HASHBLOCK_PORT}" +} diff --git a/bassin/data/www/.gitkeep b/bassin/data/www/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bassin/dfwebos-app.yml b/bassin/dfwebos-app.yml new file mode 100644 index 0000000..1e4b877 --- /dev/null +++ b/bassin/dfwebos-app.yml @@ -0,0 +1,62 @@ +manifestVersion: 1.1 +version: "2.1.0-hotfix" +id: bassin +name: Bassin +tagline: Π‘ΠΎΠ»ΠΎ-ΠΏΡƒΠ» для ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Bitcoin (ckPool) +description: >- + ΠŸΡƒΠ» для ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Bitcoin с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ комиссиСй для DFWebOS. ЗапуститС свой собствСнный ckPool Π΄ΠΎΠΌΠ°. + + + Никаких настроСк, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. + - Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваш ΡƒΠ·Π΅Π» Bitcoin ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ синхронизирован ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. + - УстановитС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ слСдуйтС инструкциям Π½Π° экранС. + - Π‘Ρ‚Π°Π½ΡŒΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° + + + ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ страницу часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… вопросов: https://github.com/duckaxe/bassin/wiki/FAQ. + + + Волько для акадСмичСских ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ. +category: bitcoin +dependencies: + - bitcoin +releaseNotes: >- + 🚨 ΠšΠ Π˜Π’Π˜Π§Π•Π‘ΠšΠžΠ• ΠžΠ‘ΠΠžΠ’Π›Π•ΠΠ˜Π• Π‘Π•Π—ΠžΠŸΠΠ‘ΠΠžΠ‘Π’Π˜. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. + + + Π‘Ρ‹Π»Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° бСзопасности Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии ckpool, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ этим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Он Π±Ρ‹Π» Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½ΠΎΠ²ΠΎΠΉ вСрсиСй, созданной ΠΈΠ· ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ источника: https://github.com/getumbrel/docker-ckpool-solo. +port: 5008 +submitter: duckaxe +developer: duckaxe +website: https://github.com/duckaxe +repo: https://github.com/duckaxe/bassin +support: https://github.com/duckaxe/bassin/issues +submission: https://github.com/getumbrel/dfwebos-apps/pull/3375 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +widgets: + - id: "stats" + type: "four-stats" + refresh: "30s" + endpoint: "widget-server:3000/widgets/pool" + link: "" + example: + type: "four-stats" + link: "" + items: + - title: "Hashrate" + text: "2.10" + subtext: "Th/s" + - title: "Workers" + text: "2" + - title: "Best Share" + text: "21" + subtext: "G" + - title: "Total Shares" + text: "210" + subtext: "M" diff --git a/bassin/docker-compose.yml b/bassin/docker-compose.yml new file mode 100644 index 0000000..79a71ac --- /dev/null +++ b/bassin/docker-compose.yml @@ -0,0 +1,69 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: bassin_www_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + init: + image: alpine:3.22.1@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1 + entrypoint: >- + /bin/sh -c ' + apk add --no-cache envsubst && + if [ ! -f /config/ckpool.conf ]; then + envsubst < /config/ckpool.conf.template > /config/ckpool.conf && + chown 1000:1000 /config/ckpool.conf + fi + ' + volumes: + - ${APP_DATA_DIR}/data/config:/config + environment: + - APP_BITCOIN_NODE_IP=${APP_BITCOIN_NODE_IP} + - APP_BITCOIN_RPC_PORT=${APP_BITCOIN_RPC_PORT} + - APP_BITCOIN_RPC_USER=${APP_BITCOIN_RPC_USER} + - APP_BITCOIN_RPC_PASS=${APP_BITCOIN_RPC_PASS} + - APP_BITCOIN_ZMQ_HASHBLOCK_PORT=${APP_BITCOIN_ZMQ_HASHBLOCK_PORT} + + ckpool: + image: ghcr.io/getumbrel/docker-ckpool-solo:590fb2a@sha256:4e6b8f4f9c7d74c2111a6e082a2bbdc936fa510989a81e7cef714d1da944336b + command: '-k -B -c /config/ckpool.conf' + user: "1000:1000" + depends_on: + init: + condition: service_completed_successfully + restart: on-failure + stop_grace_period: 30s + ports: + - "3456:3333/tcp" + volumes: + - ${APP_DATA_DIR}/data/config:/config:ro + - ${APP_DATA_DIR}/data/www:/www + + ui: + image: ghcr.io/duckaxe/bassin-ui:580689d@sha256:ece16d859295c01f3c7bdaf78679f5b3477073af93937c367ae6174191c0de19 + entrypoint: /bin/sh -c "cp -r /ui/* /www/" + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/www:/www + restart: on-failure + + www: + image: halverneus/static-file-server:v1.8.11@sha256:2e91ce7ffb8519eeb882ba52d75c191ca6c921c16438447362128ef73ee2ea7e + user: "1000:1000" + environment: + - FOLDER=/www + - PORT=80 + volumes: + - ${APP_DATA_DIR}/data/www:/www:ro + depends_on: + - ui + restart: on-failure + + widget-server: + image: ghcr.io/duckaxe/umbrel-bassin-widget:main@sha256:293d4a17579bbef339c3f4595ed2dc36bef70699d34909bfa3ac20bba8facb7c + user: "1000:1000" + environment: + - BASSIN_API_POOL_URL=http://bassin_www_1/pool/pool.status + restart: on-failure diff --git a/bassin/hooks/pre-start b/bassin/hooks/pre-start new file mode 100755 index 0000000..c7cf915 --- /dev/null +++ b/bassin/hooks/pre-start @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# Π­Ρ‚ΠΎΡ‚ скрипт обновляСт btcsig Π² ​​ckpool.conf для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. +# ΠΊΡ‚ΠΎ устанавливал, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±Ρ‹Π»ΠΎ "/mined by Bassin/" +# ЗапускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +CKPOOL_CONFIG_FILE="${APP_DATA_DIR}/data/config/ckpool.conf" +BTCSIG_MIGRATION_FLAG="${APP_DATA_DIR}/BTCSIG_MIGRATED" + +# ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Ссли миграция ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° +if [[ -f "${BTCSIG_MIGRATION_FLAG}" ]]; then + exit +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ +if [[ ! -f "${CKPOOL_CONFIG_FILE}" ]]; then + touch "${BTCSIG_MIGRATION_FLAG}" + exit +fi + +OLD_BTCSIG='"btcsig" : "/mined by Bassin/",' +NEW_BTCSIG='"btcsig" : "/mined by Bassin on DFWebOS/",' + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ точная старая строка btcsig. +if grep -qF "${OLD_BTCSIG}" "${CKPOOL_CONFIG_FILE}"; then + echo "App: ${APP_ID} - Updating btcsig in ckpool.conf" + sed -i "s|${OLD_BTCSIG}|${NEW_BTCSIG}|" "${CKPOOL_CONFIG_FILE}" +fi + +# ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΡƒΡŽ +touch "${BTCSIG_MIGRATION_FLAG}" diff --git a/bazarr/data/config/.gitkeep b/bazarr/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bazarr/dfwebos-app.yml b/bazarr/dfwebos-app.yml new file mode 100644 index 0000000..fe5b3b4 --- /dev/null +++ b/bazarr/dfwebos-app.yml @@ -0,0 +1,54 @@ +manifestVersion: 1 +id: bazarr +category: media +name: Bazarr +version: "1.5.6" +tagline: УправляйтС ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ субтитры для Sonarr ΠΈ Radarr +description: >- + Bazarr β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-компаньон для Sonarr ΠΈ Radarr, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ управляСт субтитрами ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΈΡ… Π² соотвСтствии с вашими трСбованиями. + Π’Ρ‹ опрСдСляСтС свои прСдпочтСния ΠΏΠΎ Ρ‚Π΅Π»Π΅ΡˆΠΎΡƒ ΠΈΠ»ΠΈ Ρ„ΠΈΠ»ΡŒΠΌΡƒ, Π° Bazarr позаботится ΠΎΠ±ΠΎ всСм Π·Π° вас. + + + Bazarr Π½Π΅ сканируСт ваш диск Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ сСриалов ΠΈ Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ². Он заботится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ сСриалах ΠΈ Ρ„ΠΈΠ»ΡŒΠΌΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ проиндСксированы Π² Sonarr ΠΈ Radarr. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Π’ΠΎ врСмя ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ настройки Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ввСсти IP-адрСс вашСго устройства DFWebOS для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Sonarr ΠΈ/ΠΈΠ»ΠΈ Radarr. + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ IP-адрСс вашСго устройства, посСтив панСль администратора вашСго ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнт сканирования IP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Angry IP Scanner. + Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся ввСсти ΠΊΠ»ΡŽΡ‡ API для Sonarr ΠΈ/ΠΈΠ»ΠΈ Radarr. ΠšΠ»ΡŽΡ‡ΠΈ API Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² настройках ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Sonarr ΠΈ Radarr. +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ испанского языка Π² Испании ΠΈ Латинской АмСрикС для ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° SubX. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ прокси-сСрвСр субтитров SubX для испанского ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Subdivx Latam. + - Π£Π΄Π°Π»Π΅Π½ поставщик subdivx, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ большС Π½Π΅ поддСрТиваСтся. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​настройка ΠΈΠΌΠ΅Π½ΠΈ хоста Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠžΠ±Ρ‰ΠΈΠ΅Β» для бСзопасности Π²Π΅Π±-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ хоста. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π·Π²ΡƒΠΊΠ° Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ… MKV для WhisperAI с использованиСм FFprobe. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Plex послС удалСния ΠΈΠ»ΠΈ измСнСния субтитров. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ субдл с поиском ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ TMDB ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ошибок. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ сопоставлСниС выпусков поставщика Gestdown. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ поставщик Assrt, ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ субтитры сСзонных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ поискС эпизодов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° β€‹β€‹ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ миграция audio_exclude ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ языкового профиля. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой постобработки Π² нСанглоязычных систСмах Windows. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ поиск subssabbz, диакритичСскиС Π·Π½Π°ΠΊΠΈ, сравнСниС языков ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π·Π°Π΄Π°Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ЦП ΠΈΠ·-Π·Π° оТидания занятости. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π° счСт Π·Π°ΠΌΠ΅Π½Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ…ΠΎΠ΄Π° выполнСния Π·Π°Π΄Π°Π½ΠΈΠΉ асинхронной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/morpheus65535/bazarr/releases. +developer: morpheus65535 +website: https://www.bazarr.media/ +dependencies: [] +repo: https://github.com/morpheus65535/bazarr +support: https://github.com/morpheus65535/bazarr/issues +port: 6767 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/610 diff --git a/bazarr/docker-compose.yml b/bazarr/docker-compose.yml new file mode 100644 index 0000000..12e86e8 --- /dev/null +++ b/bazarr/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: bazarr_server_1 + APP_PORT: 6767 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: linuxserver/bazarr:1.5.6@sha256:b0bc617664dbca25845ac3b1bb6411b145b6a44a6d173071c9d2f426524fdd9f + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + restart: on-failure diff --git a/bentopdf/dfwebos-app.yml b/bentopdf/dfwebos-app.yml new file mode 100644 index 0000000..0e05ea1 --- /dev/null +++ b/bentopdf/dfwebos-app.yml @@ -0,0 +1,45 @@ +manifestVersion: 1 +id: bentopdf +name: BentoPDF +tagline: Набор инструмСнтов Privacy First PDF +category: files +version: "2.8.4" +port: 8730 +description: >- + πŸ“„ BentoPDF β€” это ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ PDF нСпосрСдствСнно Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π­Ρ‚ΠΎ устраняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ… ΠΈΠ»ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисах ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ, гарантируя, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ дСйствиС происходит локально ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ. Π’Π°ΠΊΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ BentoPDF бСзопасной Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌ инструмСнтам PDF. + + + По своСй сути BentoPDF прСдоставляСт ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько PDF-Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΈΠ»ΠΈ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ страницы всСго Π·Π° нСсколько ΠΊΠ»ΠΈΠΊΠΎΠ². ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт Π»Π΅Π³ΠΊΠΎ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ, Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ страницы, обСспСчивая ΠΏΠΎΠ»Π½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ слоТных Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ настройки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°, водяныС Π·Π½Π°ΠΊΠΈ, Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Ρ‹, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ внСшнСго Π²ΠΈΠ΄Π° ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². + + + BentoPDF Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ прСобразования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² PDF-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ экспорт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… страниц ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² распространСнныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ пространства для хранСния Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° для качСства. Π’ цСлях бСзопасности Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ограничСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ доступ ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΈ инструмСнты Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ ΠΊΠ°ΠΊ для Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ использования, Ρ‚Π°ΠΊ ΠΈ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². + + + Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ прСимущСством являСтся встроСнная функция OCR, которая сканируСт ΠΈ распознаСт тСкст ΠΈΠ· PDF-Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° основС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, прСвращая ΠΈΡ… Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ поиска. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ рСдактирования ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒ свойства Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ. БочСтая всС эти возмоТности, BentoPDF ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡƒΡŽ, ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ срСду для эффСктивного создания, рСдактирования ΠΈ управлСния PDF-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ β€” ΠΈ всС это ΠΏΡ€ΠΈ сохранСнии Π²Ρ‹ΡΠΎΡ‡Π°ΠΉΡˆΠ΅Π³ΠΎ уровня ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ контроля. +developer: BentoPDF +website: https://bentopdf.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3843 +repo: https://github.com/alam00000/bentopdf +support: https://github.com/alam00000/bentopdf/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + 🚨 Π’ вСрсии 2.8.3 устранСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ бСзопасности (GHSA-6vh8-4frx-647f), Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰Π°Ρ всС вСрсии Π΄ΠΎ вСрсии 2.8.2 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + + + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ исправляСт ошибки CSP, появившиСся Π² вСрсии 2.8.3, ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ послСдних выпусков: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ бСзопасности ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, появившиСся Π² вСрсии 2.8.3. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ украинский, японский ΠΈ бСлорусский ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π½Π° голландский язык. + - УсилСниС бСзопасности ΠΈ обновлСния зависимостСй. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/alam00000/bentopdf/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/bentopdf/docker-compose.yml b/bentopdf/docker-compose.yml new file mode 100644 index 0000000..71f1f01 --- /dev/null +++ b/bentopdf/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: bentopdf_web_1 + APP_PORT: 8080 + + web: + image: ghcr.io/alam00000/bentopdf:v2.8.4@sha256:f54b9ed9c56b767e0098b525468206689b666323c2b500b9686c3cf41cdfa348 + restart: on-failure diff --git a/bffless/data/config/domain.txt.example b/bffless/data/config/domain.txt.example new file mode 100644 index 0000000..a93391b --- /dev/null +++ b/bffless/data/config/domain.txt.example @@ -0,0 +1,13 @@ +# ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π° Π±Π΅Π· Bffless +# +# Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свой Π΄ΠΎΠΌΠ΅Π½, скопируйтС этот Ρ„Π°ΠΉΠ» Π² domain.txt ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ +# ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅ с вашим фактичСским Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ. +# +# Π¨Π°Π³ΠΈ: +# 1. НастройтС Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ Cloudflare, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° http://localhost:5537. +# 2. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ этот Ρ„Π°ΠΉΠ»: cp domain.txt.example domain.txt +# 3. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ domain.txt, ΡƒΠΊΠ°Π·Π°Π² свой Π΄ΠΎΠΌΠ΅Π½ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠΌΠ΅Π½, Π±Π΅Π· https://)). +# 4. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Bffless ΠΈΠ· DFWebOS. +# +# ΠŸΡ€ΠΈΠΌΠ΅Ρ€: +bffless.yourdomain.com diff --git a/bffless/data/db/init-databases.sql b/bffless/data/db/init-databases.sql new file mode 100644 index 0000000..4a1df05 --- /dev/null +++ b/bffless/data/db/init-databases.sql @@ -0,0 +1,9 @@ +-- Create separate database for SuperTokens +-- This runs on first postgres container startup +-- (assethost database is created by POSTGRES_DB env var) + +-- Create supertokens database +CREATE DATABASE supertokens; + +-- Grant permissions to default postgres user +GRANT ALL PRIVILEGES ON DATABASE supertokens TO postgres; diff --git a/bffless/data/frontend/.gitkeep b/bffless/data/frontend/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/bffless/data/frontend/.gitkeep @@ -0,0 +1 @@ + diff --git a/bffless/data/nginx/.gitkeep b/bffless/data/nginx/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/bffless/data/nginx/.gitkeep @@ -0,0 +1 @@ + diff --git a/bffless/data/postgres/.gitkeep b/bffless/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bffless/data/uploads/.gitkeep b/bffless/data/uploads/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bffless/dfwebos-app.yml b/bffless/dfwebos-app.yml new file mode 100644 index 0000000..889ece6 --- /dev/null +++ b/bffless/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1.1 +id: bffless +category: developer +name: BFFless +version: '0.1.1' +tagline: ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для хостинга статичСских сайтов с собствСнным хостингом +description: >- + BFFless β€” это автономная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для размСщСния статичСских Π²Π΅Π±-сайтов ΠΈ создания Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² ΠΈΠ· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠ² CI/CD. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности: + - Π—Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ статичСскиС сайты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСйствий CLI, API ΠΈΠ»ΠΈ GitHub. + - МгновСнноС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ URL-адрСсами для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. + - ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ развСртывания для ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ…, производствСнных ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… срСд. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° с ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². + - ВстроСнная панСль администратора для управлСния развСртываниями. + - ΠšΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π° вашСм DFWebOS. + + + ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ хостингом своих статичСских сайтов, Π½Π΅ полагаясь Π½Π° внСшниС сСрвисы. + + + ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ трСбуСтся Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ Cloudflare для доступа ΠΊ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ Π΄ΠΎΠΌΠ΅Π½Ρƒ. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ доступ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ инструкции ΠΏΠΎ настройкС. +developer: BFFless +website: https://docs.bffless.app/deployment/umbrel/ +dependencies: + - cloudflared +repo: https://github.com/bffless/ce +support: https://github.com/bffless/ce/issues +port: 5537 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: '' +path: '' +defaultUsername: '' +deterministicPassword: false +submitter: Bffless +submission: https://github.com/getumbrel/dfwebos-apps/pull/4784 diff --git a/bffless/docker-compose.yml b/bffless/docker-compose.yml new file mode 100644 index 0000000..1880671 --- /dev/null +++ b/bffless/docker-compose.yml @@ -0,0 +1,145 @@ +services: + # ΠŸΡ€ΠΎΠΊΡΠΈ-сСрвСр прилоТСния DFWebOS β€” направляСт внСшний Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° наш nginx. + app_proxy: + environment: + APP_HOST: bffless_nginx_1 + APP_PORT: 5537 + PROXY_AUTH_ADD: 'false' + + # ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ прокси-сСрвСр Nginx β€” обслуТиваСт интСрфСйс, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹Π·ΠΎΠ²Ρ‹ API. + # Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ собствСнноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·ΠΎΠ½Ρ‚ΠΈΠΊΠ° со встроСнным шаблоном ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ страницСй настройки. + nginx: + image: ghcr.io/bffless/ce-nginx:dfwebos@sha256:40b8f8dd37dd1483a08e687b1f0efe6061c62fcd73013fb46749c74407dbdf84 + restart: on-failure + stop_grace_period: 30s + environment: + DEVICE_DOMAIN_NAME: ${DEVICE_DOMAIN_NAME:-dfwebos.local} + volumes: + # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (domain.txt) β€” доступна для записи ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ + - ${APP_DATA_DIR}/data/config:/app/config:ro + # БтатичСскиС Ρ„Π°ΠΉΠ»Ρ‹ внСшнСго интСрфСйса ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° внСшнСго интСрфСйса + - ${APP_DATA_DIR}/data/frontend:/usr/share/nginx/html/app:ro + # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ динамичСского Π΄ΠΎΠΌΠ΅Π½Π°, написанныС сСрвСрной Ρ‡Π°ΡΡ‚ΡŒΡŽ + - ${APP_DATA_DIR}/data/nginx:/etc/nginx/sites-enabled + depends_on: + - backend + - frontend + + # Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… PostgreSQL + postgres: + image: pgvector/pgvector:0.8.2-pg17@sha256:494dff7e67e7bc2c826b94c331364978d145ebb86fd338154138b084223b7f67 + restart: on-failure + stop_grace_period: 30s + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: staticfilesgobrrrr + POSTGRES_DB: assethost + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + - ${APP_DATA_DIR}/data/db/init-databases.sql:/docker-entrypoint-initdb.d/init.sql:ro + command: > + postgres + -c shared_buffers=64MB + -c effective_cache_size=128MB + -c work_mem=4MB + -c maintenance_work_mem=32MB + -c max_connections=20 + -c wal_buffers=4MB + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U postgres'] + interval: 10s + timeout: 5s + retries: 5 + + # Π‘Π»ΡƒΠΆΠ±Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ SuperTokens + supertokens: + image: supertokens/supertokens-postgresql:9.3@sha256:39c36693b19c4e231684c9e614422c1c95751c346c6fc3ffd74980161d0b041c + restart: on-failure + stop_grace_period: 30s + depends_on: + postgres: + condition: service_healthy + environment: + # Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ вмСсто соСдинСния URI (Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ) + POSTGRESQL_HOST: bffless_postgres_1 + POSTGRESQL_PORT: '5432' + POSTGRESQL_USER: postgres + POSTGRESQL_PASSWORD: staticfilesgobrrrr + POSTGRESQL_DATABASE_NAME: supertokens + # Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ для запуска JVM Π½Π° ARM64. + JAVA_OPTS: '-Xmx192m -Xms96m -XX:+UseSerialGC -XX:MaxMetaspaceSize=64m' + POSTGRESQL_CONNECTION_POOL_SIZE: '3' + healthcheck: + test: ['CMD', 'curl', '-f', 'http://localhost:3567/hello'] + interval: 15s + timeout: 10s + retries: 8 + start_period: 45s + + # NestJS сСрвСрная Ρ‡Π°ΡΡ‚ΡŒ API + # Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ собствСнноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·ΠΎΠ½Ρ‚ΠΈΠΊΠ° со встроСнной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π°, которая ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈΠ· APP_SEED. + backend: + image: ghcr.io/bffless/ce-backend:dfwebos@sha256:7c4d4c15a186d5bb3b9e916aaadbe9602a0701db1ff2e3c47b9e7f3814967e61 + restart: on-failure + stop_grace_period: 30s + depends_on: + postgres: + condition: service_healthy + supertokens: + condition: service_healthy + environment: + NODE_OPTIONS: '--max-old-space-size=128' + NODE_ENV: production + PORT: '3000' + LOG_LEVEL: 'error,warn,log' + # DFWebOS прСдоставляСт APP_SEED β€” Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° наслСдуСт ENCRYPTION_KEY, JWT_SECRET, API_KEY_SALT + APP_SEED: ${APP_SEED:-} + APP_DATA_DIR: ${APP_DATA_DIR:-/data} + # Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… + DATABASE_URL: postgresql://postgres:staticfilesgobrrrr@bffless_postgres_1:5432/assethost + # Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ β€” локальная файловая систСма (Π±Π΅Π· MinIO) + STORAGE_TYPE: local + ENABLE_MINIO: 'false' + # Кэш β€” Π² памяти (Π±Π΅Π· Redis) + CACHE_TYPE: memory + ENABLE_REDIS: 'false' + # Π‘ΡƒΠΏΠ΅Ρ€Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ + SUPERTOKENS_MODE: local + SUPERTOKENS_CONNECTION_URI: http://bffless_supertokens_1:3567 + SUPERTOKENS_API_KEY: '' + # По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ URLs β€” пСрСопрСдСляСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π°, Ссли domain.txt сущСствуСт. + PRIMARY_DOMAIN: localhost + FRONTEND_URL: http://localhost:5537 + API_DOMAIN: http://localhost:5537 + ADMIN_DOMAIN: localhost + # Настройки Ρ„Π°ΠΉΠ»ΠΎΠ² cookie – ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° для Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². + COOKIE_SECURE: 'false' + COOKIE_DOMAIN: 'dfwebos.local' + # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Nginx + NGINX_SITES_PATH: /etc/nginx/sites-enabled + NGINX_RELOAD_WAIT_MS: '3000' + NGINX_LISTEN_PORT: '5537' + BACKEND_HOST: backend + # SSL обрабатываСтся Cloudflare Tunnel β€” nginx Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ SSL. + PROXY_MODE: 'cloudflare-tunnel' + # Π€Π»Π°Π³ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (интСрфСйс-related) + FEATURE_WILDCARD_SSL: 'false' + FEATURE_WILDCARD_SSL_BANNER: 'false' + FEATURE_DOMAIN_SSL_TOGGLE: 'false' + volumes: + # ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ + - ${APP_DATA_DIR}/data/uploads:/app/apps/backend/uploads + # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (domain.txt) + - ${APP_DATA_DIR}/data/config:/app/config:ro + # ДинамичСскиС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ nginx, написанныС бэкэндом + - ${APP_DATA_DIR}/data/nginx:/etc/nginx/sites-enabled + + # Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ React (обслуТиваСт статичСскиС Ρ„Π°ΠΉΠ»Ρ‹) + frontend: + image: ghcr.io/bffless/ce-frontend:dfwebos@sha256:9b02e77aec76a5abeaa45f07f64ec6add565b124bbb37a639fb4d633a774f1d9 + restart: on-failure + stop_grace_period: 30s + volumes: + - ${APP_DATA_DIR}/data/frontend:/app/dist + depends_on: + - backend diff --git a/bitaxe-sentry/data/sentry/.gitkeep b/bitaxe-sentry/data/sentry/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitaxe-sentry/dfwebos-app.yml b/bitaxe-sentry/dfwebos-app.yml new file mode 100644 index 0000000..8b573fb --- /dev/null +++ b/bitaxe-sentry/dfwebos-app.yml @@ -0,0 +1,33 @@ +manifestVersion: 1 +id: bitaxe-sentry +category: bitcoin +name: Bitaxe Sentry +version: "0.6.1" +tagline: "Бтатистика ΠΈ оповСщСния Bitaxe β€” всС Π² ΠΎΠ΄Π½ΠΎΠΌ" +description: >- + Bitaxe Sentry β€” это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ управлСния ASIC-ΠΌΠ°ΠΉΠ½Π΅Ρ€Π°ΠΌ Bitaxe. + ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΈ состояниС Π²Π°ΡˆΠΈΡ… ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния. ΠŸΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ оповСщСния, ΠΊΠΎΠ³Π΄Π° ваши ΠΌΠ°ΠΉΠ½Π΅Ρ€Ρ‹ Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚ Π½ΠΎΠ²ΠΎΠΉ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ слоТности ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‚ΡΡ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹Π΅ значСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ напряТСния. + + + Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + - πŸ“Š ЦСнтрализованная панСль управлСния для всСх ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ² Bitaxe + - 🌑️ ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ Ρ…ΡΡˆΡ€Π΅ΠΉΡ‚Π° + - 🚨 УвСдомлСния Discord ΠΎ критичСских событиях +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ исправлСниС ошибок: + - ИзмСнСно ΠΌΡ…/с Π½Π° Π³Ρ…/с, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Ρ…ΡΡˆΡ€Π΅ΠΉΡ‚Π°. +developer: Zach Price +website: https://github.com/zachchan105/bitaxe-sentry +repo: https://github.com/zachchan105/bitaxe-sentry +support: https://github.com/zachchan105/bitaxe-sentry/issues +port: 7070 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Zach Price +submission: https://github.com/getumbrel/dfwebos-apps/pull/3122 +dependencies: [] diff --git a/bitaxe-sentry/docker-compose.yml b/bitaxe-sentry/docker-compose.yml new file mode 100644 index 0000000..887b9e5 --- /dev/null +++ b/bitaxe-sentry/docker-compose.yml @@ -0,0 +1,30 @@ +services: + app_proxy: + environment: + APP_HOST: bitaxe-sentry_web_1 + APP_PORT: 7070 + + sentry: + image: zachprice105/bitaxe-sentry:v0.6.1@sha256:2326e3ea1f7e054da41768a4648277cd523d19a235490a2c0ae364315abbc8ee + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/sentry:/var/lib/bitaxe + environment: + DB_PATH: "/var/lib/bitaxe/bitaxe_sentry.db" + DB_DATA_DIR: "/var/lib/bitaxe" + + web: + image: zachprice105/bitaxe-sentry:v0.6.1@sha256:2326e3ea1f7e054da41768a4648277cd523d19a235490a2c0ae364315abbc8ee + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/sentry:/var/lib/bitaxe + environment: + DB_PATH: "/var/lib/bitaxe/bitaxe_sentry.db" + DB_DATA_DIR: "/var/lib/bitaxe" + command: uvicorn bitaxe_sentry.sentry.webapp:app --host 0.0.0.0 --port 7070 + depends_on: + - sentry diff --git a/bitbalance/data/.gitkeep b/bitbalance/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/bitbalance/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/bitbalance/dfwebos-app.yml b/bitbalance/dfwebos-app.yml new file mode 100644 index 0000000..f30d5e7 --- /dev/null +++ b/bitbalance/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1.1 +id: bitbalance +name: bitBalance +tagline: ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ свои кошСльки Bitcoin ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ +category: bitcoin +version: "1.0.18" +port: 3710 +description: >- + ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ свои кошСльки Bitcoin ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ собствСнного DFWebOS. + + + ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ баланс кошСлька Bitcoin ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ XPUB, YPUB ΠΈΠ»ΠΈ ZPUB. + + + ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ сСрвСру Electrs для максимальной ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π΅ полагаясь Π½Π° сторонниС API. + + + ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ балансы Π² обозрСватСлях Π±Π»ΠΎΠΊΠΎΠ². Π’Π°ΡˆΠΈ кошСльки. Π’Π°Ρˆ ΡƒΠ·Π΅Π». Π’Π°ΡˆΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько кошСльков, автоматичСскоС сканированиС Π»ΠΈΠΌΠΈΡ‚Π° гэпов ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ баланса Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ нСпосрСдствСнно с вашСго ΡƒΠ·Π»Π° DFWebOS. +developer: egzola +website: https://github.com/egzola/bitbalance +repo: https://github.com/egzola/bitbalance +support: https://github.com/egzola/bitbalance/issues +submitter: egzola +submission: https://github.com/getumbrel/dfwebos-apps/pull/5082 +path: "" +dependencies: + - electrs +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ интСрфСйс, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ отзывчивости, очистку Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Π° ΠΈ ΠΎΠ±Ρ‰ΡƒΡŽ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΡƒ. + \ No newline at end of file diff --git a/bitbalance/docker-compose.yml b/bitbalance/docker-compose.yml new file mode 100644 index 0000000..379272a --- /dev/null +++ b/bitbalance/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: bitbalance_app_1 + APP_PORT: 3710 + + app: + image: ghcr.io/egzola/bitbalance:1.0.18@sha256:9d390c1aa9025a49c37604239700662236b8fc84138ae582fa66710ac4a82bf7 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + PORT: 3710 + ELECTRUM_HOST: $APP_ELECTRS_NODE_IP + ELECTRUM_PORT: $APP_ELECTRS_NODE_PORT + volumes: + - ${APP_DATA_DIR}/data:/data diff --git a/bitcoin-knots/data/app/.gitkeep b/bitcoin-knots/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitcoin-knots/data/bitcoin/.gitkeep b/bitcoin-knots/data/bitcoin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitcoin-knots/data/i2pd/.gitkeep b/bitcoin-knots/data/i2pd/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitcoin-knots/dfwebos-app.yml b/bitcoin-knots/dfwebos-app.yml new file mode 100644 index 0000000..6e76421 --- /dev/null +++ b/bitcoin-knots/dfwebos-app.yml @@ -0,0 +1,91 @@ +manifestVersion: 1.1 +id: bitcoin-knots +implements: + - bitcoin +category: bitcoin +name: Bitcoin Knots +version: "1.2.10" +tagline: ЗапуститС свой Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π½Π° Π±Π°Π·Π΅ Bitcoin Knots +description: >- + Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ свой Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ сувСрСнитСт, Π²Ρ‹Π±Ρ€Π°Π² Bitcoin Knots для запуска своСго ΡƒΠ·Π»Π°! Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Knots, Π²Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ Bitcoin, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ отдаСтся эффСктивности, бСзопасности ΠΈ гибкости. Благодаря Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Bitcoin Knots Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свой ΡƒΠ·Π΅Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ чистоту ΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ сСти, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ сниТая Π½Π΅Π½ΡƒΠΆΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΎΡ‚ спама ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π·ΠΈΡ‚Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. + + + ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» усиливаСт ΡΠ΅Ρ‚ΡŒ Bitcoin, ΠΈ вашС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ·Π»Ρ‹ Bitcoin Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ способствуСт созданию Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈ устойчивой ΠΊ спаму экосистСмы. Π’Π°Ρˆ ΡƒΠ·Π΅Π» Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ провСряСт ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΈ ΠΏΠΎΠ΄Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΠΎΠ»Π΅Π΅ устойчивой, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ сСти Bitcoin. + + + Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² сообщСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Bitcoin Knots ΠΈ спасибо Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚Π΅ Bitcoin ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ сильнСС! + + + Π’ΠΎΡ‚ руководство ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ пСрСнСсти Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ ΠΈΠ· ядра Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½Π° Π² ΡƒΠ·Π»Ρ‹: https://docs.mempool.guide/page/migrationumbrel.html + + + Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ входящий ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹ΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° вашС устройство, настройтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ: (ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€) 9333 -> (устройство) 9333 + + + ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Bitcoin Π£Π·Π»Ρ‹: https://bitcoinknots.org/ +developer: LΓ©o Haf +website: https://bitcoinknots.org +dependencies: [] +repo: https://github.com/bitcoinknots/bitcoin.git +support: https://github.com/bitcoinknots/bitcoin/issues +port: 2105 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultPassword: "" +releaseNotes: >- + Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ измСнСния +widgets: + - id: "stats" + type: "four-stats" + refresh: "5s" + endpoint: "app:3000/api/widget/stats" + link: "" + example: + type: "four-stats" + link: "" + items: + - title: "Connections" + text: "11" + subtext: "peers" + - title: "Mempool" + text: "257" + subtext: "MB" + - title: "Hashrate" + text: "590" + subtext: "EH/s" + - title: "Blockchain size" + text: "600" + subtext: "GB" + - id: "sync" + type: "text-with-progress" + refresh: "2s" + endpoint: "app:3000/api/widget/sync" + link: "" + example: + type: "text-with-progress" + link: "" + title: "Blockchain sync" + text: "83%" + progressLabel: "In progress" + progress: 0.83 +backupIgnore: + - data/bitcoin/blocks + - data/bitcoin/chainstate + - data/bitcoin/indexes + - data/bitcoin/testnet3/blocks + - data/bitcoin/testnet3/chainstate + - data/bitcoin/testnet3/indexes + - data/bitcoin/testnet4/blocks + - data/bitcoin/testnet4/chainstate + - data/bitcoin/testnet4/indexes + - data/bitcoin/signet/blocks + - data/bitcoin/signet/chainstate + - data/bitcoin/signet/indexes + - data/bitcoin/regtest/blocks + - data/bitcoin/regtest/chainstate + - data/bitcoin/regtest/indexes +submitter: LΓ©o Haf +submission: https://github.com/getumbrel/dfwebos-apps/pull/953 diff --git a/bitcoin-knots/docker-compose.yml b/bitcoin-knots/docker-compose.yml new file mode 100644 index 0000000..73d65e1 --- /dev/null +++ b/bitcoin-knots/docker-compose.yml @@ -0,0 +1,83 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_BITCOIN_KNOTS_NODE_IP + APP_PORT: 3000 + + app: + image: ghcr.io/retropex/umbrel-bitcoin-knots:1.2.10@sha256:4dc37d9014eb29d47898d512422736ad2eed89bf31d321fc27b27547f04d0866 + user: "1000:1000" + restart: on-failure + stop_grace_period: 15m30s + # эти ΠΏΠΎΡ€Ρ‚Ρ‹ доступны для Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΊ bitcoind + ports: + - "${APP_BITCOIN_KNOTS_P2P_PORT}:${APP_BITCOIN_KNOTS_P2P_PORT}" + - "${APP_BITCOIN_KNOTS_RPC_PORT}:${APP_BITCOIN_KNOTS_RPC_PORT}" + volumes: + - ${APP_DATA_DIR}/data:/data # data/app and data/bitcoin + environment: + # ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ˜ ΠšΠΠ’ΠΠ›ΠžΠ“ ДАННЫΠ₯ + # BITCOIN_DIR: bitcoin-dir-override + # APP_STATE_DIR: app-state-dir-override + + # Π‘Π˜ΠΠΠ ΠΠ«Π• ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ˜ Π‘Π˜Π’ΠšΠžΠ˜ΠΠ”Π + # BITCOIND_BIN: bitcoind-binary-path-override + # Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ запятыми список Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ² запуска для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² bitcoind + BITCOIND_EXTRA_ARGS: '-deprecatedrpc=create_bdb' # We can remove depratedrpc=create_bdb in a future update once Jam (JoinMarket) implements descriptor wallet support + + # ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ˜ КОНЀ-ЀАЙЛА Π‘Π˜Π’ΠšΠžΠ˜ΠΠ”Π + APPS_SUBNET: "${NETWORK_IP}/16" # used for rpcallowip + P2P_PORT: "${APP_BITCOIN_KNOTS_P2P_PORT}" # port, bind (also used for connect details) + P2P_WHITEBIND_PORT: "${APP_BITCOIN_KNOTS_P2P_WHITEBIND_PORT}" # Additional inbound P2P listener granting whitelisted permissions (whitebind) to this port; for trusted internal apps only; do not publish externally + RPC_PORT: "${APP_BITCOIN_KNOTS_RPC_PORT}" # rpcport (also used for rpc client and connect details) + TOR_PORT: "${APP_BITCOIN_KNOTS_TOR_PORT}" # bind=onion + ZMQ_RAWBLOCK_PORT: "${APP_BITCOIN_KNOTS_ZMQ_RAWBLOCK_PORT}" # zmqpubrawblock + ZMQ_RAWTX_PORT: "${APP_BITCOIN_KNOTS_ZMQ_RAWTX_PORT}" # zmqpubrawtx + ZMQ_HASHBLOCK_PORT: "${APP_BITCOIN_KNOTS_ZMQ_HASHBLOCK_PORT}" # zmqpubhashblock + ZMQ_SEQUENCE_PORT: "${APP_BITCOIN_KNOTS_ZMQ_SEQUENCE_PORT}" # zmqpubsequence + ZMQ_HASHTX_PORT: "${APP_BITCOIN_KNOTS_ZMQ_HASHTX_PORT}" # zmqpubhashtx + TOR_HOST: "${APP_BITCOIN_KNOTS_TOR_PROXY_IP}" # proxy, onion, torcontrol + TOR_SOCKS_PORT: "9050" # proxy, onion + TOR_CONTROL_PORT: "9051" # torcontrol + TOR_CONTROL_PASSWORD: "moneyprintergobrrr" # torpassword + I2P_HOST: "${APP_BITCOIN_KNOTS_I2P_DAEMON_IP}" # i2psam + I2P_SAM_PORT: "7656" # i2psam + + # ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ˜ ΠšΠ›Π˜Π•ΠΠ’Π RPC + BITCOIND_IP: "${APP_BITCOIN_KNOTS_NODE_IP}" # host for the rpc client. Also used for bitcoind conf file rpcbind & bind. + RPC_USER: "${APP_BITCOIN_KNOTS_RPC_USER}" # also shown in the connect modal + RPC_PASS: "${APP_BITCOIN_KNOTS_RPC_PASS}" # also shown in the connect modal + + # CONNECTION DETAILS (отобраТаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π² модальном ΠΎΠΊΠ½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ) + DEVICE_DOMAIN_NAME: "${DEVICE_DOMAIN_NAME}" + P2P_HIDDEN_SERVICE: "${APP_BITCOIN_KNOTS_P2P_HIDDEN_SERVICE}" + RPC_HIDDEN_SERVICE: "${APP_BITCOIN_KNOTS_RPC_HIDDEN_SERVICE}" + networks: + default: + ipv4_address: $APP_BITCOIN_KNOTS_NODE_IP + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" + networks: + default: + ipv4_address: "${APP_BITCOIN_KNOTS_TOR_PROXY_IP}" + + i2pd_daemon: + image: purplei2p/i2pd:release-2.44.0@sha256:d154a599793c393cf9c91f8549ba7ece0bb40e5728e1813aa6dd4c210aa606f6 + user: "root" + command: --sam.enabled=true --sam.address=0.0.0.0 --sam.port=7656 --loglevel=error + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/i2pd:/home/i2pd/data + networks: + default: + ipv4_address: "${APP_BITCOIN_KNOTS_I2P_DAEMON_IP}" diff --git a/bitcoin-knots/exports.sh b/bitcoin-knots/exports.sh new file mode 100644 index 0000000..da2b43c --- /dev/null +++ b/bitcoin-knots/exports.sh @@ -0,0 +1,105 @@ +export APP_BITCOIN_KNOTS_NODE_IP="10.21.21.7" +export APP_BITCOIN_KNOTS_TOR_PROXY_IP="10.21.22.12" +export APP_BITCOIN_KNOTS_I2P_DAEMON_IP="10.21.22.13" + +export APP_BITCOIN_KNOTS_DATA_DIR="${EXPORTS_APP_DIR}/data/bitcoin" +export APP_BITCOIN_KNOTS_RPC_PORT="9332" +export APP_BITCOIN_KNOTS_P2P_PORT="9333" +# Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ входящий ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ P2P, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ· Π±Π΅Π»ΠΎΠ³ΠΎ списка (whitebind) этому ΠΏΠΎΡ€Ρ‚Ρƒ; Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ; Π½Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π²Π½Π΅ΡˆΠ½ΠΈΡ… рСсурсах +export APP_BITCOIN_KNOTS_P2P_WHITEBIND_PORT="9335" +export APP_BITCOIN_KNOTS_TOR_PORT="8334" +export APP_BITCOIN_KNOTS_ZMQ_RAWBLOCK_PORT="48332" +export APP_BITCOIN_KNOTS_ZMQ_RAWTX_PORT="48333" +export APP_BITCOIN_KNOTS_ZMQ_HASHBLOCK_PORT="48334" +export APP_BITCOIN_KNOTS_ZMQ_SEQUENCE_PORT="48335" +export APP_BITCOIN_KNOTS_ZMQ_HASHTX_PORT="48336" + +# Π­Ρ‚ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ для совмСстимости с DATUM. +export APP_BITCOIN_KNOTS_INTERNAL_RPC_PORT="9332" +export APP_BITCOIN_KNOTS_INTERNAL_P2P_PORT="9333" + +export APP_BITCOIN_KNOTS_NETWORK="mainnet" + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° settings.json, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ APP_BITCOIN_NETWORK ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. +{ + BITCOIN_APP_CONFIG_FILE="${EXPORTS_APP_DIR}/data/app/settings.json" + if [[ -f "${BITCOIN_APP_CONFIG_FILE}" ]] + then + bitcoin_app_network=$(jq -r '.chain' "${BITCOIN_APP_CONFIG_FILE}") + case $bitcoin_app_network in + "main") + APP_BITCOIN_KNOTS_NETWORK="mainnet";; + "test") + APP_BITCOIN_KNOTS_NETWORK="testnet";; + "testnet4") + APP_BITCOIN_KNOTS_NETWORK="testnet4";; + "signet") + APP_BITCOIN_KNOTS_NETWORK="signet";; + "regtest") + APP_BITCOIN_KNOTS_NETWORK="regtest";; + *) + if [[ -n "$bitcoin_app_network" ]] && [[ "$bitcoin_app_network" != "null" ]]; then + echo "Warning (${EXPORTS_APP_ID}): Invalid network '${bitcoin_app_network}' in settings.json. Exporting APP_BITCOIN_NETWORK as default 'mainnet'." + fi;; + esac + fi +} > /dev/null || true + +BITCOIN_ENV_FILE="${EXPORTS_APP_DIR}/.env" + +if [[ ! -f "${BITCOIN_ENV_FILE}" ]]; then + + if [[ -z ${BITCOIN_RPC_USER+x} ]] || [[ -z ${BITCOIN_RPC_PASS+x} ]]; then + BITCOIN_RPC_USER="dfwebos" + BITCOIN_RPC_DETAILS=$("${EXPORTS_APP_DIR}/scripts/rpcauth.py" "${BITCOIN_RPC_USER}") + BITCOIN_RPC_PASS=$(echo "$BITCOIN_RPC_DETAILS" | tail -1) + fi + + echo "export APP_BITCOIN_KNOTS_RPC_USER='${BITCOIN_RPC_USER}'" >> "${BITCOIN_ENV_FILE}" + echo "export APP_BITCOIN_KNOTS_RPC_PASS='${BITCOIN_RPC_PASS}'" >> "${BITCOIN_ENV_FILE}" +fi + +. "${BITCOIN_ENV_FILE}" + +# эхо "${APP_BITCOIN_KNOTS_COMMAND}" + +rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rpc/hostname" +p2p_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-p2p/hostname" +export APP_BITCOIN_KNOTS_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" +export APP_BITCOIN_KNOTS_P2P_HIDDEN_SERVICE="$(cat "${p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" + +# ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сСти, совмСстимый с lectrs +export APP_BITCOIN_KNOTS_NETWORK_ELECTRS=$APP_BITCOIN_KNOTS_NETWORK +if [[ "${APP_BITCOIN_KNOTS_NETWORK_ELECTRS}" = "mainnet" ]]; then + APP_BITCOIN_KNOTS_NETWORK_ELECTRS="bitcoin" +fi + +for var in \ + NODE_IP \ + TOR_PROXY_IP \ + I2P_DAEMON_IP \ + DATA_DIR \ + RPC_PORT \ + P2P_PORT \ + P2P_WHITEBIND_PORT \ + TOR_PORT \ + ZMQ_RAWBLOCK_PORT \ + ZMQ_RAWTX_PORT \ + ZMQ_HASHBLOCK_PORT \ + ZMQ_SEQUENCE_PORT \ + ZMQ_HASHTX_PORT \ + NETWORK \ + RPC_USER \ + RPC_PASS \ + RPC_HIDDEN_SERVICE \ + P2P_HIDDEN_SERVICE \ + NETWORK_ELECTRS +do + bitcoin_var="APP_BITCOIN_${var}" + knots_var="APP_BITCOIN_KNOTS_${var}" + if [ -n "${!knots_var-}" ]; then + export "$bitcoin_var"="${!bitcoin_var:=${!knots_var}}" + else + echo "Warning: $knots_var is unset or empty" + fi +done \ No newline at end of file diff --git a/bitcoin-knots/hooks/pre-start b/bitcoin-knots/hooks/pre-start new file mode 100755 index 0000000..66673dd --- /dev/null +++ b/bitcoin-knots/hooks/pre-start @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/../data)" +DESIRED_OWNER="1000:1000" + +set_correct_permissions() { + local -r path="${1}" + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ» + if [[ -f "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + echo "Changed ownership of ${path} to ${DESIRED_OWNER}" + fi + else + echo "Skipping ${path} - file does not exist" + fi +} + +# ΠœΡ‹ устанавливаСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Π»ΡŽΠ±Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ созданы ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root: +set_correct_permissions "${APP_DATA_DIR}/bitcoin/umbrel-bitcoin.conf" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/bitcoin.conf" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/bitcoin.conf.save" +# settings.json для любой сСти ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ исправлСно самим старым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ΄ root. +set_correct_permissions "${APP_DATA_DIR}/bitcoin/settings.json" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/regtest/settings.json" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/signet/settings.json" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/testnet3/settings.json" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/testnet4/settings.json" + +# УстанавливайтС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ рСкурсивно для всСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° привязки /app. +if [[ -d "${APP_DATA_DIR}/app" ]]; then + chown -R "${DESIRED_OWNER}" "${APP_DATA_DIR}/app" +fi + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсии прилоТСния Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ скрытыС слуТбы Tor RPC ΠΈ P2P. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-rpc/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach app +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/bitcoin-knots/scripts/rpcauth.py b/bitcoin-knots/scripts/rpcauth.py new file mode 100755 index 0000000..f59b4dd --- /dev/null +++ b/bitcoin-knots/scripts/rpcauth.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +# Copyright (c) 2015-2018 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Bitcoin Core +# РаспространяСтся ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС MIT, см. ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. +# Ρ„Π°ΠΉΠ» COPYING ΠΈΠ»ΠΈ http://www.opensource.org/licenses/mit-license.php. + +from argparse import ArgumentParser +from base64 import urlsafe_b64encode +from binascii import hexlify +from getpass import getpass +from os import urandom + +import hmac + +def generate_salt(size): + """Create size byte hex salt""" + return hexlify(urandom(size)).decode() + +def generate_password(): + """Create 32 byte b64 password""" + return urlsafe_b64encode(urandom(32)).decode('utf-8') + +def password_to_hmac(salt, password): + m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), 'SHA256') + return m.hexdigest() + +def main(): + parser = ArgumentParser(description='Create login credentials for a JSON-RPC user') + parser.add_argument('username', help='the username for authentication') + parser.add_argument('password', help='leave empty to generate a random password or specify "-" to prompt for password', nargs='?') + args = parser.parse_args() + + if not args.password: + args.password = generate_password() + elif args.password == '-': + args.password = getpass() + + # Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ 16-Π±Π°ΠΉΡ‚ΠΎΠ²ΡƒΡŽ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ соль + salt = generate_salt(16) + password_hmac = password_to_hmac(salt, args.password) + + print('String to be appended to bitcoin.conf:') + print('rpcauth={0}:{1}${2}'.format(args.username, salt, password_hmac)) + print('Your password:\n{0}'.format(args.password)) + +if __name__ == '__main__': + main() diff --git a/bitcoin-knots/torrc.template b/bitcoin-knots/torrc.template new file mode 100644 index 0000000..65dc009 --- /dev/null +++ b/bitcoin-knots/torrc.template @@ -0,0 +1,13 @@ +SocksPort 0.0.0.0:9050 +ControlPort 0.0.0.0:9051 +CookieAuthentication 1 +CookieAuthFileGroupReadable 1 +HashedControlPassword 16:39AF5EEFA4FC1D986022FDFB13663669FE50FB6DE9A3B4FE4FC7D82010 # moneyprintergobrrr + +# Π‘ΠΈΡ‚ΠΊΠΎΠΉΠ½-ΡƒΠ·Π»Ρ‹ P2P Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис +HiddenServiceDir /data/app-$APP_ID-p2p +HiddenServicePort $APP_BITCOIN_KNOTS_P2P_PORT $APP_BITCOIN_KNOTS_NODE_IP:$APP_BITCOIN_KNOTS_TOR_PORT + +# Π‘ΠΈΡ‚ΠΊΠΎΠΉΠ½-ΡƒΠ·Π»Ρ‹ RPC Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис +HiddenServiceDir /data/app-$APP_ID-rpc +HiddenServicePort $APP_BITCOIN_KNOTS_RPC_PORT $APP_BITCOIN_KNOTS_NODE_IP:$APP_BITCOIN_KNOTS_RPC_PORT \ No newline at end of file diff --git a/bitcoin-regtest-dashboard/data/bitcoin/.gitkeep b/bitcoin-regtest-dashboard/data/bitcoin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitcoin-regtest-dashboard/data/electrs/.gitkeep b/bitcoin-regtest-dashboard/data/electrs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitcoin-regtest-dashboard/dfwebos-app.yml b/bitcoin-regtest-dashboard/dfwebos-app.yml new file mode 100644 index 0000000..4f269a1 --- /dev/null +++ b/bitcoin-regtest-dashboard/dfwebos-app.yml @@ -0,0 +1,45 @@ +manifestVersion: 1 +id: bitcoin-regtest-dashboard +category: bitcoin +name: Bitcoin Regtest Dashboard +version: "1.0.3" +tagline: Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для рСгтСста Bitcoin +description: >- + Автономная панСль Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с собствСнным ΡƒΠ·Π»ΠΎΠΌ рСгистрации ядра Bitcoin ΠΈ экзСмпляром Electrs. Никаких Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй Π½Π΅ трСбуСтся. + + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - МгновСнно Π΄ΠΎΠ±Ρ‹Π²Π°ΠΉΡ‚Π΅ Π±Π»ΠΎΠΊΠΈ ΠΎΠ΄Π½ΠΈΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ + - Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ адрСса (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС Ρ‚ΠΈΠΏΡ‹) + - ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Bitcoin Π½Π° любой адрСс + - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ UTXO + - Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ RBF (Π·Π°ΠΌΠ΅Π½Π° ΠΏΠΎ комиссии) + - ΠžΡ‚ΠΌΠ΅Π½Π° Π½Π΅ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ + - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΌΠ΅ΠΌΠΏΡƒΠ»Π° ΠΈ Π±Π»ΠΎΠΊΠΎΠ² + - Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ трансляция Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ + - Полная консоль RPC для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. + + + ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Bitcoin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ΅Π½ быстрый доступ ΠΊ функциям ΡƒΠ·Π»Π° рСгистрации. + для тСстирования кошСльков, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ Bitcoin. +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ нСбольшиС ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - ОбновлСн Π·Π½Π°Ρ‡ΠΎΠΊ прилоТСния. + - Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΊΠ°Π·Π°Π½ Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Bitcoin Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ DFWebOS. + - ОбновлСно ядро ​​Bitcoin Π΄ΠΎ вСрсии 30.2. +developer: Corey Phillips +website: https://github.com/coreyphillips/bitcoin-regtest-dashboard +dependencies: [] +repo: https://github.com/coreyphillips/bitcoin-regtest-dashboard +support: https://github.com/coreyphillips/bitcoin-regtest-dashboard/issues +port: 3009 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Corey Phillips +submission: https://github.com/getumbrel/dfwebos-apps/pull/4264 diff --git a/bitcoin-regtest-dashboard/docker-compose.yml b/bitcoin-regtest-dashboard/docker-compose.yml new file mode 100644 index 0000000..96e30b0 --- /dev/null +++ b/bitcoin-regtest-dashboard/docker-compose.yml @@ -0,0 +1,89 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: bitcoin-regtest-dashboard_dashboard_1 + APP_PORT: 3000 + + # Bitcoin Core Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ рСгистрации (Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ, Π±Π΅Π· зависимостСй) + bitcoin: + image: ghcr.io/getumbrel/docker-bitcoind:v30.2@sha256:75ad7da4eaa2a56b92e5703ff39fa86aa7b9012c50749ca082f018a761d136cd + user: "1000:1000" + restart: on-failure + entrypoint: ["/bin/sh", "-c"] + command: + - | + rm -f /data/.bitcoin/regtest/.ready + bitcoind -regtest \ + -server=1 \ + -rpcbind=0.0.0.0 \ + -rpcallowip=0.0.0.0/0 \ + -rpcport=18443 \ + -txindex=1 \ + -fallbackfee=0.00001 \ + -disablewallet=0 \ + -zmqpubrawblock=tcp://0.0.0.0:28332 \ + -zmqpubrawtx=tcp://0.0.0.0:28333 & + BITCOIND_PID=$$! + while [ ! -f /data/.bitcoin/regtest/.cookie ]; do sleep 1; done + chmod 755 /data/.bitcoin/regtest + chmod 644 /data/.bitcoin/regtest/.cookie + sleep 2 + bitcoin-cli -regtest -rpccookiefile=/data/.bitcoin/regtest/.cookie createwallet "regtest_wallet" 2>/dev/null || \ + bitcoin-cli -regtest -rpccookiefile=/data/.bitcoin/regtest/.cookie loadwallet "regtest_wallet" 2>/dev/null || true + bitcoin-cli -regtest -rpccookiefile=/data/.bitcoin/regtest/.cookie -rpcwallet=regtest_wallet -generate 1 >/dev/null 2>&1 || true + touch /data/.bitcoin/regtest/.ready + while kill -0 $$BITCOIND_PID 2>/dev/null; do + chmod 755 /data/.bitcoin/regtest 2>/dev/null + chmod 644 /data/.bitcoin/regtest/.cookie 2>/dev/null + sleep 5 + done & + wait $$BITCOIND_PID + volumes: + - ${APP_DATA_DIR}/data/bitcoin:/data/.bitcoin + healthcheck: + test: ["CMD-SHELL", "test -f /data/.bitcoin/regtest/.ready && chmod 644 /data/.bitcoin/regtest/.cookie && bitcoin-cli -regtest -rpccookiefile=/data/.bitcoin/regtest/.cookie getblockchaininfo"] + interval: 5s + timeout: 5s + retries: 10 + start_period: 10s + + # Electrs β€” рСализация Electrum Server + electrs: + image: getumbrel/electrs:v0.11.0@sha256:0a2c6f573abfd8d724651c6ba1c1f3a9c740219c1cf0f4468043c3342170d8a5 + user: "1000:1000" + restart: on-failure + ports: + - "60401:50001" + environment: + ELECTRS_ELECTRUM_RPC_ADDR: "0.0.0.0:50001" + ELECTRS_DAEMON_RPC_ADDR: "bitcoin-regtest-dashboard_bitcoin_1:18443" + ELECTRS_DAEMON_P2P_ADDR: "bitcoin-regtest-dashboard_bitcoin_1:18444" + ELECTRS_LOG_FILTERS: "INFO" + ELECTRS_NETWORK: "regtest" + volumes: + - ${APP_DATA_DIR}/data/electrs:/data + - ${APP_DATA_DIR}/data/bitcoin:/data/.bitcoin:ro + depends_on: + bitcoin: + condition: service_healthy + + # ПанСль рСгистрации Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½ΠΎΠ² + dashboard: + image: coreylphillips/bitcoin-regtest-dashboard:v1.0.3@sha256:f1ccffc2002f107559338f015097e49af7f547eababfcd1f53f0f2bdbd159c88 + user: "1000:1000" + restart: on-failure + environment: + PORT: 3000 + BITCOIN_RPC_HOST: bitcoin-regtest-dashboard_bitcoin_1 + BITCOIN_RPC_PORT: 18443 + BITCOIN_COOKIE_FILE: /bitcoin/.bitcoin/regtest/.cookie + ELECTRS_HOST: bitcoin-regtest-dashboard_electrs_1 + ELECTRS_PORT: 50001 + ELECTRS_EXTERNAL_PORT: 60401 + volumes: + - ${APP_DATA_DIR}/data/bitcoin:/bitcoin/.bitcoin:ro + depends_on: + bitcoin: + condition: service_healthy diff --git a/bitcoin/data/app/.gitkeep b/bitcoin/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitcoin/data/bitcoin/.gitkeep b/bitcoin/data/bitcoin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitcoin/data/i2pd/.gitkeep b/bitcoin/data/i2pd/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitcoin/dfwebos-app.yml b/bitcoin/dfwebos-app.yml new file mode 100644 index 0000000..e388599 --- /dev/null +++ b/bitcoin/dfwebos-app.yml @@ -0,0 +1,91 @@ +manifestVersion: 1.1 +id: bitcoin +category: bitcoin +name: Bitcoin Node +version: "1.2.2" +tagline: ЗапуститС свой Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π½Π° Π±Π°Π·Π΅ Bitcoin Core +description: >- + ЗапуститС свой ΡƒΠ·Π΅Π» Bitcoin Π½Π° Π±Π°Π·Π΅ Bitcoin Core. НСзависимо Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈ провСряйтС ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ Bitcoin. + ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свой кошСлСк Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ своСму ΡƒΠ·Π»Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Π²Π·ΠΎΠΉΠ΄Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ кошСлька Π½Π΅ ΠΌΠΎΠ³ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ Ρ…ΡƒΠΆΠ΅, Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ вас Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅. + + + Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· собствСнный ΡƒΠ·Π΅Π» Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ сСти Bitcoin β€” Π±Π΅ΡΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. + + + Благодаря Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 20 Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ настройкам Π²Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Bitcoin Core ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ваш ΡƒΠ·Π΅Π», + ΠΊΠ°ΠΊ ваш ΡƒΠ·Π΅Π» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΡƒΠ·Π»Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Tor, Clearnet ΠΈ I2P, Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ ограничСния Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, устанавливаСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ΅ΠΌΠΏΡƒΠ»Π°, + тонкая настройка ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + + НС Π²Π΅Ρ€ΡŒ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ. На стСроидах. + + + ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ DFWebOS. +developer: DFWebOS +website: https://dfwebos.com +dependencies: [] +repo: https://github.com/getumbrel/dfwebos-bitcoin +support: https://community.getumbrel.com/c/bitcoin-and-lightning +port: 2100 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +defaultPassword: "" +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ устраняСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, которая ΠΌΠΎΠ³Π»Π° привСсти ΠΊ сбою ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡƒ пСрСзапуску прилоТСния Bitcoin Node. +widgets: + - id: "stats" + type: "four-stats" + refresh: "5s" + endpoint: "app:3000/api/widget/stats" + link: "" + example: + type: "four-stats" + link: "" + items: + - title: "Connections" + text: "11" + subtext: "peers" + - title: "Mempool" + text: "257" + subtext: "MB" + - title: "Hashrate" + text: "590" + subtext: "EH/s" + - title: "Blockchain size" + text: "600" + subtext: "GB" + - id: "sync" + type: "text-with-progress" + refresh: "2s" + endpoint: "app:3000/api/widget/sync" + link: "" + example: + type: "text-with-progress" + link: "" + title: "Blockchain sync" + text: "83%" + progressLabel: "In progress" + progress: 0.83 +backupIgnore: + - data/bitcoin/blocks + - data/bitcoin/chainstate + - data/bitcoin/indexes + - data/bitcoin/testnet3/blocks + - data/bitcoin/testnet3/chainstate + - data/bitcoin/testnet3/indexes + - data/bitcoin/testnet4/blocks + - data/bitcoin/testnet4/chainstate + - data/bitcoin/testnet4/indexes + - data/bitcoin/signet/blocks + - data/bitcoin/signet/chainstate + - data/bitcoin/signet/indexes + - data/bitcoin/regtest/blocks + - data/bitcoin/regtest/chainstate + - data/bitcoin/regtest/indexes +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/commit/576ecd2bef8d625abceed0f67ec9c487da9b2b1b diff --git a/bitcoin/docker-compose.yml b/bitcoin/docker-compose.yml new file mode 100644 index 0000000..0a8c000 --- /dev/null +++ b/bitcoin/docker-compose.yml @@ -0,0 +1,85 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_BITCOIN_NODE_IP + APP_PORT: 3000 + + app: + image: ghcr.io/getumbrel/umbrel-bitcoin:v1.2.2@sha256:bc72c7fe705c582b8be1740c52449ac82de4d40b0e91ea090513aac6d4fc9393 + user: "1000:1000" + restart: on-failure + stop_grace_period: 15m30s + # эти ΠΏΠΎΡ€Ρ‚Ρ‹ доступны для Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΊ bitcoind + ports: + - "${APP_BITCOIN_P2P_PORT}:${APP_BITCOIN_P2P_PORT}" + - "${APP_BITCOIN_RPC_PORT}:${APP_BITCOIN_RPC_PORT}" + volumes: + - ${APP_DATA_DIR}/data:/data # data/app and data/bitcoin + environment: + # ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ˜ ΠšΠΠ’ΠΠ›ΠžΠ“ ДАННЫΠ₯ + # BITCOIN_DIR: bitcoin-dir-override + # APP_STATE_DIR: app-state-dir-override + + # Π‘Π˜ΠΠΠ ΠΠ«Π• ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ˜ Π‘Π˜Π’ΠšΠžΠ˜ΠΠ”Π + # BITCOIND_BIN: bitcoind-binary-path-override + # BITCOIND_EXTRA_ARGS β€” это список Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ² запуска, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² bitcoind. + # ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ depratedrpc=create_bdb Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Jam (JoinMarket) Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ дСскрипторного кошСлька. + # Bitcoin Core v30 большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ кошСльки bdb, поэтому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Jam Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ 29.2 для совмСстимости. + BITCOIND_EXTRA_ARGS: '-deprecatedrpc=create_bdb' + + # ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ˜ КОНЀ-ЀАЙЛА Π‘Π˜Π’ΠšΠžΠ˜ΠΠ”Π + APPS_SUBNET: "${NETWORK_IP}/16" # used for rpcallowip + P2P_PORT: "${APP_BITCOIN_P2P_PORT}" # port, bind (also used for connect details) + P2P_WHITEBIND_PORT: "${APP_BITCOIN_P2P_WHITEBIND_PORT}" # Additional inbound P2P listener granting whitelisted permissions (whitebind) to this port; for trusted internal apps only; do not publish externally + RPC_PORT: "${APP_BITCOIN_RPC_PORT}" # rpcport (also used for rpc client and connect details) + TOR_PORT: "${APP_BITCOIN_TOR_PORT}" # bind=onion + ZMQ_RAWBLOCK_PORT: "${APP_BITCOIN_ZMQ_RAWBLOCK_PORT}" # zmqpubrawblock + ZMQ_RAWTX_PORT: "${APP_BITCOIN_ZMQ_RAWTX_PORT}" # zmqpubrawtx + ZMQ_HASHBLOCK_PORT: "${APP_BITCOIN_ZMQ_HASHBLOCK_PORT}" # zmqpubhashblock + ZMQ_SEQUENCE_PORT: "${APP_BITCOIN_ZMQ_SEQUENCE_PORT}" # zmqpubsequence + ZMQ_HASHTX_PORT: "${APP_BITCOIN_ZMQ_HASHTX_PORT}" # zmqpubhashtx + TOR_HOST: "${APP_BITCOIN_TOR_PROXY_IP}" # proxy, onion, torcontrol + TOR_SOCKS_PORT: "9050" # proxy, onion + TOR_CONTROL_PORT: "9051" # torcontrol + TOR_CONTROL_PASSWORD: "moneyprintergobrrr" # torpassword + I2P_HOST: "${APP_BITCOIN_I2P_DAEMON_IP}" # i2psam + I2P_SAM_PORT: "7656" # i2psam + + # ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ˜ ΠšΠ›Π˜Π•ΠΠ’Π RPC + BITCOIND_IP: "${APP_BITCOIN_NODE_IP}" # host for the rpc client. Also used for bitcoind conf file rpcbind & bind. + RPC_USER: "${APP_BITCOIN_RPC_USER}" # also shown in the connect modal + RPC_PASS: "${APP_BITCOIN_RPC_PASS}" # also shown in the connect modal + + # CONNECTION DETAILS (отобраТаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π² модальном ΠΎΠΊΠ½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ) + DEVICE_DOMAIN_NAME: "${DEVICE_DOMAIN_NAME}" + P2P_HIDDEN_SERVICE: "${APP_BITCOIN_P2P_HIDDEN_SERVICE}" + RPC_HIDDEN_SERVICE: "${APP_BITCOIN_RPC_HIDDEN_SERVICE}" + networks: + default: + ipv4_address: $APP_BITCOIN_NODE_IP + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" + networks: + default: + ipv4_address: "${APP_BITCOIN_TOR_PROXY_IP}" + + i2pd_daemon: + image: purplei2p/i2pd:release-2.59.0@sha256:257653c18ce0b127ef480e3d8373b3ddbf1495e842674c8cfc59909be0015979 + user: "root" + command: --sam.enabled=true --sam.address=0.0.0.0 --sam.port=7656 --loglevel=error + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/i2pd:/home/i2pd/data + networks: + default: + ipv4_address: "${APP_BITCOIN_I2P_DAEMON_IP}" diff --git a/bitcoin/exports.sh b/bitcoin/exports.sh new file mode 100644 index 0000000..6d455cc --- /dev/null +++ b/bitcoin/exports.sh @@ -0,0 +1,81 @@ +# IP-АДРЕБА +export APP_BITCOIN_NODE_IP="10.21.21.8" +export APP_BITCOIN_TOR_PROXY_IP="10.21.22.10" +export APP_BITCOIN_I2P_DAEMON_IP="10.21.22.11" + +# ΠšΠΠ’ΠΠ›ΠžΠ“ ДАННЫΠ₯ +export APP_BITCOIN_DATA_DIR="${EXPORTS_APP_DIR}/data/bitcoin" + +# ПОРВЫ +export APP_BITCOIN_RPC_PORT="8332" +export APP_BITCOIN_P2P_PORT="8333" +# Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ входящий ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ P2P, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ· Π±Π΅Π»ΠΎΠ³ΠΎ списка (whitebind) этому ΠΏΠΎΡ€Ρ‚Ρƒ; Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ; Π½Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π²Π½Π΅ΡˆΠ½ΠΈΡ… рСсурсах +export APP_BITCOIN_P2P_WHITEBIND_PORT="8335" +# Начиная с вСрсии 28.1, ΠΏΠΎΡ€Ρ‚ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ Π»ΡƒΠΊΠΎΠ²ΠΈΡ†Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -port + 1 вмСсто фиксированного значСния (8334 Π² основной сСти). +# Π£ нас всС Π² порядкС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ всСгда ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΡ€Ρ‚ Π½Π° 8333 нСзависимо ΠΎΡ‚ сСти. +export APP_BITCOIN_TOR_PORT="8334" +export APP_BITCOIN_ZMQ_RAWBLOCK_PORT="28332" +export APP_BITCOIN_ZMQ_RAWTX_PORT="28333" +export APP_BITCOIN_ZMQ_HASHBLOCK_PORT="28334" +export APP_BITCOIN_ZMQ_SEQUENCE_PORT="28335" +export APP_BITCOIN_ZMQ_HASHTX_PORT="28336" + +# Π‘Π•Π’Π¬ +export APP_BITCOIN_NETWORK="mainnet" + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° settings.json, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ APP_BITCOIN_NETWORK ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. +{ + BITCOIN_APP_CONFIG_FILE="${EXPORTS_APP_DIR}/data/app/settings.json" + if [[ -f "${BITCOIN_APP_CONFIG_FILE}" ]] + then + bitcoin_app_network=$(jq -r '.chain' "${BITCOIN_APP_CONFIG_FILE}") + case $bitcoin_app_network in + "main") + APP_BITCOIN_NETWORK="mainnet";; + "test") + APP_BITCOIN_NETWORK="testnet";; + "testnet4") + APP_BITCOIN_NETWORK="testnet4";; + "signet") + APP_BITCOIN_NETWORK="signet";; + "regtest") + APP_BITCOIN_NETWORK="regtest";; + *) + if [[ -n "$bitcoin_app_network" ]] && [[ "$bitcoin_app_network" != "null" ]]; then + echo "Warning (${EXPORTS_APP_ID}): Invalid network '${bitcoin_app_network}' in settings.json. Exporting APP_BITCOIN_NETWORK as default 'mainnet'." + fi;; + esac + fi +} > /dev/null || true + +# Π€Π°ΠΉΠ» .env для сохранСния ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ пароля RPC. +BITCOIN_ENV_FILE="${EXPORTS_APP_DIR}/.env" + +# Если Ρ„Π°ΠΉΠ»Π° .env Π½Π΅ сущСствуСт, создайтС Π΅Π³ΠΎ со сгСнСрированными значСниями. +if [[ ! -f "${BITCOIN_ENV_FILE}" ]]; then + if [[ -z ${BITCOIN_RPC_USER+x} ]] || [[ -z ${BITCOIN_RPC_PASS+x} ]]; then + BITCOIN_RPC_USER="dfwebos" + BITCOIN_RPC_DETAILS=$("${EXPORTS_APP_DIR}/scripts/rpcauth.py" "${BITCOIN_RPC_USER}") + BITCOIN_RPC_PASS=$(echo "$BITCOIN_RPC_DETAILS" | tail -1) + fi + + echo "export APP_BITCOIN_RPC_USER='${BITCOIN_RPC_USER}'" >> "${BITCOIN_ENV_FILE}" + echo "export APP_BITCOIN_RPC_PASS='${BITCOIN_RPC_PASS}'" >> "${BITCOIN_ENV_FILE}" +fi + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» .env для экспорта APP_BITCOIN_RPC_USER ΠΈ APP_BITCOIN_RPC_PASS. +. "${BITCOIN_ENV_FILE}" + +# Π‘ΠšΠ Π«Π’Π«Π• Π£Π‘Π›Π£Π“Π˜ +rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rpc/hostname" +p2p_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-p2p/hostname" +export APP_BITCOIN_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" +export APP_BITCOIN_P2P_HIDDEN_SERVICE="$(cat "${p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" + +# TODO: Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Electrs занялся этим вмСсто этого, Π½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ этого ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… установок Electrs Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ обновятся. +# ЭкспортируйтС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сСти, совмСстимый с lectres +# lectrs ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ "bitcoin" вмСсто "mainnet", Π½ΠΎ соотвСтствуСт всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ тСстовым сСтям. +export APP_BITCOIN_NETWORK_ELECTRS=$APP_BITCOIN_NETWORK +if [[ "${APP_BITCOIN_NETWORK_ELECTRS}" = "mainnet" ]]; then + APP_BITCOIN_NETWORK_ELECTRS="bitcoin" +fi \ No newline at end of file diff --git a/bitcoin/hooks/pre-start b/bitcoin/hooks/pre-start new file mode 100755 index 0000000..66673dd --- /dev/null +++ b/bitcoin/hooks/pre-start @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/../data)" +DESIRED_OWNER="1000:1000" + +set_correct_permissions() { + local -r path="${1}" + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ» + if [[ -f "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + echo "Changed ownership of ${path} to ${DESIRED_OWNER}" + fi + else + echo "Skipping ${path} - file does not exist" + fi +} + +# ΠœΡ‹ устанавливаСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Π»ΡŽΠ±Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ созданы ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root: +set_correct_permissions "${APP_DATA_DIR}/bitcoin/umbrel-bitcoin.conf" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/bitcoin.conf" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/bitcoin.conf.save" +# settings.json для любой сСти ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ исправлСно самим старым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ΄ root. +set_correct_permissions "${APP_DATA_DIR}/bitcoin/settings.json" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/regtest/settings.json" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/signet/settings.json" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/testnet3/settings.json" +set_correct_permissions "${APP_DATA_DIR}/bitcoin/testnet4/settings.json" + +# УстанавливайтС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ рСкурсивно для всСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° привязки /app. +if [[ -d "${APP_DATA_DIR}/app" ]]; then + chown -R "${DESIRED_OWNER}" "${APP_DATA_DIR}/app" +fi + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсии прилоТСния Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ скрытыС слуТбы Tor RPC ΠΈ P2P. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-rpc/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach app +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/bitcoin/scripts/rpcauth.py b/bitcoin/scripts/rpcauth.py new file mode 100755 index 0000000..f59b4dd --- /dev/null +++ b/bitcoin/scripts/rpcauth.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +# Copyright (c) 2015-2018 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Bitcoin Core +# РаспространяСтся ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС MIT, см. ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. +# Ρ„Π°ΠΉΠ» COPYING ΠΈΠ»ΠΈ http://www.opensource.org/licenses/mit-license.php. + +from argparse import ArgumentParser +from base64 import urlsafe_b64encode +from binascii import hexlify +from getpass import getpass +from os import urandom + +import hmac + +def generate_salt(size): + """Create size byte hex salt""" + return hexlify(urandom(size)).decode() + +def generate_password(): + """Create 32 byte b64 password""" + return urlsafe_b64encode(urandom(32)).decode('utf-8') + +def password_to_hmac(salt, password): + m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), 'SHA256') + return m.hexdigest() + +def main(): + parser = ArgumentParser(description='Create login credentials for a JSON-RPC user') + parser.add_argument('username', help='the username for authentication') + parser.add_argument('password', help='leave empty to generate a random password or specify "-" to prompt for password', nargs='?') + args = parser.parse_args() + + if not args.password: + args.password = generate_password() + elif args.password == '-': + args.password = getpass() + + # Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ 16-Π±Π°ΠΉΡ‚ΠΎΠ²ΡƒΡŽ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ соль + salt = generate_salt(16) + password_hmac = password_to_hmac(salt, args.password) + + print('String to be appended to bitcoin.conf:') + print('rpcauth={0}:{1}${2}'.format(args.username, salt, password_hmac)) + print('Your password:\n{0}'.format(args.password)) + +if __name__ == '__main__': + main() diff --git a/bitcoin/torrc.template b/bitcoin/torrc.template new file mode 100644 index 0000000..1994614 --- /dev/null +++ b/bitcoin/torrc.template @@ -0,0 +1,13 @@ +SocksPort 0.0.0.0:9050 +ControlPort 0.0.0.0:9051 +CookieAuthentication 1 +CookieAuthFileGroupReadable 1 +HashedControlPassword 16:39AF5EEFA4FC1D986022FDFB13663669FE50FB6DE9A3B4FE4FC7D82010 # moneyprintergobrrr + +# Bitcoin Core P2P Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис +HiddenServiceDir /data/app-$APP_ID-p2p +HiddenServicePort $APP_BITCOIN_P2P_PORT $APP_BITCOIN_NODE_IP:$APP_BITCOIN_TOR_PORT + +# Bitcoin Core RPC Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис +HiddenServiceDir /data/app-$APP_ID-rpc +HiddenServicePort $APP_BITCOIN_RPC_PORT $APP_BITCOIN_NODE_IP:$APP_BITCOIN_RPC_PORT \ No newline at end of file diff --git a/bitfeed/data/.gitkeep b/bitfeed/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitfeed/dfwebos-app.yml b/bitfeed/dfwebos-app.yml new file mode 100644 index 0000000..80a941d --- /dev/null +++ b/bitfeed/dfwebos-app.yml @@ -0,0 +1,32 @@ +manifestVersion: 1 +id: bitfeed +category: bitcoin +name: Bitfeed +version: "2.3.4" +tagline: ΠšΡ€Π°ΡΠΈΠ²Ρ‹ΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΌΠ΅ΠΌΠΏΡƒΠ»Π° ΠΈ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Π±Π»ΠΎΠΊΠΎΠ². +description: >- + Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ вСрсия Bitfeed β€” Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΈ Π±Π»ΠΎΠΊ ΠΌΠ΅ΠΌΠΏΡƒΠ»ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. + ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ доступСн ΠΏΠΎ адрСсу https://bitfeed.live. + + + ΠΠ°Π±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ Π·Π° Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² ΠΌΠ΅ΠΌΠΏΡƒΠ» вашСго ΡƒΠ·Π»Π°, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ‹ Π² вновь Π΄ΠΎΠ±Ρ‹Ρ‚Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ. + + + ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Bitcoin, исслСдуйтС Π±Π»ΠΎΠΊΠΈ ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ просто Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ ΡƒΡΠΏΠΎΠΊΠ°ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ заставкой Bitcoin. +developer: Mononaut +website: https://monospace.live +dependencies: + - bitcoin +repo: https://github.com/bitfeed-project/bitfeed +support: https://github.com/bitfeed-project/bitfeed/issues +port: 8314 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Mononaut +submission: https://github.com/getumbrel/umbrel/pull/1202 +releaseNotes: "" \ No newline at end of file diff --git a/bitfeed/docker-compose.yml b/bitfeed/docker-compose.yml new file mode 100644 index 0000000..e495c91 --- /dev/null +++ b/bitfeed/docker-compose.yml @@ -0,0 +1,39 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: bitfeed_web_1 + APP_PORT: 80 + + web: + image: ghcr.io/bitfeed-project/bitfeed-client:v2.3.4@sha256:5d57477e69a789d547b1c6c441e0ff49e2f5ed46bf4b5ab9ca9f5403f385e926 + restart: on-failure + stop_grace_period: 1m + depends_on: + - "api" + environment: + TARGET: "dfwebos" + BACKEND_HOST: bitfeed_api_1 + BACKEND_PORT: 8315 + + api: + image: ghcr.io/bitfeed-project/bitfeed-server:v2.3.4@sha256:e38a2e07389cf6d0c519e856291e535fdd10a1e50143d528c82bfe0baf06894f + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + PORT: 8315 + BITCOIN_HOST: "$APP_BITCOIN_NODE_IP" + BITCOIN_ZMQ_RAWTX_PORT: "$APP_BITCOIN_ZMQ_RAWTX_PORT" + BITCOIN_ZMQ_RAWBLOCK_PORT: "$APP_BITCOIN_ZMQ_RAWBLOCK_PORT" + BITCOIN_ZMQ_SEQUENCE_PORT: "$APP_BITCOIN_ZMQ_SEQUENCE_PORT" + BITCOIN_RPC_PORT: "$APP_BITCOIN_RPC_PORT" + BITCOIN_RPC_USER: "$APP_BITCOIN_RPC_USER" + BITCOIN_RPC_PASS: "$APP_BITCOIN_RPC_PASS" + TARGET: "dfwebos" + RPC_POOLS: "1" + RPC_POOL_SIZE: "16" + LOG_LEVEL: "info" + volumes: + - ${APP_DATA_DIR}/data:/app/data diff --git a/bitwatch/data/.gitkeep b/bitwatch/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bitwatch/dfwebos-app.yml b/bitwatch/dfwebos-app.yml new file mode 100644 index 0000000..047b96c --- /dev/null +++ b/bitwatch/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: bitwatch +category: bitcoin +name: Bitwatch +version: "1.7.2" +tagline: ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ адрСсов Bitcoin Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ +description: >- + ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ адрСса Bitcoin Π² ΠΌΠ΅ΠΌΠΏΡƒΠ»Π΅ ΠΈ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ mempool.space API ΠΈ Π²Π΅Π±-сокСт. + + + ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ измСнСния баланса, ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ увСдомлСния Π² Telegram ΠΈ управляйтС оТиданиями для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… адрСсов. + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + - Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ список адрСсов Π² коллСкциях для суммирования балансов ΠΏΠΎ кошСлькам. + - ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ΡΡ Π½Π° Π²Π΅Π±-сокСт mempool.space (ΠΈΠ»ΠΈ локально Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ) для активности ΠΌΠ΅ΠΌΠΏΡƒΠ»Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + - Двойная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ mempool.space (ΠΈΠ»ΠΈ локально Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠΌΡƒ) API Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π». + - ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, Ρ‚Π°ΠΊ ΠΈ Π² ΠΌΠ΅ΠΌΠΏΡƒΠ»Π΅. + - Настройка Ρ€Π΅ΠΆΠΈΠΌΠ° автоматичСского принятия ΠΈΠ»ΠΈ оповСщСния ΠΎΠ± измСнСниях (chain_in, Chain_out, mempool_in, mempool_out) + - ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ входящиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ автоматичСски, исходящиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π°ΡŽΡ‚ΡΡ + - ΠΎΠ±ΠΎ всСх дСйствиях сообщаСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² настроСнном соСдинСнии Telegram (Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ автоматичСском принятии) + - Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнный Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π» для обСспСчСния ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Mempool + Fulcrum для частного запуска, Π½ΠΎ это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. +developer: Zap-O-Matic +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π’ этом выпускС Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: + + - ΠΊΠΎΠ³Π΄Π° настроСн Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ экзСмпляр ΠΌΠ΅ΠΌΠΏΡƒΠ»Π°, адрСсныС ссылки ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° этот URL-адрСс слуТбы. + +website: https://github.com/zapomatic/bitwatch +repo: https://github.com/zapomatic/bitwatch +support: https://github.com/zapomatic/bitwatch/issues +dependencies: [] +port: 3117 +path: "" +submitter: Zap-O-Matic +submission: https://github.com/getumbrel/dfwebos-apps/pull/2410 diff --git a/bitwatch/docker-compose.yml b/bitwatch/docker-compose.yml new file mode 100644 index 0000000..f737e30 --- /dev/null +++ b/bitwatch/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: bitwatch_web_1 + APP_PORT: 3117 + + web: + image: ghcr.io/zapomatic/bitwatch:v1.7.2@sha256:bfc7522e0953c212010e189fdf6bd060168fb9ed283f59512600b0da0c98bd3b + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/app/server/data diff --git a/bitwatch/exports.sh b/bitwatch/exports.sh new file mode 100644 index 0000000..e69de29 diff --git a/bleskomat-server/data/.gitkeep b/bleskomat-server/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bleskomat-server/data/db/.gitkeep b/bleskomat-server/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bleskomat-server/data/web/.gitkeep b/bleskomat-server/data/web/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bleskomat-server/dfwebos-app.yml b/bleskomat-server/dfwebos-app.yml new file mode 100644 index 0000000..eb08f3a --- /dev/null +++ b/bleskomat-server/dfwebos-app.yml @@ -0,0 +1,24 @@ +manifestVersion: 1 +id: bleskomat-server +category: bitcoin +name: Bleskomat Server +version: "1.3.4" +tagline: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π±Π°Π½ΠΊΠΎΠΌΠ°Ρ‚ Bleskomat ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΡƒΠ·Π»Ρƒ Lightning +description: "Π‘Π°Π½ΠΊΠΎΠΌΠ°Ρ‚ Bleskomat β€” это Π±Π°Π½ΠΊΠΎΠΌΠ°Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ поколСния Bitcoin Lightning." +developer: Bleskomat +website: https://www.bleskomat.com +dependencies: + - lightning +repo: https://github.com/samotari/bleskomat-server +support: https://t.me/bleskomat +port: 3333 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: true +torOnly: false +submitter: Charles Hill +submission: https://github.com/getumbrel/umbrel/pull/1175 +releaseNotes: "" \ No newline at end of file diff --git a/bleskomat-server/docker-compose.yml b/bleskomat-server/docker-compose.yml new file mode 100644 index 0000000..b9f1ed7 --- /dev/null +++ b/bleskomat-server/docker-compose.yml @@ -0,0 +1,44 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: bleskomat-server_web_1 + APP_PORT: 3333 + PROXY_AUTH_ADD: "false" + + db: + image: postgres:10.20-stretch@sha256:130e08bb19199bd055e585e8938c5ebb0555dc13b445fad5b0bd727e4b75149c + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - $APP_DATA_DIR/data/db:/var/lib/postgresql/data + environment: + - POSTGRES_USER=bleskomat_server + - POSTGRES_DB=bleskomat_server + - POSTGRES_PASSWORD=moneyprintergobrrr + + web: + image: bleskomat/bleskomat-server:1.3.4@sha256:7bd91b896c5ca4f69b7c9509b40ccfae273cc46120ec66b2e27b295b0186f230 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + depends_on: + - db + volumes: + - $APP_DATA_DIR/data/web:/usr/src/app/data + - $APP_LIGHTNING_NODE_DATA_DIR:/lnd:ro + environment: + DEBUG: "bleskomat-server*,lnurl*" + BLESKOMAT_SERVER_HOST: "0.0.0.0" + BLESKOMAT_SERVER_PORT: 3333 + BLESKOMAT_SERVER_URL: "$APP_HIDDEN_SERVICE" + BLESKOMAT_SERVER_ENDPOINT: "/u" + BLESKOMAT_SERVER_AUTH_API_KEYS: '[]' + BLESKOMAT_SERVER_LIGHTNING: '{"backend":"lnd","config":{"cert":"/lnd/tls.cert","protocol":"https","hostname":"$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_REST_PORT","macaroon":"/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon"}}' + BLESKOMAT_SERVER_STORE: '{"backend":"knex","config":{"client":"postgres","connection":{"host":"bleskomat-server_db_1","port":5432,"user":"bleskomat_server","password":"moneyprintergobrrr","database":"bleskomat_server"}}}' + BLESKOMAT_SERVER_COINRATES_DEFAULTS_PROVIDER: "coinbase" + BLESKOMAT_SERVER_ADMIN_WEB: "true" + BLESKOMAT_SERVER_ADMIN_PASSWORD_PLAINTEXT: "$APP_PASSWORD" + BLESKOMAT_SERVER_ENV_FILEPATH: "./data/.env" diff --git a/blinko/data/app/.gitkeep b/blinko/data/app/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/blinko/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/blinko/data/db/.gitkeep b/blinko/data/db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/blinko/data/db/.gitkeep @@ -0,0 +1 @@ + diff --git a/blinko/dfwebos-app.yml b/blinko/dfwebos-app.yml new file mode 100644 index 0000000..8534bfb --- /dev/null +++ b/blinko/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: blinko +name: Blinko +tagline: Π¦Π΅Π½Ρ‚Ρ€ Π²Π°ΡˆΠΈΡ… ΠΈΠ΄Π΅ΠΉ ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ Π½Π° Π±Π°Π·Π΅ ИИ +category: files +version: "1.8.7" +port: 1111 +description: >- + πŸ˜‰ BlinkoΒ β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сочСтаСт Π² сСбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вСдСния Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΌΠΈΠΊΡ€ΠΎΠ±Π»ΠΎΠ³ΠΎΠ², вставки, управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Π±Π°Π·Π΅ ИИ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ срСдС. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ быстро ΠΈ эффСктивно Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои мысли благодаря ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Markdown для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ форматирования. + + + Благодаря ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ИИ, ΠΊΠ°ΠΊ OpenAI ΠΈΠ»ΠΈ Ollama, ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ. + + Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ экзСмпляр Ollama вашСго Umbrel, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ URL-адрСс Π² настройках для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΌΡƒ: **http://ollama_ollama_1:11434** + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдоставляСт Π³ΠΈΠ±ΠΊΠΈΠΉ способ управлСния Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π±Ρ‹Ρ‚ΡŒ общСдоступными. РСгулярноС автоматичСскоС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ бСспСрСбойный ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈ экспорт Π΄Π°Π½Π½Ρ‹Ρ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ всСгда ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своим ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Blinko размСщаСтся Π½Π° собствСнном хостингС, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ сувСрСнитСт Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ срСду Π±Π΅Π· коммСрчСских ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. + + + ΠžΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Next.js, Blinko ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для скорости ΠΈ эффСктивности, прСдлагая ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΉ ΠΈ соврСмСнный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎΠ½ поощряСт сотрудничСство ΠΈ доступСн бСсплатно Π±Π΅Π· скрытых ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ. Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для всСх, ΠΊΡ‚ΠΎ ΠΈΡ‰Π΅Ρ‚ ΠΌΠΎΡ‰Π½ΠΎΠ΅ ΠΈ настраиваСмоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. +developer: Blinko +website: https://blinko-demo.vercel.app/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2183 +repo: https://github.com/blinko-space/blinko +support: https://github.com/blinko-space/blinko/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности этой вСрсии: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ MiniMax Π² качСствС Π½ΠΎΠ²ΠΎΠΉ встроСнной ΠΎΠΏΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ИИ/LLM. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ символами Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Ρ‚Π΅Π³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΡ‡ΠΈΡ‰Π°Π»ΠΈΡΡŒ ΠΏΡ€ΠΈ сбросС поиска. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Ρ‚ΡƒΡ€Π΅Ρ†ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов интСрфСйс. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/blinko-space/blinko/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/blinko/docker-compose.yml b/blinko/docker-compose.yml new file mode 100644 index 0000000..88fcdd5 --- /dev/null +++ b/blinko/docker-compose.yml @@ -0,0 +1,50 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: blinko_app_1 + APP_PORT: 1111 + PROXY_AUTH_ADD: "false" + + db: + image: postgres:17.3@sha256:6e3358e46e34dae6c184f48fd06fe1b3dbf958ad5b83480031907e52b9ec2a7d + healthcheck: + test: ["CMD", "pg_isready", "-q", "-d", "blinko", "-U", "blinkouser"] + timeout: 45s + interval: 10s + retries: 10 + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data:rw + environment: + POSTGRES_DB: blinko + POSTGRES_USER: blinkouser + POSTGRES_PASSWORD: blinkopass + restart: on-failure + + app: + image: blinkospace/blinko:1.8.7@sha256:f7c1167f8c86db586599d849539a732929d89adb10977046e7b427813b2a84b4 + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:1111"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 30s + environment: + NODE_ENV: production + NEXTAUTH_URL: http://${DEVICE_DOMAIN_NAME}:1111 + NEXT_PUBLIC_BASE_URL: http://${DEVICE_DOMAIN_NAME}:1111 + NEXTAUTH_SECRET: ${APP_SEED} + DATABASE_URL: postgresql://blinkouser:blinkopass@blinko_db_1:5432/blinko + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/app:/app/.blinko:rw + logging: + options: + max-size: "10m" + max-file: "3" + depends_on: + db: + condition: service_healthy + restart: on-failure diff --git a/blockstream-blind-oracle/data/.gitkeep b/blockstream-blind-oracle/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/blockstream-blind-oracle/data/pins/.gitkeep b/blockstream-blind-oracle/data/pins/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/blockstream-blind-oracle/data/server_private_key.key b/blockstream-blind-oracle/data/server_private_key.key new file mode 100644 index 0000000..6b9f637 --- /dev/null +++ b/blockstream-blind-oracle/data/server_private_key.key @@ -0,0 +1 @@ + ΅~hMΉψς„ V>˜<ϊΐ+<ŽινP›œGάM \ No newline at end of file diff --git a/blockstream-blind-oracle/data/server_public_key.pub b/blockstream-blind-oracle/data/server_public_key.pub new file mode 100644 index 0000000..ae3f953 --- /dev/null +++ b/blockstream-blind-oracle/data/server_public_key.pub @@ -0,0 +1 @@ +2³`₯#ΫeΛ5`§!oΰ ‘Q8ωrƒ!œ±,ΙVρί \ No newline at end of file diff --git a/blockstream-blind-oracle/dfwebos-app.yml b/blockstream-blind-oracle/dfwebos-app.yml new file mode 100644 index 0000000..3cc1025 --- /dev/null +++ b/blockstream-blind-oracle/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1.1 +id: blockstream-blind-oracle +category: bitcoin +name: Blockstream Blind Oracle +version: "0.1.1" +tagline: Π—Π°ΡˆΠΈΡ„Ρ€ΡƒΠΉΡ‚Π΅ свой кошСлСк Π½Π° Blockstream Jade +description: >- + ЗапуститС Π»ΠΈΡ‡Π½Ρ‹ΠΉ слСпой ΠΎΡ€Π°ΠΊΡƒΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ кошСлька Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. + Блокстрим Π”ΠΆΠ΅ΠΉΠ΄. + + + Π’Π°Ρˆ слСпой ΠΎΡ€Π°ΠΊΡƒΠ» Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠ»ΡŽΡ‡ для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ вашСго Π½Π΅Ρ„Ρ€ΠΈΡ‚Π°. + Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вашС устройство. Π­Ρ‚ΠΎ позволяСт Π²Π°ΡˆΠ΅ΠΌΡƒ Π½Π΅Ρ„Ρ€ΠΈΡ‚Ρƒ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ ΠΎΡ‚ + ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ физичСского ΠΊΠ»ΡŽΡ‡Π°, ΠΏΡ€ΠΈ этом обСспСчивая максимум 3 ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π²Π²ΠΎΠ΄Π° PIN-ΠΊΠΎΠ΄Π°. + Π’Π°Ρˆ слСпой ΠΎΡ€Π°ΠΊΡƒΠ» Π½Π΅ ΡƒΠ·Π½Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π½Π΅ + знаю Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎ кошСлькС Π”ΠΆΠ΅ΠΉΠ΄. + + + Π‘Π»Π΅ΠΏΠΎΠΌΡƒ ΠΎΡ€Π°ΠΊΡƒΠ»Ρƒ трСбуСтся соСдинСниС Tor ΠΈΠ»ΠΈ Tailscale, Ссли Π²Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ + Tailscale, поТалуйста, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ MagicDNS Tailscale. +developer: Blockstream +website: https://blockstream.com +dependencies: [] +repo: https://github.com/Blockstream/blind_pin_server +support: https://t.me/blockstream_jade +port: 3344 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: '' +deterministicPassword: false +submitter: Blockstream +submission: https://github.com/getumbrel/dfwebos-apps/pull/950 +releaseNotes: "" \ No newline at end of file diff --git a/blockstream-blind-oracle/docker-compose.yml b/blockstream-blind-oracle/docker-compose.yml new file mode 100644 index 0000000..cc8abbd --- /dev/null +++ b/blockstream-blind-oracle/docker-compose.yml @@ -0,0 +1,50 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: blockstream-blind-oracle_web_1 + APP_PORT: $APP_PINSERVER_WEB_PORT + PROXY_AUTH_ADD: "false" + + node: + image: tulipan81/blind_pin_server:v0.0.7@sha256:db8ce3f8de8da6cb083d60051a8ec720d5aa311e06148b259c42c4dfb7263c63 + depends_on: + - web + - tor + restart: on-failure + stop_grace_period: 1m + ports: + - $APP_PINSERVER_PORT:8096 + volumes: + - ${APP_DATA_DIR}/data/server_public_key.pub:/server_public_key.pub + - ${APP_DATA_DIR}/data/server_private_key.key:/server_private_key.key + - ${APP_DATA_DIR}/data/pins:/pins + + web: + image: tulipan81/pinserver_web:v0.0.36@sha256:a5214dbc14538478744a6a0c6bd40f03ab8ac2990abc9038139c18901064205b + depends_on: + - tor + restart: on-failure + ports: + - $APP_PINSERVER_WEB_PORT:$APP_PINSERVER_WEB_PORT + volumes: + - ${APP_DATA_DIR}/data/server_public_key.pub:/app/server_public_key.pub + - ${APP_DATA_DIR}/data/server_private_key.key:/app/server_private_key.key + - ${APP_DATA_DIR}/data/pins:/app/pins + environment: + PINSERVER_URL_A: ${APP_PINSERVER_HIDDEN_SERVICE} + PINSERVER_PORT_A: ${APP_PINSERVER_PORT} + PINSERVER_URL_B: ${APP_TAILSCALE_URL} + PINSERVER_PORT_B: ${APP_PINSERVER_PORT} + PINSERVER_CERT: "" + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" diff --git a/blockstream-blind-oracle/exports.sh b/blockstream-blind-oracle/exports.sh new file mode 100755 index 0000000..887c601 --- /dev/null +++ b/blockstream-blind-oracle/exports.sh @@ -0,0 +1,8 @@ +export APP_PINSERVER_PORT="8097" +export APP_PINSERVER_WEB_PORT="8095" + +local app_pinserver_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-node/hostname" + +export APP_PINSERVER_HIDDEN_SERVICE="http://$(cat "${app_pinserver_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" + +export APP_TAILSCALE_URL="http://$(hostname 2>/dev/null || echo "notyetset.tailscale")" diff --git a/blockstream-blind-oracle/hooks/pre-start b/blockstream-blind-oracle/hooks/pre-start new file mode 100755 index 0000000..133cd29 --- /dev/null +++ b/blockstream-blind-oracle/hooks/pre-start @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ скрытый сСрвис для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΡƒΠ·Π»Π° ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ +# ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды слуТбы ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ установкС. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-node/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +# Π‘Π½Π°Ρ‡Π°Π»Π° запуститС Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСкрСт. +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach web + +# ЗапуститС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΡƒΠ·Π»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ скрытый сСрвис. +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach node + +echo "App: ${APP_ID} - Generating Tor Hidden Service for node container..." +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + # пСрСзапуститС Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΡΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ слуТбу env var + echo "App: ${APP_ID} - Restarting web container..." + "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" restart web + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/blockstream-blind-oracle/torrc.template b/blockstream-blind-oracle/torrc.template new file mode 100644 index 0000000..372c156 --- /dev/null +++ b/blockstream-blind-oracle/torrc.template @@ -0,0 +1,3 @@ +# Бкрытая слуТба ΠΏΠΈΠ½-сСрвСра +HiddenServiceDir /data/app-$APP_ID-node +HiddenServicePort $APP_PINSERVER_PORT blockstream-blind-oracle_node_1:8096 diff --git a/bluewallet/data/redis/.gitkeep b/bluewallet/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bluewallet/dfwebos-app.yml b/bluewallet/dfwebos-app.yml new file mode 100644 index 0000000..5869ad4 --- /dev/null +++ b/bluewallet/dfwebos-app.yml @@ -0,0 +1,30 @@ +manifestVersion: 1 +id: bluewallet +category: bitcoin +name: BlueWallet Lightning +version: "1.4.1" +tagline: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ BlueWallet ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΡƒΠ·Π»Ρƒ Lightning +description: >- + ЗапускайтС BlueWallet Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ бСзопасным способом: + ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ сторонних устройств ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ Lightning вашСго Umbrel + ΡƒΠ·Π΅Π». + + + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ нСсколько ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй BlueWallet, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваши Π΄Ρ€ΡƒΠ·ΡŒΡ ΠΈ родствСнники ΠΌΠΎΠ³Π»ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ свой BlueWallet с вашим DFWebOS для настройки с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ΠΌ. +developer: BlueWallet +website: https://lndhub.io +dependencies: + - lightning +repo: https://github.com/BlueWallet/LndHub +support: https://t.me/bluewallet +port: 3008 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Aaron Dewes +submission: https://github.com/getumbrel/umbrel/pull/566 +releaseNotes: "" \ No newline at end of file diff --git a/bluewallet/docker-compose.yml b/bluewallet/docker-compose.yml new file mode 100644 index 0000000..6de3a4a --- /dev/null +++ b/bluewallet/docker-compose.yml @@ -0,0 +1,34 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: bluewallet_lndhub_1 + APP_PORT: 3008 + PROXY_AUTH_ADD: "false" + + redis: + image: "redis:6.2.2-buster@sha256:e10f55f92478715698a2cef97c2bbdc48df2a05081edd884938903aa60df6396" + user: "1000:1000" + command: "redis-server --requirepass moneyprintergobrrr" + restart: "on-failure" + stop_grace_period: "1m" + init: true + volumes: + - "${APP_DATA_DIR}/data/redis:/data" + + lndhub: + image: "bluewalletorganization/lndhub:v1.4.1@sha256:db673a8d360982984d05f97303e26dc0e5a3eea36ba54d0abdae5bbbeef31d3a" + user: "1000:1000" + depends_on: [ "redis" ] + restart: "on-failure" + stop_grace_period: "1m" + init: true + volumes: + - "${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro" + environment: + PORT: 3008 + TOR_URL: "${APP_HIDDEN_SERVICE}" + LND_CERT_FILE: "/lnd/tls.cert" + LND_ADMIN_MACAROON_FILE: "/lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/admin.macaroon" + CONFIG: '{ "rateLimit": 10000, "postRateLimit": 10000, "redis": { "port": 6379, "host": "bluewallet_redis_1", "family": 4, "password": "moneyprintergobrrr", "db": 0 }, "lnd": { "url": "$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT", "password": ""}}' diff --git a/booklore/data/app/.gitkeep b/booklore/data/app/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/booklore/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/booklore/data/books/.gitkeep b/booklore/data/books/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/booklore/data/books/.gitkeep @@ -0,0 +1 @@ + diff --git a/booklore/data/db/.gitkeep b/booklore/data/db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/booklore/data/db/.gitkeep @@ -0,0 +1 @@ + diff --git a/booklore/dfwebos-app.yml b/booklore/dfwebos-app.yml new file mode 100644 index 0000000..ecf746a --- /dev/null +++ b/booklore/dfwebos-app.yml @@ -0,0 +1,62 @@ +manifestVersion: 1 +id: booklore +name: BookLore +tagline: ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для управлСния ΠΈ чтСния ΠΊΠ½ΠΈΠ³ +category: files +version: "2.2.0" +port: 6060 +description: >- + πŸ“– BookLore β€” это соврСмСнноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, созданноС для измСнСния способов управлСния ΠΈ использования Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят внСсти порядок ΠΈ красоту Π² свою ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΊΠ½ΠΈΠ³ ΠΈ комиксов, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ доступными. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ разбросанными ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ°ΠΌ, BookLore собираСт ΠΈΡ… Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСпосрСдствСнно Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Он обСспСчиваСт Π±Π΅Π·ΡƒΠΏΡ€Π΅Ρ‡Π½ΡƒΡŽ срСду чтСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ организация, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ ΡΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ. + + + Одной ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… особСнностСй BookLore являСтся ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π°Π²Ρ‚ΠΎΡ€, описаниС ΠΈ ΠΎΠ±Π»ΠΎΠΆΠΊΠ°, гарантируя, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΈ Π±Π΅Π·ΡƒΠΏΡ€Π΅Ρ‡Π½ΠΎΠΉ. Π­Ρ‚Π° автоматизация устраняСт ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Π²Π²ΠΎΠ΄Π° Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ Π½Π° ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ². ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ свои ΠΊΠ½ΠΈΠ³ΠΈ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎ информация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ΠΈ видят, Ρ‚ΠΎΡ‡Π½Π° ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Π°. + + + ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π»Π΅ΠΆΠΈΡ‚ Π² основС ΠΎΠΏΡ‹Ρ‚Π°. Книги ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами, Π² Ρ‚ΠΎΠΌ числС ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, ΠΏΠΎΠ»ΠΊΠ΅, ΠΆΠ°Π½Ρ€Ρƒ, Π°Π²Ρ‚ΠΎΡ€Ρƒ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ. Вакая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ позволяСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ систСму, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ°ΠΌ ΠΈ прСдпочтСниям, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, стоит Π»ΠΈ Ρ†Π΅Π»ΡŒ вСсти Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈΠ»ΠΈ просто Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ СстСствСнным способом. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ поощряСт исслСдованиС ΠΈ позволяСт Π»Π΅Π³ΠΊΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ для сСбя Π·Π°Π±Ρ‹Ρ‚Ρ‹Π΅ драгоцСнности Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. + + + Π‘Π°ΠΌΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ становится приятным благодаря встроСнной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ чтСния BookLore, которая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ популярныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ PDF, EPUB ΠΈ CBZ. Π ΠΈΠ΄Π΅Ρ€ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½, Π½ΠΎ ΠΈ настраиваСм, позволяя Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΡ‹ ΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСанс Π±Ρ‹Π» ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½Ρ‹ΠΌ. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ Π»ΠΈ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ для Π½ΠΎΡ‡Π½ΠΎΠ³ΠΎ чтСния ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ свСтлый Ρ„ΠΎΠ½ Π΄Π½Π΅ΠΌ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ адаптируСтся ΠΊ потрСбностям читатСля. Π’Π°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π°Π±ΠΎΡ‚Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ всСгда Π±ΡƒΠ΄Π΅Ρ‚ приятным, нСзависимо ΠΎΡ‚ устройства ΠΈΠ»ΠΈ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды. + + + BookLore Ρ‚Π°ΠΊΠΆΠ΅ создан для совмСстного использования ΠΈ совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π½Π΅ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡΡΡŒ ΠΎΡ‚ контроля. НСкоторым ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ записи, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ подходящим для сСмСй, Π³Ρ€ΡƒΠΏΠΏ чтСния ΠΈΠ»ΠΈ для всСх, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ пространство для ΠΊΠ½ΠΈΠ³, сохраняя ΠΏΡ€ΠΈ этом порядок ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ элСмСнтом являСтся способ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ BookLore с внСшними инструмСнтами чтСния. Благодаря ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ OPDS ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ популярными прилоТСниями для чтСния, позволяя ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ ΠΊΠ½ΠΈΠ³Π°ΠΌ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ ΠΏΡ€ΠΈ этом Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Вакая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΈ ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, какая срСда чтСния ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π°. + + + Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ названия Π»Π΅Π³ΠΊΠΎ благодаря Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ BookDrop. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ просто ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ Π² Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ мСсто, ΠΈ BookLore автоматичСски ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΅Π΅, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ. Π­Ρ‚ΠΎΡ‚ процСсс ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π³Π»Π°Π΄ΠΊΠΎ ΠΈ практичСски Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ взаимодСйствия, прСвращая Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ, Π² Π²ΠΎΡΡ…ΠΈΡ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простоС дСйствиС. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π»Π΅Π³ΠΊΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Благодаря встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ прямо ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠ½ΠΈΠ³ Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ устройства для чтСния элСктронных ΠΊΠ½ΠΈΠ³, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Kindle. Π­Ρ‚ΠΎ удобство устраняСт Ρ€Π°Π·Ρ€Ρ‹Π² ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ фактичСской ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ Π² Ρ€ΡƒΠΊΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ. + + + Π”ΠΈΠ·Π°ΠΉΠ½ интСрфСйса β€” Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° сильная сторона BookLore. Он ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ², ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΊ экранам Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², поэтому ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ приятно Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅, ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ΠœΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ ΡΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ удобство использования, побуТдая Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ со своСй ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ СстСствСнным ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ способом. + + + По своСй сути BookLore β€” это большС, Ρ‡Π΅ΠΌ просто инструмСнт управлСния. Π­Ρ‚ΠΎ продуманная срСда для Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ чтСния, ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‰Π°Ρ Π² сСбС ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ, совмСстноС использованиС ΠΈ настройку. ОбъСдинив Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ потрСбности ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΡΠΌΠΎΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ΠΌ ΠΎΡ‚ чтСния, ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€ΠΎΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΆΠΈΠ²ΡƒΡŽ, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Π»ΠΈΡ‡Π½ΡƒΡŽ. +developer: BookLore +website: https://demo.booklore.dev/login +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3560 +repo: https://github.com/booklore-app/booklore +support: https://github.com/booklore-app/booklore/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg + - 6.jpg +releaseNotes: >- + НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС: + - Π”Π²Π° Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ: «Книга ΠΏΠΎ Ρ„Π°ΠΉΠ»ΡƒΒ» (ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» становится ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΎΠΉ) ΠΈ «Книга ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ΅Β» (Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½Ρƒ ΠΊΠ½ΠΈΠ³Ρƒ). + - Π Π΅ΠΆΠΈΠΌ автоматичСского обнаруТСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…. + - НастраиваСмый Π·ΡƒΠΌ Π»ΡƒΠΏΡ‹ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π»ΠΈΠ½Π·Ρ‹ для считыватСля CBX. + - ΠžΠ±Π»Π°ΡΡ‚ΠΈ OIDC Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу: https://github.com/booklore-app/booklore/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/booklore/docker-compose.yml b/booklore/docker-compose.yml new file mode 100644 index 0000000..0c0424b --- /dev/null +++ b/booklore/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: booklore_web_1 + APP_PORT: 6060 + + web: + image: booklore/booklore:v2.2.0@sha256:346064cb1fef6149dad2d8a373ea5fd1a7e3b61c22540995e40e8452136e202b + # Π±Π΅Π· Ρ€ΡƒΡ‚Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ + #user: "1000:1000" + restart: on-failure + environment: + DATABASE_URL: jdbc:mariadb://booklore_db_1:3306/booklore + DATABASE_USERNAME: bookloreuser + DATABASE_PASSWORD: booklorepass + depends_on: + db: + condition: service_started + volumes: + - ${APP_DATA_DIR}/data/app:/app/data + - ${APP_DATA_DIR}/data/books:/books + + db: + image: mariadb:12.0.2@sha256:b30cc65b57a11a2e791ad5c06284e599fe9f1bf3fe9081a88d85bcf36389be4a + user: "1000:1000" + restart: on-failure + environment: + MARIADB_DATABASE: booklore + MARIADB_USER: bookloreuser + MARIADB_PASSWORD: booklorepass + MARIADB_ROOT_PASSWORD: rootpass + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql diff --git a/btc-rpc-explorer/dfwebos-app.yml b/btc-rpc-explorer/dfwebos-app.yml new file mode 100644 index 0000000..5560bcc --- /dev/null +++ b/btc-rpc-explorer/dfwebos-app.yml @@ -0,0 +1,42 @@ +manifestVersion: 1 +id: btc-rpc-explorer +category: bitcoin +name: BTC RPC Explorer +version: "3.5.1" +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΎΠ² Π±Π΅Π· Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… +description: >- + BTC RPC Explorer β€” это ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ для + Π‘Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Bitcoin. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° Π²Ρ‹ смоТСтС ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ + Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°, Π½ΠΎ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности вашСго + Π—ΠΎΠ½Ρ‚ΠΈΠΊ. + + + Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡΠ²ΠΎΠ΄Π½ΡƒΡŽ панСль сСти, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ просмотр Π±Π»ΠΎΠΊΠΎΠ², Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, адрСсов, Π° Ρ‚Π°ΠΊΠΆΠ΅ инструмСнты Π°Π½Π°Π»ΠΈΠ·Π° для просмотра статистики активности ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ², сводку ΠΌΠ΅ΠΌΠΏΡƒΠ»Π° с Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΎΠΉ ΠΏΠΎ комиссиям, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΈ возрасту. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поиск ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ρ…Π΅ΡˆΡƒ/высотС Π±Π»ΠΎΠΊΠ° ΠΈ адрСсам. + + + ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Β«Π½Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒΒ» вашСго ΡƒΠ·Π»Π°. +releaseNotes: >- + ⚠️ ПослС обновлСния доступ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ нСсколько ΠΌΠΈΠ½ΡƒΡ‚. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹. + + + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… исправлСний, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½ΠΎΠ²ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ страницС Bitcoin Fun. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску вСрсий BTC RPC Explorer доступны ΠΏΠΎ адрСсу https://github.com/janoside/btc-rpc-explorer/releases. +developer: Dan Janosik +website: https://bitcoinexplorer.org/ +dependencies: + - bitcoin + - electrs +repo: https://github.com/janoside/btc-rpc-explorer +support: https://github.com/janoside/btc-rpc-explorer/discussions +port: 3002 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "dfwebos" +deterministicPassword: true +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/pull/334 diff --git a/btc-rpc-explorer/docker-compose.yml b/btc-rpc-explorer/docker-compose.yml new file mode 100644 index 0000000..6389e09 --- /dev/null +++ b/btc-rpc-explorer/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: btc-rpc-explorer_web_1 + APP_PORT: 8080 + + web: + image: getumbrel/btc-rpc-explorer:v3.5.1@sha256:ebf4cdafc189761b909bb3e211b01a6b50d2f08097f3493543ed9c3174d83d89 + restart: on-failure + stop_grace_period: 1m + environment: + # ВрСбования ΠΊ Π΄ΠΎΠΊΠ΅Ρ€Ρƒ + BTCEXP_HOST: 0.0.0.0 + BTCEXP_PORT: 8080 + # Π‘ΠΈΡ‚ΠΊΠΎΠΉΠ½-ядро + BTCEXP_BITCOIND_HOST: $APP_BITCOIN_NODE_IP + BTCEXP_BITCOIND_PORT: $APP_BITCOIN_RPC_PORT + BTCEXP_BITCOIND_USER: $APP_BITCOIN_RPC_USER + BTCEXP_BITCOIND_PASS: $APP_BITCOIN_RPC_PASS + # Π­Π»Π΅ΠΊΡ‚Ρ€ΡƒΠΌ + BTCEXP_ADDRESS_API: electrumx + BTCEXP_ELECTRUMX_SERVERS: "tcp://$APP_ELECTRS_NODE_IP:$APP_ELECTRS_NODE_PORT" + # Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ ΠΆΡƒΡ€Π½Π°Π»Π° + DEBUG: "btcexp:*,electrumClient" + # ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ + BTCEXP_SLOW_DEVICE_MODE: "true" + BTCEXP_NO_INMEMORY_RPC_CACHE: "true" + # ΠšΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ + BTCEXP_PRIVACY_MODE: "true" + BTCEXP_NO_RATES: "true" + # ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ RPC + BTCEXP_RPC_ALLOWALL: "false" + BTCEXP_BASIC_AUTH_PASSWORD: ${APP_PASSWORD} diff --git a/btcpay-server/data/btcpay/.gitkeep b/btcpay-server/data/btcpay/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/btcpay-server/data/nbxplorer/.gitkeep b/btcpay-server/data/nbxplorer/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/btcpay-server/data/postgres/.gitkeep b/btcpay-server/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/btcpay-server/dfwebos-app.yml b/btcpay-server/dfwebos-app.yml new file mode 100644 index 0000000..cb111b0 --- /dev/null +++ b/btcpay-server/dfwebos-app.yml @@ -0,0 +1,60 @@ +manifestVersion: 1 +id: btcpay-server +category: bitcoin +name: BTCPay Server +version: "2.3.8" +tagline: ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Bitcoin Π±Π΅Π· комиссий ΠΈ Π±Π΅Π· Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… Π»ΠΈΡ† +description: >- + BTCPay Server β€” это ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹ΠΉ процСссор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ + ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Π² Bitcoin (ΠΈ Π°Π»ΡŒΡ‚ΠΊΠΎΠΉΠ½Π°Ρ…) Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π±Π΅Π· комиссий, Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΈΠ·Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΈΠ»ΠΈ + посрСдник. Π­Ρ‚ΠΎ Π½Π΅ΠΊΠ°ΡΡ‚ΠΎΠ΄ΠΈΠ°Π»ΡŒΠ½Π°Ρ систСма выставлСния счСтов, которая ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ + участиС Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ стороны. + + + ΠŸΠ»Π°Ρ‚Π΅ΠΆΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ BTCPay Server ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ нСпосрСдствСнно Π² ваш кошСлСк, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Π’Π°ΡˆΠΈ Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² ваш DFWebOS. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС адрСса Π½Π΅ трСбуСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ счСт Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ адрСс, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· вашСго xpubkey. + + + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Ρ‚ΡŒ Lightning, Π½ΠΎ ΠΈ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹ΠΌ процСссором для Π΄Ρ€ΡƒΠ³ΠΈΡ…. Благодаря прилоТСниям, созданным Π½Π° Π΅Π³ΠΎ основС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ BTCPay для получСния ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ, запуска ΠΊΡ€Π°ΡƒΠ΄Ρ„Π°Π½Π΄ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠ»ΠΈ открытия Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅. + + + ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ваш экзСмпляр BTCPay Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² локальной сСти, ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Shopify ΠΈΠ»ΠΈ WordPress, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ удастся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ, Ссли Π²Ρ‹ Π½Π΅ настроитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ динамичСского DNS (см.: https://docs.btcpayserver.org/Deployment/DynamicDNS).). +developer: BTCPay Server Foundation +website: https://btcpayserver.org +dependencies: + - bitcoin + - lightning +repo: https://github.com/btcpayserver/btcpayserver +support: https://chat.btcpayserver.org +port: 3003 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + Π’ этом выпускС прСдставлСны Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ исправлСны ошибки. + + + НовыС возмоТности: + - API/Subscriptions: Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ прСдлоТСния ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. + - API/Subscriptions: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. + - PoS: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для просмотра ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ссылки для Π²Ρ…ΠΎΠ΄Π° ΠΈ счСта-Ρ„Π°ΠΊΡ‚ΡƒΡ€Ρ‹ Π½Π° страницС обновлСния PoS. + - PoS: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ QR-ΠΊΠΎΠ΄ для Π²Ρ…ΠΎΠ΄Π° Π² систСму для любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° LUD-21 (LNURL-pay Verify). + - Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ подпискам + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - На страницС Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… адрСсов Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ адрСса ΠΈΠ· старых кошСльков. + - Π‘Ρ€ΠΎΠΊ дСйствия Π²Ρ…ΠΎΠ΄Π° Π² систСму с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ QR-ΠΊΠΎΠ΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΡ‚Π΅ΠΊΠ°Ρ‚ΡŒ всСго Ρ‡Π΅Ρ€Π΅Π· нСсколько часов. + - Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΡƒΠΆΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ содСрТимого прСдставлСния. + - Phoenixd Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Π΅ΠΆ ΠΊΠ°ΠΊ частичный + - Π‘Ρ‡Π΅Ρ‚Π°-Ρ„Π°ΠΊΡ‚ΡƒΡ€Ρ‹ пополнСния счСта, ΠΎΠΏΠ»Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ BOLT11, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΠ»Π°Ρ‡Π΅Π½Ρ‹. + + Π Π°Π·Π½ΠΎΠ΅ + - Π£Π±Ρ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² кошСлСк Bitcoin Ρ‡Π΅Ρ€Π΅Π· RPC. + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/btcpayserver/btcpayserver/releases. +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/pull/353 diff --git a/btcpay-server/docker-compose.yml b/btcpay-server/docker-compose.yml new file mode 100644 index 0000000..0fe7d65 --- /dev/null +++ b/btcpay-server/docker-compose.yml @@ -0,0 +1,68 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: btcpay-server_web_1 + APP_PORT: 3003 + PROXY_AUTH_ADD: "false" + + nbxplorer: + image: nicolasdorier/nbxplorer:2.6.0@sha256:bd2f0f513cfed2e9ab4c72e891bb8b5b508bb7ce0026bdc39babaa9362800c1e + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + depends_on: [postgres] + volumes: + - ${APP_DATA_DIR}/data/nbxplorer:/data + environment: + NBXPLORER_DATADIR: "/data" + NBXPLORER_NETWORK: "$APP_BITCOIN_NETWORK" + NBXPLORER_BIND: 0.0.0.0:32838 + NBXPLORER_CHAINS: "btc" + NBXPLORER_SIGNALFILEDIR: "/data" + NBXPLORER_BTCRPCURL: "http://$APP_BITCOIN_NODE_IP:$APP_BITCOIN_RPC_PORT" + NBXPLORER_BTCNODEENDPOINT: $APP_BITCOIN_NODE_IP:${APP_BITCOIN_P2P_WHITEBIND_PORT-${APP_BITCOIN_P2P_PORT}} + NBXPLORER_BTCRPCUSER: $APP_BITCOIN_RPC_USER + NBXPLORER_BTCRPCPASSWORD: $APP_BITCOIN_RPC_PASS + NBXPLORER_POSTGRES: User ID=postgres;Host=btcpay-server_postgres_1;Port=5432;Application Name=nbxplorer;MaxPoolSize=20;Database=nbxplorer$APP_BITCOIN_NETWORK + NBXPLORER_BTCHASTXINDEX: 1 + + web: + image: btcpayserver/btcpayserver:2.3.8@sha256:027add229cca7f3606555ee57c1cfe1b21bb635b2d41ac7d62a941e005a32a8b + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + depends_on: [nbxplorer, postgres] + entrypoint: ["dotnet", "BTCPayServer.dll"] + volumes: + - ${APP_DATA_DIR}/data/btcpay:/data + - ${APP_DATA_DIR}/data/nbxplorer:/data/.nbxplorer + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + HOME: "/data" + BTCPAY_DATADIR: "/data" + BTCPAY_PLUGINDIR: "/data/plugins" + BTCPAY_DOCKERDEPLOYMENT: "false" + BTCPAY_POSTGRES: "User ID=postgres;Host=btcpay-server_postgres_1;Port=5432;Database=btcpayserver$APP_BITCOIN_NETWORK" + BTCPAY_NETWORK: "$APP_BITCOIN_NETWORK" + BTCPAY_BIND: 0.0.0.0:3003 + BTCPAY_CHAINS: "btc" + BTCPAY_BTCEXPLORERURL: "http://btcpay-server_nbxplorer_1:32838" + BTCPAY_BTCLIGHTNING: "type=lnd-rest;server=https://$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_REST_PORT/;macaroonfilepath=/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon;allowinsecure=true" + BTCPAY_SOCKSENDPOINT: $TOR_PROXY_IP:$TOR_PROXY_PORT + BTCPAY_EXPLORERPOSTGRES: User ID=postgres;Host=btcpay-server_postgres_1;Port=5432;Application Name=nbxplorer;MaxPoolSize=20;Database=nbxplorer$APP_BITCOIN_NETWORK + BTCPAY_TORSERVICES: "btcpayserver:$APP_HIDDEN_SERVICE" + + postgres: + image: btcpayserver/postgres:13.13@sha256:20d090860c929d4e86dc1068ad542cbae3e7ab3bcbc5c0c8a8b57ec91a5cbe3c + # Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root. + # user: "1000:1000" + restart: on-failure + # https://github.com/btcpayserver/btcpayserver-docker/commit/a65e7db6851092c75c5ac6c091a5f36ccc5fc26e + command: ["-c", "random_page_cost=1.0", "-c", "shared_preload_libraries=pg_stat_statements"] + stop_grace_period: 1m + environment: + POSTGRES_HOST_AUTH_METHOD: trust + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data diff --git a/btctracker/data/.gitkeep b/btctracker/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/btctracker/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/btctracker/dfwebos-app.yml b/btctracker/dfwebos-app.yml new file mode 100644 index 0000000..dc58799 --- /dev/null +++ b/btctracker/dfwebos-app.yml @@ -0,0 +1,54 @@ +manifestVersion: 1 +id: btctracker +name: BTC Tracker +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ инвСстиций Bitcoin. +category: bitcoin +version: "0.7.0" +port: 3947 +description: >- + BTC Tracker β€” это ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅, Π½ΠΎ ΠΌΠΎΡ‰Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для управлСния ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° инвСстиций Bitcoin. Он Π±Ρ‹Π» создан, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ инструмСнтам отслСТивания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ функциями, слоТны Π² настройкС ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для управлСния большими ΠΈ дивСрсифицированными портфСлями. МногиС ΠΈΠ· этих инструмСнтов Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ внСшним сСрвисам ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ адрСса кошСльков ΠΈΠ»ΠΈ истории Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. + + + BTC Tracker ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ВсС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ локально Π½Π° вашСм устройствС, ΠΏΡ€ΠΈ этом Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π½Π° внСшниС сСрвСры ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ Π»ΠΈΡ†Π°ΠΌ. ВсС инвСстиционныС Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ настройки Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ хранятся Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ вашСй Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Π² любоС врСмя. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ BTC Tracker ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для всСх, ΠΊΡ‚ΠΎ Ρ†Π΅Π½ΠΈΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. + + + Помимо простого ΡƒΡ‡Π΅Ρ‚Π° инвСстиций, BTC Tracker прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·Π°. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ своих Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ² Bitcoin с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΠΈ ΠΈ ΡƒΠ±Ρ‹Ρ‚ΠΊΠΈ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π½Ρ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ инвСстиций (ROI). ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько Π²Π°Π»ΡŽΡ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π²Ρ€ΠΎ, Π΄ΠΎΠ»Π»Π°Ρ€Ρ‹ БША, Ρ„ΡƒΠ½Ρ‚Ρ‹ стСрлингов, ΠΈΠ΅Π½Ρ‹, ΡˆΠ²Π΅ΠΉΡ†Π°Ρ€ΡΠΊΠΈΠ΅ Ρ„Ρ€Π°Π½ΠΊΠΈ ΠΈ Π·Π»ΠΎΡ‚Ρ‹Π΅, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΉ ΠΈΠΌΠΈ мСстной Π²Π°Π»ΡŽΡ‚Π΅. + + + Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ соврСмСнный ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΉ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для бСспСрСбойной Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΊ Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ свСтлой ΠΈΠ»ΠΈ Ρ‚Π΅ΠΌΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ Π² зависимости ΠΎΡ‚ своих Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ. BTC Tracker Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ экспорта CSV, Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… инструмСнтов ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ. + + + Π’ Ρ†Π΅Π»ΠΎΠΌ, BTC Tracker β€” это спСциализированный инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ставит ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто ΠΈ устраняСт Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ слоТности. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ понятный ΠΈ бСзопасный способ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ваши инвСстиции Π² Bitcoin Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° для Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. + + + ⚠️ Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ BTC Tracker, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· Π½Π΅Π³ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС Π΄Π°Π½Π½Ρ‹Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ привязаны ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŽ ΠΈ хранятся локально. +developer: wilqq-the +website: https://github.com/wilqq-the +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2597 +repo: https://github.com/wilqq-the/BTC-Tracker +support: https://github.com/wilqq-the/BTC-Tracker/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + ✨ НовыС возмоТности + - Exchange Auto-Sync (Beta) β€” ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π±ΠΈΡ€ΠΆΠ΅Π²Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ API для автоматичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° спотовых сдСлок BTC; ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Binance, Kraken, Coinbase, Bybit ΠΈ Gemini + - ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Exchange интСрфСйс β€” новая Π²ΠΊΠ»Π°Π΄ΠΊΠ° Β«ΠžΠ±ΠΌΠ΅Π½Ρ‹Β» Π² настройках для управлСния соСдинСниями, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ запуска синхронизации. + + + πŸ› Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка «ЧистыС Π°ΠΊΡ‚ΠΈΠ²Ρ‹Β» Π½Π° страницС Β«Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΒ», ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ значСния Π² Π΄ΠΎΠ»Π»Π°Ρ€Π°Ρ… БША нСзависимо ΠΎΡ‚ настроСк ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΉ Π²Π°Π»ΡŽΡ‚Ρ‹. + + + πŸ”§ Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ + - Π’ ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΡΡ‚ΡŒ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ списки мСсяцСв/Π³ΠΎΠ΄ΠΎΠ² для Π±ΠΎΠ»Π΅Π΅ быстрой Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. + - Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π½Π° страницС Β«Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΒ» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° всСх страницах (Π½Π° сторонС сСрвСра). + - Новый Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ столбСц «КошСлСк» Π² транзакциях, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ кошСлСк источника/назначСния. + - Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ кошСльки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ балансы BTC Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ портфСля. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/btctracker/docker-compose.yml b/btctracker/docker-compose.yml new file mode 100644 index 0000000..2940921 --- /dev/null +++ b/btctracker/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: btctracker_web_1 + APP_PORT: 3000 + + web: + image: thewilqq/btc-tracker:v0.7.0@sha256:0c7beea5e0791cc39c9294f0a62faa24aa2ef42ed04571b63977c0afe085321b + restart: on-failure + user: 1000:1000 + environment: + - NODE_ENV=production + - PORT=3000 + - DATABASE_URL=file:/app/data/bitcoin-tracker.db + - NEXTAUTH_SECRET=${APP_SEED} + - NEXTAUTH_URL=http://${DEVICE_DOMAIN_NAME}:3947 + volumes: + - ${APP_DATA_DIR}/data:/app/data diff --git a/budibase/data/budibase/.gitkeep b/budibase/data/budibase/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/budibase/dfwebos-app.yml b/budibase/dfwebos-app.yml new file mode 100644 index 0000000..5d43117 --- /dev/null +++ b/budibase/dfwebos-app.yml @@ -0,0 +1,53 @@ +manifestVersion: 1 +id: budibase +name: Budibase +tagline: ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Π°ΠΌ понравится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ +category: developer +version: "3.37.0" +port: 6733 +description: >- + Budibase β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая экономит ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ сотни часов, Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π½Π° бСзопасноС созданиС Ρ„ΠΎΡ€ΠΌ, ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠ² ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для утвСрТдСния. + + + πŸ”¨ Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈ поставляйтС настоящСС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС + + Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Budibase Π²Ρ‹ создаСтС ΠΈ поставляСтС настоящСС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Budibase ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π² Π½ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΊ потрСбностям ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, обСспСчивая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹. + + + πŸ—„οΈ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с нуля + + Budibase ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… источников, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ MongoDB, CouchDB, PostgreSQL, MySQL, Airtable, S3, DynamoDB ΠΈΠ»ΠΈ REST API. И Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, с Budibase Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с нуля ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ бизнСс-прилоТСния Π±Π΅Π· источников Π΄Π°Π½Π½Ρ‹Ρ…. + + + 🎨 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ создавайтС прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΡ‰Π½Ρ‹Ρ… Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². + + Budibase сразу ΠΆΠ΅ поставляСтся с красиво ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ для сборки интСрфСйс. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ мноТСство Π²Π°ΡˆΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² стилСй CSS, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΡΠ²ΠΈΡ‚ΡŒ большС творчСства. + + + βš™οΈ АвтоматизируйтС процСссы, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ инструмСнтами ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ Π²Π΅Π±Ρ…ΡƒΠΊΠ°ΠΌ. + + Π­ΠΊΠΎΠ½ΠΎΠΌΡŒΡ‚Π΅ врСмя Π·Π° счСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€ΡƒΡ‡Π½Ρ‹Ρ… процСссов ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов. ΠžΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π²Π΅Π±-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π΄ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ β€” просто скаТитС Budibase, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ ΠΏΡƒΡΡ‚ΡŒ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вас. +developer: Budibase +website: https://budibase.com +submitter: Sharknoon +submission: https://github.com/getumbrel/dfwebos-apps/pull/1178 +repo: https://github.com/Budibase/budibase +support: https://github.com/Budibase/budibase/discussions +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ свойство столбцов для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° CheckboxGroup. + - ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. + - Кэш строк Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ очищаСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. + - ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ синхронизации Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π·Π½Π°Π½ΠΈΠΉ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка Π² конструкторах условий. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ обновлСния бСзопасности зависимостСй. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Budibase/budibase/releases. +dependencies: [] +path: "" diff --git a/budibase/docker-compose.yml b/budibase/docker-compose.yml new file mode 100644 index 0000000..58a0d55 --- /dev/null +++ b/budibase/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: budibase_budibase_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + budibase: + image: budibase/budibase:3.37.0@sha256:aaed399d69ab8529f92f90c9162719a03c3883f65308f6547e202d8dc7766700 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/budibase:/data + environment: + JWT_SECRET: ${APP_SEED} diff --git a/calibre-web/data/books/metadata.db b/calibre-web/data/books/metadata.db new file mode 100644 index 0000000000000000000000000000000000000000..c32a5867d017c11ffa0dae52f6d60634439c7c2d GIT binary patch literal 356352 zcmeI5du$v>p5JFgYGz1@9(!%xte2~GiCV8XD^lW!qGZdaWr`ZnwD^$tu4#2vLEoeFzm#$v_OUN={@PEE)0{-|CoF#<`HSSw zlYf=`i{$@I{`cgc^2D%;NCN>7009sH0T2KI5C8!X009sH0T5`5zF@wqgUvkuV18pdQa0oUr6@QztQA>i_m{~fdB}A00@8p2!H?xfB*=900@8p2pmWP zBzin@Hr?}PWwlHe@~cKEXH@0;AYsYfRIh0A|3v6Nyg&d1KmY_l00ck)1V8`;KmY_l z00a&Pfu}ppcKLP#`1Aj-M3P@Q9121U5C8!X009sH0T2KI5C8!X009u#K7kD_nv7hy zFmtUd-P5zswbV6pr)K8Y$bzj`Z8BLi3r1bS#o>#?L&KMbE?y?XBUdjDUmbn<{L2?# z8qHifH#~fGcz8H7oEdWd5$BpF@eKcidEYAiLR~9lAd}85k6tbmM)E_Mi;J!rB>!eV_ZNKw0T2KI5C8!X009sH0T2KI5C8!X z*cpM&XlJCWi+}(B7m?&Ib|wY2KmY_l00ck)1V8`;KmY_l00ck)1okz7&d#o`F8=)g z(@65uece}d4g^2|1V8`;KmY_l00ck)1V8`;Kwu{Xj?@2ZfUd3tp8xLz9_oMq2!H?x zfB*=900@8p2!H?xfWUzv;6DG4JbhsLjE;f;2!H?xfB*=900@8p2!H?xfB*>WfB<{` zkM;i!z@Z8VfB*=900@8p2!H?xfB*=900(gQ2@1 z00JNY0w4eaAOHd&00JNY0wAyh0(kzv18ArM0w4eaAOHd&00JNY0w4eaAOHdfj6hHF zlSnf1!^l$~B>#Q)54-imA9Q~?_Q#0_$AA6!n;n1A@ehwp9y=EKVf5cbGW37!m3R>Q zr%zVL&FN%3b>TvEYtq(pMI%?KtXZ06R87Ouie`DOF5&5k`Rw>&mMo56pU#rHY%)O1 z0-2g!%uZ(K$?f^6neq8|$gS)gr?22=(aavW~Hp?pD#OK#rniKjA|=+--m zP1IWTb)E{bidtiTn1%Ofugo$?xV&wcXX<1u_1=}{=2@@hil(({RQ(nTB=>B-dm^5? zawWR8q!=ksh}$WUcrwIPfg=0ET5hNI%3#|t)OdF+wRE9{p^CK?v#b?#TbILV-Ag*L z`DPcN*(Ov2c?E=VyoByB!+6;PyPDTnYdhsw)=LIi%)U+M!R^h3_w?e9>M3*IAZt9G ze)#2hJT*ERee|vZv#6I>YWj-rPT@~Wgdp{o*b`SL&V6X7c*Sjr^-IfF3dSzw&? zRjLJ}S|^Cy$le@ZnqDNs+qsz$qS}MF{q%-YdNL79y*t``xcIrt5#vwo+Pr(b{?1Y}f;F0mA#kr|jT5TpfyVwG(ZQ4b{k>s1#+yQcSsk~OM+%KOc6LZtkEZ&@*n;2in zwh(Josy4TTBX(PLZL?%pwq9B%i&Hb%g~joi+irIzmgeWFQkt97q963uNpDL`LAS<^ zWr<+ii69A$y{Fx~fGaX{zSV@ny-0KTY#)tj<;wgs9vklTR)@LqTH%((HqD;I`Lnho11pUx3W!9w`{FcDVWQq zLECYiPu}cZLH!qphlhuTGxQ%B9=_`QJLmlEPjB9e##4QL(XEm*j>W7Y-j4akvPhJp zIb1c<8r@F?KrJIabg-2?TgK!3 z|C8O!KP~Q~$L`>lrxt`pKRX zlPA8=J=^_RceFd&s?X7%Mb5Pk*kLU&cT1CEQ*_9GK98|28%9j7?OFrZH z^T0PH0oP_(rn>!Ly{*H_CB3?)QLtLUC>qXD zIsc(4_mo?Bw~PWmu;@Q(m1$9{U|Q=%{ee*2JW2!o?6^iKg-PV zi_~8Wyk7I+BD~JAPyN}_^ebPCrRLI&+|TbiTE>6f_b}D#9PNF?Pmks+WqMN0GAm`R zvToBit3Kt6e%Gw4u_s4+cRe-mp&ACAIJi%W}UJ1i-T?Sbn z>dhz12H(>Yztrq#aJ^ZmY3oe!{N{;gyMcI(<62dB+K!ie|2=S089* z!Ta=8-_Y^WWn3E)7`1aVa8G)-J*P336;947d;XoykXS1FLZg|)``%5){di`>cp;v8 z;f3hK=egqY`&DjpLN3d-Yxq;Upv&Ec;7AZM~2%x-OW4U#xmk-RSKHXuf$SQ zXBwd~3-rdt4#U&09A%V?)0+=Y#Zza_L?6BE;8C)akHm*a&F~QIn2$4`dVIGxBRY|B zAm;YY_OtI;Z1YPMoHJqH@}n#bt4^p|6)u~Z|IEgMFG8q0ZmVdH+E z^Od59Gme>@MCZ>}e5P@dq)m2U5&jh-pVqC0xRtM(>wyrYRUP5RPHP?yf!_a?X6OH- z$)82&KfFKy1V8`;KmY_l00ck)1V8`;KmY^|DuGkc&Pdm_Jbj>-s~Y4^&CIWn1zV>- zIxbaZv$_x}!|VWAQT zfB*=900@8p2!H?xfB*=900;yK;P?LmKyV2HAOHd&00JNY0w4eaAOHd&00M`Q0G|IJ zLZd<@5C8!X009sH0T2KI5C8!X009sP5Ww^Q01#Y)00@8p2!H?xfB*=900@8p2!OyL zB*1_F|BoWcKRSfUK_w6X0T2KI5C8!X009sH0T2KI5ICd+&PQXBuHKHh?CquNk)Qrf z-S7RAA@XKrwM-WBt41kjRQd1!|8*q!*M}4c)B*tz009sH0T2KI5C8!X009sHfulztS>&Eiv<>d^2{{NFm@+SvVQS=%FKmY_l00ck)1V8`;KmY_l00fRQfwLV; zUG1#@Pjz{G0|0h2?%z8pM5C8!X z009sH0T2KI5C8!X009s<(gZq>Q}v_#;s0Hn0XWjW0Odgd1V8`;KmY_l00ck)1V8`; z4lRMV;_Uf)hrZ@vX-ZLE0wBgSjWHEF&bT|R%+`;L9-0K znqSpyqgt{$S${13o||k~9nW^0i`JMJul}*#j!YMAwrFX3)zIv!>2$3p@vkG#M1~{X zpLUOS{aNCZ#P7$ynb?Yr$1fZ|9(%4c+4(2OKIr&&C(cKPX+iqhdgEfecVr~-(JM?3 zwa0qRUaeHAP)`YwG%=qYU(AxXrm}ZQNH!T?APd>)?8IU>33-`?!O--wUNXXS2Dmgb zF}F0kIA9ji$ zo#*fA(0(>-oT_aX2SvApB;GBWlcPBzEnF(^x?Mb9*LyNPdxO?L&-5Lm1=u@F3zs8R zFbiai)#BHV44Ea8UVV)Wr-^=VMdJzKc!*W0+RUWvy{<{e5CZh(n-}7#k&)=uE4H31 z8b#f*wW^^PwDpQ*+GeF}g(Qs#XIdP;KAj~Y1;_xQs!Yu;W+$`rnx3ZV%av+Lx5;AmZJH#KsrO7zGq;_cn;2in(o$?d`ODD6f^pBx z8+FO~WwS2LSg+()2^|a5ZX;9xRaRTB>Un<#xskm&zBIi^hG~(d*{M5A*#Xx6AmI&i zw;3e7=jrZrb~u)LXCxXi%LU_o>sxgGF_^1YoNFzFla>idytMJ=P(0P!8{MQso7#kq zRyLrmjE_1?;h2d_(+4_a6uU`m*!t1bk#@_5eBdm|029+-yvbVWv*%-}S9%*UVOnSz z_V?oE$#e14^Up^gQe~;ulrx=h`QHmZ&3W36bthz(+7mvy97hfMr&K%qeLLLF4aQQ} zo^QmBGte^peRyLn9Z&W3MIR11?8KZQ-iCbiMB*;+i7CP*ARRb$zx8s)q}$NIW=k=`(0jHk|=i9URuTgJ;$N)7mJXgwQ_fP%Pczo?wK0Aso*Ej8 zZjL(eg5`tPU-MxM=I)GTgIl@7xX~ZMgjG$aNBWyNoeb7Zio^T-;;+qR;=R4SiNAZC zMZZiF_McGCiEr68jegv~M}(p@h$XgZ7waQd8LYCgmamj)z&?=Ei!=xwbjEPw*p&r| z)G^+io0=67tVQN#2Y7HrV>uCJIpHi179D0Z$fNpOPO>Oc=Yq0N&LrZ5Y~H{VF|(II zCDE}!WF0qyELSTf5#73pmKt}nj*PjzNfWnJ!w&Izl}FTKjuripGp@fgqP)@*QLb4x zc#*n3*k;L~@j+?5E=Q_9Gye8Kt(>ov=oCW32f9o%zikKuvSp&^s$Xrw3N;idJi>`~ zxY|zeC4zq%y9DUdT$Q^M<0vZ~f75BU8nYU>K9UFgZa-gc)W|@lP@9FS%L;Fc_*~LN80U^dw zje*S39FZ0-($SI%IA5nw@jN3kMzh#EQ!-qF>^TK7M%xn_I8bC3e9;rx9B zdD9f4es4wNLc&QBW__lwRjJx_-E^=qV?D}Wj`vPXBtE{=(0{2jn?|??^Q@LW%!_?4 zUd)>c^MG^m9>ehmPKCG>1*tqP0+8SMyppJ1;sWYCI`#_jP!W+`WNj z2g={M4$XaBuzU2~OYz=Yw-O&eXz1kYwH&>htQytu>DFQq59eVrrf)lT~Ph)?~3zz3b$3%@MHOc!ryhoFK1I-SUkF#i|`4lh6^>qJoFBk{jF z{#zY)qF+t^qvXI-|Kh1{_WZc#t&{)pWcI{=IB}=@kGqY?zlz*yu^Oh5e%hkQ!OY(J z`YZ9?p`pY_CxVjzTkojx9lLHc*je6V9^lQF+3Io{OJ;8$z*#cy+46U5_G-L0lSzD3 zw=m!f2i0A8N+XBixu37g@HTniaF^}P5T4?#Tpyd~s7>$DOdjkz-$Z&m6L}jBw6m4w z*7VEq-jR{SM|B~Hh|*P$5=o6*N@VZQr+Dq~%_0ACGB6Q|W>vT1Ny-}WvH6v+@jY^^ zy52uw&*J@Qe!~|Www7Ot_rCmc;-j_T&CH8>Rgdyg8#$F%Vuya!?!qnLRbIQQW4WpR zb;@INFSk95_hOGc%oXcb;|crOc9u>w);l5MJ!>+adig?hJ+3Xt0uo5(y*HERP$O^vxL46Zt#YmRrFPhX`aGr^0ihC`&Cw}67fJKz0oldPmN!R zZuBW_yB^F3hN5>M=e3X?1d0T-59A5}8;R?@7cVyHg$E%ZWUP%|_)!D|kO4O#{oV0+ z>e^^@Bc=4DsFzo2`ifD9!=LeLNI(1~0xr5PBRzL5mUG3^;4piMi=%_BeBPZen~Po4)^A{peEn02D7% zlV1*LOwA7Rwtx5*?Rr=jm;I!?b7%|#AOHd&00JNY0w4eaAOHd&aP$aZ{eSdq z4vj$o1V8`;KmY_l00ck)1V8`;jvfK5|Bs%{p)m-600@8p2!H?xfB*=900@A<(IbHM z|IxEKGzI|>009sH0T2KI5C8!X009sOLPRb&aGCw}GkR2GmJ~zKONY37@R1I^bOxBDC zb6-aU*%mcS8QUIc{69zK55z68?U$t^kQu)o*F$D-RLmO1>=3z3rn;06-z6c zkey#VWZ{Z71Zo48uv4K*$ihZkCZYFE5?qy@xGx{;^B<&NDMYuzV%1XM>I?N;`7tq`ye4O4S~-O}l7l?Bf8N z$em07oXgsCU%pwN-VnxTZ;-j^8@wKQ^)=!O@#bk(naE$u={0+`Qss9*p#)-}6-Dp;o4!>KAvDB&F zsO7|Aj+JRB#ollG0xp@u#uNKY2FiNLAQN-b(=0-sons+ydSM}!I{kd~14o$fIVz5S zn)3kG5Qk4NkC3{!1KIvY%CL%*GCA<~mPCRw?h3LjJPAi_j z((3NTjIRwhSvKJ&kOB5l%U23@gl^o9rOxz5>HVI@*vpk_NvE+CZG*Y^v`@T}DFaP1 zz!TGN&&5)GBhhd1zE;lt&| zv@sJ)Wzx~_I<@mP%dV6tg<`E#c9is|O!*}G^CVJ#D&v|nis=W_@zhvG+NyrIvD#X$ zKK%`Ui*>`4*JC=>*A;v=x^MBeN4SpRGW7cTlkK#vH)@;PJviK^-;AYRJQX!WS43n^ zm6tPDHqfY7f;Yskg=#qe|9H12ARPoi00ck)1V8`;KmY_l00ck)1oi^~tpE3e70?F| z009sH0T2KI5C8!X009sH0T6h+1hD>pynG=Y1V8`;KmY_l00ck)1V8`;KmY{x0|EU0 z-+r(H`TznT00JNY0w4eaAOHd&00JNY0*{XX`~5#W|9^aZAsGZf00ck)1V8`;KmY_l z00ck)1ojI7{`~)wNb-~Y(j)W(1V8`;KmY_l00ck)1V8`;KmY_lV6OQ$J!i!GX09Z@f5EPrD=S8Ic`dJ*Wy`4ATCP%Av$XYEu4r1TM%B`aW_c|%abi9@ zzL+J8^HY)D%g^I0-AyO5nkp zH@`SY&fct44RfVT){F<_o>?jCwpl4(bp(@g#U^H%H*z)|kQLe=kF38_Zu;(f=8BTt za}z9IAG5PJUU9ojFCKoU5bvAJB))&5kz43Bd$r>82{omaL#Solb{lv@gR+Op6@-p{ zKj4YGcLFX)dVpxEsrff&^6|b*Z(>VR%wI5yhHYq-vS#Zm7W*&6%Kkz@)83#1md+D& zptI^quHTr=Ms{FqPs}aNE)JN5G`TrHHzVc`Cfu2<1W$TBHaC6aJS+AZ8Ft&1(@^^( zok=F9MJ(Ga7D?4uHmXKBZxnnq2?-9T&2Qx5eWTAOwrZg~>1=Bn7XRCnDKFyoUkn(J zYF+-`a^>PxvOHyv;BsL*!Fyki_l=!SJn9R@>&2;_VvSLUmf2g}UK1*EH+7Gw zyYhD8*jtHTiT7nk6W>1_O1`L9nyO={$wLNnfG$vjQ3sXOKg1@id@|3#amO{qKrb)3Cum%^#%48wUDoZ=1F@* zS;*fBsB%(ixBz`mYTb)1Zcs=@~r#?LSKTdq(#I=yczmnAb8_|c#B|d)s z1Rfsy)p*~nOybeA%4pz|jM$1%CrK^G_e#{XkkQekzA^%w;o{9iT&A}lqqd>c+V!{* za{ZAEPiz#%Y-c(WYKV;)(O9b~>3!2N!q#`&GJ?KKBj^gwfDxR@)ZG#jy?5@9N}XMs z!0Er=04!-Q@H+}L*%b>0kPi#1@xJkMiSMl_=zUv}?z-OTwX+T3015H?@Olclz#SqW zQ7Pz0e85)^&i;jO2b88XGIsknekw%X_gM?RF;-{hdnrqjz(rywi&otl!R8M zR*EV%3^jIm(L-f!uA+Z<^R(UDT*wv!oL@CJ{CAdH>?v32etKDK-EqsSDXmPemThJG z24xSG@r90l>+{6jTc693gI+Y%)ciD{`h(9usM^aGA9j}FeRr-T9;pvSd;ylXm*(7; zG!Y&Il0zK1xs;$cdyyI&C0?8sXh*5$ckFHKi|oTycqKzsn@mI~i? zl##MOwUrV4rL~*_GZ3h;lFo*ZX9#~~rRuKj;7axnYqt-LM)r2%W>=UT-fpA50bakJ ze;8TgmWj7%88JRw`HiBvX4Y*xg!Z?xmqu~!Repo8q`k0(Gr+eIME9KdMx-n9Vx;T$ z663MoJD%Nt?r&FDctT)|)Rl4>j^A9Q zkNv$3d0x`ZzMl2_y_mmvDf$$Dkyw?gJ!YGB(a_k(0rqUZte5C+wl7#U3%;k+n=3XA zCC??c%trpkqES8-i{-ML5YUYsS@3z8Td>*Cr-i&h@78Fj_YUS=Ce+V>rtF1dv91fh zVr{e-*_%a+leSuu7K55eZEHNc1+}(^vRh>@QSYNsy!oAKyl?74lSo61MRp=b-rtm@ zR?e*yZRXx$fV!IyO0~TNFPiaRG$2RS6Irz6eXyok*2^r)mN!!8S zw$Cf__Y(d-^7@Cz)>~|Vigku>Mpx5Xfmh2mb9`RTo7&ZSdkJ62^-u6TaW7n7s3BZm zG}daSf4|aV160W2Mi7&|nzk(?wC(!hi`87<606^b1boAt^LcDYDu@P{y`$z6e<1A<$EHz-_~O*jh=kb?FZ|uX1`gsWh?y!(^@a;4_Iw3 ziuS~`v^+g1vr?(D^kuzh8Bz?(vev^=YnELpg=827Q+C;|)>J{ITG2Mw9c8?>*UU0g zrGMEpiUqfqMLlN}Su)jAc7^RW&?Lq|CRGjgRfvM|K20B%iI$;P^Q)R|R7)03e^=6_ zqS_;Clx>rCr^;%#i`X{a-wxvd8ICxZxI4m9?Yy2}H8i_Iqe0828ubrKqSW#%jpfx$ zCx>Rb&R8@3l^l7l%d|9`2T|HZ*sp)8P@kt7@?sm7tdqdJ*p;hjVOqIzTV{9n9u=dD zG2v`@F+Qw}vyUtr@P=MUo;m{e!aeH7bLNsv4RWq? zWdCGLH+0x7ZW~Z{aMwI|w@iseQgsa=zToYxg?v^RmF0t0klrrkw&m>d%jAl2b~%an zZ}V3AM5gfu>rZ#<(H#JRK()R=&}vn;s$(^_9V3>kEyEm7c)02M-2!T4$~WSh*iRIY zZsXmC0~yMVxIdWHavNbkSuxQ0fC&S+(th*KSx3L|gyC9_I3cou)p)LIGQRiJ#AE}? z(F@kWblUBhXFjLr(yFTQgm^dWKp8L4`GD~PxzczG&KI^_M(TX|lElzxx)dTC7|+Y) zQD{F;aQC6wjmwsc6@5EfM*Au-^XV*k3ifKuu5!<`+}H6*4ae_~BSZyuAW0cJt+qqA zc{|#V;2n(v-1`?CpLb4bg*yJlhT)pSn(l+BJlo=LetSDX+`)EvrfVH?HBoi;)~H#{ zwiq8F=Vqz~5ihbchmD;&({jVlyK}b1o1I)!CX+)L`^wS&M4k*dc%_X4_i~z7Z+>PD zSzaAsmt|t3+ql{io!gl3@bSj7)L@M5&eC7cDY3_1?cU9Ius%JIySg45iC;!sH`sz+ zCaQ*Nxx2{NH873;cJGYjZ5ZVs-{`rnlBb01OopM9+nWa4!d$Cu>*?}ArtGL1fZQ;C zZ8_sO(!%E$>B!w5vfuxUcl~K3`De-hl>FV~Zzk`ZB=iz55C8!X009sH0T2LzgGgZO z_4x6~#78syI}7(r<36FsElr!O>t(u$L62k_Y(*)~jd?#v<}GT(&&bdO_aU}Coy4{! zyzLJE`5KzzZm+rzx0OSY^g)rc%(_b4hfeOZBP!P26BiFIt`g-D2m9$$TIPz3lP$jM z=WcO1%jc`a4UfGw;#J}<{^Z&%L)8}>=lsEi#>6Q*E*^kP#;xr~pd_oufEXP&%Tw5& z$bTu@A?cQNl~#)Ktx$hCp}0~?sII0cn+LvRx{Jl7c>q?;0zI=xPZYBAy9~j*?{$Cp zy@lBE$mHLu6wO>!uRhQmCsO?>=tO#v{@`_qo`|FZ#CC6h8&xot~u6$bQwx+s-jO z_wg{zRs@9?VUIhsReDyLpHP3-=>h-CcJ^FlL@x+G!|s%NkM*Pb!!yS_Ba_ci4qC2S zxlfr=s{45(s6u((1^HyDn0L0VhzG62iZ2z~f^1#UT-uy9c!th5DIs<@faVqq%q# z*bZ3s|2D%lmTcrxt8wT5iKfXje0T8>#4Mdf<;lZ3*+w(|%BoVH(w8Rb_nn||Ez|FG zS<2ppZQSsdl6zd=p_FjiA4&b>YmL9+_ci`-aC-*#p3MiI<#UUyqcJF!8bTzs^?W&B zxkq;-+|3Gi@HLti5AfHQxvCPfN1p+ZsVe$R8|+!#aEBLnL$Pp|-!E?;^fvE5`*e;Q jY&^vcZf}Z{1f`{<{cifdx!>=zpu2?=GJ0r`xA^}7LVg8j literal 0 HcmV?d00001 diff --git a/calibre-web/data/config/.gitkeep b/calibre-web/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/calibre-web/dfwebos-app.yml b/calibre-web/dfwebos-app.yml new file mode 100644 index 0000000..793ea61 --- /dev/null +++ b/calibre-web/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: calibre-web +category: files +name: Calibre Web +version: "0.6.26" +tagline: ЧистоС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π²Π°ΡˆΠΈΡ… элСктронных ΠΊΠ½ΠΈΠ³ +description: >- + Calibre-Web β€” это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ понятный интСрфСйс для просмотра, чтСния ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ элСктронных ΠΊΠ½ΠΈΠ³ с использованиСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Caliber. + Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Google Диск ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π²Π°ΡˆΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ caliber Ρ‡Π΅Ρ€Π΅Π· само ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + - Настройка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ: Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ экранС настройки Π²Π²Π΅Π΄ΠΈΡ‚Π΅ /books Π² качСствС мСстополоТСния Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Caliber. + - Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° элСктронных ΠΊΠ½ΠΈΠ³: Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Администратор» > Β«Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽΒ» > Β«ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉΒ» ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Β«Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒΒ». + - ДокумСнтация: рСкомСндуСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠΎ адрСсу https://github.com/janeczku/calibre-web/wiki. +developer: Janeczku +website: https://github.com/janeczku/calibre-web +dependencies: [] +repo: https://github.com/janeczku/calibre-web +support: https://github.com/linuxserver/docker-calibre-web/issues +port: 8098 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "admin" +defaultPassword: "admin123" +torOnly: false +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + + + - Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ рСдактирования ΠΊΠ½ΠΈΠ³ Π² спискС ΠΊΠ½ΠΈΠ³. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Instapaper для синхронизации Kobo. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° чтСния EPUB с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ количСства страниц ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ «Книги» для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π² Caliber-Web. + - Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅ΠΌΠ° для чтСния EPUB. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ поисковых опСрациях. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΠšΠ°Π»ΠΈΠ±Ρ€ΠΎΠΌ 9. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ обновлСния статуса чтСния, ΠΊΠΎΠ³Π΄Π° ΠΊΠ½ΠΈΠ³ΠΈ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ массовоС снятиС ΠΊΠ½ΠΈΠ³ с ΠΏΠΎΠ»ΠΎΠΊ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ бСзопасности: ΠΊΠ»ΡŽΡ‡ΠΈ API большС Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ экспортС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://github.com/janeczku/calibre-web/releases. +submitter: Xosten +submission: https://github.com/getumbrel/dfwebos-apps/pull/74 diff --git a/calibre-web/docker-compose.yml b/calibre-web/docker-compose.yml new file mode 100644 index 0000000..bbb1960 --- /dev/null +++ b/calibre-web/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: calibre-web_server_1 + APP_PORT: 8083 + + server: + image: linuxserver/calibre-web:0.6.26@sha256:95fa0d0d07bf1be2404236222a882a467431f34ee35ad29b6e7b3b4bca3b0376 + stop_grace_period: 1m + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${APP_DATA_DIR}/data/books:/books + restart: on-failure diff --git a/campfire/data/app/.gitkeep b/campfire/data/app/.gitkeep new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/campfire/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/campfire/data/redis/.gitkeep b/campfire/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/campfire/dfwebos-app.yml b/campfire/dfwebos-app.yml new file mode 100644 index 0000000..d9020ee --- /dev/null +++ b/campfire/dfwebos-app.yml @@ -0,0 +1,38 @@ +manifestVersion: 1 +id: campfire +category: social +name: Campfire +version: "1.4.3" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‡Π°Ρ‚ для ΠΊΠΎΠΌΠ°Π½Π΄ +description: >- + Campfire β€” это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ‡Π°Ρ‚Π°. ЗапуститС свой собствСнный сСрвСр частного Ρ‡Π°Ρ‚Π° со всСми Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ функциями. + + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - НСсколько Ρ‡Π°Ρ‚ΠΎΠ² с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ доступа + - ΠŸΡ€ΡΠΌΡ‹Π΅ сообщСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ + - ВлоТСния Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ просмотром ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. + - Поиск ΠΏΠΎ всСм сообщСниям + - Π’Π΅Π±-Push-увСдомлСния + - @упоминания для увСдомлСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ + - API с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π±ΠΎΡ‚ΠΎΠ² + - Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ, ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс. + - Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ориСнтация Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ + + ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись администратора. Π—Π°Ρ‚Π΅ΠΌ этот администратор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ½Π°Ρ‚Π°ΠΌΠΈ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. +backupIgnore: + - data/redis/* +releaseNotes: "" +developer: basecamp +website: https://once.com/campfire +dependencies: [] +repo: https://github.com/basecamp/once-campfire +support: https://github.com/basecamp/once-campfire/issues +port: 8004 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +submitter: Maurice Wipf +submission: https://github.com/getumbrel/dfwebos-apps/pull/4196 diff --git a/campfire/docker-compose.yml b/campfire/docker-compose.yml new file mode 100644 index 0000000..275dbaf --- /dev/null +++ b/campfire/docker-compose.yml @@ -0,0 +1,50 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: campfire_server_1 + APP_PORT: 80 + PROXY_AUTH_ADD: 'false' + + server: + image: ghcr.io/basecamp/once-campfire:1.4.3@sha256:21a419dd93b10b3598a25634e5eed2305bec1c75347b260ed1665dbc70864dd8 + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/app:/rails/storage + environment: + RAILS_ENV: production + SECRET_KEY_BASE: ${APP_SEED} + REDIS_URL: redis://campfire_redis_1:6379 + DISABLE_SSL: 'true' + VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY:-} + VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY:-} + SENTRY_DSN: ${SENTRY_DSN:-} + depends_on: + - redis + deploy: + # https://once.com/campfire#requirements + resources: + limits: + memory: 8G # 64G for up to 10,000 users + cpus: '4' # 32 for up to 10,000 users + reservations: + memory: 2G + cpus: '1' + restart: on-failure + + redis: + image: redis:7-alpine@sha256:ee64a64eaab618d88051c3ade8f6352d11531fcf79d9a4818b9b183d8c1d18ba + user: "1000:1000" + command: redis-server --save 60 1 --save 300 10 --save 900 100 --appendonly yes --loglevel warning + volumes: + - ${APP_DATA_DIR}/data/redis:/data + deploy: + resources: + limits: + memory: 1G + cpus: '0.5' + reservations: + memory: 256M + cpus: '0.25' + restart: on-failure diff --git a/canary/data/.gitkeep b/canary/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/canary/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/canary/dfwebos-app.yml b/canary/dfwebos-app.yml new file mode 100644 index 0000000..964ef46 --- /dev/null +++ b/canary/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1.1 +id: canary +category: bitcoin +name: Canary +version: "1.4.0" +tagline: БистСма Ρ€Π°Π½Π½Π΅Π³ΠΎ оповСщСния для Ρ…ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ склада Bitcoin +description: >- + ΠšΠ°Π½Π°Ρ€Π΅ΠΉΠΊΠ° Π² Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΉ ΡˆΠ°Ρ…Ρ‚Π΅. Когда ваши Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½Ρ‹ находятся Π² Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Π²Ρ‹ Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡ… провСряСтС. + + + Canary дСйствуСт ΠΊΠ°ΠΊ систСма Ρ€Π°Π½Π½Π΅Π³ΠΎ прСдупрСТдСния, которая ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ вас Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ пСрСмСщСния Π²Π°ΡˆΠΈΡ… ΠΌΠΎΠ½Π΅Ρ‚, ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ увСдомляя вас ΠΎ любой активности Π² Π²Π°ΡˆΠΈΡ… ΠΊΠΎΡˆΠ΅Π»ΡŒΠΊΠ°Ρ…. + + + Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ с использованиСм Rust ΠΈ BDK, ΠΎΠ½ обСспСчиваСт Π°Π½Π°Π»ΠΈΠ· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ распознаваниСм шаблонов (ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ комиссий RBF, ускорСниС CPFP) ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌΠΈ многоязычными увСдомлСниями Ρ‡Π΅Ρ€Π΅Π· ntfy.sh. + + + УстановитС настраиваСмыС оповСщСния ΠΎ балансС (Ρ€Π°Π²Π½ΠΎ, мСньшС ΠΈΠ»ΠΈ большС), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π°ΠΊΡ‚ΠΈΠ²Ρ‹. ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎΠ³ΠΎ хранСния ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ² Bitcoin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅. +developer: schjonhaug +website: https://github.com/schjonhaug/canary +repo: https://github.com/schjonhaug/canary +support: https://github.com/schjonhaug/canary/issues +port: 3005 +dependencies: + - electrs +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ адрСса Bitcoin вмСстС с кошСльками HD с автоматичСским поиском Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ экзСмпляр Mempool, Ссли ΠΎΠ½ установлСн Π½Π° DFWebOS. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° β€‹β€‹Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ настройку ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ntfy прямо ΠΈΠ· прилоТСния. +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: schjonhaug +submission: https://github.com/getumbrel/dfwebos-apps/pull/4117 diff --git a/canary/docker-compose.yml b/canary/docker-compose.yml new file mode 100644 index 0000000..02bc880 --- /dev/null +++ b/canary/docker-compose.yml @@ -0,0 +1,34 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: canary_web_1 + APP_PORT: 3000 + PROXY_AUTH_WHITELIST: "/api/*" + + backend: + image: schjonhaug/canary-backend:v1.4.0@sha256:daf6920e1f0ff781c526fa92ee0e39720dd1b18b5d7e1bcdd0aeff0cb76a68ad + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + CANARY_NETWORK: mainnet + CANARY_ELECTRUM_URL: tcp://$APP_ELECTRS_NODE_IP:$APP_ELECTRS_NODE_PORT + CANARY_BIND_ADDRESS: 0.0.0.0:3001 + CANARY_DATA_DIR: /app/data + CANARY_MODE: "self-hosted" + CANARY_SYNC_INTERVAL: 60 + CANARY_MEMPOOL_PORT: ${APP_CANARY_MEMPOOL_PORT:-} + volumes: + - ${APP_DATA_DIR}/data:/app/data + + web: + image: schjonhaug/canary-frontend:v1.4.0@sha256:5c273df8bf4dc16af0edc8f6d48519ecffb4a76b49ad8eb0cef99259c6188511 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + API_URL: http://canary_backend_1:3001 + depends_on: + - backend diff --git a/canary/exports.sh b/canary/exports.sh new file mode 100644 index 0000000..2578a47 --- /dev/null +++ b/canary/exports.sh @@ -0,0 +1,10 @@ +export APP_CANARY_PORT="3005" + +# АвтоматичСскоС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Mempool +# Если Mempool установлСн Π½Π° DFWebOS, ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ ΠΏΠΎΡ€Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Canary ΠΌΠΎΠ³Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ. +# ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. APP_MEMPOOL_PORT взят ΠΈΠ· exports.sh ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Mempool, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поставляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ +# Ссли Mempool являСтся Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ извСстный ΠΏΠΎΡ€Ρ‚. +installed_apps=$("${DFWEBOS_ROOT}/scripts/app" ls-installed) +if echo "$installed_apps" | grep --quiet 'mempool'; then + export APP_CANARY_MEMPOOL_PORT="3006" +fi diff --git a/cashu-me/dfwebos-app.yml b/cashu-me/dfwebos-app.yml new file mode 100644 index 0000000..7e03e5e --- /dev/null +++ b/cashu-me/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1 +id: cashu-me +category: bitcoin +name: Cashu.me Wallet +version: "0.1.1" +tagline: Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ кошСлСк Bitcoin с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. +description: >- + πŸ₯œ Cashu.me β€” это бСсплатный кошСлСк Bitcoin с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, построСнный Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ элСктронных Π΄Π΅Π½Π΅Π³ Cashu. + Он сочСтаСт Π² сСбС ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ элСктронных Π΄Π΅Π½Π΅Π³ с ΠΌΠΎΡ‰ΡŒΡŽ Bitcoin, обСспСчивая + ваша финансовая ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π° Ρ€Π°Π½ΡŒΡˆΠ΅. + + ## πŸš€ Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Cashu.me? + + - 🧾 НСт KYC – Π²Ρ‹ ΠΎΡΡ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌ. + - πŸ” ΠšΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго: Ecash Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ вашСго кошСлька останутся вашими. + - πŸͺ™ Bitcoin-Ρ€ΠΎΠ΄Π½ΠΎΠΉ – Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с нуля для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Bitcoin. + - 🧠 ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ – Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ. + + ## 🌐 Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ + + Cashu β€” это ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» элСктронных Π΄Π΅Π½Π΅Π³ для Bitcoin, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π£Π·Π½Π°ΠΉΡ‚Π΅ большС Π½Π° https://cashu.space. + + Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ кошСлСк, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ нСскольким ΠΌΠΎΠ½Π΅Ρ‚Π½Ρ‹ΠΌ Π΄Π²ΠΎΡ€Π°ΠΌ Cashu ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ. Π­Ρ‚ΠΎ + кошСлСк Π½Π΅ связан с ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΌΠΎΠ½Π΅Ρ‚Π½Ρ‹ΠΌ Π΄Π²ΠΎΡ€ΠΎΠΌ. + + ## πŸ“¦ Π’Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ + + - πŸ”‘ **Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию исходной Ρ„Ρ€Π°Π·Ρ‹!** Π’Π°ΡˆΠΈ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ элСктронных Π΄Π΅Π½Π΅Π³ хранятся локально Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. + Если Π²Ρ‹ очиститС Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π±Π΅Π· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ, ваши срСдства Π±ΡƒΠ΄ΡƒΡ‚ потСряны навсСгда. + - πŸ§ͺ **ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ Π±Π΅Ρ‚Π°-тСстировании**: этот кошСлСк находится Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ считаСтся Π±Π΅Ρ‚Π°-вСрсиСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½Π° свой страх ΠΈ риск. + - 🧾 **ЛицСнзия**: ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ лицСнзия MIT. +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок. +developer: cashubtc +website: https://cashu.space +dependencies: [] +repo: https://github.com/cashubtc/cashu.me +support: https://docs.cashu.space/ +port: 3194 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: RSTMSN +submission: https://github.com/getumbrel/umbrel\-apps/pull/3044 diff --git a/cashu-me/docker-compose.yml b/cashu-me/docker-compose.yml new file mode 100644 index 0000000..5ce2bdf --- /dev/null +++ b/cashu-me/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: cashu-me_web_1 + APP_PORT: 80 + + web: + image: rstmsn/cashu-me:0.1.1@sha256:46cf3752f58e20b7fd191b270208f6f41aa143ba950fddb0efb390ed3ea2851b + restart: on-failure + stop_grace_period: 1m diff --git a/chantools/data/.gitkeep b/chantools/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/chantools/dfwebos-app.yml b/chantools/dfwebos-app.yml new file mode 100644 index 0000000..d8b2433 --- /dev/null +++ b/chantools/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1 +id: chantools +category: bitcoin +name: chantools CLI +version: "v1.14.1" +tagline: ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° восстановлСния ΠΊΠ°Π½Π°Π»ΠΎΠ² lnd ΠΈ cln +description: >- + chantools β€” это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° с интСрфСйсом ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (CLI), прСдназначСнная для ΠΏΠΎΠΌΠΎΡ‰ΠΈ + Lightning ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сСтСвых ΡƒΠ·Π»ΠΎΠ² ΡΠΏΠ°ΡΠ°ΡŽΡ‚ свои срСдства послС получСния Π΄Π°Π½Π½Ρ‹Ρ… + потСря. + + + Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ https://www.node-recovery.com/chantools, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС. + информация ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. + + + ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ chantools ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π° DFWebOS. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ + ΠΈ запускайтС Π΅Π³ΠΎ Π½Π° любой машинС, прямого взаимодСйствия с вашим Lightning Π½Π΅Ρ‚ + трСбуСтся ΡƒΠ·Π΅Π», ΠΈ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ + ваша исходная Ρ„Ρ€Π°Π·Π°. +developer: guggero +website: https://github.com/lightninglabs/chantools +dependencies: [] +repo: https://github.com/lightninglabs/chantools +support: https://github.com/lightninglabs/chantools/issues +port: 7682 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: "" +submitter: guggero +submission: https://github.com/getumbrel/dfwebos-apps/pull/3849 diff --git a/chantools/docker-compose.yml b/chantools/docker-compose.yml new file mode 100644 index 0000000..16989cf --- /dev/null +++ b/chantools/docker-compose.yml @@ -0,0 +1,24 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: chantools_chantools_1 + APP_PORT: 7682 + + chantools: + image: guggero/chantools:v0.14.1-umbrel@sha256:8994745086ab1708205f030f70e37dcfbe57154c72f27782089b229069fd8043 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1s + volumes: + - ${APP_DATA_DIR}/data:/chantools + - ${DFWEBOS_ROOT}/app-data/lightning/data/lnd:/lnd:ro + command: + - "ttyd" + - "-W" + - "-p" + - "7682" + - "bash" + - "-c" + - "/bash-wrapper.sh" diff --git a/chatbot-ui/dfwebos-app.yml b/chatbot-ui/dfwebos-app.yml new file mode 100644 index 0000000..ceaa1a5 --- /dev/null +++ b/chatbot-ui/dfwebos-app.yml @@ -0,0 +1,56 @@ +manifestVersion: 1 +id: chatbot-ui +category: ai +name: ChatBot UI +version: "2023.04.20" +tagline: Π§Π°Ρ‚GPT, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ +description: >- + ChatBot интСрфСйс β€” это ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Π° для ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ‡Π°Ρ‚Π° OpenAI, ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½Ρ‹ΠΉ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ChatGPT. + + + ΠŸΡ€ΠΎΡΡ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ свой ΠΊΠ»ΡŽΡ‡ OpenAI API ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ! + + + Π­Ρ‚Π° вСрсия ChatBot интСрфСйс ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ GPT-3.5 ΠΈ GPT-4. Π Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ локально Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. +developer: Mckay Wrigley +website: https://github.com/mckaywrigley/chatbot-ui +dependencies: [] +repo: https://github.com/mckaywrigley/chatbot-ui +support: https://github.com/mckaywrigley/chatbot-ui/issues +port: 10101 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + НовыС возмоТности: + + + Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка Azure OpenAI, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступна Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Окно Ρ‡Π°Ρ‚Π° Π±Ρ‹Π»ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ: появилась прикрСплСнная строка ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Π²Π΅Ρ€Ρ…Ρƒ, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠ°ΠΊΠ΅Ρ‚ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΈΠ³Π°ΡŽΡ‰ΠΈΠΉ курсор для Π²Π²ΠΎΠ΄Π°. + + + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + + + Π‘Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ удобства сопровоТдСния ΠΊΠΎΠ΄Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° горячих клавиш для ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². README Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ настройки. Π‘Ρ‹Π»ΠΈ внСсСны ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ румынский, польский, каталонский, Π±Π°Π½Π³Π»Π°, Ρ‚ΡƒΡ€Π΅Ρ†ΠΊΠΈΠΉ ΠΈ финский языки. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сортируСт ΠΏΠ°ΠΏΠΊΠΈ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС ΠΈ содСрТит ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ дСмонстрационноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ нСсколько ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ Google, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанныС со скрытиСм ΠΊΠ½ΠΎΠΏΠΎΠΊ API Key ΠΈ Plugin Key, Ссли ΠΎΠ½ΠΈ установлСны Π½Π° сторонС сСрвСра. Π”Ρ€ΡƒΠ³ΠΈΠ΅ исправлСния Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ адрСс ΠΊΠ½ΠΎΠΏΠΊΠΈ копирования Π² Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°, ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΡƒ Π½Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… устройствах, исчСзновСниС поля поиска Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Π²Π²ΠΎΠ΄ сообщСния Π½Π΅ обновляСтся ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ списка Ρ‡Π°Ρ‚Π° ΠΈ сайт Π½Π΅ открываСтся, Ссли ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ JSON нСдСйствитСлСн. Π‘Ρ‹Π»ΠΈ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанныС с исчСзновСниСм сообщСний Ρ‡Π°Ρ‚Π° ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ†Π²Π΅Ρ‚Π° ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Π²Π²ΠΎΠ΄Π° Π² Ρ‡Π°Ρ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π²Π½ΠΈΠ·, Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ подсказки ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ. + + + Π”Ρ€ΡƒΠ³ΠΈΠ΅: + + + Π’ΠΎ всСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Ρ‹Π»ΠΈ внСсСны ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ, ΠΊΡ€Π°Ρ‚ΠΊΠΎΡΡ‚ΡŒ ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π» создан Ρ„Π°ΠΉΠ» Security.md для отчСтности ΠΎΠ± уязвимостях. + + + Π­Ρ‚Π° вСрсия Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ фиксации fa3f6e9 здСсь: github.com/mckaywrigley/chatbot-ui/commit/fa3f6e9 +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/472 \ No newline at end of file diff --git a/chatbot-ui/docker-compose.yml b/chatbot-ui/docker-compose.yml new file mode 100644 index 0000000..bde9c3e --- /dev/null +++ b/chatbot-ui/docker-compose.yml @@ -0,0 +1,10 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: chatbot-ui_web_1 + APP_PORT: 3000 + + web: + image: ghcr.io/mckaywrigley/chatbot-ui:main@sha256:569dffe6043136f03de86bde38453a58d05150f29476239dc1da4ce2573b4101 \ No newline at end of file diff --git a/chatpad-ai/dfwebos-app.yml b/chatpad-ai/dfwebos-app.yml new file mode 100644 index 0000000..a6febde --- /dev/null +++ b/chatpad-ai/dfwebos-app.yml @@ -0,0 +1,29 @@ +manifestVersion: 1 +id: chatpad-ai +category: ai +name: Chatpad AI +# использованиС ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 6 символов Ρ…Π΅ΡˆΠ° фиксации Π² качСствС Π½ΠΎΠΌΠ΅Ρ€Π° вСрсии (Ρ‚Π΅Π³ изобраТСния Docker ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ…ΡΡˆ фиксации) +version: "bb5f4a" +tagline: ΠŸΡ€Π΅ΠΌΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ качСство интСрфСйс для ChatGPT +description: >- + Π§Π°Ρ‚ΠΏΠ°Π΄ ИИ β€” это Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс для ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ‡Π°Ρ‚Π° OpenAI. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ OpenAI API, ΠΈ всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ! + + + Никакого отслСТивания. Никаких Ρ„Π°ΠΉΠ»ΠΎΠ² cookie. ВсС ваши Π΄Π°Π½Π½Ρ‹Π΅ хранятся локально Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ. +developer: Andrei Canta +website: https://github.com/deiucanta/chatpad +dependencies: [] +repo: https://github.com/deiucanta/chatpad +support: https://github.com/deiucanta/chatpad/issues +port: 10102 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + Π’ этом выпускС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка GPT-4o. +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/604 diff --git a/chatpad-ai/docker-compose.yml b/chatpad-ai/docker-compose.yml new file mode 100644 index 0000000..6b994e4 --- /dev/null +++ b/chatpad-ai/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3.9" + +services: + app_proxy: + environment: + APP_HOST: chatpad-ai_web_1 + APP_PORT: 80 + + web: + image: ghcr.io/deiucanta/chatpad:bb5f4abb36b45320df69dfccb64e734f36ca9bb3@sha256:15155e3a09fd677d578583f6bd3848c991cf768997400e37bc4c27e62a918a7e + restart: on-failure diff --git a/chromium/data/.gitkeep b/chromium/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/chromium/dfwebos-app.yml b/chromium/dfwebos-app.yml new file mode 100644 index 0000000..4d9c880 --- /dev/null +++ b/chromium/dfwebos-app.yml @@ -0,0 +1,33 @@ +manifestVersion: 1.2 +id: chromium +name: Chromium +tagline: ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ +category: networking +version: "8d3cb5f1" +port: 30099 +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Chromium ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ большС Π½Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π±Π΅Π· HTTPS. + + + Chromium β€” это ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈ Π² основном ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Google. Π‘Π»ΡƒΠΆΠ° основой для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Google Chrome, Microsoft Edge ΠΈ Opera, Chromium стрСмится ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ бСзопасный, быстрый ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. +developer: The Chromium Project +website: https://www.chromium.org/Home/ +submitter: maddog11010 +submission: https://github.com/getumbrel/dfwebos-apps/pull/1888 +repo: https://github.com/linuxserver/docker-chromium +support: https://discourse.linuxserver.io/ +dependencies: [] +path: "" +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ бСзопасности ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + РСкомСндуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ этой вСрсии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ возмоТности просмотра ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://developer.chrome.com/release-notes. +disabled: true diff --git a/chromium/docker-compose.yml b/chromium/docker-compose.yml new file mode 100644 index 0000000..69b6483 --- /dev/null +++ b/chromium/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: chromium_chromium_1 + APP_PORT: 3000 + + chromium: + image: ghcr.io/linuxserver/chromium:version-8d3cb5f1@sha256:d7c5f7faf5fe524117fd73c4d446e1bf81bccd0d64d073a30b8c9819fdf105d6 + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data:/config + shm_size: "1gb" + restart: on-failure diff --git a/circuitbreaker/data/.gitkeep b/circuitbreaker/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/circuitbreaker/dfwebos-app.yml b/circuitbreaker/dfwebos-app.yml new file mode 100644 index 0000000..2887080 --- /dev/null +++ b/circuitbreaker/dfwebos-app.yml @@ -0,0 +1,65 @@ +manifestVersion: 1 +id: circuitbreaker +category: bitcoin +name: Circuit Breaker +version: "v0.5.1" +tagline: Брандмауэр вашСго ΡƒΠ·Π»Π° Lightning +description: >- + Π­Ρ‚ΠΎ позволяСт ΡƒΠ·Π»Π°ΠΌ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ сСбя ΠΎΡ‚ пСрСполнСния HTLC. + Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ автоматичСского Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ максимальноС количСство находящихся Π² ΠΏΠΎΠ»Π΅Ρ‚Π΅ HTLC для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°. + НапримСр, извСстным ΠΈ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ ΡƒΠ·Π»Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π±ΠΎΠ»Π΅Π΅ высокий максимум, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» ΠΎΡ‚ Ρ€Π°Π½Π΅Π΅ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡƒΠ·Π»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ лишь нСсколькими ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΌΠΈ HTLC. + ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ограничСния скорости ΠΊ количСству пСрСсылаСмых HTLC. + Π­Ρ‚ΠΎ обСспСчиваСт Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ DoS-Π°Ρ‚Π°ΠΊ ΠΈ спама, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основаны Π½Π° большом количСствС HTLC с быстрым Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. + ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². + Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ интСрфСйс ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρƒ HTLC. + Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство HTLC Ρ‚Π°ΠΊΠΆΠ΅ трСбуСтся для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ баланса ΠΊΠ°Π½Π°Π»ΠΎΠ². + Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ посрСдством зондирования ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости для Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ². + + + Π Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ + + + БущСствуСт нСсколько Ρ€Π΅ΠΆΠΈΠΌΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ автоматичСский Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ. Π Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ пСрСопрСдСлСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-интСрфСйс: + + + - сбой: Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ HTLC Π² случаС ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ сводит ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ликвидности Π½Π° входящСй сторонС, Π½ΠΎ влияСт Π½Π° Π²Π°ΡˆΡƒ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊ ΡƒΠ·Π»Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. + + + - ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ: ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ HTLC Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ². Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, ΠΊΠΎΠ³Π΄Π° количСство ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… HTLC Π½ΠΈΠΆΠ΅ максимального ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости допускаСт Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ пСрСсылку. Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ Π½Π°ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΡˆΠ΅ΡΡ‚ΠΎΡΡ‰ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ Π·Π° ΠΏΠ»ΠΎΡ…ΠΎΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, блокируя Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΡΡ‚ΠΎΡΡ‰ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ ΠΊ установкС брандмауэра ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΡƒΠ·Π»Π°. + + Π”Π°ΠΆΠ΅ Π² случаС нСисправности автоматичСского Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π° ΠΈΠ·-Π·Π° встроСнной Π·Π°Ρ‰ΠΈΡ‚Ρ‹ lnd, которая автоматичСски ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ HTLC. + + Π’ΠΠ˜ΠœΠΠΠ˜Π•: функция автоматичСского сбоя Π΅Ρ‰Π΅ Π½Π΅ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° ΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° Π²Π΅Ρ€ΡΠΈΡŽ 0.16. Π’ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях lnd сущСствуСт риск ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ закрытия! + + + -queue_peer_initiated: этот Ρ€Π΅ΠΆΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ставит Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ HTLC, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°Π½Π°Π»Ρ‹, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π½Π΅ являСмся ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ΠΎΠΌ открытия ΠΊΠ°Π½Π°Π»Π°. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» нСсСт расходы Π·Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈΠ·-Π·Π° зависания HTLC. Для ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ бСзопасный Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚ΠΊΠ°Π·Π°. + + - Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΎ: этот Ρ€Π΅ΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ вСсь входящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΎΡ‚ ΡƒΠ·Π»Π°. + + Π’ΠΠ˜ΠœΠΠΠ˜Π•: Π‘ΠΌ. ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. +releaseNotes: >- + Π’ этом выпускС автоматичСский Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ обновляСтся Π΄ΠΎ вСрсии 0.5.1, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° β€‹β€‹Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для отслСТивания Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ пСрСсылкС HTLC, которая Π½Π΅ сохраняСтся LND. Π­Ρ‚Π° подробная информация ΠΎ пСрСсылкС HTLC Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Π° для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΡƒΠ·Π»ΠΎΠ², ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ прСдставлСниС ΠΎ своСм ΠΏΠΎΡ‚ΠΎΠΊΠ΅ пСрСсылки. + + + Π’ частности, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ записи истории пСрСсылки с ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… HTLC (LND сохраняСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ пСрСсылки ΠΈ Π½Π΅ сохраняСт Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ автоматичСский Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 100 000 записСй, поэтому ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм мСста, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ этими записями, составляСт ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 14 ΠœΠ‘. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π»Π°Π³Π° --fwdhistorylimit, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΡ€ΠΈ Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… значСниях ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. + + + Π­Ρ‚Π° функция Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‰Π΅ΠΉΡΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ для исслСдования прСдотвращСния Π°Ρ‚Π°ΠΊ с Π³Π»ΡƒΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π² сСти (https://lists.linuxfoundation.org/pipermail/lightning-dev/2023-August/004034.html). Π”ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΡ†Ρ‹, заинтСрСсованныС Π² участии Π² этом исслСдовании ΠΏΡƒΡ‚Π΅ΠΌ выполнСния *локального* Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…, собираСмых автоматичСским Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ интСрСс ΠΏΠΎ адрСсу https://docs.google.com/forms/d/e/1FAIpQLScm2xs4hNsrkI8UCBS4aTdO03YrmWT2X0-j6zXWpkZ7keKiUw/viewform?usp=sf_link ΠΈΠ»ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ с carla@chaincode.com для получСния ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. + + ВСрсия v0.5.1 содСрТит исправлСниС для вСрсии v0.5.0, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ рСгистрируСт HTLC, пСрСсылаСмыС ΠΏΠΎ нСизвСстным исходящим ΠΊΠ°Π½Π°Π»Π°ΠΌ, Π° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ. +developer: Joost Jager +website: https://github.com/joostjager +dependencies: + - lightning +repo: https://github.com/lightningequipment/circuitbreaker +support: https://github.com/lightningequipment/circuitbreaker/issues +port: 9235 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Joost Jager +submission: https://github.com/getumbrel/dfwebos-apps/pull/394 diff --git a/circuitbreaker/docker-compose.yml b/circuitbreaker/docker-compose.yml new file mode 100644 index 0000000..8958614 --- /dev/null +++ b/circuitbreaker/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: circuitbreaker_web_1 + APP_PORT: 9235 + + web: + image: ghcr.io/lightningequipment/circuitbreaker:v0.5.1@sha256:1c73f4785dad73e279cfb06ec12b004df61f5905446cec06079ace5618490a1d + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + init: true + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/data/.lnd:ro + - ${APP_DATA_DIR}/data:/data/.circuitbreaker + command: [ "--configdir=/data/.circuitbreaker", "--network=${APP_BITCOIN_NETWORK}", "--lnddir=/data/.lnd", "--rpcserver=${APP_LIGHTNING_NODE_IP}:${APP_LIGHTNING_NODE_GRPC_PORT}", "--httplisten=0.0.0.0:9235" ] diff --git a/cloudflared/.gitattributes b/cloudflared/.gitattributes new file mode 100644 index 0000000..808a4d7 --- /dev/null +++ b/cloudflared/.gitattributes @@ -0,0 +1 @@ +exports.sh -crlf \ No newline at end of file diff --git a/cloudflared/data/.gitkeep b/cloudflared/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/cloudflared/dfwebos-app.yml b/cloudflared/dfwebos-app.yml new file mode 100644 index 0000000..4b8ee9c --- /dev/null +++ b/cloudflared/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1 +id: cloudflared +name: Cloudflare Tunnel +tagline: ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ своим прилоТСниям DFWebOS ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСти Cloudflare. +category: networking +version: "2026.3.0" +port: 4499 +description: >- + ЗапуститС бСзопасный Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ для доступа ΠΊ вашим прилоТСниям DFWebOS ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСти Cloudflare. + Π‘ Cloudflare Tunnel Π²Ρ‹ Π½Π΅ отправляСтС Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° внСшний IP β€” вмСсто этого + это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ содСрТит ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ Π΄Π΅ΠΌΠΎΠ½ туннСлирования (cloudflared), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ исходящиС Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΈ + ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ глобальной сСти Cloudflare. + + + Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ настроСна учСтная запись Cloudflare с настроСнными собствСнными Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ. + ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ настроили ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись Cloudflare, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этим руководством с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ настройки собствСнного туннСля: + https://github.com/Radiokot/dfwebos-cloudflared/wiki/How-to-set-up-Cloudflare-Tunnel-on-your-DFWebOS + + + ⚠️ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, доступныС ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, ΡΡ‚ΠΈΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ² ΠΈ Π±ΠΎΡ‚ΠΎΠ² Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΈΡ…. + ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠΉΡ‚Π΅ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π±Π΅Π·Π²Ρ€Π΅Π΄Π½Ρ‹ΠΌ прилоТСниям ΠΈΠ»ΠΈ прилоТСниям, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ строгий Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа. + + + ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Cloudflare. +developer: Radiokot +website: https://www.cloudflare.com/products/tunnel/ +submitter: Radiokot +submission: https://github.com/getumbrel/dfwebos-apps/pull/891 +repo: https://github.com/Radiokot/dfwebos-cloudflared +support: https://github.com/Radiokot/dfwebos-cloudflared/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π”Π΅ΠΌΠΎΠ½ туннСлирования (cloudflared) ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎ вСрсии 2026.3.0. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/cloudflared/docker-compose.yml b/cloudflared/docker-compose.yml new file mode 100644 index 0000000..475c73f --- /dev/null +++ b/cloudflared/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: cloudflared-web + APP_PORT: 3000 + + web: + image: ghcr.io/radiokot/umbrel-cloudflared:1.0.2@sha256:9660fb4e90317036d2b418f1c9437cc2cdb7f7bdd8d820084237a0c37bb94f5b + hostname: cloudflared-web + restart: on-failure + stop_grace_period: 1s + depends_on: + - connector + volumes: + - ${APP_DATA_DIR}/data:/app/data + environment: + CLOUDFLARED_HOSTNAME: "cloudflared-connector" + CLOUDFLARED_METRICS_PORT: "${APP_CLOUDFLARED_METRICS_PORT}" + CLOUDFLARED_TOKEN_FILE: "/app/data/token" + + connector: + image: ghcr.io/radiokot/umbrel-cloudflared-connector:1.0.1-cf.2026.3.0@sha256:8f883ef254bbf44ba94a2647233b36723fe51cf84690ba9b5311145f3b2a8892 + hostname: cloudflared-connector + restart: on-failure + stop_grace_period: 3s + volumes: + - ${APP_DATA_DIR}/data:/data + environment: + CLOUDFLARED_METRICS_PORT: "${APP_CLOUDFLARED_METRICS_PORT}" + CLOUDFLARED_TOKEN_FILE: "./data/token" + extra_hosts: + - "host.docker.internal:host-gateway" + - "${APP_DOMAIN}:host-gateway" diff --git a/cloudflared/exports.sh b/cloudflared/exports.sh new file mode 100644 index 0000000..c463eac --- /dev/null +++ b/cloudflared/exports.sh @@ -0,0 +1 @@ +export APP_CLOUDFLARED_METRICS_PORT="40901" \ No newline at end of file diff --git a/cobalt/dfwebos-app.yml b/cobalt/dfwebos-app.yml new file mode 100644 index 0000000..a801e8a --- /dev/null +++ b/cobalt/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: cobalt +name: cobalt +tagline: Π›ΡƒΡ‡ΡˆΠΈΠΉ способ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π»ΡŽΠ±ΠΈΡ‚Π΅ +category: media +version: "11.5" +port: 9009 +description: >- + βš™οΈ Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнный экзСмпляр Cobalt, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² настройки > экзСмпляры > ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Β«ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнный сСрвСр ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈΒ». Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ http://umbrel.local:9013 Π² качСствС своСго сСрвСра. + + + cobalt β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°, созданный для упрощСния процСсса сохранСния вашСго любимого ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Π΄ΠΈΠ°, Π½Π΅ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°ΡΡΡŒ Π½Π° Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ, Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Π½Ρ‹ΠΉ доступ, Cobalt ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚. Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π²ΠΈΠ΄Π΅ΠΎ, ΠΌΡƒΠ·Ρ‹ΠΊΡƒ, изобраТСния ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°, ΠΊΠΎΠ±Π°Π»ΡŒΡ‚ дСйствуСт ΠΊΠ°ΠΊ прокси-сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ нСпосрСдствСнно ΠΈΠ· источника, обСспСчивая быстрый ΠΈ бСспСрСбойный процСсс. + + + Π§Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Cobalt, Ρ‚Π°ΠΊ это Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ свободС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ ΠΊΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, поэтому Π²Ρ‹ всСгда Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ Π΅Π³ΠΎ нСпосрСдствСнно ΠΈΠ· исходного источника. Он Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π»Π΅ΠΊΠ°ΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° ΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… Π»ΠΈΡ†, позволяя Π²Π°ΠΌ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ чистым, быстрым ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ процСссом поиска ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. + + + Cobalt идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для всСх, ΠΊΡ‚ΠΎ Ρ†Π΅Π½ΠΈΡ‚ простоту ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. Благодаря простому Π² использовании интСрфСйсу ΠΈ эффСктивной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π±Π΅Π· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ…Π»ΠΎΠΏΠΎΡ‚. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ энтузиастом, ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ ΠΌΠ΅Π΄ΠΈΠ°, ΠΈΠ»ΠΈ просто ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Cobalt позволяСт Π»Π΅Π³ΠΊΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ нравится, Π² любоС врСмя. +developer: imputnet +website: https://cobalt.tools/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2174 +repo: https://github.com/imputnet/cobalt +support: https://github.com/imputnet/cobalt/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π’ этом выпускС прСдставлСны Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° явного указания Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² доступа Π² Vimeo API. + - ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ доступа. + - ОбновлСн youtubei.js Π΄ΠΎ вСрсии 15.1.1 для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ совмСстимости. + - ΠžΠ±Ρ‰ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π²Π΅Π±-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ API. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/cobalt/docker-compose.yml b/cobalt/docker-compose.yml new file mode 100644 index 0000000..f5b6166 --- /dev/null +++ b/cobalt/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: cobalt_web_1 + APP_PORT: 9001 + PROXY_AUTH_ADD: "false" + web: + image: dennysubke/cobalt:11.5@sha256:e3b1626d6026f1f714643ad9b0b14257b0ce9ab4cedb3a5e041eb540f2e12798 + read_only: true + restart: on-failure + user: "1000:1000" + ports: + - 9013:9000 + environment: + API_URL: "http://${DEVICE_DOMAIN_NAME}:9013/" + API_AUTH_REQUIRED: 0 + DURATION_LIMIT: 86400 + + diff --git a/code-server/data/.bashrc b/code-server/data/.bashrc new file mode 100644 index 0000000..2a1ba76 --- /dev/null +++ b/code-server/data/.bashrc @@ -0,0 +1 @@ +source "${HOME}/.loaders/init.sh" diff --git a/code-server/data/.loaders/init.sh b/code-server/data/.loaders/init.sh new file mode 100644 index 0000000..3868b6e --- /dev/null +++ b/code-server/data/.loaders/init.sh @@ -0,0 +1,41 @@ +lazy_load() { + local command="${1}" + local loader="${2}" + local arguments=${@:3} + if ! which $command > /dev/null 2>&1 + then + echo "${command} isn't installed yet, installing it now..." + $loader + echo "${command} installed! Running \"${command} ${arguments}\"..." + echo + fi + $command $arguments +} + +setup_node() { + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash + export NVM_DIR="$HOME/.nvm" + source "${HOME}/.nvm/nvm.sh" + source "${HOME}/.nvm/bash_completion" + nvm install stable +} + +setup_python() { + sudo apt-get update + sudo apt-get install -y python3 python3-pip +} + +setup_rust() { + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + source "${HOME}/.cargo/env" +} + +alias node="lazy_load node setup_node" +alias npm="lazy_load npm setup_node" +alias python3="lazy_load python3 setup_python" +alias pip3="lazy_load pip3 setup_python" +alias python="python3" +alias pip="pip3" +alias rustup="lazy_load rustup setup_rust" +alias rustc="lazy_load rustc setup_rust" +alias cargo="lazy_load cargo setup_rust" diff --git a/code-server/dfwebos-app.yml b/code-server/dfwebos-app.yml new file mode 100644 index 0000000..28eb59d --- /dev/null +++ b/code-server/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1 +id: code-server +category: developer +name: code-server +version: "4.117.0" +tagline: ЗапуститС VS Code Π½Π° своСм DFWebOS ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊ Π½Π΅ΠΌΡƒ доступ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° любом устройствС с согласованной срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. +description: >- + ЗапуститС VS Code Π½Π° своСм DFWebOS ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊ Π½Π΅ΠΌΡƒ доступ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ + ΠΊΠΎΠ΄ Π½Π° любом устройствС с согласованной срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ + ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свой DFWebOS Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для написания ΠΊΠΎΠ΄Π° с любого устройства ΠΈ Π² любом мСстС, Π½ΠΎ ΠΈ для ускорСния + тСсты, компиляции, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + + Выполняя всС интСнсивныС Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° своСм DFWebOS, Π²Ρ‹ ΠΏΡ€ΠΎΠ΄Π»Π΅Π²Π°Π΅Ρ‚Π΅ срок слуТбы Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ своих устройств, ΠΊΠΎΠ³Π΄Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΏΡƒΡ‚ΠΈ. +releaseNotes: >- + Π’ этом выпускС Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VS Code обновляСтся Π΄ΠΎ вСрсии 1.117.0. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/coder/code-server/releases. +developer: Coder +website: https://coder.com +dependencies: [] +repo: https://github.com/cdr/code-server +support: https://github.com/cdr/code-server/discussions +port: 8091 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +deterministicPassword: true +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/commit/14f8b3aec8cb99ef0940ba0cd9df25b7126a95cc diff --git a/code-server/docker-compose.yml b/code-server/docker-compose.yml new file mode 100644 index 0000000..c8cb65d --- /dev/null +++ b/code-server/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: code-server_server_1 + APP_PORT: 8080 + + server: + image: codercom/code-server:4.117.0@sha256:e6702766518b961c7e3c41095c129c7c9a82b041578c53326c52fa363a057727 + restart: on-failure + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data:/home/coder + environment: + PASSWORD: $APP_PASSWORD diff --git a/convertx/data/app/.gitkeep b/convertx/data/app/.gitkeep new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/convertx/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/convertx/dfwebos-app.yml b/convertx/dfwebos-app.yml new file mode 100644 index 0000000..3f74d2f --- /dev/null +++ b/convertx/dfwebos-app.yml @@ -0,0 +1,42 @@ +manifestVersion: 1 +id: convertx +category: files +name: ConvertX +version: "0.17.0" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² +description: > + ConvertX β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ тысячи Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ². + + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹. + - ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ + - Π—Π°Ρ‰ΠΈΡ‚Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ + - НСсколько Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ² +developer: Emrik Γ–stling +website: https://github.com/C4illin/ConvertX +dependencies: [] +repo: https://github.com/C4illin/ConvertX +support: https://github.com/C4illin/ConvertX/issues +port: 8386 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultPassword: "" +releaseNotes: >- + Π’ этом выпускС прСдставлСны Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Π° ΠΈ Π½ΠΎΠ²ΠΎΠ΅ массовоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ интСрфСйс. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ VCF Π² CSV. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ массовоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мноТСствСнного Π²Ρ‹Π±ΠΎΡ€Π° интСрфСйс. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° рСализация markitdown для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ часового пояса Π½Π° страницС истории. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² .wma Π² FFMPEG. + + + ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/C4illin/ConvertX/releases. +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3832 diff --git a/convertx/docker-compose.yml b/convertx/docker-compose.yml new file mode 100644 index 0000000..73a2e5b --- /dev/null +++ b/convertx/docker-compose.yml @@ -0,0 +1,16 @@ +services: + app_proxy: + environment: + APP_HOST: convertx_server_1 + APP_PORT: 3000 + + server: + image: c4illin/convertx:v0.17.0@sha256:e1f85be04bbaf8a55ead9261194c3ae0fa0957d303ea537127154860b2552afd + restart: on-failure + stop_grace_period: 1m + user: "1000:1000" + environment: + - HTTP_ALLOWED=true + - ACCOUNT_REGISTRATION=true + volumes: + - ${APP_DATA_DIR}/data/app:/app/data diff --git a/copyparty/data/config/config.conf b/copyparty/data/config/config.conf new file mode 100644 index 0000000..db543ad --- /dev/null +++ b/copyparty/data/config/config.conf @@ -0,0 +1,15 @@ +[global] + p: 3923 # Listen on port 3923 + e2dsa # Scans all mounted volumes (including readonly ones) + e2ts # Scans for tags in all files that don't have tags yet + z # Enable Zeroconf discovery + shr: /shr # Base URL where shares will be accessible from + hist: /cfg/hists/ # Database (fs+media index) and thumbnail cache + +[accounts] + admin: dfwebos # Create a user named admin with password + +[/] + /media # Expose /media as the root volume + accs: + rwmda: admin # The user "admin" gets read-write-move-delete-admin diff --git a/copyparty/data/cp_data/.gitkeep b/copyparty/data/cp_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/copyparty/data/cp_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/copyparty/data/media/.gitkeep b/copyparty/data/media/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/copyparty/data/media/.gitkeep @@ -0,0 +1 @@ + diff --git a/copyparty/data/shared/.gitkeep b/copyparty/data/shared/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/copyparty/data/shared/.gitkeep @@ -0,0 +1 @@ + diff --git a/copyparty/dfwebos-app.yml b/copyparty/dfwebos-app.yml new file mode 100644 index 0000000..041441a --- /dev/null +++ b/copyparty/dfwebos-app.yml @@ -0,0 +1,56 @@ +manifestVersion: 1 +id: copyparty +name: copyparty +tagline: "Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ сСрвСр «всС Π² ΠΎΠ΄Π½ΠΎΠΌΒ» для всСго" +category: files +version: "1.20.14" +port: 3923 +description: >- + πŸ“Ό copyparty β€” это лСгкая, Π½ΠΎ нСвСроятно мощная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, созданная для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ вашими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Он ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΡŽΠ±ΡƒΡŽ срСду Π² ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Ρ†Π΅Π½Ρ‚Ρ€, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ, ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ нСпосрСдствСнно Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный Π²Π΅Π±-интСрфСйс. ВсС происходит Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π±Π΅Π· нСобходимости использования Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ быстрым, ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈ доступным практичСски ΠΈΠ· любого мСста. + + + По своСй сути, copyparty построСн Π½Π° простотС ΠΈ гибкости. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько стандартных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ HTTP, WebDAV ΠΈ FTP, Ρ‡Ρ‚ΠΎ обСспСчиваСт ΠΏΠ»Π°Π²Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ спСктром ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ устройств. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΠΈ, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ссылками с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ долгосрочныС Π°Ρ€Ρ…ΠΈΠ²Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΈΡ‡Π½ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство, copyparty Π»Π΅Π³ΠΊΠΎ адаптируСтся ΠΊ вашим потрСбностям. + + + Помимо Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ управлСния Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, copyparty Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большим, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ сСрвСр. Он поставляСтся со встроСнным ΠΌΠ΅Π΄ΠΈΠ°ΠΏΠ»Π΅Π΅Ρ€ΠΎΠΌ для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ прямо ΠΈΠ· вашСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ с тСкстовыми Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ Markdown для рСдактирования Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ поиск Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ нСобходимости Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вСрсии Ρ„Π°ΠΉΠ»ΠΎΠ². + + + Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ пСрсонализация Ρ‚Π°ΠΊΠΆΠ΅ Π»Π΅ΠΆΠ°Ρ‚ Π² основС Π΄ΠΈΠ·Π°ΠΉΠ½Π° copyparty. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ настроСнныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² соотвСтствии с вашим Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ процСссом. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚Π΅ΠΌ CSS, Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ внСшний Π²ΠΈΠ΄. + + + По сути, copyparty β€” это Π½Π΅ просто Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ сСрвСр, Π° гибкая ΠΈ элСгантная экосистСма управлСния Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Оно ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ частным ΠΎΠ±Π»Π°ΠΊΠΎΠΌ, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ пространством для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ Π°Ρ€Ρ…ΠΈΠ²ΠΎΠΌ, сочСтая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, простоту ΠΈ свободу Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. +developer: "9001" +website: https://github.com/9001/copyparty +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3889 +repo: https://github.com/9001/copyparty +support: https://github.com/9001/copyparty/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + НовыС возмоТности Π² этом выпускС: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ автоматичСского Π²Ρ‹Π±ΠΎΡ€Π° языка интСрфСйс Π² зависимости ΠΎΡ‚ языковых настроСк Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция автоматичСского ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄ΠΎΠΌ списка ΠΈ сСткой Π² зависимости ΠΎΡ‚ содСрТимого ΠΏΠ°ΠΏΠΊΠΈ. + - АудиоплССр Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ для Nintendo 3DS ΠΈ Wii (bcstm, bfstm, brstm). + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π° Π½Π° основС 1000 наряду с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ измСрСния Π½Π° основС 1024. + - Π€Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды ОБ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ глобальной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ сСртификат ΠΈ ΠΊΠ»ΡŽΡ‡ TLS Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ WebDAV Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PROPFIND для Ρ„Π°ΠΉΠ»Π° с бСсконСчной Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой Π°ΡƒΠ΄ΠΈΠΎΠΏΠ»Π΅Π΅Ρ€Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΏΠΊΠ° содСрТит Ρ„Π°ΠΉΠ» m3u ΠΈ порядок сортировки измСняСтся Π²ΠΎ врСмя воспроизвСдСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ бСзымянных тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΎΡΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .ssa вмСсто .txt, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π» Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ магичСский Ρ€Π΅ΠΆΠΈΠΌ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° функция Tail/follow, Π·Π°ΡΡ‹Π»Π°ΡŽΡ‰Π°Ρ ΠΆΡƒΡ€Π½Π°Π» ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ сообщСниями ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСмах. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π°ΡƒΠ΄ΠΈΠΎΡ„Π°ΠΉΠ»Ρ‹, встроСнныС Π² Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/9001/copyparty/releases. +dependencies: [] +path: "" +defaultUsername: "admin" +defaultPassword: "dfwebos" diff --git a/copyparty/docker-compose.yml b/copyparty/docker-compose.yml new file mode 100644 index 0000000..cbc944a --- /dev/null +++ b/copyparty/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: copyparty_web_1 + APP_PORT: 3923 + + web: + image: ghcr.io/9001/copyparty-ac:1.20.14@sha256:d8aa87141c6fb35e9e620d477acb7f7950a0917d7fdd9c5b23cdf53de185835d + restart: on-failure + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/config/config.conf:/cfg/config.conf:ro + - ${APP_DATA_DIR}/data/cp_data:/cfg/hists + - ${APP_DATA_DIR}/data/shared:/shr + - ${APP_DATA_DIR}/data/media:/media + environment: + TZ: UTC diff --git a/core-lightning-rtl/data/boltz/.gitkeep b/core-lightning-rtl/data/boltz/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/core-lightning-rtl/data/rtl/RTL-Config.json b/core-lightning-rtl/data/rtl/RTL-Config.json new file mode 100644 index 0000000..9311631 --- /dev/null +++ b/core-lightning-rtl/data/rtl/RTL-Config.json @@ -0,0 +1,25 @@ +{ + "multiPass": "$APP_PASSWORD", + "defaultNodeIndex": 1, + "SSO": { + "rtlSSO": 0, + "rtlCookiePath": "", + "logoutRedirectLink": "" + }, + "nodes": [ + { + "index": 1, + "lnNode": "CLN DFWebOS", + "authentication": { + "configPath": "" + }, + "settings": { + "userPersona": "MERCHANT", + "themeMode": "NIGHT", + "themeColor": "YELLOW", + "enableLogging": true, + "fiatConversion": true + } + } + ] +} \ No newline at end of file diff --git a/core-lightning-rtl/dfwebos-app.yml b/core-lightning-rtl/dfwebos-app.yml new file mode 100644 index 0000000..9965769 --- /dev/null +++ b/core-lightning-rtl/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1.1 +id: core-lightning-rtl +category: bitcoin +name: Ride The Lightning (Core Lightning) +version: "0.15.8-beta-boltz" +tagline: УправляйтС своим ΡƒΠ·Π»ΠΎΠΌ Core Lightning с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ RTL +description: >- + Π­Ρ‚Π° вСрсия RTL ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ настроСна для использования вашСго ΡƒΠ·Π»Π° Core Lightning. + + RTL прСдоставляСт ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ, нСзависимый ΠΎΡ‚ устройства Π²Π΅Π±-интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΉ + ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΡƒΠ·Π»Π° Lightning. Π­Ρ‚ΠΎ обСспСчиваСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ вашСй ΠΌΠΎΠ»Π½ΠΈΠ΅ΠΉ. + ΡƒΠ·Π΅Π» с Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ уровня Bitcoin ΠΈ сСти Lightning. + НСкоторыС интСрСсныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, доступныС Π½Π° RTL: + + + - Богатая панСль инструмСнтов с двумя Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚Π° + + - ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ°/ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ срСдств ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ + + - Π‘ΠΎΠ³Π°Ρ‚ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ функциями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΡ†Π΅Π½ΠΊΠ° баланса, цикличСская рСбалансировка ΠΈ Ρ‚.Β Π΄. + + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°ΠΌΠΈ ΠΈ счСтами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ QR-ΠΊΠΎΠ΄ΠΎΠ² + + - Анализ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ пСрСсылаСмых ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ + + - Π Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² + + - ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ истории Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ + + - Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс Loop для Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… Π»ΠΎΠ΄ΠΎΠΊ. + + - НастраиваСмый интСрфСйс с нСсколькими Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹ΠΌΠΈ схСмами ΠΈ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΌΠΈ/свСтлыми Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ. +developer: Shahana and Suheb +website: https://github.com/Ride-The-Lightning/RTL +dependencies: + - core-lightning +repo: https://github.com/Ride-The-Lightning/RTL +support: https://github.com/Ride-The-Lightning/RTL/issues/new +port: 3100 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: true +releaseNotes: >- + Π’ этом выпускС Ride The Lightning обновляСтся Π΄ΠΎ вСрсии 0.15.8-Π±Π΅Ρ‚Π° ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ, появившаяся Π² вСрсии 0.15.7. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ для стандартных счСтов. + - ΠŸΡ€ΠΎΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Boltz-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΄ΠΎ вСрсии 2.11.1. +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/7 diff --git a/core-lightning-rtl/docker-compose.yml b/core-lightning-rtl/docker-compose.yml new file mode 100644 index 0000000..192df7a --- /dev/null +++ b/core-lightning-rtl/docker-compose.yml @@ -0,0 +1,45 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: core-lightning-rtl_web_1 + APP_PORT: 3000 + + web: + image: shahanafarooqui/rtl:v0.15.8@sha256:54131152cba02a968d83fcc89c07426bfb979372f743649ba1e2626426a34dc0 + restart: on-failure + environment: + PORT: 3000 + APP_PASSWORD: $APP_PASSWORD + LN_IMPLEMENTATION: "CLN" + lnImplementation: "CLN" + LN_SERVER_URL: "https://$APP_CORE_LIGHTNING_DAEMON_IP:$CORE_LIGHTNING_REST_PORT" + RUNE_PATH: "/root/.lightning/.commando-env" + RTL_CONFIG_PATH: "/data" + RTL_COOKIE_PATH: "/data/.cookie" + BLOCK_EXPLORER_URL: "${APP_CORE_RTL_BLOCK_EXPLORER_URL}" + # Π‘ΠΎΠ»ΡŒΡ† + BOLTZ_SERVER_URL: "https://core-lightning-rtl_boltz_1:9003" + BOLTZ_MACAROON_PATH: "/boltz/.boltz/macaroons" + volumes: + - "${APP_DATA_DIR}/data/rtl:/data" + - "${APP_CORE_LIGHTNING_DATA_DIR}:/root/.lightning:ro" + - "${APP_DATA_DIR}/data/boltz:/boltz:ro" + + boltz: + image: boltz/boltz-client:2.11.1@sha256:25a984cc76b0d232573cffe7088c2cb2e50b6b8955e09f68d768ef5fc7215c1d + restart: "on-failure" + stop_grace_period: "1m" + environment: + HOME: "/data" + volumes: + - "${APP_DATA_DIR}/data/boltz:/data" + - "${APP_CORE_LIGHTNING_DATA_DIR}:/cln:ro" + command: + - --network=$APP_BITCOIN_NETWORK + - --cln.datadir=/cln + - --cln.host=$APP_CORE_LIGHTNING_DAEMON_IP + - --cln.port=$APP_CORE_LIGHTNING_DAEMON_GRPC_PORT + - --rpc.rest.host="0.0.0.0" + - --rpc.rest.port="9003" diff --git a/core-lightning-rtl/exports.sh b/core-lightning-rtl/exports.sh new file mode 100644 index 0000000..c341e09 --- /dev/null +++ b/core-lightning-rtl/exports.sh @@ -0,0 +1,17 @@ +# ДинамичСский экспорт обозрСватСля Π±Π»ΠΎΠΊΠΎΠ² URL Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΉ сСти Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡƒΠ·Π΅Π» Π‘ΠΈΡ‚ΠΊΠΎΠΉΠ½. + +BLOCK_EXPLORER_URL="https://mempool.space" + +# TODO: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ прилоТСния DFWebOS Mempool ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ URL, Ссли ΠΎΠ½ установлСн. +# Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "${DFWEBOS_ROOT}/scripts/app" ls-installed | grep --quiet 'mempool' +# RTL понадобится способ динамичСского создания URL для локального прилоТСния Mempool. +# Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, localExplorerUrl = `${window.location.protocol}//${window.location.hostname}:${LOCAL_MEMPOOL_PORT}`; + +# Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ APP_BITCOIN_NETWORK ΠΊ URL, Ссли это Π½Π΅ основная ΡΠ΅Ρ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, https://mempool.space/testnet)). +if [[ "${APP_BITCOIN_NETWORK}" != "mainnet" ]]; then + echo "Bitcoin is running on ${APP_BITCOIN_NETWORK}. Appending ${APP_BITCOIN_NETWORK} to the block explorer URL." + BLOCK_EXPLORER_URL="${BLOCK_EXPLORER_URL}/${APP_BITCOIN_NETWORK}" + echo "BLOCK_EXPLORER_URL: ${BLOCK_EXPLORER_URL}" +fi + +export APP_CORE_RTL_BLOCK_EXPLORER_URL="${BLOCK_EXPLORER_URL}" \ No newline at end of file diff --git a/core-lightning-rtl/hooks/pre-start b/core-lightning-rtl/hooks/pre-start new file mode 100755 index 0000000..5d9d9e6 --- /dev/null +++ b/core-lightning-rtl/hooks/pre-start @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +# Π­Ρ‚ΠΎΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ сцСнарий Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ установки Core-Lightning-RTL ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Ρ„Π°ΠΉΠ» RTL-Config.json ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ. + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +RTL_CONFIG_FILE="${APP_DATA_DIR}/data/rtl/RTL-Config.json" + +# ΠœΡ‹ провСряСм, Π½Π΅ сущСствуСт Π»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» RTL ΠΈΠ»ΠΈ ΠΎΠ½ сущСствуСт, Π° для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° lnImplementation установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "LND", Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π°ΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ установка RTL, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. +if [ ! -f "${RTL_CONFIG_FILE}" ] || jq -e '.nodes[] | select(.lnImplementation == "LND")' "${RTL_CONFIG_FILE}" >/dev/null 2>&1; then + echo "Creating a default configuration file for RTL." + # overwrite/create β€” Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ RTL с настройками для CLN DFWebOS. + # RTL-Config.json ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ root + cat >"${RTL_CONFIG_FILE}" <- + НачнитС Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΡΠ΅Ρ‚ΡŒΡŽ Lightning сСгодня с Core Lightning β€” + Lightning РСализация сСти с ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π° соотвСтствиС спСцификациям ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + Π‘Π΅Ρ‚ΡŒ Lightning позволяСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΠ²Π΅Ρ€Ρ…Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Bitcoin. + Запустив ΡƒΠ·Π΅Π» Lightning, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свой Bitcoin Π½Π° + Lightning, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ саты, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΡ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Π² сСти. + + + Π―Π΄Ρ€ΠΎ Lightning ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ Blockstream. +developer: Core Lightning +website: https://blockstream.com/lightning/ +dependencies: + - bitcoin +repo: https://github.com/ElementsProject/cln-application +support: https://community.corelightning.org/home +port: 2103 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultPassword: "" +submitter: Blockstream +submission: https://github.com/getumbrel/dfwebos-apps/pull/475 +releaseNotes: >- + Π’ этом выпускС исправлСния устранСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ внСшниС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ кошСлька ΠΊ своСму ΡƒΠ·Π»Ρƒ Core Lightning. + Если Ρ€Π°Π½Π΅Π΅ Π²Π°ΠΌ Π½Π΅ ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ кошСлСк, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² «Настройки» Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ > ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ кошСлСк > ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ исправлСнныС свСдСния ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ. + + + **ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ выпускам:** + + + Π­Ρ‚ΠΎ обновляСт cln-application Π΄ΠΎ вСрсии 25.07.3, Lightningd Π΄ΠΎ вСрсии 25.09.3 ΠΈ замСняСт ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΡƒΡŽ слуТбу c-lightning-rest встроСнным интСрфСйсом REST Lightningd. + + + **ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ CLN v25.07.3:** + - ΠŸΡ€Π΅Π²Π΅Π½Ρ‚ΠΈΠ²Π½ΠΎΠ΅ устранСниС ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнной ΡƒΠ³Ρ€ΠΎΠ·Ρ‹ экосистСмы npm, связанной с врСдоносным ΠΊΠΎΠ΄ΠΎΠΌ Π² популярных ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ удобства использования. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° запуска Commando Ρ‡Π΅Ρ€Π΅Π· бСзопасныС соСдинСния WebSocket (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, wss-proxy). + - Π£Π΄Π°Π»Π΅Π½Π° вСрсия ΠΈ суффикс фиксации ΠΈΠ· псСвдонимов ΡƒΠ·Π»ΠΎΠ² для Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ отобраТСния. + - ОбновлСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Ρ‚Ρ‹ BKPR с Π“Π“Π“Π“-ММ-Π”Π” Π½Π° стандарт интСрфСйс Π”Π” МММ, Π“Π“Π“Π“. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° бСсконСчной ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ для Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ BTC, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ CLN ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ CLN. + + **CLN v25.09.3:** + - Π‘ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ Π±Ρ‹Π» пСрСнСсСн Π² Core Lightning, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ, сборы ΠΈ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°Π½Π°Π»ΠΎΠ². + - xpay Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ адрСса BIP353 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β‚Ώcln@blockstream.com) ΠΈ простыС прСдлоТСния Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° обратная связь ΠΏΡ€ΠΈ сбоС создания ΠΊΠ°Π½Π°Π»Π° ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Смкости. + - Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ количСство частСй, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° xpay ΠΈ Askrene. + - Reckless Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ соврСмСнный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² uv для ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Python. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ количСство Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π² основном Ρ†ΠΈΠΊΠ»Π΅ Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»Ρ Π½Π° аскСнС. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ сращивания ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Eclair ΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΡƒΡŽ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ Π²ΠΎ врСмя ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°. + - ΠŸΠΎΠ²Ρ‹ΡΡŒΡ‚Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, гарантируя, Ρ‡Ρ‚ΠΎ всС ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚ΠΈΠΏ ΠΊΠ°Π½Π°Π»Π°. + - Π‘Π΅ΠΊΡ€Π΅Ρ‚Ρ‹ ΠΎΠΏΠ»Π°Ρ‚Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ Π² счСтах BOLT11 для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ. +backupIgnore: + - data/lightningd/bitcoin/lightningd.sqlite3 diff --git a/core-lightning/docker-compose.yml b/core-lightning/docker-compose.yml new file mode 100644 index 0000000..65072e0 --- /dev/null +++ b/core-lightning/docker-compose.yml @@ -0,0 +1,89 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_CORE_LIGHTNING_IP + APP_PORT: $APP_CORE_LIGHTNING_PORT + app: + image: ghcr.io/elementsproject/cln-application:25.07.3@sha256:af22cebd21e1175651049d09cf2dd547da569fddd55e4c7766e5956bd47e91fa + command: npm run start + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/app:${APP_CONFIG_DIR} + - ${APP_CORE_LIGHTNING_DATA_DIR}:${CORE_LIGHTNING_PATH} + environment: + APP_SINGLE_SIGN_ON: "true" + APP_HOST: ${APP_CORE_LIGHTNING_IP} + APP_PORT: ${APP_CORE_LIGHTNING_PORT} + BITCOIN_NETWORK: ${APP_CORE_LIGHTNING_BITCOIN_NETWORK} + LIGHTNING_HOST: ${APP_CORE_LIGHTNING_DAEMON_IP} + LIGHTNING_TOR_HOST: ${APP_CORE_LIGHTNING_HIDDEN_SERVICE} + APP_CONNECT: COMMANDO + APP_MODE: ${APP_MODE} + LIGHTNING_DATA_DIR: ${CORE_LIGHTNING_PATH} + APP_CONFIG_FILE: ${APP_CONFIG_DIR}/config.json + LIGHTNING_VARS_FILE: ${COMMANDO_CONFIG} + LIGHTNING_WS_PROTOCOL: ws + LIGHTNING_WS_PORT: ${APP_CORE_LIGHTNING_WEBSOCKET_PORT} + LIGHTNING_WS_CLIENT_KEY_FILE: ${CORE_LIGHTNING_PATH}/${APP_CORE_LIGHTNING_BITCOIN_NETWORK}/client-key.pem + LIGHTNING_WS_CLIENT_CERT_FILE: ${CORE_LIGHTNING_PATH}/${APP_CORE_LIGHTNING_BITCOIN_NETWORK}/client.pem + LIGHTNING_WS_CA_CERT_FILE: ${CORE_LIGHTNING_PATH}/${APP_CORE_LIGHTNING_BITCOIN_NETWORK}/ca.pem + LIGHTNING_REST_PROTOCOL: https + LIGHTNING_REST_HOST: ${DEVICE_DOMAIN_NAME} + LIGHTNING_REST_TOR_HOST: ${APP_CORE_LIGHTNING_HIDDEN_SERVICE} + LIGHTNING_REST_PORT: ${CORE_LIGHTNING_REST_PORT} + LIGHTNING_REST_CLIENT_KEY_FILE: ${CORE_LIGHTNING_PATH}/${APP_CORE_LIGHTNING_BITCOIN_NETWORK}/client-key.pem + LIGHTNING_REST_CLIENT_CERT_FILE: ${CORE_LIGHTNING_PATH}/${APP_CORE_LIGHTNING_BITCOIN_NETWORK}/client.pem + LIGHTNING_REST_CA_CERT_FILE: ${CORE_LIGHTNING_PATH}/${APP_CORE_LIGHTNING_BITCOIN_NETWORK}/ca.pem + LIGHTNING_GRPC_HOST: ${DEVICE_DOMAIN_NAME} + LIGHTNING_GRPC_TOR_HOST: ${APP_CORE_LIGHTNING_HIDDEN_SERVICE} + LIGHTNING_GRPC_PORT: ${APP_CORE_LIGHTNING_DAEMON_GRPC_PORT} + LIGHTNING_GRPC_PROTO_PATH: https://github.com/ElementsProject/lightning/tree/master/cln-grpc/proto + LIGHTNING_GRPC_CLIENT_KEY_FILE: ${CORE_LIGHTNING_PATH}/${APP_CORE_LIGHTNING_BITCOIN_NETWORK}/client-key.pem + LIGHTNING_GRPC_CLIENT_CERT_FILE: ${CORE_LIGHTNING_PATH}/${APP_CORE_LIGHTNING_BITCOIN_NETWORK}/client.pem + LIGHTNING_GRPC_CA_CERT_FILE: ${CORE_LIGHTNING_PATH}/${APP_CORE_LIGHTNING_BITCOIN_NETWORK}/ca.pem + networks: + default: + ipv4_address: ${APP_CORE_LIGHTNING_IP} + lightningd: + image: elementsproject/lightningd:v25.09.3@sha256:ca95610b7db23a8fad5cf6e36044ecd4ff9124dcc7dae50bd151084d39feaf70 + restart: on-failure + ports: + - ${APP_CORE_LIGHTNING_DAEMON_PORT}:9735 + - ${APP_CORE_LIGHTNING_WEBSOCKET_PORT}:${APP_CORE_LIGHTNING_WEBSOCKET_PORT} + - ${CORE_LIGHTNING_REST_PORT}:${CORE_LIGHTNING_REST_PORT} + - ${APP_CORE_LIGHTNING_DAEMON_GRPC_PORT}:${APP_CORE_LIGHTNING_DAEMON_GRPC_PORT} + environment: + LIGHTNINGD_NETWORK: ${APP_CORE_LIGHTNING_BITCOIN_NETWORK} + command: + - --bitcoin-rpcconnect=${APP_BITCOIN_NODE_IP} + - --bitcoin-rpcuser=${APP_BITCOIN_RPC_USER} + - --bitcoin-rpcpassword=${APP_BITCOIN_RPC_PASS} + - --bitcoin-rpcport=${APP_BITCOIN_RPC_PORT} + - --lightning-dir=${CORE_LIGHTNING_PATH} + - --proxy=${TOR_PROXY_IP}:${TOR_PROXY_PORT} + - --bind-addr=${APP_CORE_LIGHTNING_DAEMON_IP}:9735 + - --bind-addr=ws:${APP_CORE_LIGHTNING_DAEMON_IP}:${APP_CORE_LIGHTNING_WEBSOCKET_PORT} + - --addr=statictor:${TOR_PROXY_IP}:29051 + - --tor-service-password=${TOR_PASSWORD} + - --network=${APP_CORE_LIGHTNING_BITCOIN_NETWORK} + - --database-upgrade=true + - --grpc-host=${APP_CORE_LIGHTNING_DAEMON_IP} + - --grpc-port=${APP_CORE_LIGHTNING_DAEMON_GRPC_PORT} + - --clnrest-host=${APP_CORE_LIGHTNING_DAEMON_IP} + - --clnrest-port=${CORE_LIGHTNING_REST_PORT} + volumes: + - "${APP_CORE_LIGHTNING_DATA_DIR}:${CORE_LIGHTNING_PATH}" + networks: + default: + ipv4_address: ${APP_CORE_LIGHTNING_DAEMON_IP} + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" diff --git a/core-lightning/exports.sh b/core-lightning/exports.sh new file mode 100644 index 0000000..6007c29 --- /dev/null +++ b/core-lightning/exports.sh @@ -0,0 +1,21 @@ +export APP_CORE_LIGHTNING_IP="10.21.21.94" +export APP_CORE_LIGHTNING_PORT="2103" +export APP_CORE_LIGHTNING_DAEMON_IP="10.21.21.96" +export APP_CORE_LIGHTNING_DAEMON_PORT="9736" +export APP_CORE_LIGHTNING_DAEMON_GRPC_PORT="2110" +export APP_CORE_LIGHTNING_WEBSOCKET_PORT="2106" +export APP_CORE_LIGHTNING_DATA_DIR="${EXPORTS_APP_DIR}/data/lightningd" +export CORE_LIGHTNING_REST_PORT="2107" + +export APP_CORE_LIGHTNING_BITCOIN_NETWORK="${APP_BITCOIN_NETWORK}" +if [[ "${APP_BITCOIN_NETWORK}" == "mainnet" ]]; then + export APP_CORE_LIGHTNING_BITCOIN_NETWORK="bitcoin" +fi + +lightning_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rest/hostname" +export APP_CORE_LIGHTNING_HIDDEN_SERVICE="$(cat "${lightning_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" + +export APP_CONFIG_DIR="/data/app" +export APP_MODE="production" +export CORE_LIGHTNING_PATH="/root/.lightning" +export COMMANDO_CONFIG="/root/.lightning/.commando-env" diff --git a/core-lightning/hooks/pre-start b/core-lightning/hooks/pre-start new file mode 100755 index 0000000..e2b0733 --- /dev/null +++ b/core-lightning/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Core Lightning Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° скрытая слуТба Tor REST Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π°. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-rest/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach lightningd +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/core-lightning/torrc.template b/core-lightning/torrc.template new file mode 100644 index 0000000..8698beb --- /dev/null +++ b/core-lightning/torrc.template @@ -0,0 +1,3 @@ +# CLNRest Бкрытая слуТба +HiddenServiceDir /data/app-$APP_ID-rest +HiddenServicePort $CORE_LIGHTNING_REST_PORT $APP_CORE_LIGHTNING_DAEMON_IP:$CORE_LIGHTNING_REST_PORT \ No newline at end of file diff --git a/databag/data/databag/.gitkeep b/databag/data/databag/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/databag/dfwebos-app.yml b/databag/dfwebos-app.yml new file mode 100644 index 0000000..943a1b7 --- /dev/null +++ b/databag/dfwebos-app.yml @@ -0,0 +1,66 @@ +manifestVersion: 1 +id: databag +category: social +name: Databag +version: "0.1.17" +tagline: ΠšΡ€ΠΎΡˆΠ΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ мСссСндТСр для Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ сСти. +description: >- + Databag β€” это автономная слуТба ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ особСнности Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + + + - Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ (прямая связь ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ сСрвСрным ΡƒΠ·Π»ΠΎΠΌ) + + - Π€Π΅Π΄Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ (Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ) + + - Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π½Π° основС ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ-частного ΠΊΠ»ΡŽΡ‡Π° (Π½Π΅ привязана ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ Π΄ΠΎΠΌΠ΅Π½Ρƒ хостинга) + + - Π‘ΠΊΠ²ΠΎΠ·Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ (администратор хостинга Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹Π΅) + + - Аудио ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ·Π²ΠΎΠ½ΠΊΠΈ (для ΠΎΠ±Ρ…ΠΎΠ΄Π° nat трСбуСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр рСтрансляции) + + - ВСматичСскиС обсуТдСния (сообщСния, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Ρ‚Π΅ΠΌΠ°ΠΌ, Π° Π½Π΅ ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ) + + - Π›Π΅Π³ΠΊΠΈΠΉ вСс (сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Raspberry Pi Zero v1.3) + + - Низкая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (использованиС Π²Π΅Π±-сокСтов для push-событий Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ опроса) + + - НСограничСнноС количСство ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй Π½Π° ΡƒΠ·Π΅Π» (хост для всСй вашСй сСмьи) + + - ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ оповСщСния ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°Ρ…, сообщСниях ΠΈ Π·Π²ΠΎΠ½ΠΊΠ°Ρ… (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ UnifiedPush, FCM, APN) + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• πŸ› οΈ + + + πŸ†• Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи ΠΈ ссылки Π½Π° ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ администратора. + + + - Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ администратора, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ ΡˆΠ΅ΡΡ‚Π΅Ρ€Π΅Π½ΠΊΠΈ настроСк, располоТСнный Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ страницы Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. + + + - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Β«ΠΏΠ°Ρ€ΠΎΠ»ΡŒ прилоТСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отобраТаСтся Π½Π° страницС Databag Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (отобраТаСтся послС установки). + + + 🌐 ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ HTTPS. БраузСрная вСрсия прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· http, Π½ΠΎ для мобильного прилоТСния трСбуСтся https. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ https с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния Cloudflare Tunnel, доступного Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΏΠΎ настройкС туннСля ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://github.com/Radiokot/dfwebos-cloudflared/wiki/How-to-set-up-Cloudflare-Tunnel-on-your-DFWebOS-Server +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Databag вносит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния: + + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ послСдниС вСрсии инструмСнтов Go с исправлСниями бСзопасности. + + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка повторитСля push-ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ вмСсто ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ Firebase API. +dependencies: [] +developer: Pierre Balzack +website: https://github.com/balzack/databag +repo: https://github.com/balzack/databag +support: https://github.com/balzack/databag/discussions +port: 7000 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +deterministicPassword: true +submitter: Pierre Balzack +submission: https://github.com/getumbrel/umbrel/pull/649 diff --git a/databag/docker-compose.yml b/databag/docker-compose.yml new file mode 100644 index 0000000..083624e --- /dev/null +++ b/databag/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: databag_web_1 + APP_PORT: 7000 + + web: + image: balzack/databag:0.1.17@sha256:934ef8c1a8b6da5b222dea7d6c6ddc0b5b8c24b314a8038686a98cab14e0466d + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/databag:/var/lib/databag + environment: + ADMIN: $APP_PASSWORD diff --git a/datum/data/settings/datum_gateway_config.json b/datum/data/settings/datum_gateway_config.json new file mode 100644 index 0000000..595893c --- /dev/null +++ b/datum/data/settings/datum_gateway_config.json @@ -0,0 +1,29 @@ +{ + "bitcoind": { + "rpcuser": "auto-configure-on-install", + "rpcpassword": "auto-configure-on-install", + "rpcurl": "auto-configure-on-install" + }, + "api": { + "listen_port": 21000, + "modify_conf": true, + "admin_password": "dfwebos" + + }, + "mining": { + "pool_address": "", + "coinbase_tag_primary": "DATUM on DFWebOS", + "coinbase_tag_secondary": "DATUM on DFWebOS" + }, + "stratum": { + "listen_port": 23334 + }, + "logger": { + "log_level_console": 2 + }, + "datum": { + "pool_pass_workers": true, + "pool_pass_full_users": true, + "pooled_mining_only": true + } +} \ No newline at end of file diff --git a/datum/dfwebos-app.yml b/datum/dfwebos-app.yml new file mode 100644 index 0000000..4dd460e --- /dev/null +++ b/datum/dfwebos-app.yml @@ -0,0 +1,90 @@ +manifestVersion: 1.1 +id: datum +category: bitcoin +name: DATUM +version: "v0.4.1-beta" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³ Bitcoin +description: >- + βš™οΈ ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ инструкции ΠΏΠΎ настройкС Π²Π½ΠΈΠ·Ρƒ этой страницы. + + + DATUM (Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π°) β€” это ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π±Π»ΠΎΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ собствСнный ΡƒΠ·Π΅Π» Bitcoin. + + + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ DATUM Π½Π° DFWebOS, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ настройкой ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Bitcoin, Ρ‡Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнный ΡƒΠ·Π΅Π» Bitcoin для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… шаблонов Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ вашим ΠΌΠ°ΠΉΠ½Π΅Ρ€Π°ΠΌ. + DATUM позволяСт Π²Π°ΠΌ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³ΠΎΠΌ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ ΠΈΠ»ΠΈ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π΅ ΠΏΡƒΠ»Π°, оптимизируя созданиС Π±Π»ΠΎΠΊΠΎΠ², Π½Π΅ полагаясь Π½Π° сторонниС сСрвСры. + + + Π‘ Π³ΠΎΠ΄Π°ΠΌΠΈ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³ двинулся Π² сторону Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈ этом ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΏΡƒΠ»Ρ‹ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π² этом процСссС ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΈ ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² простых ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†ΠΎΠ² Ρ…Π΅Ρˆ-мощности. + DATUM стрСмится Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ основной ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Bitcoin: Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, снова прСдоставляя ΠΌΠ°ΠΉΠ½Π΅Ρ€Π°ΠΌ прямой ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом создания Π±Π»ΠΎΠΊΠΎΠ². + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + + ### Bitcoin Π£Π·Π΅Π»: + + + Datum автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Bitcoin Knots послС установки. Для ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Π½Π΅ трСбуСтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π», поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ свой ΡƒΠ·Π΅Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ дисковоС пространство. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки» прилоТСния Bitcoin Knots. + + + ### Настройка DATUM: + + + ⚠️ Команда DATUM Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Safari Π² настоящСС врСмя нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для измСнСния настроСк ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ для измСнСния настроСк. + + + Π§Ρ‚ΠΎΠ±Ρ‹ DATUM Π±Ρ‹Π» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свой адрСс Bitcoin Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡΒ» Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ DATUM. + Π­Ρ‚ΠΎ адрСс ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π°Π³Ρ€Π°Π΄Ρ‹ Π·Π° ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³. Π’Π°ΡˆΠΈ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для измСнСния настроСк, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу + Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π·Π½Π°Ρ‡ΠΎΠΊ прилоТСния DATUM Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС DFWebOS ΠΈ Π²Ρ‹Π±Ρ€Π°Π² Β«ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ». + + + ### ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ вашСго ΠΌΠ°ΠΉΠ½Π΅Ρ€Π°: + + + ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ настройки см. Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ вашСго ΠΌΠ°ΠΉΠ½Π΅Ρ€Π°. Π’ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ руководство ΠΏΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ вашСго ΠΌΠ°ΠΉΠ½Π΅Ρ€Π° ΠΊ Datum: + + - URL-адрСс уровня/хост/ΠΏΡƒΠ»: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ IP-адрСс вашСго устройства DFWebOS (находится Π² настройках Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС DFWebOS) ΠΈ ΠΏΠΎΡ€Ρ‚ 23334. + Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, stratum+tcp://192.168.4.56:23334 + + - Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ: Π²Π²Π΅Π΄ΠΈΡ‚Π΅ адрСс Bitcoin для получСния Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ OCEAN. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ имя Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ° послС Ρ‚ΠΎΡ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вашСго ΠΌΠ°ΠΉΠ½Π΅Ρ€Π°. + Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, bc1qabcdefghijklmnopqrstuvwxyz ΠΈΠ»ΠΈ bc1qabcdefghijklmnopqrstuvwxyz.bitaxe + + - ΠŸΠ°Ρ€ΠΎΠ»ΡŒ: ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ пустым ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли ваш ΠΌΠ°ΠΉΠ½Π΅Ρ€ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. + + + Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Datum посСтитС https://github.com/OCEAN-xyz/datum_gateway. +developer: OCEAN +website: https://ocean.xyz +dependencies: + - bitcoin-knots +repo: https://github.com/OCEAN-xyz/datum_gateway +support: https://ocean.xyz +port: 21000 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "admin" +deterministicPassword: true +releaseNotes: >- + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/OCEAN-xyz/datum_gateway/releases/tag/v0.4.1beta. +widgets: + - id: "stats" + type: "three-stats" + refresh: "30s" + endpoint: "datum:21000/dfwebos-api" + link: "" + example: + type: "three-stats" + link: "" + items: + - title: "Connections" + text: "12" + subtext: "Worker" + - title: "Hashrate" + text: "21" + subtext: "TH/s" +submitter: LΓ©o Haf +submission: https://github.com/getumbrel/dfwebos-apps/pull/1661 diff --git a/datum/docker-compose.yml b/datum/docker-compose.yml new file mode 100644 index 0000000..6b311be --- /dev/null +++ b/datum/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: datum_datum_1 + APP_PORT: 21000 + + datum: + image: ghcr.io/retropex/datum:v1.14@sha256:c67ac8afb4f90f6f8090b8130ab834b20177efb2246895084525a15078cedc47 + entrypoint: ["/app/datum_gateway"] + command: ["--config=/app/conf/datum_gateway_config.json"] + user: 1000:1000 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/settings/:/app/conf/ + ports: + # ΠΏΠΎΡ€Ρ‚ шлюза Π΄Π°Π½Π½Ρ‹Ρ… + - 23334:23334 diff --git a/datum/hooks/pre-start b/datum/hooks/pre-start new file mode 100755 index 0000000..1698da2 --- /dev/null +++ b/datum/hooks/pre-start @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +# Π­Ρ‚ΠΎΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ скрипт обновляСт Ρ„Π°ΠΉΠ» datum_gateway_config.json ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ Knots RPC. + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +DATUM_CONFIG_FILE="${APP_DATA_DIR}/data/settings/datum_gateway_config.json" +DESIRED_OWNER="1000:1000" + +if [ -f "${DATUM_CONFIG_FILE}" ]; then + echo "Checking DATUM configuration file." + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСны Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды Knots + if [ -z "${APP_BITCOIN_KNOTS_RPC_USER}" ] || [ -z "${APP_BITCOIN_KNOTS_RPC_PASS}" ] || [ -z "${APP_BITCOIN_KNOTS_NODE_IP}" ] || [ -z "${APP_BITCOIN_KNOTS_INTERNAL_RPC_PORT}" ]; then + echo "Missing Bitcoin Knots environment variables. Exiting." + exit 1 + fi + + echo "Initializing DATUM config with Bitcoin Knots RPC settings." + + # ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ + jq --arg user "$APP_BITCOIN_KNOTS_RPC_USER" \ + --arg pass "$APP_BITCOIN_KNOTS_RPC_PASS" \ + --arg url "${APP_BITCOIN_KNOTS_NODE_IP}:${APP_BITCOIN_KNOTS_INTERNAL_RPC_PORT}" \ + '.bitcoind.rpcuser = $user | + .bitcoind.rpcpassword = $pass | + .bitcoind.rpcurl = $url' \ + "$DATUM_CONFIG_FILE" > "${DATUM_CONFIG_FILE}.tmp" && mv "${DATUM_CONFIG_FILE}.tmp" "$DATUM_CONFIG_FILE" + + # ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ + chown "${DESIRED_OWNER}" "$DATUM_CONFIG_FILE" + + echo "DATUM configuration updated successfully." + + if jq -e '.mining.pool_address | select(. == "enter your bitcoin address")' "$DATUM_CONFIG_FILE" > /dev/null; then + + echo "Bitcoin address invalid, resetting." + jq -e '.mining.pool_address = ""' "$DATUM_CONFIG_FILE" > "$DATUM_CONFIG_FILE".tmp && mv "${DATUM_CONFIG_FILE}.tmp" "$DATUM_CONFIG_FILE" + + fi + + if jq -e '.api.modify_conf' "$DATUM_CONFIG_FILE" > /dev/null; then + echo "New API already set" + else + jq -e '.api.modify_conf = true' "$DATUM_CONFIG_FILE" > "$DATUM_CONFIG_FILE".tmp && mv "${DATUM_CONFIG_FILE}.tmp" "$DATUM_CONFIG_FILE" + fi + + if jq -e '.api.admin_password | select(. == "dfwebos")' "$DATUM_CONFIG_FILE" > /dev/null; then + jq --arg password "$APP_PASSWORD" -e '.api.admin_password = $password' "$DATUM_CONFIG_FILE" > "$DATUM_CONFIG_FILE".tmp && mv "${DATUM_CONFIG_FILE}.tmp" "$DATUM_CONFIG_FILE" + elif ! jq -e '.api.admin_password' "$DATUM_CONFIG_FILE" > /dev/null; then + jq --arg password "$APP_PASSWORD" -e '.api.admin_password = $password' "$DATUM_CONFIG_FILE" > "$DATUM_CONFIG_FILE".tmp && mv "${DATUM_CONFIG_FILE}.tmp" "$DATUM_CONFIG_FILE" + else + echo "Admin password already set" + fi + +else + echo "DATUM configuration file not found. Installation incomplete." + exit 1 +fi diff --git a/dcrpulse/data/.gitkeep b/dcrpulse/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/dcrpulse/dfwebos-app.yml b/dcrpulse/dfwebos-app.yml new file mode 100644 index 0000000..b4fe0ed --- /dev/null +++ b/dcrpulse/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: dcrpulse +name: Decred Pulse +tagline: Полная Π½ΠΎΠ΄Π° Decred с кошСльком Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для просмотра ΠΈ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ΠΌ Π±Π»ΠΎΠΊΠΎΠ² Π±Π΅Π· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… +category: crypto +version: "1.0.3" +port: 8735 +description: |- + Decred Pulse β€” это комплСксная панСль управлСния для запуска ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Decred. + + + Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: + - ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° dcrd с индСксациСй Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ + - dcrwallet с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ кошСлька Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для просмотра + - Π‘Π»ΠΎΠΊ-ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ ΠΌΠ΅ΠΌΠΏΡƒΠ»Π° ΠΈ расходов. + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ кошСльком Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для просмотра с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° xpub + + + ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΡƒΠ·Π»ΠΎΠ² ΠΈ кошСльков Decred, изучСния Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° ΠΈΠ»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° сСтСвой активности Decred. + + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - Полная Π½ΠΎΠ΄Π° Decred + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° кошСлька + - Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Π±Π»ΠΎΠΊΠΎΠ² + - ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΌΠ΅ΠΌΠΏΡƒΠ»Π° + - КошСлСк Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для просмотра с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ ΠΈΠ· xpub +developer: Decred +website: https://decred.org +submitter: karamble +repo: https://github.com/karamble/dcrpulse +support: https://github.com/karamble/dcrpulse/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +dependencies: [] +releaseNotes: "" +path: "" +defaultUsername: "" +defaultPassword: "" +submission: https://github.com/getumbrel/dfwebos-apps/pull/4121 + diff --git a/dcrpulse/docker-compose.yml b/dcrpulse/docker-compose.yml new file mode 100644 index 0000000..2f88be3 --- /dev/null +++ b/dcrpulse/docker-compose.yml @@ -0,0 +1,84 @@ +services: + app_proxy: + environment: + APP_HOST: dcrpulse_dashboard_1 + APP_PORT: 8735 + + dcrd: + image: ghcr.io/karamble/dcrpulse-dcrd:2.1.3@sha256:d5c6c04af574d949db5b32181e3d8f223707e019c7745b45424634f3af6714a3 + user: "1000:1000" + restart: on-failure + stop_grace_period: 5m + volumes: + - ${APP_DATA_DIR}/data:/app-data + environment: + DCRD_RPC_USER: ${APP_SEED} + DCRD_RPC_PASS: ${APP_SEED} + DCRD_EXTRA_ARGS: --txindex + TOR_PROXY_IP: ${TOR_PROXY_IP} + TOR_PROXY_PORT: ${TOR_PROXY_PORT} + command: > + --rpcuser=${APP_SEED} + --rpcpass=${APP_SEED} + --rpclisten=0.0.0.0:9109 + --rpccert=/app-data/dcrd/rpc.cert + --rpckey=/app-data/dcrd/rpc.key + healthcheck: + test: ["CMD", "sh", "-c", "curl -k -u ${APP_SEED}:${APP_SEED} -H 'Content-Type: application/json' -d '{\"jsonrpc\":\"1.0\",\"method\":\"getinfo\",\"params\":[],\"id\":1}' https://127.0.0.1:9109 || exit 1"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 120s + + dcrwallet: + image: ghcr.io/karamble/dcrpulse-dcrwallet:2.1.3@sha256:94caf7a6c57d49083dd73003f94e4dec804a85ed18c5413f489e4550ffb2f395 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/app-data + environment: + DCRWALLET_RPC_USER: ${APP_SEED} + DCRWALLET_RPC_PASS: ${APP_SEED} + DCRD_RPC_USER: ${APP_SEED} + DCRD_RPC_PASS: ${APP_SEED} + DCRD_RPC_HOST: dcrd + DCRWALLET_GAP_LIMIT: 400 + TOR_PROXY_IP: ${TOR_PROXY_IP} + TOR_PROXY_PORT: ${TOR_PROXY_PORT} + command: > + --gaplimit=400 + depends_on: + dcrd: + condition: service_healthy + healthcheck: + test: ["CMD", "sh", "-c", "nc -z 127.0.0.1 9110 && nc -z 127.0.0.1 9111 || exit 1"] + interval: 10s + timeout: 5s + retries: 3 + start_period: 10s + + dashboard: + image: ghcr.io/karamble/dcrpulse-dashboard:1.0.3@sha256:d6d991150e570b3c473873f350a122f2cfc3ffd43e50b87e15821777c28d70dc + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/app-data:ro + environment: + PORT: 8735 + DCRD_RPC_HOST: dcrd + DCRD_RPC_PORT: 9109 + DCRD_RPC_USER: ${APP_SEED} + DCRD_RPC_PASS: ${APP_SEED} + DCRD_RPC_CERT: /app-data/dcrd/rpc.cert + DCRWALLET_RPC_HOST: dcrwallet + DCRWALLET_RPC_PORT: 9110 + DCRWALLET_GRPC_PORT: 9111 + DCRWALLET_RPC_USER: ${APP_SEED} + DCRWALLET_RPC_PASS: ${APP_SEED} + DCRWALLET_RPC_CERT: /app-data/dcrd/rpc.cert + depends_on: + dcrd: + condition: service_healthy + dcrwallet: + condition: service_healthy diff --git a/deepsea/data/config.json b/deepsea/data/config.json new file mode 100644 index 0000000..6a6c39a --- /dev/null +++ b/deepsea/data/config.json @@ -0,0 +1,7 @@ +{ + "power_cost": 0.0, + "power_usage": 0.0, + "wallet": "yourwallethere", + "timezone": "America/Los_Angeles", + "network_fee": 0.0 +} diff --git a/deepsea/dfwebos-app.yml b/deepsea/dfwebos-app.yml new file mode 100644 index 0000000..97637be --- /dev/null +++ b/deepsea/dfwebos-app.yml @@ -0,0 +1,115 @@ +manifestVersion: 1.1 +id: deepsea +category: bitcoin +name: DeepSea Dashboard +version: "2.0.4" +tagline: ΠŸΡ€ΠΈΠ±ΠΎΡ€Π½Π°Ρ панСль Ocean Π² стилС Ρ€Π΅Ρ‚Ρ€ΠΎ +description: >- + Π­Ρ‚Π° панСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ отслСТиваСт ΠΌΠ°ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΡƒΠ»Π° Ocean.xyz Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Он прСдставляСт Ρ…ΡΡˆΡ€Π΅ΠΉΡ‚, ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, статус Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ° ΠΈ сСтСвыС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅Ρ‚Ρ€ΠΎ-интСрфСйс Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. ЦСль состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями. + + + ## ⚑ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности + + - **⛏️ ΠŸΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ** + - ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Ρ…ΡΡˆΡ€Π΅ΠΉΡ‚Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: 60 с, 10 ΠΌΠΈΠ½ΡƒΡ‚, 3 часа ΠΈ 24 часа. + - Анализ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² BTC ΠΈ Ρ„ΠΈΠ°Ρ‚Π΅ + - АвтоматичСский расчСт Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΠΈ, сСбСстоимости ΠΈ чистой ΠΏΡ€ΠΈΠ±Ρ‹Π»ΠΈ + - Π‘ΠΏΠ°Ρ€ΠΊΠ»Π°ΠΉΠ½-Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΉ для быстрого получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. + - ΠžΡ†Π΅Π½ΠΊΠ° бСзубыточности Ρ‚Π°Ρ€ΠΈΡ„Π° Π½Π° ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΡΠ½Π΅Ρ€Π³ΠΈΡŽ + - ДинамичСскоС ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вознаграТдСния (субсидия + сборы) + - Бтатистика сСти: Ρ†Π΅Π½Π° BTC, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ…ΡΡˆΡ€Π΅ΠΉΡ‚, срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. сборы + - ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π²Ρ‹ΠΏΠ»Π°Ρ‚ ΠΈ расчСтноС врСмя Π²Ρ‹ΠΏΠ»Π°Ρ‚Ρ‹ + - УвСдомлСния ΠΎ комиссиях ΠΏΡƒΠ»Π° с Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° + - Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Ocean.xyz API + Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ парсСра + - Π Π΅ΠΆΠΈΠΌ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Ρ…Π΅ΡˆΡ€Π΅ΠΉΡ‚Π° сохраняСт Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π²ΠΎ врСмя спадов + + - **🌍 ΠœΡƒΠ»ΡŒΡ‚ΠΈΠ²Π°Π»ΡŽΡ‚Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°** + - Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ»Π»Π°Ρ€Ρ‹ БША, Π΅Π²Ρ€ΠΎ, Ρ„ΡƒΠ½Ρ‚Ρ‹ стСрлингов, JPY, CNY, BRL ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Π»ΡŽΡ‚Ρ‹. + - ΠšΡƒΡ€ΡΡ‹ Π²Π°Π»ΡŽΡ‚ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ + - ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹Π΅ Π²Π°Π»ΡŽΡ‚Π½Ρ‹Π΅ прСдпочтСния + - ВсС Π΄ΠΎΡ…ΠΎΠ΄Ρ‹ ΠΈ увСдомлСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² вашСй Π²Π°Π»ΡŽΡ‚Π΅. + + - **πŸ‘· Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°ΠΌΠΈ** + - Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ Π°Π²Ρ‚ΠΎΠΏΠ°Ρ€ΠΊΠ° + - Бтатус ΠΎΠ½Π»Π°ΠΉΠ½/ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ + - Π₯Π΅ΡˆΡ€Π΅ΠΉΡ‚, Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ устройства + - Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ ΠΈΠ»ΠΈ статусу + + - **πŸ”Ž Bitcoin ΠžΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Π±Π»ΠΎΠΊΠΎΠ²** + - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ послСдних Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ + - ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ информация ΠΎ комиссиях, ΠΌΠ°ΠΉΠ½Π΅Ρ€Π΅ ΠΈ слоТности + - ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ плавная нумСрация страниц + + - **πŸ’° ΠžΠ±Π·ΠΎΡ€ Π΄ΠΎΡ…ΠΎΠ΄ΠΎΠ²** + - ЕТСднСвная, СТСнСдСльная, СТСмСсячная Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠ° + - Живая конвСртация Ρ„ΠΈΠ°Ρ‚Π½Ρ‹Ρ… Π΄Π΅Π½Π΅Π³ + - Архив историчСских Π΄ΠΎΡ…ΠΎΠ΄ΠΎΠ² + + - **πŸ›‘οΈ Π£ΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ систСмы** + - АвтоматичСскоС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ сСти + - Π Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ опроса Π² случаС сбоя прямой трансляции. + - Π Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ocean API для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ списка. + - Бинхронизация ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° + - ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π° памяти + - Удобная страница ошибок с Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ. + + - **πŸ–₯️ Π Π΅Ρ‚Ρ€ΠΎ ΠΈ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ интСрфСйс** + - ЭстСтика Π² стилС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ + - ΠŸΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΉ систСмный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ + - Адаптивный для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² + - Π Π΅ΠΆΠΈΠΌ **DeepSea** ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ со Π·Π²ΡƒΠΊΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ΅Π°Π½Π°. + - Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Docker + + ## 🌊 Π’Π΅ΠΌΠ° DeepSea + + - Π—Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ подводная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° с Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ искаТСниями. + - ΠžΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠΉ Π·Π²ΡƒΠΊ с ΠΏΠ»Π°Π²Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°ΠΌΠΈ + - Π’Π΅ΠΌΠ° Bitcoin ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π΄ΠΎΡ€ΠΎΠΆΠΊΠ°ΠΌΠΈ. + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π²ΡƒΠΊΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° громкости ΠΈ постоянного воспроизвСдСния + - Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π²ΡƒΠΊΠ° Π±Π»ΠΎΠΊΠ° (block.mp3). + + ## πŸ’» Π’Π΅ΠΌΠ° «БСкрСтная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Β» (ΠΏΠ°ΡΡ…Π°Π»ΡŒΠ½ΠΎΠ΅ яйцо) + + - Π Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π° Konami + «МАВРИЦА» + - Анимированный Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ доТдь с Ρ€Π΅Π΄ΠΊΠΈΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ слов. + - Π―Ρ€Π»Ρ‹ΠΊ для мобильного Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°: ΠΊΠΎΡΠ½ΠΈΡ‚Π΅ΡΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΊΠ°Ρ€Ρ‚Ρ‹ 10 Ρ€Π°Π·. + - Π―Ρ€Π»Ρ‹ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ: Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«MΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ. + - Π’Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ символы со ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ Π² стилС ΠΊΠΈΠ½ΠΎ. + - Π—Π²ΡƒΠΊ Π² стилС Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°Β» с собствСнным саундтрСком. + + + (Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ сообщСства Π½Π΅ связан с OCEAN) +developer: DJ Oβ‚Ώleezy +website: https://github.com/Djobleezy/DeepSea-Dashboard +dependencies: [] +repo: https://github.com/Djobleezy/DeepSea-Dashboard +support: https://github.com/Djobleezy/DeepSea-Dashboard/issues +port: 5300 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +releaseNotes: >- + Π’ этом выпускС прСдставлСны Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + - Полная пСрСстройка ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React 18 + TypeScript + интСрфСйс Vite ΠΈ сСрвСрная Ρ‡Π°ΡΡ‚ΡŒ FastAPI. + - ΠŸΠ»Π°Π²Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния с Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ затухания, ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ выполнСния ΠΈ 25-шаговой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + - БохраняСмыС Π½Π° сСрвСрС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ настройки (пСрСопрСдСлСния ASIC, Ρ‚Π°Ρ€ΠΈΡ„ Π½Π° ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΡΠ½Π΅Ρ€Π³ΠΈΡŽ), синхронизируСмыС ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами Ρ‡Π΅Ρ€Π΅Π· SQLite + - Полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Progressive Web App (PWA) с Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ, ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° установку ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Service Worker с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ вСрсий. + - УстранСно ΠΌΠ΅Ρ€Ρ†Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ благодаря обновлСниям Π½Π° мСстС ΠΈ Ρ€Π΅Ρ‚Ρ€ΠΎΠ°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ заполнСнию Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ Π±Π»ΠΎΠΊΠΎΠ². + - Π Π΅ΠΆΠΈΠΌ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Ρ…Π΅ΡˆΡ€Π΅ΠΉΡ‚Π° для BitAxe ΠΈ ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ² со сниТСнными ΠΏΠΎΡ€ΠΎΠ³Π°ΠΌΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. + - Π’Ρ€ΠΈ иммСрсивныС Ρ‚Π΅ΠΌΡ‹: Bitcoin, DeepSea (ΠΏΡƒΠ·Ρ‹Ρ€ΠΈ/ΠΊΠ°ΠΏΠ»ΠΈ) ΠΈ Matrix (доТдь/Π³Π»ΠΈΡ„Ρ‹). + - Богатая страница Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ ASIC, расчСтами Π·Π°Ρ‚Ρ€Π°Ρ‚/ΠΏΡ€ΠΈΠ±Ρ‹Π»ΠΈ Π°Π²Ρ‚ΠΎΠΏΠ°Ρ€ΠΊΠ° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ€ΡƒΡ‡Π½ΠΎΠΉ настройки. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ пСрСопрСдСлСния ASIC для расчСта мощности, Π·Π°Ρ‚Ρ€Π°Ρ‚ ΠΈ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΠΈ. + - УсилСнная Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΏΡƒΡ‚ΠΈ SPA ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° хоста сСрвисного Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°. + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ история Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π΄ΠΎ 30 Π΄Π½Π΅ΠΉ с Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ Ρ…ΡΡˆΡ€Π΅ΠΉΡ‚Π° ΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ автоматичСского ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ инструмСнты внСшнСго интСрфСйса: Vite 8.0.1, Vitest 4.1.0, @vitejs/plugin-react v6. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/Djobleezy/DeepSea-Dashboard/releases. +submitter: LΓ©o Haf +submission: https://github.com/getumbrel/dfwebos-apps/pull/2635 diff --git a/deepsea/docker-compose.yml b/deepsea/docker-compose.yml new file mode 100644 index 0000000..e950987 --- /dev/null +++ b/deepsea/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: deepsea_deepsea_1 + APP_PORT: 8000 + + deepsea: + image: ghcr.io/retropex/custom-dashboard-ocean:v2.0.4@sha256:9f5b867d2c5873390614a5e7faab58a4279ecd451b47b2db0034308c35166970 + user: 1000:1000 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/app/data/ diff --git a/dockge/data/docker/.gitkeep b/dockge/data/docker/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/dockge/data/dockge-data/.gitkeep b/dockge/data/dockge-data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/dockge/data/dockge-stacks/.gitkeep b/dockge/data/dockge-stacks/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/dockge/dfwebos-app.yml b/dockge/dfwebos-app.yml new file mode 100644 index 0000000..251331c --- /dev/null +++ b/dockge/dfwebos-app.yml @@ -0,0 +1,61 @@ +manifestVersion: 1 +id: dockge +category: developer +name: Dockge +version: "1.5.0" +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π² использовании ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Docker Compose +description: >- + ⚠️ ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² Ρ„Π°ΠΉΠ»Π°Ρ… Compose Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠΌΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Docker. Π”Π°Π½Π½Ρ‹Π΅ Π² Ρ‚ΠΎΠΌΠ°Ρ…, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊ привязкС + Π±ΡƒΠ΄ΡƒΡ‚ потСряны ΠΏΡ€ΠΈ пСрСзапускС ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Dockge. + + + ⚠️ Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Docker ΠΈ вашими прилоТСниями DFWebOS. + + + Dockge β€” это ΠΌΠΎΠ΄Π½Ρ‹ΠΉ, простой Π² использовании ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ стСк-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ docker compose.yaml для запуска ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Docker. + ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для создания Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ запуска Docker Π² docker-compose.yaml. + + + πŸ› οΈ Dockge on DFWebOS ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, слСдуйтС этим рСкомСндациям: + + + 1. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² Ρ„Π°ΠΉΠ»Π°Ρ… Compose Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠΌΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Docker. Π”Π°Π½Π½Ρ‹Π΅ Π² привязкС + Ρ‚ΠΎΠΌΠ° Π±ΡƒΠ΄ΡƒΡ‚ потСряны ΠΏΡ€ΠΈ пСрСзапускС ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Dockge. + + + 2. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ: слСдитС Π·Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈ сСрвисными ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ DFWebOS. + прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ установили ΠΈΠ· DFWebOS App Store ΠΈΠ»ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ сообщСства, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡŽΠ±Ρ‹Π΅ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. + + + 3. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° пСрСзапуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. УстановитС для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ пСрСзапуска «Ссли Π½Π΅ остановлСн» ΠΈΠ»ΠΈ «всСгда». Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ вашим ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ + для автоматичСского пСрСзапуска ΠΏΡ€ΠΈ пСрСзапускС ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Dockge. + + + 4. Доступ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ своим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎ адрСсу dfwebos.local:PORT_NUMBER. НапримСр, для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° + с Π²Π΅Π±-сайтом интСрфСйс, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 4545, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ адрСсу dfwebos.local:4545, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ. +website: https://dockge.kuma.pet +dependencies: [] +repo: https://github.com/louislam/dockge +support: https://github.com/louislam/dockge/issues +port: 5005 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ содСрТит Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Dockge Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + - ΠšΠ»ΠΈΠ΅Π½Ρ‚ Docker ΠΈ обновлСния Docker Compose. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ консоли + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/louislam/dockge/releases. +developer: Louis Lam +submitter: FlyinPancake +submission: https://github.com/getumbrel/dfwebos-apps/pull/1106 diff --git a/dockge/docker-compose.yml b/dockge/docker-compose.yml new file mode 100644 index 0000000..a2669c1 --- /dev/null +++ b/dockge/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: dockge_dockge_1 + APP_PORT: 5001 + + docker: + image: docker:24.0.5-dind@sha256:3c6e4dca7a63c9a32a4e00da40461ce067f255987ccc9721cf18ffa087bcd1ef + privileged: true + network_mode: host + stop_grace_period: 1m + restart: on-failure + environment: + DOCKER_ENSURE_BRIDGE: "dind0:10.32.0.1/16" + entrypoint: /entrypoint.sh + command: > + dockerd + --bridge dind0 + --data-root /data/data + --exec-root /data/exec + --host unix:///data/docker.sock + --pidfile /data/docker.pid + volumes: + - ${APP_DATA_DIR}/entrypoint.sh:/entrypoint.sh + - ${APP_DATA_DIR}/data/docker:/data + + dockge: + image: louislam/dockge:1.5.0@sha256:335c6368b880ecc203236ed89e6e5232e0d6578e8ef5920e4a502390451502bf + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/docker:/var/run + - ${APP_DATA_DIR}/data/dockge-data:/app/data + - ${APP_DATA_DIR}/data/dockge-stacks:/opt/stacks + environment: + DOCKGE_STACKS_DIR: /opt/stacks + DOCKGE_ENABLE_CONSOLE: "true" diff --git a/dockge/entrypoint.sh b/dockge/entrypoint.sh new file mode 100755 index 0000000..71d910f --- /dev/null +++ b/dockge/entrypoint.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +# Π­Ρ‚ΠΎΡ‚ Ρ…Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, Ссли https://github.com/docker-library/docker/pull/444 Π±ΡƒΠ΄Π΅Ρ‚ объСдинСн. + +# Π£Π΄Π°Π»ΠΈΡ‚Π΅ pid-Ρ„Π°ΠΉΠ» docker, Ссли ΠΎΠ½ сущСствуСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ запуск Docker послС Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹. +pidfile="/var/run/docker.pid" +if [[ -f "${pidfile}" ]] +then + rm -f "${pidfile}" +fi + +# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ nftables Π² качСствС бэкэнда для iptables +for command in iptables iptables-restore iptables-restore-translate iptables-save iptables-translate +do + ln -sf /sbin/xtables-nft-multi /sbin/$command +done + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ мост с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ сущСствуСт. +ensure_bridge_exists() { + local name="${1}" + local ip_range="${2}" + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ мост ΡƒΠΆΠ΅ + if ip link show "${name}" &>/dev/null + then + echo "Bridge '${name}' already exists. Skipping creation." + ip addr show "${name}" + return + fi + + echo "Bridge '${name}' does not exist. Creating..." + ip link add "${name}" type bridge + ip addr add "${ip_range}" dev "${name}" + ip link set "${name}" up + + echo "Bridge '${name}' is now up with IP range '${ip_range}'." + ip addr show "${name}" +} + +if [[ "${DOCKER_ENSURE_BRIDGE}" != "" ]] +then + bridge="${DOCKER_ENSURE_BRIDGE%%:*}" + ip_range="${DOCKER_ENSURE_BRIDGE#*:}" + ensure_bridge_exists "${bridge}" "${ip_range}" +fi + +exec dockerd-entrypoint.sh $@ diff --git a/docmost/data/db_data/.gitkeep b/docmost/data/db_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/docmost/data/db_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/docmost/data/docmost_data/.gitkeep b/docmost/data/docmost_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/docmost/data/docmost_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/docmost/data/redis_data/.gitkeep b/docmost/data/redis_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/docmost/data/redis_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/docmost/dfwebos-app.yml b/docmost/dfwebos-app.yml new file mode 100644 index 0000000..b7a9d36 --- /dev/null +++ b/docmost/dfwebos-app.yml @@ -0,0 +1,55 @@ +manifestVersion: 1 +id: docmost +name: Docmost +tagline: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²ΠΈΠΊΠΈ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. +category: files +version: "0.80.0" +port: 8941 +description: >- + Docmost β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для совмСстной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ управлСния знаниями с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, прСдназначСнная для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ вмСстС ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ структурированный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. Он слуТит соврСмСнной Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Ρ‚Π°ΠΊΠΈΠΌ инструмСнтам, ΠΊΠ°ΠΊ Notion ΠΈ Confluence, с ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ простоту использования. + + + По своСй сути Docmost позволяСт нСскольким ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π±Π΅Π· риска ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ измСнСния Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. КаТдоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ появляСтся Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, создавая ΠΏΠ»Π°Π²Π½Ρ‹ΠΉ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный процСсс рСдактирования, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ ΠΎΡ‚ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… инструмСнтов ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Docmost особСнно подходящим для быстро Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈ быстрой ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. + + + ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° оснащСна простым ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности форматирования ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Он интСгрируСтся с Ρ‚Π°ΠΊΠΈΠΌΠΈ инструмСнтами, ΠΊΠ°ΠΊ Excalidraw Drawio ΠΈ Mermaid, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ нСпосрСдствСнно Π½Π° страницы. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС ΠΈΠ΄Π΅ΠΉ, процСссов ΠΈ взаимосвязСй Π±Π΅Π· нСобходимости ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями. + + + Docmost ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Ρ‡Π΅Ρ€Π΅Π· систСму страниц ΠΈ Π³Ρ€ΡƒΠΏΠΏ пространств с Π³ΠΈΠ±ΠΊΠΎΠΉ настройкой Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Вакая структура позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΎΡ‚Π΄Π΅Π»ΠΎΠ² ΠΈΠ»ΠΈ областями Π·Π½Π°Π½ΠΈΠΉ, сохраняя ΠΏΡ€ΠΈ этом ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поиск ΠΏΠΎ всСй Π±Π°Π·Π΅ Π·Π½Π°Π½ΠΈΠΉ, гарантируя, Ρ‡Ρ‚ΠΎ информация всСгда Π±ΡƒΠ΄Π΅Ρ‚ доступна, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° понадобится. + + + Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΠΈ, Docmost Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя систСму ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹, ΠΈ прСдоставляСт API для ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ ΠΎΠ±Π»Π°Ρ‡Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π² зависимости ΠΎΡ‚ своСй инфраструктуры ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ соотвСтствия. + + + ОсновноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС лицСнзируСтся Π² соотвСтствии с AGPL, Ρ‡Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΡΡ‚ΡŒ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ поощряя участиС ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ. Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ уровня, Docmost Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ услугами. + + + Π’ Ρ†Π΅Π»ΠΎΠΌ Docmost прСдоставляСт ΠΌΠΎΡ‰Π½ΠΎΠ΅, Π½ΠΎ Π³ΠΈΠ±ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ цСнят совмСстный ΠΎΠ±ΠΌΠ΅Π½ знаниями ΠΈ хотят ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ процСссами. +developer: Docmost, Inc. +website: https://docmost.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2870 +repo: https://github.com/docmost/docmost +support: https://github.com/docmost/docmost/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg + - 6.jpg +releaseNotes: >- + ⚠️ Π­Ρ‚ΠΎΡ‚ выпуск содСрТит исправлСния бСзопасности. РСкомСндуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. + + + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ·Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ для быстрого доступа ΠΊ страницам ΠΈ пространствам + - Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ пространства, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния ΠΎΠ± активности + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/docmost/docmost/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/docmost/docker-compose.yml b/docmost/docker-compose.yml new file mode 100644 index 0000000..7012bd9 --- /dev/null +++ b/docmost/docker-compose.yml @@ -0,0 +1,41 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: docmost_web_1 + APP_PORT: 3000 + + web: + image: docmost/docmost:0.80.0@sha256:ada7917ce46fcff62d21f6dcd0692c73309a44a91a6e6869806f23f9c3b694d6 + user: "1000:1000" + depends_on: + - db + - redis + environment: + APP_URL: "http://${DEVICE_DOMAIN_NAME}:8941" + APP_SECRET: ${APP_SEED} + DATABASE_URL: 'postgresql://docmostuser:docmostpass@docmost_db_1:5432/docmost?sslmode=disable' + REDIS_URL: "redis://docmost_redis_1:6379" + DISABLE_TELEMETRY: "true" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/docmost_data:/app/data/storage + + db: + image: postgres:17.3@sha256:0321e2252ebfeecb8bc1a899755084d29bce872953e1a5a3e25ec0860b739098 + user: "1000:1000" + environment: + POSTGRES_DB: docmost + POSTGRES_USER: docmostuser + POSTGRES_PASSWORD: docmostpass + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/db_data:/var/lib/postgresql/data + + redis: + image: redis:8.0.1@sha256:b3ad79880c88e302deb5e0fed6cee3e90c0031eb90cd936b01ef2f83ff5b3ff2 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis_data:/data diff --git a/docuseal/data/app/.gitkeep b/docuseal/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docuseal/data/db/.gitkeep b/docuseal/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docuseal/dfwebos-app.yml b/docuseal/dfwebos-app.yml new file mode 100644 index 0000000..0979f09 --- /dev/null +++ b/docuseal/dfwebos-app.yml @@ -0,0 +1,44 @@ +manifestVersion: 1 +id: docuseal +category: files +name: DocuSeal +version: "2.5.1" +tagline: Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ подписаниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ +description: > + DocuSeal β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая обСспСчиваСт бСзопасноС ΠΈ эффСктивноС подписаниС ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². + + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ PDF (WYSIWYG) + - Доступно 12 Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ (подпись, Π΄Π°Ρ‚Π°, Ρ„Π°ΠΉΠ», Ρ„Π»Π°ΠΆΠΎΠΊ ΠΈ Ρ‚. Π΄.) + - НСсколько ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅ΠΉ Π½Π° ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ + - АвтоматичСскиС элСктронныС письма Ρ‡Π΅Ρ€Π΅Π· SMTP + - Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° дискС ΠΈΠ»ΠΈ AWS S3, Google Storage, Azure Cloud + - АвтоматичСская элСктронная подпись PDF + - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подписи PDF + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ + - ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств + - 7 языков интСрфСйс с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ подписи Π½Π° 14 языках. + - API ΠΈ Π²Π΅Π±Ρ…ΡƒΠΊΠΈ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ +developer: docusealco +website: https://www.docuseal.com/ +dependencies: [] +repo: https://github.com/docusealco/docuseal +support: https://github.com/docusealco/issues +port: 8387 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultPassword: "" +releaseNotes: >- + НСкоторыС ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ поля Π΄Π°Ρ‚Ρ‹ «мСсяц, Π³ΠΎΠ΄Β». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки ΠΈ усилСна Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/docusealco/docuseal/releases. +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3838 diff --git a/docuseal/docker-compose.yml b/docuseal/docker-compose.yml new file mode 100644 index 0000000..029d0ec --- /dev/null +++ b/docuseal/docker-compose.yml @@ -0,0 +1,28 @@ +services: + app_proxy: + environment: + APP_HOST: docuseal_server_1 + APP_PORT: 3000 + + server: + image: docuseal/docuseal:2.5.1@sha256:a43e629c6d0726734afcd192b133efd153dfa7cdf099b29c0cbbe463597da0bb + user: "1000:1000" + depends_on: + - db + restart: on-failure + stop_grace_period: 1m + environment: + DATABASE_URL: 'postgresql://docusealuser:docusealpass@docuseal_db_1:5432/docuseal?sslmode=disable' + volumes: + - ${APP_DATA_DIR}/data/app:/data/docuseal + + db: + image: postgres:17.3@sha256:0321e2252ebfeecb8bc1a899755084d29bce872953e1a5a3e25ec0860b739098 + user: "1000:1000" + environment: + POSTGRES_DB: docuseal + POSTGRES_USER: docusealuser + POSTGRES_PASSWORD: docusealpass + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data diff --git a/domain-locker/data/db_data/.gitkeep b/domain-locker/data/db_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/domain-locker/data/db_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/domain-locker/dfwebos-app.yml b/domain-locker/dfwebos-app.yml new file mode 100644 index 0000000..70dbe46 --- /dev/null +++ b/domain-locker/dfwebos-app.yml @@ -0,0 +1,47 @@ +manifestVersion: 1 +id: domain-locker +name: Domain Locker +tagline: Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт для отслСТивания вашСго портфСля Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½. +category: networking +version: "0.1.4" +port: 8839 +description: >- + Domain Locker β€” это мощная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, прСдназначСнная для управлСния ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… рСгистраторов ΠΈ слуТб. Он прСдоставляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ интСрфСйс для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, отслСТивания ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ² своСго Π΄ΠΎΠΌΠ΅Π½Π° с ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ автоматичСски собираСт ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ записи DNS, сСртификаты SSL, Π΄Π°Π½Π½Ρ‹Π΅ WHOIS, ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Ρ‹ ΠΈ связанныС IP-адрСса. Π’Π°ΠΊΠΎΠ΅ отслСТиваниС Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ всСгда Π±ΡƒΠ΄ΡƒΡ‚ Π² курсС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния ΠΈ работоспособности своих Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². + + + Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ оповСщСния ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎ критичСских измСнСниях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°ΡŽΡ‰Π΅Π΅ΡΡ истСчСниС срока дСйствия Π΄ΠΎΠΌΠ΅Π½Π°, измСнСния DNS ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСзопасности. Π­Ρ‚ΠΈ оповСщСния ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅, Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Telegram ΠΈ Signal, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ быстро Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΡƒΠ³Ρ€ΠΎΠ·Ρ‹ ΠΈΠ»ΠΈ эксплуатационныС измСнСния. Domain Locker Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡˆΠΊΠ°Π»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄ΠΎΠΌΠ΅Π½Π° ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ понимания позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ использованиС Π΄ΠΎΠΌΠ΅Π½Π°, Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ обоснованныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. + + + Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ заботится ΠΎ бСзопасности, Domain Locker Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя встроСнныС инструмСнты для Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π΄ΠΎΠΌΠ΅Π½Π° ΠΈ прСдлоТСния ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², прСдприятий ΠΈ ИВ-спСциалистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ Π³ΠΈΠ³ΠΈΠ΅Π½Ρƒ Π΄ΠΎΠΌΠ΅Π½Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ возмоТности отслСТивания Π·Π°Ρ‚Ρ€Π°Ρ‚, позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ†Π΅Π½Ρ‹ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ расходы ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ€Ρ‹Π½ΠΎΡ‡Π½ΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ своих ΠΏΠΎΡ€Ρ‚Ρ„Π΅Π»Π΅ΠΉ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². + + + ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, настраиваСмый интСрфСйс Π² Ρ‚Π΅ΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π² соотвСтствии с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ прСдпочтСниями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. +developer: Alicia Sykes +website: https://domain-locker.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2633 +repo: https://github.com/Lissy93/domain-locker +support: https://github.com/Lissy93/domain-locker/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск содСрТит ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ исправлСния ошибок для локальной вСрсии, Π² Ρ‚ΠΎΠΌ числС: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСкрСтов Docker. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π΄ΠΎΠΌΠ΅Π½Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с массовым ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ символов Π²Π°Π»ΡŽΡ‚Ρ‹ Π² Ρ€Π°Π·Π½Ρ‹Ρ… локалях. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π΅ мСню для Π²Ρ‹Π±ΠΎΡ€Π° Ρ€Π°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… рСгистраторов. + - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° полная функция экспорта Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠΌΠ΅Π½Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ статистики рСгистратора, SSL ΠΈ хоста. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° использования Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Postgres. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Lissy93/domain-locker/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/domain-locker/docker-compose.yml b/domain-locker/docker-compose.yml new file mode 100644 index 0000000..25456da --- /dev/null +++ b/domain-locker/docker-compose.yml @@ -0,0 +1,43 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: domain-locker_app_1 + APP_PORT: 3000 + + app: + image: lissy93/domain-locker:0.1.4@sha256:c49d00d31d0bc948c01c046ce283a11af4bdc0742643ee1ab21675ce7f80da69 + user: "1000:1000" + restart: on-failure + environment: + DL_ENV_TYPE: selfHosted + DL_PG_HOST: domain-locker_postgres_1 + DL_PG_PORT: 5432 + DL_PG_USER: postgres + DL_PG_PASSWORD: domain-locker + DL_PG_NAME: domain_locker + depends_on: + - postgres + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + + postgres: + image: postgres:17.4@sha256:fe3f571d128e8efadcd8b2fde0e2b73ebab6dbec33f6bfe69d98c682c7d8f7bd + user: "1000:1000" + restart: on-failure + environment: + POSTGRES_DB: domain_locker + POSTGRES_USER: postgres + POSTGRES_PASSWORD: domain-locker + volumes: + - ${APP_DATA_DIR}/data/db_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 10s + timeout: 5s + retries: 5 diff --git a/donetick/data/app/.gitkeep b/donetick/data/app/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/donetick/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/donetick/data/config/selfhosted.yaml b/donetick/data/config/selfhosted.yaml new file mode 100644 index 0000000..3b8d916 --- /dev/null +++ b/donetick/data/config/selfhosted.yaml @@ -0,0 +1,25 @@ +name: "selfhosted" +is_done_tick_dot_com: false +is_user_creation_disabled: false + +database: + type: "sqlite" + migration: true + +jwt: + secret: "yYCBVjEKcrpEiTORFJX3K5TJ2dPbQhFJdZT4jyQPgvE=" + session_time: 168h + max_refresh: 168h + +server: + port: 2021 + read_timeout: 10s + write_timeout: 10s + rate_period: 60s + rate_limit: 300 + serve_frontend: true + +scheduler_jobs: + due_job: 30m + overdue_job: 3h + pre_due_job: 3h diff --git a/donetick/dfwebos-app.yml b/donetick/dfwebos-app.yml new file mode 100644 index 0000000..9591cc0 --- /dev/null +++ b/donetick/dfwebos-app.yml @@ -0,0 +1,53 @@ +manifestVersion: 1 +id: donetick +name: Donetick +tagline: Π£ΠΌΠ½Ρ‹ΠΉ способ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ Π΄ΠΎΠΌΡƒ +category: files +version: "0.1.75" +port: 8121 +description: >- + Donetick β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… Π΄Π΅Π» ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ обязанностСй. Он обСспСчиваСт Π³ΠΈΠ±ΠΊΡƒΡŽ систСму назначСния Π·Π°Π΄Π°Ρ‡ нСскольким ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… стратСгий Π²Ρ‹Π±ΠΎΡ€Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ случайноС распрСдСлСниС ΠΈΠ»ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° основС наимСньшСго количСства Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π—Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ настраиваСмых шаблонов повторСния, Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊ повсСднСвными Π΄Π΅Π»Π°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ΅Π½Π΅Π΅ частыми обязанностями. + + + ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ отслСТиваниС прогрСсса Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ интСгрируСтся с внСшними слуТбами ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Telegram ΠΈ Pushover, гарантируя, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π² курсС прСдстоящих ΠΈΠ»ΠΈ просрочСнных Π·Π°Π΄Π°Ρ‡. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Donetick ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ API, позволяя автоматичСски Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм. + + + Для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Donetick ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ систСму Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° (SSO) ΠΈ OpenID Connect (OIDC), Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ поставщиками удостовСрСний. Уникальной ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Π³ΠΎΠ² NFC, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ, просто сканируя Ρ‚Π΅Π³. Π―Ρ€Π»Ρ‹ΠΊΠΈ ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π·Π°Π΄Π°Ρ‡ Π΅Ρ‰Π΅ большС ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ, позволяя ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ эффСктивно Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΡ… срСди участников. + + + Благодаря ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ планирования ΠΈ совмСстного распрСдСлСния Π·Π°Π΄Π°Ρ‡ Donetick прСдоставляСт ΠΌΠΎΡ‰Π½ΠΎΠ΅ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для управлСния домашними ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹ΠΌΠΈ обязанностями. +developer: Donetick +website: https://donetick.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/4025 +repo: https://github.com/donetick/donetick +support: https://github.com/donetick/donetick/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ большой выпуск со мноТСством Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” благодаря Π²ΠΊΠ»Π°Π΄Ρƒ сообщСства появляСтся большС языков. + - Π˜ΡΡ‚ΠΎΡ€ΠΈΡ пСрСпланирования Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ отслСТиваСтся для Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ Π΄ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΡƒΡŽ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π·Π°Π΄Π°Ρ‡ΠΈ. + - Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступна Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ систСмС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ². + - На Π±ΠΎΠΊΠΎΠ²ΡƒΡŽ панСль Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая панСль Smart Insights для Π°Π½Π°Π»ΠΈΠ·Π° Π·Π°Π΄Π°Ρ‡ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + - Быстрый Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ «Доступно для мСня» ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Π²Π°ΠΌ ΠΈΠ»ΠΈ Π½Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π΅Π»Π° ΠΏΠΎ Π΄ΠΎΠΌΡƒ. + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ докумСнтация API ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Swagger. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ 30-сСкундный Π»ΡŒΠ³ΠΎΡ‚Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ рСдактирования. + - Π’Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Ρ‹ трСбования ΠΊ ΠΏΠ°Ρ€ΠΎΠ»ΡŽ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° максимальная Π΄Π»ΠΈΠ½Π° пароля Π΄ΠΎ 64 символов. + - Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ конфигурация отправитСля элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ конфигурация SMTP. + - Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ TaskCreated Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π»ΠΈΡ†Ρƒ, Π½Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ Π»ΠΈΡ†Ρƒ, ΠΌΠΎΠ³Π»Π° Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° основании ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΉ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° Β«ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ соблюдались для Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° простая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ API. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ кэша для статичСских рСсурсов. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/donetick/donetick. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/donetick/docker-compose.yml b/donetick/docker-compose.yml new file mode 100644 index 0000000..e47db54 --- /dev/null +++ b/donetick/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: donetick_app_1 + APP_PORT: 2021 + PROXY_AUTH_ADD: "false" + + app: + image: donetick/donetick:v0.1.75@sha256:5c207a86e5425052e9ffe5286f96f71babfe57337760d303a5fb56a856790d11 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/app:/donetick-data + - ${APP_DATA_DIR}/data/config:/config + environment: + - DT_ENV=selfhosted + - DT_SQLITE_PATH=/donetick-data/donetick.db diff --git a/downtify/dfwebos-app.yml b/downtify/dfwebos-app.yml new file mode 100644 index 0000000..90c4bfc --- /dev/null +++ b/downtify/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1 +id: downtify +category: media +name: Downtify +version: "2.2.0" +tagline: Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ Spotify с ΠΎΠ±Π»ΠΎΠΆΠΊΠΎΠΉ альбома ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ +description: >- + Downtify позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ, скопировав ссылку Spotify Π½Π° пСсню, альбом ΠΈ Ρ‚. Π΄. ПСсни Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ с YouTube вмСстС с ΠΎΠ±Π»ΠΎΠΆΠΊΠ°ΠΌΠΈ альбомов, тСкстами пСсСн ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ пСснях. + Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅! + + + **⚠️ Π’Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ источников ΠΌΡƒΠ·Ρ‹ΠΊΠΈ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² прилоТСния:** + + ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ нСсут ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° свои дСйствия ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡŽΡ€ΠΈΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ послСдствия. + ΠœΡ‹ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ нСсанкционированноС скачиваниС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ², Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… авторским ΠΏΡ€Π°Π²ΠΎΠΌ, ΠΈ Π½Π΅ нСсСм отвСтствСнности Π·Π° дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. +developer: Henrique SebastiΓ£o +dependencies: [] +repo: https://github.com/henriquesebastiao/downtify +port: 8789 +releaseNotes: >- + Π­Ρ‚Π° вСрсия Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² списков воспроизвСдСния M3U для списков воспроизвСдСния Spotify. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/henriquesebastiao/downtify/releases. +support: https://github.com/henriquesebastiao/downtify/issues +website: https://github.com/henriquesebastiao/downtify +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Henrique SebastiΓ£o +submission: https://github.com/getumbrel/dfwebos-apps/pull/2177 diff --git a/downtify/docker-compose.yml b/downtify/docker-compose.yml new file mode 100644 index 0000000..250a613 --- /dev/null +++ b/downtify/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: downtify_downtify_1 + APP_PORT: 8000 + + downtify: + image: ghcr.io/henriquesebastiao/downtify:2.2.0@sha256:d2429c3a66c357021d8c7d14b5eae5d0e3f4fcae3aceaf6e6c30dbfe41718bdd + stop_grace_period: 1m + volumes: + - ${DFWEBOS_ROOT}/data/storage/downloads/downtify:/downloads diff --git a/dumbpad/data/.gitkeep b/dumbpad/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/dumbpad/dfwebos-app.yml b/dumbpad/dfwebos-app.yml new file mode 100644 index 0000000..17fd4eb --- /dev/null +++ b/dumbpad/dfwebos-app.yml @@ -0,0 +1,41 @@ +manifestVersion: 1 +id: dumbpad +category: files +name: DumbPad +version: "1.0.4" +tagline: Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ с совмСстным Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π½Π΅Ρ‡Π΅Ρ‚ΠΊΠΈΠΌ поиском ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ просмотром ΡƒΡ†Π΅Π½ΠΎΠΊ. +description: >- + DumbPad β€” это минималистичный соврСмСнный Π±Π»ΠΎΠΊΠ½ΠΎΡ‚, созданный для скорости ΠΈ простоты. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· суСты ΠΈ сохраняСт Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ простых Ρ„Π°ΠΉΠ»ΠΎΠ². + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности + - Π£Π»ΡŒΡ‚Ρ€Π°-простоС минимальноС написаниС интСрфСйс с автосохранСниСм (ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ). + - Π’Π΅ΠΌΠ½Ρ‹ΠΉ/свСтлый Ρ€Π΅ΠΆΠΈΠΌ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ систСмных настроСк. + - Π€Π°ΠΉΠ»ΠΎΠ²ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅: Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ хранятся Π² Π²ΠΈΠ΄Π΅ простых Ρ„Π°ΠΉΠ»ΠΎΠ² .txt ΠΈ индСкса notepads.json. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ Markdown: Π±Π»ΠΎΠΊΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, сворачиваСмый ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ подсвСтка синтаксиса ΠΊΠΎΠ΄Π°. + - ΠŸΡ€ΡΠΌΡ‹Π΅ ссылки Π½Π° Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ URL-адрСса. + - НСчСткий поиск ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ содСрТимому. + + + ΠŸΠΎΡ‡Π΅ΠΌΡƒ DumbPad? + + + DumbPad ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½ΠΎ мСсто, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ быстрыС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, списки ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ ΠΈΠ»ΠΈ ΠΈΠ΄Π΅ΠΈ ΠΊΠΎΠ΄Π° Π±Π΅Π· Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи ΠΈΠ»ΠΈ тяТСлых инструмСнтов. + Он нСбольшой, быстрый ΠΈ создан для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваши Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π±Ρ‹Π»ΠΈ доступны ΠΈ ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹. +developer: DumbWareio +website: https://github.com/DumbWareio/DumbPad +repo: https://github.com/DumbWareio/DumbPad +support: https://github.com/DumbWareio/DumbPad/issues +port: 8255 +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3958 +releaseNotes: "" +dependencies: [] +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +permissions: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/dumbpad/docker-compose.yml b/dumbpad/docker-compose.yml new file mode 100644 index 0000000..6bfc658 --- /dev/null +++ b/dumbpad/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: dumbpad_web_1 + APP_PORT: "3000" + + web: + image: dumbwareio/dumbpad:1.0.4@sha256:03e4216d7842958287bccf6c51dde1c41735b35235844fb87c70b4443143ada6 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/app/data + environment: + SITE_TITLE: DumbPad + BASE_URL: http://$DEVICE_DOMAIN_NAME:3000 diff --git a/duplicati/data/.gitkeep b/duplicati/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/duplicati/dfwebos-app.yml b/duplicati/dfwebos-app.yml new file mode 100644 index 0000000..d79e690 --- /dev/null +++ b/duplicati/dfwebos-app.yml @@ -0,0 +1,61 @@ +manifestVersion: 1 +id: duplicati +name: Duplicati +tagline: Π₯Ρ€Π°Π½ΠΈΡ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ΅. +category: files +version: "v2.3.0.1_stable_2026-04-24" +port: 38476 +description: >- + Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ свой собствСнный сСрвСр ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² DFWebOS Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ! + + + 🧩 Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ + + БСспрСпятствСнно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со стандартными ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ FTP, SSH ΠΈ WebDAV, Π° Ρ‚Π°ΠΊΠΆΠ΅ с ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ спСктром популярных сСрвисов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Amazon S3, OneDrive, Google Drive, Rackspace Cloud Files, HubiC, Backblaze (B2), Amazon Cloud Drive (AmzCD), Swift / OpenStack, WebDAV, SSH (SFTP), FTP, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅! + + + ⏲️ АвтоматичСскоС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ + + Π’Ρ‹ сами Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ часто Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСзопасныС Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ всСх Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… Π²Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ². + + + πŸ›‘οΈ БСзопасно ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ + + ΠœΡ‹ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ относимся ΠΊ бСзопасности Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ стандарт ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ AES-256, ΠΌΡ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ваша ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ останСтся Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ ΠΎΡ‚ любого нСсанкционированного доступа. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ GPG, обСспСчивая Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π²Π°ΡˆΠΈΡ… Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ. + + + πŸ–₯️ Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс + + ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ интСрфСйс ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Π΅ элСмСнты управлСния Ρƒ вас ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ. +developer: Duplicati +website: https://duplicati.com/ +submitter: Sharknoon +submission: https://github.com/getumbrel/dfwebos-apps/pull/1179 +repo: https://github.com/duplicati/duplicati +support: https://forum.duplicati.com/ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ выпуск исправлСния для Duplicati 2.3.0.1, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ нСсколько ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… послС выпуска 2.3.0.0. + + + НовыС исправлСния Π² вСрсии 2.3.0.1: + - Π’ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ списки поставщиков S3 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π΅Π³ΠΈΠΎΠ½Ρ‹ Hetzner ΠΈ DigitalOcean. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° со Π·Π½Π°ΠΊΠ°ΠΌΠΈ Π΄ΠΎΠ»Π»Π°Ρ€Π° Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡ‚Ρ‹Π²Π°Π»ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ использованиС диска ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° восстановлСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ прогрСссС ΠΏΡ€ΠΈ использовании Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² назначСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ†ΠΈΠΊΠ» автообновлСния Π² интСрфСйс. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с сохранСниСм настроСк ΠΈΠ· интСрфСйс Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… сцСнариях. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пустыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³Π»ΠΈ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ восстановлСнныС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠΌΠ΅Ρ‡Π°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ нСсогласованныС. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°ΠΌ. + - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠ²ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах назначСния. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/duplicati/duplicati/releases. +dependencies: [] +permissions: + - STORAGE_DOWNLOADS +path: "" +deterministicPassword: true diff --git a/duplicati/docker-compose.yml b/duplicati/docker-compose.yml new file mode 100644 index 0000000..cea1ed0 --- /dev/null +++ b/duplicati/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: duplicati_duplicati_1 + APP_PORT: 8200 + PROXY_AUTH_ADD: "false" + + duplicati: + image: duplicati/duplicati:2.3.0.1@sha256:c5cc20fc744cce2957a61cb0b331ecdf333c9fcf28281f96cc587e11ed4536af + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + - ${DFWEBOS_ROOT}/data/storage:/dfwebos + environment: + DUPLICATI__WEBSERVICE_PORT: "8200" + DUPLICATI__WEBSERVICE_INTERFACE: "any" + DUPLICATI__WEBSERVICE_PASSWORD: "${APP_PASSWORD}" + DUPLICATI__WEBSERVICE_ALLOWED_HOSTNAMES: "*" diff --git a/electrs/data/electrs/.gitkeep b/electrs/data/electrs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/electrs/dfwebos-app.yml b/electrs/dfwebos-app.yml new file mode 100644 index 0000000..e820cd4 --- /dev/null +++ b/electrs/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1.1 +id: electrs +category: bitcoin +name: Electrs +version: "0.11.0" +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΈ эффСктивный сСрвСр Electrum +description: > + ЗапуститС свой Π»ΠΈΡ‡Π½Ρ‹ΠΉ сСрвСр Electrum ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свой кошСлСк, совмСстимый с Electrum, + Π²ΠΊΠ»ΡŽΡ‡Π°Ρ BitBoxApp, BlueWallet, Electrum Wallet (Android ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€), Nunchuk + (ДСсктоп), Phoenix ΠΈ Sparrow Wallet вмСсто использования сторонних + Π‘Π΅Ρ€Π²Π΅Ρ€ Π­Π»Π΅ΠΊΡ‚Ρ€ΡƒΠΌ. + + + Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Electrs ΠΎΡ‚ Π ΠΎΠΌΠ°Π½Π° Π—Π΅ΠΉΠ΄Π΅. + + + ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ DFWebOS. +developer: DFWebOS +website: https://dfwebos.com/ +dependencies: + - bitcoin +repo: https://github.com/getumbrel/umbrel-electrs +support: https://community.getumbrel.com/c/bitcoin-and-lightning +port: 2102 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultPassword: "" +releaseNotes: > + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ lectrs Π΄ΠΎ 0.11.0. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску Elects доступны ΠΏΠΎ адрСсу https://github.com/romanz/electrs/blob/master/RELEASE-NOTES.md#0110-nov-16-2025. +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/pull/242 +backupIgnore: + - data/electrs/db/bitcoin diff --git a/electrs/docker-compose.yml b/electrs/docker-compose.yml new file mode 100644 index 0000000..b9f5165 --- /dev/null +++ b/electrs/docker-compose.yml @@ -0,0 +1,54 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_ELECTRS_IP + APP_PORT: 3006 + + app: + image: getumbrel/umbrel-electrs:v1.0.4@sha256:fa2fd04f4c7515aad84f21640f5feab1417bc18e20bc65cda7ed97e59b8458db + depends_on: + - electrs + restart: on-failure + environment: + ELECTRUM_HIDDEN_SERVICE: "${APP_ELECTRS_RPC_HIDDEN_SERVICE}" + ELECTRUM_LOCAL_SERVICE: "${DEVICE_DOMAIN_NAME}" + ELECTRS_HOST: "${APP_ELECTRS_NODE_IP}" + BITCOIN_HOST: "${APP_BITCOIN_NODE_IP}" + RPC_USER: "${APP_BITCOIN_RPC_USER}" + RPC_PASSWORD: "${APP_BITCOIN_RPC_PASS}" + RPC_PORT: "${APP_BITCOIN_RPC_PORT}" + networks: + default: + ipv4_address: $APP_ELECTRS_IP + + electrs: + image: getumbrel/electrs:v0.11.0@sha256:0a2c6f573abfd8d724651c6ba1c1f3a9c740219c1cf0f4468043c3342170d8a5 + restart: always + environment: + ELECTRS_LOG_FILTERS: "INFO" + ELECTRS_NETWORK: "${APP_BITCOIN_NETWORK_ELECTRS}" + ELECTRS_DAEMON_RPC_ADDR: "${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}" + ELECTRS_DAEMON_P2P_ADDR: "${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_P2P_WHITEBIND_PORT-${APP_BITCOIN_P2P_PORT}}" + ELECTRS_ELECTRUM_RPC_ADDR: "0.0.0.0:${APP_ELECTRS_NODE_PORT}" + ELECTRS_SERVER_BANNER: "DFWebOS Electrs (${APP_VERSION})" + ELECTRS_DB_DIR: "/data/db" + volumes: + - "${APP_BITCOIN_DATA_DIR}:/data/.bitcoin:ro" + - "${APP_DATA_DIR}/data/electrs:/data" + ports: + - "${APP_ELECTRS_NODE_PORT}:${APP_ELECTRS_NODE_PORT}" + networks: + default: + ipv4_address: $APP_ELECTRS_NODE_IP + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" diff --git a/electrs/exports.sh b/electrs/exports.sh new file mode 100644 index 0000000..69b8c1b --- /dev/null +++ b/electrs/exports.sh @@ -0,0 +1,7 @@ +export APP_ELECTRS_IP="10.21.22.4" +export APP_ELECTRS_NODE_IP="10.21.21.10" + +export APP_ELECTRS_NODE_PORT="50001" + +rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rpc/hostname" +export APP_ELECTRS_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" \ No newline at end of file diff --git a/electrs/hooks/pre-start b/electrs/hooks/pre-start new file mode 100755 index 0000000..1e8dde5 --- /dev/null +++ b/electrs/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Electrs Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° скрытая слуТба Tor RPC Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π°. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-rpc/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach electrs +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/electrs/torrc.template b/electrs/torrc.template new file mode 100644 index 0000000..5b6c699 --- /dev/null +++ b/electrs/torrc.template @@ -0,0 +1,3 @@ +# Π­Π»Π΅ΠΊΡ‚Ρ€Ρ‹ RPC Бкрытая слуТба +HiddenServiceDir /data/app-$APP_ID-rpc +HiddenServicePort $APP_ELECTRS_NODE_PORT $APP_ELECTRS_NODE_IP:$APP_ELECTRS_NODE_PORT \ No newline at end of file diff --git a/electrumx/data/electrumx/.gitkeep b/electrumx/data/electrumx/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/electrumx/dfwebos-app.yml b/electrumx/dfwebos-app.yml new file mode 100644 index 0000000..65189a8 --- /dev/null +++ b/electrumx/dfwebos-app.yml @@ -0,0 +1,39 @@ +manifestVersion: 1.1 +id: electrumx +implements: + - electrs +category: bitcoin +name: ElectrumX +version: "1.16.0-patch.2" +tagline: Π›Π΅Π³ΠΊΠΈΠΉ сСрвСр Electrum +description: > + ЗапуститС свой Π»ΠΈΡ‡Π½Ρ‹ΠΉ сСрвСр Electrum ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свой кошСлСк, совмСстимый с Electrum, + Π²ΠΊΠ»ΡŽΡ‡Π°Ρ BitBoxApp, BlueWallet, Electrum Wallet (Android ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€), Nunchuk + (ДСсктоп), Phoenix ΠΈ Sparrow Wallet вмСсто использования сторонних + Π‘Π΅Ρ€Π²Π΅Ρ€ Π­Π»Π΅ΠΊΡ‚Ρ€ΡƒΠΌ. + + + Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ElectrumX ΠΎΡ‚ Вомаса Π€ΠΎΠ³Ρ‚Π»ΠΈΠ½Π°. + + + ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ DFWebOS. +developer: DFWebOS +website: https://dfwebos.com/ +dependencies: + - bitcoin +repo: https://github.com/getumbrel/umbrel-electrumx +support: https://community.getumbrel.com/c/bitcoin-and-lightning +port: 1999 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultPassword: "" +releaseNotes: > + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ добавляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π² umbrelOS 1.5. +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/1813 +backupIgnore: + - data/electrumx/meta + - data/electrumx/hist diff --git a/electrumx/docker-compose.yml b/electrumx/docker-compose.yml new file mode 100644 index 0000000..103a292 --- /dev/null +++ b/electrumx/docker-compose.yml @@ -0,0 +1,53 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_ELECTRUMX_IP + APP_PORT: 3007 + + app: + image: ghcr.io/getumbrel/umbrel-electrumx:1.0.0@sha256:2352ce668f722118e248c7b4458a6ea4509e5312e3cf1ee3963ddea35d395c09 + depends_on: + - electrumx + restart: on-failure + environment: + ELECTRUM_HIDDEN_SERVICE: "${APP_ELECTRUMX_RPC_HIDDEN_SERVICE}" + ELECTRUM_LOCAL_SERVICE: "${DEVICE_DOMAIN_NAME}" + ELECTRUM_HOST: "${APP_ELECTRUMX_NODE_IP}" + ELECTRUM_PUBLIC_CONNECTION_PORT: "${APP_ELECTRUMX_PUBLIC_CONNECTION_PORT}" + ELECTRUM_RPC_PORT: "${APP_ELECTRUMX_RPC_PORT}" + BITCOIN_HOST: "${APP_BITCOIN_NODE_IP}" + RPC_USER: "${APP_BITCOIN_RPC_USER}" + RPC_PASSWORD: "${APP_BITCOIN_RPC_PASS}" + RPC_PORT: "${APP_BITCOIN_RPC_PORT}" + networks: + default: + ipv4_address: $APP_ELECTRUMX_IP + + electrumx: + image: lukechilds/electrumx:v1.16.0@sha256:2949784536f8f85af229004e12e5b5c3a1d7428918a492f77b4e958035c2ae2a + restart: always + init: true + environment: + DAEMON_URL: "http://${APP_BITCOIN_RPC_USER}:${APP_BITCOIN_RPC_PASS}@${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}" + COIN: "BitcoinSegwit" + # https://github.com/spesmilo/electrumx/blob/master/electrumx/lib/coins.py + NET: $APP_ELECTRUMX_BITCOIN_NETWORK + volumes: + - "${APP_DATA_DIR}/data/electrumx:/data" + ports: + - "${APP_ELECTRUMX_PUBLIC_CONNECTION_PORT}:${APP_ELECTRUMX_NODE_PORT}" + networks: + default: + ipv4_address: $APP_ELECTRUMX_NODE_IP + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" diff --git a/electrumx/exports.sh b/electrumx/exports.sh new file mode 100644 index 0000000..6a42433 --- /dev/null +++ b/electrumx/exports.sh @@ -0,0 +1,30 @@ +export APP_ELECTRUMX_IP="10.21.22.199" +export APP_ELECTRUMX_NODE_IP="10.21.21.199" + +export APP_ELECTRUMX_NODE_PORT="50001" +export APP_ELECTRUMX_PUBLIC_CONNECTION_PORT="50003" +export APP_ELECTRUMX_RPC_PORT="8000" + +# ElectrumX NET ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚: mainnet, testnet, Signet, regtest, testnet4 +# Electrumx 1.16.0 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Signet ΠΈΠ»ΠΈ TestNet4 (ΠΎΠ΄Π½Π°ΠΊΠΎ послСдниС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚) +export APP_ELECTRUMX_BITCOIN_NETWORK=$APP_BITCOIN_NETWORK +if [[ "${BITCOIN_NETWORK}" == "testnet3" ]]; then + export APP_ELECTRUMX_BITCOIN_NETWORK="testnet" +fi + +for var in \ + IP \ + NODE_IP \ + NODE_PORT \ +; do + electrs_var="APP_ELECTRS_${var}" + electrumx_var="APP_ELECTRUMX_${var}" + if [ -n "${!electrumx_var-}" ]; then + export "$electrs_var"="${!electrs_var:=${!electrumx_var}}" + else + echo "Warning: $electrumx_var is unset or empty" + fi +done + +rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-tpc/hostname" +export APP_ELECTRUMX_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" diff --git a/electrumx/hooks/pre-start b/electrumx/hooks/pre-start new file mode 100755 index 0000000..ea8687a --- /dev/null +++ b/electrumx/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ElectrumX Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° скрытая слуТба Tor RPC Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π°. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-tpc/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach electrumx +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/electrumx/torrc.template b/electrumx/torrc.template new file mode 100644 index 0000000..8ce6933 --- /dev/null +++ b/electrumx/torrc.template @@ -0,0 +1,4 @@ +# ElectrumX RPC Бкрытая слуТба +HiddenServiceDir /data/app-$APP_ID-tpc +HiddenServicePort $APP_ELECTRUMX_NODE_PORT $APP_ELECTRUMX_NODE_IP:$APP_ELECTRUMX_NODE_PORT +HiddenServicePort $APP_ELECTRUMX_PUBLIC_CONNECTION_PORT $APP_ELECTRUMX_NODE_IP:$APP_ELECTRUMX_NODE_PORT \ No newline at end of file diff --git a/element/dfwebos-app.yml b/element/dfwebos-app.yml new file mode 100644 index 0000000..db27c0b --- /dev/null +++ b/element/dfwebos-app.yml @@ -0,0 +1,62 @@ +manifestVersion: 1 +id: element +category: social +name: Element +version: "1.12.15" +tagline: ГлянцСвый ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Matrix, совмСстимый с Synapse. +description: >- + Element β€” это Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ прилоТСния для ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями. Π’Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅, Π³Π΄Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ваши сообщСния, Ρ‡Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅. + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Synapse, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌΡƒ Π½Π° вашСм DFWebOS, ΠΈΠ»ΠΈ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π΄ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΌΡƒ сСрвСру Matrix. + + + - Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ доступ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ сСти ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΊΠ΅ΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Element обСспСчиваСт Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ бСзопасности, добавляя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ устройства с пСрСкрСстной подписью ΠΊ сквозному ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + + - Π‘Π°ΠΌΠΎΠ΅ Π»ΡƒΡ‡ΡˆΠ΅Π΅ сквозноС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° устройства с пСрСкрСстной подписью Element ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, ΠΊΡ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π΅, ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ сообщСния - Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠΎΠ΄ΡΠ»ΡƒΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΈΠ»ΠΈ самозванцСв. + + - Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Element ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚; Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π² сСти Matrix, ΠΎΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊΠΎ всСм Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям Π½Π° Π±Π°Π·Π΅ Matrix, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹ΠΌ систСмам. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π² Element, ΠΎΠ±Ρ‰Π°ΡΡΡŒ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈ сСмьСй Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… прилоТСниях. + + - Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅. Полная ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, свобода Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ настройки ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². + + + πŸ› οΈ Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ + + + Π‘Π°ΠΌΡ‹ΠΉ простой способ Π½Π°Ρ‡Π°Ρ‚ΡŒ β€” ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Synapse Π½Π° свой DFWebOS. Synapse β€” это домашний сСрвСр Matrix, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится вся ваша личная история Ρ‡Π°Ρ‚ΠΎΠ² ΠΈ информация ΠΎΠ± ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + + + Когда Π²Ρ‹ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ΡΡŒ ΠΈΠ»ΠΈ Π²Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² систСму Ρ‡Π΅Ρ€Π΅Π· Element, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ адрСс домашнСго сСрвСра, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚Π΅, со значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Matrix.org Π½Π° http://dfwebos.local:8008 для локального доступа. + + + Для бСспСрСбойного ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ Element Π²Π΄Π°Π»ΠΈ ΠΎΡ‚ Π΄ΠΎΠΌΠ°, просто установитС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Tailscale Π½Π° свой DFWebOS ΠΈ устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для доступа ΠΊ Element, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ http://umbrel:8008 Π² качСствС адрСса вашСго сСрвСра. +developer: New Vector Ltd +website: https://element.io +dependencies: [] +repo: https://github.com/vector-im/element-web +support: https://matrix.to/#/#element-web:matrix.org +port: 8088 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/commit/bb10e17a6256db19767af7eaeb93d665ac275b24 +releaseNotes: >- + НСкоторыС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ отслСТиваниС Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра URL-адрСсов. + - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ складныС ΠΏΠ°Π½Π΅Π»ΠΈ для Π½ΠΎΠ²ΠΎΠ³ΠΎ списка ΠΊΠΎΠΌΠ½Π°Ρ‚ с ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. + - ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ списка ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ послСднСй установлСнной ΡˆΠΈΡ€ΠΈΠ½Ρ‹. + - Бпрятаны ΠΈΠΌΠ΅Π½Π° Π·Π°Π±Π°Π½Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π·Π° спойлСром. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ входящий запрос Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ Π½Π°Π΄ запросом Β«ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅Β». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ список ΠΊΠΎΠΌΠ½Π°Ρ‚, часто ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°Ρ‡ΠΊΠΈ для Π·Π²ΠΎΠ½ΠΊΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ присутствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Π±Π΅Π· кСша. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ смайликов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠΊΠΎΠ½ΠΎΠΊ Π·Π½Π°Ρ‡ΠΊΠΎΠ² Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. + - ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ пространства вмСсто Β«ΠŸΡƒΡΡ‚Π°Ρ ΠΊΠΎΠΌΠ½Π°Ρ‚Π°Β» послС создания пространства. + β€” Π£Π΄Π°Π»Π΅Π½Ρ‹ эфСмСрныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса ΠΈΠ· URI пСрСнаправлСния OIDC. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/vector-im/element-web/releases. \ No newline at end of file diff --git a/element/docker-compose.yml b/element/docker-compose.yml new file mode 100644 index 0000000..47574bd --- /dev/null +++ b/element/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: element_web_1 + APP_PORT: 80 + + web: + image: vectorim/element-web:v1.12.15@sha256:c7fa40b5ba3891f8af3ce63da0818f457c1802a9ee4d2f5e46a9df36a2388eed + user: "nginx:nginx" + restart: on-failure + stop_grace_period: 1m diff --git a/elements/data/.gitkeep b/elements/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/elements/dfwebos-app.yml b/elements/dfwebos-app.yml new file mode 100644 index 0000000..be591b1 --- /dev/null +++ b/elements/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1.1 +id: elements +category: bitcoin +name: Elements Core +version: "23.3.0" +tagline: ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Liquid Network +description: >- + Elements β€” это рСализация ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для запуска Liquid + Network, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ уровня 2 Bitcoin, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ быстрый ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ расчСт ΠΈ + выпуск Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ стСйблкоины, Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ бСзопасности ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ финансовыС Π°ΠΊΡ‚ΠΈΠ²Ρ‹. + инструмСнты Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Bitcoin. + + + Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ 6 Π“Π‘ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ΠŸΠ΅Ρ€Π΅Π΄ установкой ΠΈ запуском прилоТСния Π²Π°ΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ вашС устройство соотвСтствуСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ трСбованиям. +releaseNotes: >- + Π’ этом выпускС ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ элСмСнты вСрсии 23.2.7 Π΄ΠΎ 23.3.0, Π° Ρ‚Π°ΠΊΠΆΠ΅ содСрТатся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Bitcoin, Elements Π½Π΅ мСняСт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ кошСлька ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ Π½Π° дСскрипторы, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, привязки ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹) ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΊΠΎΡˆΠ΅Π»ΡŒΠΊΠ°Ρ…. + + + + Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± этом ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΏΠΎΠ»Π½Ρ‹Ρ… примСчаниях ΠΊ выпуску. + доступСн ΠΏΠΎ адрСсу https://github.com/ElementsProject/elements/releases +developer: Elements Core Developers +website: https://elementsproject.org +dependencies: +- bitcoin +repo: https://github.com/ElementsProject/elements +support: https://t.me/liquid_community +port: 3042 +gallery: +- 1.jpg +- 2.jpg +- 3.jpg +path: '' +deterministicPassword: false +torOnly: false +submitter: Marco Argentieri +submission: https://github.com/getumbrel/umbrel/pull/1319 diff --git a/elements/docker-compose.yml b/elements/docker-compose.yml new file mode 100644 index 0000000..cf87958 --- /dev/null +++ b/elements/docker-compose.yml @@ -0,0 +1,70 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: elements_web_1 + APP_PORT: 8080 + + node: + image: ghcr.io/vulpemventures/elements:23.3.0@sha256:290adece84700db7522998cd5031839c3fb57cf549e8d23fd59c5196188a0db0 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + ports: + - $APP_ELEMENTS_NODE_RPC_PORT:$APP_ELEMENTS_NODE_RPC_PORT # JSONRPC + - $APP_ELEMENTS_NODE_P2P_PORT:$APP_ELEMENTS_NODE_P2P_PORT # P2P PORT + volumes: + - ${APP_DATA_DIR}/data:/home/elements/.elements + command: + - -listen=0 + - -txindex=1 + - -trim_headers=1 + # Current Elements Core Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ >8 Π“Π‘ RAM для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² Π²ΠΎ врСмя IBD. + # На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΡ‹ пропускаСм ΠΈΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π±Π»ΠΎΠΊΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ нас Π½Π΅Ρ‚ возмоТности ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ памяти. + - -assumevalid=546a756e0238e8c5c2c8bee43f0395740519f96aaee5994d05ef6569ce2d0821 + - -validatepegin=1 + - -fallbackfee=0.000001 + # ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ сСти Π‘ΠΈΡ‚ΠΊΠΎΠΉΠ½ + - -mainchainrpchost=$APP_BITCOIN_NODE_IP + - -mainchainrpcport=$APP_BITCOIN_RPC_PORT + - -mainchainrpcuser=$APP_BITCOIN_RPC_USER + - -mainchainrpcpassword=$APP_BITCOIN_RPC_PASS + # Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ RPC + - -rpcuser=elements + - -rpcpassword=$APP_PASSWORD + - -rpcbind=0.0.0.0 # can we do better here? + - -rpcallowip=0.0.0.0/0 # can we do better here? + - -rpcport=$APP_ELEMENTS_NODE_RPC_PORT + # P2P + - -port=$APP_ELEMENTS_NODE_P2P_PORT + - -blockfilterindex=1 + - -peerblockfilters=1 + # Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ созданиС CT со скидкой Π² ​​основной сСти. + - -creatediscountct=1 + + web: + image: ghcr.io/tiero/elements-web:v0.0.3@sha256:b80dc0df2a4693668a97b874aad6d0a8d3239d03f4d05b4342600166934d0b87 + user: "1000:1000" + depends_on: + - node + restart: on-failure + environment: + RPC_USER: elements + RPC_PASS: $APP_PASSWORD + RPC_PORT: $APP_ELEMENTS_NODE_RPC_PORT + RPC_HOST: elements_node_1 + P2P_PORT: $APP_ELEMENTS_NODE_P2P_PORT + # Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ + REMOTE_RPC_HOST: $APP_ELEMENTS_RPC_HIDDEN_SERVICE + REMOTE_P2P_HOST: $APP_ELEMENTS_P2P_HIDDEN_SERVICE + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" diff --git a/elements/exports.sh b/elements/exports.sh new file mode 100644 index 0000000..f7c0eb6 --- /dev/null +++ b/elements/exports.sh @@ -0,0 +1,8 @@ +export APP_ELEMENTS_NODE_RPC_PORT="7041" +export APP_ELEMENTS_NODE_P2P_PORT="18332" + +local app_elements_rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rpc/hostname" +local app_elements_p2p_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-p2p/hostname" + +export APP_ELEMENTS_RPC_HIDDEN_SERVICE="$(cat "${app_elements_rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" +export APP_ELEMENTS_P2P_HIDDEN_SERVICE="$(cat "${app_elements_p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" \ No newline at end of file diff --git a/elements/hooks/pre-start b/elements/hooks/pre-start new file mode 100755 index 0000000..be5030c --- /dev/null +++ b/elements/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Elements Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ скрытыС слуТбы Tor RPC ΠΈ P2P. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-p2p/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach node +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/elements/torrc.template b/elements/torrc.template new file mode 100644 index 0000000..fe699d2 --- /dev/null +++ b/elements/torrc.template @@ -0,0 +1,7 @@ +# Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ RPC Бкрытая слуТба +HiddenServiceDir /data/app-$APP_ID-rpc +HiddenServicePort $APP_ELEMENTS_NODE_RPC_PORT elements_node_1:$APP_ELEMENTS_NODE_RPC_PORT + +# элСмСнты p2p скрытая услуга +HiddenServiceDir /data/app-$APP_ID-p2p +HiddenServicePort $APP_ELEMENTS_NODE_P2P_PORT elements_node_1:$APP_ELEMENTS_NODE_P2P_PORT \ No newline at end of file diff --git a/emby/dfwebos-app.yml b/emby/dfwebos-app.yml index c43af01..6ac656e 100644 --- a/emby/dfwebos-app.yml +++ b/emby/dfwebos-app.yml @@ -21,7 +21,7 @@ description: >- Подводя ΠΈΡ‚ΠΎΠ³, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Emby β€” идСальноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своСй ΠΌΠ΅Π΄ΠΈΠ°Ρ‚Π΅ΠΊΠΎΠΉ ΠΈ бСспрСпятствСнно Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ устройства, сохраняя ΠΏΡ€ΠΈ этом ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ срСду. developer: Emby LLC website: https://emby.media/ -submitter: dennysubke +submitter: DFofanov submission: https://github.dfv24.com/fofanov.dmitry/DFWebOS-Apps/pulls repo: https://github.com/MediaBrowser/Emby support: https://github.com/MediaBrowser/Emby/issues diff --git a/emby/docker-compose.yml b/emby/docker-compose.yml index 77c6c14..d5f82e7 100644 --- a/emby/docker-compose.yml +++ b/emby/docker-compose.yml @@ -10,7 +10,7 @@ services: server: image: linuxserver/emby:version-4.9.3.0@sha256:dbd1a3c83205445d13aad13362bdfa8478a6912541a1e32d654c550baf494e5a environment: - TZ: Europe/Berlin + TZ: Europe/Moscow UID: 1000 GID: 1000 restart: on-failure diff --git a/enclosed/data/.gitkeep b/enclosed/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/enclosed/dfwebos-app.yml b/enclosed/dfwebos-app.yml new file mode 100644 index 0000000..3bceb17 --- /dev/null +++ b/enclosed/dfwebos-app.yml @@ -0,0 +1,46 @@ +manifestVersion: 1 +id: enclosed +category: files +name: Enclosed +version: "1.16.0" +tagline: ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ бСзопасныС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ +description: >- + Enclosed β€” это минималистичноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈ бСзопасных Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ просто Π½ΡƒΠΆΠ΅Π½ простой способ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сообщСний, Enclosed прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс с Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌΠΈ функциями бСзопасности, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. + + + НазваниС Enclosed Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΈΠ΄Π΅Π΅ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ваши Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π² бСзопасности, ΠΊΠ°ΠΊ Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• πŸ› οΈ + + Enclosed ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ собствСнныС криптографичСскиС API-интСрфСйсы Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Π­Ρ‚ΠΈ API доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² бСзопасном контСкстС (HTTPS). + Если Π²Ρ‹ запускаСтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π½Π΅Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌ контСкстС (HTTP), Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. + + + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ https с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния Cloudflare Tunnel, доступного Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΏΠΎ настройкС туннСля ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://github.com/Radiokot/dfwebos-cloudflared/wiki/How-to-set-up-Cloudflare-Tunnel-on-your-DFWebOS +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок. + + + Π—Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ измСнСния: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ индонСзийскиС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹. + - ОбновлСн Π²ΡŒΠ΅Ρ‚Π½Π°ΠΌΡΠΊΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° настроСк ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ сбросС состояния. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π±Π΅Π· срока дСйствия. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/CorentinTh/enclosed/releases. +developer: Corentin Thomasset +website: https://enclosed.cc/ +dependencies: [] +repo: https://github.com/CorentinTh/enclosed +support: https://github.com/CorentinTh/enclosed/discussions +port: 8788 +gallery: +- 1.jpg +- 2.jpg +- 3.jpg +path: "" +submitter: Zoobdude +submission: https://github.com/getumbrel/dfwebos-apps/pull/1563 diff --git a/enclosed/docker-compose.yml b/enclosed/docker-compose.yml new file mode 100644 index 0000000..3f97403 --- /dev/null +++ b/enclosed/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: enclosed_web_1 + APP_PORT: 8787 + + web: + image: corentinth/enclosed:1.16.0-rootless@sha256:0631baee489b974cf16ffe3884c814e7bcc75df7bd36662b8ded76443b768d06 + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/app/.data diff --git a/endurain/data/app/activity_files/bulk_import/.gitkeep b/endurain/data/app/activity_files/bulk_import/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/endurain/data/app/activity_files/processed/.gitkeep b/endurain/data/app/activity_files/processed/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/endurain/data/app/activity_media/.gitkeep b/endurain/data/app/activity_media/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/endurain/data/app/server_images/.gitkeep b/endurain/data/app/server_images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/endurain/data/app/user_images/.gitkeep b/endurain/data/app/user_images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/endurain/data/db/.gitkeep b/endurain/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/endurain/data/logs/.gitkeep b/endurain/data/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/endurain/dfwebos-app.yml b/endurain/dfwebos-app.yml new file mode 100644 index 0000000..5cee9e0 --- /dev/null +++ b/endurain/dfwebos-app.yml @@ -0,0 +1,59 @@ +manifestVersion: 1.1 +id: endurain +name: Endurain +tagline: ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ фитнСса, с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ +category: social +version: "0.17.6" +port: 8865 +description: >- + EndurainΒ β€” это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ слуТба отслСТивания фитнСса, прСдназначСнная для прСдоставлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ контроля Π½Π°Π΄ своими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ срСдой хостинга. + + + Он ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Strava, Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ настройку. + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + - **Π‘Π΅ΡΡˆΠΎΠ²Π½ΠΎΠ΅ отслСТиваниС активности**. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°, массовой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (Ρ„Π°ΠΉΠ»Ρ‹ .gpx ΠΈ .fit) ΠΈΠ»ΠΈ автоматичСской синхронизации со Strava ΠΈ Garmin Connect. + + - **ПолноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ снаряТСниСм**. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ использованиС ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСй ΠΎΠ±ΡƒΠ²ΠΈ, вСлосипСдов, Π³ΠΈΠ΄Ρ€ΠΎΠΊΠΎΡΡ‚ΡŽΠΌΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. + + - **ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ информационная панСль**. ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΠΉΡ‚Π΅ Π»Π΅Π½Ρ‚Ρ‹ активности, Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ/Π΅ΠΆΠ΅ΠΌΠ΅ΡΡΡ‡Π½ΡƒΡŽ статистику ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ прогрСсса. + + - **Π‘ΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ связи**. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ, Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ достиТСниями ΠΈ создавайтС своС фитнСс-сообщСство. + + - **НастраиваСмый интСрфСйс**. ΠΠ°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ многоязычной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, Ρ‚Π΅ΠΌΠ½Ρ‹ΠΌΠΈ/свСтлыми Ρ‚Π΅ΠΌΠ°ΠΌΠΈ ΠΈ интСрфСйсами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊ ролям администратора ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + + - **КомплСксноС отслСТиваниС Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ** - Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ составС Ρ‚Π΅Π»Π° ΠΈ записывайтС измСрСния вСса. + + - **ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ**. УправляйтС Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ ваши дСйствия, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³ΠΈΠ±ΠΊΠΈΡ… настроСк ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + - **Бторонняя интСграция**. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ своим Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌ фитнСс-прилоТСниям для ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°. +backupIgnore: + - data/logs/* +developer: JoΓ£o VitΓ³ria Silva +website: https://docs.endurain.com/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/2764 +repo: https://github.com/joaovitoriasilva/endurain +support: https://github.com/joaovitoriasilva/endurain/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "admin" +defaultPassword: "admin" +dependencies: [] +releaseNotes: >- + ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ваши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ сСансы Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ придСтся ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΅Ρ‰Π΅ Ρ€Π°Π·. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ OAuth2/SSO, Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с систСмным Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ вСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ сохранялся ΠΈ Π½Π΅ отобраТался Π² Π²ΠΈΠ΄Π΅ дСсятичного значСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния кадСнса. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ страница активности Π½Π΅ обновлялась ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ дСйствия ΠΈΠ· Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/joaovitoriasilva/endurain/releases. +path: "" diff --git a/endurain/docker-compose.yml b/endurain/docker-compose.yml new file mode 100644 index 0000000..2ce4bc9 --- /dev/null +++ b/endurain/docker-compose.yml @@ -0,0 +1,46 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: endurain_app_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + + app: + image: ghcr.io/endurain-project/endurain:v0.17.6@sha256:d18d18d69b0c280db85c6f91172b678fcfc58b081e835aa6284b63b0fb87e023 + environment: + UID: "1000" + GID: "1000" + DB_TYPE: postgres + DB_HOST: endurain_db_1 + DB_PORT: 5432 + DB_PASSWORD: endurain + SECRET_KEY: ${APP_PASSWORD} + BEHIND_PROXY: "true" + env_file: + - ${APP_DATA_DIR}/settings.env + volumes: + - ${APP_DATA_DIR}/data/app:/app/backend/data + - ${APP_DATA_DIR}/data/logs:/app/backend/logs + depends_on: + db: + condition: service_healthy + restart: on-failure + + db: + image: postgres:17.4@sha256:4aed4b0525233308fc5de1b8d47f92326460d598dc5f004d14b41f183360b4e9 + user: "1000:1000" + environment: + POSTGRES_PASSWORD: endurain + POSTGRES_DB: endurain + POSTGRES_USER: endurain + PGDATA: /var/lib/postgresql/data/pgdata + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + restart: on-failure + healthcheck: + test: ["CMD-SHELL", "pg_isready -U endurain"] + interval: 5s + timeout: 5s + retries: 5 diff --git a/endurain/hooks/pre-start b/endurain/hooks/pre-start new file mode 100755 index 0000000..ce7a0bf --- /dev/null +++ b/endurain/hooks/pre-start @@ -0,0 +1,114 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ сцСнарий провСряСт Ρ„Π°ΠΉΠ» срСды Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ замСняСт ΠΈΡ… сгСнСрированными ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈΠ»ΠΈ систСмными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="$APP_DIR/data" +DESIRED_OWNER="1000:1000" +ENV_FILE="$APP_DIR/settings.env" + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ» +if [ ! -f "$ENV_FILE" ]; then + echo "Error: Environment file not found at $ENV_FILE" + exit 1 +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ FERNET_KEY Π½Π° "changeme". +if grep -Eq '^FERNET_KEY= *changeme$' "$ENV_FILE"; then + echo "Placeholder value for FERNET_KEY detected. Generating a new key..." + + # Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ FERNET + FERNET_KEY=$(python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())") + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ + sed -i -E 's|^FERNET_KEY= *changeme$|FERNET_KEY="'"$FERNET_KEY"'"|' "$ENV_FILE" + + echo "Updated FERNET_KEY in $ENV_FILE" +else + echo "FERNET_KEY is already set. No changes made." +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ENDURAIN_HOST Π½Π° "changeme". +if grep -Eq '^ENDURAIN_HOST= *changeme$' "$ENV_FILE"; then + echo "Placeholder value for ENDURAIN_HOST detected. Adding proper hostname..." + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π½Π΅ΠΌ хоста + sed -i -E 's|^ENDURAIN_HOST= *changeme$|ENDURAIN_HOST="'"http://${DEVICE_DOMAIN_NAME}:8865"'"|' "$ENV_FILE" + + echo "Updated ENDURAIN_HOST in $ENV_FILE" +else + echo "ENDURAIN_HOST is already set. No changes made." +fi + +set_correct_permissions() { + local -r path="${1}" + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ ΠΏΡƒΡ‚ΡŒ (Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³) + if [[ -e "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + echo "Changed ownership of ${path} to ${DESIRED_OWNER}" + fi + else + echo "Skipping ${path} - path does not exist" + fi +} + +# ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° рСструктуризации ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² для вСрсии 0.13.0. +restructure_directories() { + local -r app_dir="${APP_DATA_DIR}/app" + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Π½Π°ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ + if [[ -d "${app_dir}/files" && ! -d "${app_dir}/activity_files" ]]; then + echo "Restructuring directories for Endurain v0.13.0..." + + # ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Activity_files + if mv "${app_dir}/files" "${app_dir}/activity_files" 2>/dev/null; then + echo "Renamed ${app_dir}/files to ${app_dir}/activity_files" + else + echo "Failed to rename ${app_dir}/files to ${app_dir}/activity_files" + fi + fi + + # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Ссли ΠΎΠ½ΠΈ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. + mkdir -p "${app_dir}/activity_media" + echo "Created ${app_dir}/activity_media directory" + + mkdir -p "${app_dir}/server_images" + echo "Created ${app_dir}/server_images directory" + + # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΈΠ· app/logs Π² ΠΆΡƒΡ€Π½Π°Π»Ρ‹ (Π½Π° ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅). + if [[ -d "${app_dir}/logs" && ! -d "${APP_DATA_DIR}/logs" ]]; then + if mv "${app_dir}/logs" "${APP_DATA_DIR}/logs" 2>/dev/null; then + echo "Moved ${app_dir}/logs to ${APP_DATA_DIR}/logs" + else + echo "Failed to move ${app_dir}/logs to ${APP_DATA_DIR}/logs" + fi + elif [[ ! -d "${APP_DATA_DIR}/logs" ]]; then + # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ², Ссли ΠΎΠ½ Π½Π΅ сущСствуСт. + mkdir -p "${APP_DATA_DIR}/logs" + echo "Created ${APP_DATA_DIR}/logs directory" + fi +} + +# Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° +if [[ -d "${APP_DATA_DIR}/app" ]]; then + restructure_directories +fi + +# РСкурсивно устанавливайтС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для всСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /app ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². +if [[ -d "${APP_DATA_DIR}/app" ]]; then + chown -R "${DESIRED_OWNER}" "${APP_DATA_DIR}/app" + echo "Set recursive ownership of ${APP_DATA_DIR}/app to ${DESIRED_OWNER}" +fi + +# РСкурсивно устанавливайтС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для всСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /logs ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². +if [[ -d "${APP_DATA_DIR}/logs" ]]; then + chown -R "${DESIRED_OWNER}" "${APP_DATA_DIR}/logs" + echo "Set recursive ownership of ${APP_DATA_DIR}/logs to ${DESIRED_OWNER}" +fi + +exit 0 diff --git a/endurain/settings.env b/endurain/settings.env new file mode 100644 index 0000000..49a711b --- /dev/null +++ b/endurain/settings.env @@ -0,0 +1,3 @@ +FERNET_KEY=changeme +GEOCODES_MAPS_API=changeme +ENDURAIN_HOST=changeme diff --git a/esphome/data/.gitkeep b/esphome/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/esphome/data/secrets.yaml b/esphome/data/secrets.yaml new file mode 100644 index 0000000..e69de29 diff --git a/esphome/dfwebos-app.yml b/esphome/dfwebos-app.yml new file mode 100644 index 0000000..00042f6 --- /dev/null +++ b/esphome/dfwebos-app.yml @@ -0,0 +1,38 @@ +manifestVersion: 1 +id: esphome +category: automation +name: ESPHome +version: "2026.4.3" +tagline: Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ всСми вашими устройствами ESP8266/ESP32. +description: >- + ESPHome β€” это систСма управлСния вашим ESP8266/ESP32 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простых, Π½ΠΎ ΠΌΠΎΡ‰Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ управлСния ΠΈΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· систСмы домашнСй Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. +developer: ESPHome +website: https://esphome.io +dependencies: [] +repo: https://github.com/esphome/esphome +support: https://community.home-assistant.io/c/esphome +port: 6052 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +releaseNotes: >- + Π­Ρ‚ΠΎ выпуск исправлСний с исправлСниями ошибок Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ LVGL Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ… просмотра Π²ΠΊΠ»Π°Π΄ΠΎΠΊ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка Windows EINVAL ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ строк часового пояса POSIX. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ‚ΠΈΠΏ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ сна. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π΅ состояниС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Wi-Fi послС смСны состояний. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ цСлочислСнных ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π½ΠΎΠΌ энкодСрС ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… AT581x. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Wi-Fi, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Π΄Π΅Π» NVS отсутствуСт ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΊΡƒ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ RGB565+Π°Π»ΡŒΡ„Π° для ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ°Π΄Ρ€ΠΎΠ²ΠΎΠΉ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ. + - Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ врСмя оТидания Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Nextion TFT Π΄ΠΎ 5000 мс. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π°Ρ‡Π° стороТСвого Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² сСнсорный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ESP32. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://esphome.io/changelog/2026.4.3/. +submitter: ShonP40 +submission: https://github.com/getumbrel/dfwebos-apps/pull/43 diff --git a/esphome/docker-compose.yml b/esphome/docker-compose.yml new file mode 100644 index 0000000..c2a6b49 --- /dev/null +++ b/esphome/docker-compose.yml @@ -0,0 +1,9 @@ +version: "3.7" + +services: + server: + image: esphome/esphome:2026.4.3@sha256:d9da091d4d2fc072d238177ce07e02a6cc014b31677da653a36ac68dd6caaccd + network_mode: host + volumes: + - ${APP_DATA_DIR}/data:/config + restart: on-failure diff --git a/etherpad/data/etherpad-var/.gitkeep b/etherpad/data/etherpad-var/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/etherpad/data/etherpad-var/.gitkeep @@ -0,0 +1 @@ + diff --git a/etherpad/data/plugins/.gitkeep b/etherpad/data/plugins/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/etherpad/data/plugins/.gitkeep @@ -0,0 +1 @@ + diff --git a/etherpad/data/postgres_data/.gitkeep b/etherpad/data/postgres_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/etherpad/data/postgres_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/etherpad/dfwebos-app.yml b/etherpad/dfwebos-app.yml new file mode 100644 index 0000000..29be7c0 --- /dev/null +++ b/etherpad/dfwebos-app.yml @@ -0,0 +1,56 @@ +manifestVersion: 1 +id: etherpad +name: Etherpad +tagline: Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный инструмСнт для совмСстного написания статСй Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. +category: files +version: "2.7.2" +port: 9002 +description: >- + βš™οΈ ПанСль администратора Etherpad доступна ΠΏΠΎ адрСсу Β«http://umbrel.local:9002/admin/".Β». + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ свои ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π·Π½Π°Ρ‡ΠΎΠΊ прилоТСния Etherpad Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС DFWebOS ΠΈ Π²Ρ‹Π±Ρ€Π°Π² Β«ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ». + + + πŸ“ Etherpad β€” это Π²Π΅Π±-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт нСскольким ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… мСст. Π­Ρ‚ΠΎ особСнно Ρ†Π΅Π½Π½ΠΎ для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ситуаций, ΠΊΠΎΠ³Π΄Π° ΠΌΠ½ΠΎΠ³ΠΈΠΌ людям Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ внСсти свой Π²ΠΊΠ»Π°Π΄ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Одной ΠΈΠ· Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ особСнностСй Etherpad являСтся функция совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ вносят измСнСния, эти измСнСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для всСх участников, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π²ΠΊΠ»Π°Π΄Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ. + + + ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° спроСктирована простой ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятной, с понятным ΠΈ понятным интСрфСйсом, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся написанию ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Etherpad Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ рСгистрации ΠΈΠ»ΠΈ установки ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‡Ρ‚ΠΎ позволяСт Π»ΡŽΠ±ΠΎΠΌΡƒ быстро Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. + + + Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Etherpad являСтся систСма истории вСрсий, которая позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вСрсии Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ измСнСния ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈ нСобходимости Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ инструмСнтом для управлСния долгосрочными совмСстными ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ. + + + Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ инструмСнтом с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Etherpad ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² использовании. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° своих собствСнных сСрвСрах для большСго контроля ΠΈ настройки ΠΈΠ»ΠΈ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ общСдоступный экзСмпляр, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… поставщиков услуг. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌΠΈ возмоТностями Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ: доступны ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ встраиваниС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ списков Π·Π°Π΄Π°Ρ‡ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ интСграция с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ инструмСнтами. + + + Etherpad Π·Π°Π²ΠΎΠ΅Π²Π°Π» ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π² акадСмичСских, Π΄Π΅Π»ΠΎΠ²Ρ‹Ρ… ΠΊΡ€ΡƒΠ³Π°Ρ… ΠΈ срСдах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ благодаря своим простым, Π½ΠΎ эффСктивным функциям совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠŸΠΈΡˆΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎ встрСчах, составляСтС ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΈΠ»ΠΈ обсуТдаСтС ΠΈΠ΄Π΅ΠΈ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Etherpad ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΌΠΎΡ‰Π½ΠΎΠ΅ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для совмСстного написания. +developer: The Etherpad Foundation +website: https://etherpad.org/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2132 +repo: https://github.com/ether/etherpad-lite +support: https://github.com/ether/etherpad-lite/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + ⚠️ Abiword Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° LibreOffice для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°/экспорта Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Если Π²Ρ‹ использовали Abiword для прСобразования DOCX/ODT/PDF, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ настройки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈ Π½Π° ваш Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» LibreOffice. + + + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ доступности, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ сСмантику Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ фокусом, отсутствиС ΠΌΠ΅Ρ‚ΠΎΠΊ Π·Π½Π°Ρ‡ΠΊΠΎΠ² ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ языка Π½Π° страницах. + - Π—Π½Π°Ρ‡ΠΎΠΊ Ρ‡Π°Ρ‚Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ снова Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π° ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ большС Π½Π΅ пСрСполняСтся. + - Экспорт ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· `/export/etherpad` Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽ, Π° Π½Π΅ всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ. + - ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ просмотра ΠΏΠΎ курсору, поэтому ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ измСнСния ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² ΠΏΠΎΠ»Π΅ зрСния. + - Page Down ΠΈ Page Up Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ высотС области просмотра вмСсто фиксированного количСства строк. + - Π’Π²ΠΎΠ΄ тСкста Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ продолТаСтся послС измСнСния Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов вмСсто ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° панСль инструмСнтов. + - ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ администратора интСрфСйс восстановлСны Π½Π° страницС `/admin`. + - НСразрывныС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. + - Π―Π·Ρ‹ΠΊ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ опрСдСляСтся автоматичСски, Π° Π½Π΅ ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° английский язык. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/ether/etherpad-lite/releases. +dependencies: [] +path: "" +defaultUsername: "admin" +deterministicPassword: true diff --git a/etherpad/docker-compose.yml b/etherpad/docker-compose.yml new file mode 100644 index 0000000..90988e8 --- /dev/null +++ b/etherpad/docker-compose.yml @@ -0,0 +1,50 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: etherpad_app_1 + APP_PORT: 9001 + + app: + image: etherpad/etherpad:2.7.2@sha256:b723fe5f2594d5cf61f960a203a4eeb554a5d0435c3689722f575f91aa6ace50 + volumes: + - ${APP_DATA_DIR}/data/plugins:/opt/etherpad-lite/src/plugin_packages + - ${APP_DATA_DIR}/data/etherpad-var:/opt/etherpad-lite/var:rw + depends_on: + - postgres + environment: + NODE_ENV: production + ADMIN_PASSWORD: ${APP_PASSWORD} + DB_CHARSET: utf8mb4 + DB_HOST: etherpad_postgres_1 + DB_NAME: etherpad + DB_PASS: admin + DB_PORT: 5432 + DB_TYPE: "postgres" + DB_USER: admin + DEFAULT_PAD_TEXT: + DISABLE_IP_LOGGING: "false" + LOGLEVEL: DEBUG + SOFFICE: null + ALLOW_UNKNOWN_FILE_ENDS: "true" + TRUST_PROXY: "true" + SKIN_NAME: colibris + SKIN_VARIANTS: super-light-toolbar super-light-editor light-background + SHOW_SETTINGS_IN_ADMIN_PAGE: "true" + SUPPRESS_ERRORS_IN_PAD_TEXT: "false" + restart: on-failure + user: "1000:1000" + + postgres: + image: postgres:15-alpine@sha256:93a6166360be8f1d116b7ea97ebb8dea9e2c9c746349e952738bbba72a961d7c + environment: + POSTGRES_DB: etherpad + POSTGRES_PASSWORD: admin + POSTGRES_PORT: 5432 + POSTGRES_USER: admin + PGDATA: /var/lib/postgresql/data/pgdata + restart: on-failure + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/postgres_data:/var/lib/postgresql/data/pgdata diff --git a/excalidraw/data/.gitkeep b/excalidraw/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/excalidraw/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/excalidraw/dfwebos-app.yml b/excalidraw/dfwebos-app.yml new file mode 100644 index 0000000..b451a09 --- /dev/null +++ b/excalidraw/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: excalidraw +name: Excalidraw +tagline: Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ доска с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, нарисованная ΠΎΡ‚ Ρ€ΡƒΠΊΠΈ. +category: files +version: "0.18.0-7" +port: 4422 +description: >- + ✏️ Excalidraw β€” это бСсплатная Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ доска с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, эскизы ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π² рисованном стилС. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ внСшнСго Π²ΠΈΠ΄Π° Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… эскизов, ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈΠ³Ρ€ΠΈΠ²Ρ‹ΠΉ, Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ способ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅ΠΉ, планирования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… инструмСнтов построСния Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ†Π΅Π»Π΅Π½Ρ‹ Π½Π° созданиС Π³Π»Π°Π΄ΠΊΠΈΡ…, ТСстких ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Excalidraw ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π΅Ρ€ΠΎΠ²Π½Ρ‹Π΅ края ΠΈ ΠΏΠ»Π°Π²Π½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для творчСского ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ, ΠΌΠΎΠ·Π³ΠΎΠ²Ρ‹Ρ… ΡˆΡ‚ΡƒΡ€ΠΌΠΎΠ² ΠΈ быстрого прототипирования. + + + По своСй сути Excalidraw создан для простоты ΠΈ удобства использования. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, ΠΊΡ€ΡƒΠ³ΠΈ ΠΈ стрСлки, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ тСкст ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнт ΠΎΡ‚ Ρ€ΡƒΠΊΠΈ для набросков ΠΈΠ΄Π΅ΠΉ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн ΠΈ минималистичСн, Ρ‡Ρ‚ΠΎ позволяСт Π΄Π°ΠΆΠ΅ Ρ‚Π΅ΠΌ, Ρƒ ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° проСктирования, сразу ΠΆΠ΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, позволяя нСскольким людям Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вмСстС Π½Π° ΠΎΠ΄Π½ΠΎΠΌ холстС, просто подСлившись ссылкой. Π­Ρ‚Π° функция Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ популярным Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ трСбуСтся ΠΎΠ±Ρ‰Π΅Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ пространство для взаимодСйствия. + + + Одной ΠΈΠ· Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ особСнностСй Excalidraw являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ прогрСссивным Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСпосрСдствСнно Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ сохраняСт Π΄Π°Π½Π½Ρ‹Π΅ локально, поэтому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ экспорт рисунков Π² нСсколько Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ PNG, SVG ΠΈ JSON, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ использованиС ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, созданного Π² Excalidraw, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС. + + + ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Excalidraw ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄, Ρƒ Π½Π΅Π³ΠΎ появилось ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠΎΠ² срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Кодовая Π±Π°Π·Π° доступна Π½Π° GitHub, Ρ‡Ρ‚ΠΎ позволяСт участникам Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚Π° Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ Π΅Π³ΠΎ использованию Π² Ρ‚Π°ΠΊΠΈΡ… инструмСнтах, ΠΊΠ°ΠΊ Obsidian, Visual Studio Code ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСдах управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π³Π΄Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ сотрудничСство являСтся Ρ†Π΅Π½Π½Ρ‹ΠΌ Π°ΠΊΡ‚ΠΈΠ²ΠΎΠΌ. + + + Π’ Ρ†Π΅Π»ΠΎΠΌ, Excalidraw выдСляСтся ΠΊΠ°ΠΊ лСгкая, доступная ΠΈ управляСмая сообщСством Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π±ΠΎΠ»Π΅Π΅ слоТному ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ для проСктирования ΠΈ построСния Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ. Π•Π³ΠΎ ориСнтация Π½Π° ΡΡΠ½ΠΎΡΡ‚ΡŒ, сотрудничСство ΠΈ свободу Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌ инструмСнтом мыслитСлСй, мастСров ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. +developer: Excalidraw Team +website: https://excalidraw.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/1538 +repo: https://github.com/ozencb/excalidraw-persist +support: https://github.com/ozencb/excalidraw-persist/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ содСрТит нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ исправлСний: + - БовмСстноС использованиС досок Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ поддСрТиваСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‰ΠΈΠ΅ ссылки с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ Π½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. + - Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠ»Π°Ρ‚ Π±Ρ‹Π»ΠΈ пСрСнСсСны Π² UUID с автоматичСским пСрСносом ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ»Π°Ρ‚. + - Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ происходит постСпСнно, синхронизируя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ элСмСнты для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + - Π’ интСрфСйсС Π²ΠΊΠ»Π°Π΄ΠΊΠ° "ΠšΠΎΡ€Π·ΠΈΠ½Π°" ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° Π² "Архив". + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° копирования URL-адрСса, Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈ соСдинСниях, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ HTTPS. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ состояний ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ошибок. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/excalidraw/docker-compose.yml b/excalidraw/docker-compose.yml new file mode 100644 index 0000000..1a66b13 --- /dev/null +++ b/excalidraw/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: excalidraw_app_1 + APP_PORT: 80 + + app: + image: ghcr.io/ozencb/excalidraw-persist:0.18.0-persist.7@sha256:8c86a50d299cdcd27e178e80e7567479bf9b6c5eb62d08abbbfcd5ddba60bc26 + restart: on-failure + environment: + - PORT=4000 + - NODE_ENV=production + - DB_PATH=/app/data/database.sqlite + volumes: + - ${APP_DATA_DIR}/data:/app/data:rw diff --git a/fedimint-gateway/data/entrypoint.sh b/fedimint-gateway/data/entrypoint.sh new file mode 100755 index 0000000..43cff37 --- /dev/null +++ b/fedimint-gateway/data/entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# Bcrypt Ρ…ΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π΅Π³ΠΎ ΡˆΠ»ΡŽΠ·Ρƒ +export FM_GATEWAY_BCRYPT_PASSWORD_HASH=$(gateway-cli create-password-hash $APP_PASSWORD \ + | sed 's/^"//; s/"$//' \ + | sed 's/\$/$$/g' +) + +gatewayd lnd diff --git a/fedimint-gateway/dfwebos-app.yml b/fedimint-gateway/dfwebos-app.yml new file mode 100644 index 0000000..431b5e7 --- /dev/null +++ b/fedimint-gateway/dfwebos-app.yml @@ -0,0 +1,65 @@ +manifestVersion: 1 +id: fedimint-gateway +category: bitcoin +name: Fedimint Lightning Gateway +version: "v0.11.1" +tagline: ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ Lightning для Π€Π΅Π΄ΠΈΠΌΠΈΠ½Ρ‚ΠΎΠ² +description: >- + Шлюз Fedimint Lightning β€” это кошСлСк для элСктронных Π΄Π΅Π½Π΅Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соСдиняСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Fedimint с Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ ΡΠ΅Ρ‚ΡŒΡŽ Lightning. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ комиссию, прСдоставляя исходящиС + ΠΈ Π²Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Lightning Ρ‡Π΅Ρ€Π΅Π· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π» LND. + + # ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ характСристики + - МодСль довСрия: ΠΊΠ°ΠΊ ΠΈ ΡƒΠ·Π΅Π» Lightning, шлюз Lightning Π½Π΅ являСтся Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚. Π¨Π»ΡŽΠ·Ρ‹ Lightning Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ фСдСрациям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ услуги ликвидности, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΡˆΠ»ΡŽΠ·Ρƒ Lightning. + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΉ: ΠΎΠ΄ΠΈΠ½ шлюз ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько Fedimint ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒ элСктронныС дСньги, ΠΊΠΎΠ³Π΄Π° ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ происходят ΠΌΠ΅ΠΆΠ΄Ρƒ фСдСрациями, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ минуя ΡΠ΅Ρ‚ΡŒ Lightning. + + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ: Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΡƒΠ·Π΅Π» Lightning, ΡˆΠ»ΡŽΠ·Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ балансы элСктронных Π΄Π΅Π½Π΅Π³ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ для облСгчСния входящих ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ входящСй ликвидности Π² Lightning. + + # Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ шлюзом Lightning + + 1. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ шлюз Lightning Π»Π΅Π³ΠΊΠΎ: всСго ΠΎΠ΄ΠΈΠ½ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ, ΠΈ ΠΎΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ LND! + + 2. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваш ΡƒΠ·Π΅Π» LND ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΡƒΡŽ связь с Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ ΡΠ΅Ρ‚ΡŒΡŽ Lightning, Π² ΠΈΠ΄Π΅Π°Π»Π΅ со сбалансированной исходящСй ΠΈ входящСй Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ. + + 3. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ. + + 4. ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ сумму Π΄Π΅Π½Π΅Π³ ΠΊ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ. + + 5. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» элСктронныС дСньги, URL-адрСс ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ шлюза Lightning ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдоставлСн ΠΎΠΏΠ΅ΠΊΡƒΠ½Π°ΠΌ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠΏΠ΅ΠΊΡƒΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²ΡΡ‚, Ρ‡Ρ‚ΠΎ этот шлюз Lightning прСдоставляСт Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ услуги Lightning. + + 6. ВсС Π³ΠΎΡ‚ΠΎΠ²ΠΎ! Fedimint Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ Lightning. +developer: Fedimint Developers +website: https://fedimint.org/ +dependencies: + - bitcoin + - lightning +repo: https://github.com/fedimint/fedimint +support: https://github.com/fedimint/fedimint/issues +port: 8178 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: true +defaultUsername: "" +defaultPassword: "" +submitter: Fedimint Developers +submission: https://github.com/getumbrel/dfwebos-apps/pull/4554 +releaseNotes: >- + ⚠️ ИзмСнилось ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ шлюза ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅: вмСсто автоматичСского создания ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ отобраТаСтся мнСмоничСский экран настройки/восстановлСния. ΠŸΡ€ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ установки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³ Skip_setup. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска: + - ВосстановлСниС шлюза ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΎΠΉ β€” создайтС ΠΈΠ»ΠΈ восстановитС шлюз Π½Π° основС ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ экспортируйтС/ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ для восстановлСния. + - ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΠΊΡƒΠ½Π° Ρ‡Π΅Ρ€Π΅Π· Pkarr β€” ΠΎΠΏΠ΅ΠΊΡƒΠ½Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ свою Π»ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ адрСса API Π² Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмС DNS Pkarr для обнаруТСния ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² Π±Π΅Π· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ. + - ΠšΠ°ΠΏΠΈΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΌΠΎΠ½Ρ‚ шлюза интСрфСйс β€” ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ°/ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ BOLT12, ΠΊΠ°Π½Π°Π» ΠΎΠ΄Π½ΠΈΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ открываСтся для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΈΡ€ΠΎΠ², ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ баланса Π² sats/BTC, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ, Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΠΈΡ€ΠΎΠ² ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ Π² стилС Material. + - Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшСС использованиС памяти β€” исправлСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ объСм шлюзовой памяти ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π»ΡΡ с ~1,6 Π“Π‘ Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ 200 ΠœΠ‘, с настроСнными настройками RocksDB ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… срСд. + - КомплСксная Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ β€” ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Prometheus для сСти, соСдинСний iroh, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ HTLC, Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² RPC Bitcoin ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ шлюзом ΠΈ ΡƒΠ·Π»ΠΎΠΌ LN. + - ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° HTLC для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ пропускной способности ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ. + - Роль ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠΎ ликвидности с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ + - Экспорт/ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΊΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ для облСгчСния восстановлСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π‘Π”, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ Π² этот выпуск ΠΏΠ°Ρ‚Ρ‡Π°. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/fedimint/fedimint/releases. \ No newline at end of file diff --git a/fedimint-gateway/docker-compose.yml b/fedimint-gateway/docker-compose.yml new file mode 100644 index 0000000..af8dab0 --- /dev/null +++ b/fedimint-gateway/docker-compose.yml @@ -0,0 +1,33 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: fedimint-gateway_gatewayd_1 + APP_PORT: 8178 # ui + + gatewayd: + image: fedimint/gatewayd:v0.11.1@sha256:65365fceb2e85dfb01837553be53a3372f118e094a23f672ef52bc38baf28ddf + restart: on-failure + ports: + - 8177:8177/udp # iroh + volumes: + - ${APP_DATA_DIR}/data:/data + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + FM_GATEWAY_DATA_DIR: "/data" + FM_GATEWAY_NETWORK: ${APP_BITCOIN_NETWORK_ELECTRS} + FM_GATEWAY_LISTEN_ADDR: 0.0.0.0:8178 + FM_GATEWAY_IROH_LISTEN_ADDR: 0.0.0.0:8177 + APP_PASSWORD: "${APP_PASSWORD}" + + # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ LND + FM_LND_RPC_ADDR: "https://${APP_LIGHTNING_NODE_IP}:${APP_LIGHTNING_NODE_GRPC_PORT}" + FM_LND_TLS_CERT: "/lnd/tls.cert" + FM_LND_MACAROON: "/lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/admin.macaroon" + + # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Bitcoind + FM_BITCOIND_USERNAME: ${APP_BITCOIN_RPC_USER} + FM_BITCOIND_PASSWORD: ${APP_BITCOIN_RPC_PASS} + FM_BITCOIND_URL: "http://${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}" + entrypoint: /data/entrypoint.sh diff --git a/fedimintd/data/.gitkeep b/fedimintd/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/fedimintd/dfwebos-app.yml b/fedimintd/dfwebos-app.yml new file mode 100644 index 0000000..d11f49f --- /dev/null +++ b/fedimintd/dfwebos-app.yml @@ -0,0 +1,96 @@ +manifestVersion: 1 +id: fedimintd +category: bitcoin +name: Fedimint +version: "v0.11.1" +tagline: Π€Π΅Π΄Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠΎΠ½Π΅Ρ‚Π½Ρ‹ΠΉ Π΄Π²ΠΎΡ€ элСктронных Π΄Π΅Π½Π΅Π³ Π§Π°ΡƒΠΌΠΈΠ°Π½ для Bitcoin +description: >- + Fedimint β€” это Ρ„Π΅Π΄Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ½Π΅Ρ‚Π½Ρ‹ΠΉ Π΄Π²ΠΎΡ€ элСктронных Π΄Π΅Π½Π΅Π³ Chaumian, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для хранСния ΠΈ провСдСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½ΠΎΠ² Π² сообщСствС. Π­Ρ‚ΠΎ позволяСт Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π»ΠΈΡ†, + Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΎΠΏΠ΅ΠΊΡƒΠ½Π°ΠΌΠΈ, для совмСстного управлСния ΠΌΠΎΠ½Π΅Ρ‚Π½Ρ‹ΠΌ Π΄Π²ΠΎΡ€ΠΎΠΌ элСктронных Π΄Π΅Π½Π΅Π³ с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ. + + # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ + + Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π€Π΅Π΄ΠΈΠΌΠΈΠ½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ двумя способами: + + - Единая ЀСдСрация Π₯Ρ€Π°Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ β€” Один Π₯Ρ€Π°Π½ΠΈΡ‚Π΅Π»ΡŒ, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собствСнным ΠΌΠΎΠ½Π΅Ρ‚Π½Ρ‹ΠΌ Π΄Π²ΠΎΡ€ΠΎΠΌ. + + - Групповая фСдСрация β€” нСсколько страТСй вмСстС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΌΠΎΠ½Π΅Ρ‚Π½Ρ‹ΠΌ Π΄Π²ΠΎΡ€ΠΎΠΌ (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 4 страТа). + + [Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ см. здСсь](https://github.com/fedimint/fedimint/blob/master/docs/deploying.md) + + # ЦСрСмония шаг Π·Π° шагом + + 1. УстановитС ΠΈ запуститС это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Fedimint (fedimintd) Π½Π° своСм DFWebOS. + ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅ΠΊΡƒΠ½ запускаСт свой собствСнный экзСмпляр fedimintd. + + 2. УстановитС ΠΏΠ°Ρ€ΠΎΠ»ΡŒ + ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС fedimintd ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ бСзопасный ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. + + 3. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄ установки. + ПослС Π²Π²ΠΎΠ΄Π° пароля для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΠΊΡƒΠ½Π° гСнСрируСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ настройки. + + 4. ΠšΠΎΠ΄Ρ‹ настройки ΠΎΠ±ΠΌΠ΅Π½Π° + ВсС ΠΎΠΏΠ΅ΠΊΡƒΠ½Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своими ΠΊΠΎΠ΄Π°ΠΌΠΈ настройки Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ (ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΎΠΏΠ΅ΠΊΡƒΠ½Ρƒ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΠΊΡƒΠ½Π°). + + 5. РаспрСдСлСнная гСнСрация ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (DKG) + ПослС Π²Π²ΠΎΠ΄Π° всСх ΠΊΠΎΠ΄ΠΎΠ² настройки начинаСтся процСсс DKG. Π—Π΄Π΅ΡΡŒ совмСстно ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ криптографичСскиС ΠΊΠ»ΡŽΡ‡ΠΈ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ. + Π­Ρ‚ΠΎΡ‚ шаг ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΏΠΎΠΊΠ° всС ΠΎΠΏΠ΅ΠΊΡƒΠ½Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡΡ. + + 6. ЀСдСрация Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°! + Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ DKG Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, ваша фСдСрация Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π’Π°ΡˆΠ° панСль ΠΎΠΏΠ΅ΠΊΡƒΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ доступна для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π€Π΅Π΄ΠΈΠΌΠΈΠ½Ρ‚! + + # Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ Lightning + + Fedimint ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Lightning Ρ‡Π΅Ρ€Π΅Π· шлюз Lightning. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Lightning Π² вашСй Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ, Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°: + + 1. ЗапуститС свой собствСнный! - [Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ шлюз Lightning Π½Π° своСм DFWebOS](https://apps.dfwebos.com/app/fedimint-gateway). + + 2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ шлюз Lightning. [ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ Π² Discord, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ](https://chat.fedimint.org). + + +developer: Fedimint Developers +website: https://fedimint.org/ +dependencies: + - bitcoin +repo: https://github.com/fedimint/fedimint +support: https://github.com/fedimint/fedimint/issues +port: 8175 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Fedimint Developers +submission: https://github.com/getumbrel/dfwebos-apps/pull/3371 +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ шлюза, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΠΊΡƒΠ½ΠΎΠ² ΠΈ ΠΎΠ±Ρ‰Π΅ΠΉ надСТности: + + + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ шлюза: + - Новая ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ порядок восстановлСния шлюзов. + - Экспорт ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΊΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ для упрощСния восстановлСния. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ/получСния BOLT12 Π² шлюзС интСрфСйс + - ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ отобраТСния баланса ΠΌΠ΅ΠΆΠ΄Ρƒ msat, sats ΠΈ BTC. + - Канал Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ открываСтся для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΈΡ€ΠΎΠ² + - Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ событий ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ + - Π’ шлюз интСрфСйс Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Peers ΠΈ Notes. + - ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° HTLC для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ пропускной способности ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ. + + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π‘Ρ‚Ρ€Π°ΠΆΠ° ΠΈ Π€Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ: + - Π‘Ρ‚Ρ€Π°ΠΆΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ свою Π»ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Π² Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмС DNS Pkarr для упрощСния обнаруТСния ΠΏΠΈΡ€ΠΎΠ². + - ΠœΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ настройка ΠΈ приборная панСль интСрфСйс с Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ Π² стилС Material. + - ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ QR-ΠΊΠΎΠ΄Π° ΠΈ сканированиС ΠΊΠΎΠ΄ΠΎΠ² настройки + - Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСти Π² настройках ΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ управлСния интСрфСйс + - Код установки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. + - ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΈΠΌΠΈΡ‚ ΠΎΠΏΠ΅ΠΊΡƒΠ½ΠΎΠ² ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ Π΄ΠΎ 19. + + ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ: + - Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сниТСниС использования памяти β€” исправлСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ объСм шлюзовой памяти ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π»ΡΡ с ~1,6 Π“Π‘ Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ 200 ΠœΠ‘. + - Настройки RocksDB ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ настроСны для мСньшСго использования памяти Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… срСдах. + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Prometheus для сСти, соСдинСний iroh, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ HTLC ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² RPC Bitcoin. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π‘Π”. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/fedimint/fedimint/releases. \ No newline at end of file diff --git a/fedimintd/docker-compose.yml b/fedimintd/docker-compose.yml new file mode 100644 index 0000000..dcb8154 --- /dev/null +++ b/fedimintd/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: fedimintd_fedimintd_1 + APP_PORT: 8175 # ui + + fedimintd: + image: fedimint/fedimintd:v0.11.1@sha256:ba23a29ae5b71cf7685c0a4f6594ac92dc9fd6c8915fccc09c8100710177283e + ports: + - 8173:8173/tcp # p2p tls + - 8173:8173/udp # p2p iroh + - 8174:8174/udp # api iroh + volumes: + - ${APP_DATA_DIR}/data:/data + environment: + FM_ENABLE_IROH: "true" + FM_DATA_DIR: "/data" + FM_BITCOIN_NETWORK: ${APP_BITCOIN_NETWORK_ELECTRS} + FM_BITCOIND_USERNAME: ${APP_BITCOIN_RPC_USER} + FM_BITCOIND_PASSWORD: ${APP_BITCOIN_RPC_PASS} + FM_BITCOIND_URL: "http://${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}" + FM_BIND_UI: 0.0.0.0:8175 + restart: on-failure diff --git a/file-browser/data/filebrowser.db b/file-browser/data/filebrowser.db new file mode 100644 index 0000000..e69de29 diff --git a/file-browser/dfwebos-app.yml b/file-browser/dfwebos-app.yml new file mode 100644 index 0000000..8bf2882 --- /dev/null +++ b/file-browser/dfwebos-app.yml @@ -0,0 +1,38 @@ +manifestVersion: 1 +id: file-browser +category: files +name: File Browser +version: "2.63.2" +tagline: ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΈ управляйтС Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ Π½Π° свой DFWebOS. +description: >- + Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹. + + + Π›Π΅Π³ΠΊΠΎ управляйтС Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ хранСния Umbrel, Π³Π΄Π΅ Π² настоящСС врСмя хранятся Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ Transmission, Sonarr, Radarr ΠΈ Lidarr. +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ обновлСния Π² этой вСрсии Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опСрация копирования ΠΏΡ€ΠΈ пСрСтаскивании ΠΏΡ€ΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π½ΠΈΠΈ клавиши Ctrl. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»Π°ΡΡŒ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ TUS. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Ρ‰ΠΈΠΉ доступ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с автоматичСской Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· прокси-сСрвСр. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ рСсурсов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ соблюдСниС Π³Ρ€Π°Π½ΠΈΡ† ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΏΡ€ΠΈ сопоставлСнии ΠΏΡƒΡ‚Π΅ΠΉ ΠΏΡ€Π°Π²ΠΈΠ». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ рСсурса ΠΏΡ€ΠΈ общСдоступном доступС. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/filebrowser/filebrowser/releases. +developer: File Browser +website: https://filebrowser.org/ +dependencies: [] +repo: https://github.com/filebrowser/filebrowser +support: https://github.com/filebrowser/filebrowser/issues +port: 7421 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "/files/" +deterministicPassword: false +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/169 diff --git a/file-browser/docker-compose.yml b/file-browser/docker-compose.yml new file mode 100644 index 0000000..c9c2f2e --- /dev/null +++ b/file-browser/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: file-browser_server_1 + APP_PORT: 80 + + server: + image: filebrowser/filebrowser:v2.63.2@sha256:4dce87308b9f9cfbcf8d0a284fc9565d2b515530a6bae2d920b388161e093f26 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/database/ + - ${APP_DATA_DIR}/data:/config/ + - ${DFWEBOS_ROOT}/data/storage:/data + environment: + - FB_PORT=80 + - FB_DATABASE=/database/filebrowser.db + - FB_ROOT=/data + - FB_NOAUTH=true diff --git a/file-browser/exports.sh b/file-browser/exports.sh new file mode 100644 index 0000000..18e15ff --- /dev/null +++ b/file-browser/exports.sh @@ -0,0 +1,22 @@ +DFWEBOS_DATA_DIR="${DFWEBOS_ROOT}/data" +DFWEBOS_DATA_STORAGE_DIR="${DFWEBOS_DATA_DIR}/storage" +DESIRED_OWNER="1000:1000" + +if [[ ! -d "${DFWEBOS_DATA_STORAGE_DIR}" ]]; then + mkdir -p "${DFWEBOS_DATA_STORAGE_DIR}" +fi + +filebrowser_correct_permission() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +filebrowser_correct_permission "${DFWEBOS_DATA_DIR}" +filebrowser_correct_permission "${DFWEBOS_DATA_STORAGE_DIR}" \ No newline at end of file diff --git a/file-drop/dfwebos-app.yml b/file-drop/dfwebos-app.yml new file mode 100644 index 0000000..dd92096 --- /dev/null +++ b/file-drop/dfwebos-app.yml @@ -0,0 +1,24 @@ +manifestVersion: 1 +id: file-drop +name: File Drop +version: "1.1.1" +tagline: "Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΉ ΠΈ бСзопасный ΠΎΠ±ΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ" +category: files +description: "File Drop β€” это Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° изобраТСниями, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΈ ΠΌΠ΅ΠΆΠΏΠ»Π°Π½Π΅Ρ‚Π½ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму (IPFS) для обСспСчСния прямой бСссСрвСрной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ." +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. +developer: "besoeasy" +website: "https://github.com/besoeasy/file-drop" +repo: "https://github.com/besoeasy/file-drop" +support: "https://github.com/besoeasy/file-drop/issues" +port: 3232 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +dependencies: [] +path: "/" +defaultUsername: "" +defaultPassword: "" +submitter: besoeasy +submission: https://github.com/getumbrel/dfwebos-apps/pull/2392 diff --git a/file-drop/docker-compose.yml b/file-drop/docker-compose.yml new file mode 100644 index 0000000..3bb9420 --- /dev/null +++ b/file-drop/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: file-drop_app_1 + APP_PORT: 3232 + + app: + image: ghcr.io/besoeasy/file-drop:1.1.1@sha256:672d05e260c88bd6d923b2b0b3b845bd80b35e0255cec35b2f047aa7a6525e5f + user: "1000:1000" + restart: on-failure + stop_grace_period: 5m + environment: + - NODE_ENV=production diff --git a/firefly-iii-importer/dfwebos-app.yml b/firefly-iii-importer/dfwebos-app.yml new file mode 100644 index 0000000..5c9b872 --- /dev/null +++ b/firefly-iii-importer/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1.1 +id: firefly-iii-importer +category: finance +name: Firefly III Importer +version: "2.3.2" +tagline: Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ свои Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Firefly III. +description: >- + Firefly III β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π²Π°ΡˆΠΈΡ… Π»ΠΈΡ‡Π½Ρ‹Ρ… финансов. Π˜ΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… создан, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Firefly III. Он ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΎΡ‚ Firefly III ΠΏΠΎ сообраТСниям бСзопасности ΠΈ обслуТивания. + + + Π˜ΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Π±Π°Π½ΠΊΡƒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. ВмСсто этого ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Nordigen ΠΈ SaltEdge для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 6000 Π±Π°Π½ΠΊΠ°ΠΌ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. Π­Ρ‚ΠΈ услуги бСсплатны для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Firefly III, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ рСгистрации. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ эти слуТбы ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ использования Π΄Π°Π½Π½Ρ‹Ρ…. + + + Π˜ΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ CSV, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ скачали ΠΈΠ· своСго Π±Π°Π½ΠΊΠ°. + + + Π˜ΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для массового ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ рСгулярно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² курсС Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. +developer: Firefly III +website: https://www.firefly-iii.org/ +dependencies: + - firefly-iii +repo: https://github.com/firefly-iii/data-importer +support: https://docs.firefly-iii.org/references/data-importer/json/ +port: 30010 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +releaseNotes: >- + ⚠️ НСкоторыС измСнСния Π² этой вСрсии ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈΠ·-Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. + + + Π’ этом выпускС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² доступа UUID ΠΈ исправлСно нСсколько ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² доступа UUID, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Firefly III v6.6.0 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсий. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ обнаруТСния Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² банковских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ·-Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй, привязанных ΠΊ сСансу. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΈΠΌΠΏΠΎΡ€Ρ‚ GoCardless, Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΠ²ΡˆΠΈΠΉ увСдомлСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΏΠΎ истСчСнии срока дСйствия EUA. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€Π° банковских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² Π΄Π°Ρ‚. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка «НСвозмоТно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Β» Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ запросы SimpleFIN Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΄Π°Ρ‚, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ 90 Π΄Π½Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ Π½Π° части. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ OAuth Π² ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€Π΅. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/firefly-iii/data-importer/releases. +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/948 diff --git a/firefly-iii-importer/docker-compose.yml b/firefly-iii-importer/docker-compose.yml new file mode 100644 index 0000000..373b0da --- /dev/null +++ b/firefly-iii-importer/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: firefly-iii-importer_importer_1 + APP_PORT: 8080 + + importer: + image: fireflyiii/data-importer:version-2.3.2@sha256:4e2cbcb0d95c34850534a3772f1732c00f6412077db33b1863703a1b628bdc12 + restart: on-failure + environment: + # ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ firefly-iii: + - FIREFLY_III_URL=http://firefly-iii_server_1:8080 + - VANITY_URL=http://${DEVICE_DOMAIN_NAME}:30009 diff --git a/firefly-iii-importer/hooks/pre-start b/firefly-iii-importer/hooks/pre-start new file mode 100755 index 0000000..aabf602 --- /dev/null +++ b/firefly-iii-importer/hooks/pre-start @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ запуск Firefly III Importer Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ запустится основноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Firefly III. + +FIREFLY_CONTAINER_NAME="firefly-iii_server_1" + +while true; do + if [ "$(docker ps -q -f name=$FIREFLY_CONTAINER_NAME)" ]; then + # Если сСрвСрный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ firefly-iii Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΌΡ‹ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ ΠΌΠΎΠ³ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ + echo "$FIREFLY_CONTAINER_NAME is running" + break + else + # Если ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ 5 сСкунд, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π·. + echo "Waiting for $FIREFLY_CONTAINER_NAME to start..." + sleep 5 + fi +done \ No newline at end of file diff --git a/firefly-iii/data/logs/.gitkeep b/firefly-iii/data/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/firefly-iii/data/mysql/.gitkeep b/firefly-iii/data/mysql/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/firefly-iii/data/upload/.gitkeep b/firefly-iii/data/upload/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/firefly-iii/dfwebos-app.yml b/firefly-iii/dfwebos-app.yml new file mode 100644 index 0000000..dd6e8a6 --- /dev/null +++ b/firefly-iii/dfwebos-app.yml @@ -0,0 +1,62 @@ +manifestVersion: 1.1 +id: firefly-iii +category: finance +name: Firefly III +version: "6.6.2" +tagline: Π’Π°Ρˆ Π»ΠΈΡ‡Π½Ρ‹ΠΉ финансовый ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ +description: >- + Firefly III β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π²Π°ΡˆΠΈΡ… Π»ΠΈΡ‡Π½Ρ‹Ρ… финансов. Π­Ρ‚ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ хостинг с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ бСсплатноС, Π² Π½Π΅ΠΌ Π½Π΅Ρ‚ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ ΠΈ отслСТивания. + + + ПолноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ транзакциями + + Firefly III ΠΈΠΌΠ΅Π΅Ρ‚ систСму Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ΠΈΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ свои Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π°Π»ΡŽΡ‚Π°Ρ…. + + + Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΡ€Π°Π²ΠΈΠ» + + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ сокращСнныС записи Π² ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ уТасныС Ρ„Π°ΠΉΠ»Ρ‹ CSV вашСго Π±Π°Π½ΠΊΠ°. + + + Π‘ΡŽΠ΄ΠΆΠ΅Ρ‚Ρ‹, ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈ Ρ‚Π΅Π³ΠΈ + + НазовитС свой яд. Нравится Π»ΠΈ Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ‚Π΅Π³Π°ΠΌΠΈ? Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои расходы? Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС расходы Π½Π° Ρ…ΠΎΠ±Π±ΠΈ? НС смотритС дальшС. Firefly III ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС Π²ΠΈΠ΄Ρ‹. Π‘ΡŽΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ Π·Π° счСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π°Π»ΡŽΡ‚Π°Ρ…, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ сСмСйныС расходы, Ρ‚Π°ΠΊ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π² импСрских ΠΊΡ€Π΅Π΄ΠΈΡ‚Π°Ρ… ΠΏΡ€ΠΈ посСщСнии Π’Π°Ρ‚ΡƒΠΈΠ½Π°. + + + Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ + + Firefly III ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности отчСтности, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ваши расходы Π·Π° нСдСлю, мСсяц ΠΈΠ»ΠΈ Π³ΠΎΠ΄. Но это Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свои ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ просмотра списков. Или, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ Ρ‚Π΅Π³ΠΈ? Π­Ρ‚ΠΎ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. + + + JSON ΠΎΡ‚Π΄Ρ‹Ρ… API + + Для ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Firefly III ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ JSON REST API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Firefly III. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, управляйтС катСгориями ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ ΠΈΠ· любого прилоТСния ΠΈΠ»ΠΈ систСмы. +backupIgnore: + - data/logs/* +developer: Firefly III +website: https://www.firefly-iii.org/ +dependencies: [] +repo: https://github.com/firefly-iii/firefly-iii +support: https://docs.firefly-iii.org/firefly-iii +port: 30009 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +releaseNotes: >- + 🚨 Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ бСзопасности: Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ OAuth ΠΌΠΎΠ³Π»ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎ подтвСрТдСния вашСго состояния 2FA, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ позволяло ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ вашим Π΄Π°Π½Π½Ρ‹ΠΌ, нСсмотря Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ MFA. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΆΠ΅ возмоТности. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ столбСц Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ баланса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ обновлялся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ для Π½ΠΎΠ²Ρ‹Ρ… записСй с использованиСм ΠΏΡ€Π°Π²ΠΈΠ». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ Π³ΠΎΠ΄Π°, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π½Π΅Π²Π΅Ρ€Π½Ρ‹Π΅ Π³ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈ сохранСнии ΠΈΠ»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° пароля. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° сморщСнная боковая панСль, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π°ΡΡΡ ΠΏΡ€ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡ΠΊΠ°ΠΌ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/firefly-iii/firefly-iii/releases. +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/378 diff --git a/firefly-iii/docker-compose.yml b/firefly-iii/docker-compose.yml new file mode 100644 index 0000000..ddb2709 --- /dev/null +++ b/firefly-iii/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: firefly-iii_server_1 + APP_PORT: 8080 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: fireflyiii/core:version-6.6.2@sha256:783676cad3a9aed58539ae270d6849f15abefc4300175f1526b3f46b74ad96ce + # Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π· запускаСтся ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ user/group www-data:www-data. + # user: "1000:1000" + restart: on-failure + environment: + APP_KEY: $APP_FIREFLY_III_APP_KEY + DB_HOST: firefly-iii_db_1 + DB_PORT: 3306 + DB_CONNECTION: mysql + DB_DATABASE: fireflyiii + DB_USERNAME: fireflyiii + DB_PASSWORD: moneyprintergobrrr + volumes: + - ${APP_DATA_DIR}/data/upload:/var/www/html/storage/upload + - ${APP_DATA_DIR}/data/logs:/var/www/html/storage/logs + + db: + image: mariadb:10.9.4@sha256:f5146e2e0999a6afcf2a9134bb415ad068bf80ec29704f374f6f7dabb145738d + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/mysql:/var/lib/mysql + environment: + MYSQL_DATABASE: "fireflyiii" + MYSQL_USER: "fireflyiii" + MYSQL_PASSWORD: "moneyprintergobrrr" + MYSQL_ROOT_PASSWORD: "moneyprintergobrrr" diff --git a/firefly-iii/exports.sh b/firefly-iii/exports.sh new file mode 100644 index 0000000..58de982 --- /dev/null +++ b/firefly-iii/exports.sh @@ -0,0 +1 @@ +export APP_FIREFLY_III_APP_KEY=$(derive_entropy "env-${app_entropy_identifier}-APP_KEY" | head -c32) \ No newline at end of file diff --git a/firefly-iii/hooks/pre-start b/firefly-iii/hooks/pre-start new file mode 100755 index 0000000..e809fad --- /dev/null +++ b/firefly-iii/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ΠœΡ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ user/group 33 +# ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ устанавливаСм Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° 33:33. +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")/data" + +DESIRED_OWNER="33:33" + +LOGS_DATA_DIR="${APP_DATA_DIR}/logs" +UPLOAD_DATA_DIR="${APP_DATA_DIR}/upload" + +invoiceninja_correct_permission() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +invoiceninja_correct_permission "${LOGS_DATA_DIR}" +invoiceninja_correct_permission "${UPLOAD_DATA_DIR}" diff --git a/firefox/data/config/.gitkeep b/firefox/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/firefox/dfwebos-app.yml b/firefox/dfwebos-app.yml new file mode 100644 index 0000000..76605ba --- /dev/null +++ b/firefox/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1.2 +id: firefox +category: networking +name: Firefox +version: "139.0.4" +tagline: "Firefox β€” бСсплатный Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ." +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Firefox ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ большС Π½Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π±Π΅Π· HTTPS. + + + ΠŸΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚ΠΈΡ‚Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ самоС Π²Π°ΠΆΠ½ΠΎΠ΅. + + + Никакой ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ»ΠΈ Π»Π°Π·Π΅ΠΉΠΊΠΈ для Ρ€Π΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠŸΡ€ΠΎΡΡ‚ΠΎ молниСносный Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вас Π½Π΅ продаст. + + + ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ всю ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ инструмСнты Π±Π΅Π· вторТСния Π² Π»ΠΈΡ‡Π½ΡƒΡŽ Тизнь. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Firefox собираСт Ρ‚Π°ΠΊ ΠΌΠ°Π»ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ вас, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ трСбуСтся ваш адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΌΡ‹ Π½Π΅ ΠΈΠΌΠ΅Π΅ΠΌ финансовой заинтСрСсованности Π² слСТСнии Π·Π° Π²Π°ΠΌΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. + + + Firefox ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для всСх: + + + Доступный Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 90 языках ΠΈ совмСстимый с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows, Mac ΠΈ Linux, Firefox Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΈ Π³Π΄Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ. Для Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваша опСрационная систСма ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°. +releaseNotes: >- + Π’ этом выпускС Firefox исправлСно мноТСство ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹: + + + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ зависаниС Firefox ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ слоТный Π²Ρ‹Π±ΠΎΡ€ ΠΎΠΏΡ†ΠΈΠΉ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ мСню Π½Π° страницС настроСк Firefox ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‡Π΅Ρ€Π΅Π· поиск Π½Π° страницС. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈ Ρ‚Ρ€ΠΎΠΉΠ½ΠΎΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΠΎ тСксту Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈ установкС изобраТСния Π² качСствС ΠΎΠ±ΠΎΠ΅Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола Π² Windows. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния бСзопасности + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://www.mozilla.org/en-US/firefox/notes/. +developer: Mozilla Foundation +website: https://www.mozilla.org/en-US/firefox/ +dependencies: [] +repo: https://support.mozilla.org/en-US/contribute +support: https://support.mozilla.org/en-US/products/firefox +port: 3434 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/253 +disabled: true diff --git a/firefox/docker-compose.yml b/firefox/docker-compose.yml new file mode 100644 index 0000000..2d33362 --- /dev/null +++ b/firefox/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: firefox_server_1 + APP_PORT: 3000 + + server: + image: linuxserver/firefox:139.0.4@sha256:01c090309f63bc619a1df80bf14fdc87cb6fd922d956da48a968a60ab5a0df6d + restart: on-failure + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + shm_size: "1gb" diff --git a/fizzy/data/app/.gitkeep b/fizzy/data/app/.gitkeep new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/fizzy/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/fizzy/dfwebos-app.yml b/fizzy/dfwebos-app.yml new file mode 100644 index 0000000..d917c20 --- /dev/null +++ b/fizzy/dfwebos-app.yml @@ -0,0 +1,30 @@ +manifestVersion: 1 +id: fizzy +category: social +name: Fizzy +version: "754aaa5" +tagline: Канбан, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ. НС Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ. +description: >- + Fizzy β€” это свСТая, соврСмСнная ΠΈ Π²ΠΎΡΡ…ΠΈΡ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простая ΠΊΠ°Π½Π±Π°Π½-доска ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ 37signals (создатСлСй Basecamp ΠΈ HEY). + + + Устали ΠΎΡ‚ Ρ€Π°Π·Π΄ΡƒΡ‚Ρ‹Ρ… инструмСнтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Trello ΠΈΠ»ΠΈ Jira? Fizzy ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ прСдоставляСт быстрый, ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный способ отслСТивания Π·Π°Π΄Π°Ρ‡, ошибок, ΠΈΠ΄Π΅ΠΉ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Благодаря красочному интСрфСйс, ΠΏΠ»Π°Π²Π½Ρ‹ΠΌ пСрСтаскиваСмым доскам ΠΈ автоматичСскому Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡Π΅ΠΊ ваш Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΈΠΌ ΠΈ сосрСдоточСнным. + + + ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ использования, Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° DFWebOS ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π±Π΅Π· раздувания β€” Канбан, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ. +releaseNotes: "" +developer: 37signals +website: https://www.fizzy.do +dependencies: [] +repo: https://github.com/basecamp/fizzy +support: https://github.com/basecamp/fizzy/issues +port: 8005 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +submitter: Maurice Wipf +submission: https://github.com/getumbrel/dfwebos-apps/pull/4238 diff --git a/fizzy/docker-compose.yml b/fizzy/docker-compose.yml new file mode 100644 index 0000000..4c9a364 --- /dev/null +++ b/fizzy/docker-compose.yml @@ -0,0 +1,31 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: fizzy_server_1 + APP_PORT: 80 + PROXY_AUTH_ADD: 'false' + + server: + image: ghcr.io/mauricewipf/fizzy-umbrel:754aaa5@sha256:3c74a27d749db915c76654bf7590b4d2eee5eeb9cb495e23a52ebe3c51b5e372 + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/app:/rails/storage + environment: + RAILS_ENV: production + SECRET_KEY_BASE: ${APP_SEED} + DATABASE_ADAPTER: sqlite + ACTIVE_STORAGE_SERVICE: local + SOLID_QUEUE_IN_PUMA: 'true' + FORCE_SSL: 'false' + ASSUME_SSL: 'false' + deploy: + resources: + limits: + memory: 2G + cpus: '2' + reservations: + memory: 512M + cpus: '0.5' + restart: on-failure diff --git a/flaresolverr/dfwebos-app.yml b/flaresolverr/dfwebos-app.yml new file mode 100644 index 0000000..9ef5026 --- /dev/null +++ b/flaresolverr/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1 +id: flaresolverr +category: networking +name: flaresolverr +version: "3.4.6" +tagline: ΠŸΡ€ΠΎΠΊΡΠΈ-сСрвСр для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Cloudflare ΠΈ DDoS-GUARD +description: > + FlareSolverr β€” это прокси-сСрвСр, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π±ΠΎΡ‚ΠΎΠ² ΠΈ DDoS ΠΎΡ‚ Cloudflare ΠΈ DDoS-GUARD. + Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡƒΡ‚Π΅ΠΌ запуска прокси-сСрвСра ΠΈ оТидания запросов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + + + Когда запрос ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Selenium с undetected-chromedriver для запуска Π±Π΅Π·Π³ΠΎΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (Chrome). + Π­Ρ‚ΠΎΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠΌΡƒ URL-адрСсу, автоматичСски Ρ€Π΅ΡˆΠ°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСзопасности. + ПослС устранСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ HTML-ΠΊΠΎΠ΄ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ cookie ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. + + + Π­Ρ‚ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ cookie Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ для прямого доступа ΠΊ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ. + Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ постоянныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ сСансы. + + + ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ http://flaresolverr_server_1:8191/v1 Π² качСствС URL-адрСса для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями. +developer: FlareSolverr +website: https://github.com/FlareSolverr/FlareSolverr +dependencies: [] +repo: https://github.com/FlareSolverr/FlareSolverr +support: https://github.com/FlareSolverr/FlareSolverr/issues +port: 8191 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +releaseNotes: "" +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/4125 diff --git a/flaresolverr/docker-compose.yml b/flaresolverr/docker-compose.yml new file mode 100644 index 0000000..afea1ec --- /dev/null +++ b/flaresolverr/docker-compose.yml @@ -0,0 +1,23 @@ +services: + app_proxy: + environment: + APP_HOST: flaresolverr_web_1 + APP_PORT: 8000 + + web: + image: mrsunglasses/flaresolverr-status:0.0.2@sha256:5a12b6ee183b64b87546b5f30537abaf333f7b2cd83856e6e2bcca874d165dc9 + environment: + - URL=http://flaresolverr_server_1:8191/v1 + restart: on-failure + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + + server: + image: ghcr.io/flaresolverr/flaresolverr:v3.4.6@sha256:7962759d99d7e125e108e0f5e7f3cdbcd36161776d058d1d9b7153b92ef1af9e + environment: + LOG_LEVEL: info + restart: on-failure diff --git a/flatnotes/data/.gitkeep b/flatnotes/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/flatnotes/dfwebos-app.yml b/flatnotes/dfwebos-app.yml new file mode 100644 index 0000000..bb9e84d --- /dev/null +++ b/flatnotes/dfwebos-app.yml @@ -0,0 +1,41 @@ +manifestVersion: 1 +id: flatnotes +category: files +name: flatnotes +version: "5.5.4" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ Π±Π΅Π· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. +description: > + πŸ“ Flatnotes β€” это чистоС, Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ с ΡƒΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ относится ΠΊ вашим идСям. КаТдая написанная Π²Π°ΠΌΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ° ΠΆΠΈΠ²Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Markdown Π² простой ΠΏΠ°ΠΏΠΊΠ΅ Π½Π° вашСм сСрвСрС. + Никаких Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ привязки ΠΊ поставщику, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ слоТной структуры. Π’Ρ‹ всСгда ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ свои мысли ΠΈ Π΄Π°Π½Π½Ρ‹Π΅. + + + + Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π½Π΅ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ вас, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° письмС. Быстро создавайтС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, добавляйтС Ρ‚Π΅Π³ΠΈ ΠΈ просматривайтС свои знания с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ полнотСкстового поиска. + Викиссылки ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ, прСвращая ваши Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π² ΡΠ΅Ρ‚ΡŒ Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π½Π°Π½ΠΈΠΉ. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ Markdown ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ WYSIWYG всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Ρƒ вас мСняСтся настроСниС. + + + + Flatnotes остаСтся Π»Π΅Π³ΠΊΠΈΠΌ, Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ. ВсС синхронизируСтся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π²Π½Π΅ прилоТСния. + ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с любого устройства с Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠ΄ΠΎΠ±Π΅Π½ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ Π·Π° столом ΠΈΠ»ΠΈ Π²Π΄Π°Π»ΠΈ ΠΎΡ‚ ΠΌΠΈΡ€Π°. + ВСмизация сдСлаСт вашС пространство ΡƒΡŽΡ‚Π½Ρ‹ΠΌ благодаря красивым свСтлым ΠΈ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌ. + + + + Flatnotes освобоТдаСт ваши Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Ρ… Ρ€Π°ΠΌΠΎΠΊ ΠΈ позволяСт ΠΈΠΌ Π΄Ρ‹ΡˆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Markdown, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅. + Он ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ вашим Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π΄Π½Π΅Π²Π½ΠΈΠΊΠΎΠΌ, ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ Π² исслСдованиях, Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ садом ΠΈΠ»ΠΈ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π΅Ρ‰Π΅, Π²ΠΎ Ρ‡Ρ‚ΠΎ вырастСт вашС творчСство. ЧистоС письмо. Чистая ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ. НулСвой ΡˆΡƒΠΌ. +developer: Adam Dullage +website: https://github.com/dullage/flatnotes +dependencies: [] +repo: https://github.com/dullage/flatnotes +support: https://github.com/dullage/flatnotes/issues +port: 8523 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "admin" +deterministicPassword: true +releaseNotes: "" +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3895 diff --git a/flatnotes/docker-compose.yml b/flatnotes/docker-compose.yml new file mode 100644 index 0000000..658428d --- /dev/null +++ b/flatnotes/docker-compose.yml @@ -0,0 +1,20 @@ +services: + app_proxy: + environment: + APP_HOST: flatnotes_server_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + + server: + image: dullage/flatnotes:v5.5.4@sha256:a509830073d6548d35450a98be3a432716430b674cc70ac93cbbaed1555b5a28 + environment: + PUID: 1000 + PGID: 1000 + FLATNOTES_AUTH_TYPE: "password" + FLATNOTES_USERNAME: "admin" + FLATNOTES_PASSWORD: ${APP_PASSWORD} + FLATNOTES_SECRET_KEY: ${APP_SEED} + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data diff --git a/forgejo/data/db/.gitkeep b/forgejo/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/forgejo/data/forgejo/config/.gitkeep b/forgejo/data/forgejo/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/forgejo/data/forgejo/data/.gitkeep b/forgejo/data/forgejo/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/forgejo/dfwebos-app.yml b/forgejo/dfwebos-app.yml new file mode 100644 index 0000000..a2b6036 --- /dev/null +++ b/forgejo/dfwebos-app.yml @@ -0,0 +1,62 @@ +manifestVersion: 1.1 +id: forgejo +category: developer +name: Forgejo +version: "11.0.11" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ лСгкая ΠΊΡƒΠ·Π½ΠΈΡ†Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния +description: >- + Forgejo β€” это лСгковСсная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ, разработанная ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ автономная ΠΈ ΡƒΠ²Π°ΠΆΠ°ΡŽΡ‰Π°Ρ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° GitHub, GitLab ΠΈ Bitbucket. Π­Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Gitea с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ сообщСством. Forgejo написан Π½Π° Go ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ с Π½ΠΈΠ·ΠΊΠΈΠΌΠΈ рСсурсами, Ρ‚Π°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ Raspberry Pi. + + + πŸ”‘ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности: + + + 🏠 ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ + + 🎯 ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ + + πŸ‘₯ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью/ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ/Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ + + πŸ•ΆοΈ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Tor + + πŸ› οΈ ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΈ/ΠΊΠ»ΡŽΡ‡ΠΈ развСртывания рСпозитория Git + + πŸ“ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ, запросы Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΈΠΊΠΈ + + πŸ‘€ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ соавторов рСпозитория + + 🌐 Π“Ρ€Π°Π²Π°Ρ‚Π°Ρ€ ΠΈ собствСнный исходный ΠΊΠΎΠ΄ + + πŸ–₯️ Админ-панСль + + βš™οΈ ДСйствия Forgejo для CI/CD + + πŸš€ Π›Π΅Π³ΠΊΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ + + + 🌍 Forgejo прСдставлСн Π²Π°ΠΌ ΠΈΠ½ΠΊΠ»ΡŽΠ·ΠΈΠ²Π½Ρ‹ΠΌ сообщСством ΠΏΠΎΠ΄ эгидой Codeberg e.V., дСмократичСской нСкоммСрчСской ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ 100% бСсплатноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. +developer: Forgejo Community +website: https://forgejo.org/ +dependencies: [] +repo: https://codeberg.org/forgejo/forgejo +support: https://codeberg.org/forgejo/forgejo/issues +port: 8101 +path: "" +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + 🚨 Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ исправлСния бСзопасности: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° запроса PKCE для ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° удостовСрСний OAuth ΠΏΡ€ΠΈ использовании Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° S256. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ области дСйствия ΠΏΡ€ΠΈ использовании Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² носитСля OAuth с Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ HTTP. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволяли ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ влоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²Π»Π°Π΄Π΅Π». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ увСдомлСния ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… выпусках, отправляСмыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ потСряли доступ ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ»ΠΈ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ/ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ допускали нСсанкционированныС измСнСния состояния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, которая позволяла нСсанкционированно ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ автоматичСскоС слияниС запросов Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΏΡƒΡ‚ΠΈ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… пСрСнаправлСния послС Π²Ρ…ΠΎΠ΄Π° Π² систСму, которая ΠΌΠΎΠ³Π»Π° Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ пСрСнаправлСния. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://forgejo.org/releases/. +submitter: John Wilddip +submission: https://github.com/getumbrel/dfwebos-apps/pull/2221 diff --git a/forgejo/docker-compose.yml b/forgejo/docker-compose.yml new file mode 100644 index 0000000..b5ba52a --- /dev/null +++ b/forgejo/docker-compose.yml @@ -0,0 +1,50 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: forgejo_server_1 + APP_PORT: 8101 + PROXY_AUTH_ADD: "false" + + server: + image: codeberg.org/forgejo/forgejo:11.0.11-rootless@sha256:3372178750d690c577487dbf37b07d6a20cf2364acf876ca217d0ffa13046590 + user: "1000:1000" + restart: on-failure + ports: + - "${APP_FORGEJO_SSH_PORT}:${APP_FORGEJO_SSH_PORT}" + volumes: + - ${APP_DATA_DIR}/data/forgejo/data:/var/lib/gitea + - ${APP_DATA_DIR}/data/forgejo/config:/etc/gitea + environment: + FORGEJO__security__INSTALL_LOCK: "true" + FORGEJO__server__DOMAIN: "${APP_DOMAIN}" + FORGEJO__server__HTTP_PORT: 8101 + FORGEJO__server__SSH_DOMAIN: "${APP_DOMAIN}" + FORGEJO__server__SSH_PORT: "${APP_FORGEJO_SSH_PORT}" + FORGEJO__server__SSH_LISTEN_PORT: "${APP_FORGEJO_SSH_PORT}" + FORGEJO__server__START_SSH_SERVER: "true" + FORGEJO__database__DB_TYPE: "postgres" + FORGEJO__database__HOST: "forgejo_db_1:5432" + FORGEJO__database__NAME: "forgejo" + FORGEJO__database__USER: "forgejo" + FORGEJO__database__PASSWD: "forgejo" + depends_on: + db: + condition: service_healthy + + db: + image: postgres:17.3@sha256:0321e2252ebfeecb8bc1a899755084d29bce872953e1a5a3e25ec0860b739098 + restart: on-failure + user: "1000:1000" + environment: + POSTGRES_USER: forgejo + POSTGRES_PASSWORD: forgejo + POSTGRES_DB: forgejo + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U forgejo"] + interval: 5s + timeout: 5s + retries: 5 diff --git a/forgejo/exports.sh b/forgejo/exports.sh new file mode 100644 index 0000000..bfb7c22 --- /dev/null +++ b/forgejo/exports.sh @@ -0,0 +1,2 @@ +export APP_FORGEJO_SSH_PORT="2223" +export APP_FORGEJO_TOR_HS_EXTRA_PORTS="22:forgejo_server_1:${APP_FORGEJO_SSH_PORT}" diff --git a/formicaio/data/formicaio/.gitkeep b/formicaio/data/formicaio/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/formicaio/dfwebos-app.yml b/formicaio/dfwebos-app.yml new file mode 100644 index 0000000..69d8757 --- /dev/null +++ b/formicaio/dfwebos-app.yml @@ -0,0 +1,96 @@ +manifestVersion: 1 +id: formicaio +name: Formicaio +tagline: ЗапускайтС ΡƒΠ·Π»Ρ‹ Π² ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠΉ (P2P) сСти Autonomi. +category: crypto +version: "0.6.2" +port: 52100 +description: >- + ## УпроститС свою Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Formicaio + + Formicaio β€” это ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, созданноС для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΡƒΠ·Π»Ρ‹ Π½Π° + ΡΠ΅Ρ‚ΡŒ [Autonomi](https://autonomi.com). Π­Ρ‚Π° P2P-ΡΠ΅Ρ‚ΡŒ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ + для совмСстного использования Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ пропускной способности Π² ΠΎΠ±ΠΌΠ΅Π½ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ANT, Ρ‚ΠΎΠΊΠ΅Π½ ERC-20 + Π² сСти Arbitrum One. + + НазваниС Β«Π€ΠΎΡ€ΠΌΠΈΠΊΠ°ΠΉΠΎΒ» происходит ΠΎΡ‚ ΠΈΡ‚Π°Π»ΡŒΡΠ½ΡΠΊΠΎΠ³ΠΎ слова Β«ΠΌΡƒΡ€Π°Π²Π΅ΠΉΠ½ΠΈΠΊΒ». + символизируя ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ ΠΊΠ°ΠΊ ΠΌΡƒΡ€Π°Π²ΡŒΠ΅Π², Ρ‚Π°ΠΊ ΠΈ + Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡƒΡ€Π°Π²ΡŒΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ + ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ свои ΠΊΠΎΠ»ΠΎΠ½ΠΈΠΈ, Formicaio Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π°Ρ‚ΡŒ ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ свой Π²ΠΊΠ»Π°Π΄ + Π² ΡΠ΅Ρ‚ΡŒ Autonomi. + + ## Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π°ΠΌΠΈ стало ΠΏΡ€ΠΎΡ‰Π΅ + + Π‘ Formicaio Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΡƒΠ·Π»Ρ‹ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ графичСского + ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс (GUI) ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». Вакая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ + Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия Π½Π°Π΄ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ², Π² Ρ‚ΠΎΠΌ числС: + - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² + - Запуск ΠΈΠ»ΠΈ остановка ΡƒΠ·Π»ΠΎΠ² + - ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡƒΠ·Π»ΠΎΠ² для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΡƒΠ·Π»Π°. + - Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»ΠΎΠ² + - ОбновлСниС ΡƒΠ·Π»ΠΎΠ² ΠΏΡ€ΠΈ появлСнии Π½ΠΎΠ²ΠΎΠΉ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ вСрсии. + - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ + - ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ использования памяти ΠΈ процСссора с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ. + - Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΡƒΠ·Π»ΠΎΠ² ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ критСриям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π°Ρ‚Π° создания, статус ΠΈΠ»ΠΈ количСство ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ². + + БСрвСрная Ρ‡Π°ΡΡ‚ΡŒ Formicaio Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ отслСТиваСт ваши ΡƒΠ·Π»Ρ‹, прСдоставляя ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + обновлСния статуса ΠΈ статистика, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ: + - Баланс Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° + - ИспользованиС памяти ΠΈ процСссора + - ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ записСй, хранящихся локально + - Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹Π΅ соСдинСния + - ΠŸΠΈΡ€Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ + - ΠŸΠΈΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·Π±Π΅Π³Π°Π»ΠΈ ΡƒΠ·Π»Π°(ΠΎΠ²) + - ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ количСство ΡƒΠ·Π»ΠΎΠ² Π² сСти + + ## НастраиваСмый ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ + + ПанСль настроСк позволяСт Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ управлСния ΡƒΠ·Π»Π°ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ: + - АвтоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»ΠΎΠ² ΠΏΡ€ΠΈ появлСнии Π½ΠΎΠ²ΠΎΠΉ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ вСрсии. + - Настройки Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ для ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΡƒΠ·Π»ΠΎΠ². + - Частота ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ вСрсии Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΡƒΠ·Π»Π°. + - Частота запросов баланса Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² + - Частота получСния ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΡƒΠ·Π»Π°Ρ… + - ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ адрСса ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° Ρ‚ΠΎΠΊΠ΅Π½Π° ERC20 ΠΈ URL-адрСса RPC для запросов баланса вознаграТдСния. + + ## Π’ΠΈΠΏΡ‹ соСдинСний для ΡƒΠ·Π»ΠΎΠ² + + ΠŸΡ€ΠΈ настройкС ΡƒΠ·Π»ΠΎΠ² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ собствСнный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄Π°Π½Π½Ρ‹Ρ…: + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° UPnP: ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ UPnP для открытия ΠΏΠΎΡ€Ρ‚Π° Π½Π° домашнСм ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ для входящих соСдинСний. Если ваш ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ UPnP, создайтС ΡƒΠ·Π»Ρ‹ с ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ UPnP, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. + - IP-адрСс ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ: этот адрСс опрСдСляСт, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ сСтСвому интСрфСйсу Π±ΡƒΠ΄Π΅Ρ‚ привязан ΡƒΠ·Π΅Π» для входящих ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ адрСса IPv4 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, `0.0.0.0`, `127.0.0.1`) ΠΈ IPv6 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, `::`, `fe80::1`), позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, доступСн Π»ΠΈ ΡƒΠ·Π΅Π» Π½Π° всСх интСрфСйсах, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ локально ΠΈΠ»ΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ сСти. Вакая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для запуска ΡƒΠ·Π»ΠΎΠ² Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСдах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ локальная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, частныС сСти ΠΈΠ»ΠΈ общСдоступныС развСртывания. + - ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…: Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΡƒΠ·Π΅Π» Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свои постоянныС Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Назначая ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΡƒΠ·Π»ΠΎΠ², ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСсколько ΡƒΠ·Π»ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚Π° опция особСнно ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… настроСк ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ запускС ΡƒΠ·Π»ΠΎΠ² с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ТСсткими дисками ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ монтирования. +widgets: + - id: "formicaio-stats" + type: "four-stats" + refresh: "5s" + endpoint: "formicaio_proxy:52100/api/stats_widget" + link: "" + example: + type: "four-stats" + link: "" + items: + - title: "Total balance" + text: "1.7181" + subtext: "" + - title: "Active nodes" + text: "15/15" + subtext: "" + - title: "Stored records" + text: "69" + subtext: "" + - title: "Network size" + text: "3897207" + subtext: "" +developer: bochaco +website: https://github.com/bochaco/formicaio +submitter: bochaco +submission: https://github.com/getumbrel/dfwebos-apps/pull/1565 +dependencies: [] +repo: https://github.com/bochaco/formicaio +support: https://github.com/bochaco/formicaio/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: "" +path: "" diff --git a/formicaio/docker-compose.yml b/formicaio/docker-compose.yml new file mode 100644 index 0000000..f98a414 --- /dev/null +++ b/formicaio/docker-compose.yml @@ -0,0 +1,29 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: formicaio_proxy_1 + APP_PORT: 52100 + + proxy: + image: bochaco/formicaio_proxy:0.3.0@sha256:49a8f7b1787aa356c9c444fe75b90fbd09da4d9a0be00c3f753e997a3196e1f9 + user: 1000:1000 + environment: + FORMICAIO_ADDR: host.docker.internal:3000 + FORMICAIO_PROXY_PORT: 52100 + extra_hosts: + - host.docker.internal:host-gateway + + app: + image: bochaco/formicaio:0.6.2-native-lcd-disabled@sha256:45d03ee6f65cfc294ba718e5d9e6607009b87331e9886965c4a14714de5a2148 + restart: on-failure + user: 1000:1000 + network_mode: host + stop_grace_period: 5s + environment: + DB_PATH: /data + NODE_MGR_ROOT_DIR: /data + LEPTOS_SITE_ADDR: 0.0.0.0:3000 + volumes: + - ${APP_DATA_DIR}/data/formicaio:/data diff --git a/fossflow/data/diagrams/.gitkeep b/fossflow/data/diagrams/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/fossflow/dfwebos-app.yml b/fossflow/dfwebos-app.yml new file mode 100644 index 0000000..f2bad45 --- /dev/null +++ b/fossflow/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1 +id: fossflow +category: networking +name: FossFLOW +version: "0da9ff3" +tagline: Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ красивыС изомСтричСскиС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ инфраструктуры. +description: >- + FossFLOW - это ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ прогрСссивноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (PWA) с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, созданноС для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ элСгантных ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… **изомСтричСских Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ**. + Оно Π»Π΅Π³ΠΊΠΎΠ΅, быстроС ΠΈ Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½ΠΎΠ΅ ΠΊ приватности: всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ локально Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. + + + ✨ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности + - 🎨 **Π˜Π·ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹** - создавайтС Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠ΅ тСхничСскиС ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π² 3D-стилС Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… усилий. + - πŸ’Ύ **АвтосохранСниС** - ваша Ρ€Π°Π±ΠΎΡ‚Π° автоматичСски сохраняСтся ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 5 сСкунд, поэтому прогрСсс Π½Π΅ тСряСтся. + - πŸ”’ **ΠŸΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго** - 100% Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°; всС Π΄Π°Π½Π½Ρ‹Π΅ хранятся локально Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. + - πŸ“€ **Π˜ΠΌΠΏΠΎΡ€Ρ‚/экспорт** - сохраняйтС ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ своСй Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ JSON-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΅Π΅ Π² любоС врСмя. + - 🎯 **Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ сСссии** - быстроС сохранСниС Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… запросов ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ². + - 🌐 **ΠžΡ„Π»Π°ΠΉΠ½-ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°** - создавайтС ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. + - 🌍 **ΠœΠ½ΠΎΠ³ΠΎΡΠ·Ρ‹Ρ‡Π½Ρ‹ΠΉ интСрфСйс** - доступно Π½Π° 8 языках: English, η€δ½“δΈ­ζ–‡, Espanol, Portugues, Francais, ΰ€Ήΰ€Ώΰ€¨ΰ₯ΰ€¦ΰ₯€, বাংলা, Русский. + + + πŸš€ **ΠŸΠΎΡ‡Π΅ΠΌΡƒ FossFLOW?** + + + FossFLOW Π΄Π°Π΅Ρ‚ возмоТности изомСтричСского проСктирования всСм: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, сСтСвым ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°ΠΌ ΠΈ прСподаватСлям. + Он ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ систСм, Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов ΠΈ инфраструктурных схСм Π±Π΅Π· нСобходимости Π² ΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… инструмСнтах ΠΈΠ»ΠΈ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записях. +developer: stan-smith +website: https://github.com/stan-smith/FossFLOW +repo: https://github.com/stan-smith/FossFLOW +support: https://github.com/stan-smith/FossFLOW/issues +port: 8176 +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3959 +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Π°Π·ΠΎΠ²ΠΎΠΉ HTTP-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ сбои Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡ΠΊΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡ΠΊΠΎΠ². + - Π’ΠΊΠ»Π°Π΄ΠΊΠΈ настроСк стали ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ скрытиС ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. + - УстранСны уязвимости бСзопасности Π² зависимостях. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу: https://github.com/stan-smith/FossFLOW/blob/master/CHANGELOG.md. +dependencies: [] +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +permissions: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/fossflow/docker-compose.yml b/fossflow/docker-compose.yml new file mode 100644 index 0000000..10d73d9 --- /dev/null +++ b/fossflow/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: fossflow_web_1 + APP_PORT: "80" + + web: + image: stnsmith/fossflow:master-0da9ff3@sha256:5554f931d6197ae1e3c12045089d436dc42181e5f94dc7cfff6dd0357a8b0089 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/diagrams:/data/diagrams + environment: + - NODE_ENV=production + - ENABLE_SERVER_STORAGE=true + - STORAGE_PATH=/data/diagrams + - ENABLE_GIT_BACKUP=false diff --git a/freshrss/data/.gitkeep b/freshrss/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/freshrss/dfwebos-app.yml b/freshrss/dfwebos-app.yml new file mode 100644 index 0000000..3dc9967 --- /dev/null +++ b/freshrss/dfwebos-app.yml @@ -0,0 +1,65 @@ +manifestVersion: 1 +id: freshrss +category: social +name: FreshRSS +version: "1.28.1" +tagline: БСсплатный Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ RSS-ΠΊΠ°Π½Π°Π»ΠΎΠ². +description: >- + FreshRSS β€” Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° чтСния RSS. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π΅Π±-сайтов ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. + быстрый взгляд Π±Π΅Π· нСобходимости ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π΅Π±-сайта Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. + + + FreshRSS ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС: + + - АгрСгация RSS ΠΈ Atom + + - ΠžΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΊΠ°ΠΊ ΠΈΠ·Π±Ρ€Π°Π½Π½ΡƒΡŽ, Ссли ΠΎΠ½Π° Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ ΠΈΠ»ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π΅ ΠΏΠΎΠ·ΠΆΠ΅. + + - Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ поиска ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΠΈ. + + - Бтатистика, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ частоту ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π½Π° всСх Π²Π΅Π±-сайтах, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ подписаны. + + - Π˜ΠΌΠΏΠΎΡ€Ρ‚/экспорт Π²Π°ΡˆΠΈΡ… ΠΊΠ°Π½Π°Π»ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ OPML (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅) + + - ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅! +releaseNotes: >- + Π’ этом выпускС основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся исправлСниям ошибок, Π² частности ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ вСрсии 1.28.0. + + + НовыС возмоТности: + - НастраиваСмоС сообщСниС для Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… рСгистраций. + - Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ отобраТаСтся Π² ΠΆΡƒΡ€Π½Π°Π»Π°Ρ… доступа Apache для запросов API. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ сохранСнных поисков Π² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ…. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° дСйствий Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° для ΠΌΠ΅Ρ‚ΠΎΠΊ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° функция поиска ΠΏΠΎ Ρ‚Π΅Π³Π°ΠΌ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π»Π΅Π½Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ доступ ΠΊ RSS ΠΈ OPML ΠΏΠΎ Ρ‚ΠΎΠΊΠ΅Π½Ρƒ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ярлык для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π½Π΅ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ врСмя ΠΆΠΈΠ·Π½ΠΈ cookie ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ сСанса. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠ°Π½Π°Π»Π° ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ URL-адрСса ΠΊΠ°Π½Π°Π»Π°. + - Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ большС Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π½Π΅ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… статСй. + + + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: + - ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ подсчСт статСй Π² ΠΌΠ΅Ρ‚ΠΊΠ°Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ для Ajax-запросов. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/FreshRSS/FreshRSS/releases. +developer: FreshRSS Org +website: https://freshrss.org/ +dependencies: [] +repo: https://github.com/FreshRSS/FreshRSS +support: https://github.com/FreshRSS/FreshRSS/issues +port: 3432 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/700 diff --git a/freshrss/docker-compose.yml b/freshrss/docker-compose.yml new file mode 100644 index 0000000..64c8978 --- /dev/null +++ b/freshrss/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: freshrss_server_1 + APP_PORT: 80 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: linuxserver/freshrss:1.28.1@sha256:873fa0d53fbdfeca6f9fcd1c001aeec3db80e5918637f90dc4489495bb858253 + restart: on-failure + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data:/config diff --git a/frigate/data/config/config.yml b/frigate/data/config/config.yml new file mode 100644 index 0000000..b32f410 --- /dev/null +++ b/frigate/data/config/config.yml @@ -0,0 +1,14 @@ +mqtt: + enabled: False + +cameras: + name_of_your_camera: # <------ Name the camera + ffmpeg: + inputs: + - path: rtsp://10.0.10.10:554/rtsp # <----- The stream you want to use for detection + roles: + - detect + detect: + enabled: False # <---- disable detection until you have a working camera feed + width: 1280 # <---- update for your camera's resolution + height: 720 # <---- update for your camera's resolution \ No newline at end of file diff --git a/frigate/data/storage/.gitkeep b/frigate/data/storage/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/frigate/dfwebos-app.yml b/frigate/dfwebos-app.yml new file mode 100644 index 0000000..54c91e6 --- /dev/null +++ b/frigate/dfwebos-app.yml @@ -0,0 +1,58 @@ +manifestVersion: 1 +id: frigate +category: automation +name: Frigate +version: "0.17.1" +tagline: ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСтСвой видСорСгистратор +description: >- + ΠŸΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСтСвой видСорСгистратор, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для Home Assistant с ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ИИ. + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ OpenCV ΠΈ Tensorflow для локального обнаруТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для IP-ΠΊΠ°ΠΌΠ΅Ρ€. + + + πŸ› οΈ ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ + + + - Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ свои ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ прямо Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π€Ρ€Π΅Π³Π°Ρ‚, Π½Π΅Ρ‚ нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. + + + - Π’Π°Ρˆ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ RTSP (ΠΏΡ€ΠΈ нСобходимости) β€” это Β«ΠΏΠ°Ρ€ΠΎΠ»ΡŒ прилоТСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отобраТаСтся Π½Π° страницС Frigate Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (отобраТаСтся послС установки). +releaseNotes: >- + ⚠️ Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π€Ρ€Π΅Π³Π°Ρ‚ попытаСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ свою ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ автоматичСски. ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ рСкомСндуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. + + + 🚨 Π­Ρ‚ΠΎ слуТСбная вСрсия с исправлСниями бСзопасности ΠΈ ошибками: + - ΠšΠΎΠ½Π΅Ρ‡Π½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€ΠΎΠ»ΡŒΡŽ администратора. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° аутСнтификация ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ шкалС ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Π²ΠΎΠ΄Π° РКНН ArcFace. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° очистки Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΊΠΎΠ³Π΄Π° Π€Ρ€Π΅Π³Π°Ρ‚ находится Π² бСзопасном Ρ€Π΅ΠΆΠΈΠΌΠ΅. + + + Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ воспроизвСдСниС Π²ΠΈΠ΄Π΅ΠΎ Π² дСталях отслСТивания. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ поиск ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° кодирования ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ go2rtc. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с GenAI. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° аудиособытий. + - Push-увСдомлСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ доступу ΠΊ ΠΊΠ°ΠΌΠ΅Ρ€Π΅ Ρ€ΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ интСрфСйс. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/blakeblackshear/frigate/releases. +developer: Blake Blackshear +website: https://frigate.video/ +repo: https://github.com/blakeblackshear/frigate +support: https://github.com/blakeblackshear/frigate/issues +port: 5004 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +deterministicPassword: true +dependencies: [] +permissions: + - GPU +submitter: ~dibref-labter +submission: https://github.com/getumbrel/dfwebos-apps/pull/843 diff --git a/frigate/docker-compose.yml b/frigate/docker-compose.yml new file mode 100644 index 0000000..b8db177 --- /dev/null +++ b/frigate/docker-compose.yml @@ -0,0 +1,28 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: frigate_web_1 + APP_PORT: 5000 + PROXY_AUTH_ADD: "false" + + web: + privileged: true # this may not be necessary for all setups + restart: on-failure + image: ghcr.io/blakeblackshear/frigate:0.17.1@sha256:1724960349dad0bd2ae8ec884171a6fd5755a4dc242a0e66cadbda9c0e85c99b + shm_size: "128mb" # update for your cameras based on calculation above + volumes: + - /etc/localtime:/etc/localtime:ro + - ${APP_DATA_DIR}/data/config:/config + - ${APP_DATA_DIR}/data/storage:/media/frigate + # - Ρ‚ΠΈΠΏ: tmpfs # Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: 1 Π“Π‘ памяти, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ износ ΠΊΠ°Ρ€Ρ‚Ρ‹ SSD/SD + # target: /tmp/cache + # tmpfs: + # size: 1000000000 + ports: + - "8554:8554" # RTSP feeds + - "8555:8555/tcp" # WebRTC over tcp + - "8555:8555/udp" # WebRTC over udp + environment: + FRIGATE_RTSP_PASSWORD: ${APP_PASSWORD} diff --git a/frigate/hooks/pre-start b/frigate/hooks/pre-start new file mode 100755 index 0000000..8b53aab --- /dev/null +++ b/frigate/hooks/pre-start @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Если ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ сущСствуСт, Ρ‚ΠΎ это установка Π΄ΠΎ вСрсии 0.13.2, которая Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ критичСскиС измСнСния Ρ„Ρ€Π΅Π³Π°Ρ‚Π°: +# https://github.com/blakeblackshear/frigate/releases/tag/v0.13.0 + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")/data" +CONFIG_DIR="${APP_DATA_DIR}/config" +OLD_CONFIG_FILE="${APP_DATA_DIR}/config.yml" + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ссли ΠΎΠ½ Π½Π΅ сущСствуСт. +if [ ! -d "${CONFIG_DIR}" ]; then + mkdir -p "${CONFIG_DIR}" && chown 1000:1000 "${CONFIG_DIR}" + + # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ старый Ρ„Π°ΠΉΠ» config.yml Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ссли ΠΎΠ½ сущСствуСт. + # Если ΠΎΠ½ Π½Π΅ сущСствуСт, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ΄Π°Π»ΠΈΠ» Π΅Π³ΠΎ. + if [ -f "${OLD_CONFIG_FILE}" ]; then + mv "${OLD_CONFIG_FILE}" "${CONFIG_DIR}/" + else + echo "The old Frigate config file does not exist." + fi +fi diff --git a/fulcrum/data/fulcrum-logs/.gitkeep b/fulcrum/data/fulcrum-logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/fulcrum/data/fulcrum/.gitkeep b/fulcrum/data/fulcrum/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/fulcrum/dfwebos-app.yml b/fulcrum/dfwebos-app.yml new file mode 100644 index 0000000..d6fb322 --- /dev/null +++ b/fulcrum/dfwebos-app.yml @@ -0,0 +1,44 @@ +manifestVersion: 1.1 +id: fulcrum +implements: + - electrs +category: bitcoin +name: Fulcrum +version: "2.1.0" +tagline: Быстрый ΠΈ ΠΌΠ°Π½Π΅Π²Ρ€Π΅Π½Π½Ρ‹ΠΉ сСрвСр Electrum +description: >- + ЗапуститС свой Π»ΠΈΡ‡Π½Ρ‹ΠΉ сСрвСр Electrum ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свой кошСлСк, совмСстимый с Electrum, + Π²ΠΊΠ»ΡŽΡ‡Π°Ρ BitBoxApp, BlueWallet, Electrum Wallet (Android ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€), Nunchuk + (ДСсктоп), Phoenix ΠΈ Sparrow Wallet вмСсто использования сторонних + Π‘Π΅Ρ€Π²Π΅Ρ€ Π­Π»Π΅ΠΊΡ‚Ρ€ΡƒΠΌ. + + + ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Fulcrum ΠΎΡ‚ Кэлина ΠšΡƒΠ»ΠΈΠ°Π½Ρƒ +developer: Calin Culianu +website: https://fulcrumserver.org/ +submitter: Sahil Phule +submission: https://github.com/getumbrel/dfwebos-apps/pull/1531 +dependencies: + - bitcoin +repo: https://github.com/cculianu/Fulcrum +support: https://github.com/cculianu/Fulcrum/issues +port: 2109 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultPassword: "" +releaseNotes: >- + Fulcrum 2.1.0 β€” это Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Electrum Cash v1.6, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² основном для Bitcoin. Он Ρ‚Π°ΠΊΠΆΠ΅ содСрТит исправлСния ошибок, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠΈΡ€ΠΈΠ½Π³Π°. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Electrum Cash v1.6. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΈΡ€ΠΈΠ½Π³Π°. Fulcrum большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ соСдинСния со всСми ΡƒΠ·Π»Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ сниТаСт Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° соСдинСниС. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° тайная ошибка сбоя ΠΏΡ€ΠΈ использовании UPnP с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 1024 ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/cculianu/Fulcrum/releases/tag/v2.1.0. +backupIgnore: + - data/fulcrum/fulc2_db diff --git a/fulcrum/docker-compose.yml b/fulcrum/docker-compose.yml new file mode 100644 index 0000000..46f1fee --- /dev/null +++ b/fulcrum/docker-compose.yml @@ -0,0 +1,69 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_FULCRUM_IP + APP_PORT: 3006 + + app: + image: nmfretz/umbrel-fulcrum:1.0.1@sha256:7ebcb84446e55dbbde7711a4ac2d65ca65c55d0092e6640b41ca2d9c4539a3ff + depends_on: + - fulcrum + restart: on-failure + environment: + ELECTRUM_HIDDEN_SERVICE: "${APP_FULCRUM_RPC_HIDDEN_SERVICE}" + ELECTRUM_LOCAL_SERVICE: "${DEVICE_DOMAIN_NAME}" + ELECTRUM_HOST: "${APP_FULCRUM_NODE_IP}" + ELECTRUM_PUBLIC_CONNECTION_PORT: ${APP_FULCRUM_NODE_PORT} + BITCOIN_HOST: "${APP_BITCOIN_NODE_IP}" + RPC_USER: "${APP_BITCOIN_RPC_USER}" + RPC_PASSWORD: "${APP_BITCOIN_RPC_PASS}" + RPC_PORT: "${APP_BITCOIN_RPC_PORT}" + volumes: + - "${APP_DATA_DIR}/data/fulcrum-logs:/fulcrum-logs" + networks: + default: + ipv4_address: $APP_FULCRUM_IP + + fulcrum: + image: cculianu/fulcrum:v2.1.0@sha256:71cb19ce9f8318edae1b581a793588c98f55f2f28c12e17327c478ed963ef4e3 + init: true + # ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ΡΡŒ Π½Π° стандартный SIGTERM Docker; Fulcrum считаСт SIGTERM/SIGINT/SIGQUIT изящным + # Π©Π΅Π΄Ρ€Ρ‹ΠΉ Π»ΡŒΠ³ΠΎΡ‚Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ SIGKILL Π²ΠΎ врСмя checkpoint/flush ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ + stop_grace_period: 5m + restart: on-failure + user: "1000:1000" + environment: + TCP: 0.0.0.0:${APP_FULCRUM_NODE_PORT} + ADMIN: 0.0.0.0:${APP_FULCRUM_ADMIN_PORT} + BITCOIND: ${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT} + RPCUSER: ${APP_BITCOIN_RPC_USER} + RPCPASSWORD: ${APP_BITCOIN_RPC_PASS} + PEERING: "false" + ANNOUNCE: "false" + DATA_DIR: /data + # Exec Fulcrum ΠΊΠ°ΠΊ PID1, поэтому ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ SIGTERM Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ; FIFO+tee Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΆΡƒΡ€Π½Π°Π»Ρ‹ Π΄ΠΎΠΊΠ΅Ρ€Π° ΠΈ /logs/fulcrum.log + # rm -f Π΄Π΅Π»Π°Π΅Ρ‚ созданиС FIFO ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½Ρ‹ΠΌ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… restarts/crash + command: > + sh -c 'rm -f /tmp/fulcrum.pipe; mkfifo /tmp/fulcrum.pipe; + tee -a /logs/fulcrum.log < /tmp/fulcrum.pipe & + exec Fulcrum -D /data _ENV_ > /tmp/fulcrum.pipe 2>&1' + volumes: + - "${APP_DATA_DIR}/data/fulcrum:/data" + - "${APP_DATA_DIR}/data/fulcrum-logs:/logs" + ports: + - "${APP_FULCRUM_NODE_PORT}:${APP_FULCRUM_NODE_PORT}" + networks: + default: + ipv4_address: $APP_FULCRUM_NODE_IP + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" diff --git a/fulcrum/exports.sh b/fulcrum/exports.sh new file mode 100644 index 0000000..ee16104 --- /dev/null +++ b/fulcrum/exports.sh @@ -0,0 +1,22 @@ +export APP_FULCRUM_IP="10.21.22.200" +export APP_FULCRUM_NODE_IP="10.21.21.200" + +export APP_FULCRUM_NODE_PORT="50002" +export APP_FULCRUM_ADMIN_PORT="8000" + +for var in \ + IP \ + NODE_IP \ + NODE_PORT \ +; do + electrs_var="APP_ELECTRS_${var}" + fulcrum_var="APP_FULCRUM_${var}" + if [ -n "${!fulcrum_var-}" ]; then + export "$electrs_var"="${!electrs_var:=${!fulcrum_var}}" + else + echo "Warning: $fulcrum_var is unset or empty" + fi +done + +rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rpc/hostname" +export APP_FULCRUM_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" diff --git a/fulcrum/hooks/pre-start b/fulcrum/hooks/pre-start new file mode 100755 index 0000000..5beed29 --- /dev/null +++ b/fulcrum/hooks/pre-start @@ -0,0 +1,63 @@ +#!/usr/bin/env bash + +# Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ Ρ…ΡƒΠΊ послС обновлСния, Ссли ΠΎΠ½ присутствуСт. +POST_UPDATE_HOOK="${APP_DATA_DIR}/hooks/post-update" +if [[ -e "${POST_UPDATE_HOOK}" ]]; then + echo "App: ${APP_ID} - Removing '${POST_UPDATE_HOOK}'" + rm -f -- "${POST_UPDATE_HOOK}" || echo "App: ${APP_ID} - Warning: failed to remove '${POST_UPDATE_HOOK}'" +fi + +# Если ${APP_DATA_DIR}/data/fulcrum-logs Π½Π΅ сущСствуСт, ΠΌΡ‹ создаСм Π΅Π³ΠΎ ΠΈ устанавливаСм ΠΏΡ€Π°Π²ΠΎ собствСнности 1000:1000. +if [[ ! -d "${APP_DATA_DIR}/data/fulcrum-logs" ]]; then + mkdir -p "${APP_DATA_DIR}/data/fulcrum-logs" + chown 1000:1000 "${APP_DATA_DIR}/data/fulcrum-logs" +fi + +# ΠœΡ‹ выполняСм ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΡƒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ вСрсий Π΄ΠΎ 2.0, удаляя старыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠΎΡ€Ρ‹, Ссли ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ. +# ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ удаляСм вмСсто ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ запуска `--db-upgrade`: +# - Fulcrum 2.0 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ, нСсовмСстимый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ DB; 1.x Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ `--db-upgrade` для прСобразования +# - ОбновлСниС 1.x -> 2.0 Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎ ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ нСбСзопасно; ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π²ΠΎ врСмя обновлСния +# ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ старый, Ρ‚Π°ΠΊ ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ DBs (см. примСчания ΠΊ выпуску Fulcrum 2.0) +# - ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ пСрСзапустят ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ врСмя обновлСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ нСсколько часов Π² основной сСти. +# ΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ этого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΎΡ‚ прилоТСния. +# - ΠŸΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ΅ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ синхронизациСй являСтся Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½Ρ‹ΠΌ ΠΈ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ +# частичная миграция ΠΈΠ»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ состояния, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² нСподходящСС врСмя +FULCRUM_DATA_DIR="${APP_DATA_DIR}/data/fulcrum" +POST_2_0_FLAG="${APP_DATA_DIR}/POST_2_0_VERSION" + +mkdir -p "${FULCRUM_DATA_DIR}" + +if [[ ! -f "${POST_2_0_FLAG}" ]]; then + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ записи (Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ), Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. + if [[ -n "$(find "${FULCRUM_DATA_DIR}" -mindepth 1 -maxdepth 1 -print -quit 2>/dev/null)" ]]; then + echo "App: ${APP_ID} - Pre-2.0 data detected, clearing '${FULCRUM_DATA_DIR}' once" + # БСзопасно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС записи (ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΈΠΌΠ΅Π½Π° с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ) + find "${FULCRUM_DATA_DIR}" -mindepth 1 -maxdepth 1 -exec rm -rf {} + + fi + touch "${POST_2_0_FLAG}" +fi + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Fulcrum Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° скрытая слуТба Tor RPC Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π°. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-rpc/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach fulcrum +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi diff --git a/fulcrum/torrc.template b/fulcrum/torrc.template new file mode 100644 index 0000000..44496c8 --- /dev/null +++ b/fulcrum/torrc.template @@ -0,0 +1,3 @@ +# Fulcrum RPC Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис +HiddenServiceDir /data/app-$APP_ID-rpc +HiddenServicePort $APP_FULCRUM_NODE_PORT $APP_FULCRUM_NODE_IP:$APP_FULCRUM_NODE_PORT diff --git a/ghost/data/content/.gitkeep b/ghost/data/content/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ghost/data/content/.gitkeep @@ -0,0 +1 @@ + diff --git a/ghost/data/db/.gitkeep b/ghost/data/db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ghost/data/db/.gitkeep @@ -0,0 +1 @@ + diff --git a/ghost/dfwebos-app.yml b/ghost/dfwebos-app.yml new file mode 100644 index 0000000..57539ba --- /dev/null +++ b/ghost/dfwebos-app.yml @@ -0,0 +1,53 @@ +manifestVersion: 1 +id: ghost +name: Ghost +tagline: ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠΎΠ½Π΅Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. +category: files +version: "6.32.0" +port: 3368 +description: >- + Ghost β€” это мощная систСма управлСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ (CMS) с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, прСдназначСнная Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠ³Π³Π΅Ρ€ΠΎΠ², Турналистов ΠΈ создатСлСй ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ CMS, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈ возмоТностСй настройки, Ghost фокусируСтся Π½Π° прСдоставлСнии ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ, быстрой ΠΈ минималистской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ отдаСтся написанию ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠ½ Π±Ρ‹Π» создан для Π±Π»ΠΎΠ³Π³Π΅Ρ€ΠΎΠ², Π½ΠΎ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ½ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΡΡ ΠΈ стал Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя большС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ члСнством, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±ΡŽΠ»Π»Π΅Ρ‚Π΅Π½ΠΈ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΈ инструмСнты ΠΌΠΎΠ½Π΅Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. + + + ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° извСстна своСй ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, обСспСчивая Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π²Π΅Π±-сайтов. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° ΠΈ поисковой ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ (SEO). ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Ghost спроСктирован Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ чистым, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным ΠΈ Π½Π΅ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ позволяСт создатСлям ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° своСм ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π΅, Π½Π΅ увязая Π² Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… опциях ΠΈΠ»ΠΈ настройках. + + + Одной ΠΈΠ· Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ особСнностСй Ghost являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ члСнства ΠΈ подписки. Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠΎΠ½Π΅Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, прСдлагая читатСлям ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅ подписки, прСдоставляя ΠΈΠΌ ΡΠΊΡΠΊΠ»ΡŽΠ·ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈΠ»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±ΡŽΠ»Π»Π΅Ρ‚Π΅Π½ΠΈ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ghost ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ бизнСс Π½Π° своСм ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΡ€Π΅ΠΌΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠ³ΠΎΠ² ΠΈΠ»ΠΈ новостных агСнтств. + + + Π₯отя Ghost спроСктирован простым ΠΈ понятным, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ возмоТности настройки. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚Π΅ΠΌΡ‹, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ собствСнный ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сторонниС сСрвисы, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠΌ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π² соотвСтствии со своими потрСбностями. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ghost Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SEO, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ настраиваСмыС мСтаописания, чистыС URL-адрСса ΠΈ Π°ΠΊΡ†Π΅Π½Ρ‚ Π½Π° быстрый ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½, всС ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π° Π² поисковых систСмах. + + + Π’ Ρ†Π΅Π»ΠΎΠΌ Ghost β€” это высокоэффСктивная ΠΈ удобная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для создания ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Π•Π³ΠΎ ориСнтация Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, простоту ΠΈ ΠΌΠΎΠ½Π΅Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ для всСх, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ присутствиС Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π±Π΅Π· слоТностСй, присущих Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌ CMS. + + + ⚠️ Π’Π°Ρˆ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Π΅Π±-сайт Π±ΡƒΠ΄Π΅Ρ‚ доступСн ΠΏΠΎ адрСсу Β«http://umbrel.local:3368".Β». Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сайту общСдоступному Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«Cloudflare TunnelΒ» ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS ΠΈ Ρ‚ΡƒΠ½Π½Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊ своСму собствСнному Π΄ΠΎΠΌΠ΅Π½Ρƒ. +developer: Ghost Foundation Ltd +website: https://ghost.org/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2178 +repo: https://github.com/TryGhost/Ghost +support: https://github.com/TryGhost/Ghost/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg + - 6.jpg + - 7.jpg +releaseNotes: >- + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ послСдних выпусков Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° "ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ" Π² сообщСниях. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ URL-адрСса CDN для Ρ‚Π΅ΠΌ ΠΈ общСдоступных рСсурсов. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ярлык Π² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ поиска ΠΏΠΎ ΡƒΡ€ΠΎΠ²Π½ΡŽ участников. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° глубокая ссылка Π½Π° экраны администратора ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· систСмы. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ Π²Π΅Π±Ρ…ΡƒΠΊΠ°, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ участником. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ списка участников. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/TryGhost/Ghost/releases. +dependencies: [] +path: "/ghost" +defaultUsername: "" +defaultPassword: "" diff --git a/ghost/docker-compose.yml b/ghost/docker-compose.yml new file mode 100644 index 0000000..a51e8ba --- /dev/null +++ b/ghost/docker-compose.yml @@ -0,0 +1,32 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: ghost_web_1 + APP_PORT: 2368 + PROXY_AUTH_ADD: "false" + + web: + image: ghost:6.32.0@sha256:34d92a88d64c2614c3924c089cf69754d2b73dd4140f8fc66fd28faa0ccc19f7 + restart: on-failure + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/content:/var/lib/ghost/content:rw + environment: + database__client: mysql + database__connection__host: ghost_db_1 + database__connection__user: root + database__connection__password: dfwebos + database__connection__database: ghost + url: http://${DEVICE_DOMAIN_NAME}:3368 + security__staffDeviceVerification: "false" + + db: + image: mysql:8.4.4@sha256:339598fe066c73daa4120f2d9dfefd3146c3519cd324748e1d3f9d2b6c71d10b + restart: on-failure + user: "1000:1000" + environment: + MYSQL_ROOT_PASSWORD: dfwebos + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql:rw diff --git a/ghostfolio/data/postgres/.gitkeep b/ghostfolio/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ghostfolio/data/redis/.gitkeep b/ghostfolio/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ghostfolio/dfwebos-app.yml b/ghostfolio/dfwebos-app.yml new file mode 100644 index 0000000..8a6d7a4 --- /dev/null +++ b/ghostfolio/dfwebos-app.yml @@ -0,0 +1,46 @@ +manifestVersion: 1 +id: ghostfolio +category: finance +name: Ghostfolio +version: "3.0.1" +tagline: УправляйтС своим богатством ΠΊΠ°ΠΊ босс +description: >- + Ghostfolio β€” это панСль управлСния вашими Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ финансами с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ориСнтированная Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + Π Π°Π·Π±Π΅ΠΉΡ‚Π΅ распрСдСлСниС Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ², ΡƒΠ·Π½Π°ΠΉΡ‚Π΅ свой собствСнный ΠΊΠ°ΠΏΠΈΡ‚Π°Π» ΠΈ создавайтС Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅, основанныС Π½Π° Π΄Π°Π½Π½Ρ‹Ρ… + инвСстиционныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. + + + Π—Π°Ρ‰ΠΈΡ‚ΠΈΡ‚Π΅ свои Π°ΠΊΡ‚ΠΈΠ²Ρ‹. Π£Ρ‚ΠΎΡ‡Π½ΠΈΡ‚Π΅ свою Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Π²Π΅ΡΡ‚ΠΈΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ. + + + Ghostfolio Π΄Π°Π΅Ρ‚ занятым людям Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ†ΠΈΠΈ, ETF ΠΈΠ»ΠΈ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡŽΡ‚Ρ‹. + Π±Π΅Π· отслСТивания. +backupIgnore: + - data/redis/* +developer: Ghostfolio +website: https://ghostfol.io/ +dependencies: [] +repo: https://github.com/ghostfolio/ghostfolio +support: https://github.com/ghostfolio/ghostfolio/discussions +port: 3334 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок: + - ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠ΅Π½ Π½Π° Material Design 3 для ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ внСшнСго Π²ΠΈΠ΄Π°. + - ΠžΠ±Ρ‰Π°Ρ сумма, измСнСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π²Π°Π»ΡŽΡ‚Π½Ρ‹Ρ… эффСктов Π½Π° страницС Π°Π½Π°Π»ΠΈΠ·Π° пСрСнСсСны Π² ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. + - Кнопки копирования Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° для ISIN ΠΈ символа Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ свСдСний ΠΎ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΌΠ΅Ρ‚ΠΊΠ° Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹Ρ… срСдств Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ² Π½Π° ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ ΠΈ общСдоступных страницах. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/ghostfolio/ghostfolio/releases. +submitter: BeauAgst +submission: https://github.com/getumbrel/dfwebos-apps/pull/396 diff --git a/ghostfolio/docker-compose.yml b/ghostfolio/docker-compose.yml new file mode 100644 index 0000000..6849234 --- /dev/null +++ b/ghostfolio/docker-compose.yml @@ -0,0 +1,47 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: ghostfolio_server_1 + APP_PORT: 3334 + + server: + image: ghostfolio/ghostfolio:3.0.1@sha256:e1b0fb31b888bddcdb4dd14899ea6b5696555782e8a121ccc795feae489f1447 + init: true + restart: on-failure + environment: + NODE_ENV: production + HOST: 0.0.0.0 + PORT: 3334 + ACCESS_TOKEN_SALT: $APP_GHOSTFOLIO_ACCESS_TOKEN_SALT + DATABASE_URL: postgresql://${APP_GHOSTFOLIO_DB_USERNAME}:${APP_GHOSTFOLIO_DB_PASSWORD}@ghostfolio_postgres_1:5432/${APP_GHOSTFOLIO_DB_DATABASE_NAME} + JWT_SECRET_KEY: ${APP_SEED} + POSTGRES_DB: ${APP_GHOSTFOLIO_DB_DATABASE_NAME} + POSTGRES_USER: ${APP_GHOSTFOLIO_DB_USERNAME} + POSTGRES_PASSWORD: ${APP_GHOSTFOLIO_DB_PASSWORD} + REDIS_HOST: ghostfolio_redis_1 + REDIS_PASSWORD: ${APP_GHOSTFOLIO_REDIS_PASSWORD} + REDIS_PORT: 6379 + + postgres: + image: postgres:14-bullseye@sha256:c2a30d08a6f9e6c365595fd086c9e0436064c52425f15f72379ecf0807bac518 + restart: on-failure + stop_grace_period: 1m + user: "1000:1000" + environment: + POSTGRES_USER: ${APP_GHOSTFOLIO_DB_USERNAME} + POSTGRES_PASSWORD: ${APP_GHOSTFOLIO_DB_PASSWORD} + POSTGRES_DB: ${APP_GHOSTFOLIO_DB_DATABASE_NAME} + PGDATA: /var/lib/postgresql/data + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + + redis: + image: redis:6.2-bullseye@sha256:5cdb2ac6f780e1d250787f4a887c1ed1166e3389757189ea913059409acc6f7c + restart: on-failure + user: "1000:1000" + command: > + --requirepass ${APP_GHOSTFOLIO_REDIS_PASSWORD} + volumes: + - ${APP_DATA_DIR}/data/redis:/data diff --git a/ghostfolio/exports.sh b/ghostfolio/exports.sh new file mode 100644 index 0000000..36f4434 --- /dev/null +++ b/ghostfolio/exports.sh @@ -0,0 +1,5 @@ +export APP_GHOSTFOLIO_ACCESS_TOKEN_SALT=$(derive_entropy "env-${app_entropy_identifier}-APP_ACCESS_TOKEN_SALT" | head -c32) +export APP_GHOSTFOLIO_DB_DATABASE_NAME="ghostfolio" +export APP_GHOSTFOLIO_DB_USERNAME="ghostfolio" +export APP_GHOSTFOLIO_DB_PASSWORD="moneyprintergobrrr" +export APP_GHOSTFOLIO_REDIS_PASSWORD="moneyprintergobrrr" \ No newline at end of file diff --git a/gitea-mirror/data/.gitkeep b/gitea-mirror/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/gitea-mirror/dfwebos-app.yml b/gitea-mirror/dfwebos-app.yml new file mode 100644 index 0000000..6b7ca42 --- /dev/null +++ b/gitea-mirror/dfwebos-app.yml @@ -0,0 +1,50 @@ +manifestVersion: 1 +id: gitea-mirror +name: Gitea Mirror +tagline: АвтоматичСски Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ GitHub Π½Π° экзСмпляр Gitea. +category: developer +version: "3.15.6" +port: 4322 +description: >- + Gitea Mirror автоматичСски Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΡƒΠ΅Ρ‚ ваши Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ GitHub Π½Π° Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ экзСмпляр Gitea. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ общСдоступных ΠΈ частных Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², Π·Π°Π΄Π°Ρ‡, Π²ΠΈΠΊΠΈ ΠΈ запросов Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. + + + Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, настройтС свои ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ GitHub ΠΈ Gitea Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-интСрфСйс. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ пСриодичСски ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π² соотвСтствии с настроСнным Π²Π°ΠΌΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π—Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΡ‚ GitHub Π΄ΠΎ Gitea + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈ ΠΈΠ·Π±Ρ€Π°Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π². + - ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΈ Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠΊΠΈ + - НастраиваСмыС ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ синхронизации ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ + - ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° рСпозитория ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сиротами + - АутСнтификация Π½Π° основС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° для Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси-сСрвСра. + + + **ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Gitea Π½Π° :DFWebOS** Если Π½Π° вашСм DFWebOS установлСно ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Gitea, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ http://gitea_server_1:8085` Π² качСствС URL-адрСса Gitea Π² настройках Π·Π΅Ρ€ΠΊΠ°Π»Π°. + + + **Π’ΠΎΠΊΠ΅Π½ доступа Gitea** Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: + - Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ: Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ + - Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ + - Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅:организация (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) +developer: RayLabs HQ +website: https://github.com/raylabshq/gitea-mirror +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/4721 +repo: https://github.com/raylabshq/gitea-mirror +support: https://github.com/raylabshq/gitea-mirror/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "" +defaultPassword: "" +dependencies: [] +releaseNotes: >- + ✨ НовыС возмоТности + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ сСрвСру Forgejo ΡΡ‚Π°Ρ€ΡˆΠ΅ вСрсии 15.0.0, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ имССтся извСстная ошибка, приводящая ΠΊ сбою зСркалирования частного рСпозитория β€” ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ содСрТит ссылки Π½Π° исправлСниС. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/raylabshq/gitea-mirror. +path: "" diff --git a/gitea-mirror/docker-compose.yml b/gitea-mirror/docker-compose.yml new file mode 100644 index 0000000..0cfaf2f --- /dev/null +++ b/gitea-mirror/docker-compose.yml @@ -0,0 +1,31 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: gitea-mirror_web_1 + APP_PORT: 4321 + + web: + image: ghcr.io/raylabshq/gitea-mirror:v3.15.6@sha256:ad2d7f59d2616edd7e0907c8feb07e6e08199b4818c711ee9c7b06df9600b442 + restart: on-failure + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data:/app/data + environment: + BETTER_AUTH_SECRET: ${APP_SEED} + BETTER_AUTH_URL: http://${DEVICE_DOMAIN_NAME}:${APP_GITEA_MIRROR_PORT} + BETTER_AUTH_TRUSTED_ORIGINS: "*" + NODE_ENV: production + DATABASE_URL: file:data/gitea-mirror.db + HOST: 0.0.0.0 + PORT: "4321" + PUBLIC_BETTER_AUTH_URL: http://${DEVICE_DOMAIN_NAME}:${APP_GITEA_MIRROR_PORT} + MIRROR_ISSUE_CONCURRENCY: "3" + MIRROR_PULL_REQUEST_CONCURRENCY: "5" + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=3", "--spider", "http://localhost:4321/api/health"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 15s diff --git a/gitea-mirror/exports.sh b/gitea-mirror/exports.sh new file mode 100644 index 0000000..c353991 --- /dev/null +++ b/gitea-mirror/exports.sh @@ -0,0 +1,16 @@ +export APP_GITEA_MIRROR_PORT="4322" + +local_ips=$(hostname --all-ip-addresses 2> /dev/null) || local_ips="" +export APP_GITEA_MIRROR_LOCAL_IPS="${local_ips}" + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ URLs с http:// ΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠΌ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ запятыми. +ips_with_port=$(for ip in $local_ips; do + # ΠžΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ адрСса IPv6 Π² [] + if [[ "$ip" == *:* ]]; then + echo -n "http://[$ip]:$APP_GITEA_MIRROR_PORT," + else + echo -n "http://$ip:$APP_GITEA_MIRROR_PORT," + fi +done | sed 's/,$//') + +export APP_GITEA_MIRROR_LOCAL_URLS="${ips_with_port}" diff --git a/gitea/data/db/.gitkeep b/gitea/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/gitea/data/gitea/config/.gitkeep b/gitea/data/gitea/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/gitea/data/gitea/data/.gitkeep b/gitea/data/gitea/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/gitea/dfwebos-app.yml b/gitea/dfwebos-app.yml new file mode 100644 index 0000000..8e1a560 --- /dev/null +++ b/gitea/dfwebos-app.yml @@ -0,0 +1,54 @@ +manifestVersion: 1.1 +id: gitea +category: developer +name: Gitea +version: "1.26.1" +tagline: Π‘Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹ΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис Git +description: >- + Gitea β€” это Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹ΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис Git. Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° + GitHub, Bitbucket ΠΈ GitLab. Π­Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, управляСмый сообщСством. + хостинг-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, написанноС Π½Π° Go. ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования Gitea ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ + Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π° Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, Ρ‚Π°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ Raspberry Pi. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + + - ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΈ частный + - Π’Ρ€Π΅ΠΊΠ΅Ρ€ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ счСтом/ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ/Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Tor + - ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΈ/ΠΊΠ»ΡŽΡ‡ΠΈ развСртывания рСпозитория Git + - ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ, запросы Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΈΠΊΠΈ. + - Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ соавторов рСпозитория + - Π“Ρ€Π°Π²Π°Ρ‚Π°Ρ€ ΠΈ собствСнный источник + - ПанСль администратора +developer: Gitea +website: https://gitea.io/en-us/ +dependencies: [] +repo: https://github.com/go-gitea/gitea +support: https://discourse.gitea.io +port: 8085 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + Π­Ρ‚ΠΎ выпуск с исправлСниСм ошибок, ΡƒΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π² вСрсии 1.26.0: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡ‚Π΅Ρ‡ΠΊΠ° Π³Ρ€ΡƒΠΏΠΏ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° дСйствий ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° авторизация ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… экзСмпляров. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ экранированиС URL-адрСса для OAuth2. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ видимости ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ развСтвляли Π΅Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ доступ ΠΊ Π±Π΅ΠΉΠ΄ΠΆΠ°ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° RPM ΠΊ noarch, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Π°Ρ Π°Ρ€ΠΊΠ° отсутствуСт. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Русалки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅Ρ‚ΠΊΠΈ ΡƒΠ·Π»ΠΎΠ² содСрТат Ρ€Π°Π·Ρ€Ρ‹Π²Ρ‹ строк. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ смСщСниС располоТСния ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΡ€ΠΈ сворачивании Π΄Π΅Ρ€Π΅Π²Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ поиск ΡƒΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΈ Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚ΠΎΠ² для получСния Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π΄Π°ΠΌΠΏ с Ρ‚ΠΈΠΏΠΎΠΌ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ индСкса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ нСсТатый ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ индСкс. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску: https://github.com/go-gitea/gitea/releases. +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/commit/d62e00353917143a3a10d3b376859f51b665d150 diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml new file mode 100644 index 0000000..3bae125 --- /dev/null +++ b/gitea/docker-compose.yml @@ -0,0 +1,43 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: gitea_server_1 + APP_PORT: 8085 + PROXY_AUTH_ADD: "false" + + server: + image: gitea/gitea:1.26.1-rootless@sha256:4c4256497e2e237ddebdd30986c7ce52cb6f936b3e90c34bb9f4665714599f62 + user: "1000:1000" + restart: on-failure + ports: + - "${APP_GITEA_SSH_PORT}:${APP_GITEA_SSH_PORT}" + volumes: + - ${APP_DATA_DIR}/data/gitea/data:/var/lib/gitea + - ${APP_DATA_DIR}/data/gitea/config:/etc/gitea + environment: + GITEA__security__INSTALL_LOCK: "true" + GITEA__server__DOMAIN: "${APP_DOMAIN}" + GITEA__server__HTTP_PORT: 8085 + GITEA__server__SSH_DOMAIN: "${APP_DOMAIN}" + GITEA__server__SSH_PORT: "${APP_GITEA_SSH_PORT}" + GITEA__server__SSH_LISTEN_PORT: "${APP_GITEA_SSH_PORT}" + GITEA__server__START_SSH_SERVER: "true" + GITEA__database__DB_TYPE: "mysql" + GITEA__database__HOST: "gitea_db_1:3306" + GITEA__database__NAME: "gitea" + GITEA__database__USER: "gitea" + GITEA__database__PASSWD: "moneyprintergobrrr" + + db: + image: mariadb:11.2.4@sha256:e9ea1dbab6783ff0281e41e3357d950a5f598b2033559b8443e03b181807910b + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: "gitea" + MYSQL_USER: "gitea" + MYSQL_PASSWORD: "moneyprintergobrrr" + MYSQL_DATABASE: "gitea" diff --git a/gitea/exports.sh b/gitea/exports.sh new file mode 100644 index 0000000..fe27d17 --- /dev/null +++ b/gitea/exports.sh @@ -0,0 +1,2 @@ +export APP_GITEA_SSH_PORT="2222" +export APP_GITEA_TOR_HS_EXTRA_PORTS="22:gitea_server_1:${APP_GITEA_SSH_PORT}" \ No newline at end of file diff --git a/gitingest/dfwebos-app.yml b/gitingest/dfwebos-app.yml new file mode 100644 index 0000000..b7ec92f --- /dev/null +++ b/gitingest/dfwebos-app.yml @@ -0,0 +1,54 @@ +manifestVersion: 1 +id: gitingest +name: Gitingest +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ для LLM +category: developer +version: "0.3.1" +port: 8895 +description: >- + Gitingest β€” это инструмСнт с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git Π² структурированныС тСкстовыС сводки, ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ для LLM, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ИИ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ChatGPT ΠΈ Claude. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΠ² Β«github.comΒ» Π½Π° Β«gitingest.comΒ» Π² любом URL-адрСсС рСпозитория, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для ИИ дайдТСст ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΠ΄Π½ΠΈΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ обСспСчиваСт ΠΏΠ»Π°Π²Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с GitHub, обСспСчивая бСспСрСбойный Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². + + + Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для структурированного прСдставлСния содСрТимого рСпозитория, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ LLM. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π½Π° слуТбу GitIngest ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π»ΠΈΠ±ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свои собствСнныС настройки для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ гибкости. УдСляя большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Gitingest Π½Π΅ собираСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ бСзопасным Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‚Π°ΠΊ ΠΈ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ. + + + Gitingest особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ИИ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΡ… Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ подсказки, для ΠΊΠΎΠΌΠ°Π½Π΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ИИ, ΠΈ для всСх, ΠΊΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ быстроС ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ ΠΊΠΎΠ΄Π°. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… экосистСмы GitIngest ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт инструмСнты CLI ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Python для Π±ΠΎΠ»Π΅Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ использования. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Π±Π°Π·Π΅ ИИ ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ слоТных Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², Gitingest ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ простоС, Π½ΠΎ ΠΌΠΎΡ‰Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. +developer: Romain Courtois +website: https://gitingest.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2225 +repo: https://github.com/cyclotruc/gitingest +support: https://github.com/cyclotruc/gitingest/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π’ этом выпускС прСдставлСны Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Gitingest. + + + НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + β€” ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Git. + - БистСма ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ для Π±ΠΎΠ»Π΅Π΅ быстрого обслуТивания Ρ€Π°Π½Π΅Π΅ созданных дайдТСстов. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠ΅ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ устранСния Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² благодаря ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° очистка Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. + β€” Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок сСти Π²ΠΎ врСмя ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ‚ΠΎΠΊΠ΅Π½Π°. + β€” Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ сопоставлСниС шаблонов для ΠΏΡ€Π°Π²ΠΈΠ» Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° кСша для ΠΏΠΎΠ΄ΠΏΡƒΡ‚Π΅ΠΉ рСпозитория. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². + - Π Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с запуском ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° + β€” Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² gitignore ΠΈ gitingestignore. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/cyclotruc/gitingest/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/gitingest/docker-compose.yml b/gitingest/docker-compose.yml new file mode 100644 index 0000000..37dc007 --- /dev/null +++ b/gitingest/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: gitingest_app_1 + APP_PORT: 8000 + + app: + image: ghcr.io/coderamp-labs/gitingest:v0.3.1@sha256:0107c1e389d9e5e86dc3052defe024bd2439b776a1904ae4ee14f1cfb16e3b77 + restart: on-failure + user: "1000:1000" + environment: + # Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ основной адрСс .local, Tailscale MagicDNS ΠΈ адрСса IP хост-ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. + - ALLOWED_HOSTS=${DEVICE_DOMAIN_NAME},${DEVICE_HOSTNAME},${APP_GITINGEST_LOCAL_IPS} diff --git a/gitingest/exports.sh b/gitingest/exports.sh new file mode 100644 index 0000000..0defa3c --- /dev/null +++ b/gitingest/exports.sh @@ -0,0 +1,3 @@ +# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ адрСса IP ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΈΡ… запятыми. +local_ips=$(hostname --all-ip-addresses 2> /dev/null | tr ' ' ',') || local_ips="" +export APP_GITINGEST_LOCAL_IPS="${local_ips}" \ No newline at end of file diff --git a/gitlab/data/config/.gitkeep b/gitlab/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/gitlab/data/data/.gitkeep b/gitlab/data/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/gitlab/data/logs/.gitkeep b/gitlab/data/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/gitlab/dfwebos-app.yml b/gitlab/dfwebos-app.yml new file mode 100644 index 0000000..3329705 --- /dev/null +++ b/gitlab/dfwebos-app.yml @@ -0,0 +1,80 @@ +manifestVersion: 1.1 +id: gitlab +name: GitLab +tagline: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС. БыстрСС. +category: developer +version: "18.10.1-1" +port: 8929 +description: >- + ⚠️ Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ потрСбляСт ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти (рСкомСндуСтся +6 Π“Π‘), ΠΈ Π΅Π³ΠΎ запуск ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ 15–20 ΠΌΠΈΠ½ΡƒΡ‚ послС установки Π½Π° устройствах с Π½ΠΈΠ·ΠΊΠΈΠΌ энСргопотрСблСниСм. + + + πŸ” ПослС установки прилоТСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-интСрфСйс ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· SSH/Terminal ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ root, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ `gitlab-rake "gitlab:password:reset[root]"`. + + + GitLab β€” это комплСксный Π²Π΅Π±-инструмСнт ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° DevOps, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ рСпозиториями. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ вСсь ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий, CI/CD, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠΎΠ΄Π°, отслСТиваниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² бСзопасной срСдС совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹, гарантируя Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. + + + πŸ“ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ + + GitLab прСдоставляСт ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ графичСский интСрфСйс для создания, управлСния ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π². Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ доступны Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСтвями, Ρ‚Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ слияниС, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ эффСктивный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. + + + πŸ”„οΈ НСпрСрывная интСграция/Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ (CI/CD) + + АвтоматизируйтС процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠ² CI/CD GitLab. Π›Π΅Π³ΠΊΠΎ настраивайтС сборки, тСсты ΠΈ развСртывания, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс. GitLab CI/CD ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько языков ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, обСспСчивая ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с вашими ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ инструмСнтами ΠΈ процСссами. + + + πŸ›‘οΈ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ соотвСтствиС трСбованиям + + ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΡŒΡ‚Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ соотвСтствиС своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ бСзопасности GitLab. ВыполняйтС статичСскоС ΠΈ динамичСскоС тСстированиС бСзопасности ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (SAST/DAST), сканированиС зависимостСй, сканированиС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. GitLab Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ Π°ΡƒΠ΄ΠΈΡ‚Π°, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ соотвСтствиСм ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ качСства ΠΊΠΎΠ΄Π° для поддСрТания высоких стандартов. + + + πŸ‘₯ БотрудничСство ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° + + Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚Π΅ сотрудничСство Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… инструмСнтов GitLab для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ обсуТдСния. ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ экспСртныС ΠΎΡ†Π΅Π½ΠΊΠΈ, оставляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΉΡ‚Π΅ измСнСния нСпосрСдствСнно Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. БистСма ΠΌΠ΅Ρ€ΠΆ-рСквСстов GitLab ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ процСсс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π°, позволяя Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ, ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΈ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ измСнСния. + + + πŸ“ˆ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ + + Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ управляйтС своими ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ GitLab. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ спринты ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ прогрСсс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ досок, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ сгорания. GitLab Ρ‚Π°ΠΊΠΆΠ΅ интСгрируСтся с популярными инструмСнтами управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, обСспСчивая ΠΏΠ»Π°Π²Π½ΡƒΡŽ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. + + + πŸ› οΈ Π”Ρ€ΡƒΠ³ΠΈΠ΅ особСнности: + + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов GitLab для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²ΠΈΠΊΠΈ для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, управляйтС ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного рССстра ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² GitLab, отслСТивайтС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Prometheus ΠΈ Grafana ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ прилоТСния с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Kubernetes. GitLab Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ API для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ сСрвисами. + + + GitLab β€” это ваша ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° DevOps, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈ эффСктивно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ. +developer: GitLab +website: https://about.gitlab.com +submitter: hugofnm +submission: https://github.com/getumbrel/dfwebos-apps/pull/1290 +repo: https://gitlab.com/gitlab-org/omnibus-gitlab/tree/master/docker +support: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск GitLab содСрТит мноТСство Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ. + + + GitLab интСрфСйс ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° запросы Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΈΠ½ΡƒΡ‚ послС обновлСния, Ρ‡Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС: + - ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний SAST с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ агСнтской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ GitLab Duo Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ общСдоступно. + - Π’Ρ…ΠΎΠ΄ Π±Π΅Π· пароля с использованиСм ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ с использованиСм биомСтричСских Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ PIN-ΠΊΠΎΠ΄Π° устройства. + - Новый список Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… элСмСнтов, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΉ эпики, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ элСмСнты Π² ΠΎΠ΄Π½ΠΎΠΌ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ прСдставлСнии с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ сохранСнных прСдставлСний. + - Π‘Π΅ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний Π½Π° Π±Π°Π·Π΅ ИИ для сниТСния усталости ΠΎΡ‚ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ (Π±Π΅Ρ‚Π°-вСрсия) + β€” ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΡŒΡ‚Π΅ соблюдСниС соглашСний ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΌΠ΅Ρ€ΠΆ-рСквСста с использованиСм шаблонов рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. + - ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π°Π³Π΅Π½Ρ‚Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ внСшним источникам Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» контСкста ΠΌΠΎΠ΄Π΅Π»ΠΈ (MCP). + - Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ уровня задания CI/CD с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ‚ΠΈΠΏΠΎΠ², значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу: https://about.gitlab.com/releases/2026/03/19/gitlab-18-10-released/. +dependencies: [] +path: "" +deterministicPassword: true +defaultUsername: "root" diff --git a/gitlab/docker-compose.yml b/gitlab/docker-compose.yml new file mode 100644 index 0000000..1bff055 --- /dev/null +++ b/gitlab/docker-compose.yml @@ -0,0 +1,34 @@ +version: "3.7" + +services: + + app_proxy: + environment: + APP_HOST: gitlab_gitlab_1 + APP_PORT: 8929 + PROXY_AUTH_ADD: "false" + + gitlab: + image: gitlab/gitlab-ce:18.10.1-ce.0@sha256:6024d9f2a8d52dd56ffa8b510fcfc368d7ddaed1102f76ed6c419289e68921b0 + restart: on-failure + hostname: '${DEVICE_DOMAIN_NAME}:8929' + ulimits: + nofile: + soft: 4096 + hard: 8192 + environment: + PUID: 1000 + PGID: 1000 + GITLAB_OMNIBUS_CONFIG: | + # Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ сюда Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ gitlab.rb, ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС. + gitlab_rails['initial_root_password'] = '${APP_PASSWORD}' + gitlab_rails['gitlab_shell_ssh_port'] = 2424 + nginx['listen_port'] = 8929 + nginx['listen_https'] = false + ports: + - '2424:22' + volumes: + - ${APP_DATA_DIR}/data/config:/etc/gitlab + - ${APP_DATA_DIR}/data/logs:/var/log/gitlab + - ${APP_DATA_DIR}/data/data:/var/opt/gitlab + shm_size: '256m' diff --git a/gitlab/hooks/pre-start b/gitlab/hooks/pre-start new file mode 100755 index 0000000..ee8d94e --- /dev/null +++ b/gitlab/hooks/pre-start @@ -0,0 +1,222 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ скрипт обновляСт Gitlab, слСдуя ΠΏΡƒΡ‚ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΏΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ Gitlab docs/tools, бСзопасСн. +# https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/ + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" + +GITLAB_RAILS_VERSION_FILE="${APP_DATA_DIR}/data/data/gitlab-rails/VERSION" + +APP_COMPOSE_FILE="${APP_DATA_DIR}/docker-compose.yml" +APP_COMPOSE_BACKUP_FILE="${APP_DATA_DIR}/docker-compose.yml.bak" + +# Бписок вСрсий Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ +# gitlab Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ с вСрсиСй 17.2.1. +# инструмСнт ΠΏΡƒΡ‚ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ: https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/ +VERSIONS=() +VERSIONS+=("17.2.1") +VERSIONS+=("17.3.3") +VERSIONS+=("17.5.1") +# Для ΠΎΠ±Ρ€Π°Π·Π° zengxs/gitlab Π½Π΅ сущСствуСт Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ‚Ρ‡Π° 17.5.3, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎ вСрсии 17.6. +VERSIONS+=("17.6.1") +VERSIONS+=("17.7.0") +VERSIONS+=("17.8.1") +VERSIONS+=("17.9.1") +VERSIONS+=("17.10.1") +VERSIONS+=("17.11.1") +VERSIONS+=("18.0.2") +VERSIONS+=("18.2.1") +VERSIONS+=("18.4.0") +VERSIONS+=("18.5.1") +VERSIONS+=("18.6.2") +VERSIONS+=("18.7.4") +VERSIONS+=("18.8.4") +VERSIONS+=("18.9.3") +VERSIONS+=("18.10.1") + +# Бписок ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ +# ИспользованиС zengxs/gitlab, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ всС вСрсии, пСрСчислСнныС Π² инструмСнтС ΠΏΡƒΡ‚ΠΈ обновлСния: https://hub.docker.com/r/zengxs/gitlab/tags +IMAGES=() +IMAGES+=("zengxs/gitlab:17.2.1-ce.0@sha256:ac08a4dd997b6cd5d00d56c0027629de56ac80d9d30f9c4f75a73da73f5ff1b4") +IMAGES+=("zengxs/gitlab:17.3.3-ce.0@sha256:b4369fc8f2a505fdf30bae7fa2befde2a8d6f75c067e5bcf85aeb1c5f345cda0") +IMAGES+=("zengxs/gitlab:17.5.1-ce.0@sha256:61cb4c79fe55de9dc94822d5a64a07ee40ff681d6282ab5733bc8e80479451ff") +IMAGES+=("zengxs/gitlab:17.6.1-ce.0@sha256:fac3ab00c189e7f7ef2d9170abe1028180663f5bb50dd8b84cb79c4f3053df42") +IMAGES+=("zengxs/gitlab:17.7.0-ce.0@sha256:a353041094142d3f3192295d0973e660778db5f7637069f8e035afe45c6b88d1") +IMAGES+=("zengxs/gitlab:17.8.1-ce.0@sha256:963a719edd95cc7c237e9ca4914d75d1ca9f472a3001b76ad9dfb1dad65b4732") +IMAGES+=("zengxs/gitlab:17.9.1-ce.0@sha256:8087be9de83abf3f215694d1fc52d90a0c2a882589016a0b784598723e871325") +IMAGES+=("zengxs/gitlab:17.10.1-ce.0@sha256:c64afa93f40b9cffc1350da62b67ffefdd13123874b595bccfdc389514069f58") +IMAGES+=("zengxs/gitlab:17.11.1-ce.0@sha256:05d73cabf1dbff39b93e7ad0c1ea6bbcbc29642185774cb59e31664f17b0a134") +IMAGES+=("zengxs/gitlab:18.0.2-ce.0@sha256:107ee285aea892fa6ed8e039df8a6d850aa5d3469247e9783dcf765789b70872") +IMAGES+=("gitlab/gitlab-ce:18.2.1-ce.0@sha256:3db5de3ce9fba4511345bb67731a1787e316f73029cdbd309ee947f860d9ff00") +IMAGES+=("gitlab/gitlab-ce:18.4.0-ce.0@sha256:42d4f499ed8f055e91028d87772f8ea65ba4812bd71a54086cfc4aa84604ab7a") +IMAGES+=("gitlab/gitlab-ce:18.5.1-ce.0@sha256:6db4caefb0597c966065f4c3307b60aa00d13559bbe9b0c3b17bc32f0d239ab1") +IMAGES+=("gitlab/gitlab-ce:18.6.2-ce.0@sha256:a4ffd3cf42e6554fcb8a1735cea40ae2e46bec6f31b518f04132a93d7f48ffcf") +IMAGES+=("gitlab/gitlab-ce:18.7.4-ce.0@sha256:9890c6c76625070ae420784f1d6d157498a75b6f65d075c0e1e55c2a25a3f5ab") +IMAGES+=("gitlab/gitlab-ce:18.8.4-ce.0@sha256:0a2e4a47b0c3f8b2682f4a4406f2d1ad0713024bd4e849355b07e93fbf85049b") +IMAGES+=("gitlab/gitlab-ce:18.9.3-ce.0@sha256:eec7f29ca83c8b54ecb1154c5c36b87a67c6b9cedaea763868b014e6a0539756") +IMAGES+=("gitlab/gitlab-ce:18.10.1-ce.0@sha256:6024d9f2a8d52dd56ffa8b510fcfc368d7ddaed1102f76ed6c419289e68921b0") + +find_index() { + local -r value="${1}" + shift + local -r array=("$@") + + for i in "${!array[@]}"; do + if [[ "${array[$i]}" == "${value}" ]]; then + echo $i + exit + fi + done + + echo -1 +} + +wait_for_migrations_complete() { + local start_time=$(date +%s) + local max_wait_time=$((1 * 60 * 60)) # 1 hour in seconds + + while true; do + # ΠœΡ‹ установили Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ максимальноС врСмя оТидания, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ бСсконСчный Ρ†ΠΈΠΊΠ», Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ. + # Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π½Π°ΠΌ захочСтся Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π»ΡƒΡ‡ΡˆΠ΅. + local current_time=$(date +%s) + local elapsed_time=$((current_time - start_time)) + if [[ ${elapsed_time} -ge ${max_wait_time} ]]; then + echo "Maximum migration wait time of 1 hour exceeded. Exiting as something is likely wrong..." + exit 1 + fi + + # УстановитС +e, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ, ΠΏΠΎΠΊΠ° gitlab-psql Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ соСдинСния, ΠΈ ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ сцСнарий Π² случаС сбоя. + set +e + echo "Running gitlab-psql command to check if batched migrations are complete" + # https://docs.gitlab.com/ee/update/background_migrations.html#from-the-database + command_output=$(docker exec gitlab_gitlab_1 gitlab-psql -tAc "SELECT COUNT(*) FROM batched_background_migrations WHERE status NOT IN(3, 6);" 2>&1) + # ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ psql Π² scripts/app Compose ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам psql. + # ИспользованиС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ `docker exec` позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π½ΠΎ Π½Π°ΠΌ слСдуСт Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ этому Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ привязки этого сцСнария ΠΊ Docker. + # command_output=$("${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" exec gitlab gitlab-psql -tAc "SELECT COUNT(*) FROM batched_background_migrations WHERE status NOT IN(3, 6);" 2>&1) + exit_code=$? + # УстановитС -e, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + set -e + + if [[ ${exit_code} -eq 0 ]]; then + remaining_migrations=$(echo "${command_output}" | tr -d '[:space:]') + echo "Parsed remaining batched migrations: '${remaining_migrations}'" + + # ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ "0" ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ. + if [[ "${remaining_migrations}" == "0" ]]; then + echo "GitLab migration completed successfully." + return + fi + else + echo "Command failed with exit code ${exit_code}. Error output: ${command_output}" + fi + + echo "Waiting 30 seconds before checking migration status again..." + sleep 30 + done +} + +check_compose_file() { + local -r image="${1}" + + gitlab_image=$(cat "${APP_COMPOSE_FILE}" 2>/dev/null | yq '.services.gitlab.image' || true) + + if [[ "${gitlab_image}" != "${image}" ]]; then + echo "The docker-compose.yml now looks bad. Restoring..." + + mv "${APP_COMPOSE_BACKUP_FILE}" "${APP_COMPOSE_FILE}" + + exit + fi +} + +get_version() { + cat "${GITLAB_RAILS_VERSION_FILE}" +} + +# Π—Π΄Π΅ΡΡŒ начинаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ основного скрипта +# ================================ + +# Если Ρ„Π°ΠΉΠ» вСрсии gitlab-rails Π΅Ρ‰Π΅ Π½Π΅ сущСствуСт +# Π’ΠΎΠ³Π΄Π° скорСС всСго это новая установка +# ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Ρ‡Π΅Π³ΠΎ +if [[ ! -f "${GITLAB_RAILS_VERSION_FILE}" ]]; then + exit +fi + +current_version=$(get_version) +echo "Current GitLab version: ${current_version}" + +# ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π»ΠΈ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии "-patch", ΠΈ Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅, Ссли это Ρ‚Π°ΠΊ, ΠΌΡ‹ позволяСм ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ +# ΠΌΡ‹ добавляСм "-patch" Π² Π²Π΅Ρ€ΡΠΈΡŽ Π½ΠΈΠΆΠ΅ Π²ΠΎ врСмя ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ +if [[ "${current_version}" == *"-patch"* ]]; then + echo "Active GitLab version is undergoing migration. Exiting..." + exit +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π΅ΡΡ‚ΡŒ Π»ΠΈ активная вСрсия Π² спискС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ +active_version_idx=$(find_index "${current_version}" "${VERSIONS[@]}") +if [[ "${active_version_idx}" == "-1" ]]; then + echo "Active version is not supported in the list of migrations" + exit +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π»ΠΈ ΡƒΠΆΠ΅ +if [[ "${VERSIONS[-1]}" == "${current_version}" ]]; then + echo "GitLab is already on the latest major version. No migration needed." + exit +fi + +# Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ошибок Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ·-Π·Π° Π΄Ρ€Π΅ΠΉΡ„Π° списка version/image. +if [[ "${#VERSIONS[@]}" -ne "${#IMAGES[@]}" ]]; then + echo "Migration configuration error: VERSIONS (${#VERSIONS[@]}) and IMAGES (${#IMAGES[@]}) length mismatch." + exit 1 +fi + +# ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ вСрсии, игнорируя ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вСрсии. +for i in "${!VERSIONS[@]}"; do + [[ "${i}" -le "${active_version_idx}" ]] && continue + + version="${VERSIONS[$i]}" + image="${IMAGES[$i]}" + + echo "Migrating to version: ${version} (${image})" + echo + + cp --archive "${APP_COMPOSE_FILE}" "${APP_COMPOSE_BACKUP_FILE}" + + yq -i ".services.gitlab.image = \"${image}\"" "${APP_COMPOSE_FILE}" + + check_compose_file "${image}" + + # ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΊΠ°ΠΊ Π½Π°Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽΡΡ Π² сСрСдинС обновлСния. + current_version=$(get_version) + sed -i "s/${current_version}/${current_version}-patch/" "${GITLAB_RAILS_VERSION_FILE}" + + # Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ + # ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ запуском Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π² ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ -patch, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ + "${DFWEBOS_ROOT}/scripts/app" start gitlab + + echo "Waiting for update to complete..." + + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ. + # УказываСтся Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π±Π΅Π³ΡƒΠ½Π° gitlab-rails + wait_for_migrations_complete + + # ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ + "${DFWEBOS_ROOT}/scripts/app" stop gitlab + + # Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ вСрсии + # Если это Π½Π΅ послСднСС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ + # Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π΅Π³ΠΎ придСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ + if [[ "${version}" != "${VERSIONS[-1]}" ]]; then + echo "Deleting intermediary image: ${image}" + + docker rmi "${image}" || true + fi +done + +# Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ +rm -rf "${APP_COMPOSE_BACKUP_FILE}" + +echo "Migration completed successfully" diff --git a/grafana/data/.gitkeep b/grafana/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/grafana/dfwebos-app.yml b/grafana/dfwebos-app.yml new file mode 100644 index 0000000..1e86971 --- /dev/null +++ b/grafana/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1 +id: grafana +name: Grafana +tagline: ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ наблюдСния +category: networking +version: "13.0.1" +port: 3030 +description: >- + Grafana позволяСт Π²Π°ΠΌ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ, Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ваши ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΎΠ½ΠΈ хранятся. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅, исслСдуйтС ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ панСлями со своСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρƒ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° Π΄Π°Π½Π½Ρ‹Ρ…: + + + - Π’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ: быстрыС ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° с мноТСством ΠΎΠΏΡ†ΠΈΠΉ. ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способов Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ². + + + - ДинамичСскиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ: создавайтС динамичСскиС ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ шаблона, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ списков Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. + + + - Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ: ΠΈΠ·ΡƒΡ‡Π°ΠΉΡ‚Π΅ свои Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… запросов ΠΈ динамичСской Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ просмотр ΠΈ сравнитС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹, запросы ΠΈ источники Π΄Π°Π½Π½Ρ‹Ρ…. + + + - Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π»Ρ‹: испытайтС Π²ΠΎΠ»ΡˆΠ΅Π±ΡΡ‚Π²ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π½Π° ΠΆΡƒΡ€Π½Π°Π»Ρ‹ с сохранСнными Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠΊ. Быстро просматривайтС всС свои ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΈΠ»ΠΈ транслируйтС ΠΈΡ… Π² прямом эфирС. + + + - ΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΡ: Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ для Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. Grafana Π±ΡƒΠ΄Π΅Ρ‚ постоянно ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ увСдомлСния Π² Ρ‚Π°ΠΊΠΈΠ΅ систСмы, ΠΊΠ°ΠΊ Slack, PagerDuty, VictorOps, OpsGenie. + + + - Π‘ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ источники Π΄Π°Π½Π½Ρ‹Ρ…: ΡΠΌΠ΅ΡˆΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ источники Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅! Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ источник Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса. Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… источников Π΄Π°Π½Π½Ρ‹Ρ…. + + +developer: Grafana Labs +website: https://grafana.com +repo: https://github.com/grafana/grafana +support: https://grafana.com/help/ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ исправлСния ошибок: + - ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки часового пояса ΠΏΡ€ΠΈΠ±ΠΎΡ€Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ· V1 Π² V2. + - ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ошибки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π² коммСнтариях ΠΊ запросу Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ миграция Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/grafana/grafana/releases. +submitter: phelipebf +submission: https://github.com/getumbrel/dfwebos-apps/pull/1664 +dependencies: [] +path: "" +defaultUsername: "admin" +defaultPassword: "admin" diff --git a/grafana/docker-compose.yml b/grafana/docker-compose.yml new file mode 100644 index 0000000..87f7731 --- /dev/null +++ b/grafana/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + + app_proxy: + environment: + APP_HOST: grafana_web_1 + APP_PORT: 3000 + PROXY_AUTH_WHITELIST: "/api/*" + + web: + image: grafana/grafana:13.0.1@sha256:0f86bada30d65ef9d0183b90c1e2682ac92d53d95da8bed322b984ea78a4a73a + user: 1000:1000 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/var/lib/grafana diff --git a/habitica/data/db/.gitkeep b/habitica/data/db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/habitica/data/db/.gitkeep @@ -0,0 +1 @@ + diff --git a/habitica/data/dbconf/.gitkeep b/habitica/data/dbconf/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/habitica/data/dbconf/.gitkeep @@ -0,0 +1 @@ + diff --git a/habitica/dfwebos-app.yml b/habitica/dfwebos-app.yml new file mode 100644 index 0000000..3ce2ff8 --- /dev/null +++ b/habitica/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1 +id: habitica +name: Habitica +tagline: Π ΠŸΠ“ для вашСй ΠΆΠΈΠ·Π½ΠΈ +category: files +version: "5.47.2" +port: 3944 +description: >- + Habitica β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сочСтаСт Π² сСбС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ с элСмСнтами Ρ€ΠΎΠ»Π΅Π²Ρ‹Ρ… ΠΈΠ³Ρ€ для создания ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°. ΠŸΡ€Π΅Π²Ρ€Π°Ρ‰Π°Ρ повсСднСвныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ†Π΅Π»ΠΈ Π² квСсты, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ прСдлагаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΡ… Π² ΠΎΠ±ΠΌΠ΅Π½ Π½Π° Π½Π°Π³Ρ€Π°Π΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡ‡ΠΊΠΈ ΠΎΠΏΡ‹Ρ‚Π°, Π·ΠΎΠ»ΠΎΡ‚ΠΎ ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈΠΈΠ³Ρ€ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹. Habitica позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΈ, списки Π΄Π΅Π» ΠΈ долгосрочныС Ρ†Π΅Π»ΠΈ. Выполняя задания, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ своих Π°Π²Π°Ρ‚Π°Ρ€ΠΎΠ², ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π½Π°Π³Ρ€Π°Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ настройки ΠΈΡ… пСрсонаТСй ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΈΡ‚ΠΎΠΌΡ†Π΅Π². + + + Одной ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… особСнностСй Habitica являСтся Π΅Π΅ ориСнтация Π½Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π΅ΠΊ ΠΈ личностный рост. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ отслСТиваСт прогрСсс с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, помогая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΈ ΠΈ ΠΈΠ·Π±Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΠ»ΠΎΡ…ΠΈΡ…. ГСймификация Habitica Π΄Π΅Π»Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ Π±ΠΎΠ»Π΅Π΅ приятным, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π°Π²Π°Ρ‚Π°Ρ€Ρ‹ становятся сильнСС ΠΈ Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈΠΈΠ³Ρ€ΠΎΠ²Ρ‹Π΅ достиТСния Π·Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. + + + Помимо ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ использования, Habitica ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ присоСдинСниС ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΈ участиС Π² сорСвнованиях с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ сообщСством. Π­Ρ‚ΠΎ добавляСт ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ отвСтствСнности ΠΈ способствуСт чувству товарищСства, благодаря Ρ‡Π΅ΠΌΡƒ Π»Π΅Π³Ρ‡Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ. Π’ Ρ†Π΅Π»ΠΎΠΌ, Habitica ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±Ρ‹Π΄Π΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚, побуТдая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ достиТСниСм своих Ρ†Π΅Π»Π΅ΠΉ, наслаТдаясь ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ΠΌ. +developer: HabitRPG, Inc. +website: https://habitica.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2849 +repo: https://github.com/HabitRPG/habitica +support: https://github.com/HabitRPG/habitica/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg + - 6.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ поиск Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠ»Π°Π½ΠΎΠ² с ΠΈΡΡ‚Π΅ΠΊΡˆΠΈΠΌ сроком дСйствия с использованиСм Π΄Π°Ρ‚Ρ‹ создания вмСсто ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ пустым послС ΠΎΡ‚ΠΌΠ΅Π½Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Ρ†Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° Ρ„ΠΎΠ½Π΅ послСднСго события для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ совмСстимости с ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ устройствами. + - ВосстановлСн случайно ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ CSS для Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… GIF-Ρ„Π°ΠΉΠ»ΠΎΠ². + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° сайтС https://github.com/HabitRPG/habitica/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/habitica/docker-compose.yml b/habitica/docker-compose.yml new file mode 100644 index 0000000..9024f2a --- /dev/null +++ b/habitica/docker-compose.yml @@ -0,0 +1,39 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: habitica_server_1 + APP_PORT: 3000 + + server: + image: awinterstein/habitica-server:5.47.2@sha256:3827aeb8246fd4f4630b738944164d38b00f54a3d55a966eedeced4eddb2aa1d + restart: on-failure + depends_on: + - mongo + environment: + - NODE_DB_URI=mongodb://habitica_mongo_1/habitica + - BASE_URL=http://${DEVICE_DOMAIN_NAME}:3944 + - INVITE_ONLY=false + # EMAIL_SERVER_URL=mail.example.com + # EMAIL_SERVER_PORT=587 + # EMAIL_SERVER_AUTH_USER=mail_user + # EMAIL_SERVER_AUTH_PASSWORD=mail_password + # ADMIN_EMAIL=mail@example.com + + mongo: + image: mongo:8.0.11@sha256:5941949d3887e40be5175787aade07dc052f2cddb8ce21b740c3948eba6a3ed0 + restart: on-failure + command: ["--replSet", "rs", "--bind_ip_all", "--port", "27017"] + healthcheck: + test: > + echo "try { rs.status() } catch (err) { rs.initiate({ _id: 'rs', members: [{ _id: 0, host: 'habitica_mongo_1:27017' }] }) }" + | mongosh --port 27017 --quiet + interval: 10s + timeout: 30s + start_period: 0s + start_interval: 1s + retries: 30 + volumes: + - ${APP_DATA_DIR}/data/db:/data/db:rw + - ${APP_DATA_DIR}/data/dbconf:/data/configdb diff --git a/heimdall/config/.gitkeep b/heimdall/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/heimdall/dfwebos-app.yml b/heimdall/dfwebos-app.yml new file mode 100644 index 0000000..f0d41d4 --- /dev/null +++ b/heimdall/dfwebos-app.yml @@ -0,0 +1,46 @@ +manifestVersion: 1 +id: heimdall +name: Heimdall +tagline: УпорядочитС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π²Π΅Π±-сайты простым способом +category: files +version: "2.7.6" +port: 7392 +description: >- + Heimdall β€” это панСль управлСния для всСх Π²Π°ΡˆΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Однако Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ прилоТСниями: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ссылки Π½Π° всС, Ρ‡Ρ‚ΠΎ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. + + + Heimdall β€” это элСгантноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ всСх Π²Π°ΡˆΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ для этой Ρ†Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π½Π΅ потСряли свои ссылки Π² ΠΌΠΎΡ€Π΅ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ. + + + ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² качСствС стартовой страницы Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°? Он Π΄Π°ΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ панСль поиска с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Google, Bing ΠΈΠ»ΠΈ DuckDuckGo. + + + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ссылки Π½Π° любой сайт ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ прилоТСния Foundation автоматичСски заполнят Π·Π½Π°Ρ‡ΠΎΠΊ прилоТСния ΠΈ прСдоставят Ρ†Π²Π΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΏΠ»ΠΈΡ‚ΠΊΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ прилоТСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ прилоТСниям API, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ статистику Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ прямо Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ управлСния. НапримСр, прилоТСния NZBGet ΠΈ Sabnzbd Enhanced Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + + + ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ прилоТСния Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ΡΡ ΠΏΠΎ названию прилоТСния, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π² ΠΏΠΎΠ»Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ прилоТСния. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ссылку Π½Π° pfSense, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с Π²Π²ΠΎΠ΄Π° Β«pΒ» Π² ΠΏΠΎΠ»Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«pfSenseΒ» ΠΈΠ· списка ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. +developer: LinuxServer.io +website: https://heimdall.site +repo: https://github.com/linuxserver/Heimdall +support: https://github.com/linuxserver/Heimdall/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: > + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок: + + + - ОбновлСн app.php. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΎΠ½Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ пароля + + + Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΏΠΎΠ»Π½Ρ‹Ρ… примСчаниях ΠΊ выпуску ΠΏΠΎ адрСсу https://github.com/linuxserver/Heimdall/releases. +dependencies: [] +path: "" +torOnly: false +defaultUsername: "" +defaultPassword: "" +submitter: AxelPilop +submission: https://github.com/getumbrel/dfwebos-apps/pull/390 diff --git a/heimdall/docker-compose.yml b/heimdall/docker-compose.yml new file mode 100644 index 0000000..e86b495 --- /dev/null +++ b/heimdall/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: heimdall_server_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + server: + image: linuxserver/heimdall:2.7.6@sha256:30c32fb4ebe54282b6e60cb0232f57d5fcda60d87a9b7e9a4d1ef71ad636817d + volumes: + - ${APP_DATA_DIR}/config:/config + environment: + - PUID=1000 + - PGID=1000 + restart: on-failure diff --git a/helipad/data/.gitkeep b/helipad/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/helipad/dfwebos-app.yml b/helipad/dfwebos-app.yml new file mode 100644 index 0000000..3b95d2b --- /dev/null +++ b/helipad/dfwebos-app.yml @@ -0,0 +1,58 @@ +manifestVersion: 1 +id: helipad +category: bitcoin +name: Helipad +version: "0.2.2" +tagline: ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ бустов ΠΈ бустаграмм ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Podcasting 2.0 +description: ВСртолСтная ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹ ΠΈ сообщСния бустаграммы, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ Π½Π° ваш +developer: Podcastindex.org +website: https://podcastindex.org +dependencies: + - lightning +repo: https://github.com/Podcastindex-org/helipad +support: https://podcastindex.social +port: 2112 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultPassword: "" +submitter: Podcastindex.org +submission: https://github.com/getumbrel/umbrel/pull/1174 +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Fountain, Podcast Guru ΠΈ Boostbox для счСтов BOLT11. + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² LNURL (boostbacks) + + - Новый Π·Π²ΡƒΠΊ, Π²Π΅Π±-Ρ…ΡƒΠΊ, MIDI-инструмСнт ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ OSC Π² зависимости ΠΎΡ‚ уровня усилСния, отправитСля, ΠΈΠΌΠ΅Π½ΠΈ прилоТСния ΠΈ подкаста. + + - Новая опция для отобраТСния ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… счСтов Lightning Π² спискС ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ. + + - НовоС ΠΏΠΎΠ»Π΅ направлСния Π²Π΅Π±-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠ° для указания входящих/исходящих усилСний. + + - НовоС соСдинСниС Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-сокСт для Π±ΠΎΠ»Π΅Π΅ быстрого доступа ΠΊ скамьям. + + - Новая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π² систСмС Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 30 Π΄Π½Π΅ΠΉ. + + - НовоС ΠΏΠΎΠ»Π΅ action_name Π² экспортС/ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… CSV. + + - Новая конСчная Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² API. + + - ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ имя ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ кошСлькС. + + - Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ полосу ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ подкастов. + + - УстановитС ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° ΠΎΠ΄ΠΈΠ½ мСсяц Π½Π°Π·Π°Π΄ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ окончания 23:59:59. + + – УстановитС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Ρ‚Ρ‹/Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°: Π“Π“Π“Π“-ММ-Π”Π” Π§Π§:ММ:Π‘Π‘ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ столбцом часового пояса. + + - ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ†Π΅Π½Π°Ρ… BTC Π½Π° Blockchain.com. + + - Π—Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π²ΡƒΠΊΠΈ скамСйки. + + - Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ V4VMusic Π² список ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ LND ΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹Π΅ Π·Π²ΠΎΠ½ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​подписка Π½Π° счСта. \ No newline at end of file diff --git a/helipad/docker-compose.yml b/helipad/docker-compose.yml new file mode 100644 index 0000000..50abd3c --- /dev/null +++ b/helipad/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: helipad_web_1 + APP_PORT: 2112 + + web: + image: podcastindexorg/podcasting20-helipad:0.2.2@sha256:bd300d26dd605dd73bb2c942db67903bbe24f0b63035aa3cd64727df181d4cc5 + init: true + restart: on-failure + stop_grace_period: 1m + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data:/data + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + LND_URL: "$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT" diff --git a/hermes-agent/data/hermes/.gitkeep b/hermes-agent/data/hermes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/hermes-agent/dfwebos-app.yml b/hermes-agent/dfwebos-app.yml new file mode 100644 index 0000000..e09bada --- /dev/null +++ b/hermes-agent/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1 +id: hermes-agent +category: ai +name: Hermes Agent +version: "2026.4.23" +tagline: АгСнт ИИ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ растСт вмСстС с Π²Π°ΠΌΠΈ +description: >- + АгСнт Hermes β€” это Π°Π³Π΅Π½Ρ‚ ИИ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ становится Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ большС Π²Ρ‹ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, создавая свои собствСнныС Π½Π°Π²Ρ‹ΠΊΠΈ, сохраняя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки ΠΈ обновляя свою ΠΏΠ°ΠΌΡΡ‚ΡŒ. + + + Π’ DFWebOS ΠΎΠ½ открываСтся Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с Hermes, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ настройку ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своим Π°Π³Π΅Π½Ρ‚ΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ доступна встроСнная панСль управлСния для настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², просмотра сСансов ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° шлюза. + + + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π³Π΅Π½Ρ‚ Hermes для просмотра Π²Π΅Π±-страниц, рСдактирования Ρ„Π°ΠΉΠ»ΠΎΠ², запуска ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΡ… сСрвисов, ΠΊΠ°ΠΊ Telegram, Signal, WhatsApp ΠΈ Discord, сохранСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² ΠΈ запоминания Π²Π°ΠΆΠ½Ρ‹Ρ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ сСансами. + + + АгСнт Hermes Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСды прилоТСния DFWebOS, поэтому ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ свободно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² своСй собствСнной срСдС, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ваши прилоТСния ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. + + + ## Π§Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ + + - **ΠžΠ±Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈ дСйствуйтС**. Π—Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ вопросы, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ Hermes ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты Π·Π° вас. + + - **Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ нСскольким ΠΊΠ°Π½Π°Π»Π°ΠΌ** - ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ прилоТСния Ρ‡Π°Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π°Π³Π΅Π½Ρ‚ΠΎΠΌ, Π³Π΄Π΅ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. + + - **Π—Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ваш Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс**. - БохраняйтС настройки, контСкст ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… сСансах. + + - **УправляйтС ΠΈΠΌ с ΠΏΠ°Π½Π΅Π»ΠΈ управлСния**. - НастраивайтС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, просматривайтС дСйствия ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π°Π³Π΅Π½Ρ‚Π° ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. +developer: Nous Research +website: https://hermes-agent.nousresearch.com +dependencies: [] +repo: https://github.com/NousResearch/hermes-agent +support: https://github.com/NousResearch/hermes-agent/issues +port: 18790 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "/terminal" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² АгСнтС ГСрмСс (2026.4.23): + - ДобавляСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Hermes с Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌΠΈ возмоТностями взаимодСйствия с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ, налоТСниями ΠΈ статусом Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + - Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ панСль управлСния Π·Π° счСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚Π΅ΠΌ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ восстановлСниС послС пСрСзапуска шлюза, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ сСанса ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями. + - Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… исправлСний ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ Π² ядрС Π°Π³Π΅Π½Ρ‚Π°, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, CLI, шлюзС ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. + + + Полная информация Π½Π° https://github.com/NousResearch/hermes-agent/releases. +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/5376 diff --git a/hermes-agent/docker-compose.yml b/hermes-agent/docker-compose.yml new file mode 100644 index 0000000..96c8930 --- /dev/null +++ b/hermes-agent/docker-compose.yml @@ -0,0 +1,49 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: hermes-agent_web_1 + APP_PORT: 18789 + + # Π’Π΅Π±-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» + прокси-сСрвСр ΠΏΠ°Π½Π΅Π»ΠΈ управлСния + web: + image: ghcr.io/getumbrel/hermes-agent-umbrel:v2026.4.23-1@sha256:1101da395b9d800a03fbdbe16b9753e872180507608c932e83d9e94e524f7b9a + # Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС отобраТаСтся "dfwebos@hermes" вмСсто "dfwebos@". + hostname: hermes + init: true + user: "1000:1000" + restart: on-failure + depends_on: + - gateway + volumes: + - ${APP_DATA_DIR}/data/hermes:/opt/data + environment: + APP_SEED: ${APP_SEED} + # Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ шлюз Ρ‡Π΅Ρ€Π΅Π· HTTP вмСсто локального обнаруТСния PID. + GATEWAY_HEALTH_URL: http://hermes-agent_gateway_1:8642 + + # Шлюз ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ГСрмСс + gateway: + image: nousresearch/hermes-agent:v2026.4.23@sha256:d4ee57f254aabbe10e41c49533bbf3eb98e6b026463c42843a07588e45ddd338 + # Восходящая вСрсия v2026.4.23 начинаСтся с адрСса UID 10000, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ DFWebOS. + # 1000:1000 ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния. ЗапускайтС ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° восходящСго ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠΎΠ³Π»Π° + # ΡΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ HERMES_UID/HERMES_GID, ΠΈΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎ собствСнности Π½Π° /opt/data, Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΠ°ΠΆΠΈΡ‚Π΅ΡΡŒ ΠΎΡ‚ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. + # Π£Π΄Π°Π»ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основной выпуск Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ исправлСниС Docker UID/GID. + # Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ NousResearch/hermes-agent#12696. + user: "0:0" + command: gateway run + stop_grace_period: 1m + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/hermes:/opt/data + environment: + HERMES_UID: "1000" + HERMES_GID: "1000" + # Π‘Π΅Ρ€Π²Π΅Ρ€ API прСдоставляСт ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ работоспособности, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ панСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° провСряСт Ρ‡Π΅Ρ€Π΅Π· GATEWAY_HEALTH_URL. + # Π”ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ привязан ΠΊ 0.0.0.0 (Π½Π΅ ΠΊ 127.0.0.1 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ доступным ΠΈΠ· Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. + # Для привязки ΠΊ 0.0.0.0 трСбуСтся ΠΊΠ»ΡŽΡ‡ API β€” ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ APP_SEED, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΡ€Ρ‚ + # Волько Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ (Π½Π΅ доступСн хосту). + API_SERVER_ENABLED: "true" + API_SERVER_HOST: "0.0.0.0" + API_SERVER_KEY: ${APP_SEED} diff --git a/holesail-switchboard/data/.gitkeep b/holesail-switchboard/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/holesail-switchboard/dfwebos-app.yml b/holesail-switchboard/dfwebos-app.yml new file mode 100644 index 0000000..a3d6345 --- /dev/null +++ b/holesail-switchboard/dfwebos-app.yml @@ -0,0 +1,45 @@ +manifestVersion: 1 +id: holesail-switchboard +category: networking +name: Holesail Switchboard +version: "2.0.8" +tagline: УправляйтС нСсколькими P2P-туннСлями Holesail с Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния. +description: >- + ЗапускаСм DFWebOS Π·Π° домашним ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ (NAT) Π±Π΅Π· общСдоступного Π΄ΠΎΠΌΠ΅Π½Π°? Tor слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ? + + + Holesail Switchboard прСдоставляСт Π²Π΅Π±-интСрфСйс для управлСния нСсколькими сСрвСрами ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ Holesail. + позволяя Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ Ρ‚ΡƒΠ½Π½Π΅Π»ΠΈ P2P, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ обходят Π»ΡŽΠ±Ρ‹Π΅ ограничСния сСти, брандмауэра ΠΈΠ»ΠΈ NAT. + + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈ управляйтС нСсколькими P2P-сСрвСрами ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ с Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния. + - ГСнСрация QR-ΠΊΠΎΠ΄Π° для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° URL-адрСсами ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСрвСру. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° бСзопасного Ρ€Π΅ΠΆΠΈΠΌΠ° для частных ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ + - ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Π°Ρ конфигурация, Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + + + Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования: + - ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠΉΡ‚Π΅ доступ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ вашим прилоТСниям DFWebOS Π±Π΅Π· пСрСадрСсации ΠΏΠΎΡ€Ρ‚ΠΎΠ². + - ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ доступом ΠΊ мСстным услугам с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈ сСмьСй. + - БСзопасноС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ сСрвисам + + Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ: https://github.com/oren-z0/holesail-switchboard/blob/main/docs/DFWebOS.md. +releaseNotes: "" +developer: oren-z0 +website: https://github.com/oren-z0/holesail-switchboard +dependencies: [] +repo: https://github.com/oren-z0/holesail-switchboard +support: https://github.com/oren-z0/holesail-switchboard/discussions +port: 3160 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: oren-z0 +submission: https://github.com/getumbrel/dfwebos-apps/pull/4648 diff --git a/holesail-switchboard/docker-compose.yml b/holesail-switchboard/docker-compose.yml new file mode 100644 index 0000000..157912a --- /dev/null +++ b/holesail-switchboard/docker-compose.yml @@ -0,0 +1,32 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: holesail-switchboard_web_1 + APP_PORT: 3160 + + web: + image: orenz0/holesail-switchboard:v2.0.8@sha256:87bee9070543a0ec929289fc1d6ebe37b899350b4844d35ff1f2b38e689868ad + restart: on-failure + stop_grace_period: 1m + ports: + - 3161:3161 + - 3162:3162 + - 3163:3163 + - 3164:3164 + - 3165:3165 + - 3166:3166 + - 3167:3167 + - 3168:3168 + - 3169:3169 + - 3170:3170 + volumes: + - ${APP_DATA_DIR}/data:/data + environment: + HSSB_DATA_FILE: /data/data.json + HSSB_HOST: 0.0.0.0 + HSSB_PORT: 3160 + HSSB_CLIENT_HOST: 0.0.0.0 + HSSB_FIXED_CLIENT_PORTS: 3161-3170 + HSSB_SUBTITLE: "For more information, visit: https://github.com/oren-z0/holesail-switchboard/blob/main/docs/DFWebOS.md" diff --git a/homarr/data/.gitkeep b/homarr/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/homarr/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/homarr/dfwebos-app.yml b/homarr/dfwebos-app.yml new file mode 100644 index 0000000..6a136e1 --- /dev/null +++ b/homarr/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: homarr +name: Homarr +tagline: НастраиваСмая домашняя страница Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° +category: files +version: "1.59.3" +port: 7575 +description: >- + 🦞 Homarr β€” это соврСмСнная автономная панСль управлСния, призванная ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ свои Π²Π΅Π±-прилоТСния ΠΈ сСрвисы Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ мСстС. Он дСйствуСт ΠΊΠ°ΠΊ пСрсонализированная домашняя страница, доступная Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, позволяя людям ΠΈΠΌΠ΅Ρ‚ΡŒ быстрый ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ доступ ΠΊΠΎ всСм Π²Π°ΠΆΠ½Ρ‹ΠΌ ссылкам, сСрвСрам, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ ΠΈ API. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ нСсколько сСрвисов Π½Π° своих сСрвСрах ΠΈΠ»ΠΈ устройствах ΠΈ хотят ΠΈΠΌΠ΅Ρ‚ΡŒ чистый, ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ интСрфСйс для взаимодСйствия с Π½ΠΈΠΌΠΈ. + + + Основная Ρ†Π΅Π»ΡŒ Homarr β€” ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвисов. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ настраиваСмыС ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠ»ΠΈΡ‚ΠΊΠΈ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ прилоТСния ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ. Π­Ρ‚ΠΈ ΠΏΠ»ΠΈΡ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² соотвСтствии с Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ прСдпочтСниями, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ поиск ΠΈ запуск Π½ΡƒΠΆΠ½ΠΎΠΉ слуТбы Π±Π΅Π· нСобходимости Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ нСсколько URL-адрСсов ΠΈΠ»ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ многочислСнными Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ. ПанСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° обСспСчиваСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, позволяя Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚, Ρ†Π²Π΅Ρ‚Π° ΠΈ Π·Π½Π°Ρ‡ΠΊΠΈ Π² соотвСтствии со стилСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ удобства использования. + + + ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Homarr размСщаСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ½ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ срСдой. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π° Ρ‚Π°ΠΊΠΈΡ… устройствах, ΠΊΠ°ΠΊ домашниС сСрвСры, сСтСвыС систСмы хранСния ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ частныС сСрвСры. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ бСзопасности ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Ρ‡Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ связанных слуТб ΠΎΡ‚ нСсанкционированного использования. + + + Homarr особСнно ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»Π΅Π½ для тСхничСских энтузиастов, систСмных администраторов ΠΈ всСх, ΠΊΡ‚ΠΎ управляСт слоТной настройкой Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ интСрфСйсам ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ доступ ΠΊ сСрвисам. ОбъСдинив всС Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ, простой Π² использовании интСрфСйс, Homarr ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ. + + + Подводя ΠΈΡ‚ΠΎΠ³, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Homarr β€” это настраиваСмоС ΠΈ бСзопасноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ для людСй, стрСмящихся Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступ ΠΊ своим Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Π΅Π±-прилоТСниям. Он ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ удобство, прСдлагая Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ доступа ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисам ΠΈ инструмСнтам. +developer: homarr-labs +website: https://homarr.dev/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3254 +repo: https://github.com/homarr-labs/homarr +support: https://github.com/homarr-labs/homarr/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ зависимостСй: + - ОбновлСна Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ sqlite3 для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/homarr-labs/homarr/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/homarr/docker-compose.yml b/homarr/docker-compose.yml new file mode 100644 index 0000000..90827d7 --- /dev/null +++ b/homarr/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: homarr_web_1 + APP_PORT: 7575 + + web: + image: ghcr.io/homarr-labs/homarr:v1.59.3@sha256:4ffa0d4b24e390fd0050a18103ecfcb009357f6b3a25409fd4dd8cb0b9f3443e + restart: on-failure + environment: + SECRET_ENCRYPTION_KEY: ${APP_SEED} + volumes: + - ${APP_DATA_DIR}/data:/appdata diff --git a/home-assistant-fusion-ui/data/fusion/.gitkeep b/home-assistant-fusion-ui/data/fusion/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/home-assistant-fusion-ui/dfwebos-app.yml b/home-assistant-fusion-ui/dfwebos-app.yml new file mode 100644 index 0000000..592ad62 --- /dev/null +++ b/home-assistant-fusion-ui/dfwebos-app.yml @@ -0,0 +1,31 @@ +manifestVersion: 1 +id: home-assistant-fusion-ui +name: HA-Fusion +tagline: БоврСмСнная, простая Π² использовании ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ панСль управлСния Home Assistant. +category: automation +version: "2024.10.1" +port: 5023 +description: >- + HA-Fusion (Home Assistant Fusion интСрфСйс) β€” Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс для ΠΏΡ€ΠΈΠ±ΠΎΡ€Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Home Assistant, + Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½ элСгантным ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ прилоТСния iOS Home. Π₯отя ΠΎΠ½ Π½Π΅ управляСт ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, + ЦСль HA-Fusion β€” ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ настраиваСмый ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΡ‰ΡƒΡ‰ΠΈΡ… + Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ свой ΠΎΠΏΡ‹Ρ‚ Home Assistant. +developer: Mattias Persson +website: https://github.com/matt8707/ha-fusion +repo: https://github.com/matt8707/ha-fusion +submitter: JoΓ£o Victor +submission: https://github.com/getumbrel/dfwebos-apps/pull/1185 +support: https://github.com/matt8707/ha-fusion/discussions +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - ЀиксированныС элСмСнты изобраТСния Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ изобраТСния. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° сайтС https://github.com/matt8707/ha-fusion/releases. +dependencies: + - home-assistant +path: "" \ No newline at end of file diff --git a/home-assistant-fusion-ui/docker-compose.yml b/home-assistant-fusion-ui/docker-compose.yml new file mode 100644 index 0000000..1b50e6a --- /dev/null +++ b/home-assistant-fusion-ui/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3.7" + +services: + # НСкоторыС запросы API ΠΎΡ‚ Fusion Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, Ссли для app_proxy Π½Π΅ установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ PROXY_TRUST_UPSTREAM=true. + # ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅_прокси: + # срСда: + # APP_HOST: home-assistant-fusion-ui_web_1 + # APP_PORT: 5050 + # PROXY_TRUST_UPSTREAM: "true" + + web: + image: ghcr.io/matt8707/ha-fusion:2024.10.1@sha256:5eea4634ab2b1e7c7523943996d13318d109b293abe8e9e86c38daf5c41830cb + restart: on-failure + user: 1000:1000 + ports: + - 5023:5050 + volumes: + - ${APP_DATA_DIR}/data/fusion:/app/data + environment: + HASS_URL: http://${DEVICE_DOMAIN_NAME}:8123 + extra_hosts: + - "${DEVICE_DOMAIN_NAME}:${APP_HAFUSION_MACHINE_IP}" \ No newline at end of file diff --git a/home-assistant-fusion-ui/exports.sh b/home-assistant-fusion-ui/exports.sh new file mode 100644 index 0000000..6c0ec35 --- /dev/null +++ b/home-assistant-fusion-ui/exports.sh @@ -0,0 +1 @@ +export APP_HAFUSION_MACHINE_IP=$(hostname -I | awk '{print $1}') \ No newline at end of file diff --git a/home-assistant/data/.gitkeep b/home-assistant/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/home-assistant/dfwebos-app.yml b/home-assistant/dfwebos-app.yml new file mode 100644 index 0000000..769cc3d --- /dev/null +++ b/home-assistant/dfwebos-app.yml @@ -0,0 +1,60 @@ +manifestVersion: 1.1 +id: home-assistant +category: automation +name: Home Assistant +version: "2026.4.4" +tagline: Π”ΠΎΠΌΠ°ΡˆΠ½ΡΡ автоматизация, которая ставит Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто +description: >- + Π”ΠΎΠΌΠ°ΡˆΠ½ΡΡ автоматизация с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ + сначала. Π‘ΠΎΠ·Π΄Π°Π½ΠΎ ΠΌΠΈΡ€ΠΎΠ²Ρ‹ΠΌ сообщСством мастСров ΠΈ энтузиастов DIY. + ПослС запуска Home Assistant автоматичСски просканируСт Π²Π°ΡˆΡƒ ΡΠ΅Ρ‚ΡŒ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ извСстных устройств ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΈΡ… Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. + Home Assistant интСгрируСтся с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ тысячСй Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… устройств ΠΈ сСрвисов. + + + Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ всС свои устройства Π΄ΠΎΠΌΠ°, Π²Ρ‹ смоТСтС Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ возмоТности Home Assistant. + ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заставит ваш Π΄ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° вас. Π”Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ: + + - Π’ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ свСт, ΠΊΠΎΠ³Π΄Π° солнцС садится ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Π΄ΠΎΠΌΠΎΠΉ. + + - ΠŸΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ оповСщСния, ΠΊΠΎΠ³Π΄Π° оставляСтС Π΄Π²Π΅Ρ€ΡŒ Π³Π°Ρ€Π°ΠΆΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ. + + + Home Assistant Ρ…Ρ€Π°Π½ΠΈΡ‚ ваши Π΄Π°Π½Π½Ρ‹Π΅ локально, Π½Π΅Ρ‚ нСобходимости Π² ΠΎΠ±Π»Π°ΠΊΠ΅. Home Assistant взаимодСйствуСт с вашими устройствами локально ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠ±Π»Π°ΠΊΠ°, Ссли Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. НикакиС Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ хранятся Π² ΠΎΠ±Π»Π°ΠΊΠ΅, всС обрабатываСтся локально. + + + ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Ѐункция обнаруТСния USB-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Zigbee, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… нСпосрСдствСнно ΠΊ устройству, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ DFWebOS) ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ DFWebOS Π½Π° Raspberry Pi. +developer: Home Assistant +website: https://home-assistant.io +dependencies: [] +repo: https://github.com/home-assistant/core +support: https://community.home-assistant.io +port: 8123 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +permissions: + - STORAGE_DOWNLOADS +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск исправлСний Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… интСграциях. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ исправлСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ просмотр ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° Kodi. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка Π»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Victron BLE для нСраспознанных Π±Π°ΠΉΡ‚ΠΎΠ² Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠ° MIME с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра Π² Google Generative ИИ TTS. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ MQTT JSON, Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΡ€ΠΈ запускС. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° соСдинСния IMAP ΠΏΡ€ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ послС ΠΏΠΎΡ‚Π΅Ρ€ΠΈ соСдинСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ состояниС Π²ΠΎΠ΄Ρ‹ ΠΈ класс устройства для Gardena Bluetooth. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° скорости вСнтилятора Roborock ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок. + - Π—Π°ΠΌΠ΅Π΄Π»Π΅Π½ опрос Tractive API, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок ограничСния скорости. + - ОбновлСн интСрфСйс Π΄ΠΎ послСднСй вСрсии + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/home-assistant/core/releases/. +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/commit/9d79cffae608c6a6ab077f859c1c531a581cf926 diff --git a/home-assistant/docker-compose.yml b/home-assistant/docker-compose.yml new file mode 100644 index 0000000..71991f8 --- /dev/null +++ b/home-assistant/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.7" + +services: + server: + image: homeassistant/home-assistant:2026.4.4@sha256:c1e5f0147f4cb51ccb05bb30b62a1269cc1bd48a6274792d3b38a77ab274dfd2 + network_mode: host + # интСрфСйс Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 8123 + privileged: true + volumes: + - ${APP_DATA_DIR}/data:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/media + - /dev:/dev + - /run/dbus:/run/dbus:ro diff --git a/home-assistant/hooks/pre-start b/home-assistant/hooks/pre-start new file mode 100755 index 0000000..ffa88c9 --- /dev/null +++ b/home-assistant/hooks/pre-start @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +# Π­Ρ‚ΠΎΡ‚ скрипт провСряСт, установлСна ​​ли Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ вСрсия прилоТСния, ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ хост-сСти, ΠΈ, Ссли Π΄Π°, +# удаляСт старыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Home Assistant ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. + +APP_DIR="$(dirname "${BASH_SOURCE[0]}")/.." +HOME_ASSISTANT_CONFIG_DIR="${APP_DIR}/data" +PRE_HOST_NETWORK_CONFIGURATION_YAML="${APP_DIR}/configuration.yaml" +PRE_HOST_NETWORK_CONFIGURATION_TEMPLATE="${APP_DIR}/configuration.yaml.template" +CONFIGURATION_YAML="${HOME_ASSISTANT_CONFIG_DIR}/configuration.yaml" + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ хост-ΡΠ΅Ρ‚ΡŒΡŽ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΈΡ…, Ссли ΠΎΠ½ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. +if [[ -f "${PRE_HOST_NETWORK_CONFIGURATION_YAML}" ]] || [[ -f "${PRE_HOST_NETWORK_CONFIGURATION_TEMPLATE}" ]]; then + echo "This is a pre-host-network installation" + + if [[ -f "${PRE_HOST_NETWORK_CONFIGURATION_YAML}" ]]; then + echo "Deleting old configuration.yaml" + rm "${PRE_HOST_NETWORK_CONFIGURATION_YAML}" + fi + + if [[ -f "${PRE_HOST_NETWORK_CONFIGURATION_TEMPLATE}" ]]; then + echo "Deleting old configuration.yaml.template" + rm "${PRE_HOST_NETWORK_CONFIGURATION_TEMPLATE}" + fi + + # Π’Π°ΠΊΠΆΠ΅ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ configuration.yml Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. + if [[ -f "${CONFIGURATION_YAML}" ]]; then + echo "Deleting old configuration.yaml in data dir" + rm "${CONFIGURATION_YAML}" + fi +fi \ No newline at end of file diff --git a/homebox/data/.gitkeep b/homebox/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/homebox/dfwebos-app.yml b/homebox/dfwebos-app.yml new file mode 100644 index 0000000..cec9694 --- /dev/null +++ b/homebox/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: homebox +name: HomeBox +tagline: БистСма ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, созданная для домашнСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. +category: files +version: "0.25.0" +port: 7745 +description: >- + Homebox β€” это систСма ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, созданная для домашнСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ! Homebox, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° простоту ΠΈ удобство использования, являСтся ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для вашСго домашнСго инвСнтаря, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ управлСния. + + + Homebox Π² настоящСС врСмя находится Π² стадии Π±Π΅Ρ‚Π°-тСстирования ΠΈ находится Π² стадии Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅Ρ‰Π΅ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Ρ‹ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ошибки. +developer: SysAdmins Media +website: https://homebox.software +repo: https://github.com/sysadminsmedia/homebox +support: https://github.com/sysadminsmedia/homebox/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +dependencies: [] +path: "" +torOnly: false +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + ⚠️ ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ сохранСнных Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + + + 🚨 Π’ этом выпускС исправлСна β€‹β€‹ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ бСзопасности (CVE-2026-40196), которая позволяла ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ своСй Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· API. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска: + - ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Ρ‚Π΅Π³ΠΎΠ²: Ρ‚Π΅Π³ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅/Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈ Π·Π½Π°Ρ‡ΠΊΠΈ. + - Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΠΎΠ±Π½Ρ‹Π΅/дСсятичныС числа (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1,2, 3,45). + - ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ хранятся Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° всСх устройствах ΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenTelemetry для отслСТивания, рСгистрации ΠΈ отслСТивания ошибок. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ OpenFoodFacts, OpenBeautyFacts ΠΈ OpenProductsFacts Π² качСствС поставщиков поиска ΡˆΡ‚Ρ€ΠΈΡ…-ΠΊΠΎΠ΄ΠΎΠ². + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/sysadminsmedia/homebox/releases. +submitter: Xosten +submission: https://github.com/getumbrel/dfwebos-apps/pull/501 diff --git a/homebox/docker-compose.yml b/homebox/docker-compose.yml new file mode 100644 index 0000000..5d875a6 --- /dev/null +++ b/homebox/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" + +services: + + app_proxy: + environment: + APP_HOST: homebox_web_1 + APP_PORT: 7745 + + web: + image: ghcr.io/sysadminsmedia/homebox:0.25.0@sha256:6506480a3dfadd2cc885fa97b32d11b0ee28ec58629fa34a76afdb4ac540c7fc + restart: on-failure + user: 1000:1000 + environment: + - HBOX_LOG_LEVEL=info + - HBOX_LOG_FORMAT=text + - HBOX_WEB_MAX_UPLOAD_SIZE=10 + volumes: + - ${APP_DATA_DIR}/data:/data/ diff --git a/homebridge/data/homebridge/.gitkeep b/homebridge/data/homebridge/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/homebridge/dfwebos-app.yml b/homebridge/dfwebos-app.yml new file mode 100644 index 0000000..b14021e --- /dev/null +++ b/homebridge/dfwebos-app.yml @@ -0,0 +1,53 @@ +manifestVersion: 1 +id: homebridge +category: automation +name: Homebridge +version: "1.11.3-2026-03-25" +tagline: "ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° HomeKit для Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹Ρ…" +description: >- + ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° HomeKit Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π΅Π΅ Π½Π΅Ρ‚. Homebridge позволяСт ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с устройствами ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ HomeKit. + БущСствуСт Π±ΠΎΠ»Π΅Π΅ 2000 ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Homebridge, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… тысячи Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… аксСссуаров. + + + НСкоторыС ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + + - ΠšΠΎΠ»ΡŒΡ†ΠΎ + + - Π“Π½Π΅Π·Π΄ΠΎ ΠΈ Π³Π½Π΅Π·Π΄ΠΎΠ²Ρ‹Π΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ + + - Π£ΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ TP-Link Kasa + + - Hue/deCONZ (Π—ΠΈΠ³Π±ΠΈ) + + - Π‘Π΅Π»ΠΊΠΈΠ½ Π’Π΅ΠΌΠΎ + + - ΠΌΠΎΠΉ вопрос + + - ΠΠ½ΠΈΠ€ΠΈ Π—Π°Ρ‰ΠΈΡ‚Π° +developer: Homebridge +website: https://homebridge.io/ +dependencies: [] +repo: https://github.com/homebridge/homebridge +support: https://github.com/homebridge/homebridge/issues +port: 8581 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +permissions: + - GPU +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ: + - ОбновлСн Homebridge Π΄ΠΎ вСрсии 1.11.3. + - ОбновлСн Homebridge интСрфСйс Π΄ΠΎ вСрсии 5.20.0. + - ОбновлСн Node.js Π΄ΠΎ вСрсии 24.14.1. + - ΠŸΠ°ΠΊΠ΅Ρ‚ APT Homebridge ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎ вСрсии 1.8.19. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/homebridge/homebridge/releases. +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/606 diff --git a/homebridge/docker-compose.yml b/homebridge/docker-compose.yml new file mode 100644 index 0000000..d62c0fd --- /dev/null +++ b/homebridge/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3.7" + +services: + server: + image: homebridge/homebridge:2026-03-25@sha256:a420e1e355e79c97df13c43d677a6d20c4ca6a073c889c528a6271f391e91d8c + # ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ запускаСтся ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root + network_mode: host + # доступСн Π² ΠΏΠΎΡ€Ρ‚Ρƒ 8581 + volumes: + - ${APP_DATA_DIR}/data/homebridge:/homebridge + restart: on-failure diff --git a/homebridge/exports.sh b/homebridge/exports.sh new file mode 100644 index 0000000..d24ce9e --- /dev/null +++ b/homebridge/exports.sh @@ -0,0 +1,5 @@ +# Homebridge Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ хост-сСти, поэтому Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ прокси-сСрвСр прилоТСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ хоста Tor HS. +# Π­Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ поддСльноС имя хоста HS для Homebridge. +HOMEBRIDGE_TOR_DIR="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}" +mkdir -p "${HOMEBRIDGE_TOR_DIR}" +touch "${HOMEBRIDGE_TOR_DIR}/hostname" diff --git a/homehub/data/app_data/.gitkeep b/homehub/data/app_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/homehub/data/app_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/homehub/data/config/config.yml b/homehub/data/config/config.yml new file mode 100644 index 0000000..9b9af59 --- /dev/null +++ b/homehub/data/config/config.yml @@ -0,0 +1,59 @@ +instance_name: "My Home Hub" +password: "" #leave blank for password less access +admin_name: "Administrator" +feature_toggles: + shopping_list: true + media_downloader: true + pdf_compressor: true + qr_generator: true + notes: true + shared_cloud: true + who_is_home: true + personal_status: true + chores: true + recipes: true + expiry_tracker: true + url_shortener: true + expense_tracker: true + +family_members: + - Mom + - Dad + - Dipanshu + - Vivek + - India + +reminders: + # time_format управляСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ Π² интСрфСйс. + # ДопустимыС значСния: "12h" (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) ΠΈΠ»ΠΈ "24h". Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ пустым, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ 12 часам. + time_format: 12h + + # Calendar_start_day опрСдСляСт, Π² ΠΊΠ°ΠΊΠΎΠΉ дСнь начинаСтся ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ. + # ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½Ρ‹Π΅ названия Π΄Π½Π΅ΠΉ Π½Π΅Π΄Π΅Π»ΠΈ (sunday..saturday) ΠΈΠ»ΠΈ числовыС значСния ΠΎΡ‚ 0 Π΄ΠΎ 6, Π³Π΄Π΅ 0 = Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅. + calendar_start_day: sunday #default is Sunday + + # ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ (клавиши строчныС, ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ΡΡ) + categories: + - key: health + label: Health + color: "#dc2626" + - key: bills + label: Bills + color: "#0d9488" + - key: school + label: School + color: "#7c3aed" + - key: family + label: Family + color: "#2563eb" +theme: + primary_color: "#1d4ed8" + secondary_color: "#a0aec0" + background_color: "#f7fafc" + card_background_color: "#fff" + text_color: "#333" + sidebar_background_color: "#2563eb" + sidebar_text_color: "#ffffff" + sidebar_link_color: "rgba(255,255,255,0.95)" + sidebar_link_border_color: "rgba(255,255,255,0.18)" + sidebar_active_color: "#3b82f6" diff --git a/homehub/data/media/.gitkeep b/homehub/data/media/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/homehub/data/media/.gitkeep @@ -0,0 +1 @@ + diff --git a/homehub/data/pdfs/.gitkeep b/homehub/data/pdfs/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/homehub/data/pdfs/.gitkeep @@ -0,0 +1 @@ + diff --git a/homehub/data/uploads/.gitkeep b/homehub/data/uploads/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/homehub/data/uploads/.gitkeep @@ -0,0 +1 @@ + diff --git a/homehub/dfwebos-app.yml b/homehub/dfwebos-app.yml new file mode 100644 index 0000000..c4c97fb --- /dev/null +++ b/homehub/dfwebos-app.yml @@ -0,0 +1,47 @@ +manifestVersion: 1 +id: homehub +name: HomeHub +tagline: Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ†Π΅Π½Ρ‚Ρ€ сСмСйной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ +category: files +version: "0.2.3.2" +port: 5059 +description: >- + HomeHub 🏑 β€” это Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ слуТит Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ для сСмСй ΠΈ совмСстного проТивания. Π•Π³ΠΎ основная Ρ†Π΅Π»ΡŒ β€” ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΈ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚Π΅ΠΌ объСдинСния основных Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹Ρ… инструмСнтов Π² ΠΎΠ΄Π½Ρƒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΡƒΡŽ ΠΈ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π² использовании ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ. ВмСсто манипулирования нСсколькими прилоТСниями ΠΈΠ»ΠΈ рукописными списками HomeHub ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΡƒΡŽ срСду, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС, ΠΎΡ‚ Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… Π΄Π΅Π» ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Π΄ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ ΠΎΠ±Ρ‰ΠΈΡ… расходов. + + + Одной ΠΈΠ· Π΅Π³ΠΎ основных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ являСтся Ρ€Π°Π·Π΄Π΅Π» ΠΎΠ±Ρ‰ΠΈΡ… Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, Π³Π΄Π΅ всС Ρ‡Π»Π΅Π½Ρ‹ сСмьи ΠΌΠΎΠ³ΡƒΡ‚ вмСстС ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для быстрых Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ, Π΄Π΅Π» ΠΈΠ»ΠΈ планирования событий Π² Π³Ρ€ΡƒΠΏΠΏΠ΅. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ списка ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ добавляСт Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ удобства, позволяя ΡΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΊ ΠΏΠΎΡ…ΠΎΠ΄Ρƒ Π·Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΎΠ²Π°Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π²Ρ‹Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, информируя всСх ΠΈ избСгая ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… Π΄Π΅Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ домашниС Π΄Π΅Π»Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ. Участники ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, ΠΊΡ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΡƒΠ±ΠΎΡ€ΠΊΡƒ, стирку ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ обязанности, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ баланса ΠΈ отвСтствСнности Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΆΠΈΠ»ΠΎΠΌ пространствС. Для финансовых ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ HomeHub ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ расходов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записываСт ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ, СТСмСсячныС счСта ΠΈ подписки, помогая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΡƒΠ΄Π° ΠΈΠ΄ΡƒΡ‚ ΠΈΡ… дСньги ΠΈ ΠΊΠ°ΠΊ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ расходы. + + + Помимо управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΈ финансами, HomeHub добавляСт нСбольшиС, Π½ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡƒΡŽ Тизнь. Книга Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ блюда для быстрого доступа, Π° систСма отслСТивания срока годности ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΈΡ‰Π΅Π²Ρ‹Π΅ ΠΎΡ‚Ρ…ΠΎΠ΄Ρ‹, напоминая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΊΠΎΠ³Π΄Π° срок годности ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ. БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠΎΠ΅ срСдство сокращСния ссылок для упрощСния URL-адрСсов, компрСссор PDF для управлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ QR-ΠΊΠΎΠ΄Π° для быстрого ΠΎΠ±ΠΌΠ΅Π½Π°. + + + Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ HomeHub Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ясности ΠΈ простоты. ВсС прСдставлСно Π² элСгантном ΠΈ минималистичном Π΄ΠΈΠ·Π°ΠΉΠ½Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн Π΄Π°ΠΆΠ΅ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Π½Π΅ разбираСтся Π² тСхнологиях. ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ бСспорядка ΠΈ созданию приятного Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ пространства, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‡Π»Π΅Π½ сСмьи ΠΌΠΎΠΆΠ΅Ρ‚ внСсти Ρ€Π°Π²Π½Ρ‹ΠΉ Π²ΠΊΠ»Π°Π΄. + + + По сути, HomeHub ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ домашним хозяйством Π² ΠΎΠ±Ρ‰ΠΈΠΉ, ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ ΠΈ совмСстный процСсс. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ людям ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ связанными Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, прСвращая Ρ€ΡƒΡ‚ΠΈΠ½Ρƒ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ Π² Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Π²Π½ΠΎΠ΅, доступноС ΠΈ Π΄Π°ΠΆΠ΅ приятноС. +developer: Suraj Verma +website: https://github.com/surajverma/homehub +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/4015 +repo: https://github.com/surajverma/homehub +support: https://github.com/surajverma/homehub/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ‹: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° удалСния ΠΈ Π²Ρ‹Π±ΠΎΡ€ видимости всСх ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° записСй Π½Π΅Ρ‚. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° инициализация Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» нСзависимо ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/surajverma/homehub/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/homehub/docker-compose.yml b/homehub/docker-compose.yml new file mode 100644 index 0000000..e804f55 --- /dev/null +++ b/homehub/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: homehub_web_1 + APP_PORT: 5000 + + web: + image: ghcr.io/surajverma/homehub:0.2.3.2@sha256:7ffa2ed369b39bb090b6eae1ee7d27b803215939794107b3e4cbeede627338ec + restart: on-failure + environment: + - FLASK_ENV=production + - SECRET_KEY=${APP_SEED} + volumes: + - ${APP_DATA_DIR}/data/uploads:/app/uploads + - ${APP_DATA_DIR}/data/media:/app/media + - ${APP_DATA_DIR}/data/pdfs:/app/pdfs + - ${APP_DATA_DIR}/data/app_data:/app/data + - ${APP_DATA_DIR}/data/config/config.yml:/app/config.yml:ro diff --git a/hortusfox/data/backup/.gitkeep b/hortusfox/data/backup/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hortusfox/data/backup/.gitkeep @@ -0,0 +1 @@ + diff --git a/hortusfox/data/db_data/.gitkeep b/hortusfox/data/db_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hortusfox/data/db_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/hortusfox/data/images/.gitkeep b/hortusfox/data/images/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hortusfox/data/images/.gitkeep @@ -0,0 +1 @@ + diff --git a/hortusfox/data/logs/.gitkeep b/hortusfox/data/logs/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hortusfox/data/logs/.gitkeep @@ -0,0 +1 @@ + diff --git a/hortusfox/data/migrate/.gitkeep b/hortusfox/data/migrate/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hortusfox/data/migrate/.gitkeep @@ -0,0 +1 @@ + diff --git a/hortusfox/data/themes/.gitkeep b/hortusfox/data/themes/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hortusfox/data/themes/.gitkeep @@ -0,0 +1 @@ + diff --git a/hortusfox/dfwebos-app.yml b/hortusfox/dfwebos-app.yml new file mode 100644 index 0000000..2e37e0a --- /dev/null +++ b/hortusfox/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1 +id: hortusfox +name: HortusFox +tagline: ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для совмСстного отслСТивания ΠΈ управлСния Π·Π°Π²ΠΎΠ΄Π°ΠΌΠΈ +category: files +version: "5.7" +port: 8838 +description: >- + 🌿 HortusFox β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ растСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своими ΠΊΠΎΠΌΠ½Π°Ρ‚Π½Ρ‹ΠΌΠΈ растСниями ΠΈ садами структурированным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ с ΡƒΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Оно ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ бСсплатноС ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π² соотвСтствии со своими Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ потрСбностями. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡƒΡ…Π°ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π·Π° нСсколькими Π³ΠΎΡ€ΡˆΠ΅Ρ‡Π½Ρ‹ΠΌΠΈ растСниями Π½Π° ΠΏΠΎΠ΄ΠΎΠΊΠΎΠ½Π½ΠΈΠΊΠ΅ ΠΈΠ»ΠΈ управляСтС большим садом, HortusFox прСдоставляСт Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ΅ пространство для отслСТивания, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ планирования всСх аспСктов ΡƒΡ…ΠΎΠ΄Π° Π·Π° растСниями. + + + По своСй сути HortusFox позволяСт Π²Π°ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши растСния с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ названия Π²ΠΈΠ΄ΠΎΠ², примСчания, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ изобраТСния. РастСния ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ пространствами. БистСма ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ напоминания ΠΎ Ρ‚Π°ΠΊΠΈΡ… дСйствиях, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΈΠ², внСсСниС ΡƒΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ пСрСсадка, помогая Π²Π°ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ постоянный Ρ€Π΅ΠΆΠΈΠΌ ΡƒΡ…ΠΎΠ΄Π°. + + + HortusFox Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ отслСТивания растСний, прСдлагая инструмСнты для управлСния ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π³ΠΎΡ€ΡˆΠΊΠΈ, удобрСния ΠΈ инструмСнты. Π­Ρ‚Π° функция ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ваши садовыС принадлСТности. Для садоводов Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΎΠ·Π΄ΡƒΡ…Π΅ интСграция Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, согласовывая Π³Ρ€Π°Ρ„ΠΈΠΊ ΡƒΡ…ΠΎΠ΄Π° с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ условиями. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹. Если нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ растСний, встроСнная функция Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠ³ΠΎ Ρ‡Π°Ρ‚Π° позволяСт ΠΈΠΌ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ. HortusFox Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ распознавания растСний, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСизвСстныС Π²ΠΈΠ΄Ρ‹. + + + Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° всСх устройствах, гарантируя, Ρ‡Ρ‚ΠΎ информация ΠΎ растСниях ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ доступны нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ Π·Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ Π² саду со своим Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠΌ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΎΠΏΡ‹Ρ‚, выбирая Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΡ… эстСтичСским прСдпочтСниям. + + + HortusFox идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΡ† ΠΈ сСмСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ нравится ΡƒΡ…Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π·Π° растСниями ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ΅Π½ соврСмСнный, бСзопасный ΠΈ настраиваСмый способ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ своих садовых Ρ€Π°Π±ΠΎΡ‚. Благодаря ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠΌΡƒ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ ΠΈ Π±ΠΎΠ³Π°Ρ‚ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ½ мСняСт Ρ‚ΠΎ, ΠΊΠ°ΠΊ люди Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своими Π·Π΅Π»Π΅Π½Ρ‹ΠΌΠΈ насаТдСниями. +backupIgnore: + - data/logs/* +developer: Daniel Brendel +website: https://www.hortusfox.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3245 +repo: https://github.com/danielbrendel/hortusfox-web +support: https://github.com/danielbrendel/hortusfox-web/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π’ этом выпускС прСдставлСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Π΅ΠΌΠ°ΠΌΠΈ + - Команда настройки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ AquaShell + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/danielbrendel/hortusfox-web/releases. +dependencies: [] +path: "" +defaultUsername: "dfwebos@dfwebos.local" +deterministicPassword: true diff --git a/hortusfox/docker-compose.yml b/hortusfox/docker-compose.yml new file mode 100644 index 0000000..0cfe03a --- /dev/null +++ b/hortusfox/docker-compose.yml @@ -0,0 +1,39 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: hortusfox_app_1 + APP_PORT: 80 + + app: + image: ghcr.io/danielbrendel/hortusfox-web:v5.7@sha256:8c286b6656920071c4c10142203566b5305702806117d01a66be6ba66d27a104 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/images:/var/www/html/public/img + - ${APP_DATA_DIR}/data/logs:/var/www/html/app/logs + - ${APP_DATA_DIR}/data/backup:/var/www/html/public/backup + - ${APP_DATA_DIR}/data/themes:/var/www/html/public/themes + - ${APP_DATA_DIR}/data/migrate:/var/www/html/app/migrations + environment: + APP_ADMIN_EMAIL: "dfwebos@dfwebos.local" + APP_ADMIN_PASSWORD: ${APP_PASSWORD} + DB_HOST: hortusfox_db_1 + DB_PORT: 3306 + DB_DATABASE: hortusfox + DB_USERNAME: user + DB_PASSWORD: password + DB_CHARSET: "utf8mb4" + depends_on: + - db + + db: + image: mariadb:11.4.7@sha256:c5c82ddc074b9236fda87127934a1da726ecac68e9de083fd0e0d11a7bedc077 + restart: on-failure + environment: + MYSQL_ROOT_PASSWORD: my-secret-pw + MYSQL_DATABASE: hortusfox + MYSQL_USER: user + MYSQL_PASSWORD: password + volumes: + - ${APP_DATA_DIR}/data/db_data:/var/lib/mysql diff --git a/immich/data/model-cache/.gitkeep b/immich/data/model-cache/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/immich/data/postgres/.gitkeep b/immich/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/immich/data/redis/.gitkeep b/immich/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/immich/data/upload/.gitkeep b/immich/data/upload/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/immich/dfwebos-app.yml b/immich/dfwebos-app.yml new file mode 100644 index 0000000..eebf640 --- /dev/null +++ b/immich/dfwebos-app.yml @@ -0,0 +1,83 @@ +manifestVersion: 1.1 +id: immich +category: files +name: Immich +version: "v2.7.5" +tagline: Π’Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Ρ„ΠΎΡ‚ΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ +description: >- + Π’Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ Π½Π° вашСм мобильном устройствС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. + + + βš οΈΠ˜ΠΌΠΌΠΈΡ… находится Π² стадии ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠžΠΆΠΈΠ΄Π°ΠΉΡ‚Π΅ ошибок ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ ΠΊΠ°ΠΊ СдинствСнный способ хранСния Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ! + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + - Π—Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ + + - АвтоматичСскоС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ прилоТСния + + - Π’Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½Ρ‹ΠΉ альбом(Ρ‹) для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования. + + - Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° локальноС устройство + + - ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° + + - Альбом ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ Π°Π»ΡŒΠ±ΠΎΠΌΡ‹ + + - ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅ΠΌΠ°Ρ/пСрСтаскиваСмая полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° RAW (HEIC, HEIF, DNG, Apple ProRaw) + + - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (EXIF, ΠΊΠ°Ρ€Ρ‚Π°) + + - Поиск ΠΏΠΎ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈ Ρ‚Π΅Π³Π°ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. + + - АдминистративныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ) + + - Π€ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ + + - Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ свиток + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OAuth + + - Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ воспроизвСдСниС LivePhoto + + - ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ структура хранСния +releaseNotes: >- + ⚠️ Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, совмСстимо Π»ΠΈ вашС мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с этой вСрсиСй Immich. + + + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ исправлСния ошибок. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° настройки ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ бСзопасности шлСма/ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° (CSP) Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды IMMICH_HELMET_FILE. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π»ΠΈΡ†ΠΎ/Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π½Π° Π»Π΅Ρ‚Ρƒ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Ρ‚Π΅Π³ΠΎΠ² Π»ΠΈΡ†. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ дСйствиС Β«Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· альбома» Π² срСдствС просмотра рСсурсов. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ дСйствиС Β«ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒΒ» Π² прСдставлСнии ΠΏΠ°ΠΏΠΊΠΈ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ сочСтания клавиш для Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ (Π½Π°ΠΆΠΌΠΈΡ‚Π΅ E, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ, [ ΠΈ ], Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ, ENTER, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ) + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ²: сСрвСр Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ автоматичСски ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ рСсурс ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΈ синхронизируСт ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. + - ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ вСрсий Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ собствСнная инфраструктура Immich вмСсто GitHub. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΆΠΈΠ²Ρ‹Ρ… Ρ„ΠΎΡ‚ΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π² Safari ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π»Π°ΡΡŒ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° XSS-ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ просмотра ΠΏΠ°Π½ΠΎΡ€Π°ΠΌΠ½Ρ‹Ρ… Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ внСшнСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ поиск людСй, Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ для 3 ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ символов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости ΠΈ дСдупликация для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ вСрсий. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/immich-app/immich/releases. +developer: Alex Tran +website: https://www.immich.app +dependencies: [] +repo: https://github.com/immich-app/immich +support: https://github.com/immich-app/immich/discussions +port: 2283 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +permissions: + - GPU +submitter: levma +submission: https://github.com/getumbrel/dfwebos-apps/pull/239 diff --git a/immich/docker-compose.yml b/immich/docker-compose.yml new file mode 100644 index 0000000..21a2364 --- /dev/null +++ b/immich/docker-compose.yml @@ -0,0 +1,62 @@ +version: "3.7" + +x-environment: &env + NODE_ENV: "production" + DB_HOSTNAME: "immich_postgres_1" + DB_USERNAME: &db_username "immich" + DB_PASSWORD: &db_password "moneyprintergobrrr" + DB_DATABASE_NAME: &db_database_name "immich" + REDIS_HOSTNAME: "immich_redis_1" + LOG_LEVEL: "log" + JWT_SECRET: ${APP_SEED} + DISABLE_REVERSE_GEOCODING: "false" + REVERSE_GEOCODING_PRECISION: "3" + PUBLIC_LOGIN_PAGE_MESSAGE: "" + IMMICH_MACHINE_LEARNING_URL: "http://immich_machine-learning_1:3003" + +services: + app_proxy: + environment: + APP_HOST: immich_server_1 + APP_PORT: 2283 + PROXY_AUTH_ADD: "false" + + server: + image: ghcr.io/immich-app/immich-server:v2.7.5@sha256:c15bff75068effb03f4355997d03dc7e0fc58720c2b54ad6f7f10d1bc57efaa5 + volumes: + - ${APP_DATA_DIR}/data/upload:/data + environment: + <<: *env + depends_on: + - redis + - postgres + restart: on-failure + + machine-learning: + image: ghcr.io/immich-app/immich-machine-learning:v2.7.5@sha256:a2501141440f10516d329fdfba2c68082e19eb9ba6016c061ac80d23beadf7f3 + volumes: + - ${APP_DATA_DIR}/data/model-cache:/cache + environment: + <<: *env + restart: on-failure + + redis: + image: valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis:/data + + postgres: + image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:41eacbe83eca995561fe43814fd4891e16e39632806253848efaf04d3c8a8b84 + # Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· postgres Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· root + #user: "1000:1000" + environment: + <<: *env + POSTGRES_PASSWORD: *db_password + POSTGRES_USER: *db_username + POSTGRES_DB: *db_database_name + POSTGRES_INITDB_ARGS: "--data-checksums" + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + restart: on-failure diff --git a/immich/hooks/pre-start b/immich/hooks/pre-start new file mode 100755 index 0000000..6328748 --- /dev/null +++ b/immich/hooks/pre-start @@ -0,0 +1,101 @@ +#!/usr/bin/env bash +# Π­Ρ‚ΠΎΡ‚ скрипт устанавливаСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ directories/permissions, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ выпуска. +# Он Ρ‚Π°ΠΊΠΆΠ΅ выполняСт ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ вСрсий для Immich, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ бСзопасноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ вСрсии. + +set -euo pipefail + +APP_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" +APP_DATA_DIR="${APP_DIR}/data" +APP_COMPOSE_FILE="${APP_DIR}/docker-compose.yml" +IMMICH_PG_VERSION_FILE="${APP_DATA_DIR}/postgres/PG_VERSION" +IMMICH_UPDATE_FLAG_FILE="${APP_DATA_DIR}/POST_1_136_0_VERSION" +MIGRATION_IN_PROGRESS_FILE="${APP_DATA_DIR}/MIGRATION_IN_PROGRESS" + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ кСша ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ссли ΠΎΠ½ Π½Π΅ сущСствуСт. +MODEL_CACHE_DIR="${APP_DATA_DIR}/model-cache" +[ ! -d "${MODEL_CACHE_DIR}" ] && mkdir -p "${MODEL_CACHE_DIR}" && chown 1000:1000 "${MODEL_CACHE_DIR}" + +# ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ tsdata, Ссли ΠΎΠ½ сущСствуСт +TYPESENSE_DIR="${APP_DATA_DIR}/tsdata" +[ -d "${TYPESENSE_DIR}" ] && rm -rf "${TYPESENSE_DIR}" + +# ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ старый скрипт послС обновлСния, Ссли ΠΎΠ½ сущСствуСт +POST_UPDATE_SCRIPT="$(readlink -f $(dirname "${BASH_SOURCE[0]}"))/post-update" +[ -f "${POST_UPDATE_SCRIPT}" ] && rm -f "${POST_UPDATE_SCRIPT}" + +# Если Ρ„Π°ΠΉΠ»Ρ‹ postgres Π΅Ρ‰Π΅ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ +# Π’ΠΎΠ³Π΄Π° скорСС всСго это новая установка +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Ρ„Π»Π°Π³Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это вСрсия 1.136+. +if [[ ! -f "${IMMICH_PG_VERSION_FILE}" ]]; then + touch "${IMMICH_UPDATE_FLAG_FILE}" +fi + +# Π’Ρ‹ΠΉΡ‚ΠΈ, Ссли Ρ„Π°ΠΉΠ» Ρ„Π»Π°Π³Π° сущСствуСт +if [[ -f "${IMMICH_UPDATE_FLAG_FILE}" ]]; then + echo "Immich update flag file already exists at ${IMMICH_UPDATE_FLAG_FILE}. Skipping migration steps." + exit 0 +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, выполняСтся Π»ΠΈ ΡƒΠΆΠ΅ миграция, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ бСсконСчныС Ρ†ΠΈΠΊΠ»Ρ‹. +if [[ -f "${MIGRATION_IN_PROGRESS_FILE}" ]]; then + echo "Migration already in progress, exiting to prevent loops" + exit 0 +fi + +# ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ +touch "${MIGRATION_IN_PROGRESS_FILE}" + +# Если Ρ„Π°ΠΉΠ» Ρ„Π»Π°Π³Π° Π½Π΅ сущСствуСт, сначала ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π΄ΠΎ вСрсии 1.136.0, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ послСднСй вСрсии. +echo "No POST_1_136_0_VERSION flag found - performing update to v1.136.0 and then to latest version" + +# ΠžΠ±Ρ€Π°Π·Ρ‹ Docker для ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ шага v1.136.0 +INTERMEDIATE_SERVER_IMAGE="ghcr.io/immich-app/immich-server:v1.136.0@sha256:8c9633b96ca5b748b10875a99c498ee6f1e5d7f7d1df2bf341909cacb88ad672" +INTERMEDIATE_ML_IMAGE="ghcr.io/immich-app/immich-machine-learning:v1.136.0@sha256:198d52734136fe9840866cc2f48a8141e0d002c2a25be7e35cd28ef7936b6c67" + +# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ изобраТСния с docker-compose.yml +get_current_images_from_compose() { + local server_image=$(yq '.services.server.image' "${APP_COMPOSE_FILE}" 2>/dev/null || echo "") + local ml_image=$(yq '.services."machine-learning".image' "${APP_COMPOSE_FILE}" 2>/dev/null || echo "") + echo "${server_image}|${ml_image}" +} + +# ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²Ρ‹ΠΌΠΈ изобраТСниями. +update_compose_images() { + local server_image="${1}" + local ml_image="${2}" + + yq -i ".services.server.image = \"${server_image}\"" "${APP_COMPOSE_FILE}" + yq -i ".services.\"machine-learning\".image = \"${ml_image}\"" "${APP_COMPOSE_FILE}" +} + +# Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ исходныС изобраТСния для послСднСго шага. +original_images=$(get_current_images_from_compose) +original_server_image=$(echo "${original_images}" | cut -d'|' -f1) +original_ml_image=$(echo "${original_images}" | cut -d'|' -f2) + +echo "Step 1: Updating to v1.136.0 for safe migration" +update_compose_images "${INTERMEDIATE_SERVER_IMAGE}" "${INTERMEDIATE_ML_IMAGE}" + +# НачнитС с вСрсии 1.136.0 +echo "Starting Immich v1.136.0..." +"${DFWEBOS_ROOT}/scripts/app" start immich + +# Π”ΠΎΠΆΠ΄ΠΈΡ‚Π΅ΡΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ запуска ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ. +echo "Waiting for v1.136.0 to complete startup and migrations..." +sleep 90 + +# ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ +echo "Stopping Immich v1.136.0..." +"${DFWEBOS_ROOT}/scripts/app" stop immich + +echo "Step 2: Updating to latest version" +update_compose_images "${original_server_image}" "${original_ml_image}" + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Ρ„Π»Π°Π³Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ запуск этой ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ. +touch "${IMMICH_UPDATE_FLAG_FILE}" + +# Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» выполнСния ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ +rm -f "${MIGRATION_IN_PROGRESS_FILE}" + +echo "Migration completed: v1.136.0 -> latest version" +echo "Created ${IMMICH_UPDATE_FLAG_FILE} flag file" diff --git a/influxdb/data/chronograf/.gitkeep b/influxdb/data/chronograf/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/influxdb/data/influxdb/.gitkeep b/influxdb/data/influxdb/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/influxdb/dfwebos-app.yml b/influxdb/dfwebos-app.yml new file mode 100644 index 0000000..0632ae1 --- /dev/null +++ b/influxdb/dfwebos-app.yml @@ -0,0 +1,84 @@ +manifestVersion: 1.1 +id: influxdb +name: InfluxDB +tagline: Π’Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов +category: developer +version: "1.12.3" +port: 8888 +description: >- + InfluxDB β€” это Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, поставляСмая с Chronograf, ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Π΅Π±-инструмСнтом Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. + Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высокочастотных Π΄Π°Π½Π½Ρ‹Ρ…, InfluxDB прСвосходно справляСтся с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + + + ⚠️ Для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ доступа CLI ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ администратора ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Chronograf ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ настроСн с использованиСм этих ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки. + Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ эти ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π·Π½Π°Ρ‡ΠΎΠΊ прилоТСния InfluxDB Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС DFWebOS ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Β«ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ». + + + Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ InfluxDB? + + + **πŸš€ Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ** + + InfluxDB β€” это Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, написанноС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов. Он обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ°, сТатия ΠΈ выполнСния запросов Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + + + **πŸ’‘ SQL-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ запросы с InfluxQL** + + InfluxDB Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с InfluxQL, SQL-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ языком запросов для взаимодСйствия с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. + Он Π±Ρ‹Π» Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ создан, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ SQL ΠΈΠ»ΠΈ SQL-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ срСдами, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, спСцифичныС для хранСния ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов. + InfluxQL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ рСгулярныС выраТСния, арифмСтичСскиС выраТСния ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, спСцифичныС для Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов, для ускорСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. + + + **πŸ“¦ Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ сохранСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ** + + InfluxDB ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Ρ‚ΠΎΡ‡Π΅ΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π² сСкунду. Π Π°Π±ΠΎΡ‚Π° с Ρ‚Π°ΠΊΠΈΠΌ большим объСмом Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ с Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ. + InfluxDB автоматичСски сТимаСт Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ пространство для хранСния. + ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡΡƒΠ±Π΄ΠΈΡΠΊΡ€Π΅Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅; сохранСниС Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… высокой точности Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ точности Π³ΠΎΡ€Π°Π·Π΄ΠΎ дольшС ΠΈΠ»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + + + **πŸ“Š Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ визуализация с Chronograf** + + Chronograf β€” это административный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ стСка. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ настройку ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ для вашСй инфраструктуры. + Он прост Π² использовании ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ быстро ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ с Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. +developer: InfluxData +website: https://www.influxdata.com/ +repo: https://github.com/influxdata/influxdb +support: https://support.influxdata.com/s/ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π’ этом выпускС InfluxDB прСдставлСна ​​вСрсия 1.12.3. + + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° пропуска ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»Π° сСртификата TLS. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ настраиваСмыС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прСдупрСТдСния ΠΎΠ± истСчСнии срока дСйствия сСртификата TLS. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сСртификата TLS Π±Π΅Π· пСрСзапуска. + β€” Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Ρ… запросов ΠΈ диагностики ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ Π² ΠΆΡƒΡ€Π½Π°Π»Π°Ρ… запросов. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для HTTP API. + - Π‘ΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ запроса + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ порядок ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ для FUTURE LIMIT ΠΈ PAST LIMIT Π² заявлСниях ΠΎ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ хранСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡ‚Π΅Ρ‡ΠΊΠ° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Π² SHOW QUERIES. + - УстранСна ΡƒΡ‚Π΅Ρ‡ΠΊΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² Store.DeleteSeries(). + - ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΡƒΡŽ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ Ρ„Π°Π½Ρ‚ΠΎΠΌΠ½Ρ‹Ρ… осколков. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ курсора массива. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ сТатии. + - УмСньшСниС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ Π³ΠΎΠ½ΠΎΠΊ Π² очиститСлС + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ исправлСния ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ измСнСния ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: + - InfluxDB v1.12.3: https://docs.influxdata.com/influxdb/v1/about_the_project/release-notes/ + - Π₯Ρ€ΠΎΠ½ΠΎΠ³Ρ€Π°Ρ„ v1.10.8: https://docs.influxdata.com/chronograf/v1/about_the_project/release-notes/ +dependencies: [] +path: "" +defaultUsername: "admin" +deterministicPassword: true +submitter: phelipebf +submission: https://github.com/getumbrel/dfwebos-apps/pull/1788 diff --git a/influxdb/docker-compose.yml b/influxdb/docker-compose.yml new file mode 100644 index 0000000..edf8eef --- /dev/null +++ b/influxdb/docker-compose.yml @@ -0,0 +1,32 @@ +version: "3.7" + +services: + + app_proxy: + environment: + APP_HOST: influxdb_chronograf_1 + APP_PORT: 8888 + + influxdb: + image: influxdb:1.12.3@sha256:35e9976120a18fff82fefcc06d631de7585f33e7b096e9128465e6c15a9233fc + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/influxdb:/var/lib/influxdb + environment: + INFLUXDB_ADMIN_USER: admin + INFLUXDB_ADMIN_PASSWORD: $APP_PASSWORD + INFLUXDB_HTTP_AUTH_ENABLED: "true" + + chronograf: + image: chronograf:1.10.8@sha256:42e7b310399e57126053f3ff8eb551290b942ebbd8fd08186af03cfce512bbff + user: "1000:1000" + environment: + INFLUXDB_URL: "http://influxdb_influxdb_1:8086" + INFLUXDB_USERNAME: admin + INFLUXDB_PASSWORD: $APP_PASSWORD + volumes: + - ${APP_DATA_DIR}/data/chronograf:/var/lib/chronograf + depends_on: + - influxdb diff --git a/influxdb/hooks/pre-start b/influxdb/hooks/pre-start new file mode 100755 index 0000000..95eb1ff --- /dev/null +++ b/influxdb/hooks/pre-start @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/data" + +DESIRED_OWNER="1000:1000" + +CHRONOGRAF_DATA_DIR="${APP_DATA_DIR}/chronograf" + +influxdb_correct_permission() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + chown -R "${DESIRED_OWNER}" "${path}" + fi +} + +influxdb_correct_permission "${CHRONOGRAF_DATA_DIR}" diff --git a/influxdb2/data/config/.gitkeep b/influxdb2/data/config/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/influxdb2/data/config/.gitkeep @@ -0,0 +1 @@ + diff --git a/influxdb2/data/data/.gitkeep b/influxdb2/data/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/influxdb2/data/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/influxdb2/dfwebos-app.yml b/influxdb2/dfwebos-app.yml new file mode 100644 index 0000000..217d4cd --- /dev/null +++ b/influxdb2/dfwebos-app.yml @@ -0,0 +1,53 @@ +manifestVersion: 1 +id: influxdb2 +name: InfluxDB 2 +tagline: ВСдущая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов +category: developer +version: "2.8.0" +port: 8886 +description: >- + Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создан для Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² любом ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅. + + + Основано Π½Π° столбчатой ​​аналитикС, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ для экономичного хранСния ΠΈ создано с использованиСм стандартов ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. + + - НСпрСвзойдСнная ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅: управляйтС ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов Π² сСкунду Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. + + - Бтолбчатая Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°: столбчатоС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… обСспСчиваСт Π½Π° нСсколько порядков Π±ΠΎΠ»Π΅Π΅ быстроС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ аналитичСских запросов ΠΈ сокращСниС Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ памяти. + + - Высокоскоростная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°: ΠΏΡ€ΠΈΠ΅ΠΌ ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ² сСрий с мСньшим количСством процСссоров ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π·Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ стоимости Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. + + - Запросы Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° запросы для послСдних ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… входящих Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° Π΄ΠΎΠ»ΠΈ сСкунды. + + - НСограничСнная ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ: Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов ΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π² сСкунду Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. + + - НСдорогоС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с Parquet: Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° с Π»ΡƒΡ‡ΡˆΠΈΠΌ Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ сТатиСм для хранСния большСго количСства Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ мСньшС мСста. + + - ВзаимодСйствиС с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…: построСно Π½Π° основС стандартов ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для прямого доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠ· ΠΎΠ·Π΅Ρ€ ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Ρ‡Π΅Ρ€Π΅Π· Apache Iceberg. +developer: InfluxData +website: https://www.influxdata.com/ +repo: https://github.com/influxdata/influxdb +support: https://support.influxdata.com/s/ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² вСрсии 2.8.0: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² β€” ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ всС Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ API ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ Ρ…ΡΡˆΠ΅ΠΉ Π½Π° дискС для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° компиляция Π² Alpine Linux. + + + Π’Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² Π²Π΅Ρ€ΡΠΈΡŽ 2.7.12: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --pid-file для записи PID-Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ запускС. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --storage-wal-flush-on-shutdown для очистки WAL ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹, гарантируя запись всСх Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° диск. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… для ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ свСдСния ΠΎ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ хранСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² TagValueIterator, которая ΠΌΠΎΠ³Π»Π° привСсти ΠΊ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ чтСния ΠΈ записи. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° запуска со счСтчиком прогрСсса открытия осколков. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://docs.influxdata.com/influxdb/v2/reference/release-notes/influxdb/. +dependencies: [] +path: "" +submitter: dirstel +submission: https://github.com/getumbrel/dfwebos-apps/pull/2008 diff --git a/influxdb2/docker-compose.yml b/influxdb2/docker-compose.yml new file mode 100644 index 0000000..aeab99f --- /dev/null +++ b/influxdb2/docker-compose.yml @@ -0,0 +1,14 @@ +services: + app_proxy: + environment: + APP_HOST: influxdb2_app_1 + APP_PORT: 8086 + PROXY_AUTH_WHITELIST: "/api/*,/api/v2/*" + + app: + image: influxdb:2.8.0-alpine@sha256:f15dfc604753f53b180364a331b46c2f4bc5c08a665d025982b301efa69bc2f7 + user: 1000:1000 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/data:/var/lib/influxdb2 + - ${APP_DATA_DIR}/data/config:/etc/influxdb2 diff --git a/invidious/data/companioncache/.gitkeep b/invidious/data/companioncache/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/invidious/data/db/.gitkeep b/invidious/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/invidious/dfwebos-app.yml b/invidious/dfwebos-app.yml new file mode 100644 index 0000000..81a735d --- /dev/null +++ b/invidious/dfwebos-app.yml @@ -0,0 +1,70 @@ +manifestVersion: 1.1 +id: invidious +category: social +name: Invidious +version: "2.20260207.0" +tagline: ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΠΉΡ‚Π΅ YouTube Π±Π΅Π· отслСТивания ΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ +description: >- + ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для YouTube. + + + ВозмоТности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: + - Π›Π΅Π³ΠΊΠΈΠΉ + - НСт Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ + - НСт отслСТивания + - JavaScript Π½Π΅ трСбуСтся. + - Π‘Π²Π΅Ρ‚Π»Ρ‹Π΅/Π’Π΅ΠΌΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ + - НастраиваСмая домашняя страница + - Подписки, нСзависимыС ΠΎΡ‚ Google + - УвСдомлСния для всСх подписанных ΠΊΠ°Π½Π°Π»ΠΎΠ² + - Π Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΡƒΠ΄ΠΈΠΎ (с Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ воспроизвСдСниСм Π½Π° мобильном Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅) + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Reddit. + - Доступно Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… языках благодаря нашим ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°ΠΌ + + Π˜ΠΌΠΏΠΎΡ€Ρ‚/экспорт Π΄Π°Π½Π½Ρ‹Ρ…: + - Π˜ΠΌΠΏΠΎΡ€Ρ‚ подписок ΠΈΠ· YouTube, NewPipe ΠΈ Freetube. + - Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ просмотров ΠΈΠ· NewPipe. + - Экспорт подписок Π½Π° NewPipe ΠΈ Freetube. + - Π˜ΠΌΠΏΠΎΡ€Ρ‚/экспорт Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Invidious + + ВСхничСскиС характСристики: + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° встроСнного Π²ΠΈΠ΄Π΅ΠΎ + - Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ API + - НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ API YouTube. + - Π›ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ΅ соглашСниС Π±Π΅Π· участия участника (CLA) +developer: IV-Org +website: https://invidious.io/ +dependencies: [] +repo: https://github.com/iv-org/invidious +support: https://matrix.to/#/#invidious:matrix.org +port: 3420 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск усиливаСт ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΈ устраняСт ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + - ΠŸΡ€ΡΠΌΡ‹Π΅ трансляции Π²Π΅Ρ€Π½ΡƒΠ»ΠΈΡΡŒ Π½Π° страницу Β«Π’Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈΒ», Π° ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ доступными. + - Бсылки Β«Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° YouTubeΒ» большС Π½Π΅ содСрТат ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ для прямых трансляций. + - Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· компаньона Invidious, Ссли ΠΎΠ½ доступСн. + - На страницах ΠΊΠ°Π½Π°Π»ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ мСстоимСния создатСлСй ΠΈ ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Ρ‹ тСматичСских плСйлистов. + - ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ просмотров ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎ снова стало Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ. + - Π˜ΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ плСйлистов ΠΈ плСйлист API ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ»ΠΈ пустыС Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· сбоСв. + - БообщСния сообщСства с нСдоступными Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° DMCA снова Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΎΠΊ. + - НСвСрныС CAPTCHA Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ сообщСниС Β«ΠžΡˆΠΈΠ±ΠΎΡ‡Π½Π°Ρ CAPTCHAΒ». + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ссылка Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ выпуск Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Π΅. + - ΠžΡ‚Π²Π΅Ρ‚Ρ‹ прокси Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ воспроизвСдСния Π²ΠΈΠ΄Π΅ΠΎ. + - Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Companion CSP ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° сайтС https://github.com/iv-org/invidious/releases. +submitter: Jasper +submission: https://github.com/getumbrel/dfwebos-apps/pull/129 diff --git a/invidious/docker-compose.yml b/invidious/docker-compose.yml new file mode 100644 index 0000000..64173f1 --- /dev/null +++ b/invidious/docker-compose.yml @@ -0,0 +1,62 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: invidious_web_1 + APP_PORT: 3000 + + web: + image: ceramicwhite/invidious:build-fda8d1b@sha256:39fe17102eb65ff34ac83e4d2b7f4233e735c1221e3c881fd0e0919b78760f81 + restart: on-failure + stop_grace_period: 1m + user: "1000:1000" + # ИспользованиС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, содСрТащих Π’ΠΈΠ½ΠΈ + #init: true + environment: + INVIDIOUS_CONFIG: | + db: + dbname: invidious + user: dfwebos + password: moneyprintergobrrr + host: invidious_postgres_1 + port: 5432 + check_tables: true + invidious_companion: + - private_url: "http://invidious_companion_1:8282/companion" + invidious_companion_key: ${APP_INV_SECRET_KEY} + hmac_key: ${APP_SEED} + default_user_preferences: + feed_menu: ["Trending", "Subscriptions", "Playlists"] + default_home: Trending + healthcheck: + disable: true + depends_on: + - postgres + + postgres: + image: postgres:13.7@sha256:03652c675ae177af98ddd50f9f4b4b2cf8ad38d0e116aa68fe670fbc2cf250fc + restart: on-failure + user: "1000:1000" + stop_grace_period: 1m + init: true + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + environment: + POSTGRES_DB: invidious + POSTGRES_USER: dfwebos + POSTGRES_PASSWORD: moneyprintergobrrr + + companion: + image: quay.io/invidious/invidious-companion:master-6c76cab@sha256:aaec4e18b3cffb5457633f427c834299677f2c2a7e27b598404ab815643c3747 + restart: on-failure + user: "1000:1000" + cap_drop: + - ALL + read_only: true + volumes: + - ${APP_DATA_DIR}/data/companioncache:/var/tmp/youtubei.js:rw + security_opt: + - no-new-privileges:true + environment: + - SERVER_SECRET_KEY=${APP_INV_SECRET_KEY} diff --git a/invidious/exports.sh b/invidious/exports.sh new file mode 100644 index 0000000..7d4a657 --- /dev/null +++ b/invidious/exports.sh @@ -0,0 +1 @@ +export APP_INV_SECRET_KEY=$(derive_entropy "${app_entropy_identifier}-INV_SECRET_KEY" | head -c16) diff --git a/invidious/hooks/pre-start b/invidious/hooks/pre-start new file mode 100755 index 0000000..467b879 --- /dev/null +++ b/invidious/hooks/pre-start @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +set -euo pipefail + +### ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="${APP_DIR}/data" + +DESIRED_OWNER="1000:1000" + +COMPANIONCACHE_DATA_DIR="${APP_DATA_DIR}/companioncache" + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ сущСствуСт +mkdir -p "${COMPANIONCACHE_DATA_DIR}" + +correct_permission() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +correct_permission "${COMPANIONCACHE_DATA_DIR}" diff --git a/invio/data/.gitkeep b/invio/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/invio/dfwebos-app.yml b/invio/dfwebos-app.yml new file mode 100644 index 0000000..66b7769 --- /dev/null +++ b/invio/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1 +id: invio +category: finance +name: Invio +version: "1.11.1" +tagline: "InvioΒ β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для выставлСния счСтов Π±Π΅Π· Π½Π°Π²ΠΎΡ€ΠΎΡ‚ΠΎΠ²." +description: >- + Invio β€” это систСма ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выставлСния счСтов Π±Π΅Π· раздувания. Быстрый, минималистичный ΠΈ + бСзопасная для ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСма выставлСния счСтов, созданная для фрилансСров ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ + Ρ…ΠΎΡ‡Ρƒ контроля, Π° Π½Π΅ бСспорядка. + + + Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ счСта ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΈΠΌΠΈ Π·Π° считанныС сСкунды, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ свои Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΈΠΌΠΈ. + бСзопасныС, Π±Π΅ΡΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ связи с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π›Π΅Π³ΠΊΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½, Π±Π΅Π· CRM + Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы ΠΈ отсутствиС привязки ΠΊ SaaS. +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/kittendevv/Invio/releases. +developer: kittendevv +website: https://github.com/kittendevv/invio +dependencies: [] +repo: https://github.com/kittendevv/invio +support: https://github.com/kittendevv/invio/issues +port: 8003 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: admin +deterministicPassword: true +submitter: Maurice Wipf +submission: https://github.com/getumbrel/dfwebos-apps/pull/3953 diff --git a/invio/docker-compose.yml b/invio/docker-compose.yml new file mode 100644 index 0000000..1b3dc78 --- /dev/null +++ b/invio/docker-compose.yml @@ -0,0 +1,33 @@ +services: + + app_proxy: + environment: + APP_HOST: invio_frontend_1 + APP_PORT: 8000 + PROXY_AUTH_ADD: "false" + + backend: + image: ghcr.io/kittendevv/invio-backend:v1.11.1@sha256:639dfe7926ea4ae48a058a2a01d62c1ad1c9b173a4eaee9931e09ba910f719cc + environment: + ADMIN_USER: "admin" + ADMIN_PASS: ${APP_PASSWORD} + JWT_SECRET: ${APP_SEED} + SESSION_TTL_SECONDS: 43200 + SECURE_HEADERS_DISABLED: "false" + ENABLE_HSTS: "true" + DATABASE_PATH: /app/data/invio.db + volumes: + - ${APP_DATA_DIR}/data:/app/data + restart: on-failure + + frontend: + image: ghcr.io/kittendevv/invio-frontend:v1.11.1@sha256:8692569f9742add5fa33f0d7a7c993d637c2ae0242d1e9878ea434d9e9187b46 + environment: + PORT: 8000 + BACKEND_URL: http://invio_backend_1:3000 + COOKIE_SECURE: "false" + FRONTEND_SECURE_HEADERS_DISABLED: "false" + ENABLE_HSTS: "false" + depends_on: + - backend + restart: on-failure diff --git a/invoice-ninja/config/nginx.conf b/invoice-ninja/config/nginx.conf new file mode 100644 index 0000000..ac22a51 --- /dev/null +++ b/invoice-ninja/config/nginx.conf @@ -0,0 +1,55 @@ +# Π—ΠΎΠ½Ρ‚ Invoice-Ninja каноничСский nginx.conf 27 мая 2025 Π³. + +# Invoice-Ninja Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ nginx.conf для Laravel +# https://github.com/invoiceninja/dockerfiles/blob/ed9c23d9c74a2a9f47b9dcb54946726ab816b6bc/debian/nginx/laravel.conf + +# https://laravel.com/docs/master/deployment#nginx +server { + listen 80 default_server; + server_name _; + root /var/www/html/public; + + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-Content-Type-Options "nosniff"; + + index index.php; + charset utf-8; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location = /favicon.ico { access_log off; log_not_found off; } + location = /robots.txt { access_log off; log_not_found off; } + + error_page 404 /index.php; + + location ~ \.php$ { + fastcgi_pass invoice-ninja_app_1:9000; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + include fastcgi_params; + } + + location ~ /\.(?!well-known).* { + deny all; + } +} + +# Invoice-Ninja Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ global/server +# https://github.com/invoiceninja/dockerfiles/blob/ed9c23d9c74a2a9f47b9dcb54946726ab816b6bc/debian/nginx/invoiceninja.conf + +# https://nginx.org/en/docs/http/ngx_http_core_module.html +client_max_body_size 10M; +client_body_buffer_size 10M; +server_tokens off; + +# https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html +fastcgi_buffers 32 16K; + +# https://nginx.org/en/docs/http/ngx_http_gzip_module.html +gzip on; +gzip_comp_level 2; +gzip_min_length 1M; +gzip_proxied any; +gzip_types *; + diff --git a/invoice-ninja/data/db/.gitkeep b/invoice-ninja/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/invoice-ninja/data/public/.gitkeep b/invoice-ninja/data/public/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/invoice-ninja/data/redis/.gitkeep b/invoice-ninja/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/invoice-ninja/data/storage/.gitkeep b/invoice-ninja/data/storage/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/invoice-ninja/dfwebos-app.yml b/invoice-ninja/dfwebos-app.yml new file mode 100644 index 0000000..b81aa1d --- /dev/null +++ b/invoice-ninja/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1.1 +id: invoice-ninja +category: finance +name: Invoice Ninja +version: "5.13.19" +tagline: ПомоТСм с выставлСниСм счСта +description: >- + ВыставлСниС счСтов, ΠΊΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ, расходы, Π·Π°Π΄Π°Ρ‡ΠΈ. + + + Invoice Ninja β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для выставлСния счСтов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΈ просто ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ счСта ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ. Наша послСдняя вСрсия прСдставляСт собой ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ нашСго популярного прилоТСния для выставлСния счСтов, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π½Π°Π±ΠΎΡ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… просило сообщСство. +developer: InvoiceNinja, Inc. +website: https://invoiceninja.com +dependencies: [] +repo: https://github.com/invoiceninja/invoiceninja +support: https://forum.invoiceninja.com/ +port: 8676 +gallery: +- 1.jpg +- 2.jpg +- 3.jpg +path: '' +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок: + - ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ всС элСктронныС письма ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΎΠΏΠ»Π°Ρ‚Ρ‹ Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΠ΄Ρ‹ Π²Π°Π»ΡŽΡ‚ Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… ΠΊΠ²ΠΈΡ‚Π°Π½Ρ†ΠΈΠΉ ΠΎΠ± ΠΎΠΏΠ»Π°Ρ‚Π΅. + - Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ отступы Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ» Π² ΠΈΠ³Ρ€ΠΈΠ²ΠΎΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… ΠΏΠΎ ΡƒΡ‡Π΅Ρ‚Ρƒ Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹Ρ… срСдств. + - ΠžΡ‚ΠΊΠ°Ρ‚ рСгрСссии для AutoBillInvoice. + - Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ настраиваСмых ΠΏΠΎΠ»Π΅ΠΉ для Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов Π² ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ счСтах. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/invoiceninja/invoiceninja/releases. +deterministicPassword: true +defaultUsername: admin@example.com +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/347 diff --git a/invoice-ninja/docker-compose.yml b/invoice-ninja/docker-compose.yml new file mode 100644 index 0000000..b1e8475 --- /dev/null +++ b/invoice-ninja/docker-compose.yml @@ -0,0 +1,87 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: invoice-ninja_nginx_1 + APP_PORT: 80 + PROXY_AUTH_WHITELIST: "/api/*" + + nginx: + image: nginx:1.21-alpine@sha256:686aac2769fd6e7bab67663fd38750c135b72d993d0bb0a942ab02ef647fc9c3 + init: true + restart: on-failure + volumes: + - ${APP_DATA_DIR}/config/nginx.conf:/etc/nginx/conf.d/nginx.conf:ro + - ${APP_DATA_DIR}/data/public:/var/www/html/public:ro + # ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ здСсь "fake", ΠΈΠ½Π°Ρ‡Π΅ /data/storage Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° /home. + # Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ строку здСсь: https://github.com/getumbrel/umbrel/blob/93a4b1801d1141252e73ff759a4ef52d038fff92/packages/umbreld/source/modules/apps/app.ts#L120 + - ${APP_DATA_DIR}/data/fake/../storage:/var/www/html/storage:ro + depends_on: + - app + + app: + image: invoiceninja/invoiceninja-debian:5.13.19@sha256:32ce0fe42259a63a6e6bcef75e038a5fdeed092c055f5f1d91ef82a021d741bf + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/public:/var/www/html/public + # ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ здСсь "fake", ΠΈΠ½Π°Ρ‡Π΅ /data/storage Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° /home. + # Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ строку здСсь: https://github.com/getumbrel/umbrel/blob/93a4b1801d1141252e73ff759a4ef52d038fff92/packages/umbreld/source/modules/apps/app.ts#L120 + - ${APP_DATA_DIR}/data/fake/../storage:/var/www/html/storage + environment: + APP_URL: "http://${APP_DOMAIN}:8676" + APP_KEY: "${APP_KEY:-unset}" + APP_ENV: "production" + APP_DEBUG: "false" + REQUIRE_HTTPS: "false" + DB_HOST: invoice-ninja_db_1 + DB_DATABASE: invoiceninja + DB_USERNAME: invoiceninja + DB_PASSWORD: moneyprintergobrrr + IN_USER_EMAIL: "admin@example.com" + IN_PASSWORD: $APP_PASSWORD + IS_DOCKER: "true" + CACHE_DRIVER: redis + QUEUE_CONNECTION: redis + SESSION_DRIVER: redis + REDIS_HOST: invoice-ninja_redis_1 + REDIS_PASSWORD: null + REDIS_PORT: 6379 + FILESYSTEM_DISK: debian_docker + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + + + db: + image: mariadb:11.4.5@sha256:5dfb3093333fa0ea53194ddef0a2bfa21d3b1e1353bd228b22610cd6fc0c04da + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: invoiceninja + MYSQL_USER: invoiceninja + MYSQL_PASSWORD: moneyprintergobrrr + MYSQL_DATABASE: invoiceninja + MARIADB_AUTO_UPGRADE: "true" + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + interval: 20s + start_period: 10s + timeout: 10s + retries: 5 + + redis: + image: redis:7.4.3@sha256:ee8ec723c831b815c3e2f2c6fbd1c145c68d1c04ba284f044ec1434fbca0fee8 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis:/data + healthcheck: + test: [ "CMD", "redis-cli", "ping" ] + interval: 10s + timeout: 5s + retries: 5 diff --git a/invoice-ninja/exports.sh b/invoice-ninja/exports.sh new file mode 100644 index 0000000..60033a2 --- /dev/null +++ b/invoice-ninja/exports.sh @@ -0,0 +1,7 @@ +LARAVEL_APP_KEY_FILE_PATH="$(readlink -f $(dirname "${BASH_SOURCE[0]}"))/data/laravel-app-key.txt" + +if [[ -f "${LARAVEL_APP_KEY_FILE_PATH}" ]]; then + # ΠΌΡ‹ удаляСм newlines/carriage-returns ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ laravel Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ APP_KEY. + # ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, случайно Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ». + export APP_KEY=$(cat "${LARAVEL_APP_KEY_FILE_PATH}" | tr -d '\r\n') +fi \ No newline at end of file diff --git a/invoice-ninja/hooks/pre-start b/invoice-ninja/hooks/pre-start new file mode 100755 index 0000000..88858cd --- /dev/null +++ b/invoice-ninja/hooks/pre-start @@ -0,0 +1,173 @@ +#!/usr/bin/env bash +set -euo pipefail + +### ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… bill-ninja. + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="${APP_DIR}/data" + +DESIRED_OWNER="1000:1000" + +PUBLIC_DATA_DIR="${APP_DATA_DIR}/public" +STORAGE_DATA_DIR="${APP_DATA_DIR}/storage" +REDIS_DATA_DIR="${APP_DATA_DIR}/redis" + +invoiceninja_correct_permission() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +invoiceninja_correct_permission "${PUBLIC_DATA_DIR}" +invoiceninja_correct_permission "${STORAGE_DATA_DIR}" +invoiceninja_correct_permission "${REDIS_DATA_DIR}" + +### Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ APP_KEY для счСта-ниндзя + +MAX_RETRIES=5 +RETRY_COUNT=0 + +LARAVEL_APP_KEY_FILE_PATH="${APP_DATA_DIR}/laravel-app-key.txt" + +echo "Checking for existing invoice-ninja APP_KEY..." + +# ΠœΡ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ сохраняСм Laravel APP_KEY Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΠ½ Π΅Ρ‰Π΅ Π½Π΅ сущСствуСт. +if [[ ! -f "${LARAVEL_APP_KEY_FILE_PATH}" ]]; then + echo "Generating Invoice-Ninja APP_KEY…" + + # Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слуТбу Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ + "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up -d app >/dev/null + + # ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΊΡΡˆΡƒ Laravel ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Invoice Ninja ΡƒΠ΄Π°Π»ΠΈΠ» Ρ‚ΠΎΠΌ bootstrap/cache. + # https://github.com/invoiceninja/dockerfiles/pull/738 + # https://github.com/invoiceninja/dockerfiles/pull/745 + "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" exec -T -w /var/www/html app \ + bash -c ' + php artisan optimize || true + mkdir -p storage/framework/{cache,data,sessions,testing,views} bootstrap/cache + chown -R www-data:www-data storage bootstrap/cache 2>/dev/null || true + chmod -R ug+rwx storage bootstrap/cache + ' + + # ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ + APP_KEY=$( + "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" \ + run --rm -w /var/www/html app \ + php artisan key:generate --show --no-ansi + ) + + # ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹/ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ строк ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ + printf '%s' "${APP_KEY//[$'\t\r\n ']}" > "${LARAVEL_APP_KEY_FILE_PATH}" + echo "Invoice-Ninja APP_KEY saved β†’ ${LARAVEL_APP_KEY_FILE_PATH}" +else + echo "Invoice-Ninja APP_KEY already exists – nothing to do." +fi + +### Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ nginx ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для счСта-ниндзя, Ссли ΠΎΠ½ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½. + +NGINX_CONFIG_FILE="${APP_DIR}/config/nginx.conf" + +# ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„Π°ΠΉΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ каноничСский nginx.conf для счСта-ниндзя. +MARKER_REGEX='^# DFWebOS Invoice-Ninja canonical nginx.conf 27-May-2025' + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π½Π΅ сущСствуСт Π»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³-Ρ„Π°ΠΉΠ» nginx ΠΈΠ»ΠΈ ΠΎΠ½ сущСствуСт ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ +if [[ ! -f "${NGINX_CONFIG_FILE}" ]] || ! grep -qx "${MARKER_REGEX}" "${NGINX_CONFIG_FILE}"; then + echo "Updating nginx configuration file for invoice-ninja." + # ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ nginx + cat >"${NGINX_CONFIG_FILE}" <<'EOF' +# Π—ΠΎΠ½Ρ‚ Invoice-Ninja каноничСский nginx.conf 27 мая 2025 Π³. + +# Invoice-Ninja Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ nginx.conf для Laravel +# https://github.com/invoiceninja/dockerfiles/blob/ed9c23d9c74a2a9f47b9dcb54946726ab816b6bc/debian/nginx/laravel.conf + +# https://laravel.com/docs/master/deployment#nginx +server { + listen 80 default_server; + server_name _; + root /var/www/html/public; + + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-Content-Type-Options "nosniff"; + + index index.php; + charset utf-8; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location = /favicon.ico { access_log off; log_not_found off; } + location = /robots.txt { access_log off; log_not_found off; } + + error_page 404 /index.php; + + location ~ \.php$ { + fastcgi_pass invoice-ninja_app_1:9000; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + include fastcgi_params; + } + + location ~ /\.(?!well-known).* { + deny all; + } +} + +# Invoice-Ninja Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ global/server +# https://github.com/invoiceninja/dockerfiles/blob/ed9c23d9c74a2a9f47b9dcb54946726ab816b6bc/debian/nginx/invoiceninja.conf + +# https://nginx.org/en/docs/http/ngx_http_core_module.html +client_max_body_size 10M; +client_body_buffer_size 10M; +server_tokens off; + +# https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html +fastcgi_buffers 32 16K; + +# https://nginx.org/en/docs/http/ngx_http_gzip_module.html +gzip on; +gzip_comp_level 2; +gzip_min_length 1M; +gzip_proxied any; +gzip_types *; +EOF + +echo "Updated nginx configuration file for invoice-ninja." + +fi + +# ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ монтирования /data/storage Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ /data/storage для счСта-ниндзя +# ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ привязки Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΈΠ·-Π·Π° Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² DFWebOS для ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…: +# https://github.com/getumbrel/umbrel/blob/93a4b1801d1141252e73ff759a4ef52d038fff92/packages/dfwebosd/source/modules/apps/app.ts#L113-L120 + +INCORRECT_STORAGE_DIR="${APP_DIR}/home" +CORRECT_STORAGE_DIR="${APP_DIR}/data/storage" + +# ΠœΡ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ${APP_DIR}/home, Ссли ΠΎΠ½ сущСствуСт. +if [[ -d "${INCORRECT_STORAGE_DIR}" ]]; then + echo "Migrating invoice-ninja data from ${INCORRECT_STORAGE_DIR} to ${CORRECT_STORAGE_DIR}..." + + # Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡƒΠ½ΠΊΡ‚ назначСния сущСствуСт (Π² случаС, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ΄Π°Π»ΠΈΠ» ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³) + mkdir -p "${CORRECT_STORAGE_DIR}" + + # Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ всС ΠΈΠ· Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ монтирования привязки Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅. + # -Π°Ρ€Ρ…ΠΈΠ² (ΠΏΠ΅Ρ€ΠΌΡ‹, Π²Ρ€Π΅ΠΌΠ΅Π½Π°, ссылки, Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹) + # -u Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для обновлСния (ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли исходный ΠΊΠΎΠ΄ Π½ΠΎΠ²Π΅Π΅) + rsync -au --progress \ + "${INCORRECT_STORAGE_DIR}/" \ + "${CORRECT_STORAGE_DIR}/" + + # Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π΅Π±-сСрвСра Π²Π»Π°Π΄Π΅Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. + chown -R www-data:www-data "${CORRECT_STORAGE_DIR}" + + # АрхивируйтС ΡΡ‚Π°Ρ€ΡƒΡŽ привязку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этот Π±Π»ΠΎΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π° большС Π½Π΅ сработал. + mv "${INCORRECT_STORAGE_DIR}" \ + "${INCORRECT_STORAGE_DIR}_migrated_$(date +%Y%m%dT%H%M%S)" + + echo "Successfully migrated invoice-ninja data from ${INCORRECT_STORAGE_DIR} to ${CORRECT_STORAGE_DIR}..." +fi diff --git a/ipfs-podcasting/cfg/.gitkeep b/ipfs-podcasting/cfg/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ipfs-podcasting/cfg/.gitkeep @@ -0,0 +1 @@ + diff --git a/ipfs-podcasting/dfwebos-app.yml b/ipfs-podcasting/dfwebos-app.yml new file mode 100644 index 0000000..2393ae9 --- /dev/null +++ b/ipfs-podcasting/dfwebos-app.yml @@ -0,0 +1,27 @@ +manifestVersion: 1 +id: ipfs-podcasting +category: files +name: IPFS Podcasting +version: "0.6" +tagline: ΠšΡ€Π°ΡƒΠ΄-хостинг подкастов Ρ‡Π΅Ρ€Π΅Π· IPFS +description: |- + ΠŸΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅ свой DFWebOS Π² ΡƒΠ·Π΅Π» IPFS для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ, ΠΊΡ€Π°ΡƒΠ΄-хостинга ΠΈ архивирования Π²Π°ΡˆΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… подкастов Π² сСти IPFS. + + IPFSPodcasting.net ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ для управлСния ΠΈ отслСТивания Ρ…ΡΡˆΠ΅ΠΉ эпизодов подкастов ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°Π½Π°Π»Ρ‹ IPFS/RSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· сСти IPFS. + + Для участия Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ всСго лишь Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свою ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своим ΡƒΠ·Π»ΠΎΠΌ с Π²Π΅Π±-сайта. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ FAQ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС. +developer: IPFSPodcasting.net +website: https://IPFSPodcasting.net +dependencies: [] +repo: https://github.com/Cameron-IPFSPodcasting/podcastnode +support: https://github.com/Cameron-IPFSPodcasting/podcastnode/issues +port: 8675 +gallery: +- 1.jpg +- 2.jpg +- 3.jpg +path: "" +defaultPassword: "" +submitter: IPFSPodcasting.net +submission: https://github.com/getumbrel/umbrel/pull/1356 +releaseNotes: "" \ No newline at end of file diff --git a/ipfs-podcasting/docker-compose.yml b/ipfs-podcasting/docker-compose.yml new file mode 100644 index 0000000..01d437c --- /dev/null +++ b/ipfs-podcasting/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: ipfs-podcasting_web_1 + APP_PORT: 8675 + + web: + image: ipfspodcasting/podcastnode:v0.6@sha256:773d7c34d452764be973e8bc495990ec47f8042287493997784198c64e924393 + init: true + restart: on-failure + stop_grace_period: 1m + user: "1000:1000" + ports: + - 4001:4001 # IPFS P2P + volumes: + - ${APP_DATA_DIR}/ipfs:/ipfs-podcasting/ipfs + - ${APP_DATA_DIR}/cfg:/ipfs-podcasting/cfg diff --git a/ipfs-podcasting/ipfs/.gitkeep b/ipfs-podcasting/ipfs/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ipfs-podcasting/ipfs/.gitkeep @@ -0,0 +1 @@ + diff --git a/itchysats/data/.gitkeep b/itchysats/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/itchysats/dfwebos-app.yml b/itchysats/dfwebos-app.yml new file mode 100644 index 0000000..f6e27de --- /dev/null +++ b/itchysats/dfwebos-app.yml @@ -0,0 +1,72 @@ +manifestVersion: 1.2 +id: itchysats +category: bitcoin +name: ItchySats +version: "0.7.0" +tagline: ΠžΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹Π΅ Π΄Π΅Ρ€ΠΈΠ²Π°Ρ‚ΠΈΠ²Ρ‹ Π½Π° Bitcoin +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ItchySats большС Π½Π΅ поддСрТиваСтся ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ посСтитС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GitHub. + + + ItchySats обСспСчиваСт ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»ΡŽ CFD Π½Π° Bitcoin с использованиСм DLC. + (ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ дискрСтного ΠΆΡƒΡ€Π½Π°Π»Π°). Никакой ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΈ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠΉ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ стороны β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹. + ΠΈ Ρ‚Π²ΠΎΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ. + + + Π­Ρ‚ΠΎ Π±Π΅Ρ‚Π°-вСрсия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠœΡ‹ протСстировали Π΅Π³ΠΎ Π² тСстовой ΠΈ основной сСти, Π½ΠΎ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ всСгда Π±ΡƒΠ΄Π΅Ρ‚ вСсти сСбя Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ оТидалось. + + ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊΡƒΡŽ сумму Π΄Π΅Π½Π΅Π³ Π²Ρ‹ довСряСтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. + + Ворговля CFD ΠΏΠΎ своСй сути рискованна, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎΠ± этом ΠΏΠ΅Ρ€Π΅Π΄ использованиСм этого прилоТСния. + + + Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅: это довольно ΠΊΡ€ΡƒΡ‚ΠΎ, с ΡƒΠΌΠ° сойти! + + + 1. ΠŸΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ кошСлСк ItchySats. + + 2. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ + + 3. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ†Π΅Π½Ρ‹ + + 4. ΠŸΡ€ΠΈΠ±Ρ‹Π»ΡŒ + + + ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π±Π΅Ρ‚Π°-вСрсии основной сСти: + + + 1. Минимальная сумма ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ β€” 100 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² БША, максимальная β€” 1000 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² БША. + + + Π’ вСрсии 0.4.0 ваши CFD ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой бСссрочныС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ΄Π»Π΅Π²Π°ΡŽΡ‚ΡΡ СТСчасно. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ваша позиция CFD останСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ навсСгда, Ссли Π²Ρ‹ Π½Π΅ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π΅Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ. Комиссия Π·Π° финансированиС взимаСтся СТСчасно ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΄Π»Π΅Π½ΠΈΠΈ срока дСйствия CFD. + + + Π’ вСрсии 0.4.8 Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Ρ€Π°Π½ΡŒΡˆΠ΅ Π±Ρ‹Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. + + + Π’ вСрсии 0.5.0 Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Π΅ ΠΏΠ»Π΅Ρ‡ΠΈ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠ³ΠΎ ΠΏΠ»Π΅Ρ‡Π° Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ значСниями x1, x2 ΠΈ x3. + + Π‘ вСрсиСй 0.6.0 Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΏΠΎ Ρ†Π΅Π½Π°ΠΌ BTCUSD ΠΈ ETHUSD. #ShortTheMerge + + Π’ вСрсии 0.7.0 ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° основС Ρ„Π°ΠΉΠ»ΠΎΠ² cookie. Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ (см. ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS). +developer: 10101 +website: https://itchysats.network +dependencies: + - electrs +repo: https://github.com/get10101/itchysats +support: https://github.com/get10101/itchysats/issues +port: 7113 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: true +torOnly: false +releaseNotes: >- + Π’ вСрсии 0.7.0 ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° основС Ρ„Π°ΠΉΠ»ΠΎΠ² cookie. Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ (см. ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS). + + ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://github.com/itchysats/itchysats/releases/tag/0.7.0. +submitter: 10101 +submission: https://github.com/getumbrel/umbrel/pull/1149 +disabled: true \ No newline at end of file diff --git a/itchysats/docker-compose.yml b/itchysats/docker-compose.yml new file mode 100644 index 0000000..b61a83d --- /dev/null +++ b/itchysats/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: itchysats_web_1 + APP_PORT: 8000 + + web: + image: ghcr.io/get10101/itchysats/taker:0.7.0@sha256:0c29162897a6c2bc2093373306f920400a0718960e1e4b1d80bd44beb485a498 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + command: + - --password=$APP_PASSWORD + - --app-seed=$APP_SEED + - $APP_BITCOIN_NETWORK + - --electrum=tcp://$APP_ELECTRS_NODE_IP:$APP_ELECTRS_NODE_PORT + environment: + - ITCHYSATS_ENV=dfwebos diff --git a/ittools/dfwebos-app.yml b/ittools/dfwebos-app.yml new file mode 100644 index 0000000..fac3cd8 --- /dev/null +++ b/ittools/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1 +id: ittools +name: IT-Tools +tagline: Набор ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΎΠ½Π»Π°ΠΉΠ½-инструмСнтов для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². +category: developer +version: "2024.10.22" +port: 8786 +description: >- + βš™οΈ It-Tools β€” это ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π° GitHub, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ практичСских ΠΎΠ½Π»Π°ΠΉΠ½-инструмСнтов для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ИВ-спСциалистов. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ просты Π² использовании ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ URL-адрСсов, гСнСрация QR-ΠΊΠΎΠ΄Π°, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ JSON ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ XML. + + + ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния прилоТСния. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ инструмСнты Π½Π° своих сСрвСрах с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker, Ρ‡Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½Π° нСзависимая срСда. ΠŸΡ€ΠΎΡ†Π΅ΡΡ установки Docker прост ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ лишь простой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для запуска прилоТСния Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. + + + It-Tools Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ развиваСтся ΠΈ поддСрТиваСтся с рСгулярными обновлСниями ΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΌ сообщСства. Он распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GNU GPLv3, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ свободно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ GitHub собрал большоС ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ сообщСство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ обсуТдаСт ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡ‚ΡŒ инструмСнтов ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ особСнно цСнится Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ срСдС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π»ΠΈ прСдлоТСния Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Helm для Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ Kubernetes. + + + ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ быстрый ΠΈ эффСктивный способ выполнСния Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ прямо Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π±Π΅Π· использования Π²Π½Π΅ΡˆΠ½ΠΈΡ… инструмСнтов ΠΈΠ»ΠΈ сСрвисов. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ особСнно ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими инструмСнтами ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. +developer: Corentin Thomasset +website: https://it-tools.tech/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2807 +repo: https://github.com/CorentinTh/it-tools +support: https://github.com/CorentinTh/it-tools/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg + - 6.jpg +releaseNotes: "" +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/ittools/docker-compose.yml b/ittools/docker-compose.yml new file mode 100644 index 0000000..b17f66d --- /dev/null +++ b/ittools/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: ittools_app_1 + APP_PORT: 80 + + app: + image: corentinth/it-tools:2024.10.22-7ca5933@sha256:8b8128748339583ca951af03dfe02a9a4d7363f61a216226fc28030731a5a61f + restart: on-failure + # Π±Π΅Π· Ρ€ΡƒΡ‚Π° ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ + #user: 1000:1000 + mem_limit: 2g + cpu_shares: 768 + security_opt: + - no-new-privileges:true diff --git a/jackett/data/.gitkeep b/jackett/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/jackett/dfwebos-app.yml b/jackett/dfwebos-app.yml new file mode 100644 index 0000000..6dc087d --- /dev/null +++ b/jackett/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1 +id: jackett +category: media +name: Jackett +version: "0.24.1789" +tagline: API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π°ΡˆΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠ² +description: >- + Jackett Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ прокси-сСрвСр: ΠΎΠ½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ запросы ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Sonarr, Radarr, SickRage, CouchPotato, Mylar3, Lidarr, DuckieTV, qBittorrent, Nefarious ΠΈ Ρ‚.Β Π΄.) Π² http-запросы, спСцифичныС для сайта Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°. + Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ html ΠΈΠ»ΠΈ json, Π° Π·Π°Ρ‚Π΅ΠΌ отправляСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ послСдниС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, RSS) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поиск. + JackettΒ β€” это Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ очистки ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° индСксаторов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ снимаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ с Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + + 1. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ URL-адрСса: Π² Jackett Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅ Β«ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ URL-адрСса» Π½Π° Β«http://[the-ip-of-your-dfwebos]:9117"Β» Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ IP-адрСсом вашСго устройства DFWebOS. + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ IP-адрСс вашСго устройства, посСтив панСль администратора вашСго ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнт сканирования IP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Angry IP Scanner. + Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ URL-адрСса ΠΊΠ°Π½Π°Π»Π° Torznab Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°, Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Ρ‚Π°ΠΊΠΈΠΌΠΈ прилоТСниями, ΠΊΠ°ΠΊ Sonarr ΠΈ Radarr. + + + 2. ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Blackhole: Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .torrent нСпосрСдствСнно ΠΈΠ· Jackett ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ просматривал эту ΠΏΠ°ΠΏΠΊΡƒ, установитС для Β«ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° BlackholeΒ» Π² Jackett Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«/downloadsΒ» Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .torrent ΠΈΠ· Jackett Π² ΠΏΠ°ΠΏΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ вашСго DFWebOS. + + + 3. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ инструкциям Π² Jackett, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Jackett Π² качСствС источника индСксатора для Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ Sonarr ΠΈ Radarr. +developer: Jackett +website: https://github.com/Jackett/Jackett/ +dependencies: [] +repo: https://github.com/Jackett/Jackett/ +support: https://github.com/Jackett/Jackett/ +port: 9117 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ обновлСния: + - Π£Π΄Π°Π»Π΅Π½Ρ‹ Π±ΠΈΡ‚Ρ€Ρƒ ΠΈ Ρ‚ΠΎΠΊΠΈΠΎΠΏΡ‚ (ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Π΅ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Ρ‹) + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Ρ‹ Π½Π° Π±Π°Π·Π΅ NexusPHP для поиска IMDB ΠΈ Douban ID. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ нСсколько Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠ² с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ катСгориями. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ парсинг ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ описаний для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ со Π²Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈ поиском Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°Ρ…. + - ΠžΠ±Ρ‰ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ очистки ΠΈ форматирования Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°Ρ…. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Jackett/Jackett/releases. +permissions: + - STORAGE_DOWNLOADS +torOnly: false +submitter: Pranshu Agrawal +submission: "https://github.com/getumbrel/dfwebos-apps/pull/665" diff --git a/jackett/docker-compose.yml b/jackett/docker-compose.yml new file mode 100644 index 0000000..e72f7ff --- /dev/null +++ b/jackett/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: jackett_server_1 + APP_PORT: 9117 + PROXY_AUTH_WHITELIST: "/api/* /dl/*" + + server: + image: linuxserver/jackett:0.24.1789@sha256:cb8f3e18c38be590027a33c33e9de1d7412f066de4f541d884241bcb28b1f922 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + stop_grace_period: 1m + environment: + - PUID=1000 + - PGID=1000 diff --git a/jam/data/joinmarket/.gitkeep b/jam/data/joinmarket/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/jam/dfwebos-app.yml b/jam/dfwebos-app.yml new file mode 100644 index 0000000..24eba54 --- /dev/null +++ b/jam/dfwebos-app.yml @@ -0,0 +1,45 @@ +manifestVersion: 1.1 +id: jam +category: bitcoin +name: Jam +version: "0.4.1" +tagline: Π’Π°Ρˆ сат. Π’Π°ΡˆΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’Π°ΡˆΠ° ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ. +description: >- + ⚠️ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎ совмСстимости: Jam ΠΏΠΎΠΊΠ° Π½Π΅ совмСстим с Bitcoin Core v30 ΠΈΠ»ΠΈ любой вСрсиСй/Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΡƒΠ·Π»Π° Bitcoin, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ кошСлька bdb. + Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Bitcoin Node вмСстС с Jam, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Jam, Π·Π°ΠΊΡ€Π΅ΠΏΠΈΠ² Π²Π΅Ρ€ΡΠΈΡŽ Bitcoin Core Π΄ΠΎ v29.2 Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Bitcoin Node. Π‘ΠΌ. инструкции Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ GitHub: + https://github.com/joinmarket-webui/jam/issues/983#issuecomment-3437241631 + + + Jam β€” это ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс для JoinMarket, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° + удобство для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + + ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠΊΠ»Π°ΡΡΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½ΠΎΠ². Π¨ΠΈΡ€ΠΎΠΊΠΎΠ΅ использованиС JoinMarket ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½ΠΎΠ² для всСх. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдоставляСт Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΎΠ½ прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. +releaseNotes: >- + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ: общая Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ баланса. + + - ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ: Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + + - интСрфСйс: Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния интСрфСйс. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/joinmarket-webui/jam/releases. +developer: JoinMarket WebUI Org. +website: https://jamapp.org +dependencies: + - bitcoin +repo: https://github.com/joinmarket-webui/jam +support: https://github.com/joinmarket-webui/jam/issues +port: 5002 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: dfwebos +defaultPassword: "" +deterministicPassword: true +submitter: JoinMarket WebUI Org. +submission: https://github.com/getumbrel/umbrel/pull/1216 diff --git a/jam/docker-compose.yml b/jam/docker-compose.yml new file mode 100644 index 0000000..8bf5576 --- /dev/null +++ b/jam/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: jam_web_1 + APP_PORT: 80 + + web: + image: ghcr.io/joinmarket-webui/jam-standalone:v0.4.1-clientserver-v0.9.11@sha256:1b2491b6795bd56b5c7ff01a365c92c9699ad6c0456047bc4e9a30078d5cce6c + restart: on-failure + stop_grace_period: 1m + init: true + volumes: + - ${APP_DATA_DIR}/data/joinmarket:/root/.joinmarket + environment: + RESTORE_DEFAULT_CONFIG: "true" + REMOVE_LOCK_FILES: "true" + ENSURE_WALLET: "true" + APP_USER: dfwebos + APP_PASSWORD: "${APP_PASSWORD}" + jm_network: $APP_BITCOIN_NETWORK + jm_rpc_host: $APP_BITCOIN_NODE_IP + jm_rpc_port: $APP_BITCOIN_RPC_PORT + jm_rpc_user: $APP_BITCOIN_RPC_USER + jm_rpc_password: "${APP_BITCOIN_RPC_PASS}" + jm_rpc_wallet_file: jam_default diff --git a/jellyfin/dfwebos-app.yml b/jellyfin/dfwebos-app.yml index 55901db..23693b8 100644 --- a/jellyfin/dfwebos-app.yml +++ b/jellyfin/dfwebos-app.yml @@ -47,5 +47,5 @@ torOnly: false permissions: - STORAGE_DOWNLOADS - GPU -submitter: DFWebOS +submitter: DFofanov submission: https://github.dfv24.com/fofanov.dmitry/DFWebOS-Apps/pulls diff --git a/jellyseerr/data/config/.gitkeep b/jellyseerr/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/jellyseerr/dfwebos-app.yml b/jellyseerr/dfwebos-app.yml new file mode 100644 index 0000000..b35da39 --- /dev/null +++ b/jellyseerr/dfwebos-app.yml @@ -0,0 +1,61 @@ +manifestVersion: 1.1 +id: jellyseerr +category: media +name: Seerr +version: "3.2.0" +tagline: ΠŸΡ€Π΅ΠΊΡ€Π°ΡΠ½ΠΎΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ запросами +description: >- + Seerr β€” это бСсплатноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для управлСния запросами Π½Π° Π²Π°ΡˆΡƒ ΠΌΠ΅Π΄ΠΈΠ°Ρ‚Π΅ΠΊΡƒ. + + + Он интСгрируСтся с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ Π²Π°ΠΌΠΈ ΠΌΠ΅Π΄ΠΈΠ°-сСрвСром: Jellyfin, Plex ΠΈ Emby. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ интСгрируСтся с вашими ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ сСрвисами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Sonarr, Radarr. + + + Seerr рСгулярно сканируСт ваши Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты ΡƒΠΆΠ΅ доступны Π½Π° вашСм сСрвСрС. + + Он Ρ‚Π°ΠΊΠΆΠ΅ интСгрируСтся с популярными прилоТСниями DVR Radarr ΠΈ Sonarr ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ активности Π²Π½ΡƒΡ‚Ρ€ΠΈ самого Seerr. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + + Π’ΠΎ врСмя ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ настройки Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ввСсти IP-адрСс вашСго устройства DFWebOS для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Jellyfin / Plex / Emby (ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ слуТбам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Radarr ΠΈ Sonarr). + + IP-адрСс вашСго устройства ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² настройках DFWebOS. + + + Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ адрСса: + - **Jellyfin:** jellyfin_server_1:8096 + - **Π­ΠΌΠ±ΠΈ:** emby_server_1:8086 + - **Radarr:** Ρ€Π°Π΄Π°Ρ€_сСрвСр_1:7878 + - **Sonarr:** sonarr_server_1:8989 + - **Plex:** АдрСс Π½Π΅ трСбуСтся. +developer: Seerr Team +website: https://docs.seerr.dev/ +dependencies: [] +repo: https://github.com/seerr-team/seerr +support: https://github.com/seerr-team/seerr/issues +port: 5056 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + Π’ этом выпускС прСдставлСн **Seerr**, Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Π±Π°Π·Ρ‹ Jellyseerr ΠΈ Overserr Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для управлСния ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΈ запросами. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Jellyseerr ΠΈ Overseerr ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Seerr. + - Одна общая кодовая Π±Π°Π·Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°, двиТущаяся Π²ΠΏΠ΅Ρ€Π΅Π΄ для Π±ΠΎΠ»Π΅Π΅ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ обслуТивания. + - ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ экосистСм мСдиасСрвСров Plex, Jellyfin ΠΈ Emby. + - Π Π΅Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ инфраструктуры Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/seerr-team/seerr/releases. +torOnly: false +submitter: johnpc +submission: "https://github.com/getumbrel/dfwebos-apps/pull/924" diff --git a/jellyseerr/docker-compose.yml b/jellyseerr/docker-compose.yml new file mode 100644 index 0000000..5c46cb2 --- /dev/null +++ b/jellyseerr/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: jellyseerr_server_1 + APP_PORT: 5055 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: ghcr.io/seerr-team/seerr:v3.2.0@sha256:c4cbd5121236ac2f70a843a0b920b68a27976be57917555f1c45b08a1e6b2aad + user: "1000:1000" + init: true + volumes: + - ${APP_DATA_DIR}/data/config:/app/config + restart: on-failure + healthcheck: + test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1 + start_period: 20s + timeout: 3s + interval: 15s + retries: 3 diff --git a/jellyseerr/hooks/pre-start b/jellyseerr/hooks/pre-start new file mode 100755 index 0000000..4682d60 --- /dev/null +++ b/jellyseerr/hooks/pre-start @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ВСрсия 3.0.0 позволяла ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ serr Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ root: https://github.com/seerr-team/seerr/releases/tag/v3.0.0 +# Jellyseerr / Seerr Ρ€Π°Π½Π΅Π΅ запускался ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, поэтому Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ рСкурсивно устанавливаСм Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° 1000:1000, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ вСрсий Π΄ΠΎ 3.0.0 Π½Π΅ Π±Ρ‹Π»ΠΎ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ прилоТСния. +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/data" + +# РСкурсивно ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ собствСнности Π½Π° всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΠΎΠ΄ APP_DATA_DIR Π½Π° 1000:1000. +chown -R 1000:1000 "${APP_DATA_DIR}" diff --git a/jotty/data/app/.gitkeep b/jotty/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/jotty/data/cache/.gitkeep b/jotty/data/cache/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/jotty/data/config/.gitkeep b/jotty/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/jotty/dfwebos-app.yml b/jotty/dfwebos-app.yml new file mode 100644 index 0000000..c708800 --- /dev/null +++ b/jotty/dfwebos-app.yml @@ -0,0 +1,60 @@ +manifestVersion: 1 +id: jotty +category: files +name: Jotty +version: "1.22.0" +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… списков ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ +description: >- + Устали ΠΎΡ‚ Ρ€Π°Π·Π΄ΡƒΡ‚Ρ‹Ρ… ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для управлСния Π΄Π΅Π»Π°ΠΌΠΈ? Jotty β€” это лСгкая Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ вашими Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ списками ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ. + + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ списки: создавайтС списки Π·Π°Π΄Π°Ρ‡ с пСрСтаскиваниСм, ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ выполнСния ΠΈ катСгориями. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ простыС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ списки, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ слоТных Π·Π°Π΄Π°Ρ‡ с досками Канбан ΠΈ отслСТиваниСм Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + - Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ тСкстом: чистый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ WYSIWYG для Π²Π°ΡˆΠΈΡ… Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ Π½Π° Π±Π°Π·Π΅ TipTap с ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Markdown ΠΈ подсвСткой синтаксиса. + - БовмСстноС использованиС: Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ списками ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ вашСго экзСмпляра, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ с ΠΎΠ±Ρ‰ΠΈΠΌΠΈ ссылками. + - На основС Ρ„Π°ΠΉΠ»ΠΎΠ²: Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ трСбуСтся! ВсС хранится Π² простых Ρ„Π°ΠΉΠ»Π°Ρ… Markdown ΠΈ JSON Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ: панСль администратора для создания ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ управлСния ΠΈΠΌΠΈ с отслСТиваниСм сСансов. +backupIgnore: + - data/cache/* +developer: fccview +website: https://jotty.page +repo: https://github.com/fccview/jotty +support: https://github.com/fccview/jotty/issues +port: 8345 +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3961 +releaseNotes: >- + ⚠️ ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сдСлайтС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию своих Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ этой вСрсии. + + + Канбан-Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³: + - Π—Π°Π΄Π°Ρ‡ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ систСму Канбан с Π½ΠΎΠ²Ρ‹ΠΌΠΈ полями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ исполнитСля, срок выполнСния, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΈ напоминания. + - Π’ Π½ΠΎΠ²ΠΎΠΌ прСдставлСнии калСндаря ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ срок выполнСния. + - Π€ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ доску Канбан ΠΏΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρƒ Π·Π°Π΄Π°Ρ‡. + - УвСдомлСния Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎ Ρ‚Π°ΠΊΠΈΡ… событиях, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‰ΠΈΠ΅ элСмСнты, обновлСния статуса Π·Π°Π΄Π°Ρ‡ ΠΈ напоминания ΠΎΠ± ΠΈΡΡ‚Π΅ΠΊΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡Π°Ρ…. + + НовыС возмоТности: + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° LDAP: Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² систСму Ρ‡Π΅Ρ€Π΅Π· LDAP, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ своС имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Jotty. + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ° API, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ отсутствовала Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΏΠΎ UUID. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ столбцы Канбана, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ заполняли вСсь экран ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΌΠ΅Π½Π΅Π΅ 4 статусов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ»ΠΈΡΡŒ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Ρ…ΠΎΠ΄Π° выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ PWA. + + ОбновлСния бСзопасности: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ бСзопасности. ОбновлСниС Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся, Ссли ваш экзСмпляр общСдоступСн. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ многочислСнныС сторонниС зависимости для устранСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… уязвимостСй бСзопасности. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/fccview/jotty/releases. +dependencies: [] +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +permissions: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/jotty/docker-compose.yml b/jotty/docker-compose.yml new file mode 100644 index 0000000..7b74989 --- /dev/null +++ b/jotty/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: jotty_web_1 + APP_PORT: "3000" + + web: + image: ghcr.io/fccview/jotty:1.22.0@sha256:a8fcab3c49ee7b9e21e95063fd07476ee41e85a9419b0a47ac1d0e52a1fd92f6 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/app:/app/data + - ${APP_DATA_DIR}/data/config:/app/config + - ${APP_DATA_DIR}/data/cache:/app/.next/cache + environment: + - NODE_ENV=production diff --git a/jupyterlab/data/.gitkeep b/jupyterlab/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/jupyterlab/dfwebos-app.yml b/jupyterlab/dfwebos-app.yml new file mode 100644 index 0000000..ef9fc60 --- /dev/null +++ b/jupyterlab/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1 +id: jupyterlab +category: developer +name: JupyterLab +version: "v4.5.6" +tagline: Π’Π΅Π±-интСрфСйс Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… вычислСний ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… +description: >- + JupyterLab β€” это Π²Π΅Π±-интСрфСйс Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния для Project Jupyter. + + + Он позволяСт Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ дСйствиями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Ρ‹ Jupyter, тСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹, Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π³ΠΈΠ±ΠΊΠΈΠΌ, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ нСсколько Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ дСйствий рядом Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Консоли ΠΊΠΎΠ΄Π° для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠ΄Π° ΠΈ связи с ядром Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ°. + - Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π° основС ядра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² любом тСкстовом Ρ„Π°ΠΉΠ»Π΅ (Markdown, Python, LaTeX). + - Π—Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ячССк для простых ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ. + - НСсколько прСдставлСний Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… просмотра (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр Markdown ΠΈΠ»ΠΈ CSV Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ). + - Единая модСль просмотра ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (изобраТСния, CSV, JSON, PDF, Vega ΠΈ Ρ‚.Π΄.). + - НастраиваСмыС сочСтания клавиш ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠ°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. + + + JupyterLab ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π°, Ρ‡Ρ‚ΠΎ ΠΈ классичСский Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ Jupyter. +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ удобства Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ с ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ привязкой ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΠΎΠ»Π½ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Ρ‹ фокуса строки состояния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ контСкстноС мСню Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° для создания Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² односимвольного ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ пустых. + - Π£Π΄Π°Π»Π΅Π½Π° нСрСализованная ΠΊΠΎΠΌΠ°Π½Π΄Π° поиска Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π² Ρ„Π°ΠΉΠ»Π°Ρ… Python для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΊΠΎΠ΄Π° Π² консоли ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ настройкС. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/jupyterlab/jupyterlab/releases. +developer: jupyterlab +website: https://jupyterlab.readthedocs.io/en/latest/ +repo: https://github.com/jupyterlab/jupyterlab +support: https://github.com/jupyterlab/jupyterlab/issues +port: 8899 +dependencies: [] +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: true +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3942 diff --git a/jupyterlab/docker-compose.yml b/jupyterlab/docker-compose.yml new file mode 100644 index 0000000..fac9fad --- /dev/null +++ b/jupyterlab/docker-compose.yml @@ -0,0 +1,14 @@ +services: + app_proxy: + environment: + APP_HOST: jupyterlab_server_1 + APP_PORT: 8888 + PROXY_AUTH_ADD: "false" + + server: + image: quay.io/jupyter/base-notebook:lab-4.5.6@sha256:af6002fbbe4cefbfd2c31e07816bb00b4f6849d2e449c8729348697f48568ff0 + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data:/home/jovyan/work + command: start-notebook.py --NotebookApp.token=${APP_PASSWORD} + restart: on-failure diff --git a/just-download/data/config/.gitkeep b/just-download/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/just-download/dfwebos-app.yml b/just-download/dfwebos-app.yml new file mode 100644 index 0000000..ed0cd5b --- /dev/null +++ b/just-download/dfwebos-app.yml @@ -0,0 +1,29 @@ +manifestVersion: 1 +id: just-download +category: media +name: Just. Download. +version: "1.0.9" +tagline: Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹. Волько. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ. +description: >- + Just Download позволяСт Π»Π΅Π³ΠΊΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΠΌΡ‹, ΠΊΠ½ΠΈΠ³ΠΈ, ΠΈΠ³Ρ€Ρ‹ ΠΈ Ρ‚. Π΄. ΠΈΠ· Π²Π°ΡˆΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… индСксаторов. Он дСйствуСт ΠΊΠ°ΠΊ мост ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄Π°Ρ‡Π΅ΠΉ Torznab (для ΠΈΡ… изготовлСния рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Jackett) ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ. + + + Π’Ρ‹ просто ΠΈΡ‰Π΅Ρ‚Π΅, Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ! +releaseNotes: >- + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://codeberg.org/highghlow/just-download/releases. +developer: highghlow +website: https://codeberg.org/highghlow/just-download +dependencies: + - transmission +repo: https://codeberg.org/highghlow/just-download/ +support: https://codeberg.org/highghlow/just-download/issues +port: 3684 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: highghlow +submission: https://github.com/getumbrel/umbrel/pull/1060 diff --git a/just-download/docker-compose.yml b/just-download/docker-compose.yml new file mode 100644 index 0000000..28a4dce --- /dev/null +++ b/just-download/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: just-download_web_1 + APP_PORT: 5000 + + web: + image: codeberg.org/highghlow/just-download:v1.0.9@sha256:96d8ed20104418ca41ccc8fc7001889f827bc60235b71b8e9aa19d1f5a6e4db7 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/config:/config + environment: + LOCK_TRANSMISSION_CONFIG: 1 + CONFIG_LOCATION: /config/config.json + CONFIG: '{"indexers": [], "transmission": {"host": "transmission_server_1", "port": 9091}}' diff --git a/kan/data/db/.gitkeep b/kan/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/kan/dfwebos-app.yml b/kan/dfwebos-app.yml new file mode 100644 index 0000000..ad7c469 --- /dev/null +++ b/kan/dfwebos-app.yml @@ -0,0 +1,44 @@ +manifestVersion: 1 +id: kan +category: files +name: kan +version: "0.5.6" +tagline: ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Trello с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ +description: >- + Kan β€” это соврСмСнная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Trello с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, прСдназначСнная для эффСктивного управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ чистый, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΌΠΎΡ‰Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. + + + - πŸ‘οΈ **Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ доски:** УправляйтС Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши доски. + - 🀝 **Участники Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области:** ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°ΠΉΡ‚Π΅ участников ΠΈ сотрудничайтС со своСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. + - πŸš€ **Π˜ΠΌΠΏΠΎΡ€Ρ‚ Trello:** Π»Π΅Π³ΠΊΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ доски Trello. + - πŸ” **Π―Ρ€Π»Ρ‹ΠΊΠΈ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹:** Быстро упорядочивайтС ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ. + - πŸ’¬ **ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:** ΠžΠ±ΡΡƒΠΆΠ΄Π°ΠΉΡ‚Π΅ ΠΈ сотрудничайтС со своСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. + - πŸ“ **Π–ΡƒΡ€Π½Π°Π» активности:** ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ всС измСнСния ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡Π΅ΠΊ с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ историСй активности. + - 🎨 **Π¨Π°Π±Π»ΠΎΠ½Ρ‹.** Π­ΠΊΠΎΠ½ΠΎΠΌΡŒΡ‚Π΅ врСмя с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ½ΠΎΠ³ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… шаблонов досок. +releaseNotes: >- + ⚠️ Π­Ρ‚ΠΎΡ‚ выпуск содСрТит Π²Π°ΠΆΠ½ΠΎΠ΅ исправлСниС бСзопасности. ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС. + + + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ бСзопасности ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ списка. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ошибок Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π° API ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° REST. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ Π»ΠΎΠ³Π³Π΅Ρ€Π° для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/kanbn/kan/releases. +developer: kanbn +website: https://kan.bn/ +repo: https://github.com/kanbn/kan +support: https://github.com/kanbn/kan/issues +port: 8373 +dependencies: [] +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3896 diff --git a/kan/docker-compose.yml b/kan/docker-compose.yml new file mode 100644 index 0000000..4770367 --- /dev/null +++ b/kan/docker-compose.yml @@ -0,0 +1,42 @@ +services: + app_proxy: + environment: + APP_HOST: kan_server_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + migrate: + image: ghcr.io/kanbn/kan-migrate:0.5.6@sha256:a2460e460b70a77ad60a12a8057b2a720cb9e4037a015ea508574887c5bceca1 + environment: + POSTGRES_URL: 'postgresql://kanuser:kanpassword@kan_db_1:5432/kan?sslmode=disable' + depends_on: + db: + condition: service_healthy + restart: on-failure + + server: + image: ghcr.io/kanbn/kan:0.5.6@sha256:3509af72635922b8195fc08e052f6257f8a05c50c8afcadc636f78c717667673 + environment: + NEXT_PUBLIC_BASE_URL: http://${DEVICE_DOMAIN_NAME}:8373 + BETTER_AUTH_SECRET: ${APP_SEED} + POSTGRES_URL: 'postgresql://kanuser:kanpassword@kan_db_1:5432/kan?sslmode=disable' + NEXT_PUBLIC_ALLOW_CREDENTIALS: "true" + depends_on: + - db + restart: on-failure + + db: + image: postgres:17.3@sha256:0321e2252ebfeecb8bc1a899755084d29bce872953e1a5a3e25ec0860b739098 + user: "1000:1000" + environment: + POSTGRES_DB: kan + POSTGRES_USER: kanuser + POSTGRES_PASSWORD: kanpassword + healthcheck: + test: ["CMD-SHELL", "pg_isready -U kan -d kan"] + interval: 5s + timeout: 5s + retries: 10 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data diff --git a/karakeep/data/karakeep_data/.gitkeep b/karakeep/data/karakeep_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/karakeep/data/karakeep_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/karakeep/data/meilisearch_data/.gitkeep b/karakeep/data/meilisearch_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/karakeep/data/meilisearch_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/karakeep/dfwebos-app.yml b/karakeep/dfwebos-app.yml new file mode 100644 index 0000000..b6ccdd6 --- /dev/null +++ b/karakeep/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1 +id: karakeep +name: Karakeep +tagline: ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ +category: files +version: "0.31.0" +port: 8620 +description: >- + πŸ“’ KarakeepΒ β€” это соврСмСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ, ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ СстСствСнным ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ способом. Он сочСтаСт Π² сСбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ инструмСнта для создания Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ, прилоТСния для Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, которая Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ простым ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ссылки, Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅ΠΈ ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π΅Π½ΠΈΠ΅, Π° Karakeep Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ эти Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ доступными ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ автоматичСски Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Π³ΠΈ Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, поэтому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π±Π΅Π· нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои записи. + + + Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Karakeep Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°Π½ΠΎΠ²ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ для сСбя Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ сохранили. ВсС ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ проиндСксировано для быстрого ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ полнотСкстового поиска, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ сохранили, просто вспомнив ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π·Ρƒ. НСт нСобходимости Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ систСма ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для быстрого ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ отобраТСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ чистый ΠΈ Π½Π΅ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, размСщая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΈ устраняя Π½Π΅Π½ΡƒΠΆΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. + + + Karakeep ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… списков для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ связанных записСй осмыслСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΡΡΡŒ ΠΊ Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ процСссам ΠΈ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ°ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° ТСсткиС структуры ΠΈΠ»ΠΈ Ρ€ΡƒΡ‡Π½Ρ‹Π΅ усилия, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ СстСствСнный способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, собираСт Π»ΠΈ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, сохраняСт ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки, Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹, Karakeep ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ этот процСсс Π² ΠΏΠ»Π°Π²Π½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ процСсс. Оно Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своим Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ пространством ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠΌ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ Π² ΠΈΡ… Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈ творчСской Ρ€Π°Π±ΠΎΡ‚Π΅. +developer: karakeep.app +website: https://karakeep.app/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2762 +repo: https://github.com/karakeep-app/karakeep +support: https://github.com/karakeep-app/karakeep/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Π΅Ρ€ΡΠΈΡŽ Karakeep 0.31.0! Π’ этом выпускС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° синхронизация процСсса чтСния, распознаваниС тСкста Π½Π° основС LLM, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, пСрСтаскиваниС списков, Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Ρ…ΠΎΠ΄ чтСния Π½Π° всСх устройствах, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ³ΠΎ мСста, Π³Π΄Π΅ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ. + - OCR Π½Π° основС LLM ΠΊΠ°ΠΊ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Tesseract для Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ извлСчСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ тСкста рСсурсов. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° с Π½ΠΎΠ²ΠΎΠΉ страницСй свСдСний ΠΎΠ± ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΌ отслСТиваниСм прогрСсса ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚. + - ΠŸΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ Π² списки. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° основных ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния мобильного прилоТСния. + - ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ‚Π΅Π³ΠΎΠ² ИИ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ подмноТСством ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π³ΠΎΠ² для Π±ΠΎΠ»Π΅Π΅ согласованных Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². + - Бписки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² автоматичСскоС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ экспорт. + - Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈΠ· Instapaper. + - НовыС ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ поиска, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ источника, псСвдоним Ρ‚Π΅Π³Π° ΠΈ псСвдоним отрицания. + - Кнопки ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ для Π·Π°Π²ΠΈΡΡˆΠΈΡ… ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ Π² ΠΏΠ°Π½Π΅Π»ΠΈ администратора. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ бСзопасности: ΠΎΡ‡ΠΈΡ‰Π΅Π½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сканирования Reddit, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ сохранСниС XSS. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/karakeep-app/karakeep/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/karakeep/docker-compose.yml b/karakeep/docker-compose.yml new file mode 100644 index 0000000..453f686 --- /dev/null +++ b/karakeep/docker-compose.yml @@ -0,0 +1,50 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: karakeep_web_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + web: + image: ghcr.io/karakeep-app/karakeep:0.31.0@sha256:20754dbdafb11dfe288bbb1c2342a7855081b08ea069e86fcf2d4a2d945d3653 + user: 1000:1000 + restart: on-failure + environment: + MEILI_ADDR: http://karakeep_meilisearch_1:7700 + MEILI_MASTER_KEY: ${APP_SEED} + BROWSER_WEB_URL: http://karakeep_chrome_1:9222 + DATA_DIR: /data + NEXTAUTH_SECRET: ${APP_SEED} + NEXTAUTH_URL: http://${DEVICE_DOMAIN_NAME}:8620 + KARAKEEP_VERSION: release + env_file: + - ${APP_DATA_DIR}/settings.env + volumes: + - ${APP_DATA_DIR}/data/karakeep_data:/data + depends_on: + - chrome + - meilisearch + + chrome: + image: zenika/alpine-chrome:124@sha256:31758da502f606986ab6d229694d7953741a89f106715d7fa5f2c939b247deeb + user: 1000:1000 + restart: on-failure + command: + - --no-sandbox + - --disable-gpu + - --disable-dev-shm-usage + - --remote-debugging-address=0.0.0.0 + - --remote-debugging-port=9222 + - --hide-scrollbars + + meilisearch: + image: getmeili/meilisearch:v1.14.0@sha256:8cd411ba5d9ec2dfce02e241305208eebacce0fd74a72bece21cadd03dc566ce + user: 1000:1000 + restart: on-failure + environment: + MEILI_NO_ANALYTICS: "true" + MEILI_MASTER_KEY: ${APP_SEED} + volumes: + - ${APP_DATA_DIR}/data/meilisearch_data:/meili_data diff --git a/karakeep/settings.env b/karakeep/settings.env new file mode 100644 index 0000000..3e291a0 --- /dev/null +++ b/karakeep/settings.env @@ -0,0 +1 @@ +#OPENAI_API_KEY=changeme diff --git a/kimai/data/app/plugins/.gitkeep b/kimai/data/app/plugins/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/kimai/data/db/.gitkeep b/kimai/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/kimai/dfwebos-app.yml b/kimai/dfwebos-app.yml new file mode 100644 index 0000000..935edab --- /dev/null +++ b/kimai/dfwebos-app.yml @@ -0,0 +1,44 @@ +manifestVersion: 1 +id: kimai +name: Kimai +tagline: Π£Ρ‡Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ +category: files +version: "2.56.0" +port: 8734 +description: >- + πŸ•’ Kimai β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΡƒΡ‡Π΅Ρ‚Π° Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для сбора ΠΈ управлСния всСми вашими ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями. + + + ⏰ Основная Ρ†Π΅Π»ΡŒ β€” ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ ваши Π²Π½Π΅ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ потрСбности Π² отслСТивании Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, прСдлагая Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈ бСзопасная аутСнтификация, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ. + + + πŸ‘₯ Кимай Ρ‚Π°ΠΊΠΆΠ΅ ставит ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто, поддСрТивая нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ часовыС пояса ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€ΠΎΠ»Π΅ΠΉ, обСспСчивая Π±Π΅ΡΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ для прСдприятий любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. + + + ⚠️ Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ, Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² систСму, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ прСдоставлСнныС ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ администратора ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ доступ ΠΊ своСму экзСмпляру Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. +developer: Kevin Papst +website: https://www.kimai.org/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/2218 +repo: https://github.com/kimai/kimai +support: https://github.com/kimai/kimai/discussions +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "dfwebos@dfwebos.local" +defaultPassword: "changeme" +deterministicPassword: false +dependencies: [] +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ каталанский ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ + - Новая конСчная Ρ‚ΠΎΡ‡ΠΊΠ° API для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ счСтов. + - Новая конСчная Ρ‚ΠΎΡ‡ΠΊΠ° API для сохранСния ΠΌΠ΅Ρ‚Π°ΠΏΠΎΠ»Π΅ΠΉ счСтов. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° групповая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для расписаний. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ скрипт управлСния для упрощСния администрирования. + - ОбновлСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° сайтС https://github.com/kimai/kimai/releases. +path: "" diff --git a/kimai/docker-compose.yml b/kimai/docker-compose.yml new file mode 100644 index 0000000..3ad64fd --- /dev/null +++ b/kimai/docker-compose.yml @@ -0,0 +1,42 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: kimai_app_1 + APP_PORT: 8001 + PROXY_AUTH_ADD: "false" + + app: + # Π² настоящСС врСмя Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±Π΅Π· Ρ€ΡƒΡ‚Π° + #user: "1000:1000" + image: kimai/kimai2:apache-2.56.0@sha256:16204b18bb3dad54d249027f5bdf6b5a70d7e60ddac7c9f6b34e9f29dbdef2b9 + volumes: + - ${APP_DATA_DIR}/data/app:/opt/kimai/var/data + - ${APP_DATA_DIR}/data/app/plugins:/opt/kimai/var/plugins + environment: + ADMINMAIL: dfwebos@dfwebos.local + # здСсь нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ $APP_PASSWORD, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ максимально допустимая Π΄Π»ΠΈΠ½Π° составляСт 60 символов. + ADMINPASS: changeme + DATABASE_URL: "mysql://kimaiuser:${APP_PASSWORD}@kimai_db_1/kimai?charset=utf8mb4&serverVersion=8.3.0" + restart: on-failure + depends_on: + - db + + db: + user: "1000:1000" + image: mariadb:11.4.5@sha256:5dfb3093333fa0ea53194ddef0a2bfa21d3b1e1353bd228b22610cd6fc0c04da + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql + environment: + MYSQL_DATABASE: kimai + MYSQL_USER: kimaiuser + MYSQL_PASSWORD: $APP_PASSWORD + MYSQL_ROOT_PASSWORD: $APP_PASSWORD + restart: on-failure + healthcheck: + test: mysqladmin -p$$MYSQL_ROOT_PASSWORD ping -h localhost + interval: 20s + start_period: 10s + timeout: 10s + retries: 3 diff --git a/kitchenowl/data/kitchenowl_db/.gitkeep b/kitchenowl/data/kitchenowl_db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/kitchenowl/data/kitchenowl_db/.gitkeep @@ -0,0 +1 @@ + diff --git a/kitchenowl/data/kitchenowl_files/.gitkeep b/kitchenowl/data/kitchenowl_files/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/kitchenowl/data/kitchenowl_files/.gitkeep @@ -0,0 +1 @@ + diff --git a/kitchenowl/dfwebos-app.yml b/kitchenowl/dfwebos-app.yml new file mode 100644 index 0000000..f57b397 --- /dev/null +++ b/kitchenowl/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: kitchenowl +name: KitchenOwl +tagline: Бписок ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² +category: files +version: "0.7.6" +port: 8474 +description: >- + πŸ‘¨β€πŸ³ KitchenOwl β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для упрощСния управлСния домашним хозяйством, особСнно ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ касаСтся ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ², планирования Π΅Π΄Ρ‹ ΠΈ совмСстных расходов. KitchenOwl, созданный с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ удобства использования, позволяСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π»ΠΈΡ†Π°ΠΌ, сСмьям ΠΈ ΠΎΠ±Ρ‰ΠΈΠΌ домохозяйствам совмСстно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, связанными с ΠΊΡƒΡ…Π½Π΅ΠΉ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСгантного ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятного интСрфСйса, доступного Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ динамичСскиС списки ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ Π² список, KitchenOwl автоматичСски классифицируСт ΠΈΡ… ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ прСдлоТСния. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивными ΠΈ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ забывания Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ. Π’ΠΎΠ²Π°Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… приобрСтСния, ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ вСсти нСсколько списков для удовлСтворСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… потрСбностСй ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² ΠΈΠ»ΠΈ домашнСго хозяйства. + + + Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ KitchenOwl являСтся функция управлСния Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°ΠΌΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ свои Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… с популярных Π²Π΅Π±-сайтов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ встроСнный Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ². Π Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ хранятся Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΡƒΠ»ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅, ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Ρ‚Π΅Π³Π°ΠΌ, ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΈΠ»ΠΈ катСгориям. ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΡ Π΅Π΄Ρƒ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ΄Π½ΠΈΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Ρ‹ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π° Π² свой список ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ, упрощая процСсс приготовлСния. + + + ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ питания Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ ΠΏΠΈΡ‰ΠΈ Π½Π° блиТайшиС Π΄Π½ΠΈ ΠΈΠ»ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ. Π­Ρ‚Π° функция Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π΄ΠΈΠ΅Ρ‚Ρƒ, Π½ΠΎ ΠΈ сокращаСт ΠΏΠΈΡ‰Π΅Π²Ρ‹Π΅ ΠΎΡ‚Ρ…ΠΎΠ΄Ρ‹, поощряя использованиС ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ². KitchenOwl Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ Π΄Π°Π²Π½ΠΎ Π½Π΅ использовали, возвращая Π·Π°Π±Ρ‹Ρ‚Ρ‹Π΅ Ρ„Π°Π²ΠΎΡ€ΠΈΡ‚Ρ‹ Π² Ρ€ΠΎΡ‚Π°Ρ†ΠΈΡŽ. + + + Для ситуаций совмСстного проТивания KitchenOwl Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ возмоТности отслСТивания расходов. Π§Π»Π΅Π½Ρ‹ сСмьи ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ расходы, связанныС с ΠΏΠΎΠΊΡƒΠΏΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ расходами, Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ справСдливо Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ эти расходы ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ трСния, часто связанныС с ΠΎΠ±Ρ‰ΠΈΠΌΠΈ финансами, ΠΈ обСспСчиваСт ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ домохозяйства. + + + KitchenOwl Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ разрабатываСтся ΠΈ поддСрТиваСтся сообщСством участников, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π΄Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌΡƒ доступу ΠΈ ΠΎΡ‚Π·Ρ‹Π²Π°ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅Ρ‚ ΠΊ ΡƒΡ‡Π°ΡΡ‚ΠΈΡŽ ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², прСдлагая ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. KitchenOwl благодаря ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠΌΡƒ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прСдставляСт собой комплСксноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для соврСмСнного совмСстного управлСния ΠΊΡƒΡ…Π½Π΅ΠΉ. +developer: Tom Bursch +website: https://kitchenowl.org/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2638 +repo: https://github.com/TomBursch/kitchenowl +support: https://github.com/TomBursch/kitchenowl/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg + - 6.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ нСсколько ошибок PostgreSQL со списком ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΡƒΡ†Π΅Π½ΠΊΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску: https://github.com/TomBursch/kitchenowl/releases/tag/v0.7.6. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/kitchenowl/docker-compose.yml b/kitchenowl/docker-compose.yml new file mode 100644 index 0000000..20b94f2 --- /dev/null +++ b/kitchenowl/docker-compose.yml @@ -0,0 +1,41 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: kitchenowl_web_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + + web: + image: tombursch/kitchenowl:v0.7.6@sha256:a9db258965941c4183acb87c68bb7704e5af569d54a66fde8f3ed51801bb9949 + user: "1000:1000" + restart: on-failure + environment: + JWT_SECRET_KEY: ${APP_PASSWORD} + DB_DRIVER: postgresql + DB_HOST: kitchenowl_db_1 + DB_NAME: kitchenowl + DB_USER: kitchenowl + DB_PASSWORD: password + volumes: + - ${APP_DATA_DIR}/data/kitchenowl_files:/data + depends_on: + - db + + db: + image: postgres:17.4@sha256:fe3f571d128e8efadcd8b2fde0e2b73ebab6dbec33f6bfe69d98c682c7d8f7bd + user: "1000:1000" + restart: on-failure + environment: + POSTGRES_DB: kitchenowl + POSTGRES_USER: kitchenowl + POSTGRES_PASSWORD: password + volumes: + - ${APP_DATA_DIR}/data/kitchenowl_db:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] + interval: 30s + timeout: 60s + retries: 5 + start_period: 80s diff --git a/kiwix/data/.gitkeep b/kiwix/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/kiwix/dfwebos-app.yml b/kiwix/dfwebos-app.yml new file mode 100644 index 0000000..891d73a --- /dev/null +++ b/kiwix/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: kiwix +name: Kiwix +category: files +version: "3.8.2" +port: 8898 +tagline: Доступ ΠΊ знаниям Π² любоС врСмя ΠΈ Π² любом мСстС Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ +description: >- + Π’Π°Ρˆ доступ ΠΊ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΌΡƒ количСству Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Доступ ΠΊ знаниям Π² любоС врСмя ΠΈ Π² любом мСстС Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. + + + Доступ ΠΊ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ наши прилоТСния для чтСния Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π½Π° Ρ…ΠΎΠ΄Ρƒ ΠΈΠ»ΠΈ Hotspot Π² любом мСстС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ своим Π΄ΠΎΠΌΠΎΠΌ. ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΡ‚Π΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π°ΠΉΠΎΠ½ΠΎΠ², Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½Ρ‹Ρ… ситуаций ΠΈΠ»ΠΈ нСзависимого доступа ΠΊ знаниям. + + + ΠžΡ„Π»Π°ΠΉΠ½-доступ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ Kiwix ΠΌΡ‹ считаСм, Ρ‡Ρ‚ΠΎ доступ ΠΊ знаниям являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ стрСмимся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ бСсплатный ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ доступ для всСх ΠΈ Π²Π΅Π·Π΄Π΅. + + + - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅: Π·Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Π²Π΅Π±-сайты ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ ΠΊ Π½ΠΈΠΌ доступ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. + - Доступно Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… устройствах: Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° всСх ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ… ΠΈ Π΄Π°ΠΆΠ΅ сСрвСрах. + - Никакой Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ сбора Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…: наш ΠΊΠΎΠ΄ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚. + + + πŸ› οΈ ИНБВРУКЦИЯ ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + - ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ZIM Π² ΠΏΠ°ΠΏΠΊΡƒ Β«Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠΈΒ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния Β«Π€Π°ΠΉΠ»Ρ‹Β» ΠΈ пСрСзапуститС Kiwix. + - ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°ΠΉΡ‚Π΅ слуТбу Kiwix ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ добавляСтС Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ZIM (автоматичСского обнаруТСния ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚) +developer: Kiwix +website: https://kiwix.org +repo: https://github.com/kiwix/kiwix-tools +support: https://kiwix.org/en/contact-us/ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: "" +dependencies: [] +permissions: + - STORAGE_DOWNLOADS +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: phelipebf +submission: "https://github.com/getumbrel/dfwebos-apps/pull/4351" diff --git a/kiwix/docker-compose.yml b/kiwix/docker-compose.yml new file mode 100644 index 0000000..c9f9b34 --- /dev/null +++ b/kiwix/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: kiwix_web_1 + APP_PORT: 8080 + + web: + image: ghcr.io/kiwix/kiwix-serve:3.8.2@sha256:0b6541355b250c6b45d2d7725e88f22f1d6a0f45ad9480d9c0bd4bc58436a12f + user: "1000:1000" + restart: on-failure + volumes: + - ${DFWEBOS_ROOT}/data/storage/downloads:/data + command: > + /data/*.zim -k diff --git a/kokoro/dfwebos-app.yml b/kokoro/dfwebos-app.yml new file mode 100644 index 0000000..36c632a --- /dev/null +++ b/kokoro/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: kokoro +name: Kokoro +tagline: Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅, высококачСствСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ TTS +category: ai +version: "0.2.4-master" +port: 8877 +description: >- + Kokoro β€” это ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Π°Ρ модСль прСобразования тСкста Π² Ρ€Π΅Ρ‡ΡŒ (TTS), которая обСспСчиваСт Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰Π΅Π΅ качСство Ρ€Π΅Ρ‡ΠΈ всСго лишь с 82 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ конкурСнтоспособной с Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ рСсурсоСмкими модСлями. НСсмотря Π½Π° свою ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Kokoro эффСктивно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ тСкст Π² Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ, СстСствСнно Π·Π²ΡƒΡ‡Π°Ρ‰ΡƒΡŽ Ρ€Π΅Ρ‡ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… синтСз Ρ€Π΅Ρ‡ΠΈ. МодСль Π±Ρ‹Π»Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° для обСспСчСния высокой эффСктивности ΠΈ быстрой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ подходящСй ΠΊΠ°ΠΊ для срСд с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ рСсурсами, Ρ‚Π°ΠΊ ΠΈ для производствСнных систСм. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ модСлями TTS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов, Kokoro ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½ΡƒΡŽ ΠΈ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° для качСства Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Ρ‡ΠΈ. + + + Π•Π³ΠΎ лСгкая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Kokoro ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Π½Π° ΠΌΠ΅Π½Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Ρ… устройствах, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ прилоТСниями. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Kokoro Π² самых Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ, ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ систСмы ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ доступности. МодСль Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ обСспСчиваСт Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Ρ‡ΠΈΠ²ΡƒΡŽ Ρ€Π΅Ρ‡ΡŒ, Π½ΠΎ ΠΈ привносит ΡΠΌΠΎΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π½ΡŽΠ°Π½ΡΡ‹, ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ взаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Благодаря своСй гибкости ΠΈ возмоТности примСнСния Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сцСнариях Kokoro являСтся Ρ†Π΅Π½Π½Ρ‹ΠΌ рСсурсом для всСх, ΠΊΡ‚ΠΎ ΠΈΡ‰Π΅Ρ‚ эффСктивноС, Π»Π΅Π³ΠΊΠΎΠ΅ ΠΈ ΠΌΠΎΡ‰Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для синтСза Ρ€Π΅Ρ‡ΠΈ Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. + + + ⚠️ Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… Π½Π° Π±Π°Π·Π΅ Chromium (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Chrome, Edge, Brave) ΠΈ доступно ΠΏΠΎ адрСсу Β«dfwebos.local:8877/web/Β». ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ прилоТСния составляСт ΠΎΠΊΠΎΠ»ΠΎ 4 Π“Π‘, поэтому процСсс Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ нСсколько ΠΌΠΈΠ½ΡƒΡ‚. + + + βš™οΈ API доступСн ΠΏΠΎ адрСсу Β«dfwebos.local:8877Β», Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ API ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу Β«dfwebos.local:8877/docsΒ». +developer: Hexgrad +website: https://huggingface.co/hexgrad/Kokoro-82M +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2498 +repo: https://github.com/remsky/Kokoro-FastAPI +support: https://github.com/remsky/Kokoro-FastAPI/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„Π΅Π½ΠΎΠΌΠ΅Π½Ρ‹ ΠΈ сдСланы ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌΠΈ. + - ОбновлСн PyTorch для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ графичСских процСссоров сСрии RTX 50. + - УмСньшСн Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния Docker. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ настраиваСмый ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ вСдСния ΠΆΡƒΡ€Π½Π°Π»Π° с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ сборки. + - Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΎ врСмя сборки Π·Π° счСт распараллСливания. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/remsky/Kokoro-FastAPI/releases/tag/v0.2.4-master. +dependencies: [] +path: "/web" +defaultUsername: "" +defaultPassword: "" diff --git a/kokoro/docker-compose.yml b/kokoro/docker-compose.yml new file mode 100644 index 0000000..28df1c9 --- /dev/null +++ b/kokoro/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: kokoro_web_1 + APP_PORT: 8880 + + web: + image: ghcr.io/remsky/kokoro-fastapi-cpu:v0.2.4-master@sha256:03a5201c0327f1f1a1619ebbd9722e3b5477b0cccc588aaddb74dd89aad67f15 + user: "1000:1000" + restart: on-failure diff --git a/kollider/data/cache/images/.gitkeep b/kollider/data/cache/images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/kollider/data/logs/.gitkeep b/kollider/data/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/kollider/dfwebos-app.yml b/kollider/dfwebos-app.yml new file mode 100644 index 0000000..25bae74 --- /dev/null +++ b/kollider/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1.2 +id: kollider +category: bitcoin +name: Kollider +version: "1.0.7" +tagline: "Lightning – быстрая торговля Π΄Π΅Ρ€ΠΈΠ²Π°Ρ‚ΠΈΠ²Π°ΠΌΠΈ" +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Kollider большС Π½Π΅ поддСрТиваСтся ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. это ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: https://x.com/kollider_trade/status/1720428682072772708. + + + Kollider позволяСт ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π°Ρ‚ΡŒ бСссрочными ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°ΠΌΠΈ с Π½ΠΈΠ·ΠΊΠΈΠΌΠΈ комиссиями. + ΠΈ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎ 100 Ρ€Π°Π·. + + + НСт нСобходимости ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹ΠΉ счСт, каТдая сдСлка осущСствляСтся нСпосрСдствСнно ΠΈΠ· вашСго собствСнного кошСлька ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ· вашСго собствСнного ΡƒΠ·Π»Π° Lightning Π·Π° миллисСкунды. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Kollider DFWebOS позволяСт Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Ρ‚ΡŒ Lightning, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ряду ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Bitcoin, нСпосрСдствСнно с вашСго ΡƒΠ·Π»Π° DFWebOS. + + + Π‘ΠΊΠΎΡ€ΠΎ появятся Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ! +developer: Kollider +website: https://kollider.xyz +dependencies: + - lightning +repo: https://github.com/kolliderhq/kollider-lite-app +support: https://t.me/kolliderhq +port: 4243 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: true +releaseNotes: > + β€” ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Python pyzmq, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сбой Raspberry Pi. +torOnly: false +submitter: Kollider +submission: https://github.com/getumbrel/umbrel/pull/1221 +disabled: true diff --git a/kollider/docker-compose.yml b/kollider/docker-compose.yml new file mode 100644 index 0000000..34dccbd --- /dev/null +++ b/kollider/docker-compose.yml @@ -0,0 +1,44 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: kollider_web_1 + APP_PORT: 3000 + + backend: + image: kolliderhq/kollider-lite-backend:v1.0.7@sha256:b50c548f32022cc32e3b4a10e8c686414f4b31311771ae14c4fbaea40feedb44 + init: true + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + - ${APP_DATA_DIR}/data/logs:/app/logs + environment: + LND_IP: $APP_LIGHTNING_NODE_IP + LND_ZMQ_SUB_ADDRESS: "tcp://kollider_ws_1:5556" + + ws: + image: kolliderhq/kollider-ws-client:v1.0.7@sha256:8a68f15a8f15ce4957629f02346d3202e685781f2af026ab2c1c028179b42830 + init: true + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + ports: + - "4244:8080" + environment: + APP_PASSWORD: $APP_PASSWORD + KOLLIDER_ZMQ_PUB_ADDRESS: "tcp://*:5556" + KOLLIDER_ZMQ_SUB_ADDRESS: "tcp://kollider_backend_1:5557" + KOLLIDER_ZMQ_HEDGER_ADDRESS: "tcp://kollider_backend_1:5558" + KOLLIDER_ZMQ_HEDGER_SUB_ADDRESS: "tcp://kollider_backend_1:5559" + + web: + image: kolliderhq/kollider-lite-app:v1.0.7@sha256:e459ae26485c52fb2967d7e9c2afeca19b51845c8f4739d02feda9e01db3037a + init: true + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/cache/images:/app/.next/cache/images diff --git a/kollider/exports.sh b/kollider/exports.sh new file mode 100644 index 0000000..a79d41b --- /dev/null +++ b/kollider/exports.sh @@ -0,0 +1 @@ +export APP_KOLLIDER_TOR_HS_EXTRA_PORTS="4244:kollider_ws_1:8080" \ No newline at end of file diff --git a/komodo/data/core/.gitkeep b/komodo/data/core/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/komodo/data/core/.gitkeep @@ -0,0 +1 @@ + diff --git a/komodo/data/docker/.gitkeep b/komodo/data/docker/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/komodo/data/docker/.gitkeep @@ -0,0 +1 @@ + diff --git a/komodo/data/ferretdb/.gitkeep b/komodo/data/ferretdb/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/komodo/data/ferretdb/.gitkeep @@ -0,0 +1 @@ + diff --git a/komodo/data/keys/.gitkeep b/komodo/data/keys/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/komodo/data/periphery/.gitkeep b/komodo/data/periphery/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/komodo/data/periphery/.gitkeep @@ -0,0 +1 @@ + diff --git a/komodo/data/postgres/.gitkeep b/komodo/data/postgres/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/komodo/data/postgres/.gitkeep @@ -0,0 +1 @@ + diff --git a/komodo/dfwebos-app.yml b/komodo/dfwebos-app.yml new file mode 100644 index 0000000..92fb608 --- /dev/null +++ b/komodo/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1.1 +id: komodo +name: Komodo +tagline: Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ для создания ΠΈ развСртывания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. +category: developer +version: "2.1.2" +port: 9120 +description: >- + 🦎 Komodo β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ориСнтированная Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ управлСния сСрвСрами, сборками ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, развСртываниями ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΌΠΈ срСдами. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ критичСски Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ систСмы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ЦП, ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти ΠΈ использованиС дисков Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСрвСрах, обСспСчивая ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Komodo являСтся Π΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Docker ΠΈ прилоТСниями Docker Compose, прСдоставляя Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΡ… статусС, ΠΆΡƒΡ€Π½Π°Π»Π°Ρ… ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Π΅Π·ΠΎΡ‚ΠΊΠ°Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ устранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ ΠΈ эксплуатационный Π½Π°Π΄Π·ΠΎΡ€, упрощая ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ обслуТиваниС ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ своих Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ. + + + ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹ΠΉ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ядро-пСрифСрия, Komodo состоит ΠΈΠ· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° управлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ свои дСйствия с Π»Π΅Π³ΠΊΠΈΠΌΠΈ Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… хостах. Π­Ρ‚Π° структура обСспСчиваСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ связь, позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ автоматичСскиС сборки ΠΈ развСртывания, Π° Ρ‚Π°ΠΊΠΆΠ΅ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ сСансам ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π² своСй инфраструктурС. НадСТноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ сСкрСтами срСды ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ обСспСчиваСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΠΈ Π³ΠΈΠ±ΠΊΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, поддСрТивая Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΡΠ΅ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡŽ. + + + Komodo прСдоставляСт ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Π΅ API-интСрфСйсы REST ΠΈ WebSocket, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с внСшними инструмСнтами ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ процСссы управлСния инфраструктурой. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ доступа Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ OAuth, обСспСчивая бСзопасноС сотрудничСство Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄. Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ ΠΌΠΎΡ‰Π½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Portainer, Komodo ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ возмоТности ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, развСртывания ΠΈ управлСния Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, помогая организациям ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ‚Ρ€ΡƒΠ΄ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° своими распрСдСлСнными срСдами. +developer: mogh.tech +website: https://komo.do/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3093 +repo: https://github.com/moghtech/komodo +support: https://github.com/moghtech/komodo/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ слуТб пСрСопрСдСлСния, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠΈΡ… ΠΊ сбою интСрфСйс ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ создании. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/moghtech/komodo/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/komodo/docker-compose.yml b/komodo/docker-compose.yml new file mode 100644 index 0000000..baddfe7 --- /dev/null +++ b/komodo/docker-compose.yml @@ -0,0 +1,96 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: komodo_core_1 + APP_PORT: 9120 + + docker: + image: docker:28.3.0-dind@sha256:d33eb93fe02683e984e6f8a93c0b3d85bb74f56ec83922bc39fb34ba23ab42bc + privileged: true + network_mode: host + stop_grace_period: 1m + restart: on-failure + environment: + DOCKER_ENSURE_BRIDGE: "dind0:10.32.0.1/16" + entrypoint: /entrypoint.sh + command: > + dockerd + --bridge dind0 + --data-root /data/data + --exec-root /data/exec + --host unix:///data/docker.sock + --pidfile /data/docker.pid + volumes: + - ${APP_DATA_DIR}/entrypoint.sh:/entrypoint.sh + - ${APP_DATA_DIR}/data/docker:/data + + postgres: + image: ghcr.io/ferretdb/postgres-documentdb:17-0.104.0@sha256:1d709fc03dcb82faa2e3aa02c0f80ea10e483b38aff08a05da36a6faa2098608 + user: "1000:1000" + labels: + komodo.skip: + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + environment: + POSTGRES_USER: admin + POSTGRES_PASSWORD: admin + POSTGRES_DB: postgres + + ferretdb: + image: ghcr.io/ferretdb/ferretdb:2.3.1@sha256:1170bd36c39378614edd3f1d2b92f0c5a9b30e482a79ea0c3fc0fe11baba3afa + user: "1000:1000" + labels: + komodo.skip: + restart: on-failure + depends_on: + - postgres + volumes: + - ${APP_DATA_DIR}/data/ferretdb:/state + environment: + FERRETDB_POSTGRESQL_URL: postgres://admin:admin@komodo_postgres_1:5432/postgres + + core: + image: ghcr.io/moghtech/komodo-core:2.1.2@sha256:8a7dbba232e4e49797bb412be5f78207c89fcf22cc2727b38631ae30f7518a4c + user: "1000:1000" + init: true + labels: + komodo.skip: + restart: on-failure + depends_on: + - ferretdb + environment: + KOMODO_DATABASE_ADDRESS: komodo_ferretdb_1:27017 + KOMODO_DATABASE_USERNAME: admin + KOMODO_DATABASE_PASSWORD: admin + KOMODO_PASSKEY: ${APP_PASSWORD} + KOMODO_FIRST_SERVER: https://komodo_periphery_1:8120 + KOMODO_JWT_SECRET: ${APP_SEED} + env_file: + - ${APP_DATA_DIR}/settings.env + volumes: + - ${APP_DATA_DIR}/data/core:/backups + - ${APP_DATA_DIR}/data/keys:/config/keys + + periphery: + image: ghcr.io/moghtech/komodo-periphery:2.1.2@sha256:8ac9f2ef9c1461b95c862d445da00253005e7094d1e30f5b7b04b8d60ca7a3d6 + labels: + komodo.skip: + restart: on-failure + environment: + COMPOSE_KOMODO_IMAGE_TAG: latest + KOMODO_PASSKEY: ${APP_PASSWORD} + TZ: Europe/Berlin + PERIPHERY_ROOT_DIRECTORY: /etc/komodo + PERIPHERY_PASSKEYS: ${APP_PASSWORD} + PERIPHERY_DISABLE_TERMINALS: "false" + PERIPHERY_SSL_ENABLED: "true" + PERIPHERY_INCLUDE_DISK_MOUNTS: /etc/hostname + PERIPHERY_LOGGING_PRETTY: "false" + PERIPHERY_PRETTY_STARTUP_CONFIG: "false" + volumes: + - ${APP_DATA_DIR}/data/docker:/var/run + - /proc:/proc + - ${APP_DATA_DIR}/data/periphery:/etc/komodo diff --git a/komodo/entrypoint.sh b/komodo/entrypoint.sh new file mode 100755 index 0000000..71d910f --- /dev/null +++ b/komodo/entrypoint.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +# Π­Ρ‚ΠΎΡ‚ Ρ…Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, Ссли https://github.com/docker-library/docker/pull/444 Π±ΡƒΠ΄Π΅Ρ‚ объСдинСн. + +# Π£Π΄Π°Π»ΠΈΡ‚Π΅ pid-Ρ„Π°ΠΉΠ» docker, Ссли ΠΎΠ½ сущСствуСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ запуск Docker послС Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹. +pidfile="/var/run/docker.pid" +if [[ -f "${pidfile}" ]] +then + rm -f "${pidfile}" +fi + +# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ nftables Π² качСствС бэкэнда для iptables +for command in iptables iptables-restore iptables-restore-translate iptables-save iptables-translate +do + ln -sf /sbin/xtables-nft-multi /sbin/$command +done + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ мост с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ сущСствуСт. +ensure_bridge_exists() { + local name="${1}" + local ip_range="${2}" + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ мост ΡƒΠΆΠ΅ + if ip link show "${name}" &>/dev/null + then + echo "Bridge '${name}' already exists. Skipping creation." + ip addr show "${name}" + return + fi + + echo "Bridge '${name}' does not exist. Creating..." + ip link add "${name}" type bridge + ip addr add "${ip_range}" dev "${name}" + ip link set "${name}" up + + echo "Bridge '${name}' is now up with IP range '${ip_range}'." + ip addr show "${name}" +} + +if [[ "${DOCKER_ENSURE_BRIDGE}" != "" ]] +then + bridge="${DOCKER_ENSURE_BRIDGE%%:*}" + ip_range="${DOCKER_ENSURE_BRIDGE#*:}" + ensure_bridge_exists "${bridge}" "${ip_range}" +fi + +exec dockerd-entrypoint.sh $@ diff --git a/komodo/hooks/pre-start b/komodo/hooks/pre-start new file mode 100755 index 0000000..73d9f23 --- /dev/null +++ b/komodo/hooks/pre-start @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ сцСнарий провСряСт Ρ„Π°ΠΉΠ» срСды Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ замСняСт ΠΈΡ… сгСнСрированными ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈΠ»ΠΈ систСмными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +KEYS_DIR="$APP_DIR/data/keys" +ENV_FILE="$APP_DIR/settings.env" + +mkdir -p "$KEYS_DIR" +chown -R 1000:1000 "$KEYS_DIR" + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ» +if [ ! -f "$ENV_FILE" ]; then + echo "Error: Environment file not found at $ENV_FILE" + exit 1 +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ KOMODO_HOST Π½Π° "changeme". +if grep -Eq '^KOMODO_HOST= *changeme$' "$ENV_FILE"; then + echo "Placeholder value for KOMODO_HOST detected. Adding proper hostname..." + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π½Π΅ΠΌ хоста + sed -i -E 's|^KOMODO_HOST= *changeme$|KOMODO_HOST="'"http://${DEVICE_DOMAIN_NAME}:9120"'"|' "$ENV_FILE" + + echo "Updated KOMODO_HOST in $ENV_FILE" +else + echo "KOMODO_HOST is already set. No changes made." +fi + +exit 0 diff --git a/komodo/settings.env b/komodo/settings.env new file mode 100644 index 0000000..bfbdd42 --- /dev/null +++ b/komodo/settings.env @@ -0,0 +1,20 @@ +TZ="Europe/Berlin" +KOMODO_HOST=changeme +KOMODO_TITLE=Komodo +KOMODO_LOCAL_AUTH="true" +KOMODO_DISABLE_USER_REGISTRATION="false" +KOMODO_ENABLE_NEW_USERS="false" +KOMODO_DISABLE_NON_ADMIN_CREATE="false" +KOMODO_TRANSPARENT_MODE="false" +KOMODO_LOGGING_PRETTY="false" +KOMODO_PRETTY_STARTUP_CONFIG="false" +KOMODO_OIDC_ENABLED="false" +KOMODO_GITHUB_OAUTH_ENABLED="false" +KOMODO_GOOGLE_OAUTH_ENABLED="false" +KOMODO_DISABLE_CONFIRM_DIALOG="false" +KOMODO_MONITORING_INTERVAL="15-sec" +KOMODO_RESOURCE_POLL_INTERVAL="1-hr" +KOMODO_WEBHOOK_SECRET=W3bh00kS3cret!2025 +KOMODO_JWT_TTL="1-day" +#KOMODO_AWS_ACCESS_KEY_ID= +#KOMODO_AWS_SECRET_ACCESS_KEY= diff --git a/krystal-bull/data/log/.gitkeep b/krystal-bull/data/log/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/krystal-bull/data/oracleserver/.gitkeep b/krystal-bull/data/oracleserver/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/krystal-bull/dfwebos-app.yml b/krystal-bull/dfwebos-app.yml new file mode 100644 index 0000000..2eb1962 --- /dev/null +++ b/krystal-bull/dfwebos-app.yml @@ -0,0 +1,38 @@ +manifestVersion: 1 +id: krystal-bull +category: bitcoin +name: Krystal Bull +version: "1.9.7" +tagline: Π‘Ρ‚Π°Π½ΡŒΡ‚Π΅ ΠΎΡ€Π°ΠΊΡƒΠ»ΠΎΠΌ ΠΈ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ставки Bitcoin +description: >- + Krystal Bull позволяСт Π²Π°ΠΌ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ€Π°ΠΊΡƒΠ»ΠΎΠΌ Bitcoin. ΠžΡ€Π°ΠΊΡƒΠ» + позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° (финансовыС Ρ€Ρ‹Π½ΠΊΠΈ, спортивныС события, + Π²Ρ‹Π±ΠΎΡ€Ρ‹ ΠΈ Ρ‚. Π΄.), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для создания ΠΈ расчСта ставок Bitcoin. + + + Oracle являСтся ваТнСйшим ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Discreet Log Contracts (DLC). Π‘Π΅Π· Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ довСрия ΠΎΡ€Π°ΠΊΡƒΠ»Π° Π²Ρ‹ Π½Π΅ смоТСтС ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ставку Π½Π° Bitcoin с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DLC. НадСТныС ΠΎΡ€Π°ΠΊΡƒΠ»Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Bitcoin DeFi. + + + Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΡ€Π°ΠΊΡƒΠ»ΠΎΠ², посСтитС oracle.suredbits.com. + + + Π’ΠΠ˜ΠœΠΠΠ˜Π•: Π­Ρ‚Π° вСрсия Krystal Bull являСтся Ρ€Π°Π½Π½Π΅ΠΉ Π°Π»ΡŒΡ„Π°-вСрсиСй для тСстирования. Π­Ρ‚ΠΎ нСбСзопасно, поТалуйста, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ для Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ³ΠΎ. +releaseNotes: >- + ОбновлСниС Π΄ΠΎ вСрсии 1.9.7 bitcoin-s + + Π’ этом выпускС прСдусмотрСн Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ порядок ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Ρ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡΡ…. +developer: SuredBits +website: https://suredbits.com/ +dependencies: [] +repo: https://github.com/bitcoin-s/krystal-bull +support: https://t.me/suredbits +port: 3010 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: SuredBits +submission: https://github.com/getumbrel/umbrel/pull/984 diff --git a/krystal-bull/docker-compose.yml b/krystal-bull/docker-compose.yml new file mode 100644 index 0000000..b1028d2 --- /dev/null +++ b/krystal-bull/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: krystal-bull_web_1 + APP_PORT: 3001 + + web: + image: bitcoinscala/oracle-server-ui:1.9.7@sha256:883df7037be517b4dc8155a1bfcd4101b7e47f7825367f53f3ac2bf15ffdc15e + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/oracleserver:/bitcoin-s + - ${APP_DATA_DIR}/data/log:/log + environment: + LOG_PATH: "/log/" + BITCOIN_S_HOME: "/bitcoin-s/" + ORACLE_SERVER_API_URL: "http://krystal-bull_oracleserver_1:9998/" + TOR_PROXY: socks5://${TOR_PROXY_IP}:${TOR_PROXY_PORT} + DEFAULT_UI_PASSWORD: "none" + BITCOIN_S_ORACLE_RPC_PASSWORD: $APP_PASSWORD + depends_on: + - oracleserver + + oracleserver: + image: bitcoinscala/bitcoin-s-oracle-server:1.9.7@sha256:a7f5dd31bc5afa2a075563433862851d5bea8f894c1634a56426c34648001308 + entrypoint: ["/opt/docker/bin/bitcoin-s-oracle-server", "--datadir", "/bitcoin-s", "--conf", "/opt/docker/docker-application.conf"] + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/oracleserver:/bitcoin-s + environment: + BITCOIN_S_KEYMANAGER_ENTROPY: $APP_SEED + BITCOIN_S_ORACLE_RPC_PASSWORD: $APP_PASSWORD + DISABLE_JLINK: "1" + JAVA_OPTS: "-Xmx256m" diff --git a/libre-relay/data/app/.gitkeep b/libre-relay/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/libre-relay/data/bitcoin/.gitkeep b/libre-relay/data/bitcoin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/libre-relay/data/i2pd/.gitkeep b/libre-relay/data/i2pd/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/libre-relay/dfwebos-app.yml b/libre-relay/dfwebos-app.yml new file mode 100644 index 0000000..46ff802 --- /dev/null +++ b/libre-relay/dfwebos-app.yml @@ -0,0 +1,89 @@ +manifestVersion: 1.1 +id: libre-relay +implements: + - bitcoin +category: bitcoin +name: Libre Relay +version: "28.0-patch.1" +tagline: ЗапуститС свой Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π½Π° Π±Π°Π·Π΅ Libre Relay +description: >- + > Β«[Bitcoin] ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ, Π½ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒΒ». - Π‘Π°Ρ‚ΠΎΡˆΠΈ Накамото + + + Π₯отя ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΌΠ΅ΠΌΠΏΡƒΠ»Π° Bitcoin Core с Π³ΠΎΠ΄Π°ΠΌΠΈ Π±Ρ‹Π»Π° ослаблСна, всС Π΅Ρ‰Π΅ сохраняСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ°Ρ‚Π΅Ρ€Π½Π°Π»ΠΈΠ·ΠΌ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Bitcoin Core. НапримСр, Bitcoin Core ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ бСссмыслСнноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° OP_Return, хотя это всСго лишь ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… способов ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² транзакциях Bitcoin; Libre Relay этого Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° Core постоянно ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ с Ρ†Π΅Π»ΡŒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ большС Ρ‚ΠΈΠΏΠΎΠ² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·-Π·Π° Ρ†Π΅Π½Π·ΡƒΡ€Ρ‹ «спама». + + + Libre Relay β€” это Ρ„ΠΎΡ€ΠΊ Bitcoin Core, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + - УдаляСт ΠΏΠ°Ρ‚Π΅Ρ€Π½Π°Π»ΠΈΡΡ‚ΡΠΊΡƒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. + - ΠžΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ Libre Relay, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Core, Π² любом случаС ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠ°ΠΊ F2Pool ΠΈ MARA. + + Π₯отя это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ для людСй, Ρ‡ΡŒΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ Core, это Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ для самого Core: имСя Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ, ΠΊΠΎΠ³Π΄Π° люди ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Core Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ большС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Core всСгда ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π½Π·ΡƒΡ€Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. + + + НаконСц, Libre Relay Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Β«Replace-By-Fee-RateΒ», Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для закрСплСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ простым ΠΈ эффСктивным способом смягчаСт Π·Π°ΠΊΡ€Π΅ΠΏΠ»ΡΡŽΡ‰ΠΈΠ΅ Π°Ρ‚Π°ΠΊΠΈ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ L2. +developer: Peter Todd +website: https://dfwebos.com +dependencies: [] +repo: https://github.com/petertodd/bitcoin +support: https://github.com/petertodd/bitcoin/issues +port: 2108 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultPassword: "" +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ добавляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π² DFWebOS 1.5. +widgets: + - id: "stats" + type: "four-stats" + refresh: "5s" + endpoint: "server:3005/v1/bitcoind/widgets/stats" + link: "" + example: + type: "four-stats" + link: "" + items: + - title: "Connections" + text: "11" + subtext: "peers" + - title: "Mempool" + text: "257" + subtext: "MB" + - title: "Hashrate" + text: "590" + subtext: "EH/s" + - title: "Blockchain size" + text: "600" + subtext: "GB" + - id: "sync" + type: "text-with-progress" + refresh: "2s" + endpoint: "server:3005/v1/bitcoind/widgets/sync" + link: "" + example: + type: "text-with-progress" + link: "" + title: "Blockchain sync" + text: "83%" + progressLabel: "In progress" + progress: 0.83 +submitter: Peter Todd +submission: https://github.com/getumbrel/dfwebos-apps/pull/1815 +backupIgnore: + - data/bitcoin/blocks + - data/bitcoin/chainstate + - data/bitcoin/indexes + - data/bitcoin/testnet3/blocks + - data/bitcoin/testnet3/chainstate + - data/bitcoin/testnet3/indexes + - data/bitcoin/testnet4/blocks + - data/bitcoin/testnet4/chainstate + - data/bitcoin/testnet4/indexes + - data/bitcoin/signet/blocks + - data/bitcoin/signet/chainstate + - data/bitcoin/signet/indexes + - data/bitcoin/regtest/blocks + - data/bitcoin/regtest/chainstate + - data/bitcoin/regtest/indexes diff --git a/libre-relay/docker-compose.yml b/libre-relay/docker-compose.yml new file mode 100644 index 0000000..6f31d44 --- /dev/null +++ b/libre-relay/docker-compose.yml @@ -0,0 +1,79 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_LIBRE_RELAY_IP + APP_PORT: 3005 + + server: + image: ghcr.io/petertodd/umbrel-bitcoin-libre-relay:libre-relay-v28.0-2@sha256:3821e11276e595c5a7e61d4efda891564fd9559ac76a8303d0f707c4bc7c7b1d + depends_on: [bitcoind] + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/app:/data # volume to persist advanced settings json + - ${APP_LIBRE_RELAY_DATA_DIR}:/bitcoin/.bitcoin # volume to persist umbrel-bitcoin.conf and bitcoin.conf + environment: + PORT: "3005" + BITCOIN_HOST: "${APP_LIBRE_RELAY_NODE_IP}" + RPC_PORT: "${APP_LIBRE_RELAY_RPC_PORT}" + BITCOIN_RPC_PORT: "${APP_LIBRE_RELAY_RPC_PORT}" + RPC_USER: "${APP_LIBRE_RELAY_RPC_USER}" + BITCOIN_RPC_USER: "${APP_LIBRE_RELAY_RPC_USER}" + RPC_PASSWORD: "${APP_LIBRE_RELAY_RPC_PASS}" + BITCOIN_RPC_PASSWORD: "${APP_LIBRE_RELAY_RPC_PASS}" + BITCOIN_RPC_HIDDEN_SERVICE: "${APP_LIBRE_RELAY_RPC_HIDDEN_SERVICE}" + BITCOIN_P2P_HIDDEN_SERVICE: "${APP_LIBRE_RELAY_P2P_HIDDEN_SERVICE}" + BITCOIN_P2P_PORT: "${APP_LIBRE_RELAY_P2P_PORT}" + DEVICE_DOMAIN_NAME: "${DEVICE_DOMAIN_NAME}" + BITCOIN_DEFAULT_NETWORK: "${BITCOIN_DEFAULT_NETWORK:-mainnet}" + BITCOIN_INITIALIZE_WITH_CLEARNET_OVER_TOR: "${BITCOIN_INITIALIZE_WITH_CLEARNET_OVER_TOR:-unset}" + BITCOIND_IP: "${APP_LIBRE_RELAY_NODE_IP}" + TOR_PROXY_IP: "${APP_LIBRE_RELAY_TOR_PROXY_IP}" + TOR_PROXY_PORT: "9050" + TOR_PROXY_CONTROL_PORT: "9051" + TOR_PROXY_CONTROL_PASSWORD: "moneyprintergobrrr" + I2P_DAEMON_IP: "${APP_LIBRE_RELAY_I2P_DAEMON_IP}" + I2P_DAEMON_PORT: "7656" + networks: + default: + ipv4_address: $APP_LIBRE_RELAY_IP + + bitcoind: + image: ghcr.io/petertodd/bitcoin:libre-relay-v28.0-2@sha256:66432790260ed9e538e76dbdc17f66ce6cf0656c2a58c05868bba4138af0e6a8 + user: "1000:1000" + command: "${APP_LIBRE_RELAY_COMMAND}" + restart: unless-stopped + stop_grace_period: 15m30s + volumes: + - "${APP_LIBRE_RELAY_DATA_DIR}:/data/.bitcoin" + ports: + - "${APP_LIBRE_RELAY_P2P_PORT}:${APP_LIBRE_RELAY_P2P_PORT}" + - "${APP_LIBRE_RELAY_RPC_PORT}:${APP_LIBRE_RELAY_RPC_PORT}" + networks: + default: + ipv4_address: $APP_LIBRE_RELAY_NODE_IP + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" + networks: + default: + ipv4_address: "${APP_LIBRE_RELAY_TOR_PROXY_IP}" + + i2pd_daemon: + image: purplei2p/i2pd:release-2.44.0@sha256:d154a599793c393cf9c91f8549ba7ece0bb40e5728e1813aa6dd4c210aa606f6 + user: "root" + command: --sam.enabled=true --sam.address=0.0.0.0 --sam.port=7656 --loglevel=error + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/i2pd:/home/i2pd/data + networks: + default: + ipv4_address: "${APP_LIBRE_RELAY_I2P_DAEMON_IP}" diff --git a/libre-relay/exports.sh b/libre-relay/exports.sh new file mode 100644 index 0000000..43d9bd7 --- /dev/null +++ b/libre-relay/exports.sh @@ -0,0 +1,171 @@ +export APP_LIBRE_RELAY_IP="10.21.22.20" +export APP_LIBRE_RELAY_NODE_IP="10.21.21.20" +export APP_LIBRE_RELAY_TOR_PROXY_IP="10.21.22.21" +export APP_LIBRE_RELAY_I2P_DAEMON_IP="10.21.22.22" + +export APP_LIBRE_RELAY_DATA_DIR="${EXPORTS_APP_DIR}/data/bitcoin" +# Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ шаблона ΠΏΠΎΡ€Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ Bitcoin Core, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 84xx, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Bitcion Node. +export APP_LIBRE_RELAY_RPC_PORT="8442" +export APP_LIBRE_RELAY_P2P_PORT="8443" +export APP_LIBRE_RELAY_TOR_PORT="8444" +export APP_LIBRE_RELAY_ZMQ_RAWBLOCK_PORT="28442" +export APP_LIBRE_RELAY_ZMQ_RAWTX_PORT="28443" +export APP_LIBRE_RELAY_ZMQ_HASHBLOCK_PORT="28444" +export APP_LIBRE_RELAY_ZMQ_SEQUENCE_PORT="28445" + +BITCOIN_CHAIN="main" +BITCOIN_ENV_FILE="${EXPORTS_APP_DIR}/.env" + +{ + BITCOIN_APP_CONFIG_FILE="${EXPORTS_APP_DIR}/data/app/bitcoin-config.json" + if [[ -f "${BITCOIN_APP_CONFIG_FILE}" ]] + then + bitcoin_app_network=$(jq -r '.network' "${BITCOIN_APP_CONFIG_FILE}") + case $bitcoin_app_network in + "main") + BITCOIN_NETWORK="mainnet";; + "test") + BITCOIN_NETWORK="testnet";; + "testnet4") + BITCOIN_NETWORK="testnet4";; + "signet") + BITCOIN_NETWORK="signet";; + "regtest") + BITCOIN_NETWORK="regtest";; + esac + fi +} > /dev/null || true + +if [[ ! -f "${BITCOIN_ENV_FILE}" ]]; then + if [[ -z "${BITCOIN_NETWORK}" ]]; then + BITCOIN_NETWORK="mainnet" + fi + + if [[ -z ${BITCOIN_RPC_USER+x} ]] || [[ -z ${BITCOIN_RPC_PASS+x} ]] || [[ -z ${BITCOIN_RPC_AUTH+x} ]]; then + BITCOIN_RPC_USER="dfwebos" + BITCOIN_RPC_DETAILS=$("${EXPORTS_APP_DIR}/scripts/rpcauth.py" "${BITCOIN_RPC_USER}") + BITCOIN_RPC_PASS=$(echo "$BITCOIN_RPC_DETAILS" | tail -1) + BITCOIN_RPC_AUTH=$(echo "$BITCOIN_RPC_DETAILS" | head -2 | tail -1 | sed -e "s/^rpcauth=//") + fi + + echo "export APP_LIBRE_RELAY_NETWORK='${BITCOIN_NETWORK}'" > "${BITCOIN_ENV_FILE}" + echo "export APP_LIBRE_RELAY_RPC_USER='${BITCOIN_RPC_USER}'" >> "${BITCOIN_ENV_FILE}" + echo "export APP_LIBRE_RELAY_RPC_PASS='${BITCOIN_RPC_PASS}'" >> "${BITCOIN_ENV_FILE}" + echo "export APP_LIBRE_RELAY_RPC_AUTH='${BITCOIN_RPC_AUTH}'" >> "${BITCOIN_ENV_FILE}" +fi + +. "${BITCOIN_ENV_FILE}" + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ сохраняСм исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² .env, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ свСТая вСрсия. +# Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ прилоТСния +{ + if [[ ! -z ${BITCOIN_NETWORK+x} ]] && [[ "${BITCOIN_NETWORK}" ]] && [[ "${APP_LIBRE_RELAY_NETWORK}" ]] + then + APP_LIBRE_RELAY_NETWORK="${BITCOIN_NETWORK}" + fi +} > /dev/null || true + +if [[ "${APP_LIBRE_RELAY_NETWORK}" == "mainnet" ]]; then + BITCOIN_CHAIN="main" +elif [[ "${APP_LIBRE_RELAY_NETWORK}" == "testnet" ]]; then + BITCOIN_CHAIN="test" + # экспорт APP_LIBRE_RELAY_RPC_PORT="18332" + # экспорт APP_LIBRE_RELAY_P2P_PORT="18333" + # экспорт APP_LIBRE_RELAY_TOR_PORT="18334" +elif [[ "${APP_LIBRE_RELAY_NETWORK}" == "testnet4" ]]; then + BITCOIN_CHAIN="testnet4" + # экспорт APP_LIBRE_RELAY_RPC_PORT="48332" + # экспорт APP_LIBRE_RELAY_P2P_PORT="48333" + # экспорт APP_LIBRE_RELAY_TOR_PORT="48334" +elif [[ "${APP_LIBRE_RELAY_NETWORK}" == "signet" ]]; then + BITCOIN_CHAIN="signet" + # экспорт APP_LIBRE_RELAY_RPC_PORT="38332" + # экспорт APP_LIBRE_RELAY_P2P_PORT="38333" + # экспорт APP_LIBRE_RELAY_TOR_PORT="38334" +elif [[ "${APP_LIBRE_RELAY_NETWORK}" == "regtest" ]]; then + BITCOIN_CHAIN="regtest" + # экспорт APP_LIBRE_RELAY_RPC_PORT="18443" + # экспорт APP_LIBRE_RELAY_P2P_PORT="18444" + # экспорт APP_LIBRE_RELAY_TOR_PORT="18445" +else + echo "Warning (${EXPORTS_APP_ID}): Bitcoin Network '${APP_LIBRE_RELAY_NETWORK}' is not supported" +fi + +export BITCOIN_DEFAULT_NETWORK="${BITCOIN_CHAIN}" + +BIN_ARGS=() +# ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ сгСнСрированным Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ пСрСнСсти всС это Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ. +# BIN_ARGS+=( "-chain=${BITCOIN_CHAIN}" ) +# BIN_ARGS+=( "-proxy=${TOR_PROXY_IP}:${TOR_PROXY_PORT}" ) +# BIN_ARGS+=( "-listen" ) +# BIN_ARGS+=( "-bind=0.0.0.0:${APP_LIBRE_RELAY_TOR_PORT}=onion" ) +# BIN_ARGS+=( "-bind=${APP_LIBRE_RELAY_NODE_IP}" ) +# BIN_ARGS+=( "-port=${APP_LIBRE_RELAY_P2P_PORT}" ) +# BIN_ARGS+=( "-rpcport=${APP_LIBRE_RELAY_RPC_PORT}" ) +# ΠœΡ‹ ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΠΎΡ€Ρ‚Ρ‹ p2p ΠΈ rpc, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ всСгда Π±Ρ‹Π»ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ для всСх сСтСй. +BIN_ARGS+=( "-port=${APP_LIBRE_RELAY_P2P_PORT}" ) +BIN_ARGS+=( "-rpcport=${APP_LIBRE_RELAY_RPC_PORT}" ) +BIN_ARGS+=( "-rpcbind=${APP_LIBRE_RELAY_NODE_IP}" ) +BIN_ARGS+=( "-rpcbind=127.0.0.1" ) +BIN_ARGS+=( "-rpcallowip=${NETWORK_IP}/16" ) +BIN_ARGS+=( "-rpcallowip=127.0.0.1" ) +BIN_ARGS+=( "-rpcauth=\"${APP_LIBRE_RELAY_RPC_AUTH}\"" ) +BIN_ARGS+=( "-zmqpubrawblock=tcp://0.0.0.0:${APP_LIBRE_RELAY_ZMQ_RAWBLOCK_PORT}" ) +BIN_ARGS+=( "-zmqpubrawtx=tcp://0.0.0.0:${APP_LIBRE_RELAY_ZMQ_RAWTX_PORT}" ) +BIN_ARGS+=( "-zmqpubhashblock=tcp://0.0.0.0:${APP_LIBRE_RELAY_ZMQ_HASHBLOCK_PORT}" ) +BIN_ARGS+=( "-zmqpubsequence=tcp://0.0.0.0:${APP_LIBRE_RELAY_ZMQ_SEQUENCE_PORT}" ) +# BIN_ARGS+=( "-txindex=1" ) +# BIN_ARGS+=( "-blockfilterindex=1" ) +# BIN_ARGS+=( "-peerbloomfilters=1" ) +# BIN_ARGS+=( "-peerblockfilters=1" ) +# BIN_ARGS+=( "-rpcworkqueue=128" ) +# ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ depratedrpc=create_bdb Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Jam (JoinMarket) Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ дСскрипторного кошСлька. +BIN_ARGS+=( "-deprecatedrpc=create_bdb" ) +# ВрСбуСтся для совмСстимости с LND. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ deprecatedrpc=warnings Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ LND выпустит Π²Π΅Ρ€ΡΠΈΡŽ с этим исправлСниСм: https://github.com/btcsuite/btcd/pull/2245 +BIN_ARGS+=( "-deprecatedrpc=warnings" ) + +export APP_LIBRE_RELAY_COMMAND=$(IFS=" "; echo "${BIN_ARGS[@]}") + +# эхо "${APP_LIBRE_RELAY_COMMAND}" + +rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rpc/hostname" +p2p_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-p2p/hostname" +export APP_LIBRE_RELAY_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" +export APP_LIBRE_RELAY_P2P_HIDDEN_SERVICE="$(cat "${p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" + +# ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сСти, совмСстимый с lectrs +export APP_LIBRE_RELAY_NETWORK_ELECTRS=$APP_LIBRE_RELAY_NETWORK +if [[ "${APP_LIBRE_RELAY_NETWORK_ELECTRS}" = "mainnet" ]]; then + APP_LIBRE_RELAY_NETWORK_ELECTRS="bitcoin" +fi + +for var in \ + IP \ + NODE_IP \ + TOR_PROXY_IP \ + I2P_DAEMON_IP \ + DATA_DIR \ + RPC_PORT \ + P2P_PORT \ + TOR_PORT \ + ZMQ_RAWBLOCK_PORT \ + ZMQ_RAWTX_PORT \ + ZMQ_HASHBLOCK_PORT \ + ZMQ_SEQUENCE_PORT \ + NETWORK \ + RPC_USER \ + RPC_PASS \ + RPC_AUTH \ + COMMAND \ + RPC_HIDDEN_SERVICE \ + P2P_HIDDEN_SERVICE \ + NETWORK_ELECTRS +do + bitcoin_var="APP_BITCOIN_${var}" + libre_relay_var="APP_LIBRE_RELAY_${var}" + if [ -n "${!libre_relay_var-}" ]; then + export "$bitcoin_var"="${!bitcoin_var:=${!libre_relay_var}}" + else + echo "Warning: $libre_relay_var is unset or empty" + fi +done \ No newline at end of file diff --git a/libre-relay/hooks/pre-start b/libre-relay/hooks/pre-start new file mode 100755 index 0000000..7a0a6cc --- /dev/null +++ b/libre-relay/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ прилоТСния Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° скрытыС слуТбы Tor RPC ΠΈ P2P Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-rpc/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach bitcoind +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/libre-relay/scripts/rpcauth.py b/libre-relay/scripts/rpcauth.py new file mode 100755 index 0000000..f59b4dd --- /dev/null +++ b/libre-relay/scripts/rpcauth.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +# Copyright (c) 2015-2018 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Bitcoin Core +# РаспространяСтся ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС MIT, см. ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. +# Ρ„Π°ΠΉΠ» COPYING ΠΈΠ»ΠΈ http://www.opensource.org/licenses/mit-license.php. + +from argparse import ArgumentParser +from base64 import urlsafe_b64encode +from binascii import hexlify +from getpass import getpass +from os import urandom + +import hmac + +def generate_salt(size): + """Create size byte hex salt""" + return hexlify(urandom(size)).decode() + +def generate_password(): + """Create 32 byte b64 password""" + return urlsafe_b64encode(urandom(32)).decode('utf-8') + +def password_to_hmac(salt, password): + m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), 'SHA256') + return m.hexdigest() + +def main(): + parser = ArgumentParser(description='Create login credentials for a JSON-RPC user') + parser.add_argument('username', help='the username for authentication') + parser.add_argument('password', help='leave empty to generate a random password or specify "-" to prompt for password', nargs='?') + args = parser.parse_args() + + if not args.password: + args.password = generate_password() + elif args.password == '-': + args.password = getpass() + + # Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ 16-Π±Π°ΠΉΡ‚ΠΎΠ²ΡƒΡŽ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ соль + salt = generate_salt(16) + password_hmac = password_to_hmac(salt, args.password) + + print('String to be appended to bitcoin.conf:') + print('rpcauth={0}:{1}${2}'.format(args.username, salt, password_hmac)) + print('Your password:\n{0}'.format(args.password)) + +if __name__ == '__main__': + main() diff --git a/libre-relay/torrc.template b/libre-relay/torrc.template new file mode 100644 index 0000000..f8c977b --- /dev/null +++ b/libre-relay/torrc.template @@ -0,0 +1,13 @@ +SocksPort 0.0.0.0:9050 +ControlPort 0.0.0.0:9051 +CookieAuthentication 1 +CookieAuthFileGroupReadable 1 +HashedControlPassword 16:39AF5EEFA4FC1D986022FDFB13663669FE50FB6DE9A3B4FE4FC7D82010 # moneyprintergobrrr + +# Bitcoin Core P2P Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис +HiddenServiceDir /data/app-$APP_ID-p2p +HiddenServicePort $APP_LIBRE_RELAY_P2P_PORT $APP_LIBRE_RELAY_NODE_IP:$APP_LIBRE_RELAY_TOR_PORT + +# Bitcoin Core RPC Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис +HiddenServiceDir /data/app-$APP_ID-rpc +HiddenServicePort $APP_LIBRE_RELAY_RPC_PORT $APP_LIBRE_RELAY_NODE_IP:$APP_LIBRE_RELAY_RPC_PORT \ No newline at end of file diff --git a/librechat/.env b/librechat/.env new file mode 100644 index 0000000..d0678ca --- /dev/null +++ b/librechat/.env @@ -0,0 +1,661 @@ +#=======================================================# +# LibreChat ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ # +#=======================================================# +# ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ Π·Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊ справочной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ # +# с настройкой срСды LibreChat. # +# # +# https://www.librechat.ai/docs/configuration/dotenv # +#=======================================================# + +#==========================================# +# ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ сСрвСра β„– +#==========================================# + +HOST=0.0.0.0 +PORT=3080 + +MONGO_URI=mongodb://librechat_mongodb_1:27017/LibreChat + +DOMAIN_CLIENT=http://localhost:3080 +DOMAIN_SERVER=http://localhost:3080 + +NO_INDEX=true +# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π½Π° расстоянии Π½Π΅ Π±ΠΎΠ»Π΅Π΅ n ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΎΡ‚ прилоТСния Express. +# req.socket.remoteAddress β€” это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ищутся Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ X-Forwarded-For справа Π½Π°Π»Π΅Π²ΠΎ. +# Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π½Π΅Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ адрСсом Π±ΡƒΠ΄Π΅Ρ‚ req.socket.remoteAddress, Ρ‚.Π΅. ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси-сСрвСра Π½Π΅Ρ‚. +# По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 1. +TRUST_PROXY=1 + +#===============# +# JSON НомСр ΠΆΡƒΡ€Π½Π°Π»Π° +#===============# + +# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° консоль процСсса рСгистрируСтся Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΌ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ GCP/AWS. +CONSOLE_JSON=false + +#===============# +# Π–ΡƒΡ€Π½Π°Π» ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ # +#===============# + +DEBUG_LOGGING=true +DEBUG_CONSOLE=false + +#=============# +# Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ # +#=============# + +# UID=1000 +# GID=1000 + +#===============# +# ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ β„– +#===============# +# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ URL. + +# CONFIG_PATH="/alternative/path/to/librechat.yaml" + +#===========================================# +# ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ # +#===========================================# + +# ENDPOINTS=openAI,assistants,azureOpenAI,google,gptPlugins,anthropic + +PROXY= + +#===============================# +# Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ β€” librechat.yaml # +#===============================# +# https://www.librechat.ai/docs/configuration/librechat_yaml/ai_endpoints + +# ANYSCALE_API_KEY= +# APIPIE_API_KEY= +# COHERE_API_KEY= +# DEEPSEEK_API_KEY= +# DATABRICKS_API_KEY= +# Π€Π•Π™Π•Π Π’Π•Π ΠšΠ˜_API_KEY= +# GROQ_API_KEY= +# HUGGINGFACE_TOKEN= +# MISTRAL_API_KEY= +# OPENROOUTER_KEY= +# PERPLEXITY_API_KEY= +# SHUTTLEAI_API_KEY= +# TOGETHERAI_API_KEY= +# UNIFY_API_KEY= +# XAI_API_KEY= + +#============# +# Антропный # +#============# + +ANTHROPIC_API_KEY=user_provided +# ANTHROPIC_MODELS=claude-opus-4-20250514,claude-sonnet-4-20250514,claude-3-7-sonnet-20250219,claude-3-5-sonnet-20241022,claude-3-5-haiku-20241022,claude-3-opus-20240229,claude-3-sonnet-20240229,claude-3-haiku-20240307 +# ANTHROPIC_REVERSE_PROXY= + +#============# +# Π›Π°Π·ΡƒΡ€Π½Ρ‹ΠΉ # +#============# + +# ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€” DEPRECATED. +# ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ `librechat.yaml` для `azureOpenAI`. +# Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…, Ссли ΠΎΡ‚ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ΡΡŒ ΠΎΡ‚ использования ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ `librechat.yaml`. + +# AZURE_OPENAI_DEFAULT_MODEL=gpt-3.5-turbo # УстарСло +# AZURE_OPENAI_MODELS=gpt-3.5-turbo,gpt-4 # УстарСло +# AZURE_USE_MODEL_AS_DEPLOYMENT_NAME=TRUE # УстарСло +# AZURE_API_KEY= # Deprecated +# AZURE_OPENAI_API_INSTANCE_NAME= # Deprecated +# AZURE_OPENAI_API_DEPLOYMENT_NAME= # Deprecated +# AZURE_OPENAI_API_VERSION= # Deprecated +# AZURE_OPENAI_API_COMPLETIONS_DEPLOYMENT_NAME= # Deprecated +# AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME= # Deprecated +# PLUGINS_USE_AZURE="true" # УстарСло + +#=================# +# AWS ΠšΠΎΡ€Π΅Π½Π½Π°Ρ ΠΏΠΎΡ€ΠΎΠ΄Π° # +#=================# + +# BEDROCK_AWS_DEFAULT_REGION=us-east-1 # НСобходимо ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅Π³ΠΈΠΎΠ½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. +# BEDROCK_AWS_ACCESS_KEY_ID=someAccessKey +# BEDROCK_AWS_SECRET_ACCESS_KEY=someSecretAccessKey +# BEDROCK_AWS_SESSION_TOKEN=someSessionToken + +# ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΎΡ‚ список ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π½Π΅ являСтся ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ. Если этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠΏΡƒΡ‰Π΅Π½, Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ всС извСстныС ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ IDs. +# BEDROCK_AWS_MODELS=anthropic.claude-3-5-sonnet-20240620-v1:0,meta.llama3-1-8b-instruct-v1:0 + +# ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС ΠΌΠΎΠ΄Π΅Π»ΠΈ Bedrock IDs ΠΌΠΎΠΆΠ½ΠΎ здСсь: https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#model-ids-arns + +# ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ модСлям: +# Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ·-Π·Π° отсутствия ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ: +# ai21.j2-mid-v1 + +# Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ·-Π·Π° отсутствия ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ истории Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΎΠ²: +# ai21.j2-ultra-v1, cohere.command-text-v14, cohere.command-light-text-v14 + +#============# +# Google # +#============# + +GOOGLE_KEY=user_provided + +# GOOGLE_REVERSE_PROXY= +# НСкоторыС ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ прокси-сСрвСры Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ X-goog-api-key. ВмСсто этого раскоммСнтируйтС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ API Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. +# GOOGLE_AUTH_HEADER=true + +# Π‘Π»ΠΈΠ·Π½Π΅Ρ†Ρ‹ API (AI Studio) +# GOOGLE_MODELS=gemini-2.5-pro-preview-05-06,gemini-2.5-flash-preview-04-17,gemini-2.0-flash-001,gemini-2.0-flash-exp,gemini-2.0-flash-lite-001,gemini-1.5-pro-002,gemini-1.5-flash-002 + +# Π’Π΅Ρ€ΡˆΠΈΠ½Π° AI +# GOOGLE_MODELS=gemini-2.5-pro-preview-05-06,gemini-2.5-flash-preview-04-17,gemini-2.0-flash-001,gemini-2.0-flash-exp,gemini-2.0-flash-lite-001,gemini-1.5-pro-002,gemini-1.5-flash-002 + +# GOOGLE_TITLE_MODEL=gemini-2.0-flash-lite-001 + +# GOOGLE_LOC=us-central1 + +# Настройки бСзопасности Google +# ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•: Π­Ρ‚ΠΈ настройки ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΊ Vertex AI, Ρ‚Π°ΠΊ ΠΈ ΠΊ Gemini API (AI Studio) +# +# Для Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ AI: +# Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ настройку BLOCK_NONE, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ: +# (Π°) Доступ Ρ‡Π΅Ρ€Π΅Π· Π±Π΅Π»Ρ‹ΠΉ список Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ вашСго Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° Google ΠΈΠ»ΠΈ +# (Π±) ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° СТСмСсячноС выставлСниС счСтов: https://cloud.google.com/billing/docs/how-to/invoiced-billing +# +# Для Π‘Π»ΠΈΠ·Π½Π΅Ρ†ΠΎΠ² API (AI Studio): +# BLOCK_NONE доступСн ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, особых Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π½Π΅Ρ‚. +# +# ДоступныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹: BLOCK_NONE, BLOCK_ONLY_HIGH, BLOCK_MEDIUM_AND_ABOVE, BLOCK_LOW_AND_ABOVE. +# +# GOOGLE_SAFETY_SEXUALLY_EXPLICIT=BLOCK_ONLY_HIGH +# GOOGLE_SAFETY_HATE_SPEECH=BLOCK_ONLY_HIGH +# GOOGLE_SAFETY_HARASSMENT=BLOCK_ONLY_HIGH +# GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH +# GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH + +#============# +# ОпСнАИ # +#============# + +OPENAI_API_KEY=user_provided +# OPENAI_MODELS=o1,o1-mini,o1-preview,gpt-4o,gpt-4.5-preview,chatgpt-4o-latest,gpt-4o-mini,gpt-3.5-turbo-0125,gpt-3.5-turbo-0301,gpt-3.5-turbo,gpt-4,gpt-4-0613,gpt-4-vision-preview,gpt-3.5-turbo-0613,gpt-3.5-turbo-16k-0613,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview,gpt-3.5-turbo-1106,gpt-3.5-turbo-instruct,gpt-3.5-turbo-instruct-0914,gpt-3.5-turbo-16k + +DEBUG_OPENAI=false + +# TITLE_CONVO=false +# OPENAI_TITLE_MODEL=gpt-4o-mini + +# OPENAI_SUMMARIZE=true +# OPENAI_SUMMARY_MODEL=gpt-4o-mini + +# OPENAI_FORCE_PROMPT=true + +# OPENAI_REVERSE_PROXY= + +# OPENAI_ORGANIZATION= + +#====================# +# ΠŸΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ API # +#====================# + +ASSISTANTS_API_KEY=user_provided +# ASSISTANTS_BASE_URL= +# ASSISTANTS_MODELS=gpt-4o,gpt-4o-mini,gpt-3.5-turbo-0125,gpt-3.5-turbo-16k-0613,gpt-3.5-turbo-16k,gpt-3.5-turbo,gpt-4,gpt-4-0314,gpt-4-32k-0314,gpt-4-0613,gpt-3.5-turbo-0613,gpt-3.5-turbo-1106,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview + +#=======================# +# ΠŸΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ Azure API # +#=======================# + +# ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’Π°ΠΌ слСдуСт ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свои ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² соотвСтствии с вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ Azure OpenAI. +# МодСли для ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ² Azure Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ Azure OpenAI. + +# Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π² Ρ‚ΠΎΠΌ числС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ использованиС АссистСнтов с Azure, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: +# https://www.librechat.ai/docs/configuration/librechat_yaml/ai_endpoints/azure#using-assistants-with-azure + +#============# +# ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ # +#============# + +# PLUGIN_MODELS=gpt-4o,gpt-4o-mini,gpt-4,gpt-4-turbo-preview,gpt-4-0125-preview,gpt-4-1106-preview,gpt-4-0613,gpt-3.5-turbo,gpt-3.5-turbo-0125,gpt-3.5-turbo-1106,gpt-3.5-turbo-0613 + +DEBUG_PLUGINS=true + +CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0 +CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb + +# Поиск Azure AI +#----------------- +AZURE_AI_SEARCH_SERVICE_ENDPOINT= +AZURE_AI_SEARCH_INDEX_NAME= +AZURE_AI_SEARCH_API_KEY= + +AZURE_AI_SEARCH_API_VERSION= +AZURE_AI_SEARCH_SEARCH_OPTION_QUERY_TYPE= +AZURE_AI_SEARCH_SEARCH_OPTION_TOP= +AZURE_AI_SEARCH_SEARCH_OPTION_SELECT= + +# OpenAI Настройка инструмСнтов изобраТСния +#---------------- +# IMAGE_GEN_OAI_DESCRIPTION_WITH_FILES=ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ описаниС инструмСнта создания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² +# IMAGE_GEN_OAI_DESCRIPTION_NO_FILES=ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ описаниС инструмСнта создания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ отсутствии Ρ„Π°ΠΉΠ»ΠΎΠ² +# IMAGE_EDIT_OAI_DESCRIPTION=ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ описаниС инструмСнта рСдактирования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ +# IMAGE_GEN_OAI_PROMPT_DESCRIPTION=ОписаниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ запроса для инструмСнта создания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ +# IMAGE_EDIT_OAI_PROMPT_DESCRIPTION=ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ описаниС подсказки для инструмСнта рСдактирования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ + +# Π”ΠΠ›Π›Β·Π˜ +#---------------- +# ДАЛЛЕ_API_KEY= +# DALLE3_API_KEY= +# DALLE2_API_KEY= +# DALLE3_SYSTEM_PROMPT= +# DALLE2_SYSTEM_PROMPT= +# DALLE_REVERSE_PROXY= +# DALLE3_BASEURL= +# DALLE2_BASEURL= + +# DALLΒ·E (Ρ‡Π΅Ρ€Π΅Π· Azure OpenAI) +# Note: requires some of the variables above to be set +#---------------- +# DALLE3_AZURE_API_VERSION= +# DALLE2_AZURE_API_VERSION= + +# ΠŸΠΎΡ‚ΠΎΠΊ +#----------------- +FLUX_API_BASE_URL=https://api.us1.bfl.ai +# FLUX_API_BASE_URL = 'https://api.bfl.ml'; + +# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ API ΠΏΠΎ адрСсу https://api.us1.bfl.ai/auth/profile. +# FLUX_API_KEY= + +# Google +#----------------- +GOOGLE_SEARCH_API_KEY= +GOOGLE_CSE_ID= + +# ΠΠ’Π£Π‘ +#----------------- +YOUTUBE_API_KEY= + +# Π‘Π΅Ρ€ΠΏAPI +#----------------- +SERPAPI_API_KEY= + +# Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ диффузия +#----------------- +SD_WEBUI_URL= + +# Π’Π°Π²ΠΈΠ»ΠΈ +#----------------- +TAVILY_API_KEY= + +# Π’Ρ€Π°Π²Π΅Ρ€ΡΠ°Π°Π»ΡŒ +#----------------- +TRAVERSAAL_API_KEY= + +# Π’ΠΎΠ»ΡŒΡ„Ρ€Π°ΠΌΠΠ»ΡŒΡ„Π° +#----------------- +WOLFRAM_APP_ID= + +# Π—Π°ΠΏΠΈΡ€ +#----------------- +ZAPIER_NLA_API_KEY= + +#==========================================# +# Поиск # +#==========================================# + +SEARCH=true +MEILI_NO_ANALYTICS=true +MEILI_HOST=http://librechat_meilisearch_1:7700 +MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt + +# Optional: Disable indexing, useful in a multi-node setup +# Π³Π΄Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ индСкса. +# MEILI_NO_SYNC=true + +#==========================================# +# ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Ρ‡ΠΈ Π² тСкст ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста Π² Ρ€Π΅Ρ‡ΡŒ # +#==========================================# + +STT_API_KEY= +TTS_API_KEY= + +#==========================================# +# ВРЯПКА β„– +#==========================================# +# Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация: https://www.librechat.ai/docs/configuration/rag_api + +RAG_API_URL=http://librechat_rag_api_1:8000 +# RAG_OPENAI_BASEURL= +RAG_OPENAI_API_KEY=user_provided +# RAG_USE_FULL_CONTEXT= +# EMBEDDINGS_PROVIDER=openai +# EMBEDDINGS_MODEL=text-embedding-3-small + +#===========================================# +# БистСмный Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ +#===========================================# + +#=====================# +# ΠœΠΎΠ΄Π΅Ρ€Π°Ρ†ΠΈΡ # +#=====================# + +OPENAI_MODERATION=false +OPENAI_MODERATION_API_KEY= +# OPENAI_MODERATION_REVERSE_PROXY= + +BAN_VIOLATIONS=true +BAN_DURATION=1000 * 60 * 60 * 2 +BAN_INTERVAL=20 + +LOGIN_VIOLATION_SCORE=1 +REGISTRATION_VIOLATION_SCORE=1 +CONCURRENT_VIOLATION_SCORE=1 +MESSAGE_VIOLATION_SCORE=1 +NON_BROWSER_VIOLATION_SCORE=20 + +LOGIN_MAX=7 +LOGIN_WINDOW=5 +REGISTER_MAX=5 +REGISTER_WINDOW=60 + +LIMIT_CONCURRENT_MESSAGES=true +CONCURRENT_MESSAGE_MAX=2 + +LIMIT_MESSAGE_IP=true +MESSAGE_IP_MAX=40 +MESSAGE_IP_WINDOW=1 + +LIMIT_MESSAGE_USER=false +MESSAGE_USER_MAX=40 +MESSAGE_USER_WINDOW=1 + +ILLEGAL_MODEL_REQ_SCORE=5 + +#=====================# +# Баланс # +#=====================# + +# CHECK_BALANCE=false +# START_BALANCE=20000 # ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: количСство Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ начислСно послС рСгистрации. + +#=====================# +# РСгистрация ΠΈ Π»ΠΎΠ³ΠΈΠ½ # +#=====================# + +ALLOW_EMAIL_LOGIN=true +ALLOW_REGISTRATION=false +ALLOW_SOCIAL_LOGIN=false +ALLOW_SOCIAL_REGISTRATION=false +ALLOW_PASSWORD_RESET=false +# ALLOW_ACCOUNT_DELETION=true # ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли отсутствуСт omitted/commented +ALLOW_UNVERIFIED_EMAIL_LOGIN=true + +SESSION_EXPIRY=1000 * 60 * 15 +REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7 + +JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef +JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418 + +# Π Π°Π·Π΄ΠΎΡ€ +DISCORD_CLIENT_ID= +DISCORD_CLIENT_SECRET= +DISCORD_CALLBACK_URL=/oauth/discord/callback + +# ЀСйсбук +FACEBOOK_CLIENT_ID= +FACEBOOK_CLIENT_SECRET= +FACEBOOK_CALLBACK_URL=/oauth/facebook/callback + +# GitHub +GITHUB_CLIENT_ID= +GITHUB_CLIENT_SECRET= +GITHUB_CALLBACK_URL=/oauth/github/callback +# GitHub ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ +# GITHUB_ENTERPRISE_BASE_URL= +# GITHUB_ENTERPRISE_USER_AGENT= + +# Google +GOOGLE_CLIENT_ID= +GOOGLE_CLIENT_SECRET= +GOOGLE_CALLBACK_URL=/oauth/google/callback + +# Π―Π±Π»ΠΎΠΊΠΎ +APPLE_CLIENT_ID= +APPLE_TEAM_ID= +APPLE_KEY_ID= +APPLE_PRIVATE_KEY_PATH= +APPLE_CALLBACK_URL=/oauth/apple/callback + +# OpenID +OPENID_CLIENT_ID= +OPENID_CLIENT_SECRET= +OPENID_ISSUER= +OPENID_SESSION_SECRET= +OPENID_SCOPE="openid profile email" +OPENID_CALLBACK_URL=/oauth/openid/callback +OPENID_REQUIRED_ROLE= +OPENID_REQUIRED_ROLE_TOKEN_KIND= +OPENID_REQUIRED_ROLE_PARAMETER_PATH= +# УстановитС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½ΠΎΠ΅ поставщиком OpenID, для сохранСния Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. +OPENID_USERNAME_CLAIM= +# УстановитС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½ΠΎΠ΅ поставщиком OpenID, для сохранСния Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. +OPENID_NAME_CLAIM= + +OPENID_BUTTON_LABEL= +OPENID_IMAGE_URL= +# УстановитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true для автоматичСского пСрСнаправлСния ΠΊ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρƒ OpenID, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ посСщаСт страницу Π²Ρ…ΠΎΠ΄Π°. +# Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ„ΠΎΡ€ΠΌΡƒ Π²Ρ…ΠΎΠ΄Π° для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли OpenID β€” ваш СдинствСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. +OPENID_AUTO_REDIRECT=false +# УстановитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PKCE (ΠΊΠ»ΡŽΡ‡ подтвСрТдСния для ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠΎΠ΄Π°ΠΌΠΈ) для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ OpenID. +OPENID_USE_PKCE=false +#УстановитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ openid для управлСния Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ вмСсто использования сСанса mongodb ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ‚ΠΎΠΊΠ΅Π½Π° обновлСния. +OPENID_REUSE_TOKENS= +#По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠ»ΡŽΡ‡Π° подписи ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½Ρ‹Π΅ запросы HTTP ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ JWKS. +#Если Π½Π°ΠΉΠ΄Π΅Π½ ΠΊΠ»ΡŽΡ‡ подписи, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π±Π΅Π½ΠΊΡƒ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½, ΠΈ ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ запросС этого Ρ€Π΅Π±Π΅Π½ΠΊΠ° ΠΊΠ»ΡŽΡ‡ подписи Π±ΡƒΠ΄Π΅Ρ‚ прСдоставлСн ΠΈΠ· кэша. +#По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Π΅Ρ€Π½ΠΎ. +OPENID_JWKS_URL_CACHE_ENABLED= +OPENID_JWKS_URL_CACHE_TIME= # 600000 ms eq to 10 minutes leave empty to disable caching +#УстановитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ для получСния Ρ‚ΠΎΠΊΠ΅Π½Π° доступа для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ userinfo. +OPENID_ON_BEHALF_FLOW_FOR_USERINFRO_REQUIRED= +OPENID_ON_BEHALF_FLOW_USERINFRO_SCOPE = "user.read" # example for Scope Needed for Microsoft Graph API +# УстановитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ окончания сСанса OpenID Connect для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· систСмы. +OPENID_USE_END_SESSION_ENDPOINT= + + +# SAML +# ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если OpenID Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, аутСнтификация SAML Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. +SAML_ENTRY_POINT= +SAML_ISSUER= +SAML_CERT= +SAML_CALLBACK_URL=/oauth/saml/callback +SAML_SESSION_SECRET= + +# БопоставлСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) +SAML_EMAIL_CLAIM= +SAML_USERNAME_CLAIM= +SAML_GIVEN_NAME_CLAIM= +SAML_FAMILY_NAME_CLAIM= +SAML_PICTURE_CLAIM= +SAML_NAME_CLAIM= + +# Настройки ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Π² систСму (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) +SAML_BUTTON_LABEL= +SAML_IMAGE_URL= + +# Π”ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ подписан ΠΎΡ‚Π²Π΅Ρ‚ SAML. +# - Если "true", Π±ΡƒΠ΄Π΅Ρ‚ подписан вСсь `SAML Response`. +# - Если "false" ΠΈΠ»ΠΈ Π½Π΅ установлСно, Π±ΡƒΠ΄Π΅Ρ‚ подписан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ `SAML Assertion` (ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ). +# SAML_USE_AUTHN_RESPONSE_SIGNED= + + +# Π›Π”ΠΠŸ +LDAP_URL= +LDAP_BIND_DN= +LDAP_BIND_CREDENTIALS= +LDAP_USER_SEARCH_BASE= +#LDAP_SEARCH_FILTER="mail=" +LDAP_CA_CERT_PATH= +# LDAP_TLS_REJECT_UNAUTHORIZED= +# LDAP_STARTTLS= +# LDAP_LOGIN_USES_USERNAME=true +# LDAP_ID= +# LDAP_USERNAME= +# LDAP_EMAIL= +# LDAP_FULL_NAME= + +#=====================# +# Бброс пароля элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ # +#=====================# + +EMAIL_SERVICE= +EMAIL_HOST= +EMAIL_PORT=25 +EMAIL_ENCRYPTION= +EMAIL_ENCRYPTION_HOSTNAME= +EMAIL_ALLOW_SELFSIGNED= +EMAIL_USERNAME= +EMAIL_PASSWORD= +EMAIL_FROM_NAME= +EMAIL_FROM=noreply@librechat.ai + +#=====================# +# ΠŸΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ пистолСт API # +#=====================# + +# MAILGUN_API_KEY=your-mailgun-api-key +# MAILGUN_DOMAIN=mg.yourdomain.com +# EMAIL_FROM=noreply@yourdomain.com +# EMAIL_FROM_NAME="LibreChat" + +# # ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ: для Ρ€Π΅Π³ΠΈΠΎΠ½Π° EU. +# MAILGUN_HOST=https://api.eu.mailgun.net + +#=====================# +# Π‘Π°Π·Π° огня CDN # +#=====================# + +FIREBASE_API_KEY= +FIREBASE_AUTH_DOMAIN= +FIREBASE_PROJECT_ID= +FIREBASE_STORAGE_BUCKET= +FIREBASE_MESSAGING_SENDER_ID= +FIREBASE_APP_ID= + +#=====================# +# S3 AWS НомСр ковша +#=====================# + +AWS_ENDPOINT_URL= +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_REGION= +AWS_BUCKET_NAME= + +#=====================# +# НомСр Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° BLOB-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Azure +#=====================# + +AZURE_STORAGE_CONNECTION_STRING= +AZURE_STORAGE_PUBLIC_ACCESS=false +AZURE_CONTAINER_NAME=files + +#=====================# +# ΠžΠ±Ρ‰ΠΈΠ΅ ссылки # +#=====================# + +ALLOW_SHARED_LINKS=true +ALLOW_SHARED_LINKS_PUBLIC=true + +#===========================# +# БтатичСский элСмСнт управлСния кэшСм Ρ„Π°ΠΉΠ»ΠΎΠ² # +#===========================# + +# ΠžΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: 1 дСнь (86 400 сСкунд) для s-maxage ΠΈ 2 дня (172 800 сСкунд) для max-age. +# NODE_ENV Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ настроСн Π½Π° производство, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ вступили Π² силу. +# STATIC_CACHE_MAX_AGE=172800 +# STATIC_CACHE_S_MAX_AGE=86400 + +# Если Ρƒ вас Π΅ΡΡ‚ΡŒ другая слуТба ΠΏΠ΅Ρ€Π΅Π΄ вашим LibreChat, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ сТатиС, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ здСсь экспрСсс-сТатиС. +# DISABLE_COMPRESSION=true + +#===========================================# +# интСрфСйс # +#===========================================# + +APP_TITLE=LibreChat +# CUSTOM_FOOTER="My custom footer" +HELP_AND_FAQ_URL=https://librechat.ai + +# SHOW_BIRTHDAY_ICON=true + +# Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ диспСтчСра Ρ‚Π΅Π³ΠΎΠ² Google +#ANALYTICS_GTM_ID=user provided google tag manager id + +#===============# +# REDIS ΠžΠΏΡ†ΠΈΠΈ # +#===============# + +# REDIS_URI=10.10.10.10:6379 +# USE_REDIS=true + +# USE_REDIS_CLUSTER=true +# REDIS_CA=/path/to/ca.crt + +#==========================================# +# Π”Ρ€ΡƒΠ³ΠΈΠ΅ # +#==========================================# +# Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ # + +# Π£Π—Π•Π›_ENV= + +# E2E_USER_EMAIL= +# E2E_USER_PASSWORD= + +#============================================# +# Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ кэша # +#============================================# +# Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ index.html # +# ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ # +# ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ всСгда ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ # +# Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ послСдствия ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. # + +# INDEX_CACHE_CONTROL=Π±Π΅Π· кэша, Π±Π΅Π· хранСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° повторная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° +# INDEX_PRAGMA=no-cache +# INDEX_EXPIRES=0 + +# no-cache: ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° сСрвСрС ΠΏΠ΅Ρ€Π΅Π΄ использованиСм ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ вСрсии. +# no-store: Prevents storing the response entirely +# must-revalidate: ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ использованиС ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. + +#============================================# +# OpenWeather # +#============================================# +OPENWEATHER_API_KEY= + +#================================# +# LibreChat Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° API # +#================================# + +# https://code.librechat.ai +# LIBRECHAT_CODE_API_KEY=your-key + +#=====================# +# Π’Π΅Π±-поиск # +#=====================# + +# ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ВсС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. +# ΠžΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ значСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. + +# Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ значСниях ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ см. Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…: +# https://librechat.ai/docs/features/web_search + +# ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊ поиска (ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) +# SERPER_API_KEY=your_serper_api_key + +# Π‘ΠΊΡ€Π΅Π±ΠΎΠΊ (ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) +# FIRECRAWL_API_KEY=your_firecrawl_api_key +# Optional: Custom Firecrawl API URL +# FIRECRAWL_API_URL=your_firecrawl_api_url + +# Π Π΅Ρ€Π°Π½ΠΊΠ΅Ρ€ (ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) +# JINA_API_KEY=your_jina_api_key +# ΠΈΠ»ΠΈ +# COHERE_API_KEY=your_cohere_api_key diff --git a/librechat/data/api/images/.gitkeep b/librechat/data/api/images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/librechat/data/api/librechat.yaml b/librechat/data/api/librechat.yaml new file mode 100644 index 0000000..5cabac6 --- /dev/null +++ b/librechat/data/api/librechat.yaml @@ -0,0 +1,277 @@ +# Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. Руководство ΠΏΠΎ настройкС: +# https://www.librechat.ai/docs/configuration/librechat_yaml + +# ВСрсия ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) +version: 1.2.1 + +# Настройки кэша: установитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. +cache: true + +# БтратСгия Ρ„Π°ΠΉΠ»Π° s3/firebase +# fileStrategy: "s3" + +# ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ конфигурация интСрфСйса +interface: + customWelcome: "Welcome to LibreChat! Enjoy your experience." + # Настройки ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ + privacyPolicy: + externalUrl: 'https://librechat.ai/privacy-policy' + openNewTab: true + + endpointsMenu: true + modelSelect: true + parameters: true + sidePanel: true + presets: true + prompts: true + bookmarks: true + multiConvo: true + agents: true + +# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΡƒΡ€Π½ΠΈΠΊΠ΅Ρ‚Π° Cloudflare (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) +#Ρ‚ΡƒΡ€Π½ΠΈΠΊΠ΅Ρ‚: +# ΠšΠ»ΡŽΡ‡ сайта: "your-site-key-here" +# ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: +# language: "auto" # "auto" ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ языка ISO 639-1 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, en) +# size: "normal" # ΠžΠΏΡ†ΠΈΠΈ: "normal", "compact", "flexible" ΠΈΠ»ΠΈ "invisible". + +# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ структуры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° рСгистрации (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) +registration: + socialLogins: ['github', 'google', 'discord', 'openid', 'facebook', 'apple', 'saml'] + # Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹: + # - "gmail.com" + + +# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настроСк баланса +# баланс: +# enabled: false +# startBalance: 20000 +# autoRefillEnabled: false +# refillIntervalValue: 30 +# refillIntervalUnit: 'days' +# refillAmount: 10000 + +# Ρ€Π΅Ρ‡ΡŒ: +# ттс: +# ΠΎΠΏΠ΅Π½Π°ΠΉ: +# url: '' +# apiKey: '${TTS_API_KEY}' +# model: '' +# voices: [''] + +# +# Π²Ρ‚: +# ΠΎΠΏΠ΅Π½Π°ΠΉ: +# url: '' +# apiKey: '${STT_API_KEY}' +# model: '' + +# ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ скорости: +# Ρ„Π°ΠΉΠ»Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ: +# ipMax: 100 +# ipWindowInMinutes: 60 # Окно ограничСния скорости Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ IP +# userMax: 50 +# userWindowInMinutes: 60 # Окно ограничСния скорости Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ +# Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρ‹Π˜ΠΌΠΏΠΎΡ€Ρ‚: +# ipMax: 100 +# ipWindowInMinutes: 60 # Окно ограничСния скорости для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΎΠ² ΠΏΠΎ IP +# userMax: 50 +# userWindowInMinutes: 60 # Окно ограничСния скорости ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΎΠ² Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ + +# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ структуры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° дСйствий +actions: + allowedDomains: + - "swapi.dev" + - "librechat.ai" + - "google.com" + +# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ структуры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° сСрвСров MCP +# mcpServers: +# всС: +# # Ρ‚ΠΈΠΏ: sse # Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½ +# url: http://localhost:3001/sse +# timeout: 60000 # Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚ для этого сСрвСра составляСт 1 ΠΌΠΈΠ½ΡƒΡ‚Ρƒ, это Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для сСрвСров MCP. +# ΠΊΡƒΠΊΠΎΠ»ΡŒΠ½ΠΈΠΊ: +# type: stdio +# command: npx +# Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹: +# - -Ρƒ +# - "@modelcontextprotocol/server-puppeteer" +# timeout: 300000 # Π’Π°ΠΉΠΌΠ°ΡƒΡ‚ 5 ΠΌΠΈΠ½ΡƒΡ‚ для этого сСрвСра +# файловая систСма: +# # Ρ‚ΠΈΠΏ: stdio +# command: npx +# Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹: +# - -Ρƒ +# - "@modelcontextprotocol/server-filesystem" +# - /home/user/LibreChat/ +# iconPath: /home/user/LibreChat/client/public/assets/logo.svg +# mcp-обсидиан: +# command: npx +# Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹: +# - -Ρƒ +# - "mcp-obsidian" +# - /path/to/obsidian/vault + +# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ +endpoints: + # ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ: + # disableBuilder: false # ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ интСрфСйс Assistants Builder, установив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `true`. + # pollIntervalMs: 3000 # Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» опроса для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ АссистСнта + # timeoutMs: 180000 # Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° + # # Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅: `supportedIds` ΠΈΠ»ΠΈ `excludedIds` + # supportedIds: ["asst_supportedAssistantId1", "asst_supportedAssistantId2"] + # # ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²: ["asst_excludedAssistantId"] + # # ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ², созданных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ созданных ΠΈΠ·Π²Π½Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ΅ Β«ΠŸΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈΒ»). + # # PrivateAssistants: false # НС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с `supportedIds` ΠΈΠ»ΠΈ `excludedIds` + # # (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) Для ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ послСдниС извСстныС ΠΌΠΎΠ΄Π΅Π»ΠΈ OpenAI, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. + # retrievalModels: ["gpt-4-turbo-preview"] + # # (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) ВозмоТности ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° доступны всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. ΠžΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ список ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅. + # capabilities: ["code_interpreter", "retrieval", "actions", "tools", "image_vision"] + # Π°Π³Π΅Π½Ρ‚Ρ‹: + # # (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) Π“Π»ΡƒΠ±ΠΈΠ½Π° рСкурсии ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π°Π³Π΅Π½Ρ‚ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 25 + # recursionLimit: 50 + # # (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) Максимальная Π³Π»ΡƒΠ±ΠΈΠ½Π° рСкурсии для Π°Π³Π΅Π½Ρ‚ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 25. + # maxRecursionLimit: 100 + # # (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ интСрфСйс конструктора для Π°Π³Π΅Π½Ρ‚ΠΎΠ² + # disableBuilder: false + # # (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) ВозмоТности Π°Π³Π΅Π½Ρ‚Π° доступны всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. ΠžΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ список ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅. + # capabilities: ["execute_code", "file_search", "actions", "tools"] + custom: + # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠžΠ»Π»Π°ΠΌΡ‹ + - name: "Ollama" + apiKey: "ollama" + # ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ 'host.docker.internal' вмСсто localhost, Ссли LibreChat Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π΄ΠΎΠΊΠ΅Ρ€Π° + baseURL: "http://ollama_ollama_1:11434/v1/" + models: + default: + [ + 'llama3.2' + ] + # поддСрТиваСтся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π½ΠΎ ΠΏΠΎΠ»Π΅ `name` Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ + # с `ollama` (Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра), ΠΊΠ°ΠΊ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. + fetch: false + titleConvo: true + titleModel: "current_model" + summarize: false + summaryModel: "current_model" + forcePrompt: false + modelDisplayLabel: "Ollama" + # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π“Ρ€ΠΎΠΊΠ° + # - имя: 'groq' + # apiKey: '${GROQ_API_KEY}' + # baseURL: 'https://api.groq.com/openai/v1/' + # ΠΌΠΎΠ΄Π΅Π»ΠΈ: + # ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: + # [ + # 'llama3-70b-8192', + # 'llama3-8b-8192', + # 'llama2-70b-4096', + # 'mixtral-8x7b-32768', + # 'gemma-7b-it', + # ] + # fetch: false + # titleConvo: true + # titleModel: 'mixtral-8x7b-32768' + # modelDisplayLabel: 'groq' + + # # ΠœΠΈΡΡ‚Ρ€Π°Π»ΡŒ AI ΠŸΡ€ΠΈΠΌΠ΅Ρ€ + # - name: 'Mistral' # УникальноС имя ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ + # # Для `apiKey` ΠΈ `baseURL` Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды. + # # Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды: + # apiKey: '${MISTRAL_API_KEY}' + # baseURL: 'https://api.mistral.ai/v1' + + # # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ + # ΠΌΠΎΠ΄Π΅Π»ΠΈ: + # # Бписок ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для использования. ВрСбуСтся хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. + # default: ['mistral-tiny', 'mistral-small', 'mistral-medium'] + # # ΠžΠΏΡ†ΠΈΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ: установитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true для извлСчСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΠ· API. + # fetch: true # По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ лоТь. + + # # Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ + + # # Настройка Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ + # titleConvo: true # УстановитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° + + # # ΠœΠ΅Ρ‚ΠΎΠ΄ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°: Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ "completion" ΠΈΠ»ΠΈ "functions". + # # titleMethod: "completion" # По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ "completion", Ссли ΠΎΠ½ ΠΎΠΏΡƒΡ‰Π΅Π½. + + # # МодСль Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°: ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ модСль, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ². + # titleModel: 'mistral-tiny' # По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ "gpt-3.5-turbo", Ссли ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ. + + # # ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ суммирования: установитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ суммированиС. + # # ΡΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: лоТь + + # # МодСль сводки: ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ модСль, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ссли Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ суммированиС. + # # summaryModel: "mistral-tiny" # По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ "gpt-3.5-turbo", Ссли ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ. + + # # Настройка ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ запроса: Ссли true, вмСсто `messages` отправляСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `prompt`. + # # ForcePrompt: лоТь + + # # ΠœΠ΅Ρ‚ΠΊΠ°, отобраТаСмая для ΠΌΠΎΠ΄Π΅Π»ΠΈ AI Π² сообщСниях. + # modelDisplayLabel: 'Mistral' # По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” "AI", Ссли Π½Π΅ установлСно. + + # # ДобавляСм Π² запрос Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны. + # # Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΡΡ‹: + # # Safe_prompt: true # Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ для Mistral AI: https://docs.mistral.ai/api/ + + # # Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ· запроса. Π‘ΠΌ. ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² руководствС, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅. + # # NOTE: Для Mistral Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с ошибкой 422: + # dropParams: ['stop', 'user', 'frequency_penalty', 'presence_penalty'] + + # # OpenRouter ΠŸΡ€ΠΈΠΌΠ΅Ρ€ + # - имя: 'OpenRouter' + # # Для `apiKey` ΠΈ `baseURL` Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды. + # # Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды: + # apiKey: '${OPENROUTER_KEY}' + # baseURL: 'https://openrouter.ai/api/v1' + # ΠΌΠΎΠ΄Π΅Π»ΠΈ: + # default: ['meta-llama/llama-3-70b-instruct'] + # fetch: true + # titleConvo: true + # titleModel: 'meta-llama/llama-3-70b-instruct' + # # РСкомСндуСтся: ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ остановки ΠΈΠ· запроса, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Openrouter ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ остановки. + # dropParams: ['stop'] + # modelDisplayLabel: 'OpenRouter' + + # # ΠŸΠΎΡ€Ρ‚ΠΊΠ»ΡŽΡ‡ AI ΠŸΡ€ΠΈΠΌΠ΅Ρ€ + # - имя: "Portkey" + # apiKey: "dummy" + # baseURL: 'https://api.portkey.ai/v1' + # Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ: + # x-portkey-api-key: '${PORTKEY_API_KEY}' + # x-portkey-virtual-key: '${PORTKEY_OPENAI_VIRTUAL_KEY}' + # ΠΌΠΎΠ΄Π΅Π»ΠΈ: + # default: ['gpt-4o-mini', 'gpt-4o', 'chatgpt-4o-latest'] + # fetch: true + # titleConvo: true + # titleModel: 'current_model' + # summarize: false + # summaryModel: 'current_model' + # forcePrompt: false + # modelDisplayLabel: 'Portkey' + # iconURL: https://images.crunchbase.com/image/upload/c_pad,f_auto,q_auto:eco,dpr_1/rjqy7ghvjoiu4cd1xjbf +# файлконфигурация: +# ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ: +# ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ: +# fileLimit: 5 +# fileSizeLimit: 10 # ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² MB +# totalSizeLimit: 50 # ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ запросС Π² MB +# ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅MimeTypes: +# - "image/.*" +# - "application/pdf" +# опСнАИ: +# disabled: true # ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ OpenAI. +# ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: +# totalSizeLimit: 20 +# Π’Π°ΡˆΠ΅CustomEndpointName: +# fileLimit: 2 +# fileSizeLimit: 5 +# serverFileSizeLimit: 100 # ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π° глобального сСрвСра Π² MB +# avatarSizeLimit: 2 # ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° изобраТСния Π°Π²Π°Ρ‚Π°Ρ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² MB +# imageGeneration: # Image Gen settings, either percentage or px +# percentage: 100 +# px: 1024 +# # Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ² см. Π² РуководствС ΠΏΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ настройкС: +# #https://www.librechat.ai/docs/configuration/librechat_yaml/object_structure/assistants_endpoint diff --git a/librechat/data/api/logs/.gitkeep b/librechat/data/api/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/librechat/data/api/uploads/.gitkeep b/librechat/data/api/uploads/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/librechat/data/db/.gitkeep b/librechat/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/librechat/data/meilisearch/.gitkeep b/librechat/data/meilisearch/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/librechat/data/vectordb/.gitkeep b/librechat/data/vectordb/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/librechat/dfwebos-app.yml b/librechat/dfwebos-app.yml new file mode 100644 index 0000000..ae67cc0 --- /dev/null +++ b/librechat/dfwebos-app.yml @@ -0,0 +1,103 @@ +manifestVersion: 1.1 +id: librechat +name: LibreChat +tagline: Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠ»ΠΎΠ½ ChatGPT +category: ai +version: "v0.8.4" +port: 7050 +description: >- + Enhanced ChatGPT Clone: Features Agents, DeepSeek, Anthropic, AWS, OpenAI, Assistants API, Azure, Groq, o1, GPT-4o, Mistral, OpenRouter, Vertex AI, Gemini, Artifacts, AI model switching, message search, Code Interpreter, langchain, DALL-E-3, OpenAPI Actions, Functions, Secure Multi-User Auth, Presets, open-source for self-hosting. + + + ✨ Features + - πŸ–₯️ UI & Experience inspired by ChatGPT with enhanced design and features + - πŸ€– AI Model Selection: + - Anthropic (Claude), AWS Bedrock, OpenAI, Azure OpenAI, Google, Vertex AI, OpenAI Assistants API (incl. Azure) + - Custom Endpoints: Use any OpenAI-compatible API with LibreChat, no proxy required + - Compatible with Local & Remote AI Providers: + - Ollama, groq, Cohere, Mistral AI, Apple MLX, koboldcpp, together.ai, + - OpenRouter, Perplexity, ShuttleAI, Deepseek, Qwen, and more + - πŸ”§ Code Interpreter API: + - Secure, Sandboxed Execution in Python, Node.js (JS/TS), Go, C/C++, Java, PHP, Rust, and Fortran + - Seamless File Handling: Upload, process, and download files directly + - No Privacy Concerns: Fully isolated and secure execution + - πŸ”¦ Agents & Tools Integration: + - LibreChat Agents: + - No-Code Custom Assistants: Build specialized, AI-driven helpers without coding + - Flexible & Extensible: Attach tools like DALL-E-3, file search, code execution, and more + - Compatible with Custom Endpoints, OpenAI, Azure, Anthropic, AWS Bedrock, and more + - Model Context Protocol (MCP) Support for Tools + - Use LibreChat Agents and OpenAI Assistants with Files, Code Interpreter, Tools, and API Actions + - πŸ” Web Search: + - Search the internet and retrieve relevant information to enhance your AI context + - Combines search providers, content scrapers, and result rerankers for optimal results + - πŸͺ„ Generative UI with Code Artifacts: + - Code Artifacts allow creation of React, HTML, and Mermaid diagrams directly in chat + - 🎨 Image Generation & Editing + - Text-to-image and image-to-image with GPT-Image-1 + - Text-to-image with DALL-E (3/2), Stable Diffusion, Flux, or any MCP server + - Produce stunning visuals from prompts or refine existing images with a single instruction + - πŸ’Ύ Presets & Context Management: + - Create, Save, & Share Custom Presets + - Switch between AI Endpoints and Presets mid-chat + - Edit, Resubmit, and Continue Messages with Conversation branching + - Fork Messages & Conversations for Advanced Context control + - πŸ’¬ Multimodal & File Interactions: + - Upload and analyze images with Claude 3, GPT-4.5, GPT-4o, o1, Llama-Vision, and Gemini πŸ“Έ + - Chat with Files using Custom Endpoints, OpenAI, Azure, Anthropic, AWS Bedrock, & Google πŸ—ƒοΈ + - 🌎 Multilingual UI: + - English, δΈ­ζ–‡, Deutsch, EspaΓ±ol, FranΓ§ais, Italiano, Polski, PortuguΓͺs Brasileiro + - Русский, ζ—₯本θͺž, Svenska, ν•œκ΅­μ–΄, TiαΊΏng Việt, 繁體中文, Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ©, TΓΌrkΓ§e, Nederlands, Χ’Χ‘Χ¨Χ™Χͺ + - 🧠 Reasoning UI: + - Dynamic Reasoning UI for Chain-of-Thought/Reasoning AI models like DeepSeek-R1 + - 🎨 Customizable Interface: + - Customizable Dropdown & Interface that adapts to both power users and newcomers + - πŸ—£οΈ Speech & Audio: + - Chat hands-free with Speech-to-Text and Text-to-Speech + - Automatically send and play Audio + - Supports OpenAI, Azure OpenAI, and Elevenlabs + - πŸ“₯ Import & Export Conversations: + - Import Conversations from LibreChat, ChatGPT, Chatbot UI + - Export conversations as screenshots, markdown, text, json + - πŸ” Search & Discovery: + - Search all messages/conversations + - πŸ‘₯ Multi-User & Secure Access: + - Multi-User, Secure Authentication with OAuth2, LDAP, & Email Login Support + - Built-in Moderation, and Token spend tools + - βš™οΈ Configuration & Deployment: + - Configure Proxy, Reverse Proxy, Docker, & many Deployment options + - Use completely local or deploy on the cloud + - πŸ“– Open-Source & Community: + - Completely Open-Source & Built in Public + - Community-driven development, support, and feedback +developer: Danny Avila +website: https://librechat.ai/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/2947 +repo: https://github.com/danny-avila/LibreChat +support: https://github.com/danny-avila/LibreChat/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "dfwebos@dfwebos.local" +defaultPassword: "" +deterministicPassword: true +dependencies: [] +releaseNotes: >- + 🚨 Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 30 исправлСний бСзопасности ΠΈ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся для всСх Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + - Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ усилСниС бСзопасности с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 30 исправлСниями бСзопасности Π²ΠΎ всСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ MCP, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΡˆΡ‚ΠΎΡ€ΠΌΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ, исправлСния условий Π³ΠΎΠ½ΠΊΠΈ OAuth ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс STDIO. + - Π—Π°ΠΌΠ΅Π½Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΡƒΡŽ ΠΈ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ. + - Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ статичСский HTML для Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ отобраТСния. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° встроСнного парсСра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ODT. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… SMTP-Ρ€Π΅Π»Π΅. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ доступности для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΎΠ² ΠΈ Π³Ρ€ΡƒΠΏΠΏ Π΄Π°Ρ‚. + - ΠžΠ±Ρ‰ΠΈΠ΅ ссылки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠ²Π»ΡΡŽΡ‚ΡΡ частными. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://www.librechat.ai/changelog. +path: "" diff --git a/librechat/docker-compose.yml b/librechat/docker-compose.yml new file mode 100644 index 0000000..7556b04 --- /dev/null +++ b/librechat/docker-compose.yml @@ -0,0 +1,81 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: librechat_api_1 + APP_PORT: 3080 + + api: + image: ghcr.io/danny-avila/librechat:v0.8.4@sha256:89b0008e610e1dad635d866c09e007e308a145ce764d1eba7c8c6de7414d934b + restart: on-failure + user: "1000:1000" + command: npm run backend:dev + env_file: + - path: ${APP_DATA_DIR}/.env + environment: + - HOST=0.0.0.0 + - MONGO_URI=mongodb://librechat_mongodb_1:27017/LibreChat + - MEILI_HOST=http://librechat_meilisearch_1:7700 + - RAG_PORT=8000 + - RAG_API_URL=http://librechat_rag_api_1:8000 + - OPENAI_API_KEY=user_provided + - GOOGLE_KEY=user_provided + - ANTHROPIC_API_KEY=user_provided + - ASSISTANTS_API_KEY=user_provided + - CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0 + - CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb + - JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef + - JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418 + volumes: + - ${APP_DATA_DIR}/data/api/librechat.yaml:/app/librechat.yaml + - ${APP_DATA_DIR}/data/api/images:/app/client/public/images + - ${APP_DATA_DIR}/data/api/uploads:/app/uploads + - ${APP_DATA_DIR}/data/api/logs:/app/api/logs + depends_on: + - mongodb + - rag_api + + mongodb: + image: mongo:8.0.10@sha256:15fb53a5160ebabff5ecade8f8b5d48721b68ea190957a7f35b5b38e8340e62b + restart: on-failure + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/db:/data/db + command: mongod --noauth + + meilisearch: + image: getmeili/meilisearch:v1.12.3@sha256:4acfcbbb9e089aa1aac838cfda3fba7f07aaaef044c23da8acbe0ab741400dac + restart: on-failure + user: "1000:1000" + environment: + - MEILI_HOST=http://librechat_meilisearch_1:7700 + - MEILI_NO_ANALYTICS=true + - MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt + volumes: + - ${APP_DATA_DIR}/data/meilisearch:/meili_data + + vectordb: + image: ankane/pgvector:v0.5.1@sha256:d3a9d8ac27bb7e05e333ef25b634d2625adaa85336ab729954b9e94859bf6fa7 + environment: + POSTGRES_DB: mydatabase + POSTGRES_USER: myuser + POSTGRES_PASSWORD: mypassword + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/vectordb:/var/lib/postgresql/data + + rag_api: + image: ghcr.io/danny-avila/librechat-rag-api-dev-lite:v0.7.3@sha256:67dba8e1e5707a795f2188d1e345f23b8ebf3bf75365026395edec76474cefa6 + env_file: + - path: ${APP_DATA_DIR}/.env + environment: + - DB_HOST=librechat_vectordb_1 + - RAG_PORT=8000 + - OPENAI_API_KEY=user_provided + - GOOGLE_KEY=user_provided + - ANTHROPIC_API_KEY=user_provided + - ASSISTANTS_API_KEY=user_provided + restart: on-failure + depends_on: + - vectordb diff --git a/librechat/hooks/pre-start b/librechat/hooks/pre-start new file mode 100755 index 0000000..733bcfc --- /dev/null +++ b/librechat/hooks/pre-start @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π΄ΠΎΠ·ΠΎΡ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π±Ρ‹Π» Π»ΠΈ ΡƒΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ +USER_SENTINEL="${APP_DATA_DIR}/.user_created" + +# имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ +USER_NAME="DFWebOS" +USER_EMAIL="dfwebos@dfwebos.local" + +# максимальноС количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΈ врСмя оТидания ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ (60 сСкунд) +MAX_TRIES=12 +SLEEP_SECS=5 + +# ─────────────────────────────────────────────────────────── +# ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ +# ─────────────────────────────────────────────────────────── +if [[ -f "$USER_SENTINEL" ]]; then + echo "Librechat: user already initialised - skipping bootstrap." + exit 0 +fi + +# ─────────────────────────────────────────────────────────── +# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ вСсь стСк, Ρ‡Ρ‚ΠΎΠ±Ρ‹ миграция Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ автоматичСски. +# ВСроятно, здСсь ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ сСрвисы, Π½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ это для простоты. +# --wait игнорируСтся Π² старых вСрсиях Compose (DFWebOS < 1.0) +# ─────────────────────────────────────────────────────────── +echo "Librechat: starting full stack to run migrations…" +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" \ + up -d --wait --wait-timeout 90 + +# ─────────────────────────────────────────────────────────── +# ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ создан (максимум 60 сСкунд). +# ВсС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹, поэтому с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ всС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ. +# Но Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² для надСТности +# ─────────────────────────────────────────────────────────── +echo "Librechat: ensuring user exists…" +for ((try=1; try<=MAX_TRIES; try++)); do + # - Π’ случаС успСха ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠ· 0, сообщая Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ. + if "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" exec -T api node config/create-user.js "${USER_EMAIL}" "${USER_NAME}" "${USER_NAME}" "${APP_PASSWORD}" --email-verified=true ; then + touch "$USER_SENTINEL" + echo "Librechat: user ready." + break + fi + echo " Attempt $try/$MAX_TRIES failed - retrying in ${SLEEP_SECS}s…" + sleep "$SLEEP_SECS" +done + +if [[ ! -f "$USER_SENTINEL" ]]; then + echo "Librechat ERROR: could not create user after $MAX_TRIES attempts." + exit 1 +fi + +echo "Librechat: bootstrap finished - stopping stack for clean start…" +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" stop diff --git a/libreddit/dfwebos-app.yml b/libreddit/dfwebos-app.yml new file mode 100644 index 0000000..f409194 --- /dev/null +++ b/libreddit/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1 +id: libreddit +category: social +name: LibReddit +version: "0.22.9" +tagline: ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ интСрфСйс Reddit +description: >- + Libreddit β€” это сочСтаниС слов Β«libreΒ» (Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ свободу) ΠΈ Β«RedditΒ». + Libreddit надССтся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простой способ просмотра Reddit Π±Π΅Π· Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠ² ΠΈ раздувания ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. + ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΠΉΡ‚Π΅ r/bitcoin Π±Π΅Π· отслСТивания. + + + - πŸš€ Быстро: написано Π½Π° Rust для нСвСроятно высокой скорости ΠΈ бСзопасности памяти. + + - ☁️ Π‘Π²Π΅Ρ‚: Π±Π΅Π· JavaScript, Π±Π΅Π· Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, Π±Π΅Π· отслСТивания, Π±Π΅Π· раздутия. + + - πŸ•΅ Частный: всС запросы ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· сСрвСр, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠ΅Π΄ΠΈΠ°. + + - πŸ”’ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: строгая ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° бСзопасности ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ запросы Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΊ Reddit. +developer: Spikecodes +website: https://spike.codes/ +dependencies: [] +repo: https://github.com/spikecodes/libreddit +support: https://matrix.to/#/#libreddit:kde.org +port: 7420 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Jasper +submission: https://github.com/getumbrel/dfwebos-apps/pull/126 +releaseNotes: "" \ No newline at end of file diff --git a/libreddit/docker-compose.yml b/libreddit/docker-compose.yml new file mode 100644 index 0000000..5b1f721 --- /dev/null +++ b/libreddit/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: libreddit_web_1 + APP_PORT: 7420 + + web: + image: ceramicwhite/libreddit:0.22.9@sha256:00a133da4ae8eb1b7d3ce9af0ca387e2dd929dc6b490736532b5d998a025c362 + restart: on-failure + stop_grace_period: 1m + init: true + user: "1000:1000" + environment: + PORT: 7420 + healthcheck: + disable: true \ No newline at end of file diff --git a/libreoffice/data/config/.gitkeep b/libreoffice/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/libreoffice/dfwebos-app.yml b/libreoffice/dfwebos-app.yml new file mode 100644 index 0000000..4001fdb --- /dev/null +++ b/libreoffice/dfwebos-app.yml @@ -0,0 +1,42 @@ +manifestVersion: 1 +id: libreoffice +category: files +name: LibreOffice +version: "7.6.7" +tagline: "Π”Π΅Π»Π°ΠΉΡ‚Π΅ большС – ΠΏΡ€ΠΎΡ‰Π΅, быстрСС, ΡƒΠΌΠ½Π΅Π΅" +description: >- + LibreOffice β€” это бСсплатный ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ офисный ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊ OpenOffice.org (ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстный ΠΊΠ°ΠΊ OpenOffice). Π•Π³ΠΎ понятный интСрфСйс ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ свой творчСский ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + LibreOffice Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ бСсплатным офисным ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅: Writer (тСкстовый процСссор), Calc (элСктронныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹), Impress (ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ), Draw (вСкторная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Π±Π»ΠΎΠΊ-схСмы), Base (Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈ Math (Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»). +developer: The Document Foundation +website: https://www.libreoffice.org/ +dependencies: [] +repo: https://www.libreoffice.org/about-us/source-code/ +support: https://www.libreoffice.org/get-help/community-support/ +port: 5001 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/216 +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Новый мастСр Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ страниц Π² мСню «Вставка» Writer для простой одноэтапной вставки Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² страниц Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Ρ‹. + β€” Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список стилСй Π°Π±Π·Π°Ρ†Π΅Π² Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов форматирования Writer. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ цитирования ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π² Writer. + β€” Новая боковая панСль Β«Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΒ» Π² Writer для упрощСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ доступности Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ отслСТиваниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Writer. + - НовыС стили рисования Ρ„ΠΈΠ³ΡƒΡ€ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Calc. + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° числовых Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π² Calc. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. + - ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅-ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅! + + + ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° https://wiki.documentfoundation.org/ReleaseNotes/7.6.. \ No newline at end of file diff --git a/libreoffice/docker-compose.yml b/libreoffice/docker-compose.yml new file mode 100644 index 0000000..a4d4b6d --- /dev/null +++ b/libreoffice/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: libreoffice_server_1 + APP_PORT: 3000 + + server: + image: linuxserver/libreoffice:7.6.7@sha256:a62c7f094f2a7ed8145983d04f54ca80d85b557bbdda0f9aa784ccb6267b70e8 + restart: on-failure + stop_grace_period: 1m + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config \ No newline at end of file diff --git a/librephotos/data/cache/.gitkeep b/librephotos/data/cache/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/librephotos/data/cache/.gitkeep @@ -0,0 +1 @@ + diff --git a/librephotos/data/db/.gitkeep b/librephotos/data/db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/librephotos/data/db/.gitkeep @@ -0,0 +1 @@ + diff --git a/librephotos/data/logs/.gitkeep b/librephotos/data/logs/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/librephotos/data/logs/.gitkeep @@ -0,0 +1 @@ + diff --git a/librephotos/data/photos/.gitkeep b/librephotos/data/photos/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/librephotos/data/photos/.gitkeep @@ -0,0 +1 @@ + diff --git a/librephotos/data/protected_media/.gitkeep b/librephotos/data/protected_media/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/librephotos/data/protected_media/.gitkeep @@ -0,0 +1 @@ + diff --git a/librephotos/dfwebos-app.yml b/librephotos/dfwebos-app.yml new file mode 100644 index 0000000..03e1602 --- /dev/null +++ b/librephotos/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1 +id: librephotos +name: LibrePhotos +tagline: Π‘Π»ΡƒΠΆΠ±Π° управлСния фотографиями +category: files +version: "2026w14" +port: 8150 +description: >- + πŸ–ΌοΈ LibrePhotos β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для управлСния фотографиями, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ свои ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. Он прСдоставляСт Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ распознаваниС Π»ΠΈΡ†, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ автоматичСски ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ людСй Π½Π° фотографиях, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ поиск. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ сцСн Π½Π° изобраТСниях, позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ сСмантичСский поиск Π½Π° основС содСрТания ΠΈΡ… Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ. + + + Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ RAW ΠΈ HEIC, ΠΈ позволяСт автоматичСски ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Π»ΡŒΠ±ΠΎΠΌΡ‹ Π½Π° основС событий, Π΄Π°Ρ‚ ΠΈ мСст. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ свои ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Ρ‹ Π² хронологичСском порядкС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡˆΠΊΠ°Π»Ρ‹ ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ свои Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΏΠΎ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ GPS ΠΈ информация EXIF. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ доступ с настраиваСмыми Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, позволяя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ Π² соотвСтствии со своими ролями. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ Π³Π΅ΠΎΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для присвоСния гСографичСских Π½Π°Π·Π²Π°Π½ΠΈΠΉ мСстам Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ доступ ΠΈ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ. + + + Π’ Ρ†Π΅Π»ΠΎΠΌ, LibrePhotos стрСмится ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ комплСксный, ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ управлСния большими коллСкциями Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. + + + ⚠️ ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ настройка ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ 5–10 ΠΌΠΈΠ½ΡƒΡ‚ Π² зависимости ΠΎΡ‚ вашСго оборудования. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ΡΡŒ тСрпСния, ΠΏΠΎΠΊΠ° LibrePhotos готовится Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. +developer: LibrePhotos +website: https://docs.librephotos.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3284 +repo: https://github.com/LibrePhotos/librephotos-docker +support: https://github.com/LibrePhotos/librephotos-docker/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + НСкоторыС ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ распознавания Π»ΠΈΡ† Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ XMP, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π»ΠΈΡ† пСрСносимыми ΠΈ совмСстимыми с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ фотоинструмСнтами. + - Новая панСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° работоспособности слуТб Π½Π° страницС администратора, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ состояниС всСх Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… слуТб с элСмСнтами управлСния запуском ΠΈ остановкой. + - Новая ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² сСрвСра Π² ΠΏΠ°Π½Π΅Π»ΠΈ администратора позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ сСрвСра прямо ΠΈΠ· интСрфСйс. + - НовыС ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹: датский, Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΈΠΉ, корСйский, Ρ‚Π°ΠΌΠΈΠ»ΡŒΡΠΊΠΈΠΉ, голландский, украинский. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΏΠΎΠΊΠ°Π· Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠΎΠ² с двиТущимися фотографиями. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² Π»ΠΈΡ† с использованиСм Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ расчСта пСрСкрытия. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой подписи ΠΊ фотографиям, ΠΊΠΎΠ³Π΄Π° слуТба Ρ‚Π΅Π³ΠΎΠ² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ошибкС Π²Ρ…ΠΎΠ΄Π° Π² систСму для отобраТСния ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ бСзопасности: Django ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎ вСрсии 5.2.12. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ бСзопасности: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΌΡΡ администраторами, Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ посрСдством рСгистрации API. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/LibrePhotos/librephotos-docker/releases. +dependencies: [] +path: "" +defaultUsername: "admin" +deterministicPassword: true diff --git a/librephotos/docker-compose.yml b/librephotos/docker-compose.yml new file mode 100644 index 0000000..e1a63fa --- /dev/null +++ b/librephotos/docker-compose.yml @@ -0,0 +1,70 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: librephotos_proxy_1 + APP_PORT: 80 + + proxy: + image: reallibrephotos/librephotos-proxy:2026w14@sha256:c88c0a65b50ba7e4f65ccc9aa7d5002df9827cb79edb1f88a3a4c130d0b03be4 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/photos:/data + - ${APP_DATA_DIR}/data/protected_media:/protected_media + expose: + - "80" + depends_on: + - backend + - frontend + + db: + image: pgautoupgrade/pgautoupgrade:17-alpine3.22@sha256:2ec008ae5f0a2e5dd8f4d2475df41cf3ccc9562acf49bd668fcc0c061944b9bf + restart: on-failure + environment: + POSTGRES_USER: librephotos + POSTGRES_PASSWORD: librephotos + POSTGRES_DB: librephotos + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + healthcheck: + test: ["CMD", "psql", "-U", "librephotos", "-d", "librephotos", "-c", "SELECT 1;"] + interval: 5s + timeout: 5s + retries: 5 + + frontend: + image: reallibrephotos/librephotos-frontend:2026w14@sha256:e2fb909607b1d9552c033a9432446eadb6b693289af2b4b016da55d50724afcb + restart: on-failure + + backend: + image: reallibrephotos/librephotos:2026w14@sha256:3f4d6fa163bf41f2cd496aca342307fec8b827fe4a7ced1e7773a050ef7a5dca + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/photos:/data + - ${APP_DATA_DIR}/data/protected_media:/protected_media + - ${APP_DATA_DIR}/data/logs:/logs + - ${APP_DATA_DIR}/data/cache:/root/.cache + environment: + SECRET_KEY: ${APP_SEED} + BACKEND_HOST: backend + ADMIN_EMAIL: admin@admin.com + ADMIN_USERNAME: admin + ADMIN_PASSWORD: ${APP_PASSWORD} + DB_BACKEND: postgresql + DB_NAME: librephotos + DB_USER: librephotos + DB_PASS: librephotos + DB_HOST: librephotos_db_1 + DB_PORT: 5432 + MAPBOX_API_KEY: "" + WEB_CONCURRENCY: 2 + HEAVYWEIGHT_PROCESS: 1 + FIXPERMISSIONS: "true" + SKIP_PATTERNS: "" + ALLOW_UPLOAD: "true" + CSRF_TRUSTED_ORIGINS: "" + DEBUG: "0" + depends_on: + db: + condition: service_healthy diff --git a/librespeed/data/config/.gitkeep b/librespeed/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/librespeed/dfwebos-app.yml b/librespeed/dfwebos-app.yml new file mode 100644 index 0000000..737597f --- /dev/null +++ b/librespeed/dfwebos-app.yml @@ -0,0 +1,31 @@ +manifestVersion: 1 +id: librespeed +category: networking +name: LibreSpeed +version: "6.1.0" +tagline: БСсплатный тСст скорости с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ +description: >- + БСсплатный тСст скорости с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π˜Π·ΠΌΠ΅Ρ€ΡŒΡ‚Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ вашими устройствами ΠΈ DFWebOS. +releaseNotes: >- + Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² этом выпускС: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды TAGLINE для настройки слогана, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² соврСмСнном интСрфСйсС. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ рСсурсы GeoIP для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ точности опрСдСлСния мСстополоТСния. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу: https://github.com/librespeed/speedtest/releases. +developer: LibreSpeed +website: https://librespeed.org/ +dependencies: [] +repo: https://github.com/librespeed/speedtest +support: https://github.com/librespeed/speedtest/issues +port: 3011 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/609 diff --git a/librespeed/docker-compose.yml b/librespeed/docker-compose.yml new file mode 100644 index 0000000..4db4cb8 --- /dev/null +++ b/librespeed/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: librespeed_server_1 + APP_PORT: 8080 + + server: + image: ghcr.io/librespeed/speedtest:6.1.0@sha256:b6b0890047e833158370d59ed5ef289b3e67a58f4a363cd37ef5c09d170d8543 + environment: + PUID: 1000 + PGID: 1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + restart: on-failure diff --git a/librespeed/hooks/post-update b/librespeed/hooks/post-update new file mode 100755 index 0000000..29b11ec --- /dev/null +++ b/librespeed/hooks/post-update @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +# пСрСзапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠ²Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° Π±Ρ‹Π» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ +"${DFWEBOS_ROOT}/scripts/app" restart "${APP_ID}" & \ No newline at end of file diff --git a/libretranslate/data/api_keys/.gitkeep b/libretranslate/data/api_keys/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/libretranslate/data/models/.gitkeep b/libretranslate/data/models/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/libretranslate/dfwebos-app.yml b/libretranslate/dfwebos-app.yml new file mode 100644 index 0000000..dfe860b --- /dev/null +++ b/libretranslate/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1.2 +id: libretranslate +category: ai +name: LibreTranslate +version: "1.6.5" +tagline: БСсплатный ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ API +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ LibreTranslate Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ‚ΠΎΠ²Π°Ρ€Π½Ρ‹ΠΌΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ. + + ⚠️ ПослС установки этому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎ 10 ΠΌΠΈΠ½ΡƒΡ‚ ΠΈΠ»ΠΈ большС, Π² зависимости ΠΎΡ‚ вашСго оборудования ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. LibreTranslate Π΄ΠΎΠ»ΠΆΠ΅Π½ сначала Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΎΠΊΠΎΠ»ΠΎ 10 Π“Π‘ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ интСрфСйс станСт доступСн. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹. + + + LibreTranslate β€” это бСсплатная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° машинного ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ API, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ размСщСнная Π½Π° собствСнном хостингС. + Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… API, ΠΎΠ½ Π½Π΅ полагаСтся Π½Π° ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Ρ… поставщиков, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Google ΠΈΠ»ΠΈ Azure, для выполнСния ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ². + ВмСсто этого Π΅Π³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° основан Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Argos Translate с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. +developer: LibreTranslate Contributors +website: https://libretranslate.com +dependencies: [] +repo: https://github.com/LibreTranslate/LibreTranslate +support: https://github.com/LibreTranslate/LibreTranslate/discussions +port: 7017 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: highghlow +submission: https://github.com/getumbrel/dfwebos-apps/pull/1040 +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ китайский язык. + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности опрСдСлСния языка + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ запросов Π½Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ смайлов. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ интСрфСйс ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/LibreTranslate/LibreTranslate/releases. +disabled: true diff --git a/libretranslate/docker-compose.yml b/libretranslate/docker-compose.yml new file mode 100644 index 0000000..f232726 --- /dev/null +++ b/libretranslate/docker-compose.yml @@ -0,0 +1,28 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: libretranslate_main_1 + APP_PORT: 5000 + PROXY_AUTH_ADD: "false" + main: + image: libretranslate/libretranslate:v1.6.5@sha256:a3518195e4e810ba0d9dd251a851f24918059d757ef3c5cf8e0f881daf4242fc + restart: on-failure + + ## Π’ΠΎΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΠ΅Ρ€, ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π»Ρ‹. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ…ΠΎΠ΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ установкС. + tty: true + healthcheck: + test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py'] + ## РаскоммСнтируйтС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ ΠΏΡ€ΠΈ нСобходимости ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. + # command: --ssl --ga-id MY-GA-ID --req-limit 100 --char-limit 500 + ## РаскоммСнтируйтС этот Ρ€Π°Π·Π΄Π΅Π» ΠΈ Ρ‚ΠΎΠΌ libretranslate_api_keys, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию ΠΊΠ»ΡŽΡ‡Π΅ΠΉ API. + environment: + - LT_API_KEYS=true + - LT_API_KEYS_DB_PATH=/app/db/api_keys.db # Same result as `db/api_keys.db` or `./db/api_keys.db` + ## РаскоммСнтируйтС эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ‚ΠΎΠΌ libretranslate_models, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + - LT_UPDATE_MODELS=true + ## - LT_LOAD_ONLY=en,fr + volumes: + - ${APP_DATA_DIR}/data/api_keys:/app/db + - ${APP_DATA_DIR}/data/models:/home/libretranslate/.local:rw diff --git a/libretranslate/hooks/pre-start b/libretranslate/hooks/pre-start new file mode 100755 index 0000000..8da1399 --- /dev/null +++ b/libretranslate/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ΠœΡ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ user/group 1032: https://github.com/LibreTranslate/LibreTranslate/blob/f7a35db05b3ac7fcd40489faa7da827b03354faf/docker/Dockerfile#L28-L33. +# ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ устанавливаСм Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… 1032:1032. +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/data" + +DESIRED_OWNER="1032:1032" + +API_KEYS_DATA_DIR="${APP_DATA_DIR}/api_keys" +MODELS_DATA_DIR="${APP_DATA_DIR}/models" + +set_permissions() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +set_permissions "${API_KEYS_DATA_DIR}" +set_permissions "${MODELS_DATA_DIR}" \ No newline at end of file diff --git a/lidarr/data/config/.gitkeep b/lidarr/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lidarr/dfwebos-app.yml b/lidarr/dfwebos-app.yml new file mode 100644 index 0000000..8604dc9 --- /dev/null +++ b/lidarr/dfwebos-app.yml @@ -0,0 +1,45 @@ +manifestVersion: 1.1 +id: lidarr +category: media +name: Lidarr +version: "3.1.0.4875" +tagline: Выглядит ΠΈ ΠΏΠ°Ρ…Π½Π΅Ρ‚ ΠΊΠ°ΠΊ Sonarr, Π½ΠΎ создан для ΠΌΡƒΠ·Ρ‹ΠΊΠΈ. +description: >- + Lidarr β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Usenet ΠΈ BitTorrent. + Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько RSS-ΠΊΠ°Π½Π°Π»ΠΎΠ² Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Ρ… альбомов Π²Π°ΡˆΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… исполнитСлСй ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ индСксаторами для ΠΈΡ… Π·Π°Ρ…Π²Π°Ρ‚Π°, сортировки ΠΈ пСрСимСнования. + Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° автоматичСскоС ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ качСства ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, ΠΊΠΎΠ³Π΄Π° становится доступным Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокого качСства. + + + πŸ› οΈ ИНБВРУКЦИЯ ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Lidarr Π½Π° DFWebOS автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², установлСнных ΠΈΠ· DFWebOS App Store. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ· Transmission, qBittorerent ΠΈ SABnzbd. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚(Ρ‹). + + + ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ индСксатор, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Lidarr ΠΌΠΎΠ³ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ индСксаторы нСпосрСдствСнно Π² Lidarr ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Prowlarr ΠΈΠ· DFWebOS App Store, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ индСксаторами Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… прилоТСниях. + Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ свои индСксаторы Π² Prowlarr, ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски доступны Π² Lidarr. +developer: Lidarr +website: https://lidarr.audio/ +dependencies: + - transmission +repo: https://github.com/Lidarr/Lidarr +support: https://github.com/Lidarr/Lidarr/issues +port: 8686 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° частных сСтСй IPv6. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° успСха Π²Ρ…ΠΎΠ΄Π° Π² систСму qBittorrent API. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Lidarr/Lidarr/releases. +permissions: + - STORAGE_DOWNLOADS +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/commit/60878f278d544b204d8e7c96240c797f43a9b319 diff --git a/lidarr/docker-compose.yml b/lidarr/docker-compose.yml new file mode 100644 index 0000000..c2a4b50 --- /dev/null +++ b/lidarr/docker-compose.yml @@ -0,0 +1,41 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: lidarr_server_1 + APP_PORT: 8686 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: linuxserver/lidarr:3.1.0@sha256:f2a186ce04ec5adb133f92a08dd3efbc918fc71b33077426ef099d94350dfa1b + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + restart: on-failure + + mac: + image: getumbrel/media-app-configurator:v1.3.0@sha256:67e75dd9f5a14402b7816119a8e20189bc2465484cea077909d164687e59742b + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + environment: + APP_ID: "lidarr" + APP_URL: "http://lidarr_server_1:8686" + TRANSMISSION_HOST: "transmission_server_1" + TRANSMISSION_PORT: 9091 + ROOT_FOLDER: "/downloads/music" + # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ qBittorrent + QBITTORRENT_INSTALLED: ${APP_LIDARR_QBITTORRENT_INSTALLED:-"false"} + QBITTORRENT_HOST: "qbittorrent_server_1" + QBITTORRENT_PORT: 8080 + # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ SABnzbd + SABNZBD_INSTALLED: ${APP_LIDARR_SABNZBD_INSTALLED:-"false"} + SABNZBD_HOST: "sabnzbd_web_1" + SABNZBD_PORT: 8080 + SABNZBD_API_KEY: ${APP_LIDARR_SABNZBD_API_KEY:-""} diff --git a/lidarr/exports.sh b/lidarr/exports.sh new file mode 100644 index 0000000..b60ebfc --- /dev/null +++ b/lidarr/exports.sh @@ -0,0 +1,13 @@ +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСны Π»ΠΈ qBittorrent ΠΈ SABnzbd. +installed_apps=$("${DFWEBOS_ROOT}/scripts/app" ls-installed) + +if echo "$installed_apps" | grep --quiet 'qbittorrent'; then + export APP_LIDARR_QBITTORRENT_INSTALLED="true" +fi + +if echo "$installed_apps" | grep --quiet 'sabnzbd'; then + export APP_LIDARR_SABNZBD_INSTALLED="true" + # экспортируйтС SABNZBD_API_KEY, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: + # api_key = 98e3444f7fab45e592958673bf656g3 + export APP_LIDARR_SABNZBD_API_KEY=$(grep -Po 'api_key = \K.*' "${DFWEBOS_ROOT}/app-data/sabnzbd/data/config/sabnzbd.ini") +fi diff --git a/lidarr/hooks/post-install b/lidarr/hooks/post-install new file mode 100755 index 0000000..3d74291 --- /dev/null +++ b/lidarr/hooks/post-install @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +set -euo pipefail + +if "${DFWEBOS_ROOT}/scripts/app" ls-installed | grep --quiet 'prowlarr' +then + CONFIG_FILE="${APP_DATA_DIR}/data/config/config.xml" + + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° Ρ„Π°ΠΉΠ» config.xml появится. + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° свойство ΠΊΠ»ΡŽΡ‡Π° API () появится Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. + for attempt in $(seq 1 20); do + if [[ -f "${CONFIG_FILE}" ]] && cat "${CONFIG_FILE}" | grep --quiet ''; then + echo "config.xml file exists and xml key exists..." + + # ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Prowlarr, Ρ‡Ρ‚ΠΎΠ±Ρ‹ автоматичСски Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. + "${DFWEBOS_ROOT}/scripts/app" restart prowlarr + + exit + fi + sleep 1 + done + + >&2 echo "Error: Failed to locate inside: ${CONFIG_FILE}" + exit 1 +fi \ No newline at end of file diff --git a/lightning-shell/data/.gitkeep b/lightning-shell/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lightning-shell/dfwebos-app.yml b/lightning-shell/dfwebos-app.yml new file mode 100644 index 0000000..3fe7248 --- /dev/null +++ b/lightning-shell/dfwebos-app.yml @@ -0,0 +1,42 @@ +manifestVersion: 1 +id: lightning-shell +category: bitcoin +name: Lightning Shell +version: "0.1.10-build-1" +tagline: Π’Π΅Π±-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ управлСния ΡƒΠ·Π»Π°ΠΌΠΈ LN +description: > + Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± устарСвании: это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ устарСло ΠΈ поэтому большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ обновлСния. + + + Lightning Shell β€” это Π²Π΅Π±-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ сСрвСра DFWebOS, которая + Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹: + + + - lncli + + - зарядка + + - Π˜Π½Ρ‚ΠΎΠΏ + + - рСбаланс-Π»Π΅Π½Π΄ + + - Буэц +developer: Ioan BizΔƒu +website: https://lightningshell.app +dependencies: + - lightning + - bitcoin +repo: https://ibz.github.io/lightning-shell/ +support: https://ibz.github.io/lightning-shell/issues +port: 7681 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: dfwebos +deterministicPassword: true +submitter: Ioan BizΔƒu +submission: https://github.com/getumbrel/umbrel/pull/1146 +releaseNotes: "" +disabled: true \ No newline at end of file diff --git a/lightning-shell/docker-compose.yml b/lightning-shell/docker-compose.yml new file mode 100644 index 0000000..cf70944 --- /dev/null +++ b/lightning-shell/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: lightning-shell_web_1 + APP_PORT: 7681 + + web: + image: ghcr.io/ibz/lightning-shell:v0.1.10-buster-slim@sha256:4ea6aafee8ddd092b27850bccef71458d9e382e63d12b159d075bfde328ebef3 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + - ${APP_DATA_DIR}/data:/data + environment: + APP_PASSWORD: "${APP_PASSWORD}" + BITCOIN_IP: "${APP_BITCOIN_NODE_IP}" + BITCOIN_RPC_PORT: "${APP_BITCOIN_RPC_PORT}" + BITCOIN_RPC_USER: "${APP_BITCOIN_RPC_USER}" + BITCOIN_RPC_PASS: "${APP_BITCOIN_RPC_PASS}" + LND_IP: "${APP_LIGHTNING_NODE_IP}" + LND_GRPC_PORT: ${APP_LIGHTNING_NODE_GRPC_PORT} diff --git a/lightning-terminal/data/.gitkeep b/lightning-terminal/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lightning-terminal/dfwebos-app.yml b/lightning-terminal/dfwebos-app.yml new file mode 100644 index 0000000..b445140 --- /dev/null +++ b/lightning-terminal/dfwebos-app.yml @@ -0,0 +1,104 @@ +manifestVersion: 1 +id: lightning-terminal +category: bitcoin +name: Lightning Terminal +version: "0.16.1-alpha" +tagline: Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠ°Π½Π°Π»Π° +description: >- + Lightning Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» β€” это самый простой способ управлСния входящими ΠΈ + исходящая Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Π² сСти Lightning. Π”Π΅Ρ€ΠΆΠΈΡ‚Π΅ свои ΠΊΠ°Π½Π°Π»Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΈ + срСдства Ρ‚Π΅ΠΊΡƒΡ‚. Он прСдоставляСт Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс для взаимодСйствия с вашим + ΠΊΠ°Π½Π°Π»Ρ‹ ΠΈ балансы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Loop. + + + 🚨 Π’ΠΠ–ΠΠžΠ• ΠΠΠŸΠžΠœΠ˜ΠΠΠΠ˜Π• Π”Π›Π― ΠŸΠžΠ›Π¬Π—ΠžΠ’ΠΠ’Π•Π›Π•Π™ TAPROOT ASSETS: + + Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ этого прилоТСния Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ удаляСт Π΄Π°Π½Π½Ρ‹Π΅ прилоТСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Taproot Assets ΠΈ срСдства Bitcoin. + ΠŸΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ установкой этого прилоТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию ΠΏΠ°ΠΏΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния .tapd, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ рСсурсы Taproot послС пСрСустановки. + НСсоблюдСниС этого трСбования ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€Π΅ срСдств. ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²Π°ΠΌ рСгулярно Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ. + Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ этому руководству для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π΄Π°Π½Π½Ρ‹Ρ… Tapd: + https://community.umbrel.com/t/backing-up-taproot-assets-tapd-data-in-lightning-terminal/14360 + + + Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ»? + + - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ ΠΎΡ‚ ΠΊΠ°ΠΏΠΈΡ‚Π°Π»Π° Lightning + + - АрСндуйтС ΠΊΠ°Π½Π°Π» ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ + + - ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ Π·Π° мСньшиС дСньги благодаря ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. + + + Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»? + + - Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Β«Π²Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΒ» для получСния ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ. + + - Π‘Π½ΠΈΠ·ΡŒΡ‚Π΅ комиссию Π·Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π·Π° счСт ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠ°Π½Π°Π»ΠΎΠ² Lightning. + + - ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ срСдства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΠ»ΠΈ слуТбам, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅Ρ‰Π΅ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Lightning, ΠΈ ΠΎΡ‚ Π½ΠΈΡ…. + + - НастраиваСмоС врСмя оТидания ΠΈ Β«ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΅Ρ‰Π΅ большС ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π° комиссиях. + + - ПополнСниС ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° срСдств ΠΈΠ· любого количСства ΠΊΠ°Π½Π°Π»ΠΎΠ² Lightning Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅. +developer: Lightning Labs +website: https://lightning.engineering +dependencies: + - lightning +repo: https://github.com/lightninglabs/lightning-terminal +support: https://github.com/lightninglabs/lightning-terminal/issues/new +port: 3004 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultUsername: "" +deterministicPassword: true +releaseNotes: >- + ⚠️ ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Lightning Node Π΄ΠΎ послСднСй вСрсии, доступной Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ Lightning. + + + Π­Ρ‚Π° вСрсия Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Lightning (LiT) поставляСтся с lnd v0.20.1-beta, Loop v0.31.8-beta, Faraday v0.2.16-alpha, + ΠΏΡƒΠ» v0.6.6-Π±Π΅Ρ‚Π° ΠΈ Tapd v0.7.1. + + + Π’ΠΠ–ΠΠžΠ• ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•: Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ срСдств, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ + Руководство ΠΏΠΎ эксплуатационной бСзопасности + (https://github.com/lightninglabs/taproot-assets/blob/main/docs/safety.md) + ΠΏΠ΅Ρ€Π΅Π΄ использованиСм Tapd Π² основной сСти! + + + 🚨 Π’ΠΠ–ΠΠžΠ• ΠΠΠŸΠžΠœΠ˜ΠΠΠΠ˜Π• Π”Π›Π― ΠŸΠžΠ›Π¬Π—ΠžΠ’ΠΠ’Π•Π›Π•Π™ TAPROOT ASSETS: + + Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ этого прилоТСния Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ удаляСт Π΄Π°Π½Π½Ρ‹Π΅ прилоТСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Taproot Assets ΠΈ срСдства Bitcoin. + ΠŸΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ установкой этого прилоТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию ΠΏΠ°ΠΏΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния .tapd, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ рСсурсы Taproot послС пСрСустановки. + НСсоблюдСниС этого трСбования ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€Π΅ срСдств. ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²Π°ΠΌ рСгулярно Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ. + Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ этому руководству для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π΄Π°Π½Π½Ρ‹Ρ… Tapd: + https://community.umbrel.com/t/backing-up-taproot-assets-tapd-data-in-lightning-terminal/14360 + + + Π”Π΅ΠΌΠΎΠ½ Taproot Assets всС Π΅Ρ‰Π΅ находится Π² Π°Π»ΡŒΡ„Π°-состоянии, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ + всС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ ошибки, ΠΈ Π½Π΅ всС ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ бСзопасности ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹. + Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΅Ρ‰Π΅. Π Π΅Π»ΠΈΠ· Π² основной сСти Π² основном сигнализируСт ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ + ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ измСнСния Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΈ Ρ‡Ρ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Ρ‹, созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ вСрсии 0.3.0, Π±ΡƒΠ΄ΡƒΡ‚ + совмСстим с Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠΌΠΈ вСрсиями. + + ## ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ измСнСния + + Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (taproot-assets.universe.public-access) ΠΈ командная строка. + Ρ„Π»Π°Π³ (--taproot-assets.universe.public-access) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ значСния ΠΈ большС Π½Π΅ являСтся логичСским Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ + ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΡŽΠ½ΠΈΠ²Π΅Ρ€ΡΠ° ΡƒΠ·Π»Π° Ρ‡Π΅Ρ€Π΅Π· RPC ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ r), Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ w) ΠΈΠ»ΠΈ + ΠΎΠ±Π° (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ rw). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Taproot-assets.universe.public-access=true Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² + Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Taproot-assets.universe.public-access=rw. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ„Π»Π°Π³ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки + --taproot-assets.universe.public-access просто Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ + --taproot-assets.universe.public-access=rw. + + ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ постоянно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Π½Π° основС + обратная связь ΠΎΡ‚ сообщСства. + + + Π’ этот выпуск входят Π±Π΅Ρ‚Π°-вСрсия LND v0.20.1, Taproot Assets Daemon v0.7.1, + Loop v0.31.8-Π±Π΅Ρ‚Π°, Pool v0.6.6-Π±Π΅Ρ‚Π° ΠΈ Π€Π°Ρ€Π°Π΄Π΅ΠΉ v0.2.16-Π°Π»ΡŒΡ„Π°. +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/pull/348 \ No newline at end of file diff --git a/lightning-terminal/docker-compose.yml b/lightning-terminal/docker-compose.yml new file mode 100644 index 0000000..0623d30 --- /dev/null +++ b/lightning-terminal/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: lightning-terminal_web_1 + APP_PORT: 3004 + + web: + image: lightninglabs/lightning-terminal:v0.16.1-alpha@sha256:7f8e16d940ee350ff38b2d8e71bda0c512a89822fa62a60097ac7ecc71d660ae + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + HOME: "/data" + APP_PASSWORD: "$APP_PASSWORD" + command: + - --uipassword_env=APP_PASSWORD + - --insecure-httplisten=0.0.0.0:3004 + - --network="$APP_BITCOIN_NETWORK" + - --lnd-mode="remote" + - --remote.lnd.rpcserver=$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT + - --remote.lnd.macaroonpath="/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon" + - --remote.lnd.tlscertpath="/lnd/tls.cert" diff --git a/lightning/data/lightning/.gitkeep b/lightning/data/lightning/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lightning/data/lnd/.gitkeep b/lightning/data/lnd/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lightning/dfwebos-app.yml b/lightning/dfwebos-app.yml new file mode 100644 index 0000000..4398e13 --- /dev/null +++ b/lightning/dfwebos-app.yml @@ -0,0 +1,105 @@ +manifestVersion: 1.1 +id: lightning +category: bitcoin +name: Lightning Node +version: "0.20.0-beta" +tagline: ЗапуститС свой Π»ΠΈΡ‡Π½Ρ‹ΠΉ сСтСвой ΡƒΠ·Π΅Π» Lightning +description: >- + ЗапуститС свой Π»ΠΈΡ‡Π½Ρ‹ΠΉ сСтСвой ΡƒΠ·Π΅Π» Lightning ΠΈ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌΡƒ Bitcoin сСгодня. + + + Π‘Π΅Ρ‚ΡŒ Lightning позволяСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΠ²Π΅Ρ€Ρ…Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Bitcoin. Запустив ΡƒΠ·Π΅Π» Lightning, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свой Bitcoin Π½Π° Lightning, Π½ΠΎ ΠΈ Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ саты, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΡ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Π² сСти. + + + ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Zeus Wallet, Zap ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ кошСлСк, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ lndconnect, для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ управлСния вашим ΡƒΠ·Π»ΠΎΠΌ ΠΈ доступа ΠΊ Π½Π΅ΠΌΡƒ ΠΈΠ· любой Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΌΠΈΡ€Π°. + + + Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… настроСк Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·ΡΡ‚ΡŒ ΠΏΠΎΠ΄ свой ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ свой ΡƒΠ·Π΅Π» ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² соотвСтствии со своими потрСбностями. ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ, Π·Π°Π΄Π°Π² имя, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡŒΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠ°Π½Π°Π»ΠΎΠ², установитС ΠΏΠ»Π°Ρ‚Ρƒ Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ слуТбы стороТСвой башни, настройтС Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + + ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ЛНД. + + + ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ DFWebOS. +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ LND (v0.20.0-Π±Π΅Ρ‚Π°). + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску LND ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/lightningnetwork/lnd/releases/tag/v0.20.0-beta. +developer: DFWebOS +website: https://dfwebos.com +dependencies: + - bitcoin +repo: https://github.com/getumbrel/umbrel-lightning +support: https://community.getumbrel.com/c/bitcoin-and-lightning +port: 2101 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +defaultPassword: "" +widgets: + - id: "bitcoin-wallet" + type: "text-with-buttons" + refresh: "5s" + endpoint: "app:3006/v1/lnd/widgets/bitcoin-wallet" + link: "" + example: + type: "text-with-buttons" + link: "" + title: "Bitcoin Wallet" + text: "1,845,894" + subtext: "sats" + buttons: + - text: "Withdraw" + icon: "arrow-up-right" + link: "?action=send-bitcoin" + - text: "Deposit" + icon: "arrow-down-right" + link: "?action=receive-bitcoin" + - id: "lightning-wallet" + type: "text-with-buttons" + refresh: "2s" + endpoint: "app:3006/v1/lnd/widgets/lightning-wallet" + link: "" + example: + type: "text-with-buttons" + link: "" + title: "Lightning Wallet" + text: "762,248" + subtext: "sats" + buttons: + - text: "Send" + icon: "arrow-up-right" + link: "?action=send-lightning" + - text: "Receive" + icon: "arrow-down-right" + link: "?action=receive-lightning" + - id: "lightning-stats" + type: "four-stats" + refresh: "5s" + endpoint: "app:3006/v1/lnd/widgets/lightning-stats" + link: "" + example: + type: "four-stats" + link: "" + items: + - title: "Connections" + text: "5" + subtext: "peers" + - title: "Active channels" + text: "3" + subtext: "channels" + - title: "Max send" + text: "90K" + subtext: "sats" + - title: "Max receive" + text: "45K" + subtext: "sats" +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/commit/576ecd2bef8d625abceed0f67ec9c487da9b2b1b +backupIgnore: + - data/graph/mainnet/channel.db diff --git a/lightning/docker-compose.yml b/lightning/docker-compose.yml new file mode 100644 index 0000000..19bc338 --- /dev/null +++ b/lightning/docker-compose.yml @@ -0,0 +1,69 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_LIGHTNING_IP + APP_PORT: 3006 + + app: + image: getumbrel/umbrel-lightning:v1.2.1@sha256:41d5e7388a15443103ec0eae583a426dcf04bd371a1371fdeea8ccae99c01972 + restart: on-failure + volumes: + - "${APP_LIGHTNING_NODE_DATA_DIR}:/data/.lnd" + - "${APP_DATA_DIR}/data/lightning:/data" + environment: + PORT: "3006" + TOR_PROXY_IP: "${TOR_PROXY_IP}" + TOR_PROXY_PORT: "${TOR_PROXY_PORT}" + BITCOIN_HOST: "${APP_BITCOIN_NODE_IP}" + RPC_PORT: "${APP_BITCOIN_RPC_PORT}" + RPC_USER: "${APP_BITCOIN_RPC_USER}" + RPC_PASSWORD: "${APP_BITCOIN_RPC_PASS}" + LND_NETWORK: "${APP_BITCOIN_NETWORK}" + LND_HOST: "${APP_LIGHTNING_NODE_IP}" + LND_REST_HIDDEN_SERVICE: "${APP_LIGHTNING_REST_HIDDEN_SERVICE}" + LND_GRPC_HIDDEN_SERVICE: "${APP_LIGHTNING_GRPC_HIDDEN_SERVICE}" + TLS_FILE: "/data/.lnd/tls.cert" + MACAROON_DIR: "/data/.lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/" + CHANNEL_BACKUP_FILE: "/data/.lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/channel.backup" + BACKUP_STATUS_FILE: "/statuses/backup-status.json" + JSON_STORE_FILE: "/data/state.json" + JSON_SETTINGS_FILE: "/data/settings.json" + DFWEBOS_LND_CONF_FILEPATH: "/data/.lnd/dfwebos-lnd.conf" + LND_CONF_FILEPATH: "/data/.lnd/lnd.conf" + LND_INITIALIZE_WITH_TOR_ONLY: "${LND_INITIALIZE_WITH_TOR_ONLY:-unset}" + DEVICE_DOMAIN_NAME: "${DEVICE_DOMAIN_NAME}" + EXPLORER_PORT: "${APP_MEMPOOL_PORT}" + EXPLORER_HIDDEN_SERVICE: "${APP_MEMPOOL_HIDDEN_SERVICE}" + networks: + default: + ipv4_address: $APP_LIGHTNING_IP + + lnd: + hostname: "${DEVICE_DOMAIN_NAME}" # Needed so LND can generate a valid cert + image: lightninglabs/lnd:v0.20.0-beta@sha256:4b33e89ce7d2db02bbf3c10649e567c36d175075921c97afc3bdfa36f2e7518a + command: "${APP_LIGHTNING_COMMAND}" + user: 1000:1000 + restart: unless-stopped + ports: + - "$APP_LIGHTNING_NODE_PORT:$APP_LIGHTNING_NODE_PORT" + - "$APP_LIGHTNING_NODE_REST_PORT:$APP_LIGHTNING_NODE_REST_PORT" + - "$APP_LIGHTNING_NODE_GRPC_PORT:$APP_LIGHTNING_NODE_GRPC_PORT" + volumes: + - "${APP_LIGHTNING_NODE_DATA_DIR}:/data/.lnd" + environment: + HOME: /data + networks: + default: + ipv4_address: $APP_LIGHTNING_NODE_IP + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" diff --git a/lightning/exports.sh b/lightning/exports.sh new file mode 100644 index 0000000..64d98dc --- /dev/null +++ b/lightning/exports.sh @@ -0,0 +1,90 @@ +export APP_LIGHTNING_IP="10.21.22.3" +export APP_LIGHTNING_NODE_IP="10.21.21.9" + +export APP_LIGHTNING_NODE_PORT="9735" +export APP_LIGHTNING_NODE_GRPC_PORT="10009" +export APP_LIGHTNING_NODE_REST_PORT="8080" +export APP_LIGHTNING_NODE_DATA_DIR="${EXPORTS_APP_DIR}/data/lnd" + +BIN_ARGS=() +BIN_ARGS+=( "--configfile=/data/.lnd/umbrel-lnd.conf" ) +# [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ прилоТСния] +BIN_ARGS+=( "--listen=0.0.0.0:${APP_LIGHTNING_NODE_PORT}" ) +BIN_ARGS+=( "--rpclisten=0.0.0.0:${APP_LIGHTNING_NODE_GRPC_PORT}" ) +BIN_ARGS+=( "--restlisten=0.0.0.0:${APP_LIGHTNING_NODE_REST_PORT}" ) + +# [Π‘ΠΈΡ‚ΠΊΠΎΠΉΠ½] +BIN_ARGS+=( "--bitcoin.active" ) +if [[ "${APP_BITCOIN_NETWORK}" == "mainnet" ]]; then + BIN_ARGS+=( "--bitcoin.mainnet" ) +elif [[ "${APP_BITCOIN_NETWORK}" == "testnet" ]]; then + BIN_ARGS+=( "--bitcoin.testnet" ) +elif [[ "${APP_BITCOIN_NETWORK}" == "testnet4" ]]; then + BIN_ARGS+=( "--bitcoin.testnet4" ) +elif [[ "${APP_BITCOIN_NETWORK}" == "signet" ]]; then + BIN_ARGS+=( "--bitcoin.signet" ) +elif [[ "${APP_BITCOIN_NETWORK}" == "regtest" ]]; then + BIN_ARGS+=( "--bitcoin.regtest" ) +else + echo "Warning (${EXPORTS_APP_ID}): Bitcoin Network '${APP_BITCOIN_NETWORK}' is not supported" +fi +BIN_ARGS+=( "--bitcoin.node=bitcoind" ) + +# [Π‘ΠΈΡ‚ΠΊΠΎΠΈΠ½Π΄] +BIN_ARGS+=( "--bitcoind.rpchost=${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}" ) +BIN_ARGS+=( "--bitcoind.rpcuser=${APP_BITCOIN_RPC_USER}" ) +BIN_ARGS+=( "--bitcoind.rpcpass=${APP_BITCOIN_RPC_PASS}" ) +BIN_ARGS+=( "--bitcoind.zmqpubrawblock=tcp://${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_ZMQ_RAWBLOCK_PORT}" ) +BIN_ARGS+=( "--bitcoind.zmqpubrawtx=tcp://${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_ZMQ_RAWTX_PORT}" ) + +# [Ρ‚ΠΎΡ€] +BIN_ARGS+=( "--tor.active" ) +BIN_ARGS+=( "--tor.v3" ) +BIN_ARGS+=( "--tor.control=${TOR_PROXY_IP}:29051" ) +BIN_ARGS+=( "--tor.socks=${TOR_PROXY_IP}:${TOR_PROXY_PORT}" ) +BIN_ARGS+=( "--tor.targetipaddress=${APP_LIGHTNING_NODE_IP}" ) +BIN_ARGS+=( "--tor.password=${TOR_PASSWORD}" ) + +export APP_LIGHTNING_COMMAND=$(IFS=" "; echo "${BIN_ARGS[@]}") + +# эхо "${APP_LIGHTNING_COMMAND}" + +rest_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rest/hostname" +grpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-grpc/hostname" +export APP_LIGHTNING_REST_HIDDEN_SERVICE="$(cat "${rest_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" +export APP_LIGHTNING_GRPC_HIDDEN_SERVICE="$(cat "${grpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" + +{ + # ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠΈΡ‚Π΅ настройки Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° для ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ для Π½ΠΎΠ²Ρ‹Ρ… установок. + LIGHTNING_DATA_DIR="${EXPORTS_APP_DIR}/data/lightning" + LND_DATA_DIR="${EXPORTS_APP_DIR}/data/lnd" + + IS_POST_HYBRID_MODE_INSTALL_FILE_PATH="${LIGHTNING_DATA_DIR}/IS_POST_HYBRID_MODE_INSTALL" + + # Если ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° lnd/data Π½Π΅ сущСствуСт, ΠΌΡ‹ записываСм Ρ„Π°ΠΉΠ», ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ это новая установка. + # Π­Ρ‚ΠΎ позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ запуском lnd-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΡ€ΠΈ создании Tor HS. + # ΠΈ создаСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ lnd/data. + if [[ ! -d "${LND_DATA_DIR}/data" ]]; then + touch "${IS_POST_HYBRID_MODE_INSTALL_FILE_PATH}" + fi + + APP_CONFIG_EXISTS="false" + APP_HYBRID_MODE_SETTING_EXISTS="false" + if [[ -f "${LIGHTNING_DATA_DIR}/settings.json" ]]; then + APP_CONFIG_EXISTS="true" + if jq -e '.lnd | has("tor.skip-proxy-for-clearnet-targets")' "${LIGHTNING_DATA_DIR}/settings.json" >/dev/null 2>&1; then + APP_HYBRID_MODE_SETTING_EXISTS="true" + fi + fi + + # Нам Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Tor для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… установок Π΄ΠΎ 1.2.0. + if [[ ! -f "${IS_POST_HYBRID_MODE_INSTALL_FILE_PATH}" ]]; then + if [[ "${APP_CONFIG_EXISTS}" = "false" ]]; then + # Если settings.json Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ сущСствуСт, это ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ вСрсии прилоТСния Π΄ΠΎ Advanced-Settings, поэтому ΠΌΡ‹ сохраняСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Tor. + export LND_INITIALIZE_WITH_TOR_ONLY="true" + elif [[ "${APP_CONFIG_EXISTS}" = "true" ]] && [[ "${APP_HYBRID_MODE_SETTING_EXISTS}" = "false" ]]; then + # Если settings.json сущСствуСт, Π½ΠΎ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π΅Ρ‰Π΅ Π½Π΅ настроСн, Ρ‚ΠΎ это вСрсия прилоТСния Π΄ΠΎ вСрсии 1.2.0, поэтому ΠΌΡ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ сохраняСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Tor. + export LND_INITIALIZE_WITH_TOR_ONLY="true" + fi + fi +} || true \ No newline at end of file diff --git a/lightning/hooks/pre-start b/lightning/hooks/pre-start new file mode 100755 index 0000000..057fe51 --- /dev/null +++ b/lightning/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Lightning Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ скрытыС слуТбы Tor GRPC ΠΈ REST. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-grpc/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach lnd +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/lightning/torrc.template b/lightning/torrc.template new file mode 100644 index 0000000..7633a10 --- /dev/null +++ b/lightning/torrc.template @@ -0,0 +1,7 @@ +# LND REST Бкрытая слуТба +HiddenServiceDir /data/app-$APP_ID-rest +HiddenServicePort $APP_LIGHTNING_NODE_REST_PORT $APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_REST_PORT + +# LND Бкрытая слуТба gRPC +HiddenServiceDir /data/app-$APP_ID-grpc +HiddenServicePort $APP_LIGHTNING_NODE_GRPC_PORT $APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT \ No newline at end of file diff --git a/linkstack/data/.gitkeep b/linkstack/data/.gitkeep new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/linkstack/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/linkstack/dfwebos-app.yml b/linkstack/dfwebos-app.yml new file mode 100644 index 0000000..93538dd --- /dev/null +++ b/linkstack/dfwebos-app.yml @@ -0,0 +1,45 @@ +manifestVersion: 1 +id: linkstack +name: LinkStack +tagline: Π›Π΅Π³ΠΊΠΎ настраиваСмая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для ΠΎΠ±ΠΌΠ΅Π½Π° ссылками +category: files +version: "4.2.3" +port: 8190 +description: >- + LinkStack β€” это ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ эффСктивноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для управлСния ссылками ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠΌΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Наша ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²Π΅Π±-сайт, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Linktree, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ΡΡ Π² возмоТности добавлСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ ссылки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй. + + + Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ LinkStack ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ страницу ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ своим подписчикам доступ ΠΊΠΎ всСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ссылкам Π² ΠΎΠ΄Π½ΠΎΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ мСстС. Π§Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ LinkStack ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ управлСния ссылками, Ρ‚Π°ΠΊ это Π΅Π³ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, которая позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ свои ссылки Π½Π° собствСнном Π²Π΅Π±-сСрвСрС ΠΈΠ»ΠΈ Ρƒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Π²Π΅Π±-хостинга. Π­Ρ‚ΠΎ прСдоставляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своим присутствиСм Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΈΠΉ доступ ΠΊ ΠΈΡ… ссылкам. + + + ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, LinkStack позволяСт Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои собствСнныС ссылки, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для прСдприятий ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ нСсколькими ссылками. Благодаря нашСй ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ администратора ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ссылками Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊ Π½ΠΈΠΌ доступ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ. + + + ☁️ Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ доступ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Linkstack Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своСй Π²Π΅Π±-страницСй Linkstack с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Cloudflare Tunnel ΠΈΠ· DFWebOS App Store ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Linkstack, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свой собствСнный Π΄ΠΎΠΌΠ΅Π½. + + + ΠŸΠΎΡ‡Π΅ΠΌΡƒ стоит Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ LinkStack? + + + πŸ’‘ Π‘ΠΎΠ³Π°Ρ‚Ρ‹Π΅ возмоТности: LinkStack ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ большС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Π΅ΠΌ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. + + + βš™οΈ ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° настройки: LinkStack ΡƒΠ΄ΠΎΠ±Π΅Π½ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π²Π΅Π±-прилоТСниями. + + + πŸ‘ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄: LinkStack ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ бСсплатно. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ доступСн Π½Π° GitHub (https://github.com/LinkStackOrg). +developer: Julian Prieber +website: https://linkstack.org/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/1537 +repo: https://github.com/LinkStackOrg/LinkStack +support: https://github.com/LinkStackOrg/LinkStack/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: "" +dependencies: [] +path: "" diff --git a/linkstack/docker-compose.yml b/linkstack/docker-compose.yml new file mode 100644 index 0000000..8365d65 --- /dev/null +++ b/linkstack/docker-compose.yml @@ -0,0 +1,28 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: linkstack_linkstack_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + linkstack: + hostname: 'linkstack' + # Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅Π³ΠΎΠ², спСцифичных для вСрсии. + image: 'linkstackorg/linkstack:latest@sha256:abd691b4293b020a317de8794737671e0315159efcb868e8a4124d6f0611f7ae' + restart: on-failure + # Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ, это Apache (100:101) + # user: '1000:1000' + volumes: + - linkstack_data:/htdocs + +# https://docs.linkstack.org/docker/setup/#docker-bind-mounts +# Π­Ρ‚ΠΎ позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ linkstack ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, смонтированный с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ привязки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с привязкой. +volumes: + linkstack_data: + driver: local + driver_opts: + o: bind + type: none + device: ${APP_DATA_DIR}/data diff --git a/linkwarden/data/app/.gitkeep b/linkwarden/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/linkwarden/data/db/.gitkeep b/linkwarden/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/linkwarden/dfwebos-app.yml b/linkwarden/dfwebos-app.yml new file mode 100644 index 0000000..6e03f68 --- /dev/null +++ b/linkwarden/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1 +id: linkwarden +name: Linkwarden +tagline: Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΡ† ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ +category: social +version: "2.14.1" +port: 8233 +description: >- + πŸ“š Linkwarden β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ, ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-страницы. + + + πŸ›œ ЦСль состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π²Π΅Π±-страницы ΠΈ ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Π° ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π²Π΅Π±-страницы ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΡ‡Π΅Π·Π½ΡƒΡ‚ΡŒ (см. Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ гниСния ссылок), Linkwarden Ρ‚Π°ΠΊΠΆΠ΅ сохраняСт копию ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Π±-страницы Π² Π²ΠΈΠ΄Π΅ снимка экрана ΠΈ PDF, обСспСчивая Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ, Π΄Π°ΠΆΠ΅ Ссли исходный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ большС Π½Π΅ доступСн. + + + πŸ‘₯ ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Linkwarden Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹, позволяя Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ссылками с ΠΎΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ/ΠΈΠ»ΠΈ позволяя нСскольким ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ бСспрСпятствСнно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вмСстС. +developer: Linkwarden +website: https://linkwarden.app +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/1817 +repo: https://github.com/linkwarden/linkwarden +support: https://discord.gg/CtuYV47nuJ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "" +defaultPassword: "" +dependencies: [] +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° обслуТивания сохранСнных HTML-Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ общСдоступного ΠΈΠΌΠ΅Π½ΠΈ хоста для изоляции Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… страниц ΠΎΡ‚ вашСго основного прилоТСния Linkwarden. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ ΠΎΠΏΡ‹Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° Ρ‚Π΅Π³ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/linkwarden/linkwarden/releases. +path: "" diff --git a/linkwarden/docker-compose.yml b/linkwarden/docker-compose.yml new file mode 100644 index 0000000..d58aa46 --- /dev/null +++ b/linkwarden/docker-compose.yml @@ -0,0 +1,33 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: linkwarden_app_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + postgres: + image: postgres:16-alpine@sha256:0366402213df5db03c47ff80bcc697e92c8be0c213d03c941df1fc42d1ba9560 + environment: + - POSTGRES_PASSWORD=linkwarden + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 10s + timeout: 5s + retries: 5 + app: + image: ghcr.io/linkwarden/linkwarden:v2.14.1@sha256:31cf4bd2a2e111991fa5c9de03174c8698869c83722105c6ce529e4c911e6861 + environment: + - DATABASE_URL=postgresql://postgres:linkwarden@linkwarden_postgres_1:5432/postgres + - NEXTAUTH_URL=http://${DEVICE_DOMAIN_NAME}:8233/api/v1/auth + - NEXTAUTH_SECRET=linkwarden + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/app:/data/data + depends_on: + postgres: + condition: service_healthy diff --git a/llama-gpt/dfwebos-app.yml b/llama-gpt/dfwebos-app.yml new file mode 100644 index 0000000..3204c30 --- /dev/null +++ b/llama-gpt/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1.1 +id: llama-gpt +category: ai +name: LlamaGPT +version: "1.0.0" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ Ρ‡Π°Ρ‚-Π±ΠΎΡ‚, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° ChatGPT, Π½Π° Π±Π°Π·Π΅ Llama 2. +description: >- + LlamaGPT β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ, Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΈ частный Ρ‡Π°Ρ‚-Π±ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ChatGPT, Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… с вашСго устройства. + + + ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ LlamaGPT составляСт ΠΎΠΊΠΎΠ»ΠΎ 5,5 Π“Π‘. Π’ зависимости ΠΎΡ‚ скорости вашСго ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° установка ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя. + + + LlamaGPT потрСбляСт ΠΎΠΊΠΎΠ»ΠΎ 5 Π“Π‘ ΠžΠ—Π£. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… DFWebOS Π½Π° Raspberry Pi 4 с 4 Π“Π‘ ΠžΠ—Π£. Для Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° рСкомСндуСтся ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 8 Π“Π‘ ΠžΠ—Π£. + + + LlamaGPT ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для DFWebOS Home ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ слова со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ~3 слова Π² сСкунду. На Raspberry Pi 4 с 8 Π“Π‘ ΠžΠ—Π£ ΠΎΠ½ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ слова со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ~ 1 слово/сСк. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прилоТСния установлСны Π½Π° вашСм DFWebOS. + + + LlamaGPT, основанный Π½Π° соврСмСнной языковой ΠΌΠΎΠ΄Π΅Π»ΠΈ Nous Hermes Llama 2 7B, Ρ‚ΠΎΡ‡Π½ΠΎ настроСн Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 300 000 инструкций, обСспСчивая Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π³Π°Π»Π»ΡŽΡ†ΠΈΠ½Π°Ρ†ΠΈΠΉ. + + + LlamaGPT стал Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ благодаря нСвСроятной Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄. ΠœΡ‹ Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅ΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ Mckay Wrigley Π·Π° созданиС Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Π° интСрфСйс, Π“Π΅ΠΎΡ€Π³ΠΈΡŽ Π“Π΅Ρ€Π³Π°Π½ΠΎΠ²Ρƒ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ llama.cpp, ΠΠ½Π΄Ρ€Π΅ΡŽ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ привязок Python для llama.cpp, NousResearch Π·Π° Ρ‚ΠΎΠ½ΠΊΡƒΡŽ настройку ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π’ΠΎΠΌΡƒ ДТоббинсу Π·Π° ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Meta Π·Π° выпуск Llama 2 ΠΏΠΎΠ΄ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ. + + + ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ DFWebOS. +releaseNotes: "" +developer: DFWebOS +website: https://dfwebos.com +dependencies: [] +repo: https://github.com/getumbrel/llama-gpt +support: https://community.umbrel.com +port: 1234 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +optimizedForDFWebOSHome: true +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/727 diff --git a/llama-gpt/docker-compose.yml b/llama-gpt/docker-compose.yml new file mode 100644 index 0000000..45033cb --- /dev/null +++ b/llama-gpt/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: llama-gpt-ui + APP_PORT: 3000 + + llama-gpt-api: + image: ghcr.io/getumbrel/llama-gpt-api:1.0.1@sha256:57a4323a0254732a45841f447ae4ef733df6510413b692a0589c0e2b68d9ef51 + restart: on-failure + environment: + MODEL: '/models/llama-2-7b-chat.bin' + + llama-gpt-ui: + image: ghcr.io/getumbrel/llama-gpt-ui:1.0.1@sha256:1ad8a3463e7971b77e6deda8b6a230a42fbe283899d88e12448603e474fedaef + restart: on-failure + environment: + - 'OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXXXXXX' + - 'OPENAI_API_HOST=http://llama-gpt-api:8000' + - 'DEFAULT_MODEL=/models/llama-2-7b-chat.bin' + - 'WAIT_HOSTS=llama-gpt-api:8000' + - 'WAIT_TIMEOUT=600' diff --git a/llama-gpt/hooks/pre-install b/llama-gpt/hooks/pre-install new file mode 100755 index 0000000..4572eef --- /dev/null +++ b/llama-gpt/hooks/pre-install @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ВрСбования +REQUIRED_SPACE_GB="10" +REQUIRED_MEMORY_GB="6" + +# Нам Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ процСсс установки, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· этого скрипта +# ΡƒΠ±ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ процСсс-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊ, Π° Π½Π΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ +# любая Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ обратная связь, Ссли ΠΌΡ‹ Π²Ρ‹ΠΉΠ΄Π΅ΠΌ, Π½ΠΎ это Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΈΠΌ ΡƒΠ±ΠΈΡ‚ΡŒ +# ΠΈΡ… систСма. +kill_app_install() { + pkill --full "app install llama-gpt" + exit 1 +} + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ доступноС мСсто +REQUIRED_SPACE_KB=$((REQUIRED_SPACE_GB * 1024 * 1024)) +DFWEBOS_ROOT="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/../../..)" +AVAILABLE_SPACE_KB=$(df "${DFWEBOS_ROOT}" | tail -1 | awk '{print $4}') +if (( AVAILABLE_SPACE_KB < REQUIRED_SPACE_KB )) +then + echo "Not enough available storage space to install LlamaGPT. Exiting." + kill_app_install +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ +REQUIRED_MEMORY_KB=$((REQUIRED_MEMORY_GB * 1024 * 1024)) +TOTAL_MEMORY_KB=$(free | grep '^Mem' | awk '{print $2}') +if (( TOTAL_MEMORY_KB < REQUIRED_MEMORY_KB )) +then + echo "Not enough system memory to install LlamaGPT. Exiting." + kill_app_install +fi diff --git a/ln-visualizer/dfwebos-app.yml b/ln-visualizer/dfwebos-app.yml new file mode 100644 index 0000000..6d1fc3d --- /dev/null +++ b/ln-visualizer/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1 +id: ln-visualizer +category: bitcoin +name: LnVisualizer +version: "0.0.28" +releaseNotes: >- + Π§Ρ‚ΠΎ измСнилось + + - Ѐункция/Ρ‚Π°Π±Π»ΠΈΡ†Π° + + - Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ поиску ΠΊΠ°Π½Π°Π»ΠΎΠ² Π² построСнном Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ + + - Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ поиск ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ + + - Π£Π·Π»Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²/сфСр v2 ΠΈ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΊΠ°ΠΌΠ΅Ρ€Π° + + - ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сСрвСр статуса модуля + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску здСсь: https://github.com/MaxKotlan/LN-Visualizer/releases/tag/v0.0.28. +tagline: ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΡΠ΅Ρ‚ΡŒ Lightning с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния вашСго ΡƒΠ·Π»Π°. +description: "" +developer: Max Kotlan +website: https://lnvisualizer.com +dependencies: + - lightning +repo: https://github.com/MaxKotlan/LN-Visualizer +support: https://github.com/MaxKotlan/LN-Visualizer/issues +port: 5646 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +submitter: Max Kotlan +submission: https://github.com/getumbrel/dfwebos-apps/pull/19 diff --git a/ln-visualizer/docker-compose.yml b/ln-visualizer/docker-compose.yml new file mode 100644 index 0000000..60eb1b2 --- /dev/null +++ b/ln-visualizer/docker-compose.yml @@ -0,0 +1,29 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: ln-visualizer_web_1 + APP_PORT: 80 + + web: + image: maxkotlan/ln-visualizer-web:v0.0.28@sha256:d207e2e474453090d8c0ebec568c94536f79c9ae0d691818068861bbc2abb25d + init: true + restart: on-failure + stop_grace_period: 1m + environment: + LN_VISUALIZER_API_URL: "http://ln-visualizer_api_1:5647" + + api: + image: maxkotlan/ln-visualizer-api:v0.0.28@sha256:7724b02e0b5f91a8a88559458434731d9767d0893982b8a013d39cb24f8b9d94 + init: true + restart: on-failure + stop_grace_period: 1m + user: 1000:1000 + volumes: + - "${APP_LIGHTNING_NODE_DATA_DIR}/tls.cert:/lnd/tls.cert:ro" + - "${APP_LIGHTNING_NODE_DATA_DIR}/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/readonly.macaroon:/lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/readonly.macaroon:ro" + environment: + LND_CERT_FILE: "/lnd/tls.cert" + LND_MACAROON_FILE: "/lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/readonly.macaroon" + LND_SOCKET: "${APP_LIGHTNING_NODE_IP}:${APP_LIGHTNING_NODE_GRPC_PORT}" diff --git a/lnbits-holesail-proxy/data/.gitkeep b/lnbits-holesail-proxy/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lnbits-holesail-proxy/dfwebos-app.yml b/lnbits-holesail-proxy/dfwebos-app.yml new file mode 100644 index 0000000..70134b0 --- /dev/null +++ b/lnbits-holesail-proxy/dfwebos-app.yml @@ -0,0 +1,32 @@ +manifestVersion: 1 +id: lnbits-holesail-proxy +category: bitcoin +name: LNbits Holesail Proxy +version: "1.0.7" +tagline: ΠŸΡ€ΠΎΠΊΡΠΈ-сСрвСр Holesail для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ вашим LNbits +description: >- + ЗапускаСм DFWebOS Π·Π° домашним ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ (NAT) Π±Π΅Π· общСдоступного Π΄ΠΎΠΌΠ΅Π½Π°? + + TOR слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ? + + Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ (ΠΈ вашим Π΄Ρ€ΡƒΠ·ΡŒΡΠΌ) ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ вашим LNbits с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Holesail β€” ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ P2P-туннСля для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π»ΡŽΠ±Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ сСти, брандмауэра ΠΈ NAT. + + + ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’ΡƒΠ½Π½Π΅Π»ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° клиСнтская Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ локальной сСти (это основной Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования этого прилоТСния). +releaseNotes: "" +developer: oren-z0 +website: https://github.com/oren-z0/holesail-server-manager +dependencies: + - lnbits +repo: https://github.com/oren-z0/holesail-server-manager +support: https://github.com/oren-z0/holesail-server-manager/discussions +port: 3107 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: oren-z0 +submission: https://github.com/getumbrel/dfwebos-apps/pull/2007 diff --git a/lnbits-holesail-proxy/docker-compose.yml b/lnbits-holesail-proxy/docker-compose.yml new file mode 100644 index 0000000..874954e --- /dev/null +++ b/lnbits-holesail-proxy/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: lnbits-holesail-proxy_web_1 + APP_PORT: 3107 + web: + image: orenz0/holesail-server-manager:v1.0.7@sha256:23782c148dd09ff20ab70d06fc116afd7d8adc6e5679c682c5f944ef1d305b9b + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + environment: + HSM_DATA_FILE: /data/hsm.json + HSM_HOST: 0.0.0.0 + HSM_PORT: 3107 + HSM_TITLE: LNbits Holesail Proxy + HSM_TARGET_ADDRESS: lnbits_web_1 + HSM_TARGET_PORT: 3007 diff --git a/lnbits/data/.gitkeep b/lnbits/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lnbits/dfwebos-app.yml b/lnbits/dfwebos-app.yml new file mode 100644 index 0000000..713afd9 --- /dev/null +++ b/lnbits/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: lnbits +category: bitcoin +name: LNbits +version: "1.5.3" +tagline: ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ систСма управлСния кошСльком +description: >- + LNbits β€” это простая ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ систСма с ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ записями для Lightning. + Π‘Π΅Ρ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… кошСльков Lightning для Π΄Ρ€ΡƒΠ·Π΅ΠΉ. + ΠΈ Ρ‡Π»Π΅Π½Ρ‹ сСмьи. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй для сСбя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ + ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ риск раскрытия ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ всСго вашСго баланса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ API + ΠΊΠ»ΡŽΡ‡ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ кошСлька. + + + LNbits поставляСтся с инструмСнтами, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΌΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ срСдствами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ расходов, экспорт Π² CSV ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Он прСдоставляСт Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй сСти Lightning с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ LNbits, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ кошСлька для схСмы LNURL. +developer: LNbits +website: https://github.com/lnbits/lnbits-legend +dependencies: + - lightning +repo: https://github.com/lnbits/lnbits-legend +support: https://t.me/lnbits +port: 3007 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠ΅Ρ€Π²ΠΎΠΉ установкой. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ ΠΏΠ΅Ρ€Π²ΠΎΠΉ установки. + + + ⚠️ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ придСтся ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кСш Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (локальноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅) послС обновлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ измСнСния интСрфСйс. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/lnbits/lnbits/releases. +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/pull/372 diff --git a/lnbits/docker-compose.yml b/lnbits/docker-compose.yml new file mode 100644 index 0000000..104a144 --- /dev/null +++ b/lnbits/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: lnbits_web_1 + APP_PORT: 3007 + PROXY_AUTH_ADD: "false" + + web: + image: lnbits/lnbits:v1.5.3@sha256:2d4ab0739db02f1659cb50c1901faf7ad37e066d5528075804945305d6009060 + init: true + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + # Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ + LNBITS_HOST: "0.0.0.0" + LNBITS_PORT: 3007 + LNBITS_DATA_FOLDER: "/data" + + # ЛНД + LNBITS_BACKEND_WALLET_CLASS: LndRestWallet + LND_REST_ENDPOINT: https://$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_REST_PORT/ + LND_REST_CERT: "/lnd/tls.cert" + LND_REST_MACAROON: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon" + + # ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ + LNBITS_SITE_TITLE: "LNbits - DFWebOS" + LNBITS_DEFAULT_WALLET_NAME: "LNbits wallet" + LNBITS_DISABLED_EXTENSIONS: "amilk" + LNBITS_ADMIN_EXTENSIONS: "ngrok" + LNBITS_ADMIN_UI: "true" diff --git a/lndboss/.bosgui/.env b/lndboss/.bosgui/.env new file mode 100644 index 0000000..e69de29 diff --git a/lndboss/dfwebos-app.yml b/lndboss/dfwebos-app.yml new file mode 100644 index 0000000..abddb4d --- /dev/null +++ b/lndboss/dfwebos-app.yml @@ -0,0 +1,44 @@ +manifestVersion: 1 +id: lndboss +category: bitcoin +name: LndBoss +version: "2.19.1" +tagline: ГрафичСский интСрфСйс для BalanceOfSatoshis +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± устарСвании: это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ устарСло ΠΈ поэтому большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. + + + LndBoss β€” это графичСский интСрфСйс для BalanceOfSatoshis. + Π­Ρ‚ΠΎ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ваши Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ + bos Π΄Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ вашим ΡƒΠ·Π»ΠΎΠΌ Lightning. + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ задания для автоматичСской рСбалансировки ΠΊΠ°Π½Π°Π»ΠΎΠ², + автоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ комиссий Π½Π° основС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ сбалансированных/Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ, + интСграция с amboss для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. +developer: Nitesh Balusu +website: https://github.com/niteshbalusu11 +dependencies: + - lightning +repo: https://github.com/niteshbalusu11/lndboss +support: https://t.me/lndboss +port: 8055 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: > + - 2.19.1 (23.06.2023) + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² nextjs 13. + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π½Π΅ ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ ΠΈΠ·-Π·Π° критичСского измСнСния зависимости. + + - 2.18.1 (10 апрСля 2023 Π³.) + Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Bump bos, которая исправляСт ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π½Π° Π½Π΅ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹. + ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° nextjs13 + + - 2.18.0 (10 ΠΌΠ°Ρ€Ρ‚Π° 2023 Π³.) + Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ для Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: getChainAddresses, getBlock,verifyChainAddressMessage,signChainAddressMessage. +submitter: Nitesh Balusu +submission: https://github.com/getumbrel/dfwebos-apps/pull/65 +disabled: true \ No newline at end of file diff --git a/lndboss/docker-compose.yml b/lndboss/docker-compose.yml new file mode 100644 index 0000000..5fa83cd --- /dev/null +++ b/lndboss/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: lndboss_web_1 + APP_PORT: 8055 + + web: + image: niteshbalusu/lndboss:2.19.1@sha256:2dddce26e0ffcce049896cf8f813740f1c8cdea85d77b8445cafa296c4d7d7f9 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/home/node/.lnd:ro + - ${APP_DATA_DIR}/.bosgui:/home/node/.bosgui + environment: + BOS_DATA_PATH: "/home/node/.bosgui" + NODE_ENV: "production" + PORT: 8055 + BOS_DEFAULT_LND_SOCKET: $APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT diff --git a/lndg/data/db/.gitkeep b/lndg/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lndg/data/logs/lndg-controller.log b/lndg/data/logs/lndg-controller.log new file mode 100644 index 0000000..e69de29 diff --git a/lndg/dfwebos-app.yml b/lndg/dfwebos-app.yml new file mode 100644 index 0000000..4c64ceb --- /dev/null +++ b/lndg/dfwebos-app.yml @@ -0,0 +1,31 @@ +manifestVersion: 1 +id: lndg +category: bitcoin +name: LNDg +version: "1.10.1" +tagline: АнализируйтС ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π°ΠΌΠΈ Lightning. +description: "LNDg β€” ваш ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ†Π΅Π½Ρ‚Ρ€ для вСдСния ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ эффСктивного бизнСса." +developer: cryptosharks131 +website: https://github.com/cryptosharks131 +dependencies: + - lightning +repo: https://github.com/cryptosharks131/lndg +support: https://t.me/+-RxoZdi7snk2ZGYx +port: 8889 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: lndg-admin +deterministicPassword: true +releaseNotes: >- + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ AutoFees с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Inbound-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ AF-InboundFees) + + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для ΡƒΠ·Π»ΠΎΠ² с большой историСй пСрСсылок. + + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​новая страница ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ для выявлСния ΡƒΠ±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π·Π°ΡΡ‚Ρ€ΡΠ²ΡˆΠΈΡ… ΠΊΠ°Π½Π°Π»ΠΎΠ². + + - И Π΅Ρ‰Π΅... ΠŸΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://github.com/cryptosharks131/lndg/releases/tag/v1.10.1 +submitter: cryptosharks131 +submission: https://github.com/getumbrel/umbrel/pull/1189 diff --git a/lndg/docker-compose.yml b/lndg/docker-compose.yml new file mode 100644 index 0000000..c277599 --- /dev/null +++ b/lndg/docker-compose.yml @@ -0,0 +1,24 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_LNDG_IP + APP_PORT: $APP_LNDG_PORT + + web: + image: ghcr.io/cryptosharks131/lndg:v1.10.1@sha256:c4f12e9222d81b74b665e61feab2b28d0e32e08d144b2cb1334e517eab01c9ad + restart: on-failure + stop_grace_period: 1m + init: true + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/root/.lnd:ro + - ${APP_DATA_DIR}/data/db:/app/data + - ${APP_DATA_DIR}/data/logs/lndg-controller.log:/var/log/lndg-controller.log + command: + - sh + - -c + - python initialize.py -net '${APP_BITCOIN_NETWORK}' -rpc '${APP_LIGHTNING_NODE_IP}:${APP_LIGHTNING_NODE_GRPC_PORT}' -pw '${APP_PASSWORD}' -wn && python controller.py runserver 0.0.0.0:${APP_LNDG_PORT} > /var/log/lndg-controller.log 2>&1 + networks: + default: + ipv4_address: ${APP_LNDG_IP} diff --git a/lndg/exports.sh b/lndg/exports.sh new file mode 100644 index 0000000..63ad167 --- /dev/null +++ b/lndg/exports.sh @@ -0,0 +1,2 @@ +export APP_LNDG_IP="10.21.21.75" +export APP_LNDG_PORT="8889" \ No newline at end of file diff --git a/lndg/hooks/pre-start b/lndg/hooks/pre-start new file mode 100755 index 0000000..8a3b504 --- /dev/null +++ b/lndg/hooks/pre-start @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ скрипт провСряСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² data/data/db ΠΈ data/logs ΠΈ создаСт ΠΈΡ… + устанавливаСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ссли ΠΎΠ½ΠΈ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. +# Если db.sqlite3 ΠΈ lndg-controller.log ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² основном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ прилоТСния, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΈΡ… Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Π΅ мСста ΠΈ Π½Π΅ мСняСм Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (lndg запускаСтся ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root) +# Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ справСдливо для установок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ с вСрсии Π΄ΠΎ 1.9.0. + +# ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ находится Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Π² этом скриптС. +APP_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" +APP_DATA_DIR="${APP_DIR}/data" +APP_DATA_DB_DIR="${APP_DATA_DIR}/db" +APP_DATA_LOGS_DIR="${APP_DATA_DIR}/logs" +DESIRED_OWNER="1000:1000" + +set_correct_permissions() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown -R "${DESIRED_OWNER}" "${path}" + fi + fi +} + +create_directory_if_not_exists() { + local -r dir="${1}" + if [[ ! -d "${dir}" ]]; then + mkdir -p "${dir}" + set_correct_permissions "${dir}" + fi +} + +move_file_if_exists() { + local -r src="${1}" + local -r dest="${2}" + if [[ -f "${src}" ]]; then + mv "${src}" "${dest}" + fi +} + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Ссли ΠΎΠ½ΠΈ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. +create_directory_if_not_exists "${APP_DATA_DIR}" +create_directory_if_not_exists "${APP_DATA_DB_DIR}" +create_directory_if_not_exists "${APP_DATA_LOGS_DIR}" + +# ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Ссли ΠΎΠ½ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ +move_file_if_exists "${APP_DIR}/db.sqlite3" "${APP_DATA_DB_DIR}/db.sqlite3" +move_file_if_exists "${APP_DIR}/lndg-controller.log" "${APP_DATA_LOGS_DIR}/lndg-controller.log" \ No newline at end of file diff --git a/lnmarkets/dfwebos-app.yml b/lnmarkets/dfwebos-app.yml new file mode 100644 index 0000000..7c44e57 --- /dev/null +++ b/lnmarkets/dfwebos-app.yml @@ -0,0 +1,34 @@ +manifestVersion: 1.2 +id: lnmarkets +category: bitcoin +name: LN Markets +version: "2.0.1" +tagline: ΠŸΠ΅Ρ€Π²Π°Ρ торговая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ расчСта Bitcoin +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ большС Π½Π΅ поддСрТиваСтся ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. + + + LN Markets β€” это пСрвая торговая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Bitcoin с ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌΠΈ расчСтами. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация: linktr.ee/lnmarkets. + + + Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DFWebOS Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ взаимодСйствия с LN Markets: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Ρ‹, ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ срСдства, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΡ€Π³ΠΎΠ²ΡƒΡŽ статистику ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ своСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ! + + + Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌ вас Π·Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ финансов вмСстС! +developer: LN Markets +website: https://lnmarkets.com +dependencies: + - lightning +repo: https://github.com/ln-markets/dfwebos +support: https://t.me/lnmarkets +port: 4242 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +submitter: LN Markets +submission: https://github.com/getumbrel/umbrel/pull/879 +releaseNotes: >- + - Π­Ρ‚ΠΎ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· с исправлСниСм ошибок. +disabled: true diff --git a/lnmarkets/docker-compose.yml b/lnmarkets/docker-compose.yml new file mode 100644 index 0000000..9948296 --- /dev/null +++ b/lnmarkets/docker-compose.yml @@ -0,0 +1,24 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_LNMARKETS_IP + APP_PORT: $APP_LNMARKETS_PORT + + lnmarkets: + image: ghcr.io/ln-markets/umbrel:v2.0.1@sha256:391798e0a18ec8135abf94037f879fa83e8394fa3a8881fec3aa934338e978d2 + init: true + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + LND_IP: $APP_LIGHTNING_NODE_IP + LND_GRPC_PORT: $APP_LIGHTNING_NODE_GRPC_PORT + BITCOIN_NETWORK: $APP_BITCOIN_NETWORK + APP_LNMARKETS_PORT: $APP_LNMARKETS_PORT + networks: + default: + ipv4_address: $APP_LNMARKETS_IP diff --git a/lnmarkets/exports.sh b/lnmarkets/exports.sh new file mode 100644 index 0000000..11a0272 --- /dev/null +++ b/lnmarkets/exports.sh @@ -0,0 +1,2 @@ +export APP_LNMARKETS_IP="10.21.21.58" +export APP_LNMARKETS_PORT="4242" \ No newline at end of file diff --git a/lnplus/dfwebos-app.yml b/lnplus/dfwebos-app.yml new file mode 100644 index 0000000..2cfc3de --- /dev/null +++ b/lnplus/dfwebos-app.yml @@ -0,0 +1,32 @@ +manifestVersion: 1 +id: lnplus +category: bitcoin +name: Lightning Network+ +version: "0.1.31" +tagline: ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π²Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π²ΠΎΠΉΡ‚Π΅ свои ΠΊΠ°Π½Π°Π»Ρ‹ бСсплатно +description: >- + Lightning Network Plus (LN+) β€” это бСсплатноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ ΡƒΠ·Π»ΠΎΠ² Lightning ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свопы ликвидности. + + + ΠœΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ вас Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ этот процСсс простым. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π²Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΈ смоТСтС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство ΠΈ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π² Π΄Π²Π° Ρ€Π°Π·Π° быстрСС, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ автоматичСски Π²ΠΎΠΉΠ΄Π΅Ρ‚ Π² систСму с вашим ΡƒΠ·Π»ΠΎΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠ±ΠΌΠ΅Π½Ρƒ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΡƒΠ·Π»ΠΎΠ². LN+ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ°Π½Π°Π» ΠΎΠ΄Π½ΠΈΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ, ΠΈΠ»ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ°Π½Π°Π» Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ участников свопа ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ повысят Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡŽ вашСго ΡƒΠ·Π»Π°. +releaseNotes: >- + ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ страницы справки ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок. +developer: Lightning Network+ +website: https://lightningnetwork.plus +dependencies: + - lightning +repo: https://github.com/Lightning-Network-Plus/lnpclient +support: https://github.com/Lightning-Network-Plus/lnpclient/discussions +port: 3777 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Lightning Network+ +submission: https://github.com/getumbrel/dfwebos-apps/pull/202 \ No newline at end of file diff --git a/lnplus/docker-compose.yml b/lnplus/docker-compose.yml new file mode 100644 index 0000000..67f0350 --- /dev/null +++ b/lnplus/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: lnplus_web_1 + APP_PORT: "3777" + web: + image: lightningnetworkplus/lnpclient:v0.1.31@sha256:35a8f299ee09c70318f93d7b3f0332215eb4e7fc0de75f527b6e49438722160c + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + LN_IMPLEMENTATION: "LND" + LN_SERVER_URL: $APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT/ + MACAROON_PATH: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon" + CONFIG_PATH: "/lnd/lnd.conf" + CERTIFICATE_PATH: "/lnd/tls.cert" + API_URL: "https://lightningnetwork.plus/api/2/" + RAILS_ENV: "development" \ No newline at end of file diff --git a/lobe-chat/bucket.config.json b/lobe-chat/bucket.config.json new file mode 100644 index 0000000..1720063 --- /dev/null +++ b/lobe-chat/bucket.config.json @@ -0,0 +1,24 @@ +{ + "ID": "", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "AWS": [ + "*" + ] + }, + "Action": [ + "s3:GetObject" + ], + "NotAction": [], + "Resource": [ + "arn:aws:s3:::lobe/*" + ], + "NotResource": [], + "Condition": {} + } + ], + "Version": "2012-10-17" +} diff --git a/lobe-chat/data/db/.gitkeep b/lobe-chat/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lobe-chat/data/redis/.gitkeep b/lobe-chat/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lobe-chat/data/rustfs-logs/.gitkeep b/lobe-chat/data/rustfs-logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lobe-chat/data/rustfs/.gitkeep b/lobe-chat/data/rustfs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lobe-chat/data/searxng/settings.yml b/lobe-chat/data/searxng/settings.yml new file mode 100644 index 0000000..b2aa07d --- /dev/null +++ b/lobe-chat/data/searxng/settings.yml @@ -0,0 +1,6 @@ +use_default_settings: true + +search: + formats: + - html + - json diff --git a/lobe-chat/dfwebos-app.yml b/lobe-chat/dfwebos-app.yml new file mode 100644 index 0000000..9ac07d8 --- /dev/null +++ b/lobe-chat/dfwebos-app.yml @@ -0,0 +1,50 @@ +manifestVersion: 1.1 +id: lobe-chat +name: Lobe Hub +tagline: Π’Π°ΡˆΠ΅ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство ИИ для Ρ‡Π°Ρ‚Π°, Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΠΈ Π·Π½Π°Π½ΠΈΠΉ. +category: ai +version: "2.1.54" +port: 7455 +description: >- + πŸ’¬ Lobe Hub β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство ИИ для бСсСд, ΠΊΠΎΠΌΠ°Π½Π΄ Π°Π³Π΅Π½Ρ‚ΠΎΠ², + Π±Π°Π·Ρ‹ Π·Π½Π°Π½ΠΈΠΉ ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы. + + + πŸ—£οΈ Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ, ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‡Π°Ρ‚, Ρ„Π°ΠΉΠ»Ρ‹, поиск Π·Π½Π°Π½ΠΈΠΉ ΠΈ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ + экосистСма поставщиков, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ API-интСрфСйсы, совмСстимыС с OpenAI, Anthropic, Google, Groq, + Оллама ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. + + + πŸ€– Π­Ρ‚ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ DFWebOS Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ соотвСтствуСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ исходной Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. + модСль ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ PostgreSQL, Redis ΠΈ S3-совмСстимоС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для + Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π±Π°Π·Ρ‹ Π·Π½Π°Π½ΠΈΠΉ. + + + πŸ”‘ Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ, создайтС ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько + ΠšΠ»ΡŽΡ‡ΠΈ поставщика ИИ API Π² настройках Lobe Hub. +developer: LobeHub +website: https://lobehub.com/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/1901 +repo: https://github.com/lobehub/lobehub +support: https://github.com/lobehub/lobehub/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "" +defaultPassword: "" +dependencies: [] +releaseNotes: >- + Π­Ρ‚ΠΎ выпуск исправлСния, ΡƒΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ, ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΡƒΡŽΡΡ Π² вСрсии 2.1.53. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ измСнСния: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π΅ состояниС Ρ‡Π°Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ β€” прСдыдущая Ρ‚Π΅ΠΌΠ° большС Π½Π΅ сохраняСтся. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° изоляция контСкста Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°, поэтому ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ состояниС Π°Π³Π΅Π½Ρ‚Π°/Ρ‚Π΅ΠΌΡ‹/ΠΏΠΎΡ‚ΠΎΠΊΠ° загруТаСтся сразу ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ список Ρ‚Π΅ΠΌ Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ оставался Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ просмотрС ΠΏΠΎΠ΄Ρ‚Π΅ΠΌΡ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ для Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ‚Π΅ΠΌ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/lobehub/lobehub/releases. +path: "" diff --git a/lobe-chat/docker-compose.yml b/lobe-chat/docker-compose.yml new file mode 100644 index 0000000..0813ba3 --- /dev/null +++ b/lobe-chat/docker-compose.yml @@ -0,0 +1,119 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: lobe-chat_app_1 + APP_PORT: 3210 + PROXY_AUTH_ADD: "false" + + app: + image: lobehub/lobehub:2.1.54@sha256:6f2bd9a1f203df46146361021375489f7f14883244fe01451ddced4e5fc2e550 + restart: on-failure + env_file: + - ${APP_DATA_DIR}/settings.env + environment: + APP_URL: http://${DEVICE_DOMAIN_NAME}:7455 + INTERNAL_APP_URL: http://lobe-chat_app_1:3210 + AUTH_TRUSTED_ORIGINS: http://${DEVICE_DOMAIN_NAME}:7455 + DATABASE_URL: postgresql://postgres:lobehubsecret@lobe-chat_postgres_1:5432/lobehub + REDIS_URL: redis://lobe-chat_redis_1:6379 + REDIS_PREFIX: lobechat + REDIS_TLS: "0" + S3_ENDPOINT: http://${DEVICE_DOMAIN_NAME}:7458 + S3_BUCKET: lobe + S3_ACCESS_KEY: lobehub + S3_ENABLE_PATH_STYLE: "1" + S3_ACCESS_KEY_ID: lobehub + S3_SECRET_ACCESS_KEY: ${APP_PASSWORD} + S3_SET_ACL: "0" + LLM_VISION_IMAGE_USE_BASE64: "1" + SEARXNG_URL: http://lobe-chat_searxng_1:8080 + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + rustfs: + condition: service_healthy + rustfs-init: + condition: service_completed_successfully + + postgres: + image: paradedb/paradedb:0.22.3-pg17@sha256:746c263e546b9d8bfdd278d7da9584c47ce838670e6cdfdb32713147548b43ce + user: "1000:1000" + restart: on-failure + environment: + POSTGRES_DB: lobehub + POSTGRES_PASSWORD: lobehubsecret + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres -d lobehub"] + interval: 10s + timeout: 5s + retries: 10 + + redis: + image: redis:7.4.8@sha256:a5995dfdf108997f8a7c9587f54fad5e94ed5848de5236a6b28119e99efd67e0 + user: "1000:1000" + restart: on-failure + command: redis-server --save 60 1000 --appendonly yes + volumes: + - ${APP_DATA_DIR}/data/redis:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 10 + + rustfs: + image: rustfs/rustfs:1.0.0-alpha.90@sha256:0725587f6fcca83c1898f321424327d6e6da5e01ea20382905dd258ed5af3be4 + restart: on-failure + ports: + - "7458:9000" + volumes: + - ${APP_DATA_DIR}/data/rustfs:/data + - ${APP_DATA_DIR}/data/rustfs-logs:/logs + environment: + RUSTFS_ADDRESS: 0.0.0.0:9000 + RUSTFS_CONSOLE_ADDRESS: 0.0.0.0:9001 + RUSTFS_CONSOLE_ENABLE: "true" + RUSTFS_VOLUMES: /data + RUSTFS_ACCESS_KEY: lobehub + RUSTFS_SECRET_KEY: ${APP_PASSWORD} + RUSTFS_OBS_LOG_DIRECTORY: /logs + healthcheck: + test: + ["CMD", "sh", "-c", "curl -f http://127.0.0.1:9000/health && curl -f http://127.0.0.1:9001/rustfs/console/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + + rustfs-init: + image: minio/mc:RELEASE.2025-08-13T08-35-41Z@sha256:a7fe349ef4bd8521fb8497f55c6042871b2ae640607cf99d9bede5e9bdf11727 + restart: on-failure + depends_on: + rustfs: + condition: service_healthy + volumes: + - ./bucket.config.json:/bucket.config.json:ro + entrypoint: /bin/sh + command: + - -c + - > + set -eux; + mc --version; + mc alias set rustfs "http://lobe-chat_rustfs_1:9000" "lobehub" "${APP_PASSWORD}"; + mc ls rustfs || true; + mc mb "rustfs/lobe" --ignore-existing; + mc anonymous set download rustfs/lobe + + searxng: + image: ghcr.io/searxng/searxng:2026.4.22-74f1ca203@sha256:37c616a774b90fb5df9239eb143f1b11866ddf7b830cd1ebcca6ba11b38cc2bf + restart: on-failure + environment: + SEARXNG_SECRET: ${APP_SEED} + volumes: + - ${APP_DATA_DIR}/data/searxng/settings.yml:/etc/searxng/settings.yml diff --git a/lobe-chat/hooks/pre-start b/lobe-chat/hooks/pre-start new file mode 100755 index 0000000..ab8e574 --- /dev/null +++ b/lobe-chat/hooks/pre-start @@ -0,0 +1,166 @@ +#!/usr/bin/env bash +set -euo pipefail + +ENV_FILE="${APP_DATA_DIR}/settings.env" +TMP_DIR="${APP_DATA_DIR}/tmp" +DB_DATA_DIR="${APP_DATA_DIR}/data/db" +REDIS_DATA_DIR="${APP_DATA_DIR}/data/redis" +RUSTFS_DATA_DIR="${APP_DATA_DIR}/data/rustfs" +RUSTFS_LOGS_DIR="${APP_DATA_DIR}/data/rustfs-logs" +SEARXNG_DATA_DIR="${APP_DATA_DIR}/data/searxng" + +mkdir -p "${TMP_DIR}" +mkdir -p "${DB_DATA_DIR}" "${REDIS_DATA_DIR}" "${RUSTFS_DATA_DIR}" "${RUSTFS_LOGS_DIR}" "${SEARXNG_DATA_DIR}" +touch "${ENV_FILE}" +chown -R 1000:1000 "${DB_DATA_DIR}" "${REDIS_DATA_DIR}" 2>/dev/null || true +chown -R 10001:10001 "${RUSTFS_DATA_DIR}" "${RUSTFS_LOGS_DIR}" 2>/dev/null || true + +if [[ ! -f "${SEARXNG_DATA_DIR}/settings.yml" ]]; then + cat > "${SEARXNG_DATA_DIR}/settings.yml" <<'EOF' +use_default_settings: true + +search: + formats: + - html + - json +EOF +fi + +get_var() { + local key="$1" + if grep -q "^${key}=" "${ENV_FILE}"; then + grep "^${key}=" "${ENV_FILE}" | tail -n 1 | cut -d= -f2- + fi +} + +set_var() { + local key="$1" + local value="$2" + python3 - "$ENV_FILE" "$key" "$value" <<'PY' +import pathlib +import sys + +path = pathlib.Path(sys.argv[1]) +key = sys.argv[2] +value = sys.argv[3] + +lines = path.read_text().splitlines() if path.exists() else [] +updated = False + +for index, line in enumerate(lines): + if line.startswith(f"{key}="): + lines[index] = f"{key}={value}" + updated = True + break + +if not updated: + lines.append(f"{key}={value}") + +path.write_text("\n".join(lines) + "\n") +PY +} + +generate_secret() { + openssl rand -base64 32 | tr -d '\n' +} + +generate_jwks() { + local pem_file="${TMP_DIR}/jwks.pem" + openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out "${pem_file}" >/dev/null 2>&1 + python3 - "${pem_file}" <<'PY' +import base64 +import hashlib +import json +import re +import subprocess +import sys + +pem_file = sys.argv[1] +text = subprocess.check_output( + ["openssl", "rsa", "-in", pem_file, "-text", "-noout"], + stderr=subprocess.DEVNULL, + text=True, +) + +mapping = { + "modulus": "n", + "privateExponent": "d", + "prime1": "p", + "prime2": "q", + "exponent1": "dp", + "exponent2": "dq", + "coefficient": "qi", +} + +values = {} +current = None + +for line in text.splitlines(): + stripped = line.strip() + + if stripped.startswith("publicExponent:"): + exponent = int(stripped.split()[1]) + values["e"] = exponent.to_bytes((exponent.bit_length() + 7) // 8, "big") + current = None + continue + + if stripped.endswith(":") and stripped[:-1] in mapping: + current = mapping[stripped[:-1]] + values[current] = b"" + continue + + if current and re.fullmatch(r"[0-9a-f:]+", stripped): + values[current] += bytes.fromhex(stripped.replace(":", "")) + continue + + current = None + +for key in ("n", "d", "p", "q", "dp", "dq", "qi"): + value = values[key] + while len(value) > 1 and value[0] == 0: + value = value[1:] + values[key] = value + +def b64url(data): + return base64.urlsafe_b64encode(data).decode().rstrip("=") + +kid = hashlib.sha256(values["n"]).hexdigest()[:16] + +print( + json.dumps( + { + "keys": [ + { + "kty": "RSA", + "use": "sig", + "alg": "RS256", + "kid": kid, + "n": b64url(values["n"]), + "e": b64url(values["e"]), + "d": b64url(values["d"]), + "p": b64url(values["p"]), + "q": b64url(values["q"]), + "dp": b64url(values["dp"]), + "dq": b64url(values["dq"]), + "qi": b64url(values["qi"]), + } + ] + }, + separators=(",", ":"), + ) +) +PY + rm -f "${pem_file}" +} + +if [[ -z "$(get_var KEY_VAULTS_SECRET)" ]]; then + set_var KEY_VAULTS_SECRET "$(generate_secret)" +fi + +if [[ -z "$(get_var AUTH_SECRET)" ]]; then + set_var AUTH_SECRET "$(generate_secret)" +fi + +if [[ -z "$(get_var JWKS_KEY)" ]]; then + set_var JWKS_KEY "$(generate_jwks)" +fi diff --git a/localai/data/images/.gitkeep b/localai/data/images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/localai/data/models/.gitkeep b/localai/data/models/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/localai/dfwebos-app.yml b/localai/dfwebos-app.yml new file mode 100644 index 0000000..1818707 --- /dev/null +++ b/localai/dfwebos-app.yml @@ -0,0 +1,46 @@ +manifestVersion: 1 +id: localai +category: ai +name: LocalAI +version: "v4.1.3" +tagline: Π—Π°ΠΌΠ΅Π½Π° OpenAI +description: >- + LocalAI β€” это бСсплатная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° OpenAI с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. LocalAI выступаСт Π² качСствС Π·Π°ΠΌΠ΅Π½Ρ‹ REST API, совмСстимой со спСцификациями OpenAI API для локального Π²Ρ‹Π²ΠΎΠ΄Π°. + + + Он позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ LLM, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ изобраТСния ΠΈ Π°ΡƒΠ΄ΠΈΠΎ локально с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ оборудования ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ уровня, поддСрТивая нСсколько сСмСйств ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€. + + + ⚠️ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ + + ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ модСль, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° вашСм устройствС достаточно свободной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти для Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ модСль, объСм ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ сбою устройства ΠΈΠ»ΠΈ зависанию устройства. ВсСгда провСряйтС трСбования ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΈΠ»ΠΈ запуском. +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΏΠ°Ρ‚Ρ‡-Ρ€Π΅Π»ΠΈΠ· с исправлСниями ошибок ΠΈ нСбольшими ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²Ρ…ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΊΠ»ΡŽΡ‡ΠΈ API. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Anthropic API β€” большС Π½Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ΡΡ пустыС Ρ‚ΠΎΠΊΠ΅Π½Ρ‹, исправлСны Π²Ρ‹Π·ΠΎΠ²Ρ‹ инструмСнтов SSE. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ графичСского процСссора для MacOS ΠΈ Thor. + β€” ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ зависимости llama.cpp, Stable-diffusion.cpp ΠΈ ace-step.cpp. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/mudler/LocalAI/releases. +backupIgnore: + - data/models/* +developer: Ettore Di Giacinto +website: https://localai.io/ +dependencies: [] +repo: https://github.com/mudler/LocalAI +support: https://github.com/mudler/LocalAI/discussions +port: 8793 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: highghlow +submission: https://github.com/getumbrel/dfwebos-apps/pull/1079 diff --git a/localai/docker-compose.yml b/localai/docker-compose.yml new file mode 100644 index 0000000..2b38d8a --- /dev/null +++ b/localai/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: localai_api_1 + APP_PORT: 8080 + PROXY_AUTH_WHITELIST: "/v1/*" + api: + image: localai/localai:v4.1.3@sha256:a6af99e17a73a92caa134e70ae84492cc47b67645c1676268a7522ad14f4c09d + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080/readyz"] + interval: 1m + timeout: 20m + retries: 5 + environment: + - MODELS_PATH=/models + volumes: + - ${APP_DATA_DIR}/data/models:/models:cached + - ${APP_DATA_DIR}/data/images/:/tmp/generated/images/ diff --git a/lubelogger/data/app/.gitkeep b/lubelogger/data/app/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lubelogger/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/lubelogger/data/keys/.gitkeep b/lubelogger/data/keys/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lubelogger/data/keys/.gitkeep @@ -0,0 +1 @@ + diff --git a/lubelogger/dfwebos-app.yml b/lubelogger/dfwebos-app.yml new file mode 100644 index 0000000..e9be9a9 --- /dev/null +++ b/lubelogger/dfwebos-app.yml @@ -0,0 +1,38 @@ +manifestVersion: 1 +id: lubelogger +name: LubeLogger +tagline: Π’Ρ€Π΅ΠΊΠ΅Ρ€ тСхничСского обслуТивания ΠΈ расхода Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π° +category: files +version: "1.6.4" +port: 8835 +description: >- + πŸš— LubeLoggerΒ β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для управлСния транспортными срСдствами, ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ вСсти ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ своих транспортных срСдств. Оно позволяСт ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ тСхничСскому ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡŽ, Ρ€Π΅ΠΌΠΎΠ½Ρ‚Ρƒ ΠΈ рСгулярному ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡŽ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ каТдая Π·Π°ΠΌΠ΅Π½Π° масла, осмотр ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Π° Π΄Π΅Ρ‚Π°Π»ΠΈ докумСнтируСтся Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ это создаСт Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ запись ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΌ ΡƒΡ…Π°ΠΆΠΈΠ²Π°Π»ΠΈ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ удСляСт большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡŽ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π° ΠΈ Π°Π½Π°Π»ΠΈΠ·Ρƒ Π·Π°Ρ‚Ρ€Π°Ρ‚. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π·Π°ΠΏΡ€Π°Π²ΠΊΠΈ Ρ‚ΠΎΠΏΠ»ΠΈΠ²ΠΎΠΌ, ΠΏΡ€ΠΎΠ±Π΅Π³ ΠΈ Ρ†Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ позволяСт Ρ‚ΠΎΡ‡Π½ΠΎ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ расход Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π° ΠΈ Π΄ΠΎΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. На основС этих Π΄Π°Π½Π½Ρ‹Ρ… LubeLogger прСдоставляСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… расходах ΠΈ тСндСнциях, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΈ воТдСния ΠΈΠ»ΠΈ состояниС автомобиля Π²Π»ΠΈΡΡŽΡ‚ Π½Π° расходы. + + + Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° основная функция β€” ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ расходами ΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ. LubeLogger позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ всС расходы, связанныС с транспортным срСдством, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ тСхничСскоС обслуТиваниС, Ρ‚ΠΎΠΏΠ»ΠΈΠ²ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ пСриодичСскиС ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΎΠ²Ρ‹Π΅ расходы. Π­Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, сколько стоит Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΌ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСсяцСв ΠΈΠ»ΠΈ Π»Π΅Ρ‚, ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° нСсколько Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ. + + + LubeLogger Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ планирования ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π±Ρ‹Ρ‚ΡŒ Π² курсС прСдстоящих Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡŽ. Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ тСхничСского обслуТивания ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π³Ρƒ, гарантируя, Ρ‡Ρ‚ΠΎ ваТная Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±Ρ‹Ρ‚Π°. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ автомобиля ΠΈ ΠΏΡ€ΠΎΠ΄Π»ΠΈΡ‚ΡŒ срок Π΅Π³ΠΎ слуТбы Π·Π° счСт своСврСмСнного ΡƒΡ…ΠΎΠ΄Π°. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ нСсколькими транспортными срСдствами ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ всСх связанных Π΄Π°Π½Π½Ρ‹Ρ… Π² структурированном Π²ΠΈΠ΄Π΅ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ поиска. К записям ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠ°ΠΊ ΠΊΠ²ΠΈΡ‚Π°Π½Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ сСрвисныС ΠΊΠ½ΠΈΠΆΠΊΠΈ, создавая ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ автомобиля. Π’ Ρ†Π΅Π»ΠΎΠΌ, LubeLogger создан для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°ΠΌ транспортных срСдств ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± истории тСхничСского обслуТивания, расходС Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π° ΠΈ ΠΎΠ±Ρ‰Π΅ΠΉ стоимости владСния Π² понятной ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. +developer: Hargata Softworks +website: https://lubelogger.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/4345 +repo: https://github.com/hargata/lubelog +support: https://github.com/hargata/lubelog/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: "" +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/lubelogger/docker-compose.yml b/lubelogger/docker-compose.yml new file mode 100644 index 0000000..5981b16 --- /dev/null +++ b/lubelogger/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: lubelogger_app_1 + APP_PORT: 8080 + + app: + image: ghcr.io/hargata/lubelogger:v1.6.4@sha256:82a41d7ebda9b47ce70ab55b590ea597f90ebee56877e6a99b4b786cf2f4432b + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/app:/App/data + - ${APP_DATA_DIR}/data/keys:/root/.aspnet/DataProtection-Keys diff --git a/lunalytics/data/logs/.gitkeep b/lunalytics/data/logs/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lunalytics/data/logs/.gitkeep @@ -0,0 +1 @@ + diff --git a/lunalytics/data/lunalytics_data/.gitkeep b/lunalytics/data/lunalytics_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lunalytics/data/lunalytics_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/lunalytics/dfwebos-app.yml b/lunalytics/dfwebos-app.yml new file mode 100644 index 0000000..e9fda52 --- /dev/null +++ b/lunalytics/dfwebos-app.yml @@ -0,0 +1,47 @@ +manifestVersion: 1 +id: lunalytics +name: Lunalytics +tagline: Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° для ΠΊΠΎΠΌΠ°Π½Π΄ +category: networking +version: "0.10.22" +port: 8183 +description: >- + πŸ” Lunalytics ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½Ρ‹Ρ… Π΄Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ состоянии Π²Π°ΡˆΠΈΡ… сСрвисов. Он постоянно отслСТиваСт ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ HTTP ΠΈ TCP ΠΈ прСдоставляСт ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ статистику работоспособности ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ с Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ отслСТиваниСм Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°. + + + Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ автоматичСский ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ сСртификатов TLS, поэтому Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½Ρ‹ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ сСртификаты истСчСт ΠΈΠ»ΠΈ станут Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹Π΅ простои, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ с сСртификатами. + + + ΠšΠ°ΠΆΠ΄ΡƒΡŽ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡƒΡŽ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ с использованиСм настраиваСмых ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ², Ρ‚Π΅Π³ΠΎΠ² ΠΈ описаний, Ρ‡Ρ‚ΠΎ обСспСчиваСт Π³ΠΈΠ±ΠΊΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ услуги ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Ρ‚ΠΈΠΏΡƒ ΠΈΠ»ΠΈ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт Π²Π°ΡˆΠ΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ процСссу. + + + ВстроСнная систСма ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ увСдомляСт вас, ΠΊΠΎΠ³Π΄Π° слуТба Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя ΠΈΠ»ΠΈ дСмонстрируСт Π½Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΡ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΡˆΡƒΠΌΠ°. + + + Lunalytics ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ доступа Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ, сохраняя ΠΏΡ€ΠΈ этом Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Администраторы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€ΠΎΠ»ΠΈ для эффСктивного управлСния уровнями доступа. + + + ВсС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚Π½ΡƒΡŽ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ панСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ запросов ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. +developer: KSJaay +website: https://lunalytics.xyz/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3158 +repo: https://github.com/KSJaay/Lunalytics +support: https://github.com/KSJaay/Lunalytics/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ устраняСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ URL-адрСса Discord ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ с автоматичСским Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ²: + β€” ОбновлСно рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ URL-адрСса Discord. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ автоматичСскоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/KSJaay/Lunalytics/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/lunalytics/docker-compose.yml b/lunalytics/docker-compose.yml new file mode 100644 index 0000000..a549043 --- /dev/null +++ b/lunalytics/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: lunalytics_web_1 + APP_PORT: 2308 + + web: + image: ksjaay/lunalytics:0.10.22@sha256:c6877f1957c829351b5f4dc686e72301210e332a0e31b56636f3c6bb45b6d5d4 + user: "1000:1000" + restart: on-failure + healthcheck: + test: ["CMD-SHELL", "nc -z 127.0.0.1 2308 || exit 1"] + interval: 10s + timeout: 5s + retries: 3 + start_period: 90s + volumes: + - ${APP_DATA_DIR}/data/lunalytics_data:/app/data:rw + - ${APP_DATA_DIR}/data/logs:/app/logs:rw diff --git a/mailarchiver/data/appsettings.json b/mailarchiver/data/appsettings.json new file mode 100644 index 0000000..2eeea49 --- /dev/null +++ b/mailarchiver/data/appsettings.json @@ -0,0 +1,79 @@ +{ + "ConnectionStrings": { + "DefaultConnection": "Host=mailarchiver_postgres_1;Database=mailarchiver;Username=mailarchiver;Password=mailarchiver" + }, + "Authentication": { + "Username": "admin", + "Password": "secure123!", + "SessionTimeoutMinutes": 60, + "CookieName": "MailArchiverAuth", + "CookieSameSite": "Strict" + }, + "OAuth": { + "Enabled": false, + "Authority": "", + "ClientId": "", + "ClientSecret": null, + "ClientScopes": [ + "openid", + "profile", + "email" + ], + "DisablePasswordLogin": false, + "AutoRedirect": false, + "AutoApproveUsers": false, + "AdminEmails": [] + }, + "MailSync": { + "IntervalMinutes": 15, + "TimeoutMinutes": 120, + "ConnectionTimeoutSeconds": 300, + "CommandTimeoutSeconds": 600, + "AlwaysForceFullSync": false, + "IgnoreSelfSignedCert": false + }, + "BatchRestore": { + "AsyncThreshold": 50, + "MaxSyncEmails": 150, + "MaxAsyncEmails": 50000, + "SessionTimeoutMinutes": 30, + "DefaultBatchSize": 50 + }, + "Selection": { + "MaxSelectableEmails": 250 + }, + "View": { + "DefaultToPlainText": true, + "BlockExternalResources": true + }, + "BatchOperation": { + "BatchSize": 50, + "PauseBetweenEmailsMs": 50, + "PauseBetweenBatchesMs": 200 + }, + "TimeZone": { + "DisplayTimeZoneId": "Etc/UCT" + }, + "DatabaseMaintenance": { + "Enabled": true, + "DailyExecutionTime": "02:00", + "TimeoutMinutes": 30 + }, + "Upload": { + "MaxFileSizeGB": 10, + "KeepAliveTimeoutHours": 4, + "RequestHeadersTimeoutHours": 2, + "Notes": "Optimized for large file uploads up to 10GB" + }, + "Npgsql": { + "CommandTimeout": 900 + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning", + "Microsoft.EntityFrameworkCore.Database.Command": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/mailarchiver/data/database/.gitignore b/mailarchiver/data/database/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/mailarchiver/dfwebos-app.yml b/mailarchiver/dfwebos-app.yml new file mode 100644 index 0000000..1d93a53 --- /dev/null +++ b/mailarchiver/dfwebos-app.yml @@ -0,0 +1,72 @@ +manifestVersion: 1 +id: mailarchiver +name: Mail Archiver +tagline: КомплСксноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для архивирования, поиска ΠΈ экспорта элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. +category: files +version: "2604.2" +port: 5006 +description: >- + Mail Archiver обСспСчиваСт автоматичСскоС Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ входящСй ΠΈ исходящСй элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй. ВсС содСрТимоС элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ влоТСния ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ. Адаптивный интСрфСйс ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для использования Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, многоязычСн ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ. + + OpenID Connect (OIDC) ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… слуТб Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. + + + **ΠΠ°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ** + + ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² систСму. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи ΠΈ Ρ‚. Π΄. ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² Π²Π΅Π±-интСрфСйсС, основныС настройки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, часовой пояс) ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² соотвСтствии с вашими потрСбностями Π² Β«data/appsettings.jsonΒ». + + + πŸ” **Поиск ΠΈ доступ** + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ поиск ΠΏΠΎ всСм Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ элСктронным письмам с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. + - ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр элСктронных писСм со списком Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ + - ЭкспортируйтС Ρ†Π΅Π»Ρ‹Π΅ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² mbox ΠΈΠ»ΠΈ сТатых Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² EML. + - Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ элСктронныС письма ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ элСктронных писСм. + + + πŸ‘₯ **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ** + - ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи. + - ПанСль управлСния со статистикой, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅ΠΉ + - КомплСксноС Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° доступа с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ отслСТиваниСм активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (доступ, экспорт, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, восстановлСниС ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅) β€” подробности см. Π² руководствС ΠΏΠΎ вСдСнию ΠΆΡƒΡ€Π½Π°Π»Π° доступа. + + + 🧩 **ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹** + - IMAP β€” Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи IMAP с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»Π½ΠΎΠΉ синхронизации. + - M365 – ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи Microsoft 365 Ρ‡Π΅Ρ€Π΅Π· Microsoft Graph API (Руководство ΠΏΠΎ установкС) + - Π˜ΠœΠŸΠžΠ Π’Β β€“ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи, доступныС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, для пСрСноса ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. + + + πŸ“₯ **Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ восстановлСния** + - Π˜ΠΌΠΏΠΎΡ€Ρ‚ MBox ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ EML (ZIP-Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ структуры ΠΏΠ°ΠΏΠΎΠΊ) + - Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ элСктронныС письма ΠΈΠ»ΠΈ Ρ†Π΅Π»Ρ‹Π΅ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ ящики Π² ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ ящики назначСния. + + + πŸ—‘οΈ **ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° хранСния** + - НастройтС автоматичСскоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… писСм с ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ сСрвСра Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π΄Π½ΠΈ (докумСнтация ΠΏΠΎ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°ΠΌ хранСния). + - УстановитС срок хранСния для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 30, 90 ΠΈΠ»ΠΈ 365 Π΄Π½Π΅ΠΉ). + - Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ локального Π°Ρ€Ρ…ΠΈΠ²Π°. Настройка ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° хранСния для локального Π°Ρ€Ρ…ΠΈΠ²Π°. +developer: s1t5 +website: https://mail-archiver.org +repo: https://github.com/s1t5/mail-archiver +support: https://github.com/s1t5/mail-archiver/issues +defaultUsername: "admin" +defaultPassword: "secure123!" +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ зависимости для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ совмСстимости. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈ восстановлСнии элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записях Microsoft 365. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ послСднСй синхронизации для русского языка. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° памяти Π²ΠΎ врСмя синхронизации Microsoft 365. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/s1t5/mail-archiver. +dependencies: [] +path: "" +submitter: dirstel +submission: https://github.com/getumbrel/dfwebos-apps/pull/5078 diff --git a/mailarchiver/docker-compose.yml b/mailarchiver/docker-compose.yml new file mode 100644 index 0000000..a19c211 --- /dev/null +++ b/mailarchiver/docker-compose.yml @@ -0,0 +1,32 @@ +services: + app_proxy: + environment: + APP_HOST: mailarchiver_app_1 + APP_PORT: 5000 + + app: + image: ghcr.io/s1t5/mailarchiver:2604.2@sha256:53800df180b876e3cc02e31f088e0684bf81a4380ad22b5419da99e8559bb5ba + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/data-protection-keys:/app/DataProtection-Keys + - ${APP_DATA_DIR}/data/appsettings.json:/app/appsettings.json + depends_on: + postgres: + condition: service_healthy + + postgres: + image: postgres:18.3-alpine3.23@sha256:4da1a4828be12604092fa55311276f08f9224a74a62dcb4708bd7439e2a03911 + restart: on-failure + user: 1000:1000 + environment: + POSTGRES_DB: mailarchiver + POSTGRES_USER: mailarchiver + POSTGRES_PASSWORD: mailarchiver + volumes: + - ${APP_DATA_DIR}/data/database:/var/lib/postgresql + healthcheck: + test: ["CMD-SHELL", "pg_isready -U mailarchiver -d mailarchiver"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s diff --git a/mainsail/data/config.json b/mainsail/data/config.json new file mode 100644 index 0000000..dbcb642 --- /dev/null +++ b/mainsail/data/config.json @@ -0,0 +1,3 @@ +{ + "instancesDB": "browser" +} diff --git a/mainsail/dfwebos-app.yml b/mainsail/dfwebos-app.yml new file mode 100644 index 0000000..ee87268 --- /dev/null +++ b/mainsail/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1 +id: mainsail +category: files +name: Mainsail +version: "2.14.0" +tagline: УправляйтС ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ, с любого устройства +description: >- + πŸ–¨οΈ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс для Klipper. УправляйтС ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ, с любого устройства. + + + **ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° Π² использовании.** ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс содСрТал лСгкодоступныС, понятныС ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ элСмСнты, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠ΅ эти дСйствия. + + + **ВсСгда Π½Π° шаг Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ.** ΠœΡ‹ тСсно сотрудничаСм с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π½Π° Ρ€Π°Π½Π½ΠΈΡ… этапах. + + + **100Β % ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄.** ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΌΠΎΠΆΠ΅Ρ‚ любой, любой ΠΌΠΎΠΆΠ΅Ρ‚ внСсти свой Π²ΠΊΠ»Π°Π΄. +releaseNotes: >- + НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° консоль с многострочным Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΈ историСй. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SHT3X Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹. + - НовоС мСню для открытия настроСк ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±ΠΎΠ³Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹Β». + - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ записи ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Python Π² диспСтчСрС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π³Ρ€Π°ΠΌΠΌΠΎΠ²Ρ‹Π΅ ΡˆΠΊΠ°Π»Ρ‹ Ρ‚Π΅Π½Π·ΠΎΠ΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Π½ΠΈΡ‚ΠΈ Π₯ΠΎΠ»Π»Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция поиска Π² интСрфСйс настроСк макросов. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π° панСлях Β«Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Β», Β«Π˜ΡΡ‚ΠΎΡ€ΠΈΡΒ» ΠΈ «Ваймлапс». + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Z-Π½Π°ΠΊΠ»ΠΎΠ½Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° визуализация G2/G3 Π² Gcode-Viewer. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ исправлСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/mainsail-crew/mainsail/releases. +developer: Mainsail Crew +website: https://docs.mainsail.xyz/ +dependencies: [] +repo: https://github.com/mainsail-crew/mainsail +support: https://docs.mainsail.xyz/faq/getting-help +port: 8070 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Julienpeps +submission: https://github.com/getumbrel/dfwebos-apps/pull/1982 diff --git a/mainsail/docker-compose.yml b/mainsail/docker-compose.yml new file mode 100644 index 0000000..7087c48 --- /dev/null +++ b/mainsail/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: mainsail_web_1 + APP_PORT: 80 + web: + image: ghcr.io/mainsail-crew/mainsail:v2.14.0@sha256:fc83a9104b9b87e0779f85dfaff2e68dc33824cfae3d0a7ae602dddbd062d1d1 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/config.json:/usr/share/nginx/html/config.json:ro diff --git a/matter-server/data/.gitkeep b/matter-server/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/matter-server/dfwebos-app.yml b/matter-server/dfwebos-app.yml new file mode 100644 index 0000000..a2833a7 --- /dev/null +++ b/matter-server/dfwebos-app.yml @@ -0,0 +1,38 @@ +manifestVersion: 1 +id: matter-server +name: Matter Server +tagline: Π‘Π΅Ρ€Π²Π΅Ρ€ Matter Controller Ρ‡Π΅Ρ€Π΅Π· WebSockets +category: automation +version: "8.1.2" +port: 5580 +description: >- + πŸ›œ Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ сСрвСр ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Matter Ρ‡Π΅Ρ€Π΅Π· WebSockets, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Matter (Ρ€Π°Π½Π΅Π΅ CHIP) SDK Π² качСствС основы, ΠΈ обСспСчиваСт ΠΊΠ°ΠΊ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ, Ρ‚Π°ΠΊ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. + + + 🏠 ЦСль этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Matter Π² Home Assistant, Π½ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ для использования ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. +developer: Home Assistant +website: https://home-assistant.io +repo: https://github.com/matter-js/python-matter-server +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/1866 +support: https://community.home-assistant.io/ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ исправлСний ошибок. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ обновлСния: + - ПанСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для нСизвСстных Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… устройств. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊ двиТСнию ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ энСргопотрСблСния для устройств Heiman. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция сирСны ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π²ΡƒΠΊΠ° для Π΄Ρ‹ΠΌΠΎΠ²Ρ‹Ρ… ΠΈΠ·Π²Π΅Ρ‰Π°Ρ‚Π΅Π»Π΅ΠΉ Heiman. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° нСстроковых Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ. + - ОбновлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для ссылок Π½Π° изобраТСния Docker. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/home-assistant-libs/python-matter-server/releases. +dependencies: [] +path: "" diff --git a/matter-server/docker-compose.yml b/matter-server/docker-compose.yml new file mode 100644 index 0000000..e78a5ff --- /dev/null +++ b/matter-server/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + server: + image: ghcr.io/matter-js/python-matter-server:8.1.2@sha256:6827e352011e2d8c2bde771e446fcf72acc49150ef66bad978816bac1762aad3 + restart: on-failure + # ВрСбуСтся для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ mDNS + network_mode: host + # интСрфСйс Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 5580 + security_opt: + # ВрСбуСтся для Bluetooth Ρ‡Π΅Ρ€Π΅Π· dbus + - apparmor:unconfined + volumes: + - ${APP_DATA_DIR}/data:/data/ + # ВрСбуСтся для Bluetooth Ρ‡Π΅Ρ€Π΅Π· D-Bus + - /run/dbus:/run/dbus:ro diff --git a/mattermost/data/app/mattermost/client-plugins/.gitkeep b/mattermost/data/app/mattermost/client-plugins/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/mattermost/data/app/mattermost/config/.gitkeep b/mattermost/data/app/mattermost/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/mattermost/data/app/mattermost/data/.gitkeep b/mattermost/data/app/mattermost/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/mattermost/data/app/mattermost/logs/.gitkeep b/mattermost/data/app/mattermost/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/mattermost/data/app/mattermost/plugins/.gitkeep b/mattermost/data/app/mattermost/plugins/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/mattermost/data/db/.gitkeep b/mattermost/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/mattermost/dfwebos-app.yml b/mattermost/dfwebos-app.yml new file mode 100644 index 0000000..c1f4f3c --- /dev/null +++ b/mattermost/dfwebos-app.yml @@ -0,0 +1,45 @@ +manifestVersion: 1 +id: mattermost +name: Mattermost +tagline: ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ‡Π°Ρ‚, с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ +category: social +version: "11.6.1" +port: 8765 +description: >- + πŸš‰ Mattermost β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, прСдназначСнная для бСзопасного сотрудничСства Π½Π° протяТСнии всСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. + + + πŸ’¬ Оно слуТит ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ для ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌΠΈ сообщСниями, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ прСимущСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. + + + πŸ’Ύ Mattermost ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΡƒΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹ΠΌ SaaS-сСрвисам ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Slack ΠΈ Microsoft Teams. + + + ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Mattermost ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ локально Π² вашСй сСти. Однако Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ люди Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ вашСй локальной сСти ΠΈΠΌΠ΅Π»ΠΈ доступ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сСрвСру, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ доступным Π² общСдоступном Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. + Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Cloudflare Tunnel ΠΈΠ»ΠΈ Nginx Proxy Manager Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS. +developer: Mattermost +website: https://mattermost.com +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/1714 +repo: https://github.com/mattermost/mattermost +support: https://forum.mattermost.com/ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "" +defaultPassword: "" +dependencies: [] +releaseNotes: >- + 🚨 Π­Ρ‚ΠΎΡ‚ выпуск содСрТит исправлСния бСзопасности срСднСй ΠΈ высокой стСпСни ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΡΡ‚ΠΈ. ОбновлСниС Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся. + + + НСдавниС обновлСния Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - URL-адрСса Π½Π° основС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ссылок. + - ΠœΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ поиск Π² ΠΏΡ€Π°Π²ΠΎΠΉ части для упрощСния Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. + - Одноканальная ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΎ гостях для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ управлСния доступом. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки ΠΈΠ· вСрсии 11.5.3. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://docs.mattermost.com/product-overview/mattermost-v11-changelog.html. +path: "" diff --git a/mattermost/docker-compose.yml b/mattermost/docker-compose.yml new file mode 100644 index 0000000..5d4260e --- /dev/null +++ b/mattermost/docker-compose.yml @@ -0,0 +1,50 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: mattermost_app_1 + APP_PORT: 8000 + PROXY_AUTH_ADD: "false" + + app: + image: alexlack/mattermost-app:v11.6.1@sha256:37b33b51fcf057605a00655afc92729c2348b46a172368821982526a4c1f1b7f + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + MM_USERNAME: admin + MM_PASSWORD: admin + MM_DBNAME: mattermost + MM_SQLSETTINGS_DATASOURCE: postgres://admin:admin@mattermost_db_1:5432/mattermost?sslmode=disable&connect_timeout=10 + volumes: + - ${APP_DATA_DIR}/data/app/mattermost/config:/mattermost/config:rw + - ${APP_DATA_DIR}/data/app/mattermost/data:/mattermost/data:rw + - ${APP_DATA_DIR}/data/app/mattermost/logs:/mattermost/logs:rw + - ${APP_DATA_DIR}/data/app/mattermost/plugins:/mattermost/plugins:rw + - ${APP_DATA_DIR}/data/app/mattermost/client-plugins:/mattermost/client/plugins:rw + - /etc/localtime:/etc/localtime:ro + ports: + - "8443:8443/tcp" # WebRTC over tcp + - "8443:8443/udp" # WebRTC over udp + depends_on: + db: + condition: service_healthy + + db: + image: alexlack/mattermost-db:v11.6.1@sha256:e8349dab19a6d4981d883373ac6c43afe5f3e1102acdaf30c7be2624f97b6794 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + MM_USERNAME: admin + MM_PASSWORD: admin + MM_DBNAME: mattermost + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + - /etc/localtime:/etc/localtime:ro + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 10s + timeout: 5s + retries: 5 diff --git a/maybe/data/postgres/.gitkeep b/maybe/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/maybe/data/rails/.gitkeep b/maybe/data/rails/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/maybe/data/redis/.gitkeep b/maybe/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/maybe/dfwebos-app.yml b/maybe/dfwebos-app.yml new file mode 100644 index 0000000..c01aaeb --- /dev/null +++ b/maybe/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1.1 +id: maybe +category: finance +name: Maybe +version: '0.6.0' +tagline: ОБ для Π²Π°ΡˆΠΈΡ… Π»ΠΈΡ‡Π½Ρ‹Ρ… финансов +description: >- + Maybe β€” это ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ (ваши финансы Π² бСзопасности) ОБ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для Π²Π°ΡˆΠΈΡ… Π»ΠΈΡ‡Π½Ρ‹Ρ… финансов, созданная + нСбольшая ΠΊΠΎΠΌΠ°Π½Π΄Π° вмСстС с нСвСроятным сообщСством. + + + Π­Ρ‚ΠΎ вСрсия Maybe с Ρ€Π°Π½Π½ΠΈΠΌ доступом, доступная Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. + Maybe находится Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ всС Π΅Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсиСй с ΠΏΠΎΠ»Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. +releaseNotes: >- + 🚨 Maybe ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° финансовоС ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ B2B ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сцСнариСв ΠΈ большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. + + + Π­Ρ‚ΠΎΡ‚ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ выпуск прСдставляСт собой Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Β«ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒΒ». + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/maybe-finance/maybe/releases. +developer: Maybe +website: https://maybe.co/ +dependencies: [] +repo: https://github.com/maybe-finance/maybe +support: https://github.com/maybe-finance/discussions +port: 3063 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: '' +defaultUsername: '' +defaultPassword: '' +submitter: CaptainCodeman +submission: https://github.com/getumbrel/dfwebos-apps/pull/1105 diff --git a/maybe/docker-compose.yml b/maybe/docker-compose.yml new file mode 100644 index 0000000..aec5e7b --- /dev/null +++ b/maybe/docker-compose.yml @@ -0,0 +1,84 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: maybe_web_1 + APP_PORT: 3063 + + web: + image: ghcr.io/maybe-finance/maybe:0.6.0@sha256:1e791e88ecc4d124d05142d943bcec5b5a172e889f648c97d334363133384f01 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/rails:/rails/storage + environment: + SELF_HOSTING_ENABLED: "true" + PORT: 3063 + # URL ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ символы подчСркивания (%5F) Π² ΠΈΠΌΠ΅Π½ΠΈ хоста для удовлСтворСния строгого Π°Π½Π°Π»ΠΈΠ·Π° URI Π² Ruby. + # Original: postgresql://maybe:maybe@maybe_db_1:5432/maybe + DATABASE_URL: postgresql://maybe:maybe@maybe%5Fdb%5F1:5432/maybe + RAILS_FORCE_SSL: "false" + RAILS_ASSUME_SSL: "false" + POSTGRES_DB: maybe + POSTGRES_USER: maybe + POSTGRES_PASSWORD: maybe + GOOD_JOB_EXECUTION_MODE: async + SECRET_KEY_BASE: $APP_SEED + REDIS_URL: redis://maybe_redis_1:6379/1 + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + + worker: + image: ghcr.io/maybe-finance/maybe:0.6.0@sha256:1e791e88ecc4d124d05142d943bcec5b5a172e889f648c97d334363133384f01 + command: bundle exec sidekiq + restart: on-failure + environment: + SELF_HOSTING_ENABLED: "true" + PORT: 3063 + # URL ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ символы подчСркивания (%5F) Π² ΠΈΠΌΠ΅Π½ΠΈ хоста для удовлСтворСния строгого Π°Π½Π°Π»ΠΈΠ·Π° URI Π² Ruby. + # Original: postgresql://maybe:maybe@maybe_db_1:5432/maybe + DATABASE_URL: postgresql://maybe:maybe@maybe%5Fdb%5F1:5432/maybe + RAILS_FORCE_SSL: "false" + RAILS_ASSUME_SSL: "false" + POSTGRES_DB: maybe + POSTGRES_USER: maybe + POSTGRES_PASSWORD: maybe + GOOD_JOB_EXECUTION_MODE: async + SECRET_KEY_BASE: $APP_SEED + REDIS_URL: redis://maybe_redis_1:6379/1 + depends_on: + redis: + condition: service_healthy + + db: + image: postgres:16@sha256:1bf73ccae25238fa555100080042f0b2f9be08eb757e200fe6afc1fc413a1b3c + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + environment: + POSTGRES_DB: maybe + POSTGRES_USER: maybe + POSTGRES_PASSWORD: maybe + PGDATA: /var/lib/postgresql/data/pgdata + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U maybe'] + interval: 10s + timeout: 5s + retries: 5 + + redis: + image: redis:7.4.2@sha256:fbdbaea47b9ae4ecc2082ecdb4e1cea81e32176ffb1dcf643d422ad07427e5d9 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis:/data + healthcheck: + test: [ "CMD", "redis-cli", "ping" ] + interval: 5s + timeout: 5s + retries: 5 diff --git a/maybe/hooks/pre-start b/maybe/hooks/pre-start new file mode 100755 index 0000000..f7aa18f --- /dev/null +++ b/maybe/hooks/pre-start @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ скрипт провСряСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² data/data/redis ΠΈ создаСт ΠΈΡ… + устанавливаСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ссли ΠΎΠ½ΠΈ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. + +# ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ находится Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Π² этом скриптС. +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="${APP_DIR}/data" +APP_DATA_REDIS_DIR="${APP_DATA_DIR}/redis" +DESIRED_OWNER="1000:1000" + +set_correct_permissions() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown -R "${DESIRED_OWNER}" "${path}" + fi + fi +} + +create_directory_if_not_exists() { + local -r dir="${1}" + if [[ ! -d "${dir}" ]]; then + mkdir -p "${dir}" + set_correct_permissions "${dir}" + fi +} + +move_file_if_exists() { + local -r src="${1}" + local -r dest="${2}" + if [[ -f "${src}" ]]; then + mv "${src}" "${dest}" + fi +} + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Ссли ΠΎΠ½ΠΈ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. +create_directory_if_not_exists "${APP_DATA_DIR}" +create_directory_if_not_exists "${APP_DATA_REDIS_DIR}" diff --git a/mazanoke/dfwebos-app.yml b/mazanoke/dfwebos-app.yml new file mode 100644 index 0000000..c95a7b7 --- /dev/null +++ b/mazanoke/dfwebos-app.yml @@ -0,0 +1,33 @@ +manifestVersion: 1 +id: mazanoke +name: Mazanoke +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. +category: files +version: "1.1.5" +port: 3474 +description: >- + Mazanoke β€” это ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π½Π΅ полагаясь Π½Π° внСшниС сСрвСры. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ ΠΊΠ°ΠΊ прогрСссивноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (PWA), ΠΎΠ½ΠΎ обСспСчиваСт Π±Π΅ΡΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСно нСпосрСдствСнно Π½Π° вашС устройство для быстрого доступа. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ изобраТСния Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° для ΠΈΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ВсС Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ настройка качСства, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈ сТатиС Ρ„Π°ΠΉΠ»ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ локально Π½Π° устройствС. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ JPEG, PNG, WebP, Π° Ρ‚Π°ΠΊΠΆΠ΅ SVG ΠΈ GIF, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ PNG. + + + Mazanoke ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΉ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ»Π°Π²Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π°Ρ… ΠΈ ​​смартфонах. Он автоматичСски адаптируСтся ΠΊ Ρ‚Π΅ΠΌΠ½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ свСтлому Ρ€Π΅ΠΆΠΈΠΌΡƒ систСмы для ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎΠ³ΠΎ использования. + + + Π’Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPL 3.0, Mazanoke ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ создан для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΌΠΎΡ‰Π½Ρ‹Π΅ инструмСнты ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, сохраняя ΠΏΡ€ΠΈ этом ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. +developer: civilblur +website: https://mazanoke.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3184 +repo: https://github.com/civilblur/mazanoke +support: https://github.com/civilblur/mazanoke/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: "" +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/mazanoke/docker-compose.yml b/mazanoke/docker-compose.yml new file mode 100644 index 0000000..7581d14 --- /dev/null +++ b/mazanoke/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: mazanoke_web_1 + APP_PORT: 80 + + web: + image: ghcr.io/civilblur/mazanoke:v1.1.5@sha256:e43dc48de575b7a032bbefd96b890d69c1f141417e43d5d096469aa1398711d6 + # Π±Π΅Π· Ρ€ΡƒΡ‚Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ + #user: "1000:1000" + restart: on-failure + healthcheck: + test: ["CMD-SHELL", "nc -z 127.0.0.1 80 || exit 1"] + interval: 10s + timeout: 5s + retries: 3 + start_period: 90s diff --git a/mealie/data/.gitkeep b/mealie/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/mealie/dfwebos-app.yml b/mealie/dfwebos-app.yml new file mode 100644 index 0000000..d101473 --- /dev/null +++ b/mealie/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1 +id: mealie +category: files +name: Mealie +version: "3.16.0" +tagline: ΠœΠ΅ΡΡ‚ΠΎ для всСх Π²Π°ΡˆΠΈΡ… Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² +description: >- + Мили β€” ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π΅Π΄Ρ‹. Π›Π΅Π³ΠΊΠΎ добавляйтС Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρ‹, прСдоставляя + URL-адрСс, ΠΈ Мили автоматичСски ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ сСмСйный Ρ€Π΅Ρ†Π΅ΠΏΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° интСрфСйс. Мили Ρ‚Π°ΠΊΠΆΠ΅ + прСдоставляСт API для взаимодСйствия со сторонними прилоТСниями. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности: + + - Π˜ΠΌΠΏΠΎΡ€Ρ‚ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ²: создавайтС Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρ‹, импортируя ΠΈΡ… ΠΏΠΎ URL-адрСсу ΠΈΠ»ΠΈ вводя Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. + + - ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π΅Π΄Ρ‹: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π΅Π΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ нСдСлю. + + - Бписок ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ: помСститС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Ρ‹ Π² свой список ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ, Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ΠΉ Π½Π° Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π² мСстном супСрмаркСтС. + + - ΠšΡƒΠ»ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ½ΠΈΠ³ΠΈ: Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ Π² ΠΊΡƒΠ»ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π° основС Π²Π°ΡˆΠΈΡ… собствСнных ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π². + + - Локализация: ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 35 языков. +developer: Hayden +website: https://docs.mealie.io/ +dependencies: [] +repo: https://github.com/hay-kot/mealie +support: https://github.com/hay-kot/mealie/issues +port: 9925 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/608 +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… вСрсиях. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + β€” ΠœΠ°Π½ΠΈΡ„Π΅ΡΡ‚ PWA пСрСнСсСн Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, исправлСно нСсоблюдСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ†Π²Π΅Ρ‚ΠΎΠ² Ρ‚Π΅ΠΌΡ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ пустыС поля конструктора Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² запросов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅Ρ€ΡΠ»ΠΈΡΡŒ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ интСрфСйса. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ уязвимости ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΏΡƒΡ‚Π΅ΠΉ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°Ρ… ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/mealie-recipes/mealie/releases. \ No newline at end of file diff --git a/mealie/docker-compose.yml b/mealie/docker-compose.yml new file mode 100644 index 0000000..809d0c7 --- /dev/null +++ b/mealie/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: mealie_web_1 + APP_PORT: 9000 + PROXY_AUTH_WHITELIST: "/api/*" + + web: + image: ghcr.io/mealie-recipes/mealie:v3.16.0@sha256:74496aed2c5055e3b7b6c4e1bb9b4f16b1f566601582b258a10bae851f19ac24 + restart: on-failure + environment: + # Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π±Π΅Π· Ρ‚ΠΎΠΊΠ΅Π½Π° + ALLOW_SIGNUP: "true" + PUID: 1000 + PGID: 1000 + MAX_WORKERS: 1 + WEB_CONCURRENCY: 1 + volumes: + - ${APP_DATA_DIR}/data:/app/data diff --git a/memos/data/.gitkeep b/memos/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/memos/dfwebos-app.yml b/memos/dfwebos-app.yml new file mode 100644 index 0000000..1288173 --- /dev/null +++ b/memos/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1 +id: memos +category: files +name: Memos +version: "0.28.0" +tagline: Π›Π΅Π³ΠΊΠΎ записывайтС ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ своими Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ мыслями +description: >- + Π›Π΅Π³ΠΊΠΈΠΉ сСрвис для создания Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + Π›Π΅Π³ΠΊΠΎ записывайтС ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ своими Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ мыслями. + + - ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ бСсплатно навсСгда. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ для сСбя Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ творчСство Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†, с нашим Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ β€” бСсплатным сСгодня, Π·Π°Π²Ρ‚Ρ€Π° ΠΈ всСгда. + + - Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ хостинг с Docker Π·Π° считанныС сСкунды. ΠΠ°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈ простотой настройки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ обСспСчиваСт Docker, Ρ‡Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + - Чистый тСкст с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Markdown. ΠŸΠΎΠΏΡ€ΠΎΡ‰Π°ΠΉΡ‚Π΅ΡΡŒ с Π½Π΅ΠΏΠΎΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ умствСнным Π±Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ форматирования ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚Π΅ минималистский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. + + - НастраивайтС ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ своими Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ Π±Π΅Π· особых усилий. Благодаря нашим ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным функциям ΠΎΠ±ΠΌΠ΅Π½Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ свои Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ срСди Π΄Ρ€ΡƒΠ³ΠΈΡ…. + + β€” RESTful API для сторонних сСрвисов. ΠžΡ‰ΡƒΡ‚ΠΈΡ‚Π΅ ΠΌΠΎΡ‰ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ раскройтС Π½ΠΎΠ²Ρ‹Π΅ возмоТности благодаря нашСй ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ RESTful API. +releaseNotes: >- + ⚠️ ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: Ссли Π²Ρ‹ Ρ€Π°Π½Π΅Π΅ Π²Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π² систСму Ρ‡Π΅Ρ€Π΅Π· Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄, послС обновлСния Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π²ΠΎΠΉΡ‚ΠΈ Π² систСму, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ своС имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² настройки ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ свою Π»ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π°. + + + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ исправлСния ошибок: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° привязка ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ SSO ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌ записям Memos. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция отобраТСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ создания ΠΈΠ»ΠΈ обновлСния Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ. + - ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ страницы управлСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью ΠΈ SSO. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° авторизация ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° смСшанная Π·Π°Π΄Π°Ρ‡Π° ΡƒΡ†Π΅Π½ΠΊΠΈ ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ списка ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ сохранСниС состояния Ρ„Π»Π°ΠΆΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с исчСзновСниСм ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ мСню. + - Π£ΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Ρ‹ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° запросы ΠΊ списку Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/usememos/memos/releases. +developer: Memos +website: https://www.usememos.com/ +dependencies: [] +repo: https://github.com/usememos/memos +support: https://github.com/usememos/memos/discussions +port: 5230 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: highghlow +submission: https://github.com/getumbrel/umbrel/pull/1043 diff --git a/memos/docker-compose.yml b/memos/docker-compose.yml new file mode 100644 index 0000000..ce6d5d3 --- /dev/null +++ b/memos/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: memos_main_1 + APP_PORT: 5230 + PROXY_AUTH_ADD: "false" + + main: + image: neosmemo/memos:0.28.0@sha256:06066de94333c091ee67c2ad5dec5f15bf5f35b31498c90092f9915dd05e9f92 + user: "1000:1000" + environment: + - MEMOS_MODE=prod + - MEMOS_PORT=5230 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/var/opt/memos diff --git a/mempool/data/.gitkeep b/mempool/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/mempool/dfwebos-app.yml b/mempool/dfwebos-app.yml new file mode 100644 index 0000000..192c196 --- /dev/null +++ b/mempool/dfwebos-app.yml @@ -0,0 +1,76 @@ +manifestVersion: 1 +id: mempool +category: bitcoin +name: mempool +version: "3.3.1" +tagline: Π‘ΡƒΠ΄ΡŒΡ‚Π΅ своим собствСнным исслСдоватСлСм +description: >- + ЗапуститС свой собствСнный экзСмпляр ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Mempool ΠΈ Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ довСряйтС. + + + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свой собствСнный ΡƒΠ·Π΅Π» для красивой Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ сСти Bitcoin, транзакциях, Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π΅, ΠΌΠ΅ΠΌΠΏΡƒΠ»Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΌ. + + + Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ GeoLite2, созданныС MaxMind, доступныС ΠΏΠΎ адрСсу https://www.maxmind.com. +releaseNotes: >- + Π’ этом выпускС ΠΌΠ΅ΠΌΠΏΡƒΠ» обновляСтся с 3.2.1 Π΄ΠΎ 3.3.1, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ выпуск Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ 3.3.0. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + - ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Coinbase ΠΈΠ· Π·Π°Π΄Π°Π½ΠΈΠΉ Stratum + - Визуализация Π΄Π΅Ρ€Π΅Π²Π° сцСнариСв Taproot. + - Π—Π½Π°Ρ‡ΠΊΠΈ ΠΈ подсвСтка Бигаша + - Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ визуализация ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΎΡ‡ΠΊΠΎΠ² Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Sub-1-Sat/vB + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° эфСмСрной ΠΏΡ‹Π»ΠΈ + - ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ подписСй Π² ΠΏΡ€Π΅Π²ΡŒΡŽ PSBT. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° простоты (Тидкая) + - /api/tx/:txId/merkle-proof API конСчная Ρ‚ΠΎΡ‡ΠΊΠ° для сСрвСрных частСй, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Esplora. + - ОбновлСниС Angular 16 -> 20 + - Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ дСсятичной ΠΏΠ»Π°Ρ‚Π΅ + - Аннотации-свидСтСли Taproot + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° рСгистрации + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/mempool/mempool/releases. +developer: Mempool Holdings S.A. de C.V. +website: https://mempool.space/about +dependencies: + - bitcoin + - electrs +repo: https://github.com/mempool/mempool +support: https://mempool.space/sponsor +port: 3006 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +widgets: + - id: "stats" + type: "four-stats" + refresh: "5s" + endpoint: "widget-server:3000/widgets/fees" + link: "" + example: + type: "four-stats" + link: "" + items: + - title: "No priority" + text: "2" + subtext: "sat/vB" + - title: "Low priority" + text: "6" + subtext: "sat/vB" + - title: "Medium priority" + text: "18" + subtext: "sat/vB" + - title: "High priority" + text: "27" + subtext: "sat/vB" +submitter: Mempool Holdings S.A. de C.V. +submission: https://github.com/getumbrel/umbrel/pull/470 diff --git a/mempool/docker-compose.yml b/mempool/docker-compose.yml new file mode 100644 index 0000000..359ecc7 --- /dev/null +++ b/mempool/docker-compose.yml @@ -0,0 +1,84 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_MEMPOOL_IP + APP_PORT: $APP_MEMPOOL_PORT + PROXY_AUTH_ADD: "false" + web: + image: mempool/frontend:v3.3.1@sha256:0a162e7e0d26a01e9686ddf69c96c4beae5fe10b0daa1020f3d392e033c058f1 + user: "1000:1000" + init: true + restart: on-failure + stop_grace_period: 1m + command: "./wait-for mariadb:3306 --timeout=720 -- nginx -g 'daemon off;'" + environment: + FRONTEND_HTTP_PORT: $APP_MEMPOOL_PORT + BACKEND_MAINNET_HTTP_HOST: $APP_MEMPOOL_API_IP + NGINX_PORT: $APP_MEMPOOL_PORT + NGINX_HOSTNAME: $APP_MEMPOOL_API_IP + LIGHTNING_DETECTED_PORT: $APP_MEMPOOL_LIGHTNING_NODE_PORT + networks: + default: + ipv4_address: $APP_MEMPOOL_IP + api: + image: mempool/backend:v3.3.1@sha256:358c0a517c8dcf26e7f5c02447de5bab33ec7e3fa6318685cf8012ce36098e3a + user: "1000:1000" + init: true + restart: on-failure + stop_grace_period: 1m + command: "./wait-for-it.sh mariadb:3306 --timeout=720 --strict -- ./start.sh" + volumes: + - ${APP_DATA_DIR}/data:/backend/cache + - ${DFWEBOS_ROOT}/app-data/lightning/data/lnd:/lnd:ro + environment: + CORE_RPC_HOST: $APP_BITCOIN_NODE_IP + CORE_RPC_PORT: $APP_BITCOIN_RPC_PORT + CORE_RPC_USERNAME: $APP_BITCOIN_RPC_USER + CORE_RPC_PASSWORD: $APP_BITCOIN_RPC_PASS + ELECTRUM_HOST: $APP_ELECTRS_NODE_IP + ELECTRUM_PORT: $APP_ELECTRS_NODE_PORT + ELECTRUM_TLS: "false" + DATABASE_HOST: $APP_MEMPOOL_DB_IP + DATABASE_PORT: "3306" + DATABASE_DATABASE: "mempool" + DATABASE_USERNAME: "mempool" + DATABASE_PASSWORD: "mempool" + MEMPOOL_HTTP_PORT: "8999" + MEMPOOL_CACHE_DIR: "/backend/cache" + MEMPOOL_CLEAR_PROTECTION_MINUTES: "20" + MEMPOOL_INDEXING_BLOCKS_AMOUNT: "52560" + MEMPOOL_STDOUT_LOG_MIN_PRIORITY: "info" + LIGHTNING_ENABLED: "true" + LIGHTNING_BACKEND: "lnd" + LIGHTNING_STATS_REFRESH_INTERVAL: 3600 + LIGHTNING_GRAPH_REFRESH_INTERVAL: 3600 + LND_TLS_CERT_PATH: "/lnd/tls.cert" + LND_MACAROON_PATH: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/readonly.macaroon" + LND_REST_API_URL: "https://$APP_MEMPOOL_LIGHTNING_NODE_IP:$APP_MEMPOOL_LIGHTNING_NODE_REST_PORT" + LND_TIMEOUT: 120000 + NODE_OPTIONS: "--max-old-space-size=2048" + networks: + default: + ipv4_address: $APP_MEMPOOL_API_IP + mariadb: + image: mariadb:10.5.12@sha256:dfcba5641bdbfd7cbf5b07eeed707e6a3672f46823695a0d3aba2e49bbd9b1dd + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/mysql/data:/var/lib/mysql + environment: + MYSQL_DATABASE: "mempool" + MYSQL_USER: "mempool" + MYSQL_PASSWORD: "mempool" + MYSQL_ROOT_PASSWORD: "moneyprintergobrrr" + networks: + default: + ipv4_address: $APP_MEMPOOL_DB_IP + widget-server: + image: getumbrel/umbrel-mempool-widget-server:v1.0.0@sha256:099846e613c7310deba842241477737babcdf78250fba6edf39d456712eeefc3 + environment: + MEMPOOL_API_URL: "http://$APP_MEMPOOL_IP:$APP_MEMPOOL_PORT/api/v1/fees/recommended" + restart: on-failure \ No newline at end of file diff --git a/mempool/exports.sh b/mempool/exports.sh new file mode 100644 index 0000000..fd196a5 --- /dev/null +++ b/mempool/exports.sh @@ -0,0 +1,17 @@ +export APP_MEMPOOL_IP="10.21.21.26" +export APP_MEMPOOL_PORT="3006" +export APP_MEMPOOL_API_IP="10.21.21.27" +export APP_MEMPOOL_DB_IP="10.21.21.28" + +hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}/hostname" +export APP_MEMPOOL_HIDDEN_SERVICE="$(cat "${hidden_service_file}" 2>/dev/null || echo "")" + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Lightning Node, ΠΈ Ссли Π΄Π°, экспортируйтС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. +# ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Lightning Node являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΠΎΠ»Π΅ `required` Ρ„Π°ΠΉΠ»Π° dfwebos-app.yml, поэтому Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это для совмСстимости с umbrelOS >=1.3, Π³Π΄Π΅ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ прилоТСния. +installed_apps=$("${DFWEBOS_ROOT}/scripts/app" ls-installed) + +if echo "$installed_apps" | grep --quiet 'lightning'; then + export APP_MEMPOOL_LIGHTNING_NODE_PORT="9735" + export APP_MEMPOOL_LIGHTNING_NODE_IP="10.21.21.9" + export APP_MEMPOOL_LIGHTNING_NODE_REST_PORT="8080" +fi \ No newline at end of file diff --git a/mempool/mysql/data/.gitkeep b/mempool/mysql/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/metube/dfwebos-app.yml b/metube/dfwebos-app.yml new file mode 100644 index 0000000..51ab663 --- /dev/null +++ b/metube/dfwebos-app.yml @@ -0,0 +1,30 @@ +manifestVersion: 1 +id: metube +category: media +name: MeTube +version: "2026.04.26" +tagline: Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ с YouTube +description: >- + Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎ с YouTube (ΠΈ дСсятков Π΄Ρ€ΡƒΠ³ΠΈΡ… сайтов) прямо Π½Π° свой DFWebOS. +developer: Alex Shnitman +dependencies: [] +repo: https://github.com/alexta69/metube +port: 3700 +releaseNotes: >- + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ). + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² для подписок. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/alexta69/metube/releases. +support: https://github.com/alexta69/metube/issues +website: https://github.com/alexta69/metube +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: MontejoJorge +submission: https://github.com/getumbrel/dfwebos-apps/pull/864 diff --git a/metube/docker-compose.yml b/metube/docker-compose.yml new file mode 100644 index 0000000..0ec9bfc --- /dev/null +++ b/metube/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: metube_metube_1 + APP_PORT: 8081 + + metube: + image: ghcr.io/alexta69/metube:2026.04.26@sha256:ee9a49b477215d33a8c330e9b9bb5c70588e265637cba9ff3888b75b87c00bf0 + restart: on-failure + volumes: + - ${DFWEBOS_ROOT}/data/storage/downloads/metube:/downloads + environment: + - DELETE_FILE_ON_TRASHCAN=true diff --git a/miner-sentinel/data/db/.gitkeep b/miner-sentinel/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/miner-sentinel/dfwebos-app.yml b/miner-sentinel/dfwebos-app.yml new file mode 100644 index 0000000..7fc3dfb --- /dev/null +++ b/miner-sentinel/dfwebos-app.yml @@ -0,0 +1,67 @@ +manifestVersion: 1 +id: miner-sentinel +category: bitcoin +name: MinerSentinel +version: "1.0.0-1" +tagline: Единая панСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° для ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ² Bitaxe ΠΈ Avalon Bitcoin +description: >- + MinerSentinel β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ² Bitcoin, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ASIC-устройства Bitaxe ΠΈ Avalon Nano 3s. Он прСдоставляСт Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ панСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° для отслСТивания ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, работоспособности ΠΈ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ всСго вашСго Π³ΠΎΡ€Π½ΠΎΠ΄ΠΎΠ±Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠ°Ρ€ΠΊΠ°. + + + **ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ устройств Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ** + + ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ…Π΅ΡˆΡ€Π΅ΠΉΡ‚, Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ, энСргопотрСблСниС ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ устройства. + Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ состояния сразу ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ½Π»Π°ΠΉΠ½-/ΠΎΡ„Ρ„Π»Π°ΠΉΠ½-состояниС ΠΈ состояниС оборудования. + + + **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ нСсколькими устройствами** + + ДобавляйтС Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ² Bitaxe ΠΈ Avalon Ρ‡Π΅Ρ€Π΅Π· простой Π²Π΅Π±-интСрфСйс. + ДинамичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ устройствами позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ устройства Π±Π΅Π· пСрСзапуска слуТбы. + КаТдоС устройство ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ статистику с Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. + + + **Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ ΠΏΡƒΠ»Π°** + + ВстроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° статистики ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° CKPool ΠΈ Public Pool. + ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ свои Π»ΡƒΡ‡ΡˆΠΈΠ΅ Π°ΠΊΡ†ΠΈΠΈ, количСство Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΈ Ρ…Π΅ΡˆΡ€Π΅ΠΉΡ‚ Π½Π° сторонС ΠΏΡƒΠ»Π°. + ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ историчСскиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ слоТности ΠΈ расчСты вСроятности открытия ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. + + + **Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°** + + Π’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ. + Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°ΠΉΡ‚Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… устройств, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ структуру энСргопотрСблСния ΠΈ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ потрСбности Π² обслуТивании. + Π”Π°Π½Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов, хранящиСся Π² PostgreSQL, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ историчСскиС Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ. + + + **Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ оповСщСния** + + Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Telegram обСспСчиваСт ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ увСдомлСния ΠΎ критичСских событиях. + ΠŸΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ оповСщСния ΠΎ статусС устройства Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, стагнации Ρ…Π΅ΡˆΡ€Π΅ΠΉΡ‚Π° ΠΈ Π½ΠΎΠ²Ρ‹Ρ… достиТСниях Π½Π° Π»ΡƒΡ‡ΡˆΠ΅ΠΉ слоТности. + АвтоматичСский пСрСзапуск устройства прСдпринимаСтся ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ стагнации. + + + **Π‘ΠΎΠ·Π΄Π°Π½ для нСзависимости** + + Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° вашСм собствСнном ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй. ВсС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. + Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для DFWebOS с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Docker для простоты развСртывания ΠΈ обновлСния. +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ со Π²Ρ…ΠΎΠ΄ΠΎΠΌ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. +developer: Davide Bert +website: https://github.com/dcbert/miner-sentinel +dependencies: [] +repo: https://github.com/dcbert/miner-sentinel +support: https://github.com/dcbert/miner-sentinel/issues +port: 3080 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +defaultUsername: "admin" +deterministicPassword: true +submitter: Davide Bert +submission: "https://github.com/getumbrel/dfwebos-apps/pull/4354" diff --git a/miner-sentinel/docker-compose.yml b/miner-sentinel/docker-compose.yml new file mode 100644 index 0000000..cfd5405 --- /dev/null +++ b/miner-sentinel/docker-compose.yml @@ -0,0 +1,90 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: miner-sentinel_frontend_1 + APP_PORT: 80 + + db: + image: postgres:17.7@sha256:bac8128cd62a35471a1e97966861aa2ac88c8d2f408767a425ae70695a607c99 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + environment: + POSTGRES_USER: minersentinel + POSTGRES_PASSWORD: minersentinel + POSTGRES_DB: minersentinel + healthcheck: + test: ["CMD-SHELL", "pg_isready -U minersentinel"] + interval: 10s + timeout: 5s + retries: 5 + + backend: + image: dcbert/minersentinel-backend:1.0.0@sha256:0a545cb0dbbaa7772560963ebb4cff63ad3919ac1ba8750aa5850388a7b1788c + restart: on-failure + stop_grace_period: 1m + depends_on: + - db + environment: + # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… + DB_HOST: miner-sentinel_db_1 + DB_PORT: 5432 + POSTGRES_DB: minersentinel + POSTGRES_USER: minersentinel + POSTGRES_PASSWORD: minersentinel + # Настройки Π”ΠΆΠ°Π½Π³ΠΎ + DJANGO_SECRET_KEY: ${APP_SEED} + DJANGO_DEBUG: "False" + ALLOWED_HOSTS: "*" + CORS_ALLOWED_ORIGINS: "http://${DEVICE_DOMAIN_NAME}:3080,http://*.ts.net:3080" + CSRF_TRUSTED_ORIGINS: "http://${DEVICE_DOMAIN_NAME}:3080,http://*.ts.net:3080" + DJANGO_SUPERUSER_USERNAME: admin + DJANGO_SUPERUSER_PASSWORD: $APP_PASSWORD + DJANGO_SUPERUSER_EMAIL: "admin@umbrel.local" + # API URL для внСшнСго интСрфСйса + API_BASE_URL: "http://${DEVICE_DOMAIN_NAME}:3080" + command: > + sh -c " + python manage.py migrate && + python manage.py collectstatic --noinput && + (python manage.py createsuperuser --no-input || + echo 'Superuser already exists or created β€” winning!') && + gunicorn minersentinel.wsgi:application --bind 0.0.0.0:8000 --workers 2 --timeout 120 + " + + frontend: + image: dcbert/minersentinel-frontend:1.0.0@sha256:2144eb49160f841f0d4191a59942f7b18a1a3e89058332c2e6e807886158652a + restart: on-failure + stop_grace_period: 1m + depends_on: + - backend + environment: + VITE_API_URL: "http://${DEVICE_DOMAIN_NAME}:3080" + + data-service: + image: dcbert/minersentinel-data-service:1.0.0@sha256:aee26fe4db5f5d6d403154e73f609b454eccc54e7c78f21998dfda7ff4f5f589 + restart: on-failure + stop_grace_period: 1m + depends_on: + - db + - backend + environment: + # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… + POSTGRES_HOST: miner-sentinel_db_1 + POSTGRES_PORT: 5432 + POSTGRES_DB: minersentinel + POSTGRES_USER: minersentinel + POSTGRES_PASSWORD: minersentinel + # Бэкэнд API + BACKEND_URL: "http://miner-sentinel_backend_1:8000" + # Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ опроса (Π² сСкундах) + BITAXE_POLL_INTERVAL: 60 + AVALON_POLL_INTERVAL: 60 + POOL_POLL_INTERVAL: 300 + # УвСдомлСния Telegram (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ β€” настройтС Ρ‡Π΅Ρ€Π΅Π· администратора Django) + TELEGRAM_BOT_TOKEN: "" + TELEGRAM_CHAT_ID: "" diff --git a/minio/data/minio/.gitkeep b/minio/data/minio/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/minio/data/minio/.gitkeep @@ -0,0 +1 @@ + diff --git a/minio/dfwebos-app.yml b/minio/dfwebos-app.yml new file mode 100644 index 0000000..4071122 --- /dev/null +++ b/minio/dfwebos-app.yml @@ -0,0 +1,47 @@ +manifestVersion: 1 +id: minio +category: developer +name: MinIO +version: "RELEASE.2025-06-13T11-33-47Z" +tagline: Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для инфраструктуры Π΄Π°Π½Π½Ρ‹Ρ… ИИ +description: >- + MinIO β€” это Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², совмСстимоС с S3. Он создан для + ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ИИ/ML, ΠΎΠ·Π΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-опрСдСляСмый + ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² любом ΠΎΠ±Π»Π°ΠΊΠ΅ ΠΈΠ»ΠΈ локальной инфраструктурС. MinIO ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ + ΠΏΠΎΠ΄ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ GNU AGPL v3 ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ коммСрчСского прСдприятия. + + + Π£Π·Π½Π°ΠΉΡ‚Π΅ ΠΎ функциях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ MinIO Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ Π² отрасли: + + - ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ сСгмСнтов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² + - Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ + - Активная активная рСпликация для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° + - АвтоматизированныС интСрфСйсы управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ + - ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, созданноС для S3 + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ распрСдСлСниС + - ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ доступом +developer: "MinIO, Inc." +submitter: maipal-c +submission: https://github.com/getumbrel/dfwebos-apps/pull/982 +website: https://min.io +dependencies: [] +repo: https://github.com/minio/minio +support: https://slack.min.io +port: 9011 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: true +defaultUsername: dfwebos +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ надСТности систСмы: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с листингом ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ S3, связанныС с ILM. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ конфигурация Ρ€Π΅Π³ΠΈΠΎΠ½Π°. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ сСтСвая ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π°Π΄Π°Π½ΠΈΠΉ. + - ΠΠ΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈ исправлСния ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/minio/minio/releases. \ No newline at end of file diff --git a/minio/docker-compose.yml b/minio/docker-compose.yml new file mode 100644 index 0000000..8111bbe --- /dev/null +++ b/minio/docker-compose.yml @@ -0,0 +1,24 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: minio_web_1 + APP_PORT: 9011 + PROXY_AUTH_ADD: "false" + + web: + image: quay.io/minio/minio:RELEASE.2025-06-13T11-33-47Z@sha256:064117214caceaa8d8a90ef7caa58f2b2aeb316b5156afe9ee8da5b4d83e12c8 + restart: on-failure + user: "1000:1000" + stop_grace_period: 1m + ports: + # MinIO ΠŸΠΎΡ€Ρ‚ API-сСрвСра + - "9010:9000" + command: ["server", "/data"] + volumes: + - ${APP_DATA_DIR}/data/minio:/data + environment: + MINIO_ROOT_USER: "dfwebos" + MINIO_ROOT_PASSWORD: "$APP_PASSWORD" + MINIO_CONSOLE_ADDRESS: ":9011" diff --git a/monero/data/app/.gitkeep b/monero/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/monero/data/i2pd/.gitkeep b/monero/data/i2pd/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/monero/data/monero/.gitkeep b/monero/data/monero/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/monero/dfwebos-app.yml b/monero/dfwebos-app.yml new file mode 100644 index 0000000..3f04cc9 --- /dev/null +++ b/monero/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1.1 +id: monero +category: crypto +name: Monero Node +version: "0.18.4.6" +tagline: Запуск ΡƒΠ·Π»Π° Monero +description: >- + ЗапуститС свой ΡƒΠ·Π΅Π» Monero ΠΈ нСзависимо сохраняйтС ΠΈ провСряйтС с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ Monero. + Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ вСсь Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Monero ΠΈ сохранит Π΅Π³ΠΎ Π½Π° вашСм DFWebOS. + Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ бСзопасный способ запуска ΡƒΠ·Π»Π° Monero, Π½ΠΎ Π΅Π³ΠΎ синхронизация Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста для хранСния. +developer: deverickapollo +website: https://www.getmonero.org/ +dependencies: [] +repo: https://github.com/deverickapollo/umbrel-monero +support: https://github.com/deverickapollo/umbrel-monero/issues +port: 9976 +submitter: deverickapollo +submission: https://github.com/getumbrel/dfwebos-apps/pull/690 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultPassword: "" +releaseNotes: >- + Π­Ρ‚ΠΎ вСрсия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Monero v0.18.4.6. Π­Ρ‚ΠΎΡ‚ выпуск содСрТит исправлСния ошибок. + + + + НСкоторыС основныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска: + - Π”Π΅ΠΌΠΎΠ½: исправлСна ошибка Π² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π΅ списка ΠΏΠΈΡ€ΠΎΠ². + - Π”Π΅ΠΌΠΎΠ½: исправлСны ошибки соСдинСния p2p. + - Multisig: исправлСн сбой ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π² Monero-gen-trusted-multisig. + - МСлкиС исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ + + Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://www.getmonero.org/2026/03/04/monero-0.18.4.6-released.html. \ No newline at end of file diff --git a/monero/docker-compose.yml b/monero/docker-compose.yml new file mode 100644 index 0000000..df24159 --- /dev/null +++ b/monero/docker-compose.yml @@ -0,0 +1,79 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: monero_server_1 + APP_PORT: 9976 + + server: + image: deverickapollo/umbrel-monero:v1.0.8@sha256:4cfb0a9b852175b73c9c3cb37771eb28c20fd21140bb85a98726dd6d09ee03f9 + depends_on: [monerod] + restart: on-failure + expose: + - "9976" + volumes: + - ${APP_DATA_DIR}/data/app:/data # volume to persist advanced settings json + - ${APP_MONERO_DATA_DIR}:/monero/.monero # volume to persist bitmonero.conf + environment: + PORT: "9976" + MONERO_HOST: "${APP_MONERO_NODE_IP}" + MONERO_P2P_PORT: "${APP_MONERO_P2P_PORT}" + MONERO_RPC_PORT: "${APP_MONERO_RPC_PORT}" + MONERO_RESTRICTED_RPC_PORT: "${APP_MONERO_RESTRICTED_RPC_PORT}" + MONERO_DEFAULT_NETWORK: "${MONERO_DEFAULT_NETWORK}" + MONERO_RPC_USER: "${APP_MONERO_RPC_USER}" + MONERO_RPC_PASSWORD: "${APP_MONERO_RPC_PASS}" + MONERO_RPC_HIDDEN_SERVICE: "${APP_MONERO_RPC_HIDDEN_SERVICE}" + MONERO_P2P_HIDDEN_SERVICE: "${APP_MONERO_P2P_HIDDEN_SERVICE}" + DEVICE_DOMAIN_NAME: "${DEVICE_DOMAIN_NAME}" + MONEROD_IP: "${APP_MONERO_NODE_IP}" + TOR_PROXY_IP: "${APP_MONERO_TOR_PROXY_IP}" + TOR_PROXY_PORT: "9050" + TOR_PROXY_CONTROL_PORT: "9051" + TOR_PROXY_CONTROL_PASSWORD: "moneyprintergobrrr" + I2P_DAEMON_IP: "${APP_MONERO_I2P_DAEMON_IP}" + I2P_DAEMON_PORT: "7656" + networks: + default: + ipv4_address: $APP_MONERO_IP + + monerod: + user: "1000:1000" + # "unless-stopped" обСспСчиваСт пСрСзапуск monerod Ρ‡Π΅Ρ€Π΅Π· пСрСзапуск Π΄Π΅ΠΌΠΎΠ½Π° интСрфСйс-triggered, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС сбоя. + restart: unless-stopped + stop_grace_period: 15m + command: "${APP_MONERO_COMMAND}" + image: ghcr.io/sethforprivacy/simple-monerod:v0.18.4.6@sha256:ed9299d73634a13f10de85e63d104276bf5e4ce5175ee4cc16f64f4bbeacbbd4 + ports: + - "${APP_MONERO_P2P_PORT}:${APP_MONERO_P2P_PORT}" + - "${APP_MONERO_RPC_PORT}:${APP_MONERO_RPC_PORT}" + volumes: + - "${APP_MONERO_DATA_DIR}:/home/monero/.bitmonero" + networks: + default: + ipv4_address: $APP_MONERO_NODE_IP + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" + networks: + default: + ipv4_address: "${APP_MONERO_TOR_PROXY_IP}" + + # i2pd_daemon: + # image: purplei2p/i2pd:release-2.44.0@sha256:d154a599793c393cf9c91f8549ba7ece0bb40e5728e1813aa6dd4c210aa606f6 + # user: "root" + # command: --sam.enabled=true --sam.address=0.0.0.0 --sam.port=7656 --loglevel=error + # restart: on-failure + # ΠΎΠ±ΡŠΠ΅ΠΌΡ‹: + # - ${APP_DATA_DIR}/data/i2pd:/home/i2pd/data + # сСти: + # ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: + # ipv4_address: "${APP_MONERO_I2P_DAEMON_IP}" diff --git a/monero/exports.sh b/monero/exports.sh new file mode 100644 index 0000000..5bb497c --- /dev/null +++ b/monero/exports.sh @@ -0,0 +1,95 @@ +export APP_MONERO_IP="10.21.22.178" +export APP_MONERO_NODE_IP="10.21.21.179" +export APP_MONERO_TOR_PROXY_IP="10.21.21.180" +export APP_MONERO_I2P_DAEMON_IP="10.21.21.181" + +export APP_MONERO_DATA_DIR="${EXPORTS_APP_DIR}/data/monero" +export APP_MONERO_RPC_PORT="18081" +export APP_MONERO_RESTRICTED_RPC_PORT="18089" +export APP_MONERO_P2P_PORT="18080" +export APP_MONERO_TOR_PORT="9901" + +#Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ настроСн Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ +MONERO_NETWORK="mainnet" +MONERO_CHAIN="mainnet" +MONERO_ENV_FILE="${EXPORTS_APP_DIR}/.env" + +{ + MONERO_APP_CONFIG_FILE="${EXPORTS_APP_DIR}/data/app/monero-config.json" + if [[ -f "${MONERO_APP_CONFIG_FILE}" ]] + then + monero_app_network=$(jq -r '.network' "${MONERO_APP_CONFIG_FILE}") + case $monero_app_network in + "mainnet") + MONERO_NETWORK="mainnet";; + "testnet") + MONERO_NETWORK="testnet";; + "stagenet") + MONERO_NETWORK="stagenet";; + esac + fi +} > /dev/null || true + + + +if [[ ! -f "${MONERO_ENV_FILE}" ]]; then + if [[ -z "${MONERO_NETWORK}" ]]; then + MONERO_NETWORK="mainnet" + fi + + if [[ -z ${MONERO_RPC_USER+x} ]] || [[ -z ${MONERO_RPC_PASS+x} ]] || [[ -z ${MONERO_RPC_AUTH+x} ]]; then + MONERO_RPC_USER="monero" + MONERO_RPC_DETAILS=$("${EXPORTS_APP_DIR}/scripts/rpcauth.py" "${MONERO_RPC_USER}") + MONERO_RPC_PASS=$(echo "$MONERO_RPC_DETAILS" | tail -1) + MONERO_RPC_AUTH=$(echo "$MONERO_RPC_DETAILS" | head -2 | tail -1 | sed -e "s/^rpc-login=//") + fi + + echo "export APP_MONERO_NETWORK='${MONERO_NETWORK}'" > "${MONERO_ENV_FILE}" + echo "export APP_MONERO_RPC_USER='${MONERO_RPC_USER}'" >> "${MONERO_ENV_FILE}" + echo "export APP_MONERO_RPC_PASS='${MONERO_RPC_PASS}'" >> "${MONERO_ENV_FILE}" + echo "export APP_MONERO_RPC_AUTH='${MONERO_RPC_AUTH}'" >> "${MONERO_ENV_FILE}" +fi + +. "${MONERO_ENV_FILE}" + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ сохраняСм исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² .env, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ свСТая вСрсия. +# Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ прилоТСния +{ + if [[ ! -z ${MONERO_NETWORK+x} ]] && [[ "${MONERO_NETWORK}" ]] && [[ "${APP_MONERO_NETWORK}" ]] + then + APP_MONERO_NETWORK="${MONERO_NETWORK}" + fi +} > /dev/null || true + +if [[ "${APP_MONERO_NETWORK}" == "mainnet" ]]; then + MONERO_CHAIN="mainnet" +elif [[ "${APP_MONERO_NETWORK}" == "testnet" ]]; then + MONERO_CHAIN="testnet" + export APP_MONERO_RPC_PORT="28081" + export APP_MONERO_P2P_PORT="28080" + +elif [[ "${APP_MONERO_NETWORK}" == "stagenet" ]]; then + MONERO_CHAIN="stagenet" + export APP_MONERO_RPC_PORT="38081" + export APP_MONERO_P2P_PORT="38080" +else + echo "Warning (${EXPORTS_APP_ID}): Monero Network '${APP_MONERO_NETWORK}' is not supported" +fi + +export MONERO_DEFAULT_NETWORK="${MONERO_CHAIN}" + +BIN_ARGS=() +BIN_ARGS+=( "--rpc-bind-port=${APP_MONERO_RPC_PORT}" ) +BIN_ARGS+=( "--rpc-bind-ip=0.0.0.0" ) +BIN_ARGS+=( "--confirm-external-bind" ) + +BIN_ARGS+=( "--rpc-login=\"${APP_MONERO_RPC_AUTH}\"" ) + +export APP_MONERO_COMMAND=$(IFS=" "; echo "${BIN_ARGS[@]}") + +# эхо "${APP_MONERO_COMMAND}" + +rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rpc/hostname" +p2p_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-p2p/hostname" +export APP_MONERO_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" +export APP_MONERO_P2P_HIDDEN_SERVICE="$(cat "${p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" \ No newline at end of file diff --git a/monero/hooks/pre-start b/monero/hooks/pre-start new file mode 100755 index 0000000..3f7e306 --- /dev/null +++ b/monero/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Monero Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ скрытыС слуТбы Tor RPC ΠΈ P2P. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-rpc/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach monerod +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/monero/scripts/rpcauth.py b/monero/scripts/rpcauth.py new file mode 100755 index 0000000..29db990 --- /dev/null +++ b/monero/scripts/rpcauth.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# Copyright (c) 2015-2018 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Bitcoin Core +# РаспространяСтся ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС MIT, см. ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. +# Ρ„Π°ΠΉΠ» COPYING ΠΈΠ»ΠΈ http://www.opensource.org/licenses/mit-license.php. + +from argparse import ArgumentParser +from base64 import urlsafe_b64encode +from binascii import hexlify +from getpass import getpass +from os import urandom + +import hmac + +def generate_salt(size): + """Create size byte hex salt""" + return hexlify(urandom(size)).decode() + +def generate_password(): + """Create 32 byte b64 password""" + return urlsafe_b64encode(urandom(32)).decode('utf-8') + +def password_to_hmac(salt, password): + m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), 'SHA256') + return m.hexdigest() + +def main(): + parser = ArgumentParser(description='Create login credentials for a JSON-RPC user') + parser.add_argument('username', help='the username for authentication') + parser.add_argument('password', help='leave empty to generate a random password or specify "-" to prompt for password', nargs='?') + args = parser.parse_args() + + if not args.password: + args.password = generate_password() + elif args.password == '-': + args.password = getpass() + + # Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ 16-Π±Π°ΠΉΡ‚ΠΎΠ²ΡƒΡŽ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ соль + # salt = generate_salt(16) + # password_hmac = password_to_hmac(salt, args.password) + + print('String to be appended to monerod.conf:') + # Π—Π°ΠΌΠ΅Π½Π΅Π½ rpcauth Π½Π° rpc-login для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²Ρ…ΠΎΠ΄Π° Π² систСму rpc Π΄Π΅ΠΌΠΎΠ½Π° monero (имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:ΠΏΠ°Ρ€ΠΎΠ»ΡŒ) вмСсто (имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:salt$hash). + print('rpc-login={0}:{1}'.format(args.username, args.password)) + print('Your password:\n{0}'.format(args.password)) + +if __name__ == '__main__': + main() diff --git a/monero/torrc.template b/monero/torrc.template new file mode 100644 index 0000000..0b73bdf --- /dev/null +++ b/monero/torrc.template @@ -0,0 +1,13 @@ +SocksPort 0.0.0.0:9050 +ControlPort 0.0.0.0:9051 +CookieAuthentication 1 +CookieAuthFileGroupReadable 1 +HashedControlPassword 16:39AF5EEFA4FC1D986022FDFB13663669FE50FB6DE9A3B4FE4FC7D82010 # moneyprintergobrrr + +# MONERO Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ P2P Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис +HiddenServiceDir /data/app-$APP_ID-p2p +HiddenServicePort $APP_MONERO_P2P_PORT $APP_MONERO_NODE_IP:$APP_MONERO_TOR_PORT + +# MONERO Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ RPC Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис +HiddenServiceDir /data/app-$APP_ID-rpc +HiddenServicePort $APP_MONERO_RPC_PORT $APP_MONERO_NODE_IP:$APP_MONERO_RPC_PORT \ No newline at end of file diff --git a/monetr/data/app/.gitkeep b/monetr/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/monetr/data/db/.gitkeep b/monetr/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/monetr/data/valkey/.gitkeep b/monetr/data/valkey/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/monetr/dfwebos-app.yml b/monetr/dfwebos-app.yml new file mode 100644 index 0000000..e1a2fa1 --- /dev/null +++ b/monetr/dfwebos-app.yml @@ -0,0 +1,39 @@ +manifestVersion: 1 +id: monetr +name: Monetr +tagline: ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для составлСния Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π°, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ пСриодичСских расходов. +category: finance +version: "1.13.1" +port: 8379 +description: >- + πŸ’Έ MonetrΒ β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для управлСния Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ финансами, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ свои расходы ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своими дСньгами. ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ доступных срСдств, показывая, сколько остаСтся послС ΡƒΡ‡Π΅Ρ‚Π° прСдстоящих расходов ΠΈ Ρ†Π΅Π»Π΅ΠΉ сбСрСТСний. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ свои финансы Π½Π° основС Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² ΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… расходов, Π° Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° простой СТСмСсячный ΠΎΠ±Π·ΠΎΡ€. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ расходы любого ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΡ… для расчСта Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ всСгда Π±Ρ‹Π»ΠΈ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚Ρ‹. + + + Monetr прСдоставляСт инструмСнты для ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, отслСТивания структуры расходов ΠΈ управлСния Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ финансовым ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ°ΠΌ. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ своих финансовых ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΠΈΡ… балансС ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ рСгулярныС, Ρ‚Π°ΠΊ ΠΈ нСрСгулярныС ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ. БистСма поощряСт рСалистичный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΡΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π°, помогая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ дСньги ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚ΠΎΠ². + + + Благодаря своСму Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ monetr стрСмится ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»ΠΈΡ‡Π½ΠΎΠ΅ финансовоС ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ прСдсказуСмым ΠΈ ΠΌΠ΅Π½Π΅Π΅ напряТСнным, прСдоставляя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ структурированноС ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ΅ прСдставлСниС ΠΎ своих финансах. +backupIgnore: + - data/valkey/* +developer: Monetr LLC. +website: https://monetr.app/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/4132 +repo: https://github.com/monetr/monetr +support: https://github.com/monetr/monetr/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ обновлСния зависимостСй ΠΈ бСзопасности: + - ОбновлСн PostCSS для устранСния уязвимости бСзопасности. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ зависимости внСшнСго ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ интСрфСйса. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/monetr/monetr/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/monetr/docker-compose.yml b/monetr/docker-compose.yml new file mode 100644 index 0000000..9bb6ca9 --- /dev/null +++ b/monetr/docker-compose.yml @@ -0,0 +1,60 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: monetr_monetr_1 + APP_PORT: 4000 + + db: + image: postgres:17.9@sha256:7ad98329d513dd497293b951c195ca354274a77f12ddbbbbf85e68a811823d72 + user: "1000:1000" + environment: + POSTGRES_PASSWORD: m0netrPass123 + POSTGRES_USER: postgres + POSTGRES_DB: monetr + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres || exit 1"] + interval: 10s + timeout: 5s + retries: 10 + + valkey: + image: valkey/valkey:9@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9 + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/valkey:/data + healthcheck: + test: ["CMD", "valkey-cli", "ping"] + interval: 10s + timeout: 5s + retries: 10 + + monetr: + image: ghcr.io/monetr/monetr:1.13.1@sha256:1a8b25adeaab4ef6560f502cef86641da2f9be4964ee50d34b8362ae46a6ff94 + user: "1000:1000" + command: + - serve + - --migrate + - --generate-certificates + depends_on: + db: + condition: service_healthy + valkey: + condition: service_healthy + volumes: + - ${APP_DATA_DIR}/data/app:/etc/monetr + environment: + MONETR_ALLOW_SIGN_UP: ${MONETR_ALLOW_SIGN_UP:-true} + MONETR_PG_USERNAME: postgres + MONETR_PG_PASSWORD: m0netrPass123 + MONETR_PG_DATABASE: monetr + MONETR_PG_ADDRESS: monetr_db_1 + MONETR_PG_PORT: 5432 + MONETR_REDIS_ENABLED: "true" + MONETR_REDIS_ADDRESS: monetr_valkey_1 + MONETR_REDIS_PORT: 6379 + MONETR_STORAGE_ENABLED: ${MONETR_STORAGE_ENABLED:-true} + MONETR_STORAGE_PROVIDER: ${MONETR_STORAGE_PROVIDER:-filesystem} diff --git a/morphos/dfwebos-app.yml b/morphos/dfwebos-app.yml new file mode 100644 index 0000000..2ed9a5a --- /dev/null +++ b/morphos/dfwebos-app.yml @@ -0,0 +1,47 @@ +manifestVersion: 1 +id: morphos +category: files +name: Morphos server +version: "0.6.0" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² +description: >- + БСгодня ΠΌΡ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° сторонниС сСрвисы для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹. Π­Ρ‚ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ΡƒΠ³Ρ€ΠΎΠ·Π° нашСй ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ссли ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ сСрвисы для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² с особо ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано ΠΏΡ€ΠΎΡ‚ΠΈΠ² нас. + + + Π‘Π΅Ρ€Π²Π΅Ρ€ Morphos ΠΏΡ€ΠΈΠ·Π²Π°Π½ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, прСдоставляя Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ сСрвСр для частного прСобразования Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²Π΅Π±-сайт интСрфСйс. + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + - ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ изобраТСния Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. + + - ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ PDF Π² изобраТСния ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. + + - ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ DOCX Π² PDF ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ + + - ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ XLSX Π² CSV ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. +releaseNotes: >- + НовыС возмоТности: + - Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ + - Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ffmpeg для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. + - Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ элСктронных ΠΊΠ½ΠΈΠ³. + - Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ API, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ систСмы ΠΌΠΎΠ³Π»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΌΠΎΡ€Ρ„Π°ΠΌΠΈ. + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр zip-Ρ„Π°ΠΉΠ»ΠΎΠ². + - Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ root Π² Ρ„Π°ΠΉΠ» dockerfile. +developer: Dan Vergara +website: https://github.com/danvergara/morphos +submitter: danvergara +submission: https://github.com/getumbrel/dfwebos-apps/pull/1020 +dependencies: [] +repo: https://github.com/danvergara/morphos +support: https://github.com/danvergara/morphos/issues +port: 3778 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/morphos/docker-compose.yml b/morphos/docker-compose.yml new file mode 100644 index 0000000..4f86b67 --- /dev/null +++ b/morphos/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: morphos_web_1 + APP_PORT: 8080 + + web: + image: ghcr.io/danvergara/morphos-server:0.6.0@sha256:3d6f64ef386cbb6a7c5d55526e1a69da2d3661a1996d757897e92bf4369088f5 + restart: on-failure + stop_grace_period: 1m diff --git a/mosquitto/data/config/mosquitto.conf b/mosquitto/data/config/mosquitto.conf new file mode 100644 index 0000000..c08f5a0 --- /dev/null +++ b/mosquitto/data/config/mosquitto.conf @@ -0,0 +1,18 @@ +# ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для Mosquitto +# Π‘ΠΌ. mosquitto.conf(5) для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. + +# ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ +listener 1883 + +# ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π΅Π±-сокСтов (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π΅Π±-сСрвСр) +listener 9001 +protocol websockets + +# Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ +allow_anonymous true +#Ρ„Π°ΠΉΠ»_пароля +#acl_file + +# ΠŸΡƒΡ‚ΡŒ ΠΊ сСртификату PEM Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ server/keyfile. +#Ρ„Π°ΠΉΠ» сСртификата +#ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ„Π°ΠΉΠ» diff --git a/mosquitto/data/log/.gitkeep b/mosquitto/data/log/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/mosquitto/data/log/.gitkeep @@ -0,0 +1 @@ + diff --git a/mosquitto/data/mosquitto/.gitkeep b/mosquitto/data/mosquitto/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/mosquitto/data/mosquitto/.gitkeep @@ -0,0 +1 @@ + diff --git a/mosquitto/data/nginx/default.conf b/mosquitto/data/nginx/default.conf new file mode 100644 index 0000000..b399756 --- /dev/null +++ b/mosquitto/data/nginx/default.conf @@ -0,0 +1,36 @@ +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +map $http_upgrade $upgrade_request { + default 1; + '' 0; +} + +server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + + location / { + error_page 418 = @websocket; + + if ($upgrade_request = 1) { + return 418; + } + + try_files $uri $uri/ /index.html; + } + + location @websocket { + proxy_pass http://broker:9001; + proxy_http_version 1.1; + proxy_read_timeout 1d; + proxy_send_timeout 1d; + proxy_set_header Host $host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + } +} diff --git a/mosquitto/data/www/favicon.png b/mosquitto/data/www/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..fb71282f1cb2a00e4c83f8ac4f7b46fc521de679 GIT binary patch literal 4913 zcmc&%2~<G|AdL{=!gmHgh`66WMcnt3*DUFd}sS#7p(}5c3zw0zT^Cr z;>GLsRX*`J@^bpmJ7bcwmbkp-xpLLpKI=DZ+_ZVud++=0_7B+qLC}W>{`ugcqsNYi z0Vhs|$9@ubD*n^cpQW6orlzH5&@OzL{Z-DzOSxCCeb3J0T+c7Kb^A`qUEYtSKiz-u zu&SE>sHXO5{j-MWjlVWEcXoC6h{U~p{Uf8V#$4ftJ5O}G|kLbS#DC>WP=np`D;IZ}NmN`0L7v|`OBjM&U$8Y80HvV5wnFsks*qdoC z8*lyNY3{}!7W|jAxnWnudNpt>chj=h0&H#opnHVQmT7#H+*nRID>Uk&zWZC)y55N3 zK@}kfy0sDNoRCR6CB_jOZlUQ!Obrcx{VdS$F(Y6lT#ti4k{LC0eYHr(Y%i^knXAl9 z73l~sgFIw~=Y!loa`+GF1azO!-J+F3I=Z2%7Nnah8of7oB6K<*&d-Tzpk;fYe}DIJ zpHyNY4Rg2b1^o8www8%|J!Y(|)7L)^ENRh@jmm^_xtV)B`x%|Cq&T^Ul241=L&G+e zB>Bbm6V%Oe)g4Hr9rWxrSyhsuEmfBGZyLk~OKrG#H>#_huGQ9>K2Q5o1jook(G2g_ zHMK?~>^i$aDa&Af4kUrG8?BV)#w>27uExYWi5Q$1nP8rLrE6)jSu8*!C>cUUZ}g0} z1Py-@^&2|s{3ns+BrBB0{%=6?t@Eoe~6Hp>bjBtTEC1$(#(|)qzB)K@~3k3Z> z76JEgy`|OK$|vGmfTECA!bo+#=-X-*4lx;*Y1L5_x-`eKVk&pGP57eXjF7kE2{YxI zqzdXZ54@PU$F}CY&kFr9x=|O_h#UzA3Bq-CovE5X?jFpi6 z)JjA9rNp_Z#-6Zp^_G&UbYcn>JqWsqOAE%}qhnT?hLzVZiT8HJPnrY+;X|3j-ieqt zTfKh_4RXi5Cg5O{53>dgW`6=lDy*{dGaSiWJo}qQ^KuXq9-MWSTR#UnJak?e=|B5+ zCzNZn1DdJS(DF%5$%2*n3qC{dfL)N~(aWh67z1N8>Zp&XKcK2TB(-E z-iP_JP7yrrK^FQ#j{&c$%37lH`t9gJ%Ox;d?g9|G>Ie=c8hQ>bAH zi$0*n)YO``3d`^X%wW!-KqDH6Xfp2oCeU?2DygcwTum6InPVQIJOAb^&LFD7t-gXf zarAJRd3k~_oyAiWGEaj(;yZvMAB#yTO8Nj2$XONKpR5`*cM3N^)r2;cewox65n^Tv z2Ww*G_m0o|1AKItX3i4gp*w`p9h-$M{ip3)FKpwrw?LU4=zW-^(k~E#(9ff9drSK$ zloVFZw|U163^dgm@&OcC;r-YJxp&OuUp0x|JT7aE9SP9UD#O{Ppp$0$*-FE)S4}DU zePyDCbT1b4HH5IDeCb@T4>{Gs>PoE_%_(CDlRICQp7?W$iV}eYLY_chvXVZCuB|&P zxG!7>3EC>bFawQjw7TB-rPEN?-!HO;;GuGY47L6fR4{VWQ$&OWlw`dP=b5iM)nnzX z=ScPM0&U1RdzwhgpF53Y#!r!rD&<&`>`@4%T@!Jps5pog$GQp(n{2q1He9rsG?=23 zPKJy4Mlc0=ap3~YC-O8V|1E|@y42iKX~GAw9s%;9RnFMzGxU(bKz<8}5{-3a&F3y#zl1s>;vy8SEci}2U=KzZ*W>2zbyzHKQbyWCZau?=YMTY}8_hlj@JkD?> zXM!hyChGLbyQ?QG1rkg(cb*={R1+>D9o*cIUPza*^1pyTX0q_g}ykWz&NX==; zj@BqsU}mw_%4j5;$gbc!H`=+^6sWhzDdGlp$RoDKJrtD7{Z=DwV5$g?&?K(2uKZ<~ z#cS1&4ax*a?lFvDOR}C@Lv9QSCPf3_uiJa^70G5%6$;WbxUE*EKe$s|2cQSO54pz0 zSSkYjL5>2&e+)cD=A{9jakZ*BiPhC}bE*PE?FruUFhO96N6XVAa)Z>MnH!|sY~=J= zFznA%qo{cw79{W&VVT$}K)w3F0c?+mtq)>oFk9%0BPGhvB5yynefbDYTWfTgMlGuC zIljK_`oP<7Y^892V0VNOsUB$IX8Hsp8=$PDb^?XsTSx2Li^h7wDownoxDyr2;q^9L zny$w1t$Dw`vu?Sdv#tU@{Ni?Nlg{dT<>}+dS(flu=v&nwVR%Qlr13Xb=HNrP9I_2p zY=~ocf;6C+idgms_nWsQoJs7M+0mp;vA{>4tMvQeZ7NN!HXT^eGWl>0v_4X`ZDPD_ zv@WB~vf#fHMgn$Ub7)ZuG;*aM17>`4*SurpAR$s+3O(dO zLJg_T% z`@7B0baXG$4I3`ut&reXV*Ugzh^YiOiF??pFA(3jNvgn0z3<~*$rK{q;AWIkvHCMW4KA433{8|#>8iV^!)>CMBqcScM z%2G`pvN~^R6~gUP;UX1NGxiw&-q%lZ%39xkCMxFGqjJ#@d?6u+Iv9wmL zwBg8g?UK5c4K^HXhIJ~)$_O}QF+w$jhVkju4wLXhrYfQri@A_6`cwSEYTfPzd_ zpXhi%3zVxuNjqAF#ZC6On@~Px=4Op-15eD?%{E*XP;vNyO4)2NyB;v_L$z9q(fk-6 z90v82mrT)RXO8D$AqgD8dvhKJI+n3Hm$|apC+2)j8elMsX5I6e}O0 zl15Ij1TzHfiO(3uZj-k_Ten>J2x`;P$X#5rv{c`#OxD^RZ~V}7t?>|68>)8yUf|(L z=XmX{P-3^X7Rx0s0xH6uX75dV9$W!+VmsX(C9$EyqowZ*dvK&rAD)?hI+(6q^p(j*H&=p;NLxF^pQ{fGH zgCnE9nz^#hK^x8-?QCY1hqF0B$KsmTS1@PDm%sw5A)9sSdqrlr!a7ubMkqY+ zA~qRIiSuoPQXW~6_1J|lzG8xV%C30F2qj0mZ86_(o>`uY+*j#cvxdy!V5rllLq~P6-aPL?1wv-0jxY?D5?kLm>xqOj=0<`l7`5z_wQ~AS717QRl7To^T2@GaK3YcYrv!2 z-qRMT`P0xK4+F1ZzMVN3`tmPW_PC36C1=@4@8Pv$a;rGee)P z#VjU&c=9}IB)x8OsH2tmuxd_?id`I(;l<*T;hxEoDF!=$B|^E|#f6w1kiwv<>by$B zbk0WX$V;b6u(+WhV&UzrgZa$hemX}`J3ui7D)KKsHM61;D04Xy50jXDp6nN)=!3*W zZVd%2H}bC(MO`qgksum-{o@X_ct3jGHrSs)mxqo>&t@3x9En&l&@uKNll!oXKS7=U zkgr7XPkFuO`Ty|5 H+xq?mXJ|4q literal 0 HcmV?d00001 diff --git a/mosquitto/data/www/index.html b/mosquitto/data/www/index.html new file mode 100644 index 0000000..6a0a834 --- /dev/null +++ b/mosquitto/data/www/index.html @@ -0,0 +1,308 @@ + + + Mosquitto + + + + + + +
+
+ +
+ ● Π—Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ +

Eclipse Mosquitto

+
+
+

+
+

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ MQTT-Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ

+

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ MQTT-Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ:

+ +

MQTTX Web (Π²Π΅Π±-вСрсия)

+
    +
  1. УстановитС MQTTX Web ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS.
  2. +
  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ umbrel.local Π² качСствС адрСса сСрвСра.
  4. +
  5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ 9021 Π² качСствС ΠΏΠΎΡ€Ρ‚Π° сСрвСра.
  6. +
  7. НаТмитС connect, послС Ρ‡Π΅Π³ΠΎ Π²Ρ‹ смоТСтС ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Π°ΠΌ Ρ‚ΠΎΠΏΠΈΠΊΠΈ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСния.
  8. +
+ +

MQTT Explorer (Windows)

+
    +
  1. УстановитС MQTT Explorer с сайта mqtt-explorer.com.
  2. +
  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ umbrel.local Π² качСствС адрСса сСрвСра.
  4. +
  5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ 1883 Π² качСствС ΠΏΠΎΡ€Ρ‚Π° сСрвСра.
  6. +
  7. НаТмитС connect, послС Ρ‡Π΅Π³ΠΎ Π²Ρ‹ смоТСтС ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Π°ΠΌ Ρ‚ΠΎΠΏΠΈΠΊΠΈ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСния.
  8. +
+ +

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ доступа, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ устройства ΠΈ сСрвисы для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ MQTT-Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ.

+
+

🚨 Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ 🚨

+

Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ свой MQTT-Π±Ρ€ΠΎΠΊΠ΅Ρ€ для доступа ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, Π²Π°ΠΌ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ.

+

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· mosquitto.conf, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

+
    +
  • ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Ρ‡Π΅Ρ€Π΅Π· Settings -> Advanced settings -> Terminal -> umbrelOS
  • +
  • Π’Π²Π΅Π΄ΠΈΡ‚Π΅ sudo nano ~/umbrel/app-data/mosquitto/data/config/mosquitto.conf
  • +
+
+ + + diff --git a/mosquitto/data/www/logo.png b/mosquitto/data/www/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dc4b1c0bbabf61f72c116b677233ab98790bb988 GIT binary patch literal 16510 zcmb`u2UL^Y(=QsDG$nLIN)!+TM3kxsL{vaTL_`cdND%>P0s;~e73n1c0t!kLL_kVJ zs+5EtmEJpn(0f7&ffR1u_dDNzoqN|^_uPBe*=x=7BrD02nZ0Mv%x`A)(df|x;0=J4 z<)87-mGz&&&i2ohgPom?{TRowWB(E-H`g&vZq8%JxOlm^dHxy9SI2pIj{o!KzkbHb z!N$hH!+DJJ-;e)4U5*+70$eNr762QI41iUDg-w9vsFfuL0AS(xmo*l^{}?Q+Z0sDz zIGHT)@-x|HV`DPQ!Q_#}Os_L3wwaqQ9ZSA<LdWod3wf!WzsZ zHUV~yGnbAD8dz{X@)wd(d&MPuJ^4#n6Su7TeWHl-vpybCIgQz~q<=*ESEB!S0=@qK zCDDHb`j0$E9{v*LEuzt0mc$cekbb1vuQztl%WMKalt42c_P&K4WUUOgmRNb-MP4ND0F zsF~;jxHYrCcQ*-`$jtz*$YZAI$zb=(Z~=+~%!Uwl=?K6rUBso%>G<@EZj5oRG%v^= zIQwT$?c>jH?y>W>hMssghVPd@32nyQrXM!R#->z#7%OqB5zV6#`8}^4{XA~GG_U%D z9W_2X8T|-fI6smFAH{PI;z&=nKba+FI{n~RLU2M8b8g*P1mj?HnvRfj7ape>n|?U87Y0b57g z-!3&(pLpt@Ugh`Nf%Pc0x~2VcFLvz7Jpw4qhZ_lrnTqk^-~~m7!jShtk-`?&nCta_ zPx{l-gw0tMmD8baY0buxo;IIi8v%SK3YBKLPsY(PL3ZK58v~1V^|kMeeZ5&lLr?Ak zc&InX&h(UB)SI`4bD&dgC$?hc?tGrj8E66pf$Qn<4BmFr7om@>VmjBJwcIMf8!~)< z&$kg)9-RsG?K=tj*|Q$xJA28SBt~d>ZTj6`9`*G$+gX&~HeaH`=Vi>sez-C@g2FM2 zPr?Z6g!h_y+xFR1l$iQn(%zSld_PgMG5Acm_Z+(a+=8{zN$n_$dPh1wYll_~QneI! z%tLri7x~KWsJCSckI;YwWh_q!>Ta0bn&O>+W;)Ut=x4+w`wLbC#N~xnTT-$QKyAq+-rV*DsoOt4@*8n!9<+O>Kj^q*kF;)Z zrlNNo%nOsOfg)+R&p54?ikESm@I$1qkz z$Re&3v8GIgmL9GZ1}||}+Tk0@M+T{9zvm9#P#45aW|k9F`91W7drN7iXh)TXPlLMBYqLEkiSIX?Rvpzhk4o|Ety2AzgZSES^G4(h0%|Y*4TQL&FOs|biw=a z5g^dkFgKg`RcA4{<^%g-3a9vQ0@e*b!P-I4X__&Qg;?0G(ax5vu*eMR{kSLy^+}xI zTtL6aXu+(9;p(t!^`z{=+RGmgUW9*n8Xp#<;2i!UC9F*T*RA?KrT5ytlUh&LvPbvP zZ(B)P3RL6q`;1flQzHn-Ks6rWnQmpeT3=4du3m?Kfn+fH5ap^-@GBn1_o}wnbq%~l z&+nbCzr}egk8Ml!%W8v>k-;P#RSZ8n3RCQ#rIZ!Wb0L>}yw|9sIhRLMP;+nj@*}$W zZk-RiO%3hOeg8<<>xPL+_8Kiym*dK8k)z;HkntiSfhI=qjb_Ny5Yh1!AD(WNWCz$J)16e#elhwvaO8zpO2mhu>J;z{Oq{~4^>&tsKg)o zhI8k1r0)h~?mjCP(QOewrH)cUgl#*zU${{JV^ETSrUzX`kM)q~EuL~C}P>fGq>{oWHI|69+qy}WmS1zeQABK)>+@LyH)3k*sz}bdQh%JN1 z!4V*>qPu@mR~Ng!>v#ZGd5$WF;u5dUp=<)rj?HU!HBPtjLDE~xyG7+7mOO?El~GXlky zfyedxtBKR;>ve~v4U9Q_QQG}O^m+ZWB~(<-9%*Z%izp5Q5i}|2+4$47K4`6}+vi4N zE+pNhJ-4|6-eRNAD6jbfy$;ReDwNFypJ>PXyNCOf+uivje$q7@Sg;=Q9dniVIFv_n^se92h(p|piGU2 zSfs9a5lxqrlsi-MT(8wL~=O zVT5Bg_CWE6CDmPLv~*0|mUEBUa1L%<3;!65ey`D`vtvD2vYV*GrqVXJa$Eond4A>r zTrQ4&hT=Vw1&Wqt>#qmqJK?^K$=zAKvDP7s=F0g#W_h zJ^CjOj(V)@GmPUA;Pp$GtE(uMWA|#k4|j0MJD(}%H%EZwX7D8XD-1$#P;Z(R$C4b& zFLXHQ^qa=^gcp3B3H#{8H$Sp?1W2s6`%c+ut3@VM{?c~vg!t;#=w2}A(R;t0UGd~d66&?kk(b_4G~s#~nxNj2?<0gQo5=fnS?*`j_9#kYld#!p2P4#OwtxZF&_r&GGg)6nEH z$1ti9Ew~@fK{;EgYpjnBtJRbFgT%uEWcljEPNVK$o4X=a9izFS(0nL`kJ+1Ot1d6A z4lR8QkBd_?#||{WU%;MH%8P04lvlxXD))X~$8`*B@VeSfyndcP@=I?t^Y9~8lhNJs ztYt2J+5vwMdMJI@A>wezu4C5j2$0-EiEh;yiP!8v3x>p7q->J6T~xYS^Utp%-mU{? z002VK=;-unaGA$=(AU&S^V3OOXRi0iroR0Ak8{4s;w)kymkmIdV_iXGQNXC$2T%cB zf2R@x@9%2ciNDxwzS!tH(kVZ{msWEZ7-YDRN=MORP3eQ(Y4d8DXgHs;kU8h=t$AcR zMxJ((5=)FC^aG`ysCcS6*{CcU10@7mTqiG2|7wEb-Wupu!qX{pjTli%;%pI;o6>SS zY4h&_+!fBF?QS__{agkkMgMXHc#IXM@eZ5)-chZP_`p>**c?7Ee&re!z13HiJPEvU z<+qaC5uhP2)RG24XP~A7oB~b~!vCzOcJAChmxJ-!ZH_zlnf1S^78M0OrY{3?tf`A= ztmSp!J$K49_EWRbS5_-+Y3-_uVx$>XV?(MgybG>KSt*WBU9?`->SqZrd`HFA`?Kw% z@HtBgKfwMWpnv%GpRGf1Q@|!k-G8Ux4-9s$20z!cK|b?Z-hTS}+av0Dbt1U!Ff^2o z`;gS>619J(7%RKuc-X#wry=9+ptsy>0{8KNCN+_eNlB5@+gy6zanZ0FB_Zbal_Z7e zAaNDdr;CCU_BZ{0w;Uw3N^{9cE3bpbspLlygokOWt>$c_N|e{#DkJx9)-ZZwjqmXN zEC4Ao&TJn6fC+nedSDWfyN*RbxYNrw=e zIeTdVyPqf7&UtA4EgdHtD=ht7i(C4QK(|^r4^{`xMYClZOqc=FV7|ARWg1Mae+=em z;-9@`gY`zpG9-F$L%HpgRDR6v)ykT3OtneLx4Q`mYQXA&%JAtMnMZ&pv%lO)ID~!= zjYc=m?({=g6@}1LeYf?E>Ax^+`4PIeup+Qau0nT)6_g9wPLVjq{!Fd^1ejBs8m^&H zYrEwH&ewsyF^uDbFd?*Y?Sw_ulMiL75wdo9oo~=j7uBcKJjsWdOLA8`i zr4CC^yc+oHp0AykJp$ZdqaPl=#;Vf<2pf<_#|s1XZaF4ZYi4yO1o6hF(hsN?|Dv3| zb|acGas#?9vqeCW<^HY8L2ucbm;2+Ze88G+u04@0B1VsJG3gDy;Y5Q@_(VAFQ`RGT zn(vdUj78WSb2Ydq_oYuLqyB#)!U~m2GgA2Z%z?w^4Wh- zhHRBh7+wgh@qTuc1$6wLUl?v%&yK7>R14{tt4!P&l-St41-h3Zo46KwCJe7&CAU4N`{t+ShDX`MJ5L$k*noT5xO#FH0DsUf*@4a2Fz zb)Wmr6Ur0V+P8IaV26Hh@a9O;NZS%6Kdwvu(0B@}as-gb-gGb>dn7xxwtoa@)K6iu z_5!BvU<@77S6bCNK$@GEd9+2-s{B8k4Ertu{rU~_vlK{vOjM%jQDi?aBe_gtOE{*M zBtJZ+&vH%~@E!qJN*7lbr~i(dcKk}eoO6Bq_Y%v4<0;`U(bzx4c#e$gz%Yly2E+-B zakop64yDlaTgNG>>u{)#K`p2(MZofsQYts17(UfJc_XU9jy`ICR`%kM)K^>T&=OjbnIZy76 z4E9RbrIb$p?Se{3MYv8lmDZEre9!u+TKpb7{};Rk!RkW7#^MRlvFkThUT8Eul}(1* z#h1MX)+9I`0qP;Waa8FaaPbgcQ;N%so_gc>wPPy!qq2XhkJ$iK&+I=wk2p0rqFJKe zlBqe2EpaFoO@Fwh*V!F%^PUO#ExPY#F}qqPPXs;`4BoZ_T}o&*6^nUh_cY$h(y>>= zSNO@kG>F8Pbz&iH^6}MpkAY{kDCi>aUZ@D^3B6KZ&KBlcM~U}PHp#QU98G2Q0H%?x z6g-iefBtySQQq%KLPnsx7$wS8!Vw^nK!QY63Y<5Ktf_`^dw<0#%8ot|>J3A&$CbM#Tj!gW@ z7V&yo6IvklJiVIy(;9DQtRZA{|B2hRzpF+(Z$nNe4Q-2Um{6r1LQYS@u2byXlK8>q7u5Dfcsb>4_e1RE>gf+NKbcMnlvtCe+|9McUgLXt>X+leXnI7aO z`T9TJqalOrN`I$`N`P2U&~34r$fz8|-b?QkTEt)D<%W0$o5I;(tXt3M<`(W4o&ao< zxT3QAH1>QTj>8orbwfKSe$QuA5{33wQF*H3QdU-#bn;As+{M;cR>H?Q0Db_eqP3s; z(m@+BZOX=9!w#^jJp%{{&>K3NCnW3>>rjaH-j-p=X&>?iEx9yHQAz*_uA5+5LL@3Z_rawbQYURtng&>V9 zM|Qm`v-`{scN@#tvHA}nyV_hf0Yk8Aa>gd+fNuE?W<2s<#hZdeczM=(Op#Xo*(?Wk-o zvln9CA;UOl4c9#Ah9smrAQO#q8uC^~Hu3Y}`WIfe&VGb@4bsn`Q^7M|pvN=JNPHhi z5c3FuRYkJO&4RgZgZHDL0F>M~bZm3+R=X?T61 z+|OL1afhECAl=8H!;Trmh1mB4zc!5QOpwZULlafK-ed%!r;Y#sY7|D4UP(KieVnp| z2=zYJ5$?l2DAPC>=H^Pf6Vr7BU`5w@G2?K`IqaLZkvBB(+>@MxV)T6ZhnMrkg$)7g z$Bh|>`{)XSy$(9ad9W>JeR4Q60c?9?Ff=BmT=34OOJ<)xsf{w;2lldc^X>lm( z+!LDefC<3$BgCK@TcG@Faa7x$n{^+| zzgXKuZ=)?wh(t9SAkIT(l5Up_wf@;h6dvG7Y^}ab%Od5auN2J0{tvQe+<%0MzofCS z=26^ckrXqy%oDhvV%lJk_34Z;@kSTQ1@l?!pw%Nl+1^5IUgVE@H1|f z6m>=z508isnuRP1wElgx3t3FT}x)b>A|5;pNtRyVw!H3$ilS;2zzf z)b+d?pT7#r=0R1qHR~hN^Z$r!V1M|&9B2cJOSF!pQ#W>b50s`h=wX@0~( zpSgmZy_!2cG+`hiFjMUHy1uwa`9_v)Y7b_7GCt(@cs_jzN2kg*gr9(NFh((|scm@B zUXGj!-}^uLjoj26%>x{rrUq)q^u%8BJ&}GH7m9&qKwHc|%q|34+28klvc@pZ7#Rcq zh;AB#NzHh`&#v*xOjBL~Dr3r6RD>6-lNNfqP@5a=YF-PVC=8I9nn3O%I2x@H9-aaQ zvgilbTf*SHH4KqMlSeKd->h4{t&rD*MM>xH-Hc!nFk(eI0Yql}z8%x_>JU;b&)GxF zW7Ye*FYyTvogG13w>=0T7tzanKVxbs9>jRd?Kg65g=>D*op!l~-0Pgz=RVRWT@?Dk zPZ0^0G$o4d@F|tP_=h7lB~QN^wHTfRHM|RpJYyjFdWMXSEUJqQh5yjZ_qj7OaN(gTvg>#)K zZ=7|3OW|z+*ZEK@-vLAi}bTbF5< zkbvlil1}_ZpLk&$<^`wj(w6%bkj2OX{%+bnWZj<>wM0NSSCkKLCe)U`S@Q^$t+IVW zdY`AiU~u33{+oR?KE&&CVGP2mbhCdS3Rz$n&)IzA(HN=vR$Pl7TtfH)Bl;;VjU^|V@lYU$-}%P)rH+eIaiA>l)KvCsj5c~;jmoQczd2m}UbT()=A$S1vF$f9628eP5uqN6s#0~^;I~hOf`0P@K6=|Y*MaL19(n1I>!o-%ofjjhK##o&P5Wpj^UMHZt8gIkmfV3+!J@5g@7n1cRQ=)aPC zG$1N%@U>$2LQQdtBJ8 z%~Mm3pSK9uT6hCad~r4Bcb=5N!;{Q>0Qw_#=40*7Bt^XyF77U8v+6flpjW^A7eyC> z8bg+^7zW35D4LP0r}CF!(^{yXZQaV)rNRR=Nwoz;jHKNd(UlkD&G#&C0@W(N%_rG| z+H)x31bJd~(yp&?ZW^O|=yZ+T3%R&f__a7DCiONG2}F#`+NNlXXO!7Z7Dy9w%4jy$ z49x}2gCr#&H}azk*>z+41<2<1?J8-NJ!mG_f`#2xGNO0nJ!3Q*Bz>Bm9klzPGu=aE z(s-aF%@jnP3tn=_Xi>3VI|7`bflJjlwKLBaubV&XEdniBz-;>m>?k$_voj-LkKWQb zkR>kwp+koViNrRVsaA?na_1GbO$Efp7~h7|e5x|tD!*S~zbC`8%=*eccti2oFqQ=d zQL5tZ%QL4gdowD>8ws}r4VQm&(TXDJ1^50?!IVM>)kGUMV`A?e|eITdttYxJM~ikLz95W!oW>j;ri@Qfxw z=W$k8vFF1>qb!zm!fIgD^x4(TPLXSeDaylGpDe`^#1qq%1$LEgl$TuSW{w`J>qIE7 z#g~7aVoZ>KMW|a)IrgE%cB=EU>$@bk032KtBc@jfS);_B4OLK9HACifoH6Um6TfOW zzBLlCk0<+5K(pvE+zc`reu84lHGD$s?yXG)!=~C_vVjBDg`vFKRsOv^8>?4M>%6Ge z=;BgA>&J<%QPvYmt423ibzWa7RHhMIN6>MtcPrgP|5Qy(Rc+#@5ji3DddKBY37;#v zu6Qo*r-_YfjdC>ot3D^ii=0G}C8$Qg6{{1!3|A~AjfaZK56_?I?Z!mP@k~>2*A0V3 zq^71yBEMFTjBp>nXw+|ZJ~7ge?QEp*YS6o2nSW+ERMSHXy)$_PxT=2H@_}djg%!u10hdiB zN-%k~FQ=dROXZH5UR83`CvU&e&Fi6|M}Xf!`ywzaDq_mmpEP{(-fO2`?>^G#RvI>y zhgzy+vhd;vphh?U^k>2vn@R`D6GgurDkKFuJXTN|&aABX+frs@h0TL!Ko+&5XHwQ2 ze^$kBnFI@>2Y;|)?|MZzJ|ZmhubO58M|O45gVC9X{^+M^5XM$?3n=yRmt z*osEDO~vS0*(te4M}YFo!+y*Srg8_g;|S8&i_5i25qs*Y6v#;0?njM@zh{^stX60! zn!1jGCXpW7OUa^?f9u*;(PJC8M|?h-Cb-{`xSdH`7&)$`NXq7`lH-^aXDD47fv*`;JKX~dQ;f@XS;nJ*yVe82u_4?O>dlfF@z`@DUP zB=_u$`@p4lZ1fhWSzAajMAb@c6cI77Q?}r`_u$e6)$cUqReE~89VkLyFC@U~*E>0N zM|z6$lvd}r)8;=Oa}v?Lw`mP=HfNF_M;RF#9WTyj7wC#NfwNybf3akE(je`61?;9>aTH`%&)-HW@jFFOW7Pla%8;(;s9@Jf!&4g@p* z%ekZV*Wcoks`I|x3(z-a&<>)UbAQ7)3%lBneGH9vl#Rl*)t;!ep}+}br=nt;f(cqy%xPyFAIg5u+oUD4LKZ?$lN*lnDX$<8@6- znU$>mm1=%_N4&kp&%clAvH>=uDXmF zcfw3;kJ&{43rgrItVfASbSJ2a<82HtxA!{?jWmQmTs_1FprgPuB}V|_Jv0wZof7(; z(TU)u8HjAf2dzCWCvmiW{E}f@?jP&&Sdx3*{#$oJap&_-ANIi%MfW64d^GgOQY%O_ z#LK>Rz&B^0WTv{Itma8xOjj^Fr&l3|iJ(B!7Buo_hupTtz^(4hwojw;WqKxh%S6;G z;)nSoKqcu}{kiVHqJ4kP{oM{v8%`hE+{ksj;6JQ>CZCRclbCNS_HL`#c{2A&>1L1J zausAq3sb<{QNggQHB}YEm~;4RRz84%U9#-fxibs06MhNdRt?HcaNd8Gu^labV-^8y z{=@V3Fp+xZ(s*08^=1xUD=!v-sWL_AaS8O%`JZ-=Ck9Hly&y{T@$@O zn)I~hgTPe+yi#)$=gY(>Y&+n$0Z$)1G94|MW<-60hrxMv(me>dyx01OndgK-M)szfYl2Nx zgFq9A*8@AhdOliNwicAekdPA{wq~j`!sB5kQG=CsUO~_;rw<77Czv7B4AEo+bCDcJ zMZ;LwQ5yUmh-beT2iwfDL$4gI4b}lwZyic|I&2dDE@SO5yVT08)WvCWjH{yiobk4|8f6EqPmczXl08D37MUg5A+Xz1sLvkJ3jLnQ`6O79gDi$6sX_HPm9R zGc`LTq${uohQSa|99D@bwIC9Lu!CCFQZ*d?MJ7c}v=|R2^e^dQH>n!RW6Na?fvtzj-%_q=NSE{|OnObBD0hl{k>Oifxlw1s;pnm8r9#^S7; zo>?nFXwK`LApz?0Ye?<4xNR*M`M>I9Yl#kopTYxIX2@Od3_IrC#3czI3o7@$Pq`FQDCoy=K=>03Djy%(zrwhfxE4PRH0?7iLBCBbL$ZYE+^rWX4W zA&@l-ZTlqA4pg*zQhF0I6R5QfOYz48HlW^k(gfnPNn ztJ`7vnIphPer2e9^p`bh`Js(nDK@jrZStyxR6_;#uTMxPaJSCL!k!1Dqnwk2blo;| zEq^-PRl!^+YB9_N(SrI$GL(T`jR|2e^HN1vkl&h=Q%^c5v%VJQdlJM?r6*qjJ%Z}lwQ`r;YsG9+`)B%X8OgYozI`QZD;_K+Ks*WVQfZiEIr0%FAdFt7&AR|IIG;S~^9mZO}C`{a~v)9bX$hLKCUguliW%@}t_z z2%f!Cn~o~>AbO5l%?FE)Tsoh=(>$AU^U>SJq|b4GDAB};CT8vZszQ{mckbD#@=twb zgj>+^Tt2Jlg0b322EpGH&c~Sk${2kV1;T{AD~fMg4SD}ZIdBkCifH26 zLu~*@_iYAj7+yf>X(O>d+u^<@+89=e5qNlW;WA9&xIy1T$9}bH_bp@ddiqkMWVr1| zyK{ptY6FmS;_zrICLI4bj3@^?Vfn{=apa`3Z+3GdVkXQ#7J)yZ@iLjWB7yJxBxS@^ z)&w>PZm|D|;YwKy?0K|rssA+vT&mF=C7d}HOn>&z_1VBhZZzkZ{blUc>34PWzojsVAls1dmJa9fz&$)?r9 zW^h8@VFp8rrb+Z|#`582k?hNVJf21eCJvjR>guFzkcBI~P5@;)%fSk|ggNTr5Za}x zvMTm#O}0Bv@@Mh$Cd+_gWDH117f7r#^bW&GpLyNR4}6z2mf{SK`Ba$d0B=m+9 z^&us7&b4cHLsU_thtF94erNTTPmHc^tN$jyAFvRBT&~AyHZ2HW5&2c}6|$GZNTz5> za6=_5KWq$P*Y0O*n2^YbBx!BX*xi*c9+A2I1Sf+Gg~boiMNUr7?{V5Mb)8?|tmLh! zph^U1hR$2h#%Xq3Eo;2TdEcbX7-|e}#B;%}5TqV25z@;G?CkAVghC&la`JN&=V4-@ zp!JKl%>8iR<7kXXU8A56w&v5Rb>SH_j-UD|Ukjc5s!eZ(vrzS5iqSJm&0XN;yWf3n z-~-=pVcVX~_=s-`177ZPDOaRhe~$f@X?WA{{3ed&+Nw!DM1h2Bk-kVmHGlGIo@U2J z;qPNAF5MguWcwludxU-SbJITi*yfb+s**tSqfif{Rb|7WG4Iu$lxIOjj=sS~`eKxQ zk_bi#W-|twXtDFia%C{FKU$cDB+HKUI})2$vK#r zW#7ApJifYriVyp(%RS6XF^Mo9IR3k(478-@HGBkc21fSGVdKjvnTHe4QL}Ag_eDX< z_L4D>RW8*dz*G9#cIJbk#VfDhU=%x`SZK}RL3g&qiO#CHBS4gX3&nqiiU5T0-Xc0w zaSa4gK0k-f`Q?VeRZ=N~(>f$W^lO;-cM67xR5cq|s5yNE5V$F)I{21z&bD#}U%k|7 zNL*^3@MRshcV2?lNqa{8u8xUz*~r+&)l5MPT)bLTI~FXSVVKk-sPqvrjDZ` z_DYw)4GD-^-09~K+hsy0?>m>cxC!G!@W5ii_EW>G96Dsx9o~Tu$(U7WTRY**Sn3$? z#r9TSH|G^fjs|bmJnZ?*EEqAkWKYjaM`16lZQw_%=bT}tl;;@1VYIfF4!hU!x{1YX z{MTn;Z;!R_15gdt#BWZyijU;?hr!?J@a>%hb&rQgGthDnqQbrDx4tG#qn6mIZ|iyS z;;(-9)R(CRU`4&OS4!b(K+kUaC+uV7aoF*Gj(Lm&85FamONkPB{;X0=XC^dfc1ztD=X>$0S78~GqXg%an)u7YlZHVNW*Zci-LK7GO=r- z^DWb3IPI_cznV<&9k(MF^ul>YvC$Q5Cz#$!9=ZQ8uUzW0Z0uRwqEO+g-xaV>NLDMe zvpOND10_g7S*4Q?H_dh??~I*Cyk%DJ|LLo%*WCg~aqDPEtpTlV6^1OOeq1&Cdv{~A zCojQ8#I=H_VHPh$iEq})@p2R!xllo^VJx(L+>me?IK8b`dn(uP++T~}yPc=ZY_j{l zF(y%>SuNVx!lcOTPsL4PZYmWSf-UpiBE6*n(!#{BQuC5#!B~bK z%+%YzdZ4R%0!52Bge+9Tk%%TtW_!mGATAped<3xJL;9aO^wy5U9RZ}Fe=(eGhoc`6 ztj!(4r@AGz{cuc z`rhRh?jcXPaQdklYL#myqKQ4CExeqn!5BIPY|j!VZepB&kj`IXkS8uD5m`Eu-LcO; z8CxX(rUT`AW)p8G277)2nIM|B*9OXVtZBb`8*abAF`NEgK7sdv%Z;P-udE!~R=t3O zR>h0jzP~HUmu!lx&!$5PHu;e2OT=fu*QgUJFm>(p!-NfTqHV|l@G8r8#MA>o?g;yS z>2}<{?5k#+C`n15`VhM}(z!D&Q=Yq?wSVpHF_T6q6LilJU>r&KNwcFgAc{xr4>G-x zhob2QvpLtF&CwUnEjBv+YdQ35takx_^f=&=@GkrbWHUCR);P+?X)H_* z>^W#~QYKXYvE^p2C!$e#zGrl2R+eT?srC*-cwwdy4DJHw{ZoD&9XX=uuSs1Z0&=1FPT3jQpa6E{#8ARPpSA#y|uj#hmnbbQPlSm{#oEbN{?w z**s&@lCc(~mzG&y8+Tx@CG$;8;8gGQg(dXEk6xC3>7DeOXnlGf=EMzB{%l%zw3i^l zb1XIB>+MNrrz=b#B5pY$Cq2{+Z%0T95u#h#h?wf&I=fyMYxilqW*hd_!v19myGd3! z5$%c|n$^|vdW9inGB92{`uY|{5v_K`HV5HBUIA_aXVd0^!o9!mTYt4zyLkC@L~jJM zo0tc4)(g+A8{jsF0GfPIK?yb5@%nR9N!n$gWWXM4!w7kao}JxHVrYh3$I+#qvq7t4 z5ktR2!~lF*9}u@9bPdnuRh68yX-;^b#du+ac=eZ-7kyd(%dG{eX=Alp zZ6A_sV*kiDtV4x|iXsveFW6LW=}%{4qY0tA&tk6Ey_=frLwvaKr2y(#J>dD`(|om< zn4q{qb||lI(p}R_x+&%_qT-b2v%IIWyPFJ!?*nq;&H>O3;F(vadXh=hb_NK41OPb# zO%pK~t3gu~E%9)qDTr)NqCz#!X_wl)ctrCI;V7qTu-p!+dyf#?*{| zvczPJ)I+kQ@2iacjU&J-d8{QfpYodOrH^3RU-l5DDSbh?vZ-|#TK%jPu?<{-9)pa5 ziS}JCRCDq`<7qM1-Weer-xkx(&T>#F))lmU;T z(rQCfKy!ZBb1vO_9YT9GcNL3FInPhH3cgh})(6UeO+wk1pPG#R0s0`fC;!9S+sC&w_vg=73z;6QhQeOy&lLawos^J* zwH4&33;9LZS}SFQKs|22Ch*xn=?GB#*3XA)*YP@)nZDpsXlk1E7caep>} zq{p*YII|oOXs6ms#*P)uOoBNu;&x9UmlVi(W7NB7rJWD&!yCiioV1uYoxQiL0ZC+x zVI>A;5iRY+s@TwKyOG={PNR6u2CT_hvYb@WrU@u;WMxPp>hBNjaenAX7sLIpk*5Fq z_@GpMKY9s66&Mc|^|8D2OVGpivepX^%d}L^{S@SW)|buil?#Iw(09)MBA2WdY{ULc zQh6TC8D+kCZeS?<@L04lF_+-jKt$rS9JPr%i>B_aMA7ES>u{R)y7Bxqy=&-R6bpsf ztR+BGaGL}3PIDJ;IrF`t&-)}KTvhw{TF(&fF;dL>e;X#xv@`oBtoda;6Q9XqJDelyx8!W9$+k7`EZmPZykO6SHDlm z-r%d^?5SarkN?8^xK9&1?UU|T=0py9NS-Z?I=-!D_d8~j@>Ql|G8EP=Z`aJ#7V7?t zczbgD8t3F8c;hP7hH1maE}SJIUN2;JwD@Brw|{!FgX$TvlL~~%8P&KUe^IY!+~9*k zd=2qgZ^_W^e~LUwN=b)UxDMNft9MS5blM{ zNC=R94Scx`*5bIt+;n}z;2&5Yd{lK^85XL=>`N@|{UgTcapV-~C(|w^Wf%0h^nq@wAlU;8nXr^XRrH`0&r7jI4Y7<6~%YL z7{$U+81O%cr4Oc1M&!#S@tT%XJ{5L&IX<8Qh3=XTwVqiQc= zw*S!QH!Vqy&m>lAg0)&^lyt1D-eE?36&4QQjt|`<3S;8lNf+fGgrXi%_Hp{s6yMpa zcyUS&k=dgv5R99CzFd%7cd3zWaAc{v%{P`=fo;P|PXD`0FZ|ao<@(PqtwW5X$%(%x zV+8-)Wg%U-9aegroCIL+nh0cQKS%|;fmSq8_RfjhG27& zfh@8`6Iv&)w8@ufTUNBzIJ%wN+jhLMj-^*DzP74=U87ewT5wj z%BYMmf*P+a?o_s7c$m;Pn5RCKf6V=#l=Z)lG5@dbR*#MN5)3#` fCk?*4$6Bsl7VK- + Eclipse Mosquitto β€” это Π±Ρ€ΠΎΠΊΠ΅Ρ€ сообщСний с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ (лицСнзия EPL/EDL), Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT вСрсий 5.0, 3.1.1 ΠΈ 3.1. Mosquitto Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для использования Π½Π° всСх устройствах: ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² с Π½ΠΈΠ·ΠΊΠΈΠΌ энСргопотрСблСниСм Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… сСрвСров. + + + ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT прСдоставляСт ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями с использованиСм ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ/подписки. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ подходящим для ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π²Π΅Ρ‰Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΌΠ°Π»ΠΎΠΉ мощности ΠΈΠ»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ устройствами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹, встроСнныС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹. + + + ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Mosquitto Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ C для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² MQTT ΠΈ ΠΎΡ‡Π΅Π½ΡŒ популярныС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ MQTT ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки mosquitto_pub ΠΈ mosquitto_sub. +developer: Eclipse Foundation +website: https://mosquitto.org/ +submitter: dirstel +submission: https://github.com/getumbrel/dfwebos-apps/pull/1789 +repo: https://github.com/eclipse-mosquitto/mosquitto +support: https://github.com/eclipse-mosquitto/mosquitto +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ выпуск со мноТСством Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° WebSockets, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ большС Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ libwebsockets. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° PROXY v1 ΠΈ v2. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ псСвдонимы Ρ‚Π΅ΠΌ, созданныС Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ, для MQTT v5. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ global_plugin, global_max_clients ΠΈ global_max_connections. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция `accept_protocol_versions` для ограничСния Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии MQTT Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция `--test-config` для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ запуском Π² ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды PUID/PGID для настройки ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/Π³Ρ€ΡƒΠΏΠΏΡ‹. + β€” Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Β«bridge_receive_maximumΒ» ΠΈ Β«bridge_session_expiry_intervalΒ» для мостов MQTT v5. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ простоя Π·Π° счСт сокращСния Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±ΡƒΠΆΠ΄Π΅Π½ΠΈΠΉ процСссов. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ acl-Ρ„Π°ΠΉΠ»Π°, Ρ„Π°ΠΉΠ»Π° пароля, persist-sqlite ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… свСчи заТигания. + - Плагин динамичСской бСзопасности Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, Ссли Π΅Π΅ Π½Π΅Ρ‚. + - ⚠️ `max_packet_size` Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π΅Π½ 2 000 000 Π±Π°ΠΉΡ‚ вмСсто 256 ΠœΠ‘ - ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ большиС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + - ⚠️ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ `acl_file` ΠΈ `password_file` устарСли Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². + - ⚠️ Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° TLS v1.1. + - ⚠️ Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° вСрсий OpenSSL ΡΡ‚Π°Ρ€ΡˆΠ΅ 3.0. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° PUID/PGID для Docker. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΏΠ»Π°Π³ΠΈΠ½Π° постоянства ΠΏΡ€ΠΈ использовании вмСстС с Β«persistence trueΒ». + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния сборок, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ отсутствиС libedit Π² сборках Docker. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://mosquitto.org/blog/. +dependencies: [] +path: "" +defaultUsername: "" diff --git a/mosquitto/docker-compose.yml b/mosquitto/docker-compose.yml new file mode 100644 index 0000000..35f37c9 --- /dev/null +++ b/mosquitto/docker-compose.yml @@ -0,0 +1,26 @@ +services: + + app_proxy: + environment: + APP_HOST: mosquitto_web_1 + APP_PORT: 80 + + broker: + image: eclipse-mosquitto:2.1.2-alpine@sha256:9cfdd46ad59f3e3e5f592f6baf57ab23e1ad00605509d0f5c1e9b179c5314d87 + restart: on-failure + ports: + - '1883:1883' + volumes: + - ${APP_DATA_DIR}/data/config:/mosquitto/config:rw + - ${APP_DATA_DIR}/data/mosquitto:/mosquitto/data:rw + - ${APP_DATA_DIR}/data/log:/mosquitto/log:rw + user: "1000:1000" + + web: + image: nginx:1.27@sha256:124b44bfc9ccd1f3cedf4b592d4d1e8bddb78b51ec2ed5056c52d3692baebc19 + restart: on-failure + depends_on: + - broker + volumes: + - ${APP_DATA_DIR}/data/www:/usr/share/nginx/html:ro + - ${APP_DATA_DIR}/data/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro diff --git a/mosquitto/hooks/pre-start b/mosquitto/hooks/pre-start new file mode 100755 index 0000000..4653e8c --- /dev/null +++ b/mosquitto/hooks/pre-start @@ -0,0 +1,62 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="${APP_DIR}/data" + +NGINX_CONFIG_DIR="${APP_DATA_DIR}/nginx" +NGINX_CONFIG_FILE="${NGINX_CONFIG_DIR}/default.conf" +MOSQUITTO_CONFIG_FILE="${APP_DATA_DIR}/config/mosquitto.conf" + +NGINX_MARKER_REGEX='^# DFWebOS Mosquitto canonical nginx.conf 17-Mar-2026$' +LEGACY_HTTP_DIR_LINE='http_dir /mosquitto/www' + +mkdir -p "${NGINX_CONFIG_DIR}" + +if [[ ! -f "${NGINX_CONFIG_FILE}" ]] || ! grep -qx "${NGINX_MARKER_REGEX}" "${NGINX_CONFIG_FILE}"; then + echo "Updating nginx configuration file for Mosquitto." + cat >"${NGINX_CONFIG_FILE}" <<'EOF' +# Π—ΠΎΠ½Ρ‚ Mosquitto каноничСский nginx.conf 17 ΠΌΠ°Ρ€Ρ‚Π° 2026 Π³. +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +map $http_upgrade $upgrade_request { + default 1; + '' 0; +} + +server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + + location / { + error_page 418 = @websocket; + + if ($upgrade_request = 1) { + return 418; + } + + try_files $uri $uri/ /index.html; + } + + location @websocket { + proxy_pass http://broker:9001; + proxy_http_version 1.1; + proxy_read_timeout 1d; + proxy_send_timeout 1d; + proxy_set_header Host $host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + } +} +EOF +fi + +if [[ -f "${MOSQUITTO_CONFIG_FILE}" ]] && grep -qxF "${LEGACY_HTTP_DIR_LINE}" "${MOSQUITTO_CONFIG_FILE}"; then + echo "Removing legacy http_dir configuration from mosquitto.conf." + sed -i '\|^http_dir /mosquitto/www$|d' "${MOSQUITTO_CONFIG_FILE}" +fi diff --git a/mqttx-web/dfwebos-app.yml b/mqttx-web/dfwebos-app.yml new file mode 100644 index 0000000..ca27b14 --- /dev/null +++ b/mqttx-web/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: mqttx-web +name: MQTTX Web +tagline: Π’Π°Ρˆ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов MQTT-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° +category: automation +version: "1.13.0" +port: 9012 +description: >- + MQTTX Web β€” это Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ MQTT 5.0 WebSocket с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ быстрСС ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ слуТбы ΠΈ прилоТСния MQTT. + + + ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс (интСрфСйс) MQTTX основан Π½Π° Ρ‡Π°Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ. Он позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ нСсколько соСдинСний MQTT, Ρ‚Π΅ΠΌ самым облСгчая быстроС тСстированиС соСдинСний MQTT/MQTTS, Π° Ρ‚Π°ΠΊΠΆΠ΅ подписку ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ сообщСний. +developer: EMQ +website: https://mqttx.app/ +submitter: dirstel +submission: https://github.com/getumbrel/dfwebos-apps/pull/1772 +repo: https://github.com/emqx/MQTTX +support: https://github.com/emqx/MQTTX/discussions +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + ОбновлСниС инспСктора ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ интСрфСйс с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ: + + + НовыС возмоТности: + - ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ быстрого копирования ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚Π΅ΠΌΠ΅, Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅ ΠΈ хостС. + - ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² Ρ‚Π΅ΠΌΠ΅ для прСдупрСТдСния ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°Ρ…. + - ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса для отобраТСния ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ JSON. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° выпусков Protobuf 2023 Π³. + + + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ интСрфСйс с ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ стилСм ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. + - Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ списка соСдинСний. + - ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π΄ΠΈΠ·Π°ΠΉΠ½ страниц справки ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π²Π²ΠΎΠ΄ΠΎΠΌ Ρ‚Π΅ΠΌΡ‹, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ошибки подписки. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²Π²ΠΎΠ΄ Ρ‚Π΅ΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Ρ‹Π±ΠΎΡ€Π° стиля. + - ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ строки Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚Π΅ΠΌΠ°Ρ… ΠΈ псСвдонимах. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/emqx/MQTTX/releases/tag/v1.13.0. +path: "" +dependencies: [] diff --git a/mqttx-web/docker-compose.yml b/mqttx-web/docker-compose.yml new file mode 100644 index 0000000..459eba2 --- /dev/null +++ b/mqttx-web/docker-compose.yml @@ -0,0 +1,10 @@ +services: + app_proxy: + environment: + APP_HOST: mqttx-web_app_1 + APP_PORT: 80 + + app: + image: emqx/mqttx-web:v1.13.0@sha256:64525ad96286280f85f9f1a3f74a98475d1bbfe7a8ee278f93fa6991e6090c9c + user: "1000:1000" + restart: on-failure diff --git a/mstream/data/.gitkeep b/mstream/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/mstream/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/mstream/dfwebos-app.yml b/mstream/dfwebos-app.yml new file mode 100644 index 0000000..4afca8e --- /dev/null +++ b/mstream/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: mstream +name: mStream +tagline: Частный ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр +category: media +version: "6.5.7" +port: 3840 +description: >- + πŸ’Ώ mStream β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ сСрвСр ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΈΠ· любого мСста с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈΠ»ΠΈ совмСстимого прилоТСния. ПослС установки ΠΎΠ½ сканируСт ваш Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ создаСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ, дСлая Π²Π°ΡˆΡƒ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ доступной Π½Π° вашСм Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅, ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π½Π΅ полагаясь Π½Π° сторонниС сСрвисы. + + + Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ высококачСствСнныС Π°ΡƒΠ΄ΠΈΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ FLAC, ΠΈ обСспСчиваСт воспроизвСдСниС Π±Π΅Π· ΠΏΠ°ΡƒΠ· для ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ ΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс понятСн, ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ² ΠΈ прост Π² Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, обСспСчивая ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ интСрфСйс, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ коммСрчСским ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌ. + + + ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ mStream ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вашСм собствСнном ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, вся ваша ΠΌΡƒΠ·Ρ‹ΠΊΠ° ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, подписок ΠΈ сбора Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для управлСния вашСй ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΈ Π΅Π΅ использования Π½Π° Π²Π°ΡˆΠΈΡ… собствСнных условиях. +developer: Iros Software +website: https://mstream.io/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3287 +repo: https://github.com/IrosTheBeggar/mStream +support: https://github.com/IrosTheBeggar/mStream/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска: + - Полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Subsonic REST API с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ API для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° DLNA/UPnP MediaServer с нСсколькими ΠΌΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ просмотра ΠΈ смарт-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° тСкстов пСсСн, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ встроСнныС Ρ‚Π΅Π³ΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ LRCLib. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… исполнитСлСй ΠΈ компиляций Ρ‚Ρ€Π΅ΠΊΠΎΠ² ΠΈ альбомов. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° пСрСимСнования плСйлиста Π² интСрфСйс ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + - ГСнСрация сигналов Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²ΠΎ врСмя сканирования с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ сигналов Π² Π²ΠΈΠ΄Π΅ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° выполнСния. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сбои ΠΏΡ€ΠΈ сканировании Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ общСдоступной настройки ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… срСдах. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/IrosTheBeggar/mStream/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/mstream/docker-compose.yml b/mstream/docker-compose.yml new file mode 100644 index 0000000..91ece67 --- /dev/null +++ b/mstream/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: mstream_server_1 + APP_PORT: 3000 + + server: + image: linuxserver/mstream:6.5.7@sha256:c2952c4cb8fac901c4bb672788514473d58f84c2c02fe96132ba88e409817ff2 + restart: on-failure + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data:/config + - ${DFWEBOS_ROOT}/data/storage/downloads/music:/music diff --git a/music-assistant/data/settings.json b/music-assistant/data/settings.json new file mode 100644 index 0000000..5249244 --- /dev/null +++ b/music-assistant/data/settings.json @@ -0,0 +1,83 @@ +{ + "server_id": "ea22c850e3e74462bd24515d860c67bf", + "providers": { + "builtin": { + "values": {}, + "type": "music", + "domain": "builtin", + "instance_id": "builtin", + "enabled": true, + "name": "Music Assistant", + "last_error": null + }, + "fanarttv": { + "values": {}, + "type": "metadata", + "domain": "fanarttv", + "instance_id": "fanarttv", + "enabled": true, + "name": "fanart.tv", + "last_error": null + }, + "lrclib": { + "values": {}, + "type": "metadata", + "domain": "lrclib", + "instance_id": "lrclib", + "enabled": true, + "name": "LRCLIB", + "last_error": null + }, + "musicbrainz": { + "values": {}, + "type": "metadata", + "domain": "musicbrainz", + "instance_id": "musicbrainz", + "enabled": true, + "name": "MusicBrainz", + "last_error": null + }, + "sendspin": { + "values": {}, + "type": "player", + "domain": "sendspin", + "instance_id": "sendspin", + "enabled": true, + "name": "Sendspin", + "last_error": null + }, + "theaudiodb": { + "values": {}, + "type": "metadata", + "domain": "theaudiodb", + "instance_id": "theaudiodb", + "enabled": true, + "name": "The Audio DB", + "last_error": null + } + }, + "core": { + "metadata": { + "values": { + "language": "en_US" + }, + "domain": "metadata", + "last_error": null + }, + "webserver": { + "values": { + "base_url": "http://changeme:8896", + "bind_port": 8896 + }, + "domain": "webserver", + "last_error": null + }, + "streams": { + "values": { + "bind_port": 8078 + }, + "domain": "streams", + "last_error": null + } + } +} diff --git a/music-assistant/dfwebos-app.yml b/music-assistant/dfwebos-app.yml new file mode 100644 index 0000000..5200e67 --- /dev/null +++ b/music-assistant/dfwebos-app.yml @@ -0,0 +1,68 @@ +manifestVersion: 1.1 +id: music-assistant +name: Music Assistant +category: media +version: "2.8.6" +port: 8896 +tagline: ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Π²Π°ΡˆΠΈΡ… ΠΎΡ„Π»Π°ΠΉΠ½- ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-источников ΠΌΡƒΠ·Ρ‹ΠΊΠΈ. +description: >- + Music Assistant β€” это ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Π²Π°ΡˆΠΈΡ… ΠΎΡ„Π»Π°ΠΉΠ½- ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-источников ΠΌΡƒΠ·Ρ‹ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π»Π΅Π³ΠΊΠΎ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ Π»ΡŽΠ±ΠΈΠΌΡƒΡŽ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ Π½Π° ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ Π΅Π΅ с ΠΌΠΎΡ‰ΡŒΡŽ Home Assistant! + + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… источников ΠΌΡƒΠ·Ρ‹ΠΊΠΈ посрСдством Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поставщика + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ популярныС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Π΅ сСрвисы, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. + - АвтоматичСски сопоставляСт ΠΌΡƒΠ·Ρ‹ΠΊΡƒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°Ρ… (связываниС Ρ‚Ρ€Π΅ΠΊΠΎΠ²) + - Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± исполнитСлС. + - ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ всю ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Gapless, Crossfade ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ громкости для всСх ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ². + - Бинхронизация воспроизвСдСния Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ»Π΅Π΅Ρ€ΠΎΠ² + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ объявлСния Π²ΠΎ врСмя воспроизвСдСния + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° воспроизвСдСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌΠΈ + - Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ бСспроблСмная потоковая ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° вашСй любимой ΠΌΡƒΠ·Ρ‹ΠΊΠΈ Π½Π° ΠΏΠ»Π΅Π΅Ρ€Ρ‹, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Π½ΠΈΠΉ Π½Π΅ трСбуСтся. + - Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Home Assistant: ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Home Assistant ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сСрвСру Music Assistant, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ с вашСго экзСмпляра HA, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ ΠΈ голосовоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅! Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Π΄ΠΈΠ°ΠΏΠ»Π΅Π΅Ρ€Ρ‹ HA для MA, Ρ€Π°ΡΡˆΠΈΡ€ΡΡ возмоТности воспроизвСдСния. + - Π‘ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс (прогрСссивноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅) Π½Π° Π±Π°Π·Π΅ VueJS 3. + + + Music Assistant состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ²: + - Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° + - Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Home Assistant + - ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ: ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источников Π² Music Assistant. + - ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»Π΅ΠΉ: воспроизводитС свою ΠΌΡƒΠ·Ρ‹ΠΊΡƒ Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ экосистСм ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»Π΅ΠΉ. + - ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹: Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Music Assistant. + + + Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ°: + - Π‘Π΅Ρ€Π²Π΅Ρ€ Music Assistant β€” это бСсплатный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΌΠ΅Π΄ΠΈΠ°Ρ‚Π΅ΠΊΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ вашим ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΌ сСрвисам ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΡƒ спСктру ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΎΠ². Π‘Π΅Ρ€Π²Π΅Ρ€ β€” это Π±ΡŒΡŽΡ‰Π΅Π΅ΡΡ сСрдцС, ядро ​​Music Assistant, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ ваши ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ источники. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° постоянно Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ устройствС, Ρ‚Π°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ Raspberry Pi, NAS, Intel NUC ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΌ. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ нСскольким поставщикам ΠΌΡƒΠ·Ρ‹ΠΊΠΈ ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π½Π° нСсколько Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»Π΅ΠΉ. +developer: Music Assistant +website: https://www.music-assistant.io +repo: https://github.com/music-assistant/server +support: https://www.music-assistant.io/support/ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡ‚Π΅Ρ‡ΠΊΠ° процСсса Π² ΠΌΠΈΠΊΡˆΠ΅Ρ€Π΅ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π΅ΠΉΠ΄ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ воспроизвСдСния. + - ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ AirPlay STOP. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ дСйствиС постановки Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Β«Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒΒ» останавливало воспроизвСдСниС ΠΌΡƒΠ·Ρ‹ΠΊΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ исчСзновСниС Ρ€ΡƒΡ‡Π½Ρ‹Ρ… ΠΆΠ°Π½Ρ€ΠΎΠ² послС очистки. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Tidal + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° 30-сСкундная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° послС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚Ρ€Π΅ΠΊΠΎΠ² Π² Sendspin. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ поиск Π² SoundCloud. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ просмотр ORF Radiothek, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡ‚Π΅Ρ‡ΠΊΠ° ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Qobuz ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. + - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ мощности для ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² Squeezelite. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚ΠΈΠΏΡ‹ альбомов с нСсколькими значСниями Ρ‚Π΅Ρ€ΡΠ»ΠΈΡΡŒ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ… Ρ‚Π΅Π³ΠΎΠ². + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/music-assistant/server/releases. +dependencies: [] +permissions: + - STORAGE_DOWNLOADS +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: phelipebf +submission: "https://github.com/getumbrel/dfwebos-apps/pull/4528" diff --git a/music-assistant/docker-compose.yml b/music-assistant/docker-compose.yml new file mode 100644 index 0000000..a2bef5b --- /dev/null +++ b/music-assistant/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" + +services: + web: + image: ghcr.io/music-assistant/server:2.8.6@sha256:400697b305e45bd1712c019e67d22681219e91deb41afe88939f921b5fae137f + restart: on-failure + user: "1000:1000" + # Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ MA Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн сСтСвой Ρ€Π΅ΠΆΠΈΠΌ. + network_mode: host + # интСрфСйс Π² data/settings.json ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» ΠΏΠΎΡ€Ρ‚ 8896 + # Streamserver Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 8078 + # Sendspin Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 8927 + volumes: + - ${APP_DATA_DIR}/data:/data/ + - ${DFWEBOS_ROOT}/data/storage/downloads:/media + # ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ограничСния (ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ бСзопасности), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для монтирования ΠΏΠ°ΠΏΠΎΠΊ smb Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° + cap_add: + - SYS_ADMIN + - DAC_READ_SEARCH + security_opt: + - apparmor=unconfined diff --git a/music-assistant/hooks/pre-start b/music-assistant/hooks/pre-start new file mode 100755 index 0000000..0a4f91d --- /dev/null +++ b/music-assistant/hooks/pre-start @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ скрипт провСряСт Ρ„Π°ΠΉΠ» настроСк Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ-Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ замСняСт ΠΈΡ… систСмными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="$APP_DIR/data" +SETTINGS_FILE="$APP_DATA_DIR/settings.json" + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ» +if [ ! -f "$SETTINGS_FILE" ]; then + echo "Error: Settings file not found at $SETTINGS_FILE" + exit 1 +fi + +# Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ Changeme Π² base_url фактичСским ΠΈΠΌΠ΅Π½Π΅ΠΌ хоста устройства. +if grep -q '"base_url": "http://changeme:' "$SETTINGS_FILE"; then + echo "Placeholder 'changeme' detected in base_url. Replacing with device hostname..." + + sed -i "s|http://changeme:|http://${DEVICE_DOMAIN_NAME}:|g" "$SETTINGS_FILE" + + echo "Updated base_url to http://${DEVICE_DOMAIN_NAME}:8896 in $SETTINGS_FILE" +else + echo "base_url is already configured. No changes made." +fi + +exit 0 diff --git a/myspeed/data/myspeed/.gitkeep b/myspeed/data/myspeed/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/myspeed/dfwebos-app.yml b/myspeed/dfwebos-app.yml new file mode 100644 index 0000000..19feae6 --- /dev/null +++ b/myspeed/dfwebos-app.yml @@ -0,0 +1,28 @@ +manifestVersion: 1 +id: myspeed +category: networking +name: MySpeed +version: 1.0.9 +tagline: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для Π°Π½Π°Π»ΠΈΠ·Π° тСстов скорости, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ вашСго ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π½Π° срок Π΄ΠΎ 30 Π΄Π½Π΅ΠΉ. +description: >- + MySpeed ​​— это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для Π°Π½Π°Π»ΠΈΠ·Π° тСстов скорости, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сохраняСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ вашСго Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π΄ΠΎ 30 Π΄Π½Π΅ΠΉ. + Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π² вашСй сСти ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сбои, ΠΈΠ»ΠΈ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ ваш Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. + соотвСтствуСт Π·Π°Π±Ρ€ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ стоимости ΠΈΠ· вашСго ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°. + + + MySpeed ​​автоматичСски создаСт тСсты ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ час, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ управлСния. + ВСсты ΡΡ‚Π°Ρ€ΡˆΠ΅ 30Β Π΄Π½Π΅ΠΉ автоматичСски ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ чистоту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. +releaseNotes: "" +developer: Mathias Wagner +website: https://myspeed.dev +repo: https://github.com/gnmyt/myspeed +support: https://github.com/gnmyt/myspeed/issues/new/choose +dependencies: [] +port: 5216 +path: "" +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +submitter: Mathias Wagner +submission: https://github.com/getumbrel/dfwebos-apps/pull/1103 \ No newline at end of file diff --git a/myspeed/docker-compose.yml b/myspeed/docker-compose.yml new file mode 100644 index 0000000..1645584 --- /dev/null +++ b/myspeed/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: myspeed_web_1 + APP_PORT: 5216 + + web: + image: germannewsmaker/myspeed:1.0.9@sha256:3a3e774b3f78d930a5a962d625b99bcb3d71730bfeb4a6b93e04fd38cfe7d9a9 + # myspeed Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/myspeed:/myspeed/data \ No newline at end of file diff --git a/n8n/data/.gitkeep b/n8n/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/n8n/dfwebos-app.yml b/n8n/dfwebos-app.yml new file mode 100644 index 0000000..1ae0bce --- /dev/null +++ b/n8n/dfwebos-app.yml @@ -0,0 +1,55 @@ +manifestVersion: 1 +id: n8n +category: automation +name: n8n +version: "2.14.2" +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» Databricks. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ CLI (@n8n/cli`) для управлСния n8n с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ выполнСния ΠΏΠΎ вСрсии Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° конСчная Ρ‚ΠΎΡ‡ΠΊΠ° обнаруТСния возмоТностСй Π² общСдоступный API. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подписи для ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… Π²Π΅Π±-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Ρ„ΠΎΡ€ΠΌ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов ИИ с мастСром настройки ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ интСрфСйсом вопросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ зависимости Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса, ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‚Π΅Π³ΠΎΠ² Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса, которая Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΎΠΊ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ссылки Π½Π° ΡƒΠ·Π»Ρ‹ Π² выраТСниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ обновлялись, Ссли ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» содСрТал ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° со статусом выполнСния Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΈ ΡƒΠ·Π»Π° HTTP-запроса Π½Π° страницы с ΠΊΠΎΠ΄Π°ΠΌΠΈ состояния, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ 2xx. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ выраТСния ΡƒΠ·Π»Π° Postgres, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π»ΠΈΡΡŒ Π² вСрсии 1. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Π»ΠΈΡΡŒ пустыС строки ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ CSV. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ„Π»Π°Π³ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ быстрого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ iframe ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра выполнСния, Π½Π΅ заполнявший Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ исправлСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΈ ядра. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/n8n-io/n8n/releases. +tagline: Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ слоТныС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы ΠΎΡ‡Π΅Π½ΡŒ быстро +description: >- + n8n β€” это Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ инструмСнт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов. Благодаря ΠΌΠΎΠ΄Π΅Π»ΠΈ справСдливого распространСния ΠΊΠΎΠ΄Π° Ρƒ n8n всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ исходный ΠΊΠΎΠ΄. + Π±Ρ‹Ρ‚ΡŒ доступным для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ собствСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ прилоТСния. + Π£Π·Π»ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ n8n Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ, позволяя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΊΠΎ всСму. + + + n8n (произносится ΠΊΠ°ΠΊ n-eight-n) ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ любоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с API с Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с нСбольшим количСством ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π±Π΅Π· Π½Π΅Π³ΠΎ. + + + ΠΠ°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ: ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС ΡƒΠ·Π»Ρ‹. + + + ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ хостинг n8n для обСспСчСния ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ бСзопасности. +developer: n8n +website: https://n8n.io +dependencies: [] +repo: https://github.com/n8n-io/n8n +support: https://docs.n8n.io/ +port: 5678 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/283 diff --git a/n8n/docker-compose.yml b/n8n/docker-compose.yml new file mode 100644 index 0000000..588c6f4 --- /dev/null +++ b/n8n/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: n8n_server_1 + APP_PORT: 5678 + # Π­Ρ‚ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Π΅Π±-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ. + # ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ здСсь: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/ + PROXY_AUTH_WHITELIST: "/webhook-test/*,/webhook/*" + + server: + image: n8nio/n8n:2.14.2@sha256:4f448824ec99e1160e49eeb1c5bf2130a5d244fe9029e871a9f4d9f126dbfc98 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/home/node/.n8n + stop_grace_period: 1m + environment: + - PUID=1000 + - PGID=1000 + # Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки URL-адрСса Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, REST API ΠΈ Π²Π΅Π±-Ρ…ΡƒΠΊΠΎΠ². + - N8N_HOST=$DEVICE_DOMAIN_NAME + - N8N_SECURE_COOKIE=false + - N8N_DIAGNOSTICS_ENABLED=false + - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true + - N8N_RUNNERS_ENABLED=true diff --git a/navidrome/data/.gitkeep b/navidrome/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/navidrome/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/navidrome/dfwebos-app.yml b/navidrome/dfwebos-app.yml new file mode 100644 index 0000000..23e6351 --- /dev/null +++ b/navidrome/dfwebos-app.yml @@ -0,0 +1,68 @@ +manifestVersion: 1.1 +id: navidrome +category: media +name: Navidrome +version: "0.61.2" +tagline: Π’Π°Ρˆ Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΉ сСрвис +description: >- + Navidrome β€” это Π²Π΅Π±-сСрвСр ΠΈ стримСр для сбора ΠΌΡƒΠ·Ρ‹ΠΊΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. + Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ свободу ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ свою ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΈΠ· любого Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈΠ»ΠΈ мобильного устройства. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ ваш Π»ΠΈΡ‡Π½Ρ‹ΠΉ Spotify! + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + - ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ большиС ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ + + - ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° практичСски любого доступного Π°ΡƒΠ΄ΠΈΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Π° + + - Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС ваши Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. + + - ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° компиляций (Π°Π»ΡŒΠ±ΠΎΠΌΡ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… исполнитСлСй) ΠΈ бокс-сСтов (многодисковыС Π°Π»ΡŒΠ±ΠΎΠΌΡ‹) + + - ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ: Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΅ΡΡ‚ΡŒ собствСнноС количСство воспроизвСдСний, плСйлисты, ΠΈΠ·Π±Ρ€Π°Π½Π½ΠΎΠ΅ ΠΈ Ρ‚.Β Π΄. + + - ΠžΡ‡Π΅Π½ΡŒ Π½ΠΈΠ·ΠΊΠΎΠ΅ использованиС рСсурсов + + - ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° macOS, Linux ΠΈ Windows. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ изобраТСния Docker. + + - Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊ использованию Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для всСх основных ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Raspberry Pi. + + - АвтоматичСски отслСТиваСт Π²Π°ΡˆΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, импортируя Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ пСрСзагруТая Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. + + - ВСматичСский, соврСмСнный ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс Π½Π° основС Material интСрфСйс. + + - БовмСстим со всСми ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ Subsonic/Madsonic/Airsonic. + + - ВранскодированиС Π½Π° Π»Π΅Ρ‚Ρƒ. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСн для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/ΠΈΠ³Ρ€ΠΎΠΊΠ°. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Opus + + - ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ языки +developer: Navidrome +website: https://www.navidrome.org/ +dependencies: [] +repo: https://github.com/navidrome/navidrome +support: https://github.com/navidrome/discussions +port: 4533 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +permissions: + - STORAGE_DOWNLOADS +releaseNotes: >- + ⚠️ ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: встроСнная интСграция со Spotify ΡƒΠ΄Π°Π»Π΅Π½Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Spotify.ID ΠΈ Spotify.Secret большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π³Π΅Π½Ρ‚ΠΎΠ² Last.fm ΠΈΠ»ΠΈ Deezer. + + + Π­Ρ‚ΠΎΡ‚ выпуск исправлСний Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния пСрСкодирования, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ сканСра ΠΈ обновлСния ΠΎΠ±Π»ΠΎΠΆΠΊΠΈ. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - ВранскодированиС Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ограничСниями ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ², устраняя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΊΠΎΠ΄Π΅ΠΊΠ°ΠΌΠΈ с большим количСством ΠΊΠ°Π½Π°Π»ΠΎΠ². + - Π€Π°ΠΉΠ»Ρ‹ WAV Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ воспроизводятся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… Π±Π΅Π· Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ пСрСкодирования. + - Π‘ΠΊΠ°Π½Π΅Ρ€ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ распознаСт Ρ‚Π΅Π³ΠΈ ORIGYEAR для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² VorbisComment ΠΈ MP4. + - ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MaxImageUploadSize (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 10 ΠœΠ‘). + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π° ΠΎΠ±Π»ΠΎΠΆΠΊΡƒ диска влияли CSS-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Ρ‚Π΅ΠΌΡ‹. + - Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π² TrackInfo для ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Scrobbler ΠΈ Lyrics. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ сСрвСра ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/navidrome/navidrome/releases. +submitter: owmsoton +submission: https://github.com/getumbrel/dfwebos-apps/pull/1232 diff --git a/navidrome/docker-compose.yml b/navidrome/docker-compose.yml new file mode 100644 index 0000000..f1b3b31 --- /dev/null +++ b/navidrome/docker-compose.yml @@ -0,0 +1,16 @@ +services: + app_proxy: + environment: + APP_HOST: navidrome_server_1 + APP_PORT: 4533 + PROXY_AUTH_ADD: "false" + + server: + image: deluan/navidrome:0.61.2@sha256:9fa40b3d8dec43ceb2213d1fa551da3dcfef6ac6d19c2e534efb92527c2bafd2 + restart: on-failure + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data:/data + - ${DFWEBOS_ROOT}/data/storage/downloads/music:/music diff --git a/navidrome/hooks/pre-start b/navidrome/hooks/pre-start new file mode 100755 index 0000000..91dc845 --- /dev/null +++ b/navidrome/hooks/pre-start @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -euo pipefail + +DFWEBOS_STORAGE_DOWNLOADS_MUSIC_DIR="${DFWEBOS_ROOT}/data/storage/downloads/music" +DESIRED_OWNER="1000:1000" + +if [[ ! -d "${DFWEBOS_STORAGE_DOWNLOADS_MUSIC_DIR}" ]]; then + mkdir -p "${DFWEBOS_STORAGE_DOWNLOADS_MUSIC_DIR}" +fi + +navidrome_correct_permission() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +navidrome_correct_permission "${DFWEBOS_STORAGE_DOWNLOADS_MUSIC_DIR}" diff --git a/neko/dfwebos-app.yml b/neko/dfwebos-app.yml new file mode 100644 index 0000000..9bb4e8b --- /dev/null +++ b/neko/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: neko +name: Neko +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π° Π±Π°Π·Π΅ WebRTC. +category: networking +version: "3.1.4" +port: 3880 +description: >- + 🐈 Neko β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ транслируСт ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ просмотр Π²Π΅Π±-страниц нСпосрСдствСнно Π½Π° устройство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WebRTC. Он обСспСчиваСт доступ ΠΊ бСзопасной ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСзависимо ΠΎΡ‚ локальной систСмы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, обСспСчивая ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ обрабатываСтся ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ, ΠΈ всС взаимодСйствия ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎ обСспСчиваСт ΠΏΠ»Π°Π²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Π½ΠΈΠ·ΠΊΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ. + + + Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹, Neko позволяСт нСскольким ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ сСанс, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для Ρ‚Π°ΠΊΠΈΡ… дСйствий, ΠΊΠ°ΠΊ совмСстный просмотр, просмотр Π²Π΅Ρ‡Π΅Ρ€ΠΈΠ½ΠΎΠΊ ΠΈΠ»ΠΈ удалСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для быстрого рСагирования, с минимальной Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связью, Ρ‡Ρ‚ΠΎ создаСт ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅ СстСствСнности, нСсмотря Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. + + + ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π² DFWebOS Neko ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ частный ΠΈ всСгда доступный экзСмпляр Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ бСзопасно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈΠ· домашнСй сСти ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ туннСлирования DFWebOS. Он ΠΎΡ€Π³Π°Π½ΠΈΡ‡Π½ΠΎ вписываСтся Π² ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ экосистСму, обСспСчивая Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ просмотра Π²Π΅Π±-страниц, Π½Π΅ полагаясь Π½Π° сторонниС сСрвисы ΠΈ Π½Π΅ подвСргая риску своС локальноС устройство. + + + Neko особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² сцСнариях, Π³Π΄Π΅ Π²Π°ΠΆΠ½Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, простота ΠΈ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒ доступа β€” Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π»ΠΈΡ‡Π½ΠΎΠ΅ использованиС, совмСстныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ бСзопасный ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ просмотр. + + + πŸ’‘ Neko ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ WebRTC, настройки ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Ρ…Π²Π°Ρ‚ Π°ΡƒΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. Для получСния Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ здСсь: https://neko.m1k1o.net/docs/v3/configuration.. +developer: m1k1o +website: https://neko.m1k1o.net/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2524 +repo: https://github.com/m1k1o/neko +support: https://github.com/m1k1o/neko/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ взаимодСйствиС с ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ устройствами: ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ° ΠΊ Ρ‡Π°Ρ‚Ρƒ, Π·Π½Π°Ρ‡ΠΎΠΊ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π½Π° сСнсорных экранах ΠΈ исправлСнноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ HTTPS ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° HTTPS для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ работоспособности. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°ΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°. + - На панСль управлСния Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½Π° скина VLC. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ взаимодСйствиС с экраном: ΠΏΠ΅Ρ€Π΅Π΄ взаимодСйствиСм Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ имя хоста Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° косвСнного Π²Π²ΠΎΠ΄Π° тСкста + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° WidevineCDM. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ Debian Trixie. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π½Π° польский ΠΈ индонСзийский языки, Π° Ρ‚Π°ΠΊΠΆΠ΅ стандартизированы всС языковыС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹. +dependencies: [] +path: "" +defaultUsername: "" +deterministicPassword: true diff --git a/neko/docker-compose.yml b/neko/docker-compose.yml new file mode 100644 index 0000000..3204a85 --- /dev/null +++ b/neko/docker-compose.yml @@ -0,0 +1,23 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: neko_web_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + + web: + image: ghcr.io/m1k1o/neko/firefox:3.1.4@sha256:0e0dfa8199ff4cccf95284c0c8e9dde72f740feb816302cc5e7071efe079039e + environment: + PUID: 1000 + PGID: 1000 + NEKO_DESKTOP_SCREEN: 1920x1080@30 + NEKO_MEMBER_MULTIUSER_USER_PASSWORD: neko + NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: $APP_PASSWORD + NEKO_WEBRTC_EPR: 52000-52100 + NEKO_WEBRTC_ICELITE: 0 + shm_size: "2gb" + restart: on-failure + ports: + - "52000-52100:52000-52100/udp" diff --git a/netbird/data/app_data/.gitkeep b/netbird/data/app_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/netbird/data/app_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/netbird/data/www/favicon.png b/netbird/data/www/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..b8c241962ec483a139a030d79bcd66bd35511911 GIT binary patch literal 4570 zcmeHKc~BH*79V1w5k*N%~zH&BPAkyc(_O;iZG<=GT{>ut`~d3yKc*}@8IJ=p=l1E30#PsvoUNg zjqn9_8ll}RBNDmKS~BJhIEeJWe{Jxj=MIG($h-cdp|)XVUDAoF+^^qj!(^ktyLB5b zDw4{2T^ql3^~*zk-ZS&Gu5xqwjEb@8tJ3}~eP|Egg66!pI`hG!mh|n#rPXu4jXrX| z)G}mvZQa|$0!`6_Ry?>k_4^e`V`7xoy*uWtJ9%s9H=63mNg%R`@TR}%TwMOwyG1!E zQ%t>=MHJ<6NwY^8d(W*M{aI{^N%=$RgL6L=w}zc@%#FO0s2eL1g)L#V+6;qM`?wld z!}@nBG^q!ZMl`;awY3r*@GEj@)n?+1UQetUAJs60oltXg0e53)JRTD(Sy{5Ep`pC7 zYRQLRR}ZKzLHuEtB&yhbsbw8$;V7A)y7Q0P#pSiGqT^L@r*5Z-s+eJCOqml0&puQ? zVQJ))=)6O(GdFMiJms|wmv6l``P&PP?lr!>i7BbEYx}pB9qPO7m8g5fz1!QiIxdV| zxvOeRE%)#L^v$`kMIFQToY?nhMO0)* z%>FZ{DpTrP752RIr>>~PlX zG-Z9mC~W5D+wyYPK#$jZckPUK6SWlgZ)vacdvNITSvXvCjME9qW|081jie=Riycm# zNR*K1wgYMr%_Ah8&000$yR~&-{K-!$VMl6PU?58YwmU%+fQ@IJ6U^(3rf$m+nPgy^%J!lNAj7CCdqntu|2AxJM#3#%)iZv6# zS0zqka+NwBB{335&XyW0Y!K4#z`aJp^U2I(T5EXaNdJBrL>HGbBYq zPZT353PO+oRVx)FYQ_|D1yE7|H#6NJ(m57RCCKfbl>lXiPzqX2Gb$<$1u6j0cp1C_ zhQUxEXOwce3Xn=#9)vPe#8ew+0kEB{1!U7wyEQwg5C|udGYlHBOoBa;WaI*#fevsD zuvW9p<#?hpu@*Xu2LhkCQW1wK;?!~s!xSn^@x*8r%{kyK3aB_Hi3@3j#t^U^NG%X1 z6#@i3U^Rr6qXBQ@Og3AtMl2+S2%cSPBV15szylrNX$XqR_ys{xXia6&d7-b+XD%CDOb8NO76hO|B{)Dn9qKs5 z3aO|ZV9loC{?R$GkLB#|41-F>;ATKlC;*reji;0}s+LnU3UD%xRIB6FfD8>o7rMj7 z@Gij7$=Q%c$Q2yWAXmt^&Q`?+S?jWQ<;Fbq_>;pFZH51UT=1y$)3jcd@R(JfG2NsO1OnbASlfJA;Nc_hJ0ty#Uj{ll zyv5@K0l)7rWZ+?kw-oc1pxzS9TQsh1p3JidZv(P+7v{;vy@i84d3gIfSisvBxOdBc z`e6HFtZmLX|JAeJH74)!WUuRaZ`mYYb&>zZFTQ+mNK4&8ehXMkK5F~>3#2> z?QJt7J$zbw)oTCQ=9vBK`@vfJ+EeE`M52C!gey$6ZhbTq_TddieV-fsA_h(BJ9>il zV<96j;;M^ebt$(w5 zuVbcX=i$FC)R>mHkVu&8`jAHD}$KOxFF@v^3`Jm-oCh z+pN{E{XT)7RQ7A@;NBUNH@S{)OKv@iKk7Z^iw6ImrO^Y6`_{Zw?qgdvZW@)`^4Wlk kQNvP3hre*V&OdGbi4z0QRWzjQVPztNeul1k%7T*r0KHGe)&Kwi literal 0 HcmV?d00001 diff --git a/netbird/data/www/index.html b/netbird/data/www/index.html new file mode 100644 index 0000000..e226077 --- /dev/null +++ b/netbird/data/www/index.html @@ -0,0 +1,180 @@ + + + ΠšΠ»ΠΈΠ΅Π½Ρ‚ NetBird + + + + + +
+
+ NetBird +
+ ● Π—Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ +

ΠšΠ»ΠΈΠ΅Π½Ρ‚ NetBird

+
+
+ +

 

+
+ + +

βš™οΈ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ваш DFWebOS ΠΊ NetBird

+

Для настройки NetBird трСбуСтся ΠΊΠ»ΡŽΡ‡ установки, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ рСгистрируСт Π½ΠΎΠ²Ρ‹Π΅ устройства Π² сСти ΠΈ связываСт ΠΈΡ… с Π½ΡƒΠΆΠ½ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ.

+ +
+

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° статуса...

+
+ + + + + + + +
+

+ ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ инструкции ΠΏΠΎ установкС ΠΈ настройкС смотритС Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ NetBird: + https://docs.netbird.io/ +

+ +
+ + + + + diff --git a/netbird/data/www/logo.png b/netbird/data/www/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6203fa3ecab555473338a5b011c03b8acfa94647 GIT binary patch literal 22577 zcmeFYWo%r{(k?n?j+vR6nVFfHnVFdxVum=Tm?>uFn3>s5%xuRVGhOH1tb3$;Kk1ww zN7^HerdM~>(^XGb_gY=6Ct68C5&;$m761SsNK1*S001B#MGycq=*Q1Ik|6WPPrr|v zmYa&PCy|qjqlLAdIgy*UlR1&Om$d}|;I(G2w2m-91pji6hTq2s9Vd!H;~tt|7)lJQ zthi&x#bqb@8nAU`W27?ky*SfUEYxCBk52lCDi@~d1{}d)>X*!Fp%xmZ3SR92H$8{c zV7(Ko%rMfO`pC)W`GF{YsmikbL#D9-sTBwu$iemg%y|z-Gy4dl2X)J@K@14U`lW?e)If3D=Bu} zqD=T+@eL^tRT0Ncct^5koT10LhKufMBI@(>6tZO0pbX+T|3pQE44){Tx?22oc*r>H zA^nt1S0B&)9wU5u<38T9bpmm?__xo&(AWqIN|E7M)i~4?^^JMJt3;kR_%<__#oiI- zM1-;=Ji!OTmy0DjMa4GhKC+p2lXb#fAtOvHPW$KQmF9KIpm*%nx%Rhs45W9muGPgt z$=)jtC+E$@J^r6AP*~n`2 zf;09+PekC|-DQ?SprEL!%M&A5;_r{3^RWI1E-iUE9#cnq24gcv6LSVHd#8`60|590 zy_}3qZOz??Ow28<9r#HuJ9d}bfr(z+ z%i4p5L;#kE&&AAwM@3BH?+_nX{3KRxZcaRmjGmsJ44$kEjxLsr%-r1Ej7%(yEG+aN z67;U#4sOO?^bW41e<1#bA!hDs>SFEWX6@)e^as<}#L?Z2pM>P2o#-F-**nS0{}bN9 z_3tcv@WJS1?8L~-z{F^8&-m{eu5RKUA0U4>=zpo2gLH2)0x>;NN zi>&{!?N7^J?)yW`ycb9#rR47^v`4FXliZ7^HDc+(}atKp3Rh-i{6CEn4R9#l-Zn>%Z#0k+sxwMprjpK-HaVf&Hq4sfHPQs z;8?J8F`Kd)v(d9Kv9Qy#8MCs|8*_0P)0>%cGP9U)n=x@4GyfZeqKoxMR2tj;yH$Un z%s!x4O-q$8cKP z8(W$)IyqSW)$oUK9$_VEei9Z2rhnBa*%`Z8d? zW7EI6;A-q)ZuVEdA6S2DGPN>xur&WzKmH!D|ERbAUj&0Go3ROpiMbiQDLV%@J(~#! zJ3W^L6FWT%C$kB=1qT;17w6yN>7VGXjuvj7#xCZ zt<3+7!=G4VW~ToaWgH}oe|MJg&x-L6Z}}MiUwrWWCGc-c%!l6J>OPjPkCl+|pG)E2 z`TDT+|K#WIs_rG-gm#+U21OFr8|3=q;>G~fr@IMm%Z*=`{qYL(5 zn<;aLk0&6{kFC;t5P#*zHVei{O4}6xU?BbT1@S5t^!TWRa+8)9hdPEsKm#!JY#@pQ z07L+3F<~{YwX-hU@Ak`C=o~}$lWj{|hXU@m>BZ@EqxCNr9&+pQR@oE?Y-k10Y{6>6 zu&^SZWv*!-k!gfbXwdsBq0!gGDfvLtE+FUFfV3Plt%fW1ZR?Dy>Gs-71LL|L_hM&AJ_87&;694gRx? z0tB|6Nz)eVRgN|oBnYxqh=im9HHZkymJlliQnBOlt$Ty$y%?tmR(HP0tuuS9960pDb?p7 z`I_XcZSvw+cKjrPNfVvOrx)Lxr1unb5hdtbg31hRcE0L}&ZI5oo=Uv739JNjc%`Eh zoDU{?yL-g;bq!R{=_KNYvrlv1;yLayIHq>T0t+SP9W+tUDZfr@4EpwtY^zVvJB6c2 z7&QPEt!oSd%nVvp?Hm1!jzpwO530qe$dUh8kDJ`pWByU%2zRcQV59I!=s>mF3 z9GZJ<#uf(8rW$y}00R1{pp#%qxcYMO4+0+_4)c7T$k}kU0ZLi4ctOI;ZnCB7?tb}r z;$qWmRc~R*g#bD`Ut9U5rG4u2E$71SOZ*!`uj!m^pZm#Dc2qY^!9 z@u+;d=ubdAJcuA7GN*^np`ZCz_BDIJYdGCrhZvRH*A9BdAc(AzrJT4x0O+VeSZ`lx z_3!<9Ug`|}+-CP^3-*j>p%BVAv=mW63@8Phii2IEX2A{`lgO=V)QjFyp9o**TLLaS zwr-c!4-mgJ#lNMgO_NrAr*9@MP{Wx>k*;DFBfkg8085;%dj+~$Gy+2j15+54Tc7Y+ z$0Shb%+N6;^4o1lNcvSSD(D@2eu5?P-Tb~;ul*^PZAr(70~RHN0t$Z}4XA}fYZXb5 zY6OsF?a1}}Th9A#c^xRez1?qpshud+W60AA_LppsiImoXSk;y7MI*9efmVjMiQs3O z3y#l%TE66DvFpCgSR%txOzJ|l;Nyfx!ulp9BQ{D!<)34r>4DME;2Ch@_wE_6lcM`b z@g#BPFtu4F!8~--C`U1K3RzTcbfYk)c9DKR@%!*?L56$Q=30813#JeFjvRk zlmMB4#TX-PE2m{3mseOUM1<+r*9cw_bOwULs2fC`T=2jf<`D z{RU6|j$Og$U(=42#>?#RnoVDmSn<-~Hnrei|I8d6i3KJ4>UA*A$IF0wQ9+hfi{#fcbL`iR8=0d_aoo26uo`k`Cgh(hSwfF$*cfv^!MLYW}S#!VF^^Eq6ueGdNbJrCs>LEUxU^!~?eylrA|qfH|^pOdIo z5yXSQJau=v(>pz#5bFp(C*d~=^;pn;-_{C4J$*6>ec#&+kI)@$PcN%=4}F{r^uT4X ziy;FTKx1LOLayFbZu`6+3j(_?-_8-YU0i;fbgX5wd#i)woO}4^#BJ7q$eB<<2N%Ln zV1pDQA<3cj1{r^EkG#U!t%soUFop+)Cht=BO&iT?XGb&8Mh!2$plp|a?Gz4q6PIn0PnW# zA1F`MtCXXep-)VNBtH2ObB#DX|5#lwUAjbz^k&quCMjnc4JQdF51XP8R38hxAru6H zIriK%=WtYYq&BE^*0O^rXHZTk(;flPpag;=)^$L@{idnOe@0c_!RxoMBe5Zps+X%B zn}?UQH8#BTN)qTJS9Hy1EJBxEviN{QFFFpN$S=E>asot@EMSegz~XrwX&=gxtM83t zPryk!fUol2{Qb5C|M6Ri%*f5L9RPV34 zJQvLWE`9&$8MrOlk{hRA&4F7RjRJ1txZFB+$ED#U&Rl6FXS_mRuFdB7P;U6rU)t?6 z>M8=?jN0Vr;y*BXu7xZl7WYge4q=27kB4iJxR^A>er9wUzYO_Ing5fMOO8op%-5IQ zKC>bSK0l6yl5a^iN{?ByNcyKxIMzKi{zE0=F*Nje-B=k3%>f0kW{uzdz~S5TJFu%| zZ&9LagM|*_$-IngUH9h2=jORJC@JzO>}z>7pxHCWwdZbQ$1q@z+Ohf)Ao!!wkP}oX zA41F-`hfW;wKvH~NDGOS^3KBqK#ccY>dwqu*mMCIfL4d;r+taFOAAh}8ia!vln>RJ z34-?$iv+UR_h91Whlomx=zJThk`9e78qVxhX!tgJ8MvGGtnbK!i-|ifE#AaBhNVOV zz!fxy-{DEvC;q-;JL_X zqk<$gCw;~-+QVZ7-(K%uv$h{+@Y|VM0#-dMimij9bY#b(8_Pr$sA^EO5^zIU%Hq?6 zc|GP+)=L9`nB7QiqZl0^oCI5x9SM{{c*OZE`DjdiA)+#N04W+g7BR@Q*w9)WWE8-` z_is^HBBG(zQ+@gUt=|x#1&cr_VPLuDs}^L4uyfJta99*0R4pKd%KGys)$1bTf2m?& zEAf*N3Ssn1s0iS%2OivSyi*1|gSGrXuced9qLmE>rS<1X2nOE+KMNa>JKuBI?^l_Ey&oS?{r?3NY=O+~ecTBC*R zdQrNNG4xMASzUQl?RlOIJa{JL+w8Fuv8*nbI1Q;1Cj64Y>~43Ji3KS%T;Hu|gqV{O zQhhyY=mYFeVa(9ik>Gb*J?E(uGUaG3b4ra;rzIm19rf3=|IADyE;-32SxpR}PK8Od zapweS2z!K7kzn~2_hkd-JzG9IDn>=wN6g3!g z)aG1yHe^uilf5ceuH{X@bK-jq)Z4L?&+-0%4Oiya9a=D z^XxvKe%tc=vK3%+AWkes_|5vL{G+iyQ#FMXbKE<0~a zP}`GDIEfFYP)FtcMc6S!n|^_wjKIx8MCKnF{QwhH(Cl1mGp#Q$z-Zx!YuIU%m<=MM z7b&D4r;oi($Dh#1?COk54E&X4_&l-8=rCB3NE^FSRUv|u2A>T%7;S7il3s$3z4Qv#3JYnHwt|b@!!U` zd>hJpnc~gaw5#y9ggnFw(}nB9xqq!JG%!@PazWGViM%a8RgsdXv9I~HG&)`nIX^1E z!LTMDxS#j714ZDwUucoqL8JWxCEx0~ubb2ZG|rnA3~HhZ_*ymjTA^4{BZh2A<@p8J zp^(>QPTF;I0Zfm)?72CZFYV&xbj0|=Sw4GVQ4{OE>ac<+&9w+ADkxVQaIA?c*ez}w zq*;z^J1RvS5>*AAibl(l(H-L9vh<~^@|A$?+^+le4z>2>XJ{?(SX1zRA~LV_WwH8V zP_|?JYixr=6tDzAoCWv_D!%$TW$`O)O1PHq0Ebd^*2!l4`?BDJ?uC^mf={>my$>%jp-;!&0+4TrKF0pgsbUk(+EtHr>*j6&kZOYY7 zC0B=f-DcaPF_3Jr`vw;2(u<^>tXx(R%UyL#Fs^wpyWMWQxZd*C?E5z3=zkNQ*6s4^ zdUx9JVLwsuE&31{MpI)bo>jjW{-$%xf3P03jgzz=8ALaW+ooYI@2$%*@RGj)V?8v% z+(W&tG64wsULs4)Q6gLi1&z$8S$lGXdR|37MGLDy=G?^b;e} zl|6ZoNhAM;LLS$v;oG4gkatRdB8TydT(NGhCtFjE&Z)9S$l=1&I0ZH`Imw2-984Ir zr~dNrWGFeVjD>P6+C_B!_b4HCt@&?XIvkolpTMklO}4jejlUml>AwBA7r1(G%@BN9 zxk>E${xE@xImNi@t74AH;pnp6kO}QGX@;;1`_j=ZS*|PQRexW(`rkvPAp^)gW2gR@ce*o>Cg{#;#evEnIDU5 zEkQ$KQn%7|eYShqc0ZBpI(h1$q7OOSs3uxm$ zde@Kma2EU3jhifs(li0< zfQ#K}gQrTtr#jlUO^E7T(im}P^iVNy?uAo4aZva^I%O!aXy$UTAF>%5hJGhmo?YkF zrKl*CZQ(X1(oM4Pw`o?O)JNeMQu(SDEE#S2rx`2c2~Rtj8O#{9kVKSpy-XR!LZ9}d z$WY2{G@R;(<*vR3Xf#hb-6PyQ&74!d_g)5UuV1u1)~qYgGYV{BZhRdcZB3|=D! zOm_(ayE(r`jq__V5VjZkzn&lxILp4PUz92@i9y(29`ThExtC?yPdUE+P87VSP3&oe z)9|TIJ4umI!B5%422W%Ffwq?W^()|*QaGQ}*BOjseG*f;G<3GZ*IjrDhE}gUf@1`Au4GnH;ztdFA+tUK+HL7`bmfA=|SI#8XyA z$MpWafY-(Imh++Smd7@$;@53$p#7(z6ME0-w->@^`@{AOm6rYUjg#dI51q?=t_ijU z(PpZ67gNUAsV>WTrsZOjJ08F!^_&%|uwCvnRo1Wi-FWWs=6C%NK(D1md^{s&e zqoS`H+Z>=)xub0kJVK$1h1s0lZULU9KSb{XhmW(WY6{Uxg+XYiOsK$)@00TekUa1a zgF=T_yK&ekWar`a`}>u}!MkQE+l>0^zRdxajoLmzWYp=@td*ptPOPnMf7|p`IP~m! zytwZ?PQTxDp3m);)5)aXGsWJGmk4rNoKkU&kDRnQfA%Tozj6HPwQm`4J_<2ybL7IZ zWadKzqwR(qf`1bE_7PEfFQ#}JfVCsV3f)z|d4<5U^4Nwd-^=#%A63yb_j>Bq;bo9* z6$PI_mB>Spy!i<^Ot(P{G-YjagObp+UHZ%!vLS~z`Qon0_GtRS-db*Tb6qhclymsae>?~2~mJXu)XLEc#1bfo6xE$P=Mzu1wAlLQSEA<<1ES;VL z-y{X!{Q~D~NZoh&DIuVej|$@-yCSJ0^>Sd@IO-d^B$>I+z=wGlNzxd^GjHGwy^r^@ zToJcC)~$hbvbL^~3$6zASvExw$l>yiuEg9GhKk5ZP#r6AmN@2E=WOwBJ?F3e4~}9; zi%kOK%yZsy8sQ^0zuY7ea&cElb$ zThK$TIthiSa-ZWf+UevwW?4Pvj(hI=ru~n8pXV0RK|~_Ww5HTJn(3*-d6B^cRjMZR z+?i_j4~OXkD+r%ATsa*l2)qW)8-`?ha-e6~$>4~EG%WgHxM&i!LY@r})+#T%bu@i( zBJj_QFll0t!fmQ1cdl8`TbNW~>pW&X^)=hSw+gmN#9GBsl25@uHz3x!)H5Vv`5JiR!IW~UUb4gsdOm*mx{Y*b$rN{Y+ zuK2R!Q(uX7oHXpL(X{SscPZocw2Q zzt?6AH)0w9(CGymO3U{>`MjA@@OqSS)8k@7_oBO~JQlBu6r6SmJf)J%Eh3~#CD9Z* z1$hX}(!{9@h&+fFJ?P1J*^X0r;Rcgzg=f*iROL}zRWa{6#X%825SP!E8cpC97rDTn zK*pU6u9TV(FoxTK(qQQ0cUt?lVaiL5j6pmu9hr6Jv?F{g(gzq~&`3s*&{&3)?e3F7S8erz_UX(IEoE zg;rgt6ms>}FS5E04EkA%@ZE$vIJYj5R{2@fg_p9aHV4$aCP(?r4B^E0ay6uZnw_HmHu*`#HEDO!vH#G9nv)Y#c*gmG-H(oWQYSWc74f z?!MJIs=-sGr+3$Z68N8uBW`*gwl!Er{q#}9?YO~Hr1XL}K@i@V{aqZ5@pWZET;IT; zZZ3%k+ule@sU9l^>yy@vn=G14d2ubpI5(n;Qdk@Z5QOU~QfS7raC7f$IPjL1&}S#D zCYM=58Vfd%IwAQTK_ZBVwgD=+Uu!VLxMFd|+hO334q&d2JIo$R zLGBWz%hcB$Zsvz065Pyu%OElr-Ml2iaQD|NYWE$Zkb*9X*W}KYB_u;?v=@BEeEVI? zw>4RF=JAOYoC=j@Z6})Z8!X$IYy`l>s*)P(7X>yfk_4S^n0=?4`R}t>M!|<6UI$+O z>DT_KsZOT@r6O?=MxQ}BDT?4?ok3&_{-yOTtTV>f?9_1T{U~ z5|TIp=1!lBH0c+Uy*XBo%tZG_aDE9nT-bWWHah%H6<4e%>DKBH6W#r^7Wis*KOOKG zU0u^6mK^M^$%um-sdeM4?;qs+)isG(0a#N0sk$BN^ADo}wah8QRi5|$aL=yeZdLn% zHBD18Acu?sz+V5-1Now2V;E4Yf+28i!|J<>p#A(< z$!53_q#IE7g?lpgx;You(G&QNbRI@fHklI{sJ=-A2R0s2(<=KH`K}U5vl%hY#j3AD z1( zp4iG{S;ZCvbq*0V%z{_9(g4)XDqF+kxbGitE;0-{JDV1GFMAj%H5if^b0LH?IwHi; zOqt)1$%5ip5tEa{eMiS>X+0XHsJ^YTTkD{~q-e8Cx@g5yDbvm3rWoPPLqEEwFSVa9 z7d!&uzM*{YryGgy@YpGuz6;!?>~@OAzFH7~H5Y)8oQewh%YwI(I#i;2i6O$ltFXvf|eEhdBc@W=DNzd`$6Lqa)L-wtes zF&2dro3M_SO6XLx;p%Ux)19=g>PsAj$y*)*(DPs!Q+jdqwoy})Tc2JERn-r=_typb5+HeWO%%8Wnhc%_B@DcHCDbO@Z{$J+I z2eGme`S1M19;aG*?CUz#DZs|^n_;NEHtQw3S5=It>a)WvoXxQ-ucS_cR@iwN@X~Js z4BX24kFJhLsn}R};=%3d76gb8@Nq!kg)3Slm{K&X4E849H{XBv9oi_2+H5C&PW(+P zSMOdXSaW*Qp1@KTwFcg)V&+_FQR2Q8b`N_RMcLz1u5{_W4%V=krhN``x$5RXa&E<; zKq~h&ZQMcIp}L;s)SwHlX7N)2~=X(^L_8~By*$c(rsQdzXQYnq%k0f*t=l!_zF+}(NYUF&yxYvaIQ^=KP-B&{IzCY;@31>-N;5AmU^ZG6C(a(}iO^W%B z9~w^@Z`BP)$JeBV_U7BSx%IQhtDfH}d0u;dJvLK|YouzQBXejoM~EV&>1$3RSqGh` zz3bcs60t<0n8R)%^J*AGX~~P3?L2#fq6X0TpjnKr+bd!x#U*T^4x*0NnQS~AM<#V{ z$iXnas~ndfcPv`S6Fxl5XH3Fop$F_ma^TOR0)ng#nooG==-G4al!3E~0=G+%TTb`% zmW8@=al2QU%F;_rGY%VeXGofBZ%RIWLUR*C$Z52|oV4(o3E_g(9Fvx1x#ufrqB%Mx z(*7@B{q#RFwB}%^0{Etrb4aHNU95ebw0)0ld5^$H!Z%Ju#x>R`0a`H)9cT}=(pCa} z&`h7;D-1CpT=L)?4KP|!;Pp!Me#7S?Zg32_#wjfReD7W?U6hWR;AY}(iA`wND5I!? zuFxPl%*;hSzQr?_fD=3#aoWl4+YFQXNPA7rq@@$Sn@%@9I93GvC|x54%QvYTM!nxX zPbqobRNLobxGcXSw<3Ou1qBkC+e6!mM7yY#HvwoHBzs=^bqQLZ4-g8MB3#s|py6;2 zdI%k8Rt%Edd%TKqDp*wYt=+vBQ20xXKQMB{f+%HHpKs846rUwIJYPppf)>A&4QK(!ex%wS>qu%U`*kb%9giMvz0817t~dUQ39ue$ohyhw zEcn_2rNJQ{+NNT$ehI9sW}rq4*$d7rHE0M){8ebW7hF}5yyh)?$UcR$AJDS}zzR9s zNEL(h!A~#Ys%?G1Gk{FsJlt#0w?TBIV;mFNw-Z+d9PL z)KnDsJ?Po9-l6*o{7nD6Ud$rU+?{yQAuUWrha;;l~D2k>vlX;~qa%2Bx z2nZsEND-7EQwUC*f?Do|zBE0h*V@>6wF7tQb%kJg5PcH4DrYMDt8y9lJ|%d#Pht58 ze4LH!3wN@np}ps;gY-njT24%tW2O_o{%%ry!)-Vh27Zc(+Tw=UjdB>i-_Ew13S{IH ze=B&s&_^Pn!0`Cy{psEBp^g?*9UWa_j$Mtun0U{^o%X0Q!RNX!fST{bDfU3)kEC9M&oP_zf7>7@aChXS`7 z3fr@_Q`6*kyTh5#SLaJno#h23cig6^k9C%w9Gr|j_w@H)>brro2OfeFtQYa3U##dA z3}36CBAR63O5qO1o71hS`O&c~HRr(k6?F~I#%^X-^4C%zgM{^O|3c#p1ego!-m z{THS2iiJc$XXZ%`g7*6wwG8YoQRzW#Nk)?+KHjHD4}=X=X|&AF3yB{6DlG9*M3z1G zoJ+~@L4%rpuTPoOMvXX&DWzXxd{(HA2^*gcHz_?ZMnhItS_VTpjVM28CVU5u^U_Wo zArvWqdz~j?0emgMT=dD%v~|}XO9`G&=v%h^F3%4SwAy?Ulc~hRwd2fxgi^c7pHRXh z;L_Kvoz;ctvaEc4ae0OQUh0bMJNR2iR@5y2fMWnck}AkugRsZCI3d57Z&}JU4a0k0 zG2r2GaQmfvx*9Ldb)f)e?c&c|$ny({oOI;oED+zBo z61G%fe01M33L1MEjihd~%_>biyYK4I?w6udu^@Lxdlq=8>&D@cAm}k1A6w=nl-VWj zsckj%Nf`1yft$3wyZyx>!>8FqzGd}3b?M~c6u_`Myt4SG>>@6bsPAI=w`Iw>Jhuby zJM%q2;B}iz$#$!KOU4lt&i$?qYH0Wmwe+U#nsPP_>q|4}6Q3zg0^IXePNm2Q{h~5m zU_=4s^T?v(r0HS3rcC*zhb@ou?DWg}@KoTVh&Jrkh61ElW__vQB^ZKr+GXKPxN+qt zY*|qU#*XakVZqmh-1`mh^(@p<98=&a_a#w(4Lv_C8cdsS@o>!~cOni^<96+RJNx-Q z*Vi-L#oYL2Wwo$re!onat~~Y!c||~hv6ze9A#2`t?)xp_bJ`)VX||_+aU?SvcVF%A zQT8bAE_UHalP#X7uQ6v^#MPaTw}$UK1Be^m%WWwJ84k=2K1tLyGV*OU)6I_Aawl?| z4u&lx_tm3BVS`LtCUP;|2{cr8o2fnv;WeKGShc!-FZihIa~5wU658TZt`Y`!JFrqV zW5`4^K92U>^i2mml+$}xuJwY_@${qWILd(<;af5H5~W1sa*e=7X)Q*TJnoq)Zu;I& zdT#sG$K#iZ5G+9^7kt9Uh&VtK)dz_Zg59f?&T+d}iRs9}9$0hGV3fg+H&8zkjpwVq zJlXb~LF6Ka3Z2<)CN4J-$ce1bGj^9EaOXDe+V3}uf`n70PWNpF;8catl{4{Q>%E-k zy}p2_p-_Ge`#^DbV+g4sBRL8Q!n zK_Vl_Y^Xz-G`x5?kM%dC!tZEdp#g&z`_|LBl zhkOD>U&KDcgX>N5X=+qQ*0fJFUTlG3s~v~Sn?p_%)awB$9o~B}YdYV-@(i<3Vk*N5 z`UfIv@K8Y#=2nH;No{_Bo`;k7yrkVA1`MCKD@)6?|SD zuKkfUPifKwSID`%60DE{zfAD+7=Epg7>ORJ0GwVrZP~nAu{2egtcLg||2eXt`|mSt0H+1OCyeaz=Y1gsadB| zbk|z*R*>yH6AVu-<6Ee%LIt^`*)AOMwM+|B8rq^Aa=2_r7X5N|t!qZm%mWnah z$YR@xlBcuYZ8GjWRBsYeTOP{p#VA#IcF)7u#ZqDC?Jv$2h1eQqb($s9bvfr-7^6?R z=Weea)-xp|(DMm77U2^w^U)~Hb^E}0<))whDl$Gx@XuK){v9IH1b}6t zbN`y>|K^gqsC(ICIyLnf*0nVUUDH`5bt3=A&gTA>C;c+KHa`6~)5q^nf|#cl2PD}X z^V-@!(Nf7!W0+?so)~Th-PR4?DSKYdG++vs^0Vla7uAH+b$Uno>@%UA!j|4M5o?*3 zXe&&h(NjXy$+QA?jx*FX9ew9twFhSl=tyCuRA)NXxO24f9nwq4;4ra0GP^bnQgV$m zOKAFkY*37ARQ2|Qr)c_^hg89iKjH`8PzF3=5^Oh%#rr!+$FGK=V>}m#;?Lu{6hZcP zkCI3k4T@0nzopS$y);8P3hEmQAj{Htwl(prj42fFAAr&pGtDF65n&By1AIR@GgYxW z($j&m$A)kDg0T$+Sl=ji=HI_>9C}8nV_S6G4C%txN`eBCLZW3?$1Dh6cU)U?qgpoH zZy?*D(HwPUPi%MXTU0gHEA=MLITUhc>I@)4A$~AZawH{LP*)|p6x=MhTKqEdq|SSW z`bchl2K#SvD#U9Fv8 zK&%LXD@Y=M90YmO*Bm`<-qoR(1qIE#wOPZ5&x)N#xM^b*6c`P=c2Dx)4?MV5axugO zV)=};6%?|u-2n%z)15a7eklXAIu;tRGb>jvR9uG$A^;I+i;^}?DwU42QwM?PdjTMj zblTCu8M0UD6pOS+c`|sJFr+(&L&RRSXjWtij+>Pl78T=WwT<^8XHr2-{P=_`2?u)1 zs?x{`L(R5q>==0{{t?q)<7MU}69yBnMSRM9xq)De3gSQp8x*3#gn&Sg>q<4TfD>@! z8E{z5SrIA{RTVV$imgE-7kOuVO1BlJ`C8H6b%xYWA zW>pA2hF(4-u*$E~+U$L~&Wab;S3^6O_eB&OQi-a%C+Q_;!~o|DBm`kkI`gJ&#CFjvZ;xQJ!-lF7Y>BzFvpE^CZ{>H_BjIWJ?OU5SKIDIcEQ&+ z%UZ1F=j_dyOCI0vrTyT2C%3phOu2wa7XXr+RG0A}TMKY1=i?-MH|Nw-hUh3tQ3Cr; z9f#iyA8VB+y}qN1RS))$x?@;j=6=$c2G2XOPdXX27KYu8Pams>8?EVqS)R~J+W)Jveg44L?BFA(d?j8UvqPnTvaO!J~jWCt5cRlt4dO>4!2Y< z?>xI3*{?Qy8H1RmmEXCV4b{j5g>e!wBHxM7gQ=B79YLZ&KZk4|+^l}9{5TIY-yFKN z;R;-jZwdb7+vQ+}HmR+?sx|iYIqsx5wV>nLnOI24Onm}dUP4|A;#?#r0Jtpp8_(?b zd&_-OSF`@UyD8tap6$860VBssUlNi~*s_U^5-J1)%3L7|I|)5(#hR3ww0gNp4^R+D z36vF7Q(s3cR<7g_DK239T-hv*RPEg$TZRA<5?@#6?{7G@YFqutS46lZaQ~#@hajWi zKi%!>$0KQLo5z2jWh!vvjql4!nkhnt*2q*^B^41ZMQ0k71JO!Vik}HdAG2aT!y>5z zPNy}&hveY%&U+cS{o0+7k}Y-Go~+cx%@br$IAUVGoZxgsR=_ql!rWfeS623SH7DSA-^+knckG%_89 z^Stx_jHMwUCy_HQOITIzgWpl-emjuddP-O}gq2H6rf{FKiBy;?G;3Oi!(~xI(z^z-zMp9d2yKIt!0(w$&({@KT)VeYp zQRb0w>l{|i$`DIt#OPpwnw?xF6Wf~*1o4Hnp8bma$$N*0Jt)YaLvY- zxV(oM-N1w7-+M0oAn1#QUUjW6vOTPF0>f1(ug<@M4;;R7lbcH~@B(Y-DD)$$wge5A zdTvHqYJ9jS<(B4VkGwTej5z6gS$5@9kz{XV<|uR{g!hx4MtlvPV=w)Tsx6iMnrjl} zYn88LC?nSM!YM4ip;v0pySSHcuc+0krSST|{lLd&{+7g!jB|h2?c(lpbh^EHm2Y*% zH|)%yeKGdhQ-l$eOdGAW(2+0DT4U~L0kvB9dwJ`5XxBxDz6MU*9KGpC3@=o!I%s`! zSGqkb)jGKFtU-`&zc;kWCVe-;1M;GbE_kB4R*OIFRq*Y6S^#EwB2*?0)eafSPBVW~ zTRocwJ$5Vh=l4%+l6UL^4|mV+W9x>I$0vIj2XQAALSrmhvM-1GesT6cSn0!oTg#G_ z^@mLpX$@_kC*(Gyy-hx&MpkYXzh5^|c8jh9bBTS#Fu826?Z8*?;Q+b^UP(d9Q`9~K zb(4-dzghzJUpw!9*kIY@Us`#im^BgqVnDvViw+cKOg7#ysI@l=TyQpAJctwL$&ICM zRV@^{I@J>tcrNX^eo&(`gke4XDC8D4@+Tp9qFT;O74pP5GFfpH<fKIoN_YtOLDBH*Hx`uqP&jAo?|$1$5HVC`F~-1pBoQb15l$i+3LnYGqXgCGR8i zyq*e%dwg|Z&1g*+xXzKtTIer5x9_&qLCKhWL(Ym$!Ro1ftD_YCfPKsOa=GC!xe5rX zPSEF`!RlXehV#i`fu?@+YX)v)C3I~jZOe^>4T`}s3}d*e*05TS%FjBKn3weQu{ykTB z%g=uPHKZV_F44!8bXkF_uz^c3(7`dp%NZI+YOZ(n&-=STg#jthqKUS1vj6c5;Gs6MBvHfxP{EP$>262meVC8MvP>?^8!%gqZMQ0@{y zTFTp17nAc&Z$gv=gOua``bw|ezR!&zL&ls1;iHOz9K&)pnLRAf&Ak-(Jm`3yrT{AJ z`3`ca7Z2cVW{_{S_=nVtD$T(V`H+!^IELO8l?GP1|>WY0)s9(QM*ODF4a)*0uVPv8II`@{RMc)edQ zS;eG|Pt}5r-a)hf!N?}rt8n@RF8@D)AHTDBw?%kg&cnm_-PXK=8%E5UwDuNR7hh*a z%DOo#E5@#d0q1PZD;-Dqz7Aq`?*?DsCT)UA%cdI&8oc%iQALe@`Au=~qd!ve*?^Md zB5+V}Xw^?~6~N|n<#K$b?20IKz6!o|=I`)lABlgS*OR{5!YyroB`Ze#@)8CMzRtZ7 z)E82F8K+e9q8gTLz?!lb^V{E?15C7gWk z3`oX^|ER}MA84=U%oz`r8!AkD!Dn8vN*LGVj>~htNHa2e$3CaFskwf7zHH6y^xrGs z5w6qkRfI5OD2~0XwjlS~r?Y{AD_Y0##Is%FSj;2hQ-y3^%heU8si`M#L51}dxlPmC z^_&Q&@Z18*J&S(nDmUVY;9qM{ByvN>jwJb_H{@jbKqbk~ve0RUqGs*SUP!7bSb-nx za^nZ9qVnQ^Dxvq0)2(9>PUvr!#@gN}+ROAoLs{_~0TZoXIM^OHJXr7piSLE6o|^GJ$6k&z1gj9R}C!j(S7=qN`VJf+u~ z`$`Wv9arofi_b-$?O}W(J=7=|!F(uPG4=JcMP6gj*h>3OZ6~RN`OXWG9)Se5(2R=! z9&0xSA^xb|wv=uP?i~G$EQ;MfD*RwI9LwUEyZ))$JuIepsXkSxbtw7y6+y;rr7l_} zW8vQB0@iltLo`PWxW=|zS-y@7POft4s{KQ0l|}_{6Ydekr0p#xYJZtt~gm|m&hbx?b;tOUEY{K2E0DifUIlBd)I8GjSalJ zmpvdJ5Qpxi=agujoYduI1@UcXE!|+^lU#ASwl%BF!GpCUnF? zj0U8RIk50;l#I(6okFq)`tF&=8ku;u)5&~{2Iiq$TtCc^zpm|7YX|$EP`EpS{h?-w z0R>SXXMBW_tRJ6t#6qR!XKsnx8QO?O4*Iy9zOl?onEpxa0khcsaUT>H*JLkofBCl* zF#CU90K8OI6;^xxI&JElrd@X!nKRr)LR;yu2j4Y)&)B}q#9#tJx#}g7#_S^Y>BuuEzX{NCqz% zsru2$D*AwERAAFaEq1d_VI21sOb3bQ`CNQ?v*(;VUNfYGIN`Ky%NF>aakNlEpzXAC zy|O7PzVIfkY%L3PmATNqudGg-b!3?tSUNB=g!>97JBL`_Cw={G;^poHT86M)F+o0A zTY;VJ@SC4CpYM-)NkJV(TctbObP_-1^~tv42yUZ#I4IO{g5%x`~4-ugvZfO$HU*){6LE=)0&&2FX- z##8%_%;={MyEdVTmDQMB zMSMC7L+-U`qU^ncMCvvlF^)9D-0DC)SctGyGg!vv+5P{ z2O0wt{wo`>T`mn>QXI1PyG%(!g8kgV69Y9!v?W7OP)6=MPAtWoww>K|vNk1Ef(#uY z$k`PZKb=lkZ0K-%pQ>^EiAX(23r?uAaBL3a6_fzI7U5FY-q{3Im-%Yi@oVB6%SY05 zZExDE2z61fG()XdBj6n?$OJ` zJ2k^Gj|A6IUwM9gH(&=Sd01XN5*((Ni=1Tq#4jN~cWkY;$20tcJpE)HMKG^}6SE0Z zPN(@fm9w91JTp0R7Aqgzun$Ln>l({)Iu z9O&-FFjmHD(gv72#^t={nKKcGwRoEcHPS8{aSztT87iOxY;q8Bwb#NkD{_~3Je+Fo zqgirFNK`4aRrq1#`PnIOGw7~kJ0o6``P~E2Kw4>YCsiN5MA34ROsg07I*cX2T2}L- zSktW%Op|0A;2n2-3VdsGzmdSI-`aBYC+iA?c2A__;p?rC&5DoqCHBIUU>uLDXhiBB z8NS?$S&2vtHkbrI^<@ty^{G(bgnYps$hLc>z&BjZQyNC)uTrl8-4ZABR_15Ms*;E)_4f z5pHh<0D(faS}Kaz2;V4jH?8E6$bH?*oXZ-e4(5^*j?SU;fV&qRc(~QHc9)LkR#0a) zqIx!bOKk3Z`@f-aCJ0>U$BLdYFPm2lZU6Q;Cfw2wyHA{4t)p+-iQqQG(({!_235ZM z!79DAX`@6LZ?Umg}s)R!-Cb+d%a!|I`6L|g{newx#Z&7~*I8|q!+Cerl=o@m_m2`~10a(L!IUPEQ-jiPL5hff^!?ceV zC#>C6dcB}4X!%?D?JNTk);)fjz>k@iM{#Z*N7_3hN0c3Y9DPbqq+5@Jlr15w0P$5N zXK@Go>@oKEei$SM7A5|rSLDr9f@s?v0gH5vdFmXLT~L|xKwpcBmi6?kmIvnyli|A! zb2Wpv(O)2tL~)skHW-}dgw0l03iW*Kt4xsQ86Iide(*db-tkK&gH*EfKYL9Ph=roY zFbE`$02B17knhNK{wdO4WF}Sn{w8xjD1O#BKP-u1`l~nkGc&qytYZu_YQ+`(!-BIk zHDXQxF!O%frO9Inba6R12L0tA&CB-tQ#F67^9k|h73NJ&#-0VPfM0UBVvl%-KA3C2 zs@Tp-3xcDa{}^;(->~Z0!S)C6ix`8?GN#hS=-BIwpcJE~qik-yRTyk)fGE Jt)6S_{{R3OD6s$l literal 0 HcmV?d00001 diff --git a/netbird/dfwebos-app.yml b/netbird/dfwebos-app.yml new file mode 100644 index 0000000..bf451c7 --- /dev/null +++ b/netbird/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1.1 +id: netbird +name: NetBird +tagline: Адаптивный ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для сСтСй с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ΠΌ +category: networking +version: "0.70.0" +port: 8479 +description: >- + NetBird β€” это бСзопасная сСтСвая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, которая создаСт частныС ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹Π΅ соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами с использованиСм Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² связи. Он создаСт Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ сСтСвой ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Π±Π΅ΡΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉΠ½ΡƒΡŽ ΠΈ ΠΏΡ€ΡΠΌΡƒΡŽ связь, Π½Π΅ раскрывая Π΄Π°Π½Π½Ρ‹Π΅ посрСдникам. КаТдоС соСдинСниС Π·Π°Ρ‰ΠΈΡ‰Π΅Π½ΠΎ соврСмСнными стандартами ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ автоматичСски управляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ бСзопасности с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ΠΌ, которая Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ личности, Π° Π½Π΅ сСти. + + + ΠšΠ»ΠΈΠ΅Π½Ρ‚ NetBird β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠΏΠ»ΠΎΡ‰Π°Π΅Ρ‚ Π² Тизнь эту систСму. Он ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всю Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ связь, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ. ПослС Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΎΠ½ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ связываСт устройство с ΡΠ΅Ρ‚ΡŒΡŽ NetBird ΠΈ постоянно управляСт всСми Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ опСрациями для поддСрТания Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ соСдинСния. + + + БочСтая Π² сСбС простоту, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ NetBird обСспСчиваСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² сСти Π±Π΅Π· нСобходимости настройки. Он обСспСчиваСт ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ основу для частного общСния ΠΈ совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹, гарантируя ΠΏΡ€ΠΈ этом, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ соСдинСниС остаСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ устойчивым. + + + βš™οΈ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свой DFWebOS ΠΊ NetBird. + + + ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ссылку, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡƒΡŽ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈΠ»ΠΈ мобильном устройствС ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² систСму, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Ρƒ ΠΆΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись NetBird, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для ΠΏΠ°Π½Π΅Π»ΠΈ управлСния. ΠžΠ΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ устройство ΠΏΡ€ΠΈ появлСнии ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ запроса. ПослС подтвСрТдСния ваш ΠΊΠ»ΠΈΠ΅Π½Ρ‚ DFWebOS автоматичСски зарСгистрируСтся ΠΈ останСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ послС пСрСзапуска. +developer: NetBird +website: https://netbird.io/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/4054 +repo: https://github.com/netbirdio/netbird +support: https://github.com/netbirdio/netbird/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + НСкоторыС ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - ПодавлСна сигнализация ICE для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ DNS Π·Π° счСт прСдпочтСния Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½ΠΎΠΉ systemd, Π° Π½Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° основС TTL Π² кэшС DNS управлСния для Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½. + - Π”ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ интСрфСйсу WireGuard Π² firewalld для ΠΎΠ±Ρ…ΠΎΠ΄Π° Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ. + - Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΎ врСмя оТидания ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности gRPC для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ измСняСмоС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости PAT Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. + - Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ с ΠΈΡΡ‚Π΅ΠΊΡˆΠΈΠΌ сроком дСйствия ΠΈΠ· задания с ΠΈΡΡ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΌ сроком дСйствия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. + - УстановитС ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ cookie сСанса ΠΊΠ°ΠΊ root Π² прокси-сСрвСрС. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ поля хранСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси-сСрвСра Π² ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ YAML. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/netbirdio/netbird/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/netbird/docker-compose.yml b/netbird/docker-compose.yml new file mode 100644 index 0000000..e4fb504 --- /dev/null +++ b/netbird/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: netbird_web_1 + APP_PORT: 80 + + app: + image: ghcr.io/netbirdio/netbird:0.70.0-rootless@sha256:b1487a94f432aa706275ebbbbdff3605bf927b056d63855f3d43966cb68c64dc + restart: on-failure + user: "1000:1000" + cap_add: + - NET_ADMIN + - SYS_ADMIN + - SYS_RESOURCE + network_mode: host + volumes: + - ${APP_DATA_DIR}/data/app_data:/var/lib/netbird:rw + + web: + image: nginx:1.27@sha256:124b44bfc9ccd1f3cedf4b592d4d1e8bddb78b51ec2ed5056c52d3692baebc19 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/www:/usr/share/nginx/html:ro diff --git a/netbird/hooks/post-start b/netbird/hooks/post-start new file mode 100755 index 0000000..4764d17 --- /dev/null +++ b/netbird/hooks/post-start @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ скрипт ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ΄ установки NetBird ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² Docker ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΅Π³ΠΎ Π² Π²Π΅Π±-интСрфСйсС. + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")"/..)" +STATUS_FILE="${APP_DATA_DIR}/data/www/status.json" + +echo "Waiting for NetBird container to start and checking status..." + +# ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ Π΄ΠΎ 30 сСкунд, ΠΏΠΎΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ запустится ΠΈ станут доступны ΠΆΡƒΡ€Π½Π°Π»Ρ‹. +for attempt in $(seq 1 300); do + # ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° прилоТСния netbird. + LOGS=$(docker logs netbird_app_1 2>/dev/null | tail -n 50 || echo "") + + if echo "${LOGS}" | grep -q "Already connected"; then + # ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΡƒΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ + echo "NetBird is already connected" + echo '{"status":"connected","message":"Already connected to NetBird"}' > "${STATUS_FILE}" + break + elif echo "${LOGS}" | grep -q "https://login.netbird.io/activate?user_code="; then + # ИзвлСкаСм Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ URL + ACTIVATION_URL=$(echo "${LOGS}" | grep -o "https://login.netbird.io/activate?user_code=[A-Z0-9-]*" | head -n 1) + USER_CODE=$(echo "${ACTIVATION_URL}" | grep -o "user_code=[A-Z0-9-]*" | cut -d= -f2) + + echo "Found activation URL: ${ACTIVATION_URL}" + echo "{\"status\":\"pending\",\"activationUrl\":\"${ACTIVATION_URL}\",\"userCode\":\"${USER_CODE}\"}" > "${STATUS_FILE}" + break + fi + + sleep 0.1 +done + +# Если ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ нашли Ρ‡Π΅Ρ€Π΅Π· 30 сСкунд, создайтС статус ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. +if [[ ! -f "${STATUS_FILE}" ]]; then + echo '{"status":"waiting","message":"Waiting for NetBird to initialize. Check the app logs for the activation URL."}' > "${STATUS_FILE}" +fi diff --git a/networkingtoolbox/dfwebos-app.yml b/networkingtoolbox/dfwebos-app.yml new file mode 100644 index 0000000..401b762 --- /dev/null +++ b/networkingtoolbox/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1 +id: networkingtoolbox +name: Networking Toolbox +tagline: Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов для Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² сСти для систСмных администраторов. +category: developer +version: "1.6.0" +port: 3686 +description: >- + 🌐 Networking Toolbox β€” это комплСксный Π½Π°Π±ΠΎΡ€ Π²Π΅Π±-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, созданных для Π±ΠΎΠ»Π΅Π΅ быстрого Π°Π½Π°Π»ΠΈΠ·Π°, настройки ΠΈ устранСния Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ сСти. Он ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр тСхничСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ профСссионалам ΠΈ энтузиастам Π±ΠΎΠ»Π΅Π΅ эффСктивно ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ систСмами Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ связи. БочСтая Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ с ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным интСрфСйсом, ΠΎΠ½ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слоТныС сСтСвыС взаимосвязи Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + + + По своСй сути Networking Toolbox фокусируСтся Π½Π° основных ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΈ частных сСтСй. Он прСдоставляСт инструмСнты для управлСния IP-адрСсами, расчСта подсСтСй ΠΈ CIDR, Π° Ρ‚Π°ΠΊΠΆΠ΅ диагностики DNS, помогая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… спСциализированных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ стандарты IPv4 ΠΈ IPv6, позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ошибки ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами ΠΈ слуТбами. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ возмоТности для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСтСвой Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ сСртификаты SSL ΠΈ TLS, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΌΠ΅Π½Π°, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСтСвыС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСм. КаТдая функция ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для получСния Ρ‡Π΅Ρ‚ΠΊΠΈΡ… ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π±Π΅Π· Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… слоТностСй, Ρ‡Ρ‚ΠΎ позволяСт Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ инфраструктуру. + + + Networking Toolbox идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ сСти. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΎ для обучСния, ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы, ΠΎΠ½ΠΎ обСспСчиваСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ основу для освоСния ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² сСти ΠΈ обСспСчСния прозрачности, надСТности ΠΈ бСзопасности ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ уровня связи. +developer: Alicia Sykes +website: https://www.networkingtoolbox.net/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3844 +repo: https://github.com/Lissy93/networking-toolbox +support: https://github.com/Lissy93/networking-toolbox/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg + - 6.jpg +releaseNotes: "" +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/networkingtoolbox/docker-compose.yml b/networkingtoolbox/docker-compose.yml new file mode 100644 index 0000000..e6562d5 --- /dev/null +++ b/networkingtoolbox/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: networkingtoolbox_app_1 + APP_PORT: 3000 + + app: + image: ghcr.io/lissy93/networking-toolbox:1.6.0@sha256:4e97330fb310e1a5fbe185b1bf859270902ddef7934b88cecc6b3def98d21eaa + user: "1000:1000" + restart: on-failure + environment: + NODE_ENV: production + PORT: 3000 + HOST: 0.0.0.0 + healthcheck: + test: ["CMD", "wget", "-qO-", "http://localhost:3000/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s diff --git a/nextcloud/data/db/.gitkeep b/nextcloud/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nextcloud/data/nextcloud/.gitkeep b/nextcloud/data/nextcloud/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nextcloud/data/redis/.gitkeep b/nextcloud/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nextcloud/dfwebos-app.yml b/nextcloud/dfwebos-app.yml new file mode 100644 index 0000000..fb4e658 --- /dev/null +++ b/nextcloud/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1.1 +id: nextcloud +category: files +name: Nextcloud +version: "33.0.2" +tagline: ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° продуктивности, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ +description: >- + Nextcloud ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ваши Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ ваш ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ. + Π₯Ρ€Π°Π½ΠΈΡ‚Π΅ свои Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π½Π° DFWebOS вмСсто + Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + + - Бинхронизация с ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ + + - ВСрсионированиС ΠΈ восстановлСниС + + - Π“Π°Π»Π΅Ρ€Π΅ΠΈ ΠΈ Π»Π΅Π½Ρ‚Π° активности + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° рСдактирования ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра Ρ„Π°ΠΉΠ»ΠΎΠ² для PDF, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ„Π°ΠΉΠ»ΠΎΠ² Word ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. + + - Плавная Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ простой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. + + - Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ доступом ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ возмоТностями совмСстного использования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ. + + + ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ПослС Π²Ρ…ΠΎΠ΄Π° Π² Nextcloud смСнитС ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π½Π° Π±ΠΎΠ»Π΅Π΅ бСзопасный, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ адрСсом с ΠΊΠ΅ΠΌ-Π»ΠΈΠ±ΠΎ. +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - πŸ“ Новая опция для ограничСния количСства послСдних Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π² настройках Ρ„Π°ΠΉΠ»ΠΎΠ². + - πŸ”— Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ созданиС ΠΎΠ±Ρ‰Π΅Π³ΠΎ рСсурса, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Ρ‰ΠΈΠΉ рСсурс, Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ, Π½Π΅ поддСрТиваСтся Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΠ±Ρ‰Π΅Π³ΠΎ рСсурса. + - ↩️ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ сбоС принятия Π°ΠΊΡ†ΠΈΠΈ. + - πŸ”„ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ нСсоотвСтствиС зависимостСй Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ обновлСния. + - 🧩 ОбновлСния вСрсий для всСх ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Stable33 (Π±Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/nextcloud-releases/server/releases. +developer: Nextcloud GmbH +website: https://nextcloud.com +dependencies: [] +repo: https://github.com/nextcloud/server +support: https://help.nextcloud.com/categories +port: 8081 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: dfwebos +deterministicPassword: true +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/commit/dcaae95daa8ee3d7e8044d55d13887d8ff353030 diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml new file mode 100644 index 0000000..fc952aa --- /dev/null +++ b/nextcloud/docker-compose.yml @@ -0,0 +1,75 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: nextcloud_web_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + db: + image: mariadb:10.6.21@sha256:8a16204dc96c08ed0ee2c52c0f9324aa5d2dd0e43ad23a471d447a39f75765b5 + user: "1000:1000" + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD=moneyprintergobrrr + - MYSQL_PASSWORD=moneyprintergobrrr + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + - MARIADB_AUTO_UPGRADE=1 + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + start_period: 10s + interval: 10s + timeout: 5s + retries: 3 + + redis: + image: redis:6.2.2-buster@sha256:e10f55f92478715698a2cef97c2bbdc48df2a05081edd884938903aa60df6396 + user: "1000:1000" + restart: on-failure + volumes: + - "${APP_DATA_DIR}/data/redis:/data" + + web: + image: nextcloud:33.0.2-apache@sha256:2176a451aa8fbd9f003a3d745978377e9a5213850e0181f4bcb24be63885175b + # Π’ настоящСС врСмя Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, Ссли ΠΌΡ‹ запускаСм ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ uid 1000, это Π½Π΅ удастся + # https://github.com/nextcloud/docker/blob/05026b029d37fc5cd488d4a4a2a79480e39841ba/21.0/apache/entrypoint.sh#L53-L77 + # user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/nextcloud:/var/www/html + environment: + - MYSQL_HOST=nextcloud_db_1 + - REDIS_HOST=nextcloud_redis_1 + - MYSQL_PASSWORD=moneyprintergobrrr + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + - TRUSTED_PROXIES=${NETWORK_IP}/16 + - NEXTCLOUD_ADMIN_USER=umbrel + - NEXTCLOUD_ADMIN_PASSWORD=${APP_PASSWORD} + - NEXTCLOUD_TRUSTED_DOMAINS=${APP_DOMAIN}:${APP_NEXTCLOUD_PORT} ${APP_HIDDEN_SERVICE} ${DEVICE_HOSTNAME}:${APP_NEXTCLOUD_PORT} ${APP_NEXTCLOUD_LOCAL_IPS} nextcloud_web_1 + - PHP_UPLOAD_LIMIT=1024G + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + + cron: + image: nextcloud:33.0.2-apache@sha256:2176a451aa8fbd9f003a3d745978377e9a5213850e0181f4bcb24be63885175b + # Π’ настоящСС врСмя Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, Ссли ΠΌΡ‹ запускаСм ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ uid 1000, это Π½Π΅ удастся + # https://github.com/nextcloud/docker/blob/05026b029d37fc5cd488d4a4a2a79480e39841ba/21.0/apache/entrypoint.sh#L53-L77 + # user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/nextcloud:/var/www/html + entrypoint: /cron.sh + depends_on: + db: + condition: service_healthy + redis: + condition: service_started diff --git a/nextcloud/exports.sh b/nextcloud/exports.sh new file mode 100644 index 0000000..2e4fec1 --- /dev/null +++ b/nextcloud/exports.sh @@ -0,0 +1,4 @@ +export APP_NEXTCLOUD_PORT="8081" + +local_ips=$(hostname --all-ip-addresses 2> /dev/null) || local_ips="" +export APP_NEXTCLOUD_LOCAL_IPS="${local_ips}" \ No newline at end of file diff --git a/nextcloud/hooks/post-start b/nextcloud/hooks/post-start new file mode 100755 index 0000000..48729ad --- /dev/null +++ b/nextcloud/hooks/post-start @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², Nextcloud +# ЭкзСмпляр Apache Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ настроСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 'LimitRequestBody 0'. +# Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° .htaccess + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" +DOT_HTACCESS_FILE="${APP_DATA_DIR}/data/nextcloud/.htaccess" + +echo "Waiting for file (${DOT_HTACCESS_FILE}) to exist..." + +# ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ Π΄ΠΎ 30 сСкунд... +for attempt in $(seq 1 300); do + if [[ -f "${DOT_HTACCESS_FILE}" ]]; then + echo ".htaccess file exists" + break + fi + sleep 0.1 +done + +if [[ ! -f "${DOT_HTACCESS_FILE}" ]]; then + echo ".htaccess was never created. Something is likely wrong with the Nextcloud app" + exit +fi + +# Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ ΡƒΠΆΠ΅ `LimitRequestBody 0` Π² Ρ„Π°ΠΉΠ»Π΅ .htaccess. +if ! cat "${DOT_HTACCESS_FILE}" | grep --quiet '^LimitRequestBody' +then + echo "Writing 'LimitRequestBody 0' config. to .htaccess" + + echo >> "${DOT_HTACCESS_FILE}" + echo "LimitRequestBody 0" >> "${DOT_HTACCESS_FILE}" +fi \ No newline at end of file diff --git a/nextcloud/hooks/post-update b/nextcloud/hooks/post-update new file mode 100755 index 0000000..2ca24bb --- /dev/null +++ b/nextcloud/hooks/post-update @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ скрипт провСряСт Ρ„Π°ΠΉΠ» Nextcloud config.php Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ 'nextcloud_web_1' Π² массивС Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ…_Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈ добавляСт Π΅Π³ΠΎ, Ссли ΠΎΠ½ Π½Π΅ сущСствуСт. ΠŸΡ€ΠΈ установкС вСрсий Π΄ΠΎ 29.0.4 Π½Π° umbrelOS Π΄ΠΎΠΌΠ΅Π½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ‡Π΅Ρ€Π΅Π· `NEXTCLOUD_TRUSTED_DOMAIN`. +# Π­Ρ‚ΠΎ обрабатываСтся Π² ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠ΅ послС обновлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ мСшаСм процСссу запуска Nextcloud ΠΈ прСдстартовому ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записываСтся config.php. + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" +CONFIG_PHP_FILE="${APP_DATA_DIR}/data/nextcloud/config/config.php" + +DOMAIN_TO_ADD="nextcloud_web_1" + +domain_exists() { + grep -q "'$DOMAIN_TO_ADD'" "$CONFIG_PHP_FILE" +} + +get_highest_index() { + awk -F "=>" '/trusted_domains/ { + max = 0 + while (getline && !/\),/) { + if ($1 ~ /^[[:space:]]*[0-9]+/) { + split($1, a, " ") + if (a[1] > max) max = a[1] + } + } + print max + }' "$CONFIG_PHP_FILE" +} + +if domain_exists; then + echo "Domain '$DOMAIN_TO_ADD' already exists in trusted_domains." +else + echo "Domain '$DOMAIN_TO_ADD' not found. Adding it to trusted_domains..." + + # ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ самый высокий Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ индСкс Π² массивС Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ…_Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². + highest_index=$(get_highest_index) + + # РассчитайтС Π½ΠΎΠ²Ρ‹ΠΉ индСкс для добавлСния + new_index=$((highest_index + 1)) + + # Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ запись Π΄ΠΎΠΌΠ΅Π½Π° + sed -i "/trusted_domains/,/),/ s/),/ $new_index => '$DOMAIN_TO_ADD',\n&/" "$CONFIG_PHP_FILE" + + echo "Domain '$DOMAIN_TO_ADD' added successfully." +fi \ No newline at end of file diff --git a/nextcloud/hooks/pre-start b/nextcloud/hooks/pre-start new file mode 100755 index 0000000..d34f10c --- /dev/null +++ b/nextcloud/hooks/pre-start @@ -0,0 +1,178 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" +DFWEBOS_ROOT="${APP_DATA_DIR}/../.." + +CONFIG_PHP_FILE="${APP_DATA_DIR}/data/nextcloud/config/config.php" + +APP_COMPOSE_FILE="${APP_DATA_DIR}/docker-compose.yml" +APP_COMPOSE_BACKUP_FILE="${APP_DATA_DIR}/docker-compose.yml.bak" + +# ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ список ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ основных вСрсий Nextcloud +VERSIONS=() +VERSIONS+=( "22" ) +VERSIONS+=( "23" ) +VERSIONS+=( "24" ) +VERSIONS+=( "25" ) +VERSIONS+=( "26" ) +VERSIONS+=( "27" ) +VERSIONS+=( "28" ) +VERSIONS+=( "29" ) +VERSIONS+=( "30" ) +VERSIONS+=( "31" ) +VERSIONS+=( "32" ) +VERSIONS+=( "33" ) + +# Бписок ΠΎΠ±Ρ€Π°Π·ΠΎΠ² основных вСрсий Nextcloud для ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ +IMAGES=() +IMAGES+=( "nextcloud:22.2.10-apache@sha256:71c4fb75d7c035ea2c840ebc1adf0da144b0c69e39ce925f4a2ea84b7c06db18" ) +IMAGES+=( "nextcloud:23.0.11-apache@sha256:671ed70c7b204c63cb56d5c0d5dd624abec5eadeacd492191e65e834ddffef26" ) +IMAGES+=( "nextcloud:24.0.7-apache@sha256:f95a21b598b7470b788251db5b0bbe9516992fdb865e7a8978980585e36eb715" ) +IMAGES+=( "nextcloud:25.0.1-apache@sha256:a200319b132c01ec3486e0dcaf052092b560ec30ac9b78115607696dd201f704" ) +IMAGES+=( "nextcloud:26.0.9-apache@sha256:23180fbe8169d428ce0058bfc8d47793628a16e00e40b495d82e4504a124b3fa" ) +IMAGES+=( "nextcloud:27.0.2-apache@sha256:3c8040278bdc991cbc025278eaffc4978a9c2fd4ac34e95b10f646dcadb7c3fb" ) +IMAGES+=( "nextcloud:28.0.3-apache@sha256:ed07f89119dcca2a3711897c48a8ac969542d96d69384445d8fcdc7804ca946f" ) +IMAGES+=( "nextcloud:29.0.7-apache@sha256:3bcd2afa9d02fccc52251712bee1afc4f5891beaf353af47881b7662cd1308f7" ) +IMAGES+=( "nextcloud:30.0.5-apache@sha256:02441f524c6fab3aadbf7157f6e0484927e231d685b248dc0734fa2941b4445e" ) +IMAGES+=( "nextcloud:31.0.9-apache@sha256:11f158050216614d585886600445e0a1b75ee224d6a6dddc5eba996cc9499fa6" ) +IMAGES+=( "nextcloud:32.0.6-apache@sha256:0e1084cc59df77bec7d6bb29d9ac6939da8372512237a9c51f74ff0a970524f2" ) +IMAGES+=( "nextcloud:33.0.2-apache@sha256:2176a451aa8fbd9f003a3d745978377e9a5213850e0181f4bcb24be63885175b" ) + +find_index() { + local -r value="${1}" + shift + local -r array=("$@") + + for i in "${!array[@]}"; do + if [[ "${array[$i]}" == "${value}" ]]; then + echo $i + exit + fi + done + + echo -1 +} + +wait_for_value_in_file () { + local -r file="${1}" + local -r str="${2}" + local -r max_seconds="${3}" + + echo "Searching for '${str}' inside: ${file}" + + for i in $(seq 1 "${max_seconds}"); do + echo "Attempt: ${i}" + if cat "${file}" | grep --quiet "${str}"; then + return + fi + sleep 1 + done + + echo "Failed after ${max_seconds} seconds to find '${str}' inside: ${file}" + exit 1 +} + +check_compose_file () { + local -r image="${1}" + + web_image=$(cat "${APP_COMPOSE_FILE}" 2> /dev/null | yq '.services.web.image' || true) + cron_image=$(cat "${APP_COMPOSE_FILE}" 2> /dev/null | yq '.services.cron.image' || true) + + if [[ "${web_image}" != "${image}" ]] || [[ "${cron_image}" != "${image}" ]]; then + echo "The docker-compose.yml now looks bad. Restoring..." + + mv "${APP_COMPOSE_BACKUP_FILE}" "${APP_COMPOSE_FILE}" + + exit + fi +} + +get_version() { + cat "${CONFIG_PHP_FILE}" | grep "'version'[[:space:]]=>[[:space:]]" | awk -F"'" '{print $4}' +} + +get_major_version() { + echo "${1%%.*}" +} + +# Если Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Nextcloud Π΅Ρ‰Π΅ Π½Π΅ сущСствуСт +# Π’ΠΎΠ³Π΄Π° скорСС всСго это новая установка +# ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Ρ‡Π΅Π³ΠΎ +if [[ ! -f "${CONFIG_PHP_FILE}" ]]; then + exit +fi + +nextcloud_version=$(get_version) +nextcloud_major_version=$(get_major_version "$nextcloud_version") + +echo "Active Nextcloud Version: ${nextcloud_version}" +echo "Active Nextcloud Major Version: ${nextcloud_major_version}" + +# ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π»ΠΈ ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ вСрсии "-patch", ΠΈ Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅, Ссли Π΄Π°, ΠΌΡ‹ позволяСм ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ +# ΠΌΡ‹ добавляСм "-patch" Π² Π²Π΅Ρ€ΡΠΈΡŽ Π½ΠΈΠΆΠ΅ Π²ΠΎ врСмя ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ +if [[ "${nextcloud_version}" == *"-patch"* ]]; then + echo "Active Nextcloud version is undergoing migration. Exiting..." + exit +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π΅ΡΡ‚ΡŒ Π»ΠΈ активная основная вСрсия Π² спискС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ +active_version_idx=$(find_index "${nextcloud_major_version}" "${VERSIONS[@]}") +if [[ "${active_version_idx}" == "-1" ]]; then + echo "Active major version is not supported in the list of migrations" + exit +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π»ΠΈ ΡƒΠΆΠ΅ +if [[ "${VERSIONS[-1]}" == "${nextcloud_major_version}" ]]; then + echo "Nextcloud is already on the latest major version. No migration needed." + exit +fi + +# ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ вСрсии, игнорируя ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вСрсии. +for i in "${!VERSIONS[@]}"; do + [[ "${i}" -le "${active_version_idx}" ]] && continue + + version="${VERSIONS[$i]}" + image="${IMAGES[$i]}" + + echo "Migrating to major version: ${version} (${image})" + echo + + cp --archive "${APP_COMPOSE_FILE}" "${APP_COMPOSE_BACKUP_FILE}" + + yq -i ".services.web.image = \"${image}\"" "${APP_COMPOSE_FILE}" + yq -i ".services.cron.image = \"${image}\"" "${APP_COMPOSE_FILE}" + + check_compose_file "${image}" + + nextcloud_version=$(get_version) + sed -i "s/${nextcloud_version}/${nextcloud_version}-patch/" "${CONFIG_PHP_FILE}" + + "${DFWEBOS_ROOT}/scripts/app" start nextcloud + + echo "Waiting for update to complete..." + + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° Nextcloud ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌ обслуТивания. + # Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ процСсс обновлСния начался. + wait_for_value_in_file "${CONFIG_PHP_FILE}" "'maintenance'[[:space:]]=>[[:space:]]true" 300 + + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° Nextcloud Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° обслуТивания. + # Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ процСсса обновлСния + wait_for_value_in_file "${CONFIG_PHP_FILE}" "'maintenance'[[:space:]]=>[[:space:]]false" 300 + + "${DFWEBOS_ROOT}/scripts/app" stop nextcloud + + # Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ вСрсии + # Если это Π½Π΅ послСднСС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ + # Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π΅Π³ΠΎ придСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ + if [[ "${version}" != "${VERSIONS[-1]}" ]]; then + echo "Deleting intermediary image: ${image}" + + docker rmi "${image}" || true + fi +done + +rm -rf "${APP_COMPOSE_BACKUP_FILE}" + +echo "Migration completed successfully" diff --git a/nginx-proxy-manager/data/letsencrypt/.gitkeep b/nginx-proxy-manager/data/letsencrypt/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nginx-proxy-manager/data/npm-data/.gitkeep b/nginx-proxy-manager/data/npm-data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nginx-proxy-manager/dfwebos-app.yml b/nginx-proxy-manager/dfwebos-app.yml new file mode 100644 index 0000000..0cbb9d3 --- /dev/null +++ b/nginx-proxy-manager/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1 +id: nginx-proxy-manager +name: Nginx Proxy Manager +tagline: Π›Π΅Π³ΠΊΠΎ ΠΈ бСзопасно раскрывайтС свои услуги +category: networking +version: "2.14.0" +port: 4498 +description: >- + Π›Π΅Π³ΠΊΠΎ ΠΈ бСзопасно Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ свои прилоТСния Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. + + + ⚠️ Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, публикуя прилоТСния Π² общСдоступном Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Ρ‰ΠΈΡ‚Ρƒ Π²Ρ…ΠΎΠ΄Π° Π² систСму, ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ раскрытия ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΌΠ΅Ρ€ бСзопасности. + + + πŸ”§ Nginx Proxy Manager ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΡ€Ρ‚ 40080 для HTTP (Π½Π΅Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ) Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ ΠΏΠΎΡ€Ρ‚ 40443 для HTTPS (Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ) Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. + Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваши прилоТСния доступными ΠΈΠ· общСдоступного Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅. + ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ внСшний ΠΏΠΎΡ€Ρ‚ 80 (HTTP) Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ 40080 ΠΈ внСшний ΠΏΠΎΡ€Ρ‚ 443 (HTTPS) Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ 40443. + + + πŸ”ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + + - ΠšΡ€Π°ΡΠΈΠ²Ρ‹ΠΉ ΠΈ бСзопасный интСрфСйс администратора Π½Π° основС Tabler + - Π›Π΅Π³ΠΊΠΎ создавайтС Π΄ΠΎΠΌΠ΅Π½Ρ‹ пСрСадрСсации, пСрСнаправлСния, ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈ хосты 404, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ зная ΠΎ Nginx. + - БСсплатный SSL с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Let's Encrypt ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ свои собствСнныС SSL-сСртификаты. + - Бписки доступа ΠΈ базовая HTTP-аутСнтификация для Π²Π°ΡˆΠΈΡ… хостов. + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ конфигурация Nginx доступна для ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΆΡƒΡ€Π½Π°Π» Π°ΡƒΠ΄ΠΈΡ‚Π° +developer: Jamie Curnow +website: https://nginxproxymanager.com/ +submitter: Sahil Phule +submission: https://github.com/getumbrel/dfwebos-apps/pull/1296 +repo: https://github.com/NginxProxyManager/nginx-proxy-manager +support: https://github.com/NginxProxyManager/nginx-proxy-manager/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ исправлСний ошибок. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ конфигурация прокси-хоста Β«Π”ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ восходящим пСрСсылаСмым Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌ ProtoΒ». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ»Π°Π³ΠΈΠ½ DNS для ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ArvanCloud. + - ОбновлСн словацкий ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сСртификатов. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/NginxProxyManager/nginx-proxy-manager/releases. +dependencies: [] +path: "" diff --git a/nginx-proxy-manager/docker-compose.yml b/nginx-proxy-manager/docker-compose.yml new file mode 100644 index 0000000..b1baaad --- /dev/null +++ b/nginx-proxy-manager/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: nginx-proxy-manager_web_1 + APP_PORT: 81 + + web: + image: jc21/nginx-proxy-manager:2.14.0@sha256:2aa69b382a384b676c0d4f1d6f2eac40ecd478fcf7af1cfb3f9f1d3cd0c81e12 + hostname: nginx-proxy-manager_web_1 + restart: on-failure + ports: + - 40080:80 + - 40443:443 + volumes: + - ${APP_DATA_DIR}/data/npm-data:/data + - ${APP_DATA_DIR}/data/letsencrypt:/etc/letsencrypt + + docker-host: + image: qoomon/docker-host:3.3.1@sha256:ec9d214d7fa88932e9186ca2f4419d44661376929931248525b08e7fa9e270f7 + hostname: $DEVICE_DOMAIN_NAME + cap_add: + - NET_ADMIN + - NET_RAW + restart: on-failure diff --git a/nitter/data/nitter/.gitkeep b/nitter/data/nitter/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nitter/data/redis/.gitkeep b/nitter/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nitter/dfwebos-app.yml b/nitter/dfwebos-app.yml new file mode 100644 index 0000000..ec9f9af --- /dev/null +++ b/nitter/dfwebos-app.yml @@ -0,0 +1,75 @@ +manifestVersion: 1.2 +id: nitter +category: social +name: Nitter +version: "38985af" +tagline: ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΠΉΡ‚Π΅ Twitter Π±Π΅Π· отслСТивания ΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ +description: > + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Nitter большС Π½Π΅ поддСрТиваСтся ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ·-Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² API X. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ посСтитС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GitHub. + + + Nitter β€” это бСсплатная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Twitter с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ориСнтированная Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + НСвозмоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Twitter Π±Π΅Π· Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ JavaScript. Для людСй, заботящихся ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ JavaScript ΠΈ отслСТивания Π½Π° основС IP Π²Π°ΠΆΠ½ΠΎ, Π½ΠΎ Π±Π΅Π· использования VPN ΠΈ uBlock/uMatrix это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ VPN ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, вас ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ ΠΏΠ°Π»ΡŒΡ†Π° вашСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π±Π΅Π· нСобходимости JavaScript. ВсС это стало особСнно Π²Π°ΠΆΠ½Ρ‹ΠΌ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Twitter лишил ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ возмоТности ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ ΠΈΡ… Π΄Π°Π½Π½Ρ‹Π΅ рСкламодатСлям. + + + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ экзСмпляр Nitter, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π° вашСм DFWebOS, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π’Π²ΠΈΡ‚Ρ‚Π΅Ρ€ Π±Π΅Π· JavaScript, сохраняя ΠΏΡ€ΠΈ этом свою ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Помимо уваТСния вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Nitter Π² срСднСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 15 Ρ€Π°Π· Π»Π΅Π³Ρ‡Π΅ Twitter ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв обслуТиваСт страницы быстрСС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡˆΠΊΠ°Π»Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² 2–4 Ρ€Π°Π·Π° быстрСС). + + + Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​простая систСма ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Twitter, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‡ΠΈΡΡ‚ΡƒΡŽ Ρ…Ρ€ΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡˆΠΊΠ°Π»Ρƒ Π±Π΅Π· нСобходимости ΠΈΠΌΠ΅Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись Twitter. + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + - НСт JavaScript ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ + + - ВсС запросы проходят Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ обращаСтся ΠΊ Twitter. + + - НС позволяСт Twitter ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ваш IP-адрСс ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ ΠΏΠ°Π»ΡŒΡ†Π° JavaScript. + + - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Twitter API (Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ скорости ΠΈΠ»ΠΈ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°) + + - Π›Π΅Π³ΠΊΠΈΠΉ вСс (для @nim_lang, 60 ΠšΠ‘ ΠΏΡ€ΠΎΡ‚ΠΈΠ² 784 ΠšΠ‘ Π½Π° twitter.com) + + - RSS-ΠΊΠ°Π½Π°Π»Ρ‹ + + - Π’Π΅ΠΌΡ‹ + + - Мобильная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° (Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½) + + - ЛицСнзия AGPLv3, ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Π΅ экзСмпляры Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹. +developer: Zedeus +website: https://github.com/zedeus +dependencies: [] +repo: https://github.com/zedeus/nitter +support: https://matrix.to/#/#nitter:matrix.org +port: 8420 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: > + - исправлСна β€‹β€‹ΠΎΡˆΠΈΠ±ΠΊΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ + + - исправлСна β€‹β€‹ΠΎΡˆΠΈΠ±ΠΊΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ Π² профилях ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΡΠΊΡ€Ρ‹Π²Π°Π»ΠΈΡΡŒ + + - Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π½Π°Π΄Π³Ρ€ΠΎΠ±ΠΈΠ΅ для Ρ‚Π²ΠΈΡ‚ΠΎΠ² подписчиков. + + - Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ Ρ‚Π²ΠΈΡ‚ ΠΈΠ· тСста ΠΊΠ°Ρ€Ρ‚Ρ‹. + + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹ΠΉ сбой Β«TweetPreviewDisplayΒ». + + - ОбновлСниС Π·Π½Π°Ρ‡ΠΊΠΎΠ² + + - Π—Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ поиска ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹. + + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс дСйствий для запуска тСстов Selenium. + + - HLS Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС Π² описании ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ. +submitter: Jasper +submission: https://github.com/getumbrel/dfwebos-apps/pull/128 +disabled: true \ No newline at end of file diff --git a/nitter/docker-compose.yml b/nitter/docker-compose.yml new file mode 100644 index 0000000..72b507a --- /dev/null +++ b/nitter/docker-compose.yml @@ -0,0 +1,32 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: nitter_web_1 + APP_PORT: 8080 + + web: + image: ceramicwhite/nitter:build-38985af@sha256:594a184c3a834c29957ddd917800d61f3d560411d26fa6cf389bef350d4c4ac6 + restart: on-failure + stop_grace_period: 1m + init: true + user: 1000:1000 + command: > + /bin/sh -c "sed -i + -e 's/localhost/nitter_redis_1/g' + -e 's/redisPassword = \"\"/redisPassword = \"moneyprintergobrrr\"/g' + -e 's/theme = \"Nitter\"/theme = \"auto_(twitter)\"/g' + /src/nitter.conf + && ./nitter" + depends_on: + - redis + + redis: + image: redis:6.2.2-buster@sha256:e10f55f92478715698a2cef97c2bbdc48df2a05081edd884938903aa60df6396 + restart: on-failure + stop_grace_period: 1m + user: 1000:1000 + command: "redis-server --save 60 1 --loglevel warning --requirepass moneyprintergobrrr" + volumes: + - ${APP_DATA_DIR}/data/redis:/data \ No newline at end of file diff --git a/nocodb/data/app/.gitkeep b/nocodb/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nocodb/data/db/.gitkeep b/nocodb/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nocodb/dfwebos-app.yml b/nocodb/dfwebos-app.yml new file mode 100644 index 0000000..2dd6295 --- /dev/null +++ b/nocodb/dfwebos-app.yml @@ -0,0 +1,54 @@ +manifestVersion: 1 +id: nocodb +category: files +name: NocoDB +version: "2026.04.3" +tagline: ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π±Π΅Π· ΠΊΠΎΠ΄Π° для управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, автономная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Airtable +description: >- + NocoDB β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹. Он позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния Π±Π΅Π· ΠΊΠΎΠ΄Π° ΠΏΠΎΠ²Π΅Ρ€Ρ… Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ MySQL, PostgreSQL, SQLite, ΠΈ Π΄Π°ΠΆΠ΅ интСрфСйсы, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Airtable, для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… структур Π΄Π°Π½Π½Ρ‹Ρ…. + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + πŸ“Š Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс элСктронных Ρ‚Π°Π±Π»ΠΈΡ†: Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс с Ρ‚Π°ΠΊΠΈΠΌΠΈ функциями, ΠΊΠ°ΠΊ сортировка, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ, скрытиС ΠΈ спСциализированныС Ρ‚ΠΈΠΏΡ‹ столбцов (Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, JSON, Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³, Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°). + + + πŸ€– ВстроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСрвСра MCP: Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π°Π³Π΅Π½Ρ‚ΠΎΠ² ИИ (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Claude ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ LLM) для бСзопасного взаимодСйствия с записями вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° контСкста ΠΌΠΎΠ΄Π΅Π»ΠΈ. + + + ⚑ REST API: ΠΎΠ½ автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ API-интСрфСйсы REST для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, поэтому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ срСдства Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ собствСнныС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы. + + + πŸ”„ Π’Π΅Π±-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΈ: запускайтС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ со сторонними прилоТСниями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Slack, Discord ΠΈ элСктронная ΠΏΠΎΡ‡Ρ‚Π°, нСпосрСдствСнно ΠΈΠ· событий вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. + + + πŸ”Œ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ любой Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠ»ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… SQL (PostgreSQL, MySQL, SQLite) ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ. + + + 🎨 НастраиваСмыС прСдставлСния: ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ прСдставлСниями Β«Π‘Π΅Ρ‚ΠΊΠ°Β», «ГалСрСя», «Канбан» ΠΈ Β«Π€ΠΎΡ€ΠΌΠ°Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. + + + πŸ›‘οΈ Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Ρ€ΠΎΠ»ΠΈ: NocoDB ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, элСмСнты управлСния доступом ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ подходящим для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ использования. +releaseNotes: >- + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС записи ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ послС обновлСния Π΄ΠΎ 2026.04.2 для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ SQLite. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой сСгмСнтации Π²ΠΎ врСмя запуска Π½Π° устройствах ARM64. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/nocodb/nocodb/releases. +developer: NocoDB Inc. +website: https://nocodb.com +dependencies: [] +repo: https://github.com/nocodb/nocodb +support: https://github.com/nocodb/nocodb/issues +port: 2183 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: cergmin +submission: https://github.com/getumbrel/dfwebos-apps/pull/4195 diff --git a/nocodb/docker-compose.yml b/nocodb/docker-compose.yml new file mode 100644 index 0000000..397850e --- /dev/null +++ b/nocodb/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: nocodb_app_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + + app: + image: nocodb/nocodb:2026.04.3@sha256:98090d707ab36ad0fe62dac8c8416b4ebf6ee939a8f851676b880b5ac159a74a + restart: on-failure + user: "1000:1000" + depends_on: + postgres: + condition: service_healthy + environment: + NC_DB: "pg://nocodb_postgres_1:5432?u=nocodb&p=itworkslocally&d=nocodb" + volumes: + - ${APP_DATA_DIR}/data/app:/usr/app/data + + postgres: + image: postgres:18.3-alpine@sha256:52098013b4b64a746626437d38afc03cabff6cdeb4d3d92e2342aa95f0ce56ea + restart: on-failure + stop_grace_period: 1m + environment: + POSTGRES_DB: nocodb + POSTGRES_USER: nocodb + POSTGRES_PASSWORD: itworkslocally + PGDATA: /data/pgdata + healthcheck: + test: "pg_isready -U \"$$POSTGRES_USER\" -d \"$$POSTGRES_DB\"" + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + volumes: + - ${APP_DATA_DIR}/data/db:/data diff --git a/node-red-standalone/data/settings.js b/node-red-standalone/data/settings.js new file mode 100644 index 0000000..2525b31 --- /dev/null +++ b/node-red-standalone/data/settings.js @@ -0,0 +1,489 @@ +/** + * This is the default settings file provided by Node-RED. + * + * It can contain any valid JavaScript code that will get run when Node-RED + * is started. + * + * Lines that start with // are commented out. + * Each entry should be separated from the entries above and below by a comma ',' + * + * For more information about individual settings, refer to the documentation: + * https://nodered.org/docs/user-guide/runtime/configuration + * + * The settings are split into the following sections: + * - Flow File and User Directory Settings + * - Security + * - Server Settings + * - Runtime Settings + * - Editor Settings + * - Node Settings + * + **/ + +const fs = require("fs"); +const path = require("path"); + +module.exports = { + +/******************************************************************************* + * Flow File and User Directory Settings + * - flowFile + * - credentialSecret + * - flowFilePretty + * - userDir + * - nodesDir + ******************************************************************************/ + + /** The file containing the flows. If not set, defaults to flows_.json **/ + flowFile: 'flows.json', + + /** By default, credentials are encrypted in storage using a generated key. To + * specify your own secret, set the following property. + * If you want to disable encryption of credentials, set this property to false. + * Note: once you set this property, do not change it - doing so will prevent + * node-red from being able to decrypt your existing credentials and they will be + * lost. + */ + //credentialSecret: "a-secret-key", + + /** By default, the flow JSON will be formatted over multiple lines making + * it easier to compare changes when using version control. + * To disable pretty-printing of the JSON set the following property to false. + */ + flowFilePretty: true, + + /** By default, all user data is stored in a directory called `.node-red` under + * the user's home directory. To use a different location, the following + * property can be used + */ + //userDir: '/home/nol/.node-red/', + + /** Node-RED scans the `nodes` directory in the userDir to find local node files. + * The following property can be used to specify an additional directory to scan. + */ + //nodesDir: '/home/nol/.node-red/nodes', + +/******************************************************************************* + * Security + * - adminAuth + * - https + * - httpsRefreshInterval + * - requireHttps + * - httpNodeAuth + * - httpStaticAuth + ******************************************************************************/ + + /** To password protect the Node-RED editor and admin API, the following + * property can be used. See http://nodered.org/docs/security.html for details. + */ + /* + adminAuth: { + type: "credentials", + users: [ + + ].filter(Boolean) + }, + */ + + /** The following property can be used to enable HTTPS + * This property can be either an object, containing both a (private) key + * and a (public) certificate, or a function that returns such an object. + * See http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener + * for details of its contents. + */ + + /** Option 1: static object */ + //https: { + // key: require("fs").readFileSync('privkey.pem'), + // cert: require("fs").readFileSync('cert.pem') + //}, + + /** Option 2: function that returns the HTTP configuration object */ + // https: function() { + // // This function should return the options object, or a Promise + // // that resolves to the options object + // return { + // key: require("fs").readFileSync('privkey.pem'), + // cert: require("fs").readFileSync('cert.pem') + // } + // }, + + /** If the `https` setting is a function, the following setting can be used + * to set how often, in hours, the function will be called. That can be used + * to refresh any certificates. + */ + //httpsRefreshInterval : 12, + + /** The following property can be used to cause insecure HTTP connections to + * be redirected to HTTPS. + */ + //requireHttps: true, + + /** To password protect the node-defined HTTP endpoints (httpNodeRoot), + * including node-red-dashboard, or the static content (httpStatic), the + * following properties can be used. + * The `pass` field is a bcrypt hash of the password. + * See http://nodered.org/docs/security.html#generating-the-password-hash + */ + //httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, + //httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, + +/******************************************************************************* + * Server Settings + * - uiPort + * - uiHost + * - apiMaxLength + * - httpServerOptions + * - httpAdminRoot + * - httpAdminMiddleware + * - httpNodeRoot + * - httpNodeCors + * - httpNodeMiddleware + * - httpStatic + ******************************************************************************/ + + /** the tcp port that the Node-RED web server is listening on */ + uiPort: process.env.PORT || 1880, + + /** By default, the Node-RED UI accepts connections on all IPv4 interfaces. + * To listen on all IPv6 addresses, set uiHost to "::", + * The following property can be used to listen on a specific interface. For + * example, the following would only allow connections from the local machine. + */ + //uiHost: "127.0.0.1", + + /** The maximum size of HTTP request that will be accepted by the runtime api. + * Default: 5mb + */ + //apiMaxLength: '5mb', + + /** The following property can be used to pass custom options to the Express.js + * server used by Node-RED. For a full list of available options, refer + * to http://expressjs.com/en/api.html#app.settings.table + */ + //httpServerOptions: { }, + + /** By default, the Node-RED UI is available at http://localhost:1880/ + * The following property can be used to specify a different root path. + * If set to false, this is disabled. + */ + //httpAdminRoot: '/admin', + + /** The following property can be used to add a custom middleware function + * in front of all admin http routes. For example, to set custom http + * headers. It can be a single function or an array of middleware functions. + */ + // httpAdminMiddleware: function(req,res,next) { + // // Set the X-Frame-Options header to limit where the editor + // // can be embedded + // //res.set('X-Frame-Options', 'sameorigin'); + // next(); + // }, + + + /** Some nodes, such as HTTP In, can be used to listen for incoming http requests. + * By default, these are served relative to '/'. The following property + * can be used to specifiy a different root path. If set to false, this is + * disabled. + */ + //httpNodeRoot: '/red-nodes', + + /** The following property can be used to configure cross-origin resource sharing + * in the HTTP nodes. + * See https://github.com/troygoode/node-cors#configuration-options for + * details on its contents. The following is a basic permissive set of options: + */ + //httpNodeCors: { + // origin: "*", + // methods: "GET,PUT,POST,DELETE" + //}, + + /** If you need to set an http proxy please set an environment variable + * called http_proxy (or HTTP_PROXY) outside of Node-RED in the operating system. + * For example - http_proxy=http://myproxy.com:8080 + * (Setting it here will have no effect) + * You may also specify no_proxy (or NO_PROXY) to supply a comma separated + * list of domains to not proxy, eg - no_proxy=.acme.co,.acme.co.uk + */ + + /** The following property can be used to add a custom middleware function + * in front of all http in nodes. This allows custom authentication to be + * applied to all http in nodes, or any other sort of common request processing. + * It can be a single function or an array of middleware functions. + */ + //httpNodeMiddleware: function(req,res,next) { + // // Handle/reject the request, or pass it on to the http in node by calling next(); + // // Optionally skip our rawBodyParser by setting this to true; + // //req.skipRawBodyParser = true; + // next(); + //}, + + /** When httpAdminRoot is used to move the UI to a different root path, the + * following property can be used to identify a directory of static content + * that should be served at http://localhost:1880/. + */ + //httpStatic: '/home/nol/node-red-static/', + +/******************************************************************************* + * Runtime Settings + * - lang + * - logging + * - contextStorage + * - exportGlobalContextKeys + * - externalModules + ******************************************************************************/ + + /** Uncomment the following to run node-red in your preferred language. + * Available languages include: en-US (default), ja, de, zh-CN, zh-TW, ru, ko + * Some languages are more complete than others. + */ + // lang: "de", + + /** Configure the logging output */ + logging: { + /** Only console logging is currently supported */ + console: { + /** Level of logging to be recorded. Options are: + * fatal - only those errors which make the application unusable should be recorded + * error - record errors which are deemed fatal for a particular request + fatal errors + * warn - record problems which are non fatal + errors + fatal errors + * info - record information about the general running of the application + warn + error + fatal errors + * debug - record information which is more verbose than info + info + warn + error + fatal errors + * trace - record very detailed logging + debug + info + warn + error + fatal errors + * off - turn off all logging (doesn't affect metrics or audit) + */ + level: "info", + /** Whether or not to include metric events in the log output */ + metrics: false, + /** Whether or not to include audit events in the log output */ + audit: false + } + }, + + /** Context Storage + * The following property can be used to enable context storage. The configuration + * provided here will enable file-based context that flushes to disk every 30 seconds. + * Refer to the documentation for further options: https://nodered.org/docs/api/context/ + */ + //contextStorage: { + // default: { + // module:"localfilesystem" + // }, + //}, + + /** `global.keys()` returns a list of all properties set in global context. + * This allows them to be displayed in the Context Sidebar within the editor. + * In some circumstances it is not desirable to expose them to the editor. The + * following property can be used to hide any property set in `functionGlobalContext` + * from being list by `global.keys()`. + * By default, the property is set to false to avoid accidental exposure of + * their values. Setting this to true will cause the keys to be listed. + */ + exportGlobalContextKeys: false, + + /** Configure how the runtime will handle external npm modules. + * This covers: + * - whether the editor will allow new node modules to be installed + * - whether nodes, such as the Function node are allowed to have their + * own dynamically configured dependencies. + * The allow/denyList options can be used to limit what modules the runtime + * will install/load. It can use '*' as a wildcard that matches anything. + */ + externalModules: { + // autoInstall: false, /** Whether the runtime will attempt to automatically install missing modules */ + // autoInstallRetry: 30, /** Interval, in seconds, between reinstall attempts */ + // palette: { /** Configuration for the Palette Manager */ + // allowInstall: true, /** Enable the Palette Manager in the editor */ + // allowUpload: true, /** Allow module tgz files to be uploaded and installed */ + // allowList: [], + // denyList: [] + // }, + // modules: { /** Configuration for node-specified modules */ + // allowInstall: true, + // allowList: [], + // denyList: [] + // } + }, + + +/******************************************************************************* + * Editor Settings + * - disableEditor + * - editorTheme + ******************************************************************************/ + + /** The following property can be used to disable the editor. The admin API + * is not affected by this option. To disable both the editor and the admin + * API, use either the httpRoot or httpAdminRoot properties + */ + //disableEditor: false, + + /** Customising the editor + * See https://nodered.org/docs/user-guide/runtime/configuration#editor-themes + * for all available options. + */ + editorTheme: { + /** The following property can be used to set a custom theme for the editor. + * See https://github.com/node-red-contrib-themes/theme-collection for + * a collection of themes to chose from. + */ + //theme: "", + palette: { + /** The following property can be used to order the categories in the editor + * palette. If a node's category is not in the list, the category will get + * added to the end of the palette. + * If not set, the following default order is used: + */ + //categories: ['subflows', 'common', 'function', 'network', 'sequence', 'parser', 'storage'], + }, + projects: { + /** To enable the Projects feature, set this value to true */ + enabled: false, + workflow: { + /** Set the default projects workflow mode. + * - manual - you must manually commit changes + * - auto - changes are automatically committed + * This can be overridden per-user from the 'Git config' + * section of 'User Settings' within the editor + */ + mode: "manual" + } + }, + codeEditor: { + /** Select the text editor component used by the editor. + * Defaults to "ace", but can be set to "ace" or "monaco" + */ + lib: "ace", + options: { + /** The follow options only apply if the editor is set to "monaco" + * + * theme - must match the file name of a theme in + * packages/node_modules/@node-red/editor-client/src/vendor/monaco/dist/theme + * e.g. "tomorrow-night", "upstream-sunburst", "github", "my-theme" + */ + theme: "vs", + /** other overrides can be set e.g. fontSize, fontFamily, fontLigatures etc. + * for the full list, see https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.istandaloneeditorconstructionoptions.html + */ + //fontSize: 14, + //fontFamily: "Cascadia Code, Fira Code, Consolas, 'Courier New', monospace", + //fontLigatures: true, + } + } + }, + +/******************************************************************************* + * Node Settings + * - fileWorkingDirectory + * - functionGlobalContext + * - functionExternalModules + * - nodeMessageBufferMaxLength + * - ui (for use with Node-RED Dashboard) + * - debugUseColors + * - debugMaxLength + * - execMaxBufferSize + * - httpRequestTimeout + * - mqttReconnectTime + * - serialReconnectTime + * - socketReconnectTime + * - socketTimeout + * - tcpMsgQueueSize + * - inboundWebSocketTimeout + * - tlsConfigDisableLocalFiles + * - webSocketNodeVerifyClient + ******************************************************************************/ + + /** The working directory to handle relative file paths from within the File nodes + * defaults to the working directory of the Node-RED process. + */ + //fileWorkingDirectory: "", + + /** Allow the Function node to load additional npm modules directly */ + functionExternalModules: true, + + /** The following property can be used to set predefined values in Global Context. + * This allows extra node modules to be made available with in Function node. + * For example, the following: + * functionGlobalContext: { os:require('os') } + * will allow the `os` module to be accessed in a Function node using: + * global.get("os") + */ + functionGlobalContext: { + // os:require('os'), + }, + + /** The maximum number of messages nodes will buffer internally as part of their + * operation. This applies across a range of nodes that operate on message sequences. + * defaults to no limit. A value of 0 also means no limit is applied. + */ + //nodeMessageBufferMaxLength: 0, + + /** If you installed the optional node-red-dashboard you can set it's path + * relative to httpNodeRoot + * Other optional properties include + * readOnly:{boolean}, + * middleware:{function or array}, (req,res,next) - http middleware + * ioMiddleware:{function or array}, (socket,next) - socket.io middleware + */ + //ui: { path: "ui" }, + + /** Colourise the console output of the debug node */ + //debugUseColors: true, + + /** The maximum length, in characters, of any message sent to the debug sidebar tab */ + debugMaxLength: 1000, + + /** Maximum buffer size for the exec node. Defaults to 10Mb */ + //execMaxBufferSize: 10000000, + + /** Timeout in milliseconds for HTTP request connections. Defaults to 120s */ + //httpRequestTimeout: 120000, + + /** Retry time in milliseconds for MQTT connections */ + mqttReconnectTime: 15000, + + /** Retry time in milliseconds for Serial port connections */ + serialReconnectTime: 15000, + + /** Retry time in milliseconds for TCP socket connections */ + //socketReconnectTime: 10000, + + /** Timeout in milliseconds for TCP server socket connections. Defaults to no timeout */ + //socketTimeout: 120000, + + /** Maximum number of messages to wait in queue while attempting to connect to TCP socket + * defaults to 1000 + */ + //tcpMsgQueueSize: 2000, + + /** Timeout in milliseconds for inbound WebSocket connections that do not + * match any configured node. Defaults to 5000 + */ + //inboundWebSocketTimeout: 5000, + + /** To disable the option for using local files for storing keys and + * certificates in the TLS configuration node, set this to true. + */ + //tlsConfigDisableLocalFiles: true, + + /** The following property can be used to verify websocket connection attempts. + * This allows, for example, the HTTP request headers to be checked to ensure + * they include valid authentication information. + */ + //webSocketNodeVerifyClient: function(info) { + // /** 'info' has three properties: + // * - origin : the value in the Origin header + // * - req : the HTTP request + // * - secure : true if req.connection.authorized or req.connection.encrypted is set + // * + // * The function should return true if the connection should be accepted, false otherwise. + // * + // * Alternatively, if this function is defined to accept a second argument, callback, + // * it can be used to verify the client asynchronously. + // * The callback takes three arguments: + // * - result : boolean, whether to accept the connection or not + // * - code : if result is false, the HTTP error status to return + // * - reason: if result is false, the HTTP reason string to return + // */ + //}, +} diff --git a/node-red-standalone/dfwebos-app.yml b/node-red-standalone/dfwebos-app.yml new file mode 100644 index 0000000..22af303 --- /dev/null +++ b/node-red-standalone/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: node-red-standalone +category: automation +name: "Node-RED" +version: "4.1.8" +tagline: Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π²Π΅Ρ‰Π΅ΠΉ +description: >- + Node-RED β€” это инструмСнт Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ оборудования. + устройства, API ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисы Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΈ интСрСсными способами. + + + Он прСдоставляСт Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π½Π° основС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΡƒΠ·Π»ΠΎΠ² Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² срСдС выполнСния ΠΎΠ΄Π½ΠΈΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ. ВстроСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. + + + ΠŸΠΎΡ‚ΠΎΠΊΠΈ, созданныС Π² Node-RED, хранятся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JSON, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для совмСстного использования с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Онлайн-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² позволяСт Π²Π°ΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своими Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ со всСм ΠΌΠΈΡ€ΠΎΠΌ. +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΈ исправлСния ошибок: + - Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌ Ρ‚Π΅ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ настройки ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ мСню. + - Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ скрытиС Ρ€Π°Π·Π΄Π΅Π»Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ справки Node-RED. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° навигация ΠΏΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΌ спискам с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиш со стрСлками. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π° Β«ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΊ...Β» Π² ΡƒΠ·Π»Π°Ρ… TCP с использованиСм TLS. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ дСйствия Β«ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒΒ» ΠΈ Β«ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ послСднюю Π²ΠΊΠ»Π°Π΄ΠΊΡƒΒ» для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π·Π½Π°Ρ‡ΠΊΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ², содСрТащиС ΠΊΠΎΠ΄. + - ОбновлСна Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ tar для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/node-red/node-red/releases. +developer: OpenJS Foundation +website: https://nodered.org +dependencies: [] +repo: https://github.com/node-red/node-red +support: https://nodered.org/about/community/slack/ +port: 1881 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/38 diff --git a/node-red-standalone/docker-compose.yml b/node-red-standalone/docker-compose.yml new file mode 100644 index 0000000..0d25975 --- /dev/null +++ b/node-red-standalone/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3.7" + +services: + web: + image: nodered/node-red:4.1.8@sha256:a5cb1dcdf90a7148b02b9dba4acfe6bd98c7bf3bff1e845dcdecfd7af3a95a29 + network_mode: host + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + environment: + PORT: 1881 diff --git a/node-red/data/admin-credentials.json b/node-red/data/admin-credentials.json new file mode 100644 index 0000000..f0a61c8 --- /dev/null +++ b/node-red/data/admin-credentials.json @@ -0,0 +1 @@ +{"username":"dfwebos","# TODO:": "APP_PASSWORD","password":"$2a$08$qlczmePU/RzbHHBFrsefkONVqflomTis92iH.pdOVItq72W2G.bGu","permissions":"*"} diff --git a/node-red/data/flows.json b/node-red/data/flows.json new file mode 100644 index 0000000..ad22197 --- /dev/null +++ b/node-red/data/flows.json @@ -0,0 +1,221 @@ +[ + { + "id": "f50232d5dd80c5b3", + "type": "tab", + "label": "Flow 1", + "disabled": false, + "info": "" + }, + { + "id": "54f43e91fb562ca8", + "type": "debug", + "z": "f50232d5dd80c5b3", + "name": "msg.payload (see sidebar debug tab)", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 710, + "y": 420, + "wires": [] + }, + { + "id": "fcef7a58987b1ae5", + "type": "http request", + "z": "f50232d5dd80c5b3", + "name": "", + "method": "POST", + "ret": "obj", + "paytoqs": "body", + "url": "", + "tls": "", + "persist": false, + "proxy": "", + "authType": "", + "x": 450, + "y": 420, + "wires": [ + [ + "54f43e91fb562ca8" + ] + ] + }, + { + "id": "2679e2b0b4a4e5f2", + "type": "inject", + "z": "f50232d5dd80c5b3", + "name": "getblockchaininfo request", + "props": [ + { + "p": "payload" + }, + { + "p": "url", + "v": "\"http://\" & $env(\"BITCOIN_IP\") & \":\" & $env(\"BITCOIN_RPC_PORT\")", + "vt": "jsonata" + }, + { + "p": "headers", + "v": "{\t \"Authorization\": \"Basic \" & $base64encode($env(\"BITCOIN_RPC_USER\") & \":\" & $env(\"BITCOIN_RPC_PASS\"))\t}", + "vt": "jsonata" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "{\"jsonrpc\":\"1.0\",\"id\":\"test\",\"method\":\"getblockchaininfo\",\"params\":[]}", + "payloadType": "json", + "x": 230, + "y": 420, + "wires": [ + [ + "fcef7a58987b1ae5" + ] + ] + }, + { + "id": "44b30c110ae098b0", + "type": "function", + "z": "f50232d5dd80c5b3", + "name": "build admin-credentials.json", + "func": "msg.payload = JSON.stringify({\n username: \"umbrel\",\n password: bcryptjs.hashSync(msg.payload, 8),\n permissions: \"*\",\n});\nreturn msg;\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [ + { + "var": "bcryptjs", + "module": "bcryptjs" + } + ], + "x": 400, + "y": 180, + "wires": [ + [ + "4da8c916b9891e5b" + ] + ] + }, + { + "id": "7d4f1cdb5d0f6875", + "type": "inject", + "z": "f50232d5dd80c5b3", + "name": "Password", + "props": [ + { + "p": "payload" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "moneyprintergobrrr", + "payloadType": "str", + "x": 180, + "y": 180, + "wires": [ + [ + "44b30c110ae098b0" + ] + ], + "info": "hello" + }, + { + "id": "34b08a2abb3c4418", + "type": "comment", + "z": "f50232d5dd80c5b3", + "name": "Welcome to Node RED", + "info": "# This is an experimental app.\n## Use at your own risk.\n", + "x": 160, + "y": 40, + "wires": [] + }, + { + "id": "4da8c916b9891e5b", + "type": "file", + "z": "f50232d5dd80c5b3", + "name": "write /data/admin-credentials.json", + "filename": "/data/admin-credentials.json", + "appendNewline": true, + "createDir": false, + "overwriteFile": "true", + "encoding": "none", + "x": 520, + "y": 240, + "wires": [ + [ + "325641493682ca2a" + ] + ] + }, + { + "id": "9a14303ee07169ab", + "type": "comment", + "z": "f50232d5dd80c5b3", + "name": "Here is an example flow to change the password - double-click the Password node to choose a new password.", + "info": "", + "x": 480, + "y": 100, + "wires": [] + }, + { + "id": "11440c02fac4477f", + "type": "comment", + "z": "f50232d5dd80c5b3", + "name": "Don't forget to hit the deploy button to save changes.", + "info": "", + "x": 300, + "y": 140, + "wires": [] + }, + { + "id": "325641493682ca2a", + "type": "debug", + "z": "f50232d5dd80c5b3", + "name": "status", + "active": true, + "tosidebar": false, + "console": false, + "tostatus": true, + "complete": "payload", + "targetType": "msg", + "statusVal": "\"Updated at \" & $now()", + "statusType": "jsonata", + "x": 750, + "y": 240, + "wires": [] + }, + { + "id": "f546e2778c4622fd", + "type": "comment", + "z": "f50232d5dd80c5b3", + "name": "It is recommended to delete the password flow after you've updated the password.", + "info": "", + "x": 390, + "y": 300, + "wires": [] + }, + { + "id": "8eb5f7f9889a3c98", + "type": "comment", + "z": "f50232d5dd80c5b3", + "name": "Here is an example that calls getblockchaininfo:", + "info": "", + "x": 280, + "y": 380, + "wires": [] + } +] \ No newline at end of file diff --git a/node-red/data/settings.js b/node-red/data/settings.js new file mode 100644 index 0000000..d17b7d5 --- /dev/null +++ b/node-red/data/settings.js @@ -0,0 +1,497 @@ +/** + * This is the default settings file provided by Node-RED. + * + * It can contain any valid JavaScript code that will get run when Node-RED + * is started. + * + * Lines that start with // are commented out. + * Each entry should be separated from the entries above and below by a comma ',' + * + * For more information about individual settings, refer to the documentation: + * https://nodered.org/docs/user-guide/runtime/configuration + * + * The settings are split into the following sections: + * - Flow File and User Directory Settings + * - Security + * - Server Settings + * - Runtime Settings + * - Editor Settings + * - Node Settings + * + **/ + +const fs = require("fs"); +const path = require("path"); + +let adminCredentials; +if (fs.existsSync(path.join(__dirname, "admin-credentials.json"))) { + try { + adminCredentials = require("./admin-credentials.json"); + } catch (error) { + console.error("Failed to load admin-credentials.json"); + throw error; + } +} + +module.exports = { + +/******************************************************************************* + * Flow File and User Directory Settings + * - flowFile + * - credentialSecret + * - flowFilePretty + * - userDir + * - nodesDir + ******************************************************************************/ + + /** The file containing the flows. If not set, defaults to flows_.json **/ + flowFile: 'flows.json', + + /** By default, credentials are encrypted in storage using a generated key. To + * specify your own secret, set the following property. + * If you want to disable encryption of credentials, set this property to false. + * Note: once you set this property, do not change it - doing so will prevent + * node-red from being able to decrypt your existing credentials and they will be + * lost. + */ + //credentialSecret: "a-secret-key", + + /** By default, the flow JSON will be formatted over multiple lines making + * it easier to compare changes when using version control. + * To disable pretty-printing of the JSON set the following property to false. + */ + flowFilePretty: true, + + /** By default, all user data is stored in a directory called `.node-red` under + * the user's home directory. To use a different location, the following + * property can be used + */ + //userDir: '/home/nol/.node-red/', + + /** Node-RED scans the `nodes` directory in the userDir to find local node files. + * The following property can be used to specify an additional directory to scan. + */ + //nodesDir: '/home/nol/.node-red/nodes', + +/******************************************************************************* + * Security + * - adminAuth + * - https + * - httpsRefreshInterval + * - requireHttps + * - httpNodeAuth + * - httpStaticAuth + ******************************************************************************/ + + /** To password protect the Node-RED editor and admin API, the following + * property can be used. See http://nodered.org/docs/security.html for details. + */ + adminAuth: { + type: "credentials", + users: [ + adminCredentials + ].filter(Boolean) + }, + + /** The following property can be used to enable HTTPS + * This property can be either an object, containing both a (private) key + * and a (public) certificate, or a function that returns such an object. + * See http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener + * for details of its contents. + */ + + /** Option 1: static object */ + //https: { + // key: require("fs").readFileSync('privkey.pem'), + // cert: require("fs").readFileSync('cert.pem') + //}, + + /** Option 2: function that returns the HTTP configuration object */ + // https: function() { + // // This function should return the options object, or a Promise + // // that resolves to the options object + // return { + // key: require("fs").readFileSync('privkey.pem'), + // cert: require("fs").readFileSync('cert.pem') + // } + // }, + + /** If the `https` setting is a function, the following setting can be used + * to set how often, in hours, the function will be called. That can be used + * to refresh any certificates. + */ + //httpsRefreshInterval : 12, + + /** The following property can be used to cause insecure HTTP connections to + * be redirected to HTTPS. + */ + //requireHttps: true, + + /** To password protect the node-defined HTTP endpoints (httpNodeRoot), + * including node-red-dashboard, or the static content (httpStatic), the + * following properties can be used. + * The `pass` field is a bcrypt hash of the password. + * See http://nodered.org/docs/security.html#generating-the-password-hash + */ + //httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, + //httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, + +/******************************************************************************* + * Server Settings + * - uiPort + * - uiHost + * - apiMaxLength + * - httpServerOptions + * - httpAdminRoot + * - httpAdminMiddleware + * - httpNodeRoot + * - httpNodeCors + * - httpNodeMiddleware + * - httpStatic + ******************************************************************************/ + + /** the tcp port that the Node-RED web server is listening on */ + uiPort: process.env.PORT || 1880, + + /** By default, the Node-RED UI accepts connections on all IPv4 interfaces. + * To listen on all IPv6 addresses, set uiHost to "::", + * The following property can be used to listen on a specific interface. For + * example, the following would only allow connections from the local machine. + */ + //uiHost: "127.0.0.1", + + /** The maximum size of HTTP request that will be accepted by the runtime api. + * Default: 5mb + */ + //apiMaxLength: '5mb', + + /** The following property can be used to pass custom options to the Express.js + * server used by Node-RED. For a full list of available options, refer + * to http://expressjs.com/en/api.html#app.settings.table + */ + //httpServerOptions: { }, + + /** By default, the Node-RED UI is available at http://localhost:1880/ + * The following property can be used to specify a different root path. + * If set to false, this is disabled. + */ + //httpAdminRoot: '/admin', + + /** The following property can be used to add a custom middleware function + * in front of all admin http routes. For example, to set custom http + * headers. It can be a single function or an array of middleware functions. + */ + // httpAdminMiddleware: function(req,res,next) { + // // Set the X-Frame-Options header to limit where the editor + // // can be embedded + // //res.set('X-Frame-Options', 'sameorigin'); + // next(); + // }, + + + /** Some nodes, such as HTTP In, can be used to listen for incoming http requests. + * By default, these are served relative to '/'. The following property + * can be used to specifiy a different root path. If set to false, this is + * disabled. + */ + //httpNodeRoot: '/red-nodes', + + /** The following property can be used to configure cross-origin resource sharing + * in the HTTP nodes. + * See https://github.com/troygoode/node-cors#configuration-options for + * details on its contents. The following is a basic permissive set of options: + */ + //httpNodeCors: { + // origin: "*", + // methods: "GET,PUT,POST,DELETE" + //}, + + /** If you need to set an http proxy please set an environment variable + * called http_proxy (or HTTP_PROXY) outside of Node-RED in the operating system. + * For example - http_proxy=http://myproxy.com:8080 + * (Setting it here will have no effect) + * You may also specify no_proxy (or NO_PROXY) to supply a comma separated + * list of domains to not proxy, eg - no_proxy=.acme.co,.acme.co.uk + */ + + /** The following property can be used to add a custom middleware function + * in front of all http in nodes. This allows custom authentication to be + * applied to all http in nodes, or any other sort of common request processing. + * It can be a single function or an array of middleware functions. + */ + //httpNodeMiddleware: function(req,res,next) { + // // Handle/reject the request, or pass it on to the http in node by calling next(); + // // Optionally skip our rawBodyParser by setting this to true; + // //req.skipRawBodyParser = true; + // next(); + //}, + + /** When httpAdminRoot is used to move the UI to a different root path, the + * following property can be used to identify a directory of static content + * that should be served at http://localhost:1880/. + */ + //httpStatic: '/home/nol/node-red-static/', + +/******************************************************************************* + * Runtime Settings + * - lang + * - logging + * - contextStorage + * - exportGlobalContextKeys + * - externalModules + ******************************************************************************/ + + /** Uncomment the following to run node-red in your preferred language. + * Available languages include: en-US (default), ja, de, zh-CN, zh-TW, ru, ko + * Some languages are more complete than others. + */ + // lang: "de", + + /** Configure the logging output */ + logging: { + /** Only console logging is currently supported */ + console: { + /** Level of logging to be recorded. Options are: + * fatal - only those errors which make the application unusable should be recorded + * error - record errors which are deemed fatal for a particular request + fatal errors + * warn - record problems which are non fatal + errors + fatal errors + * info - record information about the general running of the application + warn + error + fatal errors + * debug - record information which is more verbose than info + info + warn + error + fatal errors + * trace - record very detailed logging + debug + info + warn + error + fatal errors + * off - turn off all logging (doesn't affect metrics or audit) + */ + level: "info", + /** Whether or not to include metric events in the log output */ + metrics: false, + /** Whether or not to include audit events in the log output */ + audit: false + } + }, + + /** Context Storage + * The following property can be used to enable context storage. The configuration + * provided here will enable file-based context that flushes to disk every 30 seconds. + * Refer to the documentation for further options: https://nodered.org/docs/api/context/ + */ + //contextStorage: { + // default: { + // module:"localfilesystem" + // }, + //}, + + /** `global.keys()` returns a list of all properties set in global context. + * This allows them to be displayed in the Context Sidebar within the editor. + * In some circumstances it is not desirable to expose them to the editor. The + * following property can be used to hide any property set in `functionGlobalContext` + * from being list by `global.keys()`. + * By default, the property is set to false to avoid accidental exposure of + * their values. Setting this to true will cause the keys to be listed. + */ + exportGlobalContextKeys: false, + + /** Configure how the runtime will handle external npm modules. + * This covers: + * - whether the editor will allow new node modules to be installed + * - whether nodes, such as the Function node are allowed to have their + * own dynamically configured dependencies. + * The allow/denyList options can be used to limit what modules the runtime + * will install/load. It can use '*' as a wildcard that matches anything. + */ + externalModules: { + // autoInstall: false, /** Whether the runtime will attempt to automatically install missing modules */ + // autoInstallRetry: 30, /** Interval, in seconds, between reinstall attempts */ + // palette: { /** Configuration for the Palette Manager */ + // allowInstall: true, /** Enable the Palette Manager in the editor */ + // allowUpload: true, /** Allow module tgz files to be uploaded and installed */ + // allowList: [], + // denyList: [] + // }, + // modules: { /** Configuration for node-specified modules */ + // allowInstall: true, + // allowList: [], + // denyList: [] + // } + }, + + +/******************************************************************************* + * Editor Settings + * - disableEditor + * - editorTheme + ******************************************************************************/ + + /** The following property can be used to disable the editor. The admin API + * is not affected by this option. To disable both the editor and the admin + * API, use either the httpRoot or httpAdminRoot properties + */ + //disableEditor: false, + + /** Customising the editor + * See https://nodered.org/docs/user-guide/runtime/configuration#editor-themes + * for all available options. + */ + editorTheme: { + /** The following property can be used to set a custom theme for the editor. + * See https://github.com/node-red-contrib-themes/theme-collection for + * a collection of themes to chose from. + */ + //theme: "", + palette: { + /** The following property can be used to order the categories in the editor + * palette. If a node's category is not in the list, the category will get + * added to the end of the palette. + * If not set, the following default order is used: + */ + //categories: ['subflows', 'common', 'function', 'network', 'sequence', 'parser', 'storage'], + }, + projects: { + /** To enable the Projects feature, set this value to true */ + enabled: false, + workflow: { + /** Set the default projects workflow mode. + * - manual - you must manually commit changes + * - auto - changes are automatically committed + * This can be overridden per-user from the 'Git config' + * section of 'User Settings' within the editor + */ + mode: "manual" + } + }, + codeEditor: { + /** Select the text editor component used by the editor. + * Defaults to "ace", but can be set to "ace" or "monaco" + */ + lib: "ace", + options: { + /** The follow options only apply if the editor is set to "monaco" + * + * theme - must match the file name of a theme in + * packages/node_modules/@node-red/editor-client/src/vendor/monaco/dist/theme + * e.g. "tomorrow-night", "upstream-sunburst", "github", "my-theme" + */ + theme: "vs", + /** other overrides can be set e.g. fontSize, fontFamily, fontLigatures etc. + * for the full list, see https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.istandaloneeditorconstructionoptions.html + */ + //fontSize: 14, + //fontFamily: "Cascadia Code, Fira Code, Consolas, 'Courier New', monospace", + //fontLigatures: true, + } + } + }, + +/******************************************************************************* + * Node Settings + * - fileWorkingDirectory + * - functionGlobalContext + * - functionExternalModules + * - nodeMessageBufferMaxLength + * - ui (for use with Node-RED Dashboard) + * - debugUseColors + * - debugMaxLength + * - execMaxBufferSize + * - httpRequestTimeout + * - mqttReconnectTime + * - serialReconnectTime + * - socketReconnectTime + * - socketTimeout + * - tcpMsgQueueSize + * - inboundWebSocketTimeout + * - tlsConfigDisableLocalFiles + * - webSocketNodeVerifyClient + ******************************************************************************/ + + /** The working directory to handle relative file paths from within the File nodes + * defaults to the working directory of the Node-RED process. + */ + //fileWorkingDirectory: "", + + /** Allow the Function node to load additional npm modules directly */ + functionExternalModules: true, + + /** The following property can be used to set predefined values in Global Context. + * This allows extra node modules to be made available with in Function node. + * For example, the following: + * functionGlobalContext: { os:require('os') } + * will allow the `os` module to be accessed in a Function node using: + * global.get("os") + */ + functionGlobalContext: { + // os:require('os'), + }, + + /** The maximum number of messages nodes will buffer internally as part of their + * operation. This applies across a range of nodes that operate on message sequences. + * defaults to no limit. A value of 0 also means no limit is applied. + */ + //nodeMessageBufferMaxLength: 0, + + /** If you installed the optional node-red-dashboard you can set it's path + * relative to httpNodeRoot + * Other optional properties include + * readOnly:{boolean}, + * middleware:{function or array}, (req,res,next) - http middleware + * ioMiddleware:{function or array}, (socket,next) - socket.io middleware + */ + //ui: { path: "ui" }, + + /** Colourise the console output of the debug node */ + //debugUseColors: true, + + /** The maximum length, in characters, of any message sent to the debug sidebar tab */ + debugMaxLength: 1000, + + /** Maximum buffer size for the exec node. Defaults to 10Mb */ + //execMaxBufferSize: 10000000, + + /** Timeout in milliseconds for HTTP request connections. Defaults to 120s */ + //httpRequestTimeout: 120000, + + /** Retry time in milliseconds for MQTT connections */ + mqttReconnectTime: 15000, + + /** Retry time in milliseconds for Serial port connections */ + serialReconnectTime: 15000, + + /** Retry time in milliseconds for TCP socket connections */ + //socketReconnectTime: 10000, + + /** Timeout in milliseconds for TCP server socket connections. Defaults to no timeout */ + //socketTimeout: 120000, + + /** Maximum number of messages to wait in queue while attempting to connect to TCP socket + * defaults to 1000 + */ + //tcpMsgQueueSize: 2000, + + /** Timeout in milliseconds for inbound WebSocket connections that do not + * match any configured node. Defaults to 5000 + */ + //inboundWebSocketTimeout: 5000, + + /** To disable the option for using local files for storing keys and + * certificates in the TLS configuration node, set this to true. + */ + //tlsConfigDisableLocalFiles: true, + + /** The following property can be used to verify websocket connection attempts. + * This allows, for example, the HTTP request headers to be checked to ensure + * they include valid authentication information. + */ + //webSocketNodeVerifyClient: function(info) { + // /** 'info' has three properties: + // * - origin : the value in the Origin header + // * - req : the HTTP request + // * - secure : true if req.connection.authorized or req.connection.encrypted is set + // * + // * The function should return true if the connection should be accepted, false otherwise. + // * + // * Alternatively, if this function is defined to accept a second argument, callback, + // * it can be used to verify the client asynchronously. + // * The callback takes three arguments: + // * - result : boolean, whether to accept the connection or not + // * - code : if result is false, the HTTP error status to return + // * - reason: if result is false, the HTTP reason string to return + // */ + //}, +} diff --git a/node-red/dfwebos-app.yml b/node-red/dfwebos-app.yml new file mode 100644 index 0000000..b377a69 --- /dev/null +++ b/node-red/dfwebos-app.yml @@ -0,0 +1,53 @@ +manifestVersion: 1 +id: node-red +category: automation +name: "Node-RED (Bitcoin)" +version: "4.1.8" +tagline: Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π²Π΅Ρ‰Π΅ΠΉ +description: >- + Node-RED β€” это инструмСнт Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ оборудования. + устройства, API ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисы Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΈ интСрСсными способами. + + + Он прСдоставляСт Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π½Π° основС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΡƒΠ·Π»ΠΎΠ² Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² срСдС выполнСния ΠΎΠ΄Π½ΠΈΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ. ВстроСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. + + + ΠŸΠΎΡ‚ΠΎΠΊΠΈ, созданныС Π² Node-RED, хранятся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JSON, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для совмСстного использования с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Онлайн-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² позволяСт Π²Π°ΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своими Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ со всСм ΠΌΠΈΡ€ΠΎΠΌ. + + + ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваши ΡƒΠ·Π»Ρ‹ Β«HTTP InΒ» Π±Ρ‹Π»ΠΈ доступны Π±Π΅Π· Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ URL-адрСсу Β«/public/Β». НапримСр. /ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ/сдСлай Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ + + + Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Node-RED (Bitcoin) Π½Π° DFWebOS способСн Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Bitcoin Core, LND ΠΈ Electrum, Π² связи с этим слСдуСт ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ установкС сторонних ΡƒΠ·Π»ΠΎΠ² Node-RED. +developer: OpenJS Foundation +website: https://nodered.org +dependencies: + - bitcoin + - electrs + - lightning +repo: https://github.com/node-red/node-red +support: https://nodered.org/about/community/slack/ +port: 1880 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + - Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌ Ρ‚Π΅ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ настройки ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ мСню. + - Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ скрытиС Ρ€Π°Π·Π΄Π΅Π»Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ справки Node-RED. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° навигация ΠΏΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΌ спискам с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиш со стрСлками. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π° Β«ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΊ...Β» Π² ΡƒΠ·Π»Π°Ρ… TCP с использованиСм TLS. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ дСйствия Β«ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒΒ» ΠΈ Β«ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ послСднюю Π²ΠΊΠ»Π°Π΄ΠΊΡƒΒ» для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° названия Π²Π΅Ρ‚ΠΊΠΈ Π² запросах Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π·Π½Π°Ρ‡ΠΊΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ², содСрТащиС ΠΊΠΎΠ΄. + - ОбновлСна Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ tar + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/node-red/node-red/releases. +defaultUsername: dfwebos +defaultPassword: moneyprintergobrrr +torOnly: false +submitter: Oren Zomer +submission: https://github.com/getumbrel/umbrel/pull/958 diff --git a/node-red/docker-compose.yml b/node-red/docker-compose.yml new file mode 100644 index 0000000..4b8d2c8 --- /dev/null +++ b/node-red/docker-compose.yml @@ -0,0 +1,28 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: node-red_web_1 + APP_PORT: 1880 + # Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ΅ раскрытиС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² (HTTP In). + PROXY_AUTH_WHITELIST: "/public/*" + + web: + image: nodered/node-red:4.1.8@sha256:a5cb1dcdf90a7148b02b9dba4acfe6bd98c7bf3bff1e845dcdecfd7af3a95a29 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + PORT: 1880 + BITCOIN_NETWORK: $APP_BITCOIN_NETWORK + BITCOIN_IP: $APP_BITCOIN_NODE_IP + BITCOIN_RPC_PORT: $APP_BITCOIN_RPC_PORT + BITCOIN_RPC_USER: $APP_BITCOIN_RPC_USER + BITCOIN_RPC_PASS: $APP_BITCOIN_RPC_PASS + LND_IP: $APP_LIGHTNING_NODE_IP + LND_GRPC_PORT: $APP_LIGHTNING_NODE_GRPC_PORT + ELECTRUM_IP: $APP_ELECTRS_NODE_IP + ELECTRUM_PORT: $APP_ELECTRS_NODE_PORT diff --git a/nolooking/dfwebos-app.yml b/nolooking/dfwebos-app.yml new file mode 100644 index 0000000..049dfa2 --- /dev/null +++ b/nolooking/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1 +id: nolooking +category: bitcoin +name: nolooking +version: "0.2.2-alpha" +tagline: ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ всС свои ΠΊΠ°Π½Π°Π»Ρ‹ Π·Π° ΠΎΠ΄Π½Ρƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ +description: >- + Noooking ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Pay-to-Endpoint (payjoin) для согласования открытия ΠΊΠ°Π½Π°Π»Π° для вашСго Lightning-ΡƒΠ·Π»Π°, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π»ΡŽΠ±Ρ‹ΠΌ кошСльком, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ BIP78. + + + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ нСсколько ΠΊΠ°Π½Π°Π»ΠΎΠ² Lightning Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠ»Π°Ρ‚Π΅ΠΆ, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, экономя Π½Π° комиссиях Π·Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания. + + + ΠŸΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎ Lightning Powered PayJoin: https://chaincase.app/words/lightning-payjoin, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ±ΠΎ всСх прСимущСствах! + + + ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ noooking всС Π΅Ρ‰Π΅ находится Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ noooking, Π²Ρ‹ нСсСтС всю ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Π»ΡŽΠ±ΡƒΡŽ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ срСдств ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ. ΠœΡ‹ быстро ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠ΅ΠΌ этот ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, поэтому ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΈ Π²ΠΊΠ»Π°Π΄ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ. +releaseNotes: >- + - Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ исходящиС ΡƒΠ·Π»Ρ‹ для открытия ΠΊΠ°Π½Π°Π»ΠΎΠ². + + - ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ошибки соСдинСния Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. +developer: nolooking +website: https://nolooking.chaincase.app +dependencies: + - lightning +repo: https://github.com/chaincase-app/nolooking +support: https://github.com/chaincase-app/nolooking/issues +port: 4444 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "/" +defaultUsername: "" +defaultPassword: "" +submitter: nolooking +submission: https://github.com/getumbrel/dfwebos-apps/pull/229 diff --git a/nolooking/docker-compose.yml b/nolooking/docker-compose.yml new file mode 100644 index 0000000..1d415e0 --- /dev/null +++ b/nolooking/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: nolooking_server_1 + APP_PORT: 4444 + PROXY_AUTH_WHITELIST: "/pj" + + server: + image: chaincase/nolooking:v0.2.2-alpha@sha256:e4a95443a05b44659f55a20c592142d59a4d8f54830a71f4c3d22a3a6bf88801 + restart: on-failure + stop_grace_period: 1m + init: true + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + LND_DATA_DIR: $APP_LIGHTNING_NODE_DATA_DIR + LND_HOST: $APP_LIGHTNING_NODE_IP + LND_GRPC_PORT: $APP_LIGHTNING_NODE_GRPC_PORT + MACAROON_FILE: /lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/admin.macaroon + TLS_FILE: /lnd/tls.cert + DEVICE_DOMAIN_NAME: $DEVICE_DOMAIN_NAME + APP_PASSWORD: $APP_PASSWORD + APP_HIDDEN_SERVICE: $APP_HIDDEN_SERVICE diff --git a/nostr-relay/data/relay-proxy/.gitkeep b/nostr-relay/data/relay-proxy/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nostr-relay/data/relay/config.toml b/nostr-relay/data/relay/config.toml new file mode 100644 index 0000000..2fbba07 --- /dev/null +++ b/nostr-relay/data/relay/config.toml @@ -0,0 +1,154 @@ +# ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Nostr-rs-Ρ€Π΅Π»Π΅ + +[info] +# Π Π΅ΠΊΠ»Π°ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ URL для Π²Π΅Π±-сокСта Nostr. +# URL-адрСс_Ρ€Π΅Π»Π΅ = "wss://nostr.example.com/" + +# РСтрансляция ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π’Π²Π΅Π΄ΠΈΡ‚Π΅ здСсь своС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя сСрвСра. +name = "DFWebOS Nostr Relay" + +# ОписаниС +description = "A Nostr Relay running on DFWebOS" + +# ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ административного ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° +#pubkey = "0c2d168a4ae8ca58c9f1ab237b5df682599c6c7ab74307ea8b05684b60405d41" + +# Административный ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ URI +#ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ = "mailto:contact@example.com" + +[diagnostics] +# Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ трассировку tokio (для использования с tokio-console) +#tracing = false + +[database] +# Π―Π΄Ρ€ΠΎ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (sqlite/postgres). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ sqlite. +# ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° postgres Π² настоящСС врСмя являСтся ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ. +#engine = "sqlite" + +# ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ для Ρ„Π°ΠΉΠ»ΠΎΠ² SQLite. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. ΠœΠΎΠΆΠ΅Ρ‚ +# Ρ‚Π°ΠΊΠΆΠ΅ указываСтся (ΠΈ пСрСопрСдСляСтся) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "--db dirname" +# Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. +#data_directory = "." + +# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти вмСсто 'nostr.db'. +# ВрСбуСтся Π΄Π²ΠΈΠΆΠΎΠΊ sqlite. +# ΠžΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ; это Π½Π΅ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΡ‚ пСрСзапуска процСсса! +#in_memory = false + +# Настройки ΠΏΡƒΠ»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… для подписчиков: + +# МинимальноС количСство ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ считыватСля SQLite +#min_conn = 4 + +# МаксимальноС количСство ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ считыватСля SQLite. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ это +# ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ количСство ядСр. +#max_conn = 8 + +# Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ВрСбуСтся для postgres; Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для +# sqlite. +#connection = "postgresql://postgres:nostr@localhost:7500/nostr" + +[network] +# ΠŸΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊ этому сСтСвому адрСсу +address = "0.0.0.0" + +# Π‘Π»ΡƒΡˆΠ°ΠΉΡ‚Π΅ этот ΠΏΠΎΡ€Ρ‚ +port = 8080 + +# Если ΠΎΠ½ присутствуСт, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ этот Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ HTTP для рСгистрации адрСсов ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° IP. +# ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ распространСнных прокси Cloudflare: +#ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ_ip_header = "x-forwarded-for" +#remote_ip_header = "cf-connecting-ip" + +# Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» ΠΏΠΈΠ½Π³Π° Websocket Π² сСкундах, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 5 ΠΌΠΈΠ½ΡƒΡ‚. +#ping_interval = 300 + +[options] +# ΠžΡ‚ΠΊΠ»ΠΎΠ½ΡΡ‚ΡŒ события с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠΌΠΈ это количСство сСкунд Π² +# Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅. РСкомСндуСтся ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΡΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 30Β ΠΌΠΈΠ½ΡƒΡ‚. +# с Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° любая Π΄Π°Ρ‚Π°. +reject_future_seconds = 1800 + +[limits] +# ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства событий, создаваСмых Π² сСкунду, Π² срСднСм Π·Π° ΠΎΠ΄Π½Ρƒ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ. Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ +# Ρ†Π΅Π»ΠΎΠ΅ число. Если Π½Π΅ установлСно (ΠΈΠ»ΠΈ установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0), ограничСния Π½Π΅Ρ‚. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: +# это касаСтся сСрвСра Π² Ρ†Π΅Π»ΠΎΠΌ, Π° Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ соСдинСния. +# +# ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ создания событий Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся, Ссли вашС Ρ€Π΅Π»Π΅ +# ΠΏΡƒΠ±Π»ΠΈΠΊΠ°! +# +#messages_per_sec = 5 + +# ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ количСство подписок ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², создаваСмых Π² сСкунду, Π² срСднСм Π·Π° ΠΎΠ΄Π½Ρƒ +# ΠΌΠΈΠ½ΡƒΡ‚Π°. Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число. Если Π½Π΅ установлСно (ΠΈΠ»ΠΈ установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0), ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ +# Π±Π΅Π·Π»ΠΈΠΌΠΈΡ‚Π½Ρ‹ΠΉ. ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΈΠ·ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ +# 10, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ справСдливоС обслуТиваниС. +#subscriptions_per_min = 0 + +# ΠΠ•Π’Π«ΠŸΠžΠ›ΠΠ•ΠΠž... +# ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡŒΡ‚Π΅ количСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚. +# Π­Ρ‚ΠΎ Π½Π΅ позволяСт ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ слишком ΠΌΠ½ΠΎΠ³ΠΎ дорогостоящих +# запросы ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число. Если Π½Π΅ установлСно (ΠΈΠ»ΠΈ установлСно Π² 0), +# ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ (с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ подписки). +#db_conns_per_client = 0 + +# ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡŒΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 16. +#max_blocking_threads = 16 + +# ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡŒΡ‚Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ сообщСния EVENT. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 128 KB. +# УстановитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 для Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ доступа. +#max_event_bytes = 131072 + +# МаксимальноС сообщСниС WebSocket Π² Π±Π°ΠΉΡ‚Π°Ρ…. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 128 KB. +#max_ws_message_bytes = 131072 + +# ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Π΄Ρ€Π° WebSocket Π² Π±Π°ΠΉΡ‚Π°Ρ…. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 128 KB. +#max_ws_frame_bytes = 131072 + +# Π Π°Π·ΠΌΠ΅Ρ€ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°, Π² количСствС событий. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ +# Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΡ‚ потрСблСния памяти. +#broadcast_buffer = 16384 + +# Π Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° сохранСния событий, Π² количСствС событий. Π­Ρ‚ΠΎ обСспСчиваСт +# ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ отправитСлям, Ссли запись происходит ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. +#event_persist_buffer = 4096 + +# Π§Π΅Ρ€Π½Ρ‹ΠΉ список Π²ΠΈΠ΄ΠΎΠ² событий. Бобытия Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹. +#event_kind_blacklist = [ +# 70202, +#] + +[authorization] +# АдрСса ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² этом массивС занСсСны Π² Π±Π΅Π»Ρ‹ΠΉ список для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ событий. +# Π‘ΡƒΠ΄ΡƒΡ‚ приняты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ события этих Π°Π²Ρ‚ΠΎΡ€ΠΎΠ², Ссли пСрСмСнная +# установлСн. +#pubkey_whitelist = [ +# "35d26e4690cbe1a898af61cc3515661eb5fa763b57bd0b42e45099c8b32fd50f", +# "887645fef0ce0c3c1218d2f5d8e6132a19304cdc57cd20281d082f38cfea0072", +#] + +[verified_users] +# NIP-05 ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ "enabled", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ NIP-05 +# ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ для Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² событий, "passive" для выполнСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π½ΠΎ +# Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ "disabled" Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ. +#mode = "disabled" + +# Π”ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ события. +#domain_blacklist = ["wellorder.net"] + +# Π”ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ события. Если ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ +# события NIP-05 ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² Π² этих Π΄ΠΎΠΌΠ΅Π½Π°Ρ… ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ. +#Π΄ΠΎΠΌΠ΅Π½_Π±Π΅Π»Ρ‹ΠΉ список = ["example.com"] + +# Рассмотрим ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ "verified", Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°. +# ΠΈΠ· Π΄ΠΎΠΌΠ΅Π½Π° NIP-05 Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ этого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ссли +# Π΄ΠΎΠΌΠ΅Π½ прСдоставляСт ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ отсутствуСт учСтная запись, +# ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ отмСняСтся. +#verify_expiration = "1 week" + +# Как Π΄ΠΎΠ»Π³ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΡ€Π°. +#verify_update_frequency = "24 hours" + +# Бколько ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΌΡ‹ откаТСмся ΠΎΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ +# этот Π°Π²Ρ‚ΠΎΡ€. +#max_consecutive_failures = 20 diff --git a/nostr-relay/data/relay/db/.gitkeep b/nostr-relay/data/relay/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/nostr-relay/dfwebos-app.yml b/nostr-relay/dfwebos-app.yml new file mode 100644 index 0000000..f697bd4 --- /dev/null +++ b/nostr-relay/dfwebos-app.yml @@ -0,0 +1,88 @@ +manifestVersion: 1 +id: nostr-relay +category: social +name: Nostr Relay +version: "1.2.0" +tagline: Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСй вашСй активности Nostr с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ частного Ρ€Π΅Π»Π΅. +description: > + ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ Nostr Relay β€” ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ DFWebOS. + + + Π¨Π°Π³ 1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Nostr (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Damus, Amethyst) ΠΊ частному Ρ€Π΅Π»Π΅ для бСспСрСбойного Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования всСй активности Nostr. Π’ Damus Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ URL-адрСс своСго Ρ€Π΅Π»Π΅ Ρ‡Π΅Ρ€Π΅Π· МСню > Π Π΅Π»Π΅. + + + Π‘ΠΎΠ²Π΅Ρ‚: установитС Tailscale Π½Π° ваш DFWebOS ΠΈ ваши устройства, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ бСспСрСбойноС соСдинСниС ΠΌΠ΅ΠΆΠ΄Ρƒ вашими ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ вашим рСтранслятором, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π²Π΄Π°Π»ΠΈ ΠΎΡ‚ домашнСй сСти. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ MagicDNS Tailscale ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ws://dfwebos:4848 Π² качСствС URL-адрСса рСтрансляции. + + + Π¨Π°Π³ 2. НаТмитС Π·Π½Π°Ρ‡ΠΎΠΊ глобуса Π²Π²Π΅Ρ€Ρ…Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ активности Nostr с Π²Π°ΡˆΠΈΡ… общСдоступных рСтрансляторов ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ бСспСрСбойноС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π΄Π°ΠΆΠ΅ Ссли соСдинСниС ΠΌΠ΅ΠΆΠ΄Ρƒ вашим частным рСтранслятором ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Nostr Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΎ. + + + Π’ΠΎΡ‚ ΠΈ всС! Π’Π°ΡˆΠ° ΠΏΡ€ΠΎΡˆΠ»Π°Ρ ΠΈ будущая Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Nostr Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ сохранСна Π½Π° вашСм частном рСтрансляторС. + + + Nostr Relay основан Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ nostr-rs-relay с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ β€” Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅Π»Π΅ Nostr Π½Π° Rust. Π’ настоящСС врСмя ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ вСсь ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» рСтрансляции, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ NIP-01, NIP-02, NIP-03, NIP-05, NIP-09, NIP-11, NIP-12, NIP-15, NIP-16, NIP-20, NIP-22, NIP-26, NIP-28 ΠΈ NIP-33. +releaseNotes: >- + πŸŽ‰ Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ доступны для DFWebOS 1.0. + + + Π’ этом ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ прСдставлСны Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° для Nostr Relay, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ сразу ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ваши послСдниС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ послСдниС Ρ‚ΠΈΠΏΡ‹ событий прямо с Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ экрана вашСго DFWebOS: + + + - ПослСдниС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ: Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ послСдниС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, синхронизированныС с вашим Ρ€Π΅Π»Π΅ Nostr. + + + - ПослСдниС события: Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ послСдниС Ρ‚ΠΈΠΏΡ‹ событий, синхронизированныС с вашим Ρ€Π΅Π»Π΅ Nostr, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ, обновлСния профиля ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + + ПослС обновлСния Π΄ΠΎ DFWebOS 1.0 Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС ΠΈ Π²Ρ‹Π±Ρ€Π°Π² Β«Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹Β» ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Π² Β«Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹Β» Π² Dock. +developer: DFWebOS +website: https://dfwebos.com +dependencies: [] +repo: https://github.com/getumbrel/umbrel-nostr-relay +support: https://community.getumbrel.com +port: 4848 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +widgets: + - id: "latest-kind1" + type: "list" + refresh: "5s" + endpoint: "relay-proxy:80/relay-proxy/widgets/latest-kind1" + link: "" + example: + type: "list" + link: "" + items: + - text: "one-click app restarts, arriving in DFWebOS 1.0" + subtext: "01:11 Mar 02, 2024" + - text: "woop! glad it arrived before christmas! welcome aboard 🫑" + subtext: "03:07 Dec 28, 2023" + - text: "Congrats! Can’t wait for you to get your hands on it 🫢" + subtext: "11:40 Nov 24, 2023" + - id: "latest-events" + type: "list-emoji" + refresh: "5s" + endpoint: "relay-proxy:80/relay-proxy/widgets/latest-events" + link: "" + example: + type: "list-emoji" + link: "" + count: "503" + items: + - emoji: "πŸ’­" + text: "Post" + - emoji: "πŸ”" + text: "Encrypted DM" + - emoji: "πŸ€™" + text: "Reaction" + - emoji: "πŸ€™" + text: "Reaction" + - emoji: "πŸ“" + text: "Profile Update" +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/398 diff --git a/nostr-relay/docker-compose.yml b/nostr-relay/docker-compose.yml new file mode 100644 index 0000000..44a796a --- /dev/null +++ b/nostr-relay/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: nostr-relay_web_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + web: + image: getumbrel/umbrel-nostr-relay:v1.1.0@sha256:21b67ab2e9d30b20e785497f19534e8e21b6da1bfe69e3ae5afe91b759f20488 + user: "1000:1000" + restart: on-failure + environment: + RELAY_HOST: "nostr-relay_relay_1" + RELAY_PORT: "8080" + RELAY_PROXY_HOST: "nostr-relay_relay-proxy_1" + RELAY_PROXY_PORT: "80" + + relay: + image: getumbrel/nostr-rs-relay:0.8.1@sha256:a6c857aecd4964bf058ec5c3c0fea95e0d87ed0cc789f2140f96de108e5515ec + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/relay/config.toml:/app/config.toml + - ${APP_DATA_DIR}/data/relay/db:/app/db + + relay-proxy: + image: getumbrel/umbrel-nostr-relay-proxy:v1.1.0@sha256:6b335f4488f813475bb7c9d3bb6282fda081808e2d5447404fc8a1ffcc1279dc + user: "1000:1000" + restart: on-failure + environment: + RELAY_HOST: "nostr-relay_relay_1" + RELAY_PORT: "8080" + volumes: + - ${APP_DATA_DIR}/data/relay-proxy:/app/data + depends_on: + - relay diff --git a/nostr-relay/hooks/pre-start b/nostr-relay/hooks/pre-start new file mode 100755 index 0000000..4ea7e35 --- /dev/null +++ b/nostr-relay/hooks/pre-start @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/data" +RELAY_PROXY_DATA_DIR="${APP_DATA_DIR}/relay-proxy" + +[ ! -d "${RELAY_PROXY_DATA_DIR}" ] && mkdir -p "${RELAY_PROXY_DATA_DIR}" && chown 1000:1000 "${RELAY_PROXY_DATA_DIR}" diff --git a/nostrudel/dfwebos-app.yml b/nostrudel/dfwebos-app.yml new file mode 100644 index 0000000..562ea89 --- /dev/null +++ b/nostrudel/dfwebos-app.yml @@ -0,0 +1,38 @@ +manifestVersion: 1 +id: nostrudel +category: social +name: noStrudel +version: "0.46.1" +tagline: ΠŸΠ΅ΡΠΎΡ‡Π½ΠΈΡ†Π° для изучСния ностр +description: >- + noStrumel β€” это Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ nostr, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для изучСния сСти nostr. + + ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ nostr. +releaseNotes: | + ### ΠΠ΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния + + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сСрвиса ΠΎΠ±ΠΌΠ΅Π½Π° (njump.me) + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ чтСния статСй с использованиСм собствСнного Π²Π΅Π±-TTS API. + - ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ·Π±Ρ€Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π»Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ обнаруТСния. + - Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ рСтрансляционный ΠΊΠ°Π½Π°Π» Π² прСдставлСниС обнаруТСния. + - ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° навигация ΠΏΠΎ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + + ### ИзмСнСния ΠΏΠ°Ρ‚Ρ‡Π° + + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ изобраТСния ссылок Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ Π½Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·ΠΌΡ‹Ρ‚Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи ncryptsec Π½Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ. +developer: hzrd149 +website: https://github.com/hzrd149/nostrudel +dependencies: [] +repo: https://github.com/hzrd149/nostrudel +support: https://github.com/hzrd149/nostrudel/issues +port: 3149 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: hzrd149 +submission: https://github.com/getumbrel/dfwebos-apps/pull/901 diff --git a/nostrudel/docker-compose.yml b/nostrudel/docker-compose.yml new file mode 100644 index 0000000..7e04d27 --- /dev/null +++ b/nostrudel/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: nostrudel_web_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + cors: + image: ghcr.io/hzrd149/docker-cors-anywhere:0.4.5@sha256:641f5ea3265acbc339a03a72b79cd942c4bedab9b1c8b3fc13e5f3f087f649e6 + environment: + CORSANYWHERE_REQUIRE_HEADERS: "host" + web: + image: ghcr.io/hzrd149/nostrudel:0.46.1@sha256:c89738d354beeef4c41a3b73d483ee8a5ba03950691d0966a7310ed10fc980ef + restart: on-failure + stop_grace_period: 1m + init: true + depends_on: + - cors + environment: + CORS_PROXY: cors:8080 diff --git a/ntfy/data/cache/.gitkeep b/ntfy/data/cache/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ntfy/data/data/.gitkeep b/ntfy/data/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ntfy/data/lib/.gitkeep b/ntfy/data/lib/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ntfy/dfwebos-app.yml b/ntfy/dfwebos-app.yml new file mode 100644 index 0000000..0962693 --- /dev/null +++ b/ntfy/dfwebos-app.yml @@ -0,0 +1,64 @@ +manifestVersion: 1 +id: ntfy +name: ntfy +tagline: ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ увСдомлСния Π½Π° свой Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ стол с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптов с любого ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ/ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ REST API. +category: automation +version: "2.22.0" +port: 13119 +description: >- + ntfy (произносится ΠΊΠ°ΠΊ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅) β€” это простая слуТба ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ pub-sub Π½Π° основС HTTP. Он позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ увСдомлСния Π½Π° + ваш Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ стол с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сцСнариСв с любого ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ/ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ REST API. + + + ℹ️ УвСдомлСния iOS + + ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Apple Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ наличия общСдоступного сСрвСра для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹Ρ… ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π½Π° iOS. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ https://ntfy.sh для опроса + запросы ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΡ€ΠΈ этом ваши увСдомлСния Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· эту слуТбу, Π° вмСсто этого Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²Π°ΡˆΠ΅ΠΌΡƒ устройству iOS + Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ· вашСго локального экзСмпляра ntfy. ΠžΠΏΡ‹Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды Β«NTFY_UPSTREAM_BASE_URLΒ» ΠΈΠ· Ρ„Π°ΠΉΠ»Π° создания Docker; ΠΎΠ΄Π½Π°ΠΊΠΎ это ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ увСдомлСния Π½Π° устройствах iOS. + + + πŸ”” ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ push-увСдомлСния ΠΈΠ· вашСго прилоТСния ΠΈΠ»ΠΈ скрипта. + + ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ сообщСний ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· PUT ΠΈΠ»ΠΈ POST. Π’Π΅ΠΌΡ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ» ΠΏΡƒΡ‚Π΅ΠΌ подписки ΠΈΠ»ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° Π½ΠΈΡ…. + Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ntfy Π±Π΅Π· рСгистрации, Ρ‚Π΅ΠΌΠ° ΠΏΠΎ сути прСдставляСт собой ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, поэтому Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅Π»Π΅Π³ΠΊΠΎ ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ. + + + πŸ“± ΠŸΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ увСдомлСния Π½Π° свой Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ + + ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° Ρ‚Π΅ΠΌΡƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ увСдомлСния с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ, влоТСниями, ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ дСйствий, Ρ‚Π΅Π³Π°ΠΌΠΈ ΠΈ смайликами. + ΠΈ Π΄Π°ΠΆΠ΅ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. + + + πŸ’» ΠŸΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ увСдомлСния Π½Π° свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ + + Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Ρ‚Π΅ΠΌΡ‹. Если Π²Ρ‹ это сдСлаСтС, увСдомлСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ увСдомлСния Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС. + ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΒ». Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ соСдинСниС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ + входящиС увСдомлСния. + + + βš™οΈ Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с вашими Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌΠΈ инструмСнтами + + ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ сообщСний β€” это всСго лишь HTTP-запрос, поэтому практичСски всС Π½Π° свСтС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ntfy. Π‘ΠΎΡ‚Π½ΠΈ + ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ скриптов ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ntfy. +developer: ntfy LLC +website: https://ntfy.sh/ +submitter: Sharknoon +submission: https://github.com/getumbrel/dfwebos-apps/pull/ +repo: https://github.com/binwiederhier/ntfy +support: https://github.com/binwiederhier/ntfy/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ бСзопасности: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ бСзопасности Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Π²Π΅Π±-push для прСдотвращСния ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠΈ запросов Π½Π° сторонС сСрвСра. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ нСльзя Π±Ρ‹Π»ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ бСссрочный срок дСйствия Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² доступа. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой Π²Π΅Π±-прилоТСния Π½Π° страницС ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи для Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π±Π΅Π· Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ послСднСго доступа. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/binwiederhier/ntfy/releases. +dependencies: [] +path: "" +defaultUsername: dfwebos +deterministicPassword: true diff --git a/ntfy/docker-compose.yml b/ntfy/docker-compose.yml new file mode 100644 index 0000000..d03a498 --- /dev/null +++ b/ntfy/docker-compose.yml @@ -0,0 +1,28 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: ntfy_app_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + app: + image: binwiederhier/ntfy:v2.22.0@sha256:d8b3408c75d5ae78e03339af6103e7e6195e56573eea6f1ad34bb4dc4f44f340 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + entrypoint: [ "/bin/sh", "/entrypoint.sh" ] + volumes: + - ${APP_DATA_DIR}/entrypoint.sh:/entrypoint.sh + - ${APP_DATA_DIR}/data/cache:/var/cache/ntfy + - ${APP_DATA_DIR}/data/data:/etc/ntfy + - ${APP_DATA_DIR}/data/lib:/var/lib/ntfy + environment: + NTFY_BASE_URL: http://${DEVICE_DOMAIN_NAME}:${APP_PROXY_PORT} + NTFY_UPSTREAM_BASE_URL: https://ntfy.sh + NTFY_CACHE_FILE: /var/cache/ntfy/cache.db + NTFY_ENABLE_LOGIN: "true" + NTFY_AUTH_FILE: /var/lib/ntfy/user.db + NTFY_AUTH_DEFAULT_ACCESS: deny-all + NTFY_PASSWORD: ${APP_PASSWORD} diff --git a/ntfy/entrypoint.sh b/ntfy/entrypoint.sh new file mode 100644 index 0000000..e888f2c --- /dev/null +++ b/ntfy/entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh +ntfy serve & +sleep 2 +NTFY_PASSWORD=${NTFY_PASSWORD} ntfy user add --role=admin DFWebOS || true +wait \ No newline at end of file diff --git a/nutstash-wallet/dfwebos-app.yml b/nutstash-wallet/dfwebos-app.yml new file mode 100644 index 0000000..ccfd540 --- /dev/null +++ b/nutstash-wallet/dfwebos-app.yml @@ -0,0 +1,30 @@ +manifestVersion: 1 +id: nutstash-wallet +category: bitcoin +name: Nutstash Wallet +version: "0.1.10" +tagline: "Nutstash β€” кошСлСк Cashu для вашСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°" +description: >- + Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠšΠ°ΡˆΡƒ? + + Β«Cashu β€” это бСсплатная систСма элСктронных Π΄Π΅Π½Π΅Π³ Chaumian с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, созданная для Bitcoin. Cashu ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠ°ΡΡ‚ΠΎΠ΄ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Bitcoin. Никто Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ, ΠΊΡ‚ΠΎ Π²Ρ‹, сколько Ρƒ вас срСдств ΠΈ с ΠΊΠ΅ΠΌ Π²Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΒ». - Cashu.space + + + Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ находится Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ, скорСС всСго, содСрТит ошибки. Однако ΠΎΠ½ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ саты, поэтому ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ суммы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ достаточно ΠΌΠ°Π»Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ. +releaseNotes: >- + - ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ выпуск Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS. +developer: gandlafbtc +website: https://nutstash.app/ +dependencies: [] +repo: https://github.com/gandlafbtc/nutstash-wallet +support: https://t.me/+DRy-rSe5wQtlYTk1 +port: 4173 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: gandlafbtc +submission: https://github.com/getumbrel/dfwebos-apps/pull/459 diff --git a/nutstash-wallet/docker-compose.yml b/nutstash-wallet/docker-compose.yml new file mode 100644 index 0000000..1f346a7 --- /dev/null +++ b/nutstash-wallet/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: nutstash-wallet_web_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + web: + image: ghcr.io/gandlafbtc/nutstash-wallet:0.1.10@sha256:8a585c4a6545e68e9a1c8fcf2a0a15ef401ad040accf925234451fe1b838d180 + restart: on-failure + stop_grace_period: 1m + diff --git a/oak-node/data/.gitkeep b/oak-node/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/oak-node/dfwebos-app.yml b/oak-node/dfwebos-app.yml new file mode 100644 index 0000000..39d889a --- /dev/null +++ b/oak-node/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1 +id: oak-node +category: bitcoin +name: Oak Node +version: "0.3.8" +tagline: Π”Π΅Π»Π°ΠΉΡ‚Π΅ большС с вашим ΡƒΠ·Π»ΠΎΠΌ LND +description: >- + Oak Node позволяСт ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ совСты вашим Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ ΠΈΠ»ΠΈ создатСлям ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. ВсС, Ρ‡Ρ‚ΠΎ ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎ, это адрСс Lightning. + + + Π’Ρ‹ Π½Π° Nostr? Π£ Π±ΠΎΡ‚Π° Nostr ΠΎΡ‚ Oak Node Π΅ΡΡ‚ΡŒ всякиС вкусности. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΠ’Πš? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ. Бпособ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния своСму Π±ΠΎΡ‚Ρƒ ΠΈΠ· любой Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΌΠΈΡ€Π° + ΠΈ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ спутники для вас? Π”Π°, ΠΎΠ½ΠΎ Ρ‚Π°ΠΌ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅... способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎ ДамусС? Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ + Π’Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ совСтов Π±ΠΎΡ‚Π° Shadowy LN. + + + Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ своСму ΠΊΠΎΡˆΠ΅Π»ΡŒΠΊΡƒ LN со своСго Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π±Π΅Π· использования Tor? Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ Π±ΠΎΡ‚ позволяСт Π²Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свой баланс, + ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ счСта прямо со своСго Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°. Π₯ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π΄Π°ΠΆΠ΅ Ссли ваш Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ. +releaseNotes: >- + Π’ этом ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° NWC. +developer: Carlos +website: https://oak-node.net +dependencies: + - lightning +repo: https://oak-node.net +support: https://oak-node.net/forum +port: 8100 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: ok300 +submission: https://github.com/getumbrel/dfwebos-apps/pull/60 \ No newline at end of file diff --git a/oak-node/docker-compose.yml b/oak-node/docker-compose.yml new file mode 100644 index 0000000..7769acf --- /dev/null +++ b/oak-node/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: oak-node_web_1 + APP_PORT: 8100 + + web: + image: oak-node.net/oak:v0.3.8@sha256:226e4b91f753babbf166893dfa044ed80eafd00a13e75033c374bd11824ef961 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - $APP_LIGHTNING_NODE_DATA_DIR:/lnd-dir:ro + - ${APP_DATA_DIR}/data:/data + - ${APP_DATA_DIR}/log:/oak/log + environment: + ROCKET_PORT: 8100 + ROCKET_ADDRESS: 0.0.0.0 + OAK_DATA_DIR: /data + OAK_LND_REST_API_URL: https://$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_REST_PORT + OAK_LND_MACAROON_PATH: /lnd-dir/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon + OAK_LND_CERT_PATH: /lnd-dir/tls.cert + OAK_ONION_SOCKS5_HOST: $TOR_PROXY_IP + OAK_ONION_SOCKS5_PORT: $TOR_PROXY_PORT diff --git a/oak-node/log/.gitkeep b/oak-node/log/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/obsidian/data/config/.gitkeep b/obsidian/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/obsidian/dfwebos-app.yml b/obsidian/dfwebos-app.yml new file mode 100644 index 0000000..a4432a9 --- /dev/null +++ b/obsidian/dfwebos-app.yml @@ -0,0 +1,38 @@ +manifestVersion: 1 +id: obsidian +category: files +name: Obsidian +version: "1.8.10" +tagline: ЧастноС ΠΈ Π³ΠΈΠ±ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для письма, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ адаптируСтся ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Π·Ρƒ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ. +description: >- + **Π’Π°ΡˆΠΈ мысли ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π²Π°ΠΌ.** + + Obsidian Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° вашСм устройствС, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ доступ Π΄Π°ΠΆΠ΅ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Никто Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡ… ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π΄Π°ΠΆΠ΅ ΠΌΡ‹. + + + **Π’Π°Ρˆ Ρ€Π°Π·ΡƒΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½.** + + Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тысяч ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈ Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Obsidian ΠΏΠΎΠ΄ свой ΠΎΠ±Ρ€Π°Π· ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ. + + + **Π’Π°ΡˆΠΈ знания Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π»ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠ»Π³ΠΎ.** + + Obsidian ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅, Π½Π΅ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, поэтому Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ смоТСтС ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. +releaseNotes: >- + Π’ этом выпускС Obsidian исправлСна ошибка: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π² списках с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ. + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://obsidian.md/changelog/. +developer: Obsidian +website: https://obsidian.md/ +dependencies: [] +repo: https://github.com/linuxserver/docker-obsidian +support: https://github.com/linuxserver/docker-obsidian/issues +port: 3435 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/1921 diff --git a/obsidian/docker-compose.yml b/obsidian/docker-compose.yml new file mode 100644 index 0000000..e86e453 --- /dev/null +++ b/obsidian/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: obsidian_server_1 + APP_PORT: 3000 + + server: + image: linuxserver/obsidian:1.8.10@sha256:b85e75e572e75f5e00062fb564102eaad8e19970938ee8ec7bae0a96566c1400 + restart: on-failure + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + shm_size: "1gb" diff --git a/octoprint/dfwebos-app.yml b/octoprint/dfwebos-app.yml new file mode 100644 index 0000000..bd05913 --- /dev/null +++ b/octoprint/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1 +id: octoprint +category: files +name: OctoPrint +version: "1.11.7" +tagline: Быстрый Π²Π΅Π±-интСрфСйс для вашСго 3D-ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π° +description: >- + OctoPrint прСдоставляСт быстрый Π²Π΅Π±-интСрфСйс для управлСния ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ 3D-ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΌΠΈ. + ΠœΠΎΡ‰Π½Π°Ρ систСма ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² OctoPrint позволяСт Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΎΡ‚ сообщСства. + + + ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свой 3D-ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€ ΠΊ DFWebOS, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ аспСкт Ρ€Π°Π±ΠΎΡ‚Ρ‹ вашСго 3D-ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π° ΠΈ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ прямо ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. +developer: OctoPrint +website: https://octoprint.org/ +repo: https://github.com/OctoPrint/OctoPrint +support: https://community.octoprint.org/ +port: 5003 +submitter: mateosilguero +releaseNotes: >- + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ исправлСния ошибок Π² этом выпускС: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ собствСнный Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚Π° Π²Π΅Π±-просмотра Prusa Slicer, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ интСрфСйс. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π°Π²Ρ‚ΠΎΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎΠ± Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ с использованиСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ возмоТности. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ„Π»Π°ΠΆΠΊΠΈ, Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ для Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… таймлапсов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΏΠΏ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ доступом API. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹ cookie сСанса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ подавлялись, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²Ρ…ΠΎΠ΄Π° Π² систСму ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡ API. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ часового пояса Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Last-Modified. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° справка ΠΈ Π²Ρ‹Π²ΠΎΠ΄ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ/Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ CLI. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ° очистки диспСтчСра ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² всСгда ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ пустой. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/OctoPrint/OctoPrint/releases. +submission: https://github.com/getumbrel/dfwebos-apps/pull/449 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/octoprint/docker-compose.yml b/octoprint/docker-compose.yml new file mode 100644 index 0000000..f3fbbdf --- /dev/null +++ b/octoprint/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: octoprint_web_1 + APP_PORT: 5000 + PROXY_AUTH_ADD: "false" + + web: + image: octoprint/octoprint:1.11.7@sha256:49bea4ebfd0cefa9289f058574e7eda6d2de201f1b74309e0c10019e5ec58f04 + privileged: true + volumes: + - ${APP_DATA_DIR}/data:/octoprint + - /dev:/dev + restart: on-failure diff --git a/ollama/data/.gitkeep b/ollama/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ollama/dfwebos-app.yml b/ollama/dfwebos-app.yml new file mode 100644 index 0000000..76ecbe0 --- /dev/null +++ b/ollama/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: ollama +name: Ollama +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ИИ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ DeepSeek-R1, Llama ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. +category: ai +version: "0.21.2" +port: 11434 +description: >- + Ollama позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ИИ нСпосрСдствСнно Π½Π° вашСм ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ИИ обСспСчиваСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ вашими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ Π²Π°ΡˆΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + ⚠️ ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ модСль, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° вашСм устройствС достаточно свободной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти для Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ модСль, объСм ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ сбою устройства ΠΈΠ»ΠΈ зависанию устройства. ВсСгда провСряйтС трСбования ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΈΠ»ΠΈ запуском. + + + **Начиная:** + + Π‘Π°ΠΌΡ‹ΠΉ простой способ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ollama β€” ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Open WebUI ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ ΠΊ вашСй настройкС Ollama, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с модСлями ИИ. + + + **Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ настройка:** + + Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ollama ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям ΠΈΠ»ΠΈ устройствам, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия: + - ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° DFWebOS: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ollama_ollama_1 Π² качСствС хоста ΠΈ 11434 Π² качСствС ΠΏΠΎΡ€Ρ‚Π° ΠΏΡ€ΠΈ настройкС Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Ollama. НапримСр, Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ URL-адрСс API Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ: http://ollama_ollama_1:11434.. + - ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ: ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Ollama ΠΊ сторонним прилоТСниям ΠΈΠ»ΠΈ своСму собствСнному ΠΊΠΎΠ΄Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΎΠΌΠ΅Π½ DFWebOS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, http://dfwebos.local:11434) ΠΈΠ»ΠΈ IP-адрСс вашСго устройства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π½Π° страницС настроСк DFWebOS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, http://192.168.4.74:11434).) +backupIgnore: + - data/* +developer: Ollama +website: https://ollama.com/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/2114 +repo: https://github.com/ollama/ollama +support: https://github.com/ollama/ollama/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "" +defaultPassword: "" +dependencies: [] +releaseNotes: >- + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска: + - ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ процСсса рСгистрации запуска ollama. + - Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΈ запускС ollama Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ фиксированном порядкС. + - запуск ollama Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΏΠ»Π°Π³ΠΈΠ½ Π²Π΅Π±-поиска Ollama с OpenClaw. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/ollama/ollama/releases. +path: "" diff --git a/ollama/docker-compose.yml b/ollama/docker-compose.yml new file mode 100644 index 0000000..8f0b4a4 --- /dev/null +++ b/ollama/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: ollama_ollama_1 + APP_PORT: 11434 + PROXY_AUTH_ADD: "false" + + ollama: + image: ollama/ollama:0.21.2@sha256:2038a264392af4d21f7f14e1568e8dd9aa0f2bd0f31d7d9a59a8cca1e9829663 + environment: + OLLAMA_ORIGINS: "*" + OLLAMA_CONTEXT_LENGTH: 8192 + volumes: + - ${APP_DATA_DIR}/data:/root/.ollama + restart: on-failure diff --git a/ollama/exports.sh b/ollama/exports.sh new file mode 100644 index 0000000..9a1816d --- /dev/null +++ b/ollama/exports.sh @@ -0,0 +1 @@ +export APP_OLLAMA_URL="http://ollama_ollama_1:11434" diff --git a/omnitools/dfwebos-app.yml b/omnitools/dfwebos-app.yml new file mode 100644 index 0000000..f0e6124 --- /dev/null +++ b/omnitools/dfwebos-app.yml @@ -0,0 +1,65 @@ +manifestVersion: 1 +id: omnitools +name: OmniTools +tagline: Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ коллСкция ΠΌΠΎΡ‰Π½Ρ‹Ρ… Π²Π΅Π±-инструмСнтов для повсСднСвных Π·Π°Π΄Π°Ρ‡. +category: files +version: "0.6.0" +port: 8678 +description: >- + πŸ› οΈ OmniTools β€” это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «всС Π² ΠΎΠ΄Π½ΠΎΠΌΒ», ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π΅Π΅ ΠΎΠ±ΡˆΠΈΡ€Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 80 ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для упрощСния повсСднСвных Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Он дСйствуСт ΠΊΠ°ΠΊ ΡˆΠ²Π΅ΠΉΡ†Π°Ρ€ΡΠΊΠΈΠΉ Π½ΠΎΠΆ для вашСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, позволяя Π²Π°ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ манипуляций с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π΅ полагаясь Π½Π° внСшниС сСрвСры ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² ΠΎΠ±Π»Π°ΠΊΠΎ. + + + Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ OmniTools Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ изобраТСния, удаляя Ρ„ΠΎΠ½, измСняя Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ»ΠΈ конвСртируя Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, манипулируя PDF-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΏΡƒΡ‚Π΅ΠΌ объСдинСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ аннотирования, ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ тСкст с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² форматирования ΠΈ прСобразования. Он Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΌΠΎΡ‰Π½Ρ‹Π΅ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ просмотра ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Ρ‹ CSV ΠΈ JSON, инструмСнты Π°Π½Π°Π»ΠΈΠ·Π° XML ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ QR-ΠΊΠΎΠ΄ΠΎΠ². + + + Помимо ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², OmniTools прСдоставляСт ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Ρ‹ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ† Π΄Π°Ρ‚Ρ‹, Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ настоящим ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ Π² Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссах. КаТдая функция ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для эффСктивной ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, гарантируя, Ρ‡Ρ‚ΠΎ ваши Π΄Π°Π½Π½Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹ΠΉΠ΄ΡƒΡ‚ ΠΈΠ·-ΠΏΠΎΠ΄ вашСго контроля. + + + Π―Π²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ творчСским профСссионалом, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ трСбуСтся быстроС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ»ΠΈ просто Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, OmniTools ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π»Π΅Π³ΠΊΡƒΡŽ, ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ срСду, которая ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ мСстС. ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² Π½Π΅ΠΌ удСляСтся ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ простотС использования, Ρ‡Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ большС с мСньшими Ρ…Π»ΠΎΠΏΠΎΡ‚Π°ΠΌΠΈ. +developer: Ibrahima Gaye Coulibaly +website: https://omnitools.app/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3187 +repo: https://github.com/iib0011/omni-tools +support: https://github.com/iib0011/omni-tools/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² этом выпускС Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + + - Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ + - URL-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ + - Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ скрытых пСрсонаТСй + - Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ JSON + - ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ + - Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ случайных ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ чисСл + - ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Unix Π² Π΄Π°Ρ‚Ρƒ + + ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступны Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языках, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ испанский, французский, Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΈΠΉ, китайский, японский, Ρ…ΠΈΠ½Π΄ΠΈ, голландский, ΠΏΠΎΡ€Ρ‚ΡƒΠ³Π°Π»ΡŒΡΠΊΠΈΠΉ ΠΈ русский. + + + Новая функция Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ позволяСт Π²Π°ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ваши Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ инструмСнты для быстрого доступа, ΠΈ ΠΎΠ½Π° сохраняСтся Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСго сСанса. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ подходящиС инструмСнты. + + + Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + + - Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с функциями ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ, ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², водяных Π·Π½Π°ΠΊΠΎΠ² ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ. + - Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ PDF для добавлСния тСкста, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, подписСй ΠΈ Ρ„Π»Π°ΠΆΠΊΠΎΠ². + - ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Π² GIF + - Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π·Π²ΡƒΠΊΠ°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ скорости, ΠΎΠ±Ρ€Π΅Π·ΠΊΠ° ΠΈ объСдинСниС + - ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒ Crontab ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° високосного Π³ΠΎΠ΄Π° + - Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Ρ†Π΅Π½Π·ΡƒΡ€Ρ‹ тСкста + - XML Beautifier ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° сайтС https://github.com/iib0011/omni-tools/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/omnitools/docker-compose.yml b/omnitools/docker-compose.yml new file mode 100644 index 0000000..c1e62a0 --- /dev/null +++ b/omnitools/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: omnitools_app_1 + APP_PORT: 80 + + app: + image: iib0011/omni-tools:0.6.0@sha256:3f35a17d8d81caa33c7caec0198eb561dee212a5f48d8303d8f7b182c930fb71 + # Π±Π΅Π· Ρ€ΡƒΡ‚Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ + #user: "1000:1000" + security_opt: + - no-new-privileges:true + restart: on-failure diff --git a/onlyoffice-nextcloud/data/cache/.gitkeep b/onlyoffice-nextcloud/data/cache/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/onlyoffice-nextcloud/data/certs/.gitkeep b/onlyoffice-nextcloud/data/certs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/onlyoffice-nextcloud/data/db/.gitkeep b/onlyoffice-nextcloud/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/onlyoffice-nextcloud/data/logs/.gitkeep b/onlyoffice-nextcloud/data/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/onlyoffice-nextcloud/dfwebos-app.yml b/onlyoffice-nextcloud/dfwebos-app.yml new file mode 100644 index 0000000..2627352 --- /dev/null +++ b/onlyoffice-nextcloud/dfwebos-app.yml @@ -0,0 +1,34 @@ +manifestVersion: 1 +id: onlyoffice-nextcloud +category: files +name: ONLYOFFICE Docs +version: "9.3.1" +tagline: Онлайн-офис для Nextcloud +description: >- + ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΎΠ½Π»Π°ΠΉΠ½-офиса для Nextcloud, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ совмСстно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ тСкстовыми Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, элСктронными Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΈ прСзСнтациями Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + + + ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС ONLYOFFICE Docs ΠΈ слСдуйтС инструкциям Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ Nextcloud, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌΡƒ Π½Π° вашСм DFWebOS. +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/ONLYOFFICE/DocumentServer/blob/master/CHANGELOG.md#931. +developer: Ascensio System SIA +website: https://www.onlyoffice.com/ +dependencies: + - nextcloud +repo: https://github.com/ONLYOFFICE/DocumentServer +support: https://forum.onlyoffice.com/ +port: 3014 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: a4004 +submission: https://github.com/getumbrel/dfwebos-apps/pull/1288 diff --git a/onlyoffice-nextcloud/docker-compose.yml b/onlyoffice-nextcloud/docker-compose.yml new file mode 100644 index 0000000..be28752 --- /dev/null +++ b/onlyoffice-nextcloud/docker-compose.yml @@ -0,0 +1,33 @@ +version: '3.9' +services: + app_proxy: + environment: + APP_HOST: onlyoffice-nextcloud_web_1 + APP_PORT: 3000 + + web: + image: a4004/onlyoffice-nextcloud-web:1.0.4@sha256:774bd9bda641e6be49286921637840efba050fdfd022934dfd9ee9b6ec8d0a63 + restart: on-failure + environment: + - DOCS_ADDRESS=http://$DEVICE_DOMAIN_NAME:$DOCSERVER_PORT + - DOCS_INTERNAL_ADDRESS=http://onlyoffice-nextcloud_documentserver_1 + - NEXTCLOUD_INTERNAL_ADDRESS=http://nextcloud_web_1 + - NEXTCLOUD_WEB_URL=http://$DEVICE_DOMAIN_NAME:$APP_NEXTCLOUD_PORT + + documentserver: + image: onlyoffice/documentserver:9.3.1@sha256:e0a74be8c96fa91a9f55855e86ffb6d4d247d4c8d19dfaef7f441890a1bdbfd3 + restart: on-failure + stop_grace_period: 1m + ports: + - "${DOCSERVER_PORT}:80" + environment: + - JWT_ENABLED=false + - ONLYOFFICE_HTTPS_HSTS_ENABLED=false + - USE_UNAUTHORIZED_STORAGE=true + - ALLOW_PRIVATE_IP_ADDRESS=true + - ALLOW_META_IP_ADDRESS=true + volumes: + - ${APP_DATA_DIR}/data/logs:/var/log/onlyoffice + - ${APP_DATA_DIR}/data/certs:/var/www/onlyoffice/Data + - ${APP_DATA_DIR}/data/cache:/var/lib/onlyoffice + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql diff --git a/onlyoffice-nextcloud/exports.sh b/onlyoffice-nextcloud/exports.sh new file mode 100644 index 0000000..e5e1038 --- /dev/null +++ b/onlyoffice-nextcloud/exports.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +export DOCSERVER_PORT=5672 \ No newline at end of file diff --git a/open-webui/data/open-webui/.gitkeep b/open-webui/data/open-webui/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/open-webui/dfwebos-app.yml b/open-webui/dfwebos-app.yml new file mode 100644 index 0000000..2c4989b --- /dev/null +++ b/open-webui/dfwebos-app.yml @@ -0,0 +1,60 @@ +manifestVersion: 1 +id: open-webui +name: Open WebUI +tagline: ΠžΠ±Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ с модСлями Ollama, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ DeepSeek-R1 ΠΈ LLama, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ OpenAI API. +category: ai +version: "0.9.2" +port: 2876 +description: >- + ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс позволяСт Π²Π°ΠΌ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ модСлями ИИ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ локально Π½Π° вашСм устройствС, ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΠ½Π»Π°ΠΉΠ½-модСлям с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° API. + + + **Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мСстными модСлями ИИ:** + + + πŸ¦™ УстановитС Ollama: НачнитС с установки прилоТСния Ollama ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS. Ollama позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ большиС языковыС ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Llama 3 ΠΈ DeepSeek-R1, прямо Π½Π° вашСм устройствС. + + + ⬇️ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ модСль. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Open WebUI Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² строкС поиска ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«Π˜Π·Π²Π»Π΅Ρ‡ΡŒ с Ollama.comΒ». ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ доступСн Π½Π° https://ollama.com/.. + + + πŸ€– ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β€” запуск DeepSeek-R1 1.5B: Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ модСль DeepSeek-R1 с 1,5 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π²Π²Π΅Π΄ΠΈΡ‚Π΅ deepseek-r1:1.5b Π² строкС поиска ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. Когда всС Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎ, Π²Ρ‹ смоТСтС ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с модСлью прямо Π² Open WebUI. + + + ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΠ΅Ρ€Π΅Π΄ запуском ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° вашСм устройствС достаточно свободной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти для Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ модСль, объСм ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ сбою устройства ΠΈΠ»ΠΈ зависанию устройства. ВсСгда провСряйтС трСбования ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΈΠ»ΠΈ запуском. +developer: Open WebUI +website: https://openwebui.com/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/1977 +repo: https://github.com/open-webui/open-webui +support: https://github.com/open-webui/open-webui/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "" +defaultPassword: "" +dependencies: + - ollama +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ PaddleOCR-vl Π² качСствС ΠΎΠΏΡ†ΠΈΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° извлСчСния содСрТимого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Firecrawl v2 API с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° настраиваСмая Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ ΠΎ событиях калСндаря. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΊΠ»ΡŽΡ‡Π° API Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды CUSTOM_API_KEY_HEADER. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π·Π½Π°Ρ‡ΠΎΠΊ +N Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈΒ», ΠΊΠΎΠ³Π΄Π° доступно Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Π΅Ρ… источников. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ списка ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π·Π° счСт удалСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² с Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΎΠΉ Π½Π° страницы. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы благодаря Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ изобраТСния-заставки. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€Π΅Ρ€Π²Π°Π½Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ инструмСнта MCP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ скачков процСссора. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈΠ· сохранСнных Ρ‡Π°Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ вводятся Π² ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ подсказку. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ изобраТСния Docker ARM64, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ создавали ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ зависимости Python. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠΈΠ΅ ΠΊ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ€Π΅Π·Π΅Ρ€Π² обнаруТСния OAuth для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ совмСстимости с большим количСством сСрвСров MCP. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° отмСнСнная гСнСрация Ρ‡Π°Ρ‚Π°, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‚ΡΡ восходящиС соСдинСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ изобраТСния профиля ΠΌΠΎΠ΄Π΅Π»ΠΈ для прСдотвращСния уязвимостСй ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΏΡƒΡ‚ΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сообщСний Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ для устранСния Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ΅ Π² Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°Ρ…. + - ОбновлСния ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° для финского, корСйского, ΠΏΠΎΡ€Ρ‚ΡƒΠ³Π°Π»ΡŒΡΠΊΠΎΠ³ΠΎ (Бразилия) ΠΈ голландского языков. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/open-webui/open-webui/releases. +path: "" diff --git a/open-webui/docker-compose.yml b/open-webui/docker-compose.yml new file mode 100644 index 0000000..de58f90 --- /dev/null +++ b/open-webui/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: open-webui_web_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + + web: + image: ghcr.io/open-webui/open-webui:v0.9.2@sha256:a7e4796ae894d1e2a0c1824860ade472f35c507608a01c3581377b5c19b0ed49 + volumes: + - ${APP_DATA_DIR}/data/open-webui:/app/backend/data + environment: + # Экспортировано ΠΈΠ· прилоТСния ollama, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² настоящСС врСмя являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. + # Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ зависимости. + OLLAMA_BASE_URL: $APP_OLLAMA_URL + restart: on-failure diff --git a/openclaw/data/linuxbrew/.gitkeep b/openclaw/data/linuxbrew/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/openclaw/dfwebos-app.yml b/openclaw/dfwebos-app.yml new file mode 100644 index 0000000..e8b64cf --- /dev/null +++ b/openclaw/dfwebos-app.yml @@ -0,0 +1,65 @@ +manifestVersion: 1.1 +id: openclaw +name: OpenClaw +tagline: ИИ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ +category: ai +version: "2026.4.14" +port: 18789 +path: "" +description: >- + ΠžΡ‡ΠΈΡ‰Π°Π΅Ρ‚ ваш ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ящик, отправляСт элСктронныС письма, управляСт ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€Π΅ΠΌ, рСгистрируСт вас Π½Π° рСйсы. + ВсС ΠΈΠ· WhatsApp, Telegram ΠΈΠ»ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‡Π°Ρ‚-прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OpenClaw Π½Π° DFWebOS обСспСчиваСт ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ настройку. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ свой ΠΊΠ»ΡŽΡ‡ API ΠΈ Π²ΠΏΠ΅Ρ€Π΅Π΄. + Π‘Π΅Π·Π³ΠΎΠ»ΠΎΠ²Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ настроСн сразу ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ, поэтому ваш Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ ИИ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ со всСм Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ. + + + OpenClaw Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ пСсочницы прилоТСния DFWebOS. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ свободу установки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² своСй собствСнной срСдС. + Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ всС ваши ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ прилоТСния ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ. + + + OpenClaw Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· прокси-сСрвСр прилоТСния DFWebOS, поэтому Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ бСзопасно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ своСму экзСмпляру OpenClaw. + + + ## Π§Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ + - **Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ локально** - Anthropic, OpenAI ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ β€” ваши Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ вашими. На Ρ‚Π²ΠΎΠ΅ΠΌ Π·ΠΎΠ½Ρ‚ΠΈΠΊΠ΅. + - **Π›ΡŽΠ±ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Ρ‡Π°Ρ‚Π°**. ΠžΠ±Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ с Π½ΠΈΠΌ Π² WhatsApp, Telegram, Discord, Slack, Signal ΠΈΠ»ΠΈ iMessage. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π»ΠΈΡ‡Π½Ρ‹Ρ… сообщСниях ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… Ρ‡Π°Ρ‚Π°Ρ…. + - **ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ**. Π—Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ вас ΠΈ становится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вашим. Π’Π°ΡˆΠΈ прСдпочтСния, ваш контСкст, ваш ИИ. + - **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ**. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-страницы, Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с любого сайта. + - **Доступ ΠΊ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмС**. Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Ρ„Π°ΠΉΠ»ΠΎΠ², запуск ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сцСнариСв Π² собствСнной ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСдС. Π’Π°ΡˆΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ прилоТСния ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹. + - **Навыки ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹**. Π Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ возмоТности сообщСства, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π°Π²Ρ‹ΠΊΠΈ сообщСства, ΠΈΠ»ΠΈ создайтС свои собствСнныС. Он Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой собствСнный. +developer: OpenClaw +website: https://openclaw.ai +dependencies: [] +repo: https://github.com/openclaw/openclaw +support: https://github.com/openclaw/openclaw/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² OpenClaw (v2026.4.12 β†’ v2026.4.14): + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° прямой совмСстимости для GPT-5.4-pro Π² поставщикС КодСкса. + - Π’Π΅ΠΌΡ‹ Ρ„ΠΎΡ€ΡƒΠΌΠ° Telegram Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ названия Ρ‚Π΅ΠΌ Π² контСкстС Π°Π³Π΅Π½Ρ‚Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ слишком Ρ€Π°Π½Π½ΠΈΠΉ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ запуска ΠžΠ»Π»Π°ΠΌΡ‹ ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… настроСк Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ поставщик КодСкса, ΡƒΠ΄Π°Π»ΡΡŽΡ‰ΠΈΠΉ всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поставщика Π² models.json. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ инструмСнты PDF, ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΡΡŽΡ‰ΠΈΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ зрСния ΠžΠ»Π»Π°ΠΌΡ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ Slack, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ настроСнныС списки Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ…. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ локального ΠΏΡƒΡ‚ΠΈ влоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π»ΠΎΡΡŒ, Π° Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π»ΠΎΡΡŒ ΠΈΠ·-Π·Π° ошибок. + - МодСль ИИ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΎΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ опасных Ρ„Π»Π°Π³ΠΎΠ² бСзопасности с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта исправлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ запросы ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Google Gemini, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ 404 ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ суффикса URL. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ollama ΡΠΎΠΎΠ±Ρ‰Π°Π»ΠΎΡΡŒ ΠΎ поддСльном количСствС Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌΡƒ ΡƒΠΏΠ»ΠΎΡ‚Π½Π΅Π½ΠΈΡŽ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ поставщики встраивания памяти с прСфиксами, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ OpenAI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π»ΠΈΡΡŒ сбоСм ΠΈΠ·-Π·Π° нСизвСстной ошибки поставщика. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° SSRF Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ хоста ΠΈ локальноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ CDP. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ зависаниС Control интСрфСйс ΠΏΡ€ΠΈ врСдоносной ΡƒΡ†Π΅Π½ΠΊΠ΅ ΠΈΠ·-Π·Π° уязвимости ReDoS. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ настройки Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Ρ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π°ΠΏΡ€Π΅Ρ‚Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ входящих сообщСний. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° запись Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° Π² WhatsApp, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ сбои ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Heartbeat, cron ΠΈ exec пСрСзаписывали ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ сСанса. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ встраивания памяти Ollama ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠ»ΡŽΡ‡ΠΈ кэша с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ.- Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ голосовых Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски исчСзали ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ голосовыС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ AAC Π½Π΅ Ρ‚Ρ€Π°Π½ΡΠΊΡ€ΠΈΠ±ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ сопоставлСния Ρ‚ΠΈΠΏΠΎΠ² MIME. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ встроСнныС ΠΏΡ€ΠΎΠ³ΠΎΠ½Ρ‹ GPT-5.4, Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ²ΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ запроса ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ сопоставлСния усилий ΠΏΠΎ Ρ€Π°ΡΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ. + - ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… исправлСний бСзопасности, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ совмСстимости ΠΏΠΎ ΠΊΠ°Π½Π°Π»Π°ΠΌ, Π°Π³Π΅Π½Ρ‚Π°ΠΌ ΠΈ поставщикам. + - И ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Полная информация Π½Π° https://github.com/openclaw/openclaw/releases. +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/4649 diff --git a/openclaw/docker-compose.yml b/openclaw/docker-compose.yml new file mode 100644 index 0000000..8970f3b --- /dev/null +++ b/openclaw/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: openclaw_gateway_1 + APP_PORT: 18789 + + gateway: + image: ghcr.io/getumbrel/openclaw-umbrel:2026.4.14@sha256:90be9c46cae1902c520196677f127c773305ad80de523b077e7f75ee0fdb48e5 + user: "1000:1000" + init: true + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + - ${APP_DATA_DIR}/data/linuxbrew:/home/linuxbrew + environment: + APP_SEED: ${APP_SEED} diff --git a/openclaw/hooks/pre-start b/openclaw/hooks/pre-start new file mode 100755 index 0000000..0e13cfa --- /dev/null +++ b/openclaw/hooks/pre-start @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -euo pipefail + +# OpenClaw ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π½Π° основС Chromium Π² Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния. +# ПослС Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ»ΠΈ пСрСзапуска прилоТСния одноэлСмСнтныС Ρ„Π°ΠΉΠ»Ρ‹ Chromium ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ +# ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запуск Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. ΠœΡ‹ удаляСм эти ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ здСсь. + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="${APP_DIR}/data" + +FILES_TO_REMOVE=( + "${APP_DATA_DIR}/.openclaw/browser/openclaw/user-data/SingletonLock" + "${APP_DATA_DIR}/.openclaw/browser/openclaw/user-data/SingletonCookie" + "${APP_DATA_DIR}/.openclaw/browser/openclaw/user-data/SingletonSocket" + "${APP_DATA_DIR}/.openclaw/browser/openclaw/user-data/Default/SingletonLock" + "${APP_DATA_DIR}/.openclaw/browser/openclaw/user-data/Default/SingletonCookie" + "${APP_DATA_DIR}/.openclaw/browser/openclaw/user-data/Default/SingletonSocket" +) + +removed_count=0 + +for file in "${FILES_TO_REMOVE[@]}"; do + if [[ -e "${file}" || -L "${file}" ]]; then + rm -f "${file}" + echo "OpenClaw: Removed stale Chromium singleton file: ${file}" + ((removed_count+=1)) + fi +done + +if [[ "${removed_count}" -eq 0 ]]; then + echo "OpenClaw: No stale Chromium singleton files found." +fi + +exit 0 diff --git a/opencode/data/opencode/.gitkeep b/opencode/data/opencode/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/opencode/data/opencode/projects/.gitkeep b/opencode/data/opencode/projects/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/opencode/dfwebos-app.yml b/opencode/dfwebos-app.yml new file mode 100644 index 0000000..b99d343 --- /dev/null +++ b/opencode/dfwebos-app.yml @@ -0,0 +1,71 @@ +manifestVersion: 1 +id: opencode +name: OpenCode +tagline: АгСнт кодирования ИИ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ +category: ai +version: "1.14.28" +port: 4096 +description: >- + OpenCode β€” это Π°Π³Π΅Π½Ρ‚ кодирования ИИ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ вашСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. + Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Π² срСдах Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, IDE ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ + ΠΊΠΎΠ΄, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ слоТныС многосСссионныС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы + ваши ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… поставщиков ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ИИ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Claude, + GPT-4 ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ), ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ контСкстно-зависимыС прСдлоТСния ΠΊΠΎΠ΄Π° Ρ‡Π΅Ρ€Π΅Π· LSP. + интСграция ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ слоТныС Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. OpenCode ΠΌΠΎΠΆΠ΅Ρ‚ + ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ слоТныС + ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Π±Π°Π·Ρ‹ Π½Π° СстСствСнном языкС. + + + Благодаря Π³ΠΈΠ±ΠΊΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ИИ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ + сохранСниС ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ контроля Π½Π°Π΄ вашим ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. АгСнт ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ вашС + структуру ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, зависимости ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ кодирования, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ + дСйствСнныС прСдлоТСния. +developer: Anomaly +website: https://opencode.ai/ +repo: https://github.com/anomalyco/opencode +support: https://github.com/anomalyco/opencode/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + Π’ этом выпускС прСдставлСны Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, исправлСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с сбоСм обновлСния ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ установкС Π±ΡƒΠ»ΠΎΡ‡Π΅ΠΊ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° настраиваСмая ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π°Π³Π΅Π½Ρ‚Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для сохранСния порядка ΠΏΡ€Π°Π²ΠΈΠ» Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄Π° рассуТдСний OpenRouter DeepSeek. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Π±ΠΎΡ€Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Zed для контСкста Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° конфигурация Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰Π°Ρ порядок ΠΏΡ€Π°Π²ΠΈΠ» с ΠΏΠΎΠ»Π½Ρ‹ΠΌ IntelliSense для ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ инструмСнта. + - Запросы Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ LSP Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ свСдСния ΠΎ запросС, ΠΊΠ°ΠΊ опСрация, Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ курсора. + β€” Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Roslyn LSP для Ρ„Π°ΠΉΠ»ΠΎΠ² сцСнариСв Razor, .cshtml ΠΈ C#. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ сообщСния ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° DeepSeek, поэтому рассуТдСния всСгда Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ HTTP API для Π²Ρ‹Π²ΠΎΠ΄Π° списка Ρ„Π°ΠΉΠ»ΠΎΠ², чтСния содСрТимого Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ статуса Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. + β€” Π‘ΠΎΠ±Π»ΡŽΠ΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки рССстра .npmrc ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². + + + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ TUI: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Π±ΠΎΡ€Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Zed для контСкста Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. + - ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ подсказку /connect, Ссли Π½ΠΈ ΠΎΠ΄Π½Π° модСль Π½Π΅ настроСна. + - ВосстановлСн Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ увСдомлСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + - Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρƒ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ рСгистрации. + + + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ настраиваСмыС настройки ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ прСдставлСния сСансов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ зависали Π² ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΌ состоянии ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сСансами. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/anomalyco/opencode/releases. +dependencies: [] +submitter: besoeasy +submission: https://github.com/getumbrel/dfwebos-apps/pull/4718 +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/opencode/docker-compose.yml b/opencode/docker-compose.yml new file mode 100644 index 0000000..f258d1a --- /dev/null +++ b/opencode/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: opencode_app_1 + APP_PORT: 4096 + + app: + image: ghcr.io/anomalyco/opencode:1.14.28@sha256:f4c8e5149659dab845efaf3ea3a1b1bc0dd562ab9e887bf13185cb46ec54ca5f + command: ["web", "--hostname", "0.0.0.0", "--port", "4096"] + restart: on-failure + user: "1000:1000" + environment: + HOME: /home/opencode + volumes: + - ${APP_DATA_DIR}/data/opencode:/home/opencode/ diff --git a/openhands/data/docker/.gitkeep b/openhands/data/docker/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/openhands/data/docker/.gitkeep @@ -0,0 +1 @@ + diff --git a/openhands/data/openhands/.gitkeep b/openhands/data/openhands/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/openhands/data/openhands/.gitkeep @@ -0,0 +1 @@ + diff --git a/openhands/data/workspace/.gitkeep b/openhands/data/workspace/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/openhands/data/workspace/.gitkeep @@ -0,0 +1 @@ + diff --git a/openhands/dfwebos-app.yml b/openhands/dfwebos-app.yml new file mode 100644 index 0000000..94d5055 --- /dev/null +++ b/openhands/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: openhands +name: OpenHands +tagline: Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π³Π΅Π½Ρ‚ ИИ для написания ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. +category: ai +version: "1.6.0" +port: 3993 +description: >- + πŸ‘ OpenHands β€” это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ИИ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π·Π°Π΄Π°Ρ‡ΠΈ программирования ΠΈ ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅. Он ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вашСм собствСнном сСрвСрС DFWebOS ΠΈ ΡƒΠ²Π°ΠΆΠ°Π΅Ρ‚ Π²Π°ΡˆΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, сохраняя всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΠΎΠ΄ вашим ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ. OpenHands ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Π°Π³Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ваши Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ инструкциям, написанным Π½Π° СстСствСнном языкС. + + + ИмСя ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ вашСй локальной Π±Π°Π·Π΅ ΠΊΠΎΠ΄Π° ΠΈ инструмСнтам Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, OpenHands становится ΠΌΠΎΡ‰Π½Ρ‹ΠΌ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ Π² Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ провСсти Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ошибки ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, всСгда Π΄Π΅Ρ€ΠΆΠ° вас Π² курсС. Π•Π³ΠΎ соврСмСнный Π²Π΅Π±-интСрфСйс обСспСчиваСт удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹ со встроСнным Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ΄Π° ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ нСпосрСдствСнно Π½Π° вашСм ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй. + + + Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ OpenHands Π² DFWebOS Π΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° ИИ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ зависит ΠΎΡ‚ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… сСрвисов. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для людСй, заботящихся ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²-Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ профСссионалов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ИИ. + + + ⚠️ OpenHands Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ запускС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ сСанса, это Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ нСсколько ΠΌΠΈΠ½ΡƒΡ‚. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹. +developer: All Hands AI, Inc +website: https://www.all-hands.dev/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2527 +repo: https://github.com/All-Hands-AI/OpenHands +support: https://github.com/All-Hands-AI/OpenHands/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π’ этом выпускС появилось нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ…ΡƒΠΊΠΎΠ² + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ каталанский язык + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° /clear для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ пСсочницу ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ сбросС истории Ρ‡Π°Ρ‚Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° копирования Π² Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + - Π’ мСню ΠΊΠΎΠΌΠ°Π½Π΄ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° /new. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρ‹ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΠ»ΠΈΡΡŒ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка Π² ЭкспортС бСсСды, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ события Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ. + - ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ исправлСний уязвимостСй бСзопасности посрСдством ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ зависимостСй. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/All-Hands-ИИ/OpenHands/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/openhands/docker-compose.yml b/openhands/docker-compose.yml new file mode 100644 index 0000000..dd79aa5 --- /dev/null +++ b/openhands/docker-compose.yml @@ -0,0 +1,51 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: openhands_web_1 + APP_PORT: 3000 + + docker: + image: docker:28.0.4-dind@sha256:ddb0033088b4fab74881ade341a582e3c6c8021b82377703ba1a6106bd3ded44 + privileged: true + network_mode: host + stop_grace_period: 1m + restart: on-failure + environment: + DOCKER_ENSURE_BRIDGE: "dind0:10.32.0.1/16" + entrypoint: /entrypoint.sh + command: > + dockerd + --bridge dind0 + --data-root /data/data + --exec-root /data/exec + --host unix:///data/docker.sock + --pidfile /data/docker.pid + volumes: + - ${APP_DATA_DIR}/entrypoint.sh:/entrypoint.sh + - ${APP_DATA_DIR}/data/docker:/data + + web: + image: ghcr.io/openhands/openhands:1.6.0@sha256:5c0dc26f467bf8e47a6e76308edb7a30af4084b17e23a3460b5467008b12111b + stdin_open: true + tty: true + pull_policy: always + healthcheck: + test: timeout 10s bash -c ':> /dev/tcp/127.0.0.1/3000' || exit 1 + interval: 10s + timeout: 5s + retries: 3 + start_period: 90s + environment: + - SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.openhands.dev/openhands/runtime:0.62-nikolaik@sha256:95fc4d8e753f41d34cd564e78d3d64217c5d22296ea1cb7bf92614c8198de8f5 + - WORKSPACE_MOUNT_PATH=/opt/workspace_base + - LOG_ALL_EVENTS=true + volumes: + - ${APP_DATA_DIR}/data/docker:/var/run:rw + - ${APP_DATA_DIR}/data/openhands:/.openhands-state:rw + - ${APP_DATA_DIR}/data/workspace:/opt/workspace_base:rw + extra_hosts: + - host.docker.internal:host-gateway + - ${APP_DOMAIN}:host-gateway + restart: on-failure diff --git a/openhands/entrypoint.sh b/openhands/entrypoint.sh new file mode 100755 index 0000000..71d910f --- /dev/null +++ b/openhands/entrypoint.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +# Π­Ρ‚ΠΎΡ‚ Ρ…Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, Ссли https://github.com/docker-library/docker/pull/444 Π±ΡƒΠ΄Π΅Ρ‚ объСдинСн. + +# Π£Π΄Π°Π»ΠΈΡ‚Π΅ pid-Ρ„Π°ΠΉΠ» docker, Ссли ΠΎΠ½ сущСствуСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ запуск Docker послС Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹. +pidfile="/var/run/docker.pid" +if [[ -f "${pidfile}" ]] +then + rm -f "${pidfile}" +fi + +# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ nftables Π² качСствС бэкэнда для iptables +for command in iptables iptables-restore iptables-restore-translate iptables-save iptables-translate +do + ln -sf /sbin/xtables-nft-multi /sbin/$command +done + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ мост с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ сущСствуСт. +ensure_bridge_exists() { + local name="${1}" + local ip_range="${2}" + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ мост ΡƒΠΆΠ΅ + if ip link show "${name}" &>/dev/null + then + echo "Bridge '${name}' already exists. Skipping creation." + ip addr show "${name}" + return + fi + + echo "Bridge '${name}' does not exist. Creating..." + ip link add "${name}" type bridge + ip addr add "${ip_range}" dev "${name}" + ip link set "${name}" up + + echo "Bridge '${name}' is now up with IP range '${ip_range}'." + ip addr show "${name}" +} + +if [[ "${DOCKER_ENSURE_BRIDGE}" != "" ]] +then + bridge="${DOCKER_ENSURE_BRIDGE%%:*}" + ip_range="${DOCKER_ENSURE_BRIDGE#*:}" + ensure_bridge_exists "${bridge}" "${ip_range}" +fi + +exec dockerd-entrypoint.sh $@ diff --git a/openreader/data/docstore/.gitkeep b/openreader/data/docstore/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/openreader/data/docstore/.gitkeep @@ -0,0 +1 @@ + diff --git a/openreader/dfwebos-app.yml b/openreader/dfwebos-app.yml new file mode 100644 index 0000000..51fcb63 --- /dev/null +++ b/openreader/dfwebos-app.yml @@ -0,0 +1,46 @@ +manifestVersion: 1 +id: openreader +name: OpenReader +tagline: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для чтСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ прСобразования тСкста Π² Ρ€Π΅Ρ‡ΡŒ +category: ai +version: "2.2.0" +port: 3391 +description: >- + OpenReader WebUI β€” это Π²Π΅Π±-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для чтСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², которая ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ прСобразования тСкста Π² Ρ€Π΅Ρ‡ΡŒ (TTS), позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ тСкст ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ PDF ΠΈ EPUB. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ доступности ΠΈ удобства чтСния, ΠΎΠ½ обСспСчиваСт синхронизированноС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ тСкста, гарантируя, Ρ‡Ρ‚ΠΎ прочитанная Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π°, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡Π΅Π²ΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ·Π²ΡƒΡ‡ΠΈΠ²Π°Π΅Ρ‚ содСрТимоС. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для людСй с Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡΠΌΠΈ зрСния, трудностями с Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ просто ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ слуховой ΡΡ‚ΠΈΠ»ΡŒ обучСния. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ создано с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ совмСстимости ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ любой OpenИИ-совмСстимый бэкэнд TTS, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Kokoro-FastAPI ΠΈ Orpheus-FastAPI. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ синтСза Ρ€Π΅Ρ‡ΠΈ, обСспСчивая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² Π²Ρ‹Π±ΠΎΡ€Π΅ голоса, Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ качСство чтСния. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти сСрвСрныС части, OpenReader WebUI ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ СстСствСнно Π·Π²ΡƒΡ‡Π°Ρ‰ΡƒΡŽ Ρ€Π΅Ρ‡ΡŒ, дСлая Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ сниТая ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΈΠ²Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ. + + + ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн ΠΈ Π»Π΅Π³ΠΎΠΊ, обСспСчивая удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π΅Π· лишнСй слоТности. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ нСпосрСдствСнно Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-интСрфСйс, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ воспроизвСдСния, ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ повСствованиС, Π° Ρ‚Π°ΠΊΠΆΠ΅ эффСктивно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ студСнтов, спСциалистов ΠΈ людСй с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями, обСспСчивая Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² для чтСния для всСх. + + + ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, OpenReader WebUI доступСн ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²Π½ΠΎΡΠΈΡ‚ΡŒ свой Π²ΠΊΠ»Π°Π΄ Π² Π΅Π³ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ возмоТности. ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Π°Ρ Π΄Π΅ΠΌΠΎ-вСрсия доступна Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· нСобходимости установки, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΊΡƒ Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ настройкой локального экзСмпляра. OpenReader WebUI, удСляя особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удобству использования ΠΈ доступности, прСдставляСт собой соврСмСнный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², устраняя Ρ€Π°Π·Ρ€Ρ‹Π² ΠΌΠ΅ΠΆΠ΄Ρƒ тСкстом ΠΈ Ρ€Π΅Ρ‡ΡŒΡŽ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ„ΠΎΡ€ΠΌΠ΅. + + + ⚠️ Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… Π½Π° Π±Π°Π·Π΅ Chromium (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Chrome, Edge, Brave). +developer: Richard Roberson +website: https://openreader.richardr.dev/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2499 +repo: https://github.com/richardr1126/OpenReader-WebUI +support: https://github.com/richardr1126/OpenReader-WebUI/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + НСкоторыС ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ поставщик Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ TTS с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ TTS с Π»ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ голоса ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ настроСк. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ воспроизвСдСниСм TTS с Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΠ°ΡƒΠ·Ρ‹ ΠΈ возобновлСния. + - ОбновлСна Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с Β«Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹Β» Π½Π° Β«Π’Π°ΡˆΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹Β» для Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/richardr1126/openreader/releases. +dependencies: + - kokoro +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/openreader/docker-compose.yml b/openreader/docker-compose.yml new file mode 100644 index 0000000..88a3eaf --- /dev/null +++ b/openreader/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: openreader_web_1 + APP_PORT: 3003 + + web: + image: ghcr.io/richardr1126/openreader-webui:2.2.0@sha256:245e6b8914cff79cc4c1cea5251446b18199fcabb6e865f543f186a44f071baa + user: "1000:1000" + environment: + - API_BASE=http://kokoro_web_1:8880/v1 #Set the TTS API_BASE URL and/or API_KEY as the default for all devices. These values can also be overridden in the UI. + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/docstore:/app/docstore diff --git a/openresty-manager/data/acme/.gitkeep b/openresty-manager/data/acme/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/openresty-manager/data/acme/.gitkeep @@ -0,0 +1 @@ + diff --git a/openresty-manager/data/conf/.gitkeep b/openresty-manager/data/conf/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/openresty-manager/data/conf/.gitkeep @@ -0,0 +1 @@ + diff --git a/openresty-manager/data/data/.gitkeep b/openresty-manager/data/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/openresty-manager/data/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/openresty-manager/data/logs/.gitkeep b/openresty-manager/data/logs/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/openresty-manager/data/logs/.gitkeep @@ -0,0 +1 @@ + diff --git a/openresty-manager/dfwebos-app.yml b/openresty-manager/dfwebos-app.yml new file mode 100644 index 0000000..8cc6efe --- /dev/null +++ b/openresty-manager/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1.1 +id: openresty-manager +name: OpenResty Manager +tagline: Π›Π΅Π³ΠΊΠΎ ΠΈ бСзопасно раскрывайтС свои услуги +category: networking +version: "2.4.2" +port: 34567 +description: >- + Π›Π΅Π³ΠΊΠΎ ΠΈ бСзопасно Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ свои прилоТСния Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. + + + ⚠️ Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, публикуя прилоТСния Π² общСдоступном Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Ρ‰ΠΈΡ‚Ρƒ Π²Ρ…ΠΎΠ΄Π° Π² систСму, ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ раскрытия ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΌΠ΅Ρ€ бСзопасности. + + + πŸ”§ OpenResty Manager ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΡ€Ρ‚ 3080 для HTTP (Π½Π΅Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ) Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ ΠΏΠΎΡ€Ρ‚ 3443 для HTTPS (Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ) Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. + Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваши прилоТСния доступными ΠΈΠ· общСдоступного Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅. + ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ внСшний ΠΏΠΎΡ€Ρ‚ 80 (HTTP) Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ 3080 ΠΈ внСшний ΠΏΠΎΡ€Ρ‚ 443 (HTTPS) Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ 3443. + + + πŸ”ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + + - ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΡŒΡ‚Π΅ красивоС, ΠΌΠΎΡ‰Π½ΠΎΠ΅ ΠΈ простоС Π² использовании Π²Π΅Π±-ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ интСрфСйс. + - БСсплатная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SSL ΠΊΠ°ΠΊ для HTTP-01, Ρ‚Π°ΠΊ ΠΈ для DNS-01 ΠΈΠ»ΠΈ прСдоставлСниС собствСнных сСртификатов SSL. + - ΠœΠΎΡ‰Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ бСзопасности, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа, Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊ Ρ‚ΠΈΠΏΠ° Β«ΠΎΡ‚ΠΊΠ°Π· Π² обслуТивании», аутСнтификация личности. + - Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ управлСния хостом, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» интСрфСйс ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТаСт ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π²Π΅Π±-сайтов ΠΈ управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. +developer: UUSEC +website: https://om.uusec.com/ +submitter: UUSEC +submission: https://github.com/getumbrel/dfwebos-apps/pull/2779 +repo: https://github.com/Safe3/openresty-manager +support: https://github.com/Safe3/openresty-manager/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС: + - Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ своими сайтами. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ со сбоями ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ поисковыми систСмами ΠΈ автоматичСским ΠΏΡ€ΠΎΠ΄Π»Π΅Π½ΠΈΠ΅ΠΌ бСсплатных сСртификатов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ сбои ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SQL. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску: https://github.com/Safe3/openresty-manager/releases. +dependencies: [] +path: "" +defaultUsername: "admin" +defaultPassword: "#Passw0rd" diff --git a/openresty-manager/docker-compose.yml b/openresty-manager/docker-compose.yml new file mode 100644 index 0000000..9dd81f8 --- /dev/null +++ b/openresty-manager/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: openresty-manager_web_1 + APP_PORT: 34567 + + web: + image: uusec/openresty-manager:2.4.2@sha256:008cdf48b77961e04120863991c83fb6fdcfe6b19057281a4e411f283502b26b + hostname: openresty-manager_web_1 + restart: on-failure + ports: + - 3080:80 + - 3443:443 + volumes: + - /etc/localtime:/etc/localtime:ro + - ${APP_DATA_DIR}/data/acme:/opt/om/acme + - ${APP_DATA_DIR}/data/data:/opt/om/data + - ${APP_DATA_DIR}/data/conf:/opt/om/nginx/conf + - ${APP_DATA_DIR}/data/logs:/opt/om/nginx/logs + environment: + - OM_USE_HTTPS=no + - NGINX_RESOLVER=resolver 127.0.0.11 valid=30s ipv6=off local=on; + - PUID=1000 + - PGID=1000 diff --git a/openresty-manager/hooks/pre-start b/openresty-manager/hooks/pre-start new file mode 100755 index 0000000..0174cb2 --- /dev/null +++ b/openresty-manager/hooks/pre-start @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -euo pipefail + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ сущСствуСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΈΠ· старой вСрсии, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ. +LOG_DATA_DIR="${APP_DATA_DIR}/data/logs" +[ ! -d "${LOG_DATA_DIR}" ] && mkdir -p "${LOG_DATA_DIR}" && chown 1000:1000 "${LOG_DATA_DIR}" + +exit 0 diff --git a/ordinals/data/ord/.gitkeep b/ordinals/data/ord/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ordinals/dfwebos-app.yml b/ordinals/dfwebos-app.yml new file mode 100644 index 0000000..4061938 --- /dev/null +++ b/ordinals/dfwebos-app.yml @@ -0,0 +1,41 @@ +manifestVersion: 1 +id: ordinals +category: bitcoin +name: Ordinals +version: "0.27.1" +tagline: ЗапуститС свой собствСнный индСкс, ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ кошСлСк ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для порядковых Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ². +description: > + ЗапуститС свой собствСнный индСкс, ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ кошСлСк ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для порядковых Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ². ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΡƒΠ·Π»Ρƒ Bitcoin Π½Π° DFWebOS для бСзопасной Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° ΠŸΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ надписи ΠΈ Ρ€ΡƒΠ½Ρ‹. + + + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ Π±Π»ΠΎΠΊΠΎΠ² для просмотра порядковых надписСй. Поиск Π±Π»ΠΎΠΊΠΎΠ², Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡΠ°Ρ‚ΠΎΡˆΠΈ. + + + ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку для создания кошСльков, создания надписСй ΠΈ управлСния ΠΈΠΌΠΈ ΠΈ Ρ‚. Π΄. Π‘ΡƒΠ΄ΡƒΡ‰Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ DFWebOS ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° нСпосрСдствСнно Π² интСрфСйсС DFWebOS! + + + ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ отвСтствСнности: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ordinals Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚, Π½Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚ ΠΈ Π½Π΅ ΠΌΠΎΠ΄Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π΅ Bitcoin. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ использовании прилоТСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с NSFW (нСбСзопасно для Ρ€Π°Π±ΠΎΡ‚Ρ‹), Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅Π·Π°ΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌΠΈ. +releaseNotes: >- + ⚠️ Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ с 0.23.3 Π΄ΠΎ 0.27.1 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ пСрСиндСксации ord с нуля ΠΈΠ·-Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ схСмы Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π΅ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ прилоТСния ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ нСсколько Π΄Π½Π΅ΠΉ Π² зависимости ΠΎΡ‚ вашСго оборудования. + + + ⏳ Если ord Π² настоящСС врСмя индСксируСтся, ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСсколько ΠΌΠΈΠ½ΡƒΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ бСзопасно Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹ Π²ΠΎ врСмя этого процСсса. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/ordinals/ord/releases. +developer: Casey Rodarmor +website: https://ordinals.com/ +dependencies: + - bitcoin +repo: https://github.com/casey/ord +support: https://discord.gg/ordinals +port: 4000 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/458 \ No newline at end of file diff --git a/ordinals/docker-compose.yml b/ordinals/docker-compose.yml new file mode 100644 index 0000000..44b89ab --- /dev/null +++ b/ordinals/docker-compose.yml @@ -0,0 +1,29 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: ordinals_ord_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + ord: + image: nmfretz/ord:0.27.1@sha256:241db02d32ab66012724a680b471460ec4d87076aba102013371223d143ec159 + # Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ root + # user: "1000:1000" + restart: on-failure + stop_grace_period: 15m30s + command: "ord server --http" + volumes: + - ${APP_DATA_DIR}/data/ord:/var/lib/ord + - ${APP_BITCOIN_DATA_DIR}:/var/lib/bitcoind:ro + environment: + ORD_DATA_DIR: "/var/lib/ord" + ORD_BITCOIN_DATA_DIR: "/var/lib/bitcoind" + ORD_COOKIE_FILE: "/var/lib/bitcoind/.cookie" + ORD_BITCOIN_RPC_USERNAME: "${APP_BITCOIN_RPC_USER}" + ORD_BITCOIN_RPC_PASSWORD: "${APP_BITCOIN_RPC_PASS}" + ORD_BITCOIN_RPC_URL: "${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}" + ORD_CHAIN: "${APP_BITCOIN_NETWORK}" + ORD_INDEX_RUNES: "true" + # TODO: consider index-sats diff --git a/ordinals/hooks/pre-start b/ordinals/hooks/pre-start new file mode 100755 index 0000000..aa77b28 --- /dev/null +++ b/ordinals/hooks/pre-start @@ -0,0 +1,86 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/../data)" +ORDINALS_DATA_DIR="${APP_DATA_DIR}/ord" +DESIRED_OWNER="1000:1000" + +set_correct_permissions() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown -R "${DESIRED_OWNER}" "${path}" + fi + fi +} + +# ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ созданиС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°ΠΊΠ°Π·Π° для вСрсий Π΄ΠΎ 0.15.0 +if [[ -f "${APP_DATA_DIR}/index.redb" ]]; then + rm -f "${APP_DATA_DIR}/index.redb" + mkdir -p "${ORDINALS_DATA_DIR}" + # установитС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ для Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ для ord + set_correct_permissions "${APP_DATA_DIR}" +fi + +# ΠΏΠ΅Ρ€Π΅ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ord ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ основной вСрсии (Π΄ΠΎ сих ΠΏΠΎΡ€ Π² истории ord это Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ основной вСрсии) +# ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠΎ обновлСнию 0.23: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ с 0.22.x Π΄ΠΎ 0.23.x Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ пСрСиндСксации, см. https://x.com/rodarmor/status/1909286899275251887 +# ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠΎ обновлСнию 0.27.1: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ с 0.23.x Π΄ΠΎ 0.27.1 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ индСксации (вСрсия схСмы 30 -> 34) +# для Π½ΠΎΠ²Ρ‹Ρ… установок этот Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π±Π΅Π·Π²Ρ€Π΅Π΄Π½ΠΎ создан +if [[ ! -f "${APP_DATA_DIR}/AT_LEAST_0-27-1" ]]; then + # ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… для всСх Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½-сСтСй + for file in "${ORDINALS_DATA_DIR}/index.redb" "${ORDINALS_DATA_DIR}/testnet3/index.redb" "${ORDINALS_DATA_DIR}/testnet4/index.redb" "${ORDINALS_DATA_DIR}/regtest/index.redb" "${ORDINALS_DATA_DIR}/signet/index.redb"; do + if [[ -f "${file}" ]]; then + rm -f "${file}" + fi + done + touch "${APP_DATA_DIR}/AT_LEAST_0-27-1" +fi + +# пСрСнСсти всС Ρ„Π°ΠΉΠ»Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… кошСлька Π² ord/wallets, ord/testnet3/wallets, ord/regtest/wallets ΠΈ ord/signet/wallets для вСрсий Π΄ΠΎ 0.18.2: https://github.com/ordinals/ord/releases/tag/0.18.2 +# бСзымянный кошСлСк ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ· `ord wallet create` называСтся ord.redb, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ кошСльки ΠΊΠ°ΠΊ .redb +# ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС Ρ„Π°ΠΉΠ»Ρ‹ .redb, ΠΊΡ€ΠΎΠΌΠ΅ index.redb, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… кошСлька. +# для установок послС 0.18.2 Π±ΡƒΠ΄Π΅Ρ‚ Π±Π΅Π·Π²Ρ€Π΅Π΄Π½ΠΎ создан Ρ„Π°ΠΉΠ» AT_LEAST_0-18-2 + +if [[ ! -f "${APP_DATA_DIR}/AT_LEAST_0-18-2" ]]; then + echo "AT_LEAST_0-18-2 not found, proceeding with wallet database migration if necessary..." + # ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ сСтСвыС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½ΠΎΠ² + declare -a dirs=("" "/testnet3" "/regtest" "/signet") + for dir in "${dirs[@]}"; do + dir_path="${ORDINALS_DATA_DIR}${dir}" + echo "Checking directory: ${dir_path}" + if [[ -d "${dir_path}" ]]; then + echo "${dir_path} exists." + files_to_move=() # an array to store wallet database files to migrate + + # ΠŸΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .redb, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ index.redb. + for file in "${dir_path}"/*.redb; do + if [[ -f "${file}" && "$(basename "${file}")" != "index.redb" ]]; then + files_to_move+=("${file}") + echo "Adding ${file} to move list." + fi + done + + # ΠœΡ‹ создаСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ кошСльков Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ для пСрСмСщСния. Π­Ρ‚ΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ord 0.18.2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ кошСльков Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ создании Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… кошСльков. + if [[ ${#files_to_move[@]} -gt 0 ]]; then + mkdir -p "${dir_path}/wallets" + echo "Creating wallets directory in ${dir_path}/wallets" + for file in "${files_to_move[@]}"; do + echo "Moving ${file} to ${dir_path}/wallets/" + mv "${file}" "${dir_path}/wallets/" + done + else + echo "No wallet files to move in ${dir_path}." + fi + else + echo "${dir_path} does not exist, skipping." + fi + done + touch "${APP_DATA_DIR}/AT_LEAST_0-18-2" + echo "Wallet database migration complete, flag file created." +else + echo "Migration flag file already exists, skipping wallet database migration." +fi + diff --git a/outline/data/app/.gitkeep b/outline/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/outline/data/config/config.yaml.template b/outline/data/config/config.yaml.template new file mode 100644 index 0000000..ae84e42 --- /dev/null +++ b/outline/data/config/config.yaml.template @@ -0,0 +1,27 @@ +issuer: http://${DEVICE_DOMAIN_NAME}:8943/dex + +storage: + type: sqlite3 + config: + file: /var/dex/dex.db + +web: + http: 0.0.0.0:5556 + +staticClients: + - id: outline + redirectURIs: + - 'http://${DEVICE_DOMAIN_NAME}:${APP_OUTLINE_PORT}/auth/oidc.callback' + name: 'Outline' + secret: ${APP_SEED} + +oauth2: + skipApprovalScreen: true + +enablePasswordDB: true + +staticPasswords: + - email: "dfwebos@dfwebos.local" + hash: "${PASSWORD_HASH}" + username: "dfwebos" + userID: "08a8684b-db88-4b73-90a9-3cd1661f5466" diff --git a/outline/data/db/.gitkeep b/outline/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/outline/data/dex/.gitkeep b/outline/data/dex/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/outline/data/redis/.gitkeep b/outline/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/outline/dfwebos-app.yml b/outline/dfwebos-app.yml new file mode 100644 index 0000000..5c0d843 --- /dev/null +++ b/outline/dfwebos-app.yml @@ -0,0 +1,67 @@ +manifestVersion: 1.1 +id: outline +name: Outline +tagline: БоврСмСнная командная Π±Π°Π·Π° Π·Π½Π°Π½ΠΈΠΉ ΠΈ Π²ΠΈΠΊΠΈ. +category: files +version: "1.7.0" +port: 8942 +description: >- + Outline β€” это соврСмСнная, быстрая ΠΈ удобная для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π°Π·Π° Π·Π½Π°Π½ΠΈΠΉ для растущих ΠΊΠΎΠΌΠ°Π½Π΄. Он ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΠΈΠ· Π²ΠΈΠΊΠΈ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π·Π°Π΄Π°Ρ‡ Π² ΠΎΠ΄ΠΈΠ½ красивый интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ваша ΠΊΠΎΠΌΠ°Π½Π΄Π°. + + + Outline ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои знания ΠΈ совмСстно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Благодаря чистому, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятному интСрфСйсу, Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ‚Π°ΠΊΠΈΠΌΠΈ инструмСнтами, ΠΊΠ°ΠΊ Notion, ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, создаСтС Π»ΠΈ Π²Ρ‹ Π²ΠΈΠΊΠΈ-сайт ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ процСссы ΠΈΠ»ΠΈ управляСтС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Outline прСдоставляСт ΠΌΠΎΡ‰Π½ΠΎΠ΅, Π½ΠΎ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ совмСстноС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, красивый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π½Π° основС ΡƒΡ†Π΅Π½ΠΊΠΈ, ΠΌΠΎΡ‰Π½Ρ‹ΠΉ поиск ΠΏΠΎ всСм вашим Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΈ Π³ΠΈΠ±ΠΊΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ встраиваниС ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ², подсвСтку синтаксиса ΠΊΠΎΠ΄Π° ΠΈ Π»Π΅Π³ΠΊΠΎ интСгрируСтся с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ процСссом. + + + Outline Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ бСзопасности. ВсС Π΄Π°Π½Π½Ρ‹Π΅ хранятся локально Π½Π° вашСм сСрвСрС, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π±Π°Π·ΠΎΠΉ Π·Π½Π°Π½ΠΈΠΉ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²Π°ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ коллСкциями. + + + Π­Ρ‚Π° установка DFWebOS Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Dex Π² качСствС ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ поставщика Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ OIDC, Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Π΅Π· слоТной настройки Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. + + + ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΊΠΎΠΌΠ°Π½Π΄ любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΎΡ‚ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… стартапов Π΄ΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ. Outline ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π² соотвСтствии с вашими потрСбностями, сохраняя ΠΏΡ€ΠΈ этом ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ простоту. +backupIgnore: + - data/redis/* +developer: Outline +website: https://www.getoutline.com/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/4129 +repo: https://github.com/outline/outline +support: https://github.com/outline/outline/discussions +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° подписка ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ Π½Π° общСдоступныС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° обновлСниями с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎ различиях. + - Π’Π²Π΅Π΄Π΅Π½Π° пСрСработанная история Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌ сравнСниСм Π»ΡŽΠ±Ρ‹Ρ… Π΄Π²ΡƒΡ… Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΉ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° раскладки справа Π½Π°Π»Π΅Π²ΠΎ (RTL) для Ρ‚Π°ΠΊΠΈΡ… языков, ΠΊΠ°ΠΊ ΠΈΠ²Ρ€ΠΈΡ‚ ΠΈ арабский. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ поиск Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² общСдоступных ΠΏΠ°ΠΏΠΊΠ°Ρ… с быстрым доступом ΠΊ Π½Π΅Π΄Π°Π²Π½ΠΎ просмотрСнным Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ. + - Π‘Π»ΠΎΠΊΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ автоматичСски ΡΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π±Ρ‹Π»ΠΎ Π»Π΅Π³Ρ‡Π΅ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. + - Бсылки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора Π½Π° ΠΎΠ±Ρ‰ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ доступ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Русалки. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ контСкстныС мСню для докумСнтирования элСмСнтов Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. + - БочСтания клавиш Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² мСню, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. + - ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сохраняСтся свойство ΠΏΠΎΠ»Π½ΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½Ρ‹. + - Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° Π·Π°ΠΌΠ΅Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ эмодзи. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² Ρ†Π²Π΅Ρ‚Π°. + - Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ geo:, Maps: ΠΈ Magnetic: Link. + - Акции Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ явно; ΠΎΠ½ΠΈ большС Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ автоматичСски + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности MCP, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ исправлСний, созданиС Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² для локального Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки Π²Ρ…ΠΎΠ΄Π° Π² систСму ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСгистрации ΠΊΠ»ΡŽΡ‡Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ слайдов ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ упоминания послС символов CJK ΠΈ Π²ΠΎ врСмя составлСния IME. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поиска Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠΎΠ² Π±Π΅Π· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ доступности, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/outline/outline. +dependencies: [] +path: "" +defaultUsername: "dfwebos@dfwebos.local" +deterministicPassword: true diff --git a/outline/docker-compose.yml b/outline/docker-compose.yml new file mode 100644 index 0000000..42fa038 --- /dev/null +++ b/outline/docker-compose.yml @@ -0,0 +1,80 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: outline_web_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + web: + image: outlinewiki/outline:1.7.0@sha256:b13ccd15653513a79eb66283bfa91287f5e3d0944d8cb056d5288b8565992de5 + user: "1000:1000" + restart: on-failure + depends_on: + - db + - redis + - dex + environment: + NODE_ENV: production + SECRET_KEY: ${APP_SEED} + UTILS_SECRET: ${APP_SEED} + DATABASE_URL: postgres://outline:outlinepass@outline_db_1:5432/outline + PGSSLMODE: disable + REDIS_URL: redis://outline_redis_1:6379 + URL: "http://${DEVICE_DOMAIN_NAME}:${APP_OUTLINE_PORT}" + PORT: 3000 + FILE_STORAGE: local + FILE_STORAGE_LOCAL_ROOT_DIR: /var/lib/outline/data + FILE_STORAGE_UPLOAD_MAX_SIZE: 262144000 + OIDC_CLIENT_ID: outline + OIDC_CLIENT_SECRET: ${APP_SEED} + OIDC_AUTH_URI: "http://${DEVICE_DOMAIN_NAME}:8943/dex/auth" + OIDC_TOKEN_URI: "http://outline_dex_1:5556/dex/token" + OIDC_USERINFO_URI: "http://outline_dex_1:5556/dex/userinfo" + OIDC_USERNAME_CLAIM: preferred_username + OIDC_DISPLAY_NAME: Dex + OIDC_SCOPES: "openid profile email" + env_file: + - ${APP_DATA_DIR}/settings.env + volumes: + - ${APP_DATA_DIR}/data/app:/var/lib/outline/data + + db: + image: postgres:17.9-alpine@sha256:778d0b486d6daa02b77434d0358ec57a1b21fd8b6d22ac2eef56a33e816928f6 + user: "1000:1000" + restart: on-failure + environment: + POSTGRES_USER: outline + POSTGRES_PASSWORD: outlinepass + POSTGRES_DB: outline + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + healthcheck: + test: ["CMD", "pg_isready", "-d", "outline", "-U", "outline"] + interval: 30s + timeout: 20s + retries: 3 + + redis: + image: redis:8.4.2-alpine@sha256:812a2556fa70318d980d248a65f62a3bdb72c0882e90d96e50d5c8cf2bed438d + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 30s + retries: 3 + + dex: + image: dexidp/dex:v2.45.1@sha256:8499afd690c437f52301efd2b05b2455da5bd2dfc20332cd697dc9937f808462 + user: "1000:1000" + restart: on-failure + ports: + - 8943:5556 + volumes: + - ${APP_DATA_DIR}/data/config:/etc/dex + - ${APP_DATA_DIR}/data/dex:/var/dex + command: ["dex", "serve", "/etc/dex/config.yaml"] diff --git a/outline/exports.sh b/outline/exports.sh new file mode 100644 index 0000000..731b56f --- /dev/null +++ b/outline/exports.sh @@ -0,0 +1 @@ +export APP_OUTLINE_PORT="8942" diff --git a/outline/hooks/pre-start b/outline/hooks/pre-start new file mode 100755 index 0000000..a3404e7 --- /dev/null +++ b/outline/hooks/pre-start @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Dex ΠΈΠ· шаблона +APP_OUTLINE_PORT="${APP_OUTLINE_PORT:-8942}" + +# Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΡΡˆ bcrypt для APP_PASSWORD +# ИспользованиС htpasswd ΠΈΠ· apache2-utils (доступно Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм) +PASSWORD_HASH=$(docker run --rm alpine:latest sh -c "apk add --no-cache apache2-utils > /dev/null 2>&1 && htpasswd -bnBC 10 '' '${APP_PASSWORD}' | tr -d ':\n'") + +cat "${DFWEBOS_ROOT}/app-data/${APP_ID}/data/config/config.yaml.template" \ + | sed "s/\${DEVICE_DOMAIN_NAME}/${DEVICE_DOMAIN_NAME}/g" \ + | sed "s/\${APP_OUTLINE_PORT}/${APP_OUTLINE_PORT}/g" \ + | sed "s|\${PASSWORD_HASH}|${PASSWORD_HASH}|g" \ + | sed "s|\${APP_SEED}|${APP_SEED}|g" \ + > "${DFWEBOS_ROOT}/app-data/${APP_ID}/data/config/config.yaml" diff --git a/outline/settings.env b/outline/settings.env new file mode 100644 index 0000000..218dbba --- /dev/null +++ b/outline/settings.env @@ -0,0 +1,6 @@ +FORCE_HTTPS="false" +ENABLE_UPDATES="true" +WEB_CONCURRENCY=1 +LOG_LEVEL=info + +# большС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… env ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://github.com/outline/outline/blob/main/.env.sample diff --git a/overseerr/data/config/.gitkeep b/overseerr/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/overseerr/dfwebos-app.yml b/overseerr/dfwebos-app.yml new file mode 100644 index 0000000..1f0a788 --- /dev/null +++ b/overseerr/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1 +id: overseerr +category: media +name: Overseerr +version: "1.35.0" +tagline: ΠŸΡ€Π΅ΠΊΡ€Π°ΡΠ½ΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°-ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ +description: >- + Overseerr β€” это инструмСнт управлСния запросами ΠΈ обнаруТСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°, созданный для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ экосистСмой Plex. + + + Overserr рСгулярно сканируСт ваши Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Plex, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты ΡƒΠΆΠ΅ доступны Π½Π° вашСм сСрвСрС. + Он Ρ‚Π°ΠΊΠΆΠ΅ интСгрируСтся с популярными прилоТСниями DVR Radarr ΠΈ Sonarr ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ активности Π²Π½ΡƒΡ‚Ρ€ΠΈ самого Overseerr. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Π’ΠΎ врСмя ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ настройки Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ввСсти IP-адрСс вашСго устройства DFWebOS для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Plex (ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ слуТбам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Radarr ΠΈ Sonarr). + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ IP-адрСс вашСго устройства, посСтив панСль администратора вашСго ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнт сканирования IP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Angry IP Scanner. +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько исправлСний ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… подписок WebPush ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ увСдомлСниями. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΊΡ€Π°ΠΉΠ½ΠΈΠ΅ случаи, ΠΊΠΎΠ³Π΄Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ обновляло запросы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° синхронизация доступности для доступных Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»ΠΎΠ². + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ сСзонами ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ прСдлоТСниями. + - ОбновлСн URL-адрСс списка наблюдСния Plex. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ для Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… сцСнариСв статуса. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° настройка сСрии Π½Π° частично доступный статус. + + + НовыС возмоТности: + - ОбновлСно Π΄ΠΎ Node 20 для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ бСзопасности. + - ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ для Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Seerr + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΊΠ° прилоТСния PWA. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/sct/overseerr/releases. +developer: Ryan Cohen +website: https://overseerr.dev/ +dependencies: [] +repo: https://github.com/sct/overseerr +support: https://github.com/sct/overseerr/issues +port: 5055 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/607 diff --git a/overseerr/docker-compose.yml b/overseerr/docker-compose.yml new file mode 100644 index 0000000..55b69c5 --- /dev/null +++ b/overseerr/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: overseerr_server_1 + APP_PORT: 5055 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: linuxserver/overseerr:1.35.0@sha256:53a1b839ffa81f139e1552840772bff8a5d13f5c78a69cce22458b9a6cd0844d + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + restart: on-failure diff --git a/owncloud/data/app/.gitkeep b/owncloud/data/app/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/owncloud/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/owncloud/data/config/.gitkeep b/owncloud/data/config/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/owncloud/data/config/.gitkeep @@ -0,0 +1 @@ + diff --git a/owncloud/data/db/.gitkeep b/owncloud/data/db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/owncloud/data/db/.gitkeep @@ -0,0 +1 @@ + diff --git a/owncloud/data/redis/.gitkeep b/owncloud/data/redis/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/owncloud/data/redis/.gitkeep @@ -0,0 +1 @@ + diff --git a/owncloud/dfwebos-app.yml b/owncloud/dfwebos-app.yml new file mode 100644 index 0000000..f5afcf4 --- /dev/null +++ b/owncloud/dfwebos-app.yml @@ -0,0 +1,47 @@ +manifestVersion: 1 +id: owncloud +name: ownCloud +tagline: Π£ΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π»Π°ΠΊΠΎ для Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² +category: files +version: "10.16.0" +port: 8666 +description: >- + ☁️ ownCloud β€” это комплСксноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для прСдоставлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сочСтаСт Π² сСбС инструмСнты управлСния Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Он позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ, Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Ρ„Π°ΠΉΠ»Ρ‹ Π² бСзопасной Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ отслСТиваниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ OwnCloud Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… устройствах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹, смартфоны ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Ρ‹, гарантируя, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ всСгда Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ самым послСдним вСрсиям, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΎΠ½ΠΈ находятся ΠΈ ΠΊΠ°ΠΊΠΎΠ΅ устройство ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности ΠΎΠ±ΠΌΠ΅Π½Π°, позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ, Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈΠ»ΠΈ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ сСмьи. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° доступ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ способствуя совмСстной Ρ€Π°Π±ΠΎΡ‚Π΅. ownCloud Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, позволяя нСскольким ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вмСстС, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ бизнСс-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, акадСмичСская Ρ€Π°Π±ΠΎΡ‚Π° ΠΈΠ»ΠΈ Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. + + + Помимо Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ хранСния ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ownCloud Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ряд ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ калСндарями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ встрСчи ΠΈ события, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ для хранСния ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ доступны с любого устройства. Π­Ρ‚ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ OwnCloud Π² Π½Π΅Ρ‡Ρ‚ΠΎ большСС, Ρ‡Π΅ΠΌ просто Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²; ΠΎΠ½ становится Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ управлСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ аспСктами повсСднСвной ΠΆΠΈΠ·Π½ΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹. + + + Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ β€” ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ аспСкты ownCloud. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° удСляСт большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, прСдлагая Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ доступа ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ информация остаСтся Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ ΠΈΡ… Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. + + + Π’ Ρ†Π΅Π»ΠΎΠΌ ownCloud сочСтаСт Π² сСбС удобство ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° с ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ инструмСнтами для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, прСдоставляя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ срСду для эффСктивного управлСния своим Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ Π½Π° ΠΈΡ… собствСнных условиях. +developer: ownCloud GmbH +website: https://owncloud.com +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3532 +repo: https://github.com/owncloud-docker/server +support: https://github.com/owncloud-docker/server/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ бСзопасности ΠΈ нСсколько ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ: + - ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… услуг. + - Подсказки ΠΎ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ доступа. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ поиск тСкста Π½Π° китайском ΠΈ японском языках. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° нСдоступных ΠΎΠ±Ρ‰ΠΈΡ… рСсурсов. + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для администратора для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности. + - По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊΠ° Phar для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://doc.owncloud.com/server_release_notes.html. +dependencies: [] +path: "" +defaultUsername: "admin" +deterministicPassword: true diff --git a/owncloud/docker-compose.yml b/owncloud/docker-compose.yml new file mode 100644 index 0000000..0f8c33c --- /dev/null +++ b/owncloud/docker-compose.yml @@ -0,0 +1,71 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: owncloud_server_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + + server: + image: owncloud/server:10.16.0@sha256:62c93574d2bd0f98d17ac1a541f703653822e4572a628dcf993a8e65b2400e97 + # Π‘Π΅Π· Ρ€ΡƒΡ‚Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ + #user: "1000:1000" + restart: on-failure + depends_on: + - mariadb + - redis + environment: + - OWNCLOUD_DOMAIN=${DEVICE_DOMAIN_NAME}:8080 + - OWNCLOUD_TRUSTED_DOMAINS=${DEVICE_DOMAIN_NAME},${DEVICE_HOSTNAME},${APP_OWNCLOUD_LOCAL_IPS} + - OWNCLOUD_DB_TYPE=mysql + - OWNCLOUD_DB_NAME=owncloud + - OWNCLOUD_DB_USERNAME=owncloud + - OWNCLOUD_DB_PASSWORD=owncloud + - OWNCLOUD_DB_HOST=owncloud_mariadb_1 + - OWNCLOUD_ADMIN_USERNAME=admin + - OWNCLOUD_ADMIN_PASSWORD=${APP_PASSWORD} + - OWNCLOUD_MYSQL_UTF8MB4=true + - OWNCLOUD_REDIS_ENABLED=true + - OWNCLOUD_REDIS_HOST=owncloud_redis_1 + - OWNCLOUD_LOG_LEVEL=2 + healthcheck: + test: ["CMD", "/usr/bin/healthcheck"] + interval: 30s + timeout: 10s + retries: 5 + volumes: + - ${APP_DATA_DIR}/data/app:/mnt/data + - ${APP_DATA_DIR}/data/config:/var/www/html/config + + mariadb: + image: mariadb:10.11@sha256:24bb6e3d8e46f4581ddcc2b2c22fd78c99c77ac4e3fb7c9aba3a5c4c4d934ca2 + user: "1000:1000" + restart: on-failure + environment: + - MYSQL_ROOT_PASSWORD=owncloud + - MYSQL_USER=owncloud + - MYSQL_PASSWORD=owncloud + - MYSQL_DATABASE=owncloud + - MARIADB_AUTO_UPGRADE=1 + command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"] + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"] + interval: 10s + timeout: 5s + retries: 5 + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql + + redis: + image: redis:6-alpine@sha256:7fe72c486b910f6b1a9769c937dad5d63648ddee82e056f47417542dd40825bb + user: "1000:1000" + restart: on-failure + command: ["--databases", "1"] + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 + volumes: + - ${APP_DATA_DIR}/data/redis:/data diff --git a/owncloud/exports.sh b/owncloud/exports.sh new file mode 100644 index 0000000..adbadc7 --- /dev/null +++ b/owncloud/exports.sh @@ -0,0 +1,2 @@ +local_ips=$(hostname --all-ip-addresses 2> /dev/null | tr ' ' ',') || local_ips="" +export APP_OWNCLOUD_LOCAL_IPS="${local_ips}" diff --git a/palmr/data/.gitkeep b/palmr/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/palmr/dfwebos-app.yml b/palmr/dfwebos-app.yml new file mode 100644 index 0000000..b9a622f --- /dev/null +++ b/palmr/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1.2 +id: palmr +category: files +name: Palmr +version: "3.3.2-beta" +tagline: ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Palmr большС Π½Π΅ поддСрТиваСтся ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. это ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: https://github.com/kyantech/Palmr/issues/418. + + + πŸŒ΄ΠŸΠ°Π»ΡŒΠΌΡ€. β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ориСнтированная Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. + + + Он позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ссылки ΠΈ + ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа Π±Π΅Π· отслСТивания ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. + + + Palmr создан для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΈ бСзопасного ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ бСсплатно. +developer: kyantech +website: https://palmr.kyantech.com.br/ +dependencies: [] +repo: https://github.com/kyantech/Palmr +support: https://github.com/kyantech/Palmr/issues +port: 8075 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +torOnly: false +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3945 +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ бСзопасности. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ измСнСния Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - 🚨 ОбновлСн Next.js для устранСния критичСской уязвимости ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠ΄Π° (CVE-2025-51605). + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° послС создания ΠΈ пСрСимСнования ΠΏΠ°ΠΏΠΎΠΊ. + - УстранСны сбои ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² (Π±ΠΎΠ»Π΅Π΅ 10Β Π“Π‘) Π½Π° S3-совмСстимом Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Firefox. + - УстранСна ошибка 401 ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ доступа для Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 100Β ΠœΠ‘ ΠΈ Π±ΠΎΠ»Π΅Π΅. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ просмотром Π°ΡƒΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΡ€ΠΈ использовании ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ 2FA Π½Π° смартфонах. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/kyantech/Palmr/releases. +disabled: true diff --git a/palmr/docker-compose.yml b/palmr/docker-compose.yml new file mode 100644 index 0000000..52aa13a --- /dev/null +++ b/palmr/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: palmr_server_1 + APP_PORT: 5487 + PROXY_AUTH_ADD: "false" + + server: + image: kyantech/palmr:v3.3.2-beta@sha256:043dd6cdbb4d9985b376915020fb26c2037b19876674273eac310ab04cdf16f4 + restart: on-failure + stop_grace_period: 1m + environment: + PALMR_UID: 1000 + PALMR_GID: 1000 + volumes: + - ${APP_DATA_DIR}/data:/app/server diff --git a/paperless/data/data/.gitkeep b/paperless/data/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/paperless/data/media/.gitkeep b/paperless/data/media/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/paperless/data/pgdata/.gitkeep b/paperless/data/pgdata/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/paperless/data/redisdata/.gitkeep b/paperless/data/redisdata/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/paperless/dfwebos-app.yml b/paperless/dfwebos-app.yml new file mode 100644 index 0000000..13ca1f7 --- /dev/null +++ b/paperless/dfwebos-app.yml @@ -0,0 +1,53 @@ +manifestVersion: 1 +id: paperless +category: files +name: Paperless-ngx +version: "2.20.15" +tagline: ΠŸΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅ свои физичСскиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΎΠ½Π»Π°ΠΉΠ½-Π°Ρ€Ρ…ΠΈΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ поиска. +description: >- + Paperless-ngx β€” это поддСрТиваСмая сообщСством систСма управлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ваши физичСскиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΎΠ½Π»Π°ΠΉΠ½-Π°Ρ€Ρ…ΠΈΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ поиска, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ мСньшС Π±ΡƒΠΌΠ°Π³ΠΈ. + + - ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΈ индСксируйтС отсканированныС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Π³ΠΎΠ², коррСспондСнтов, Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Ρ‚.Β Π΄. + + - Π’Π°ΡˆΠΈ Π΄Π°Π½Π½Ρ‹Π΅ хранятся локально Π½Π° вашСм сСрвСрС ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. + + - ВыполняСт распознаваниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…, добавляя тСкст с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ поиска ΠΈ Π²Ρ‹Π±ΠΎΡ€Π°, Π΄Π°ΠΆΠ΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, отсканированныС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с изобраТСниями. + + - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²ΠΈΠΆΠΎΠΊ Tesseract с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для распознавания Π±ΠΎΠ»Π΅Π΅ 100 языков. + + - Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PDF/A, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ хранСния вмСстС с Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°ΠΌΠΈ. + + - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ для автоматичСского добавлСния Ρ‚Π΅Π³ΠΎΠ², коррСспондСнтов ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ваши Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹. + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ PDF, изобраТСния, тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Office (эквивалСнты Word, Excel, Powerpoint ΠΈ LibreOffice)1 ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + - Π‘Π΅Π·Π±ΡƒΠΌΠ°ΠΆΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ ваши Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π° дискС. ИмСна Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π±Π΅Π·Π±ΡƒΠΌΠ°ΠΆΠ½Ρ‹ΠΌ способом, ΠΈ ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ свободно Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ, присваивая Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ. +releaseNotes: >- + ⚠️ Π’ этом выпускС устранСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° бСзопасности, ΠΈ Π΅Π³ΠΎ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²Ρ…ΠΎΠ΄ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· систСмы для использования Ρ‚ΠΎΠ»ΡŒΠΊΠΎ бСзопасных ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ области пСрСчислСния ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ событиС измСнСния, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ запроса настраиваСмого поля мСняСт Ρ‚ΠΈΠΏ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ нСдопустимыС запросы, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ API. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/paperless-ngx/paperless-ngx/releases. +backupIgnore: + - data/redisdata/* +developer: Paperless-ngx Community +website: https://docs.paperless-ngx.com/ +dependencies: [] +repo: https://github.com/paperless-ngx/paperless-ngx +support: https://github.com/paperless-ngx/paperless-ngx/discussions +port: 2349 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "admin" +deterministicPassword: true +submitter: highghlow +submission: https://github.com/getumbrel/dfwebos-apps/pull/1047 diff --git a/paperless/docker-compose.yml b/paperless/docker-compose.yml new file mode 100644 index 0000000..4bdfc37 --- /dev/null +++ b/paperless/docker-compose.yml @@ -0,0 +1,62 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: paperless_webserver_1 + APP_PORT: 8000 + PROXY_AUTH_ADD: 'false' + + broker: + image: docker.io/library/redis:7@sha256:d6ecc832969a4827645a083da38345327b3447772fe907e7d4311c79b4e3a06e + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redisdata:/data + + db: + image: docker.io/library/postgres:16@sha256:46aa2ee5d664b275f05d1a963b30fff60fb422b4b594d509765c42db46d48881 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/pgdata:/var/lib/postgresql/data + environment: + POSTGRES_DB: paperless + POSTGRES_USER: paperless + POSTGRES_PASSWORD: paperless + + webserver: + image: ghcr.io/paperless-ngx/paperless-ngx:2.20.15@sha256:6c86cad803970ea782683a8e80e7403444c5bf3cf70de63b4d3c8e87500db92f + restart: on-failure + depends_on: + - db + - broker + - gotenberg + - tika + volumes: + - ${APP_DATA_DIR}/data/data:/usr/src/paperless/data + - ${APP_DATA_DIR}/data/media:/usr/src/paperless/media + # TODO: move these inside the paperless app data dir once DFWebOS supports navigating to it via the UI + - ${DFWEBOS_ROOT}/data/storage/paperless/export:/usr/src/paperless/export + - ${DFWEBOS_ROOT}/data/storage/paperless/consume:/usr/src/paperless/consume + environment: + PAPERLESS_REDIS: redis://paperless_broker_1:6379 + PAPERLESS_DBHOST: paperless_db_1 + PAPERLESS_TIKA_ENABLED: 1 + PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://paperless_gotenberg_1:3000 + PAPERLESS_TIKA_ENDPOINT: http://paperless_tika_1:9998 + PAPERLESS_ADMIN_USER: admin + PAPERLESS_ADMIN_PASSWORD: $APP_PASSWORD + + gotenberg: + image: docker.io/gotenberg/gotenberg:7.10@sha256:d03b8a04c6e6c5e568b38f57352266dee4674849b71818774025f8f48d869a9a + restart: on-failure + + # ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ gotenberg chromium ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСобразования Ρ„Π°ΠΉΠ»ΠΎΠ² .eml. ΠœΡ‹ Π½Π΅ + # Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ внСшний ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ пиксСли отслСТивания ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ JavaScript. + command: + - "gotenberg" + - "--chromium-disable-javascript=true" + - "--chromium-allow-list=file:///tmp/.*" + + tika: + image: apache/tika:3.2.3.0@sha256:c0154cb95587cde64be74f35ada1a2bd7892219f3f0ac3c9dc6cab34046b3573 + restart: on-failure diff --git a/paperless/exports.sh b/paperless/exports.sh new file mode 100755 index 0000000..3793640 --- /dev/null +++ b/paperless/exports.sh @@ -0,0 +1,32 @@ +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π±Π΅Π·Π±ΡƒΠΌΠ°ΠΆΠ½ΠΎΠ³ΠΎ потрСблСния ΠΈ экспорта созданы с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. +DFWEBOS_DATA_DIR="${DFWEBOS_ROOT}/data" +DFWEBOS_DATA_STORAGE_DIR="${DFWEBOS_DATA_DIR}/storage" +DFWEBOS_DATA_STORAGE_PAPERLESS_DIR="${DFWEBOS_DATA_STORAGE_DIR}/paperless" +DFWEBOS_DATA_STORAGE_PAPERLESS_CONSUME_DIR="${DFWEBOS_DATA_STORAGE_PAPERLESS_DIR}/consume" +DFWEBOS_DATA_STORAGE_PAPERLESS_EXPORT_DIR="${DFWEBOS_DATA_STORAGE_PAPERLESS_DIR}/export" +DESIRED_OWNER="1000:1000" + +if [[ ! -d "${DFWEBOS_DATA_STORAGE_PAPERLESS_CONSUME_DIR}" ]]; then + mkdir -p "${DFWEBOS_DATA_STORAGE_PAPERLESS_CONSUME_DIR}" +fi + +if [[ ! -d "${DFWEBOS_DATA_STORAGE_PAPERLESS_EXPORT_DIR}" ]]; then + mkdir -p "${DFWEBOS_DATA_STORAGE_PAPERLESS_EXPORT_DIR}" +fi + +set_paperless_correct_permissions() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +set_paperless_correct_permissions "${DFWEBOS_DATA_STORAGE_DIR}" +set_paperless_correct_permissions "${DFWEBOS_DATA_STORAGE_PAPERLESS_DIR}" +set_paperless_correct_permissions "${DFWEBOS_DATA_STORAGE_PAPERLESS_CONSUME_DIR}" +set_paperless_correct_permissions "${DFWEBOS_DATA_STORAGE_PAPERLESS_EXPORT_DIR}" diff --git a/papra/data/.gitkeep b/papra/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/papra/dfwebos-app.yml b/papra/dfwebos-app.yml new file mode 100644 index 0000000..4183514 --- /dev/null +++ b/papra/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1 +id: papra +name: Papra +tagline: ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для архивирования Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² +category: files +version: "26.0.0" +description: >- + Papra β€” это минималистичная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для управлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ архивирования. Он спроСктирован Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ простым Π² использовании ΠΈ доступным для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ. + + + Papra β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для долгосрочного хранСния ΠΈ управлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, подобная Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ Π°Ρ€Ρ…ΠΈΠ²Ρƒ Π²Π°ΡˆΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². + + + Π—Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΎ Ρ‡Π΅ΠΊΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ€ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΊΡƒΠΏΠΈΠ»ΠΈ своСму Π΄Ρ€ΡƒΠ³Ρƒ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρƒ, ΠΈΠ»ΠΈ ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ Π½Π° свой Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½. Π‘ Papra Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ свои Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π²Π°ΠΌ понадобятся. +developer: Papra +website: https://papra.app +submitter: Kanishk Pachauri +repo: https://github.com/papra-hq/papra +submission: https://github.com/getumbrel/dfwebos-apps/pull/3949 +support: https://github.com/papra-hq/papra/issues +port: 8112 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. + - Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ поисковыми запросами. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ поиска Π·Π° счСт использования ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ Π² индСксС. + - АвтоматичСскоС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ»ΠΈ администратора ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅ΠΌΡƒΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ большС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²Β» Π² быстрый поиск, ΠΊΠΎΠ³Π΄Π° Π½Π΅ отобраТаСтся большС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° информация ΠΎ страницС ΠΈ модальноС ΠΎΠΊΠ½ΠΎ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ вСрсии. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/papra-hq/papra/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/papra/docker-compose.yml b/papra/docker-compose.yml new file mode 100644 index 0000000..8e3b07c --- /dev/null +++ b/papra/docker-compose.yml @@ -0,0 +1,16 @@ +services: + app_proxy: + environment: + APP_HOST: papra_server_1 + APP_PORT: 1221 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: ghcr.io/papra-hq/papra:26.0.0-rootless@sha256:e41d2237a59b072063e4059a85492cb11fe4aefb706851becbbce88c7c2ae072 + user: 1000:1000 + restart: on-failure + environment: + - AUTH_SECRET=${APP_SEED} + - APP_BASE_URL=http://${DEVICE_DOMAIN_NAME}:8112 + volumes: + - ${APP_DATA_DIR}/data:/app/app-data diff --git a/passky-client/dfwebos-app.yml b/passky-client/dfwebos-app.yml new file mode 100644 index 0000000..b387a74 --- /dev/null +++ b/passky-client/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1 +id: passky-client +category: files +name: Passky Client +version: "8.1.1" +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ, соврСмСнный, Π»Π΅Π³ΠΊΠΈΠΉ, с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ бСзопасный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ +description: >- + Π‘ Passky Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈ бСзопасно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС свои ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. + + + ΠŸΠΎΠΏΡ€ΠΎΡ‰Π°ΠΉΡ‚Π΅ΡΡŒ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ нСсколько слоТных ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ: с Passky всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, β€” это ΠΎΠ΄ΠΈΠ½ мастСр-ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для доступа ΠΊΠΎ всСм вашим ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌ записям. + + + Passky ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ для обСспСчСния бСзопасности ΠΈ надСТности Π²Π°ΡˆΠΈΡ… ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ спокойны, зная, Ρ‡Ρ‚ΠΎ ваша ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ информация Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π°. + + + ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Passky прост Π² использовании ΠΈ доступСн Π½Π° всСх Π²Π°ΡˆΠΈΡ… устройствах, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ своим паролям, Π³Π΄Π΅ Π±Ρ‹ Π²Ρ‹ Π½ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Passky сСгодня ΠΈ Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ свою ΠΎΠ½Π»Π°ΠΉΠ½-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ! +developer: Rabbit Company LLC +website: https://passky.org +dependencies: [] +repo: https://github.com/Rabbit-Company/Passky-Website +support: https://passky.org/contact +port: 5052 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Rabbit Company LLC +submission: https://github.com/getumbrel/dfwebos-apps/pull/385 +releaseNotes: "" \ No newline at end of file diff --git a/passky-client/docker-compose.yml b/passky-client/docker-compose.yml new file mode 100644 index 0000000..498332a --- /dev/null +++ b/passky-client/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: passky-client_web_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + web: + image: rabbitcompany/passky-client:8.1.1@sha256:9c144ceb22920c60dc659c8635f48a92be4bffdb7dc768aba0d26a9a42c3005d + restart: on-failure + stop_grace_period: 1m diff --git a/passky-server/data/passky/.gitkeep b/passky-server/data/passky/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/passky-server/dfwebos-app.yml b/passky-server/dfwebos-app.yml new file mode 100644 index 0000000..559adef --- /dev/null +++ b/passky-server/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1 +id: passky-server +category: files +name: Passky Server +version: "8.1.8" +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ, соврСмСнный, Π»Π΅Π³ΠΊΠΈΠΉ, с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ бСзопасный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ +description: >- + Π‘ Passky Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈ бСзопасно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС свои ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. + + + ΠŸΠΎΠΏΡ€ΠΎΡ‰Π°ΠΉΡ‚Π΅ΡΡŒ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ нСсколько слоТных ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ: с Passky всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, β€” это ΠΎΠ΄ΠΈΠ½ мастСр-ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для доступа ΠΊΠΎ всСм вашим ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌ записям. + + + Passky ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ для обСспСчСния бСзопасности ΠΈ надСТности Π²Π°ΡˆΠΈΡ… ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ спокойны, зная, Ρ‡Ρ‚ΠΎ ваша ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ информация Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π°. + + + ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Passky прост Π² использовании ΠΈ доступСн Π½Π° всСх Π²Π°ΡˆΠΈΡ… устройствах, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ своим паролям, Π³Π΄Π΅ Π±Ρ‹ Π²Ρ‹ Π½ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Passky сСгодня ΠΈ Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ свою ΠΎΠ½Π»Π°ΠΉΠ½-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ! +developer: Rabbit Company LLC +website: https://passky.org +dependencies: [] +repo: https://github.com/Rabbit-Company/Passky-Server +support: https://passky.org/contact +port: 5050 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: admin +deterministicPassword: true +releaseNotes: > + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Rabbit-Company/Passky-Server/releases. +submitter: Rabbit Company LLC +submission: https://github.com/getumbrel/dfwebos-apps/pull/384 \ No newline at end of file diff --git a/passky-server/docker-compose.yml b/passky-server/docker-compose.yml new file mode 100644 index 0000000..f956cf7 --- /dev/null +++ b/passky-server/docker-compose.yml @@ -0,0 +1,63 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: passky-server_server_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + server: + image: rabbitcompany/passky-server:8.1.8@sha256:e9bf7b9ecdf4904f1e3893b5968e98cbb61d4984bca1482081df2f59df05fca6 + restart: on-failure + stop_grace_period: 1m + environment: + SERVER_LOCATION: "US" + SERVER_CORES: 1 + ADMIN_USERNAME: "admin" + ADMIN_PASSWORD: "${APP_PASSWORD}" + CF_TURNSTILE_SITE_KEY: "1x00000000000000000000AA" + CF_TURNSTILE_SECRET_KEY: "1x0000000000000000000000000000000AA" + DATABASE_ENGINE: sqlite + DATABASE_FILE: passky + MYSQL_HOST: "" + MYSQL_PORT: 3306 + MYSQL_DATABASE: "passky" + MYSQL_USER: "passky" + MYSQL_PASSWORD: "" + MYSQL_SSL: "false" + MYSQL_SSL_CA: "/etc/ssl/certs/ca-certificates.crt" + MYSQL_CACHE_MODE: 0 + REDIS_HOST: "127.0.0.1" + REDIS_PORT: 6379 + REDIS_PASSWORD: "" + REDIS_LOCAL_HOST: "127.0.0.1" + REDIS_LOCAL_PORT: 6379 + REDIS_LOCAL_PASSWORD: "" + MAIL_ENABLED: "false" + ACCOUNT_MAX: 100 + ACCOUNT_MAX_PASSWORDS: 1000 + ACCOUNT_PREMIUM: -1 + YUBI_CLOUD: "https://api.yubico.com/wsapi/2.0/verify" + YUBI_ID: 67857 + LIMITER_ENABLED: "true" + LIMITER_GET_INFO: -1 + LIMITER_GET_STATS: -1 + LIMITER_GET_TOKEN: 3 + LIMITER_GET_PASSWORDS: 2 + LIMITER_SAVE_PASSWORD: 2 + LIMITER_EDIT_PASSWORD: 2 + LIMITER_DELETE_PASSWORD: 2 + LIMITER_DELETE_PASSWORDS: 10 + LIMITER_CREATE_ACCOUNT: 10 + LIMITER_DELETE_ACCOUNT: 10 + LIMITER_IMPORT_PASSWORDS: 10 + LIMITER_FORGOT_USERNAME: 60 + LIMITER_ENABLE_2FA: 10 + LIMITER_DISABLE_2FA: 10 + LIMITER_ADD_YUBIKEY: 10 + LIMITER_REMOVE_YUBIKEY: 10 + LIMITER_UPGRADE_ACCOUNT: 10 + LIMITER_GET_REPORT: -1 + volumes: + - ${APP_DATA_DIR}/data/passky:/var/www/html/databases \ No newline at end of file diff --git a/pastefy/data/db/.gitkeep b/pastefy/data/db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/pastefy/data/db/.gitkeep @@ -0,0 +1 @@ + diff --git a/pastefy/dfwebos-app.yml b/pastefy/dfwebos-app.yml new file mode 100644 index 0000000..cab04ae --- /dev/null +++ b/pastefy/dfwebos-app.yml @@ -0,0 +1,39 @@ +manifestVersion: 1 +id: pastefy +name: Pastefy +tagline: ΠŸΡ€ΠΎΡΡ‚Π°Ρ вставка для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° +category: developer +version: "7.1.6" +port: 9900 +description: >- + PastefyΒ β€” это удобная ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ быстро ΠΈ бСзопасно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ тСкстом, ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ. Pastefy идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΡ€Π΅Π°Ρ‚ΠΈΠ²Ρ‰ΠΈΠΊΠΎΠ² ΠΈ всСх, ΠΊΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ идСями Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ простой способ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ Π±Π΅Π· нСобходимости ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚ΡƒΠ΄Π° ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. + + + Одним Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свой тСкст ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠΌ. Для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ бСзопасности Pastefy Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ частныС вставки, прСдоставляя Π²Π°ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΊ вашСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. + + + Π”Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° с ΠΊΠΎΠ»Π»Π΅Π³ΠΎΠΉ, отслСТиваСтС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ просто быстро сохраняСтС Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅, Pastefy Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ быстрСС, ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ бСзопаснСС. + + + ⚠️ Если Π²Ρ‹ Π½Π΅ сдСлаСтС свои вставки общСдоступными ΠΈΠ»ΠΈ Π½Π΅ сохранитС ссылку, ΠΊ Π½ΠΈΠΌ нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ послС очистки локального Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈΠ»ΠΈ использования Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. +developer: InteraApps +website: https://pastefy.app/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2159 +repo: https://github.com/interaapps/pastefy +support: https://github.com/interaapps/pastefy/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ содСрТит исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/interaapps/pastefy/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/pastefy/docker-compose.yml b/pastefy/docker-compose.yml new file mode 100644 index 0000000..7d8fc2e --- /dev/null +++ b/pastefy/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: pastefy_app_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + db: + image: mariadb:11.4.5@sha256:5dfb3093333fa0ea53194ddef0a2bfa21d3b1e1353bd228b22610cd6fc0c04da + user: "1000:1000" + environment: + MYSQL_ROOT_PASSWORD: "tyooe" + MYSQL_DATABASE: "pastefy" + MYSQL_USER: "pastefy" + MYSQL_PASSWORD: "tyooe" + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql:rw + restart: on-failure + + app: + image: interaapps/pastefy:7.1.6@sha256:353ce246ccf24ab1dec42e3c387744b47925065c207699f0bf1ce8e560619ca9 + user: "1000:1000" + environment: + HTTP_SERVER_CORS: "*" + DATABASE_DRIVER: "mysql" + DATABASE_NAME: "pastefy" + DATABASE_USER: "pastefy" + DATABASE_PASSWORD: "tyooe" + DATABASE_HOST: "pastefy_db_1" + DATABASE_PORT: "3306" + SERVER_NAME: "http://${DEVICE_DOMAIN_NAME}:9900" + # OAUTH2_PROVIDER_CLIENT_ID: + # OAUTH2_PROVIDER_CLIENT_SECRET: + restart: on-failure + depends_on: + - db diff --git a/peerswap/data/.gitkeep b/peerswap/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/peerswap/dfwebos-app.yml b/peerswap/dfwebos-app.yml new file mode 100644 index 0000000..b1c4ae0 --- /dev/null +++ b/peerswap/dfwebos-app.yml @@ -0,0 +1,28 @@ +manifestVersion: 1 +id: peerswap +category: bitcoin +name: PeerSwap +version: "5.0.2" +tagline: БбалансируйтС свои ΠΊΠ°Π½Π°Π»Ρ‹ Lightning с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Liquid BTC +description: PeerSwap позволяСт ΡƒΠ·Π»Π°ΠΌ сСти Lightning Π±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои ΠΊΠ°Π½Π°Π»Ρ‹, облСгчая Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ с прямыми ΡƒΠ·Π»Π°ΠΌΠΈ. PeerSwap усиливаСт Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ сСти Lightning, позволяя всСм ΡƒΠ·Π»Π°ΠΌ Π±Ρ‹Ρ‚ΡŒ собствСнным ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π°. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π°, стороннСго сборщика Π°Ρ€Π΅Π½Π΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ балансировка ΠΊΠ°Π½Π°Π»ΠΎΠ² с наимСньшими Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ нСбольшиС ΡƒΠ·Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ AutoFees ΠΊΠ°Π½Π°Π»Π°, Liquid Peg-in ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ BTC с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠΎΠ½Π΅Ρ‚ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ комиссии. +developer: PeerSwap Project +website: https://peerswap.dev +dependencies: + - lightning + - elements + - bitcoin +repo: https://github.com/Impa10r/peerswap-web +support: https://discord.com/invite/wpNv3PG8G2 +port: 1984 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +submitter: Impa10r +submission: https://github.com/getumbrel/dfwebos-apps/pull/932 +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ содСрТит Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок. + + + ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: https://github.com/Impa10r/peerswap-web/blob/main/CHANGELOG.md \ No newline at end of file diff --git a/peerswap/docker-compose.yml b/peerswap/docker-compose.yml new file mode 100644 index 0000000..1737a27 --- /dev/null +++ b/peerswap/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: peerswap_web_1 + APP_PORT: 1984 + + web: + image: ghcr.io/impa10r/peerswap-web:v5.0.2@sha256:1fe2ea9207699ea0d2ebe6b645baa150bbc99448cb2a05ed75c82b55e57a9fee + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + # ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ + USER: peerswap + NETWORK: $APP_BITCOIN_NETWORK + NO_HTTPS: "true" + # ЛНД + LND_HOST: ${APP_LIGHTNING_NODE_IP}:${APP_LIGHTNING_NODE_GRPC_PORT} + LND_MACAROONPATH: /home/peerswap/.lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/admin.macaroon + # Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ RPC + ELEMENTS_USER: elements + ELEMENTS_PORT: $APP_ELEMENTS_NODE_RPC_PORT + ELEMENTS_HOST: http://elements_node_1 + ELEMENTS_WALLET: peerswap + ELEMENTS_FOLDER: /home/elements/.elements + ELEMENTS_FOLDER_MAPPED: /home/peerswap/.elements + # Π‘ΠΈΡ‚ΠΊΠΎΠΉΠ½ RPC + BITCOIN_HOST: $APP_BITCOIN_NODE_IP + BITCOIN_PORT: $APP_BITCOIN_RPC_PORT + BITCOIN_USER: $APP_BITCOIN_RPC_USER + BITCOIN_PASS: $APP_BITCOIN_RPC_PASS + volumes: + - ${APP_DATA_DIR}/data:/home/peerswap/.peerswap + - ${APP_LIGHTNING_NODE_DATA_DIR}:/home/peerswap/.lnd:ro + - ${ELEMENTS_DATA_DIR}:/home/peerswap/.elements:ro + - /etc/localtime:/etc/localtime:ro diff --git a/peerswap/exports.sh b/peerswap/exports.sh new file mode 100644 index 0000000..52858fa --- /dev/null +++ b/peerswap/exports.sh @@ -0,0 +1 @@ +export ELEMENTS_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/elements/data" \ No newline at end of file diff --git a/penpot/data/assets/.gitkeep b/penpot/data/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/penpot/data/postgres/.gitkeep b/penpot/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/penpot/dfwebos-app.yml b/penpot/dfwebos-app.yml new file mode 100644 index 0000000..44329e0 --- /dev/null +++ b/penpot/dfwebos-app.yml @@ -0,0 +1,34 @@ +manifestVersion: 1 +id: penpot +category: developer +name: Penpot +version: "2.14.4" +tagline: ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΈ прототипирования +description: >- + Penpot β€” это новаторская ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для проСктирования ΠΈ прототипирования, созданная ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. + НС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами, Penpot ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π²Π΅Π±-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ. + ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… стандартов, Π² частности SVG. Penpot ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅Ρ‚ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ² всСго ΠΌΠΈΡ€Π° Π²Π»ΡŽΠ±ΠΈΡ‚ΡŒΡΡ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ + Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя вызывая Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² интСрСс ΠΊ процСссу проСктирования. +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ список элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ состояниСм Π³ΠΎΠ½ΠΊΠΈ размонтирования. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/penpot/penpot/releases. +developer: Penpot +website: https://penpot.app/ +dependencies: [] +repo: https://github.com/penpot/penpot +support: https://github.com/penpot/penpot/discussions +port: 9001 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/605 diff --git a/penpot/docker-compose.yml b/penpot/docker-compose.yml new file mode 100644 index 0000000..8ba8a44 --- /dev/null +++ b/penpot/docker-compose.yml @@ -0,0 +1,74 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: penpot_penpot-frontend_1 + APP_PORT: 8080 + # МоТно Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅. Penpot ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ систСму Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. + PROXY_AUTH_WHITELIST: "/api/*" + + penpot-frontend: + image: penpotapp/frontend:2.14.4@sha256:aecf5131c59a4cd25cebd97af1c8835eef6e25eb74cb2bf349b481a0afae4428 + volumes: + - ${APP_DATA_DIR}/data/assets:/opt/data/assets + environment: + - PENPOT_FLAGS=enable-registration enable-login-with-password + depends_on: + - penpot-backend + - penpot-exporter + restart: on-failure + + penpot-backend: + image: penpotapp/backend:2.14.4@sha256:6e2798b2c3ccd6730415db5f28030460d05fa8c01301b3b72ba3dc66af9e3c58 + # ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ 1000:1000, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ шаблонов. + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/assets:/opt/data/assets + environment: + - PENPOT_FLAGS=enable-registration enable-login-with-password disable-email-verification disable-smtp enable-prepl-server disable-secure-session-cookies + - PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot + - PENPOT_DATABASE_USERNAME=penpot + - PENPOT_DATABASE_PASSWORD=penpot + - PENPOT_REDIS_URI=redis://penpot_penpot-valkey_1/0 + - PENPOT_ASSETS_STORAGE_BACKEND=assets-fs + - PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets + - PENPOT_TELEMETRY_ENABLED=false + # PENPOT_PUBLIC_URI Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ для отобраТСния ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€ Π²ΠΎ внСшнСм интСрфСйсС. + - PENPOT_PUBLIC_URI=http://${DEVICE_DOMAIN_NAME}:${APP_PENPOT_UI_PORT} + depends_on: + - penpot-postgres + - penpot-valkey + restart: on-failure + + penpot-exporter: + image: penpotapp/exporter:2.14.4@sha256:c5112cf3b54edf8911945042562d6f0be99ca047f1bc22573315e676a65030b5 + user: "1000:1000" + environment: + - PENPOT_PUBLIC_URI=http://penpot-frontend + - PENPOT_REDIS_URI=redis://penpot_penpot-valkey_1/0 + restart: on-failure + + penpot-postgres: + image: postgres:15@sha256:546445ad21cb5893c0997080b831ee45945e798c4359270e16413c8bd93575db + user: "1000:1000" + stop_signal: SIGINT + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + environment: + - POSTGRES_INITDB_ARGS=--data-checksums + - POSTGRES_DB=penpot + - POSTGRES_USER=penpot + - POSTGRES_PASSWORD=penpot + restart: on-failure + + penpot-valkey: + image: valkey/valkey:8.1.3@sha256:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11 + user: "1000:1000" + restart: on-failure + healthcheck: + test: ["CMD-SHELL", "valkey-cli ping | grep PONG"] + interval: 1s + timeout: 3s + retries: 5 + start_period: 3s diff --git a/penpot/exports.sh b/penpot/exports.sh new file mode 100644 index 0000000..a4eca2b --- /dev/null +++ b/penpot/exports.sh @@ -0,0 +1 @@ +export APP_PENPOT_UI_PORT="9001" diff --git a/perplexica/data/app_data/.gitkeep b/perplexica/data/app_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/perplexica/data/app_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/perplexica/data/uploads/.gitkeep b/perplexica/data/uploads/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/perplexica/data/uploads/.gitkeep @@ -0,0 +1 @@ + diff --git a/perplexica/dfwebos-app.yml b/perplexica/dfwebos-app.yml new file mode 100644 index 0000000..c60c5db --- /dev/null +++ b/perplexica/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: perplexica +name: Vane +tagline: АвтоотвСтчик Π½Π° Π±Π°Π·Π΅ ИИ +category: ai +version: "1.12.2" +port: 3444 +description: >- + πŸ€– Vane β€” это ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ систСма поиска ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° вопросы Π½Π° Π±Π°Π·Π΅ ИИ, которая мСняСт способы обнаруТСния ΠΈ понимания ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ВмСсто прСдоставлСния Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ списка ссылок ΠΎΠ½ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… источников, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅, структурированныС ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΡ€ΠΈΠ·Π²Π°Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹ΠΌ, помогая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ слоТныС Ρ‚Π΅ΠΌΡ‹ Π±Π΅Π· нСобходимости ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ бСсконСчныС страницы Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска. + + + Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Vane ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ это Π΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ намСрСния, Π° Π½Π΅ просто ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Π΄Π°Π΅Ρ‚ вопрос, ΠΎΠ½ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹, Π½ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ†Π΅Π»ΡŒ запроса. Π­Ρ‚ΠΎ позволяСт Π΅ΠΌΡƒ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ каТутся ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΌΠΈ, связными ΠΈ СстСствСнными. Он синтСзируСт знания с Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ зрСния, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ прСдставляСт Π΅Π΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° бСсСду с экспСртом, Π° Π½Π΅ Π½Π° использованиС Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ поисковой систСмы. + + + Π’Π΅ΠΉΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ практичСски Π»ΡŽΠ±ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ: ΠΎΡ‚ тСхничСских объяснСний ΠΈ фактичСских исслСдований Π΄ΠΎ творчСских ΠΌΠΎΠ·Π³ΠΎΠ²Ρ‹Ρ… ΡˆΡ‚ΡƒΡ€ΠΌΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Π·ΠΎΡ€ΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ вопросы, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ своС ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ. БочСтая ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ ΠΈ свободноС Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ СстСствСнным языком, Π’Π΅ΠΉΠ½ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ½Π»Π°ΠΉΠ½-исслСдованиС Π² приятный, ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ адаптируСтся ΠΊ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚ΡΡ‚Π²Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. +developer: Kushagra Srivastava +website: https://github.com/ItzCrazyKns/Vane +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3970 +repo: https://github.com/ItzCrazyKns/Vane +support: https://github.com/ItzCrazyKns/Vane/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + ΠŸΠ΅Ρ€ΠΏΠ»Π΅ΠΊΡΠΈΠΊΠ° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π’Π΅ΠΉΠ½! + + + Π­Ρ‚ΠΎ нСбольшой выпуск, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅ΠΆΠΈΠΌΠ° Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ исслСдования ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ конвСрсии истории, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎΠ΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ для прСдотвращСния зависания поисковых запросов. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° выполнСния Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°; ошибки большС Π½Π΅ приводят ΠΊ сбою всСго ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса. + - УстранСны ошибки Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сборки ΠΏΡƒΡ‚Π΅ΠΌ устранСния ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… зависимостСй ΠΏΠ°ΠΊΠ΅Ρ‚Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΊΡ€Π°ΠΉΠ½ΠΈΠ΅ случаи, связанныС с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ поисковых запросов, Π½Π΅ относящимися ΠΊ массивам. + - Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ serverUtils ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° обратная гСолокация API для большСй точности. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок для Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ². + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ парсСр Π½Π° основС Chromium для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ совмСстимости с соврСмСнными Π²Π΅Π±-страницами. + - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° новая оптимизированная функция выполнСния поиска. + - ИспользованиС встроСнных срСдств для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска, прСдотвращСния пСрСполнСния контСкстного ΠΎΠΊΠ½Π° ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ рСлСвантности. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/ItzCrazyKns/Vane/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/perplexica/docker-compose.yml b/perplexica/docker-compose.yml new file mode 100644 index 0000000..f15e1db --- /dev/null +++ b/perplexica/docker-compose.yml @@ -0,0 +1,14 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: perplexica_web_1 + APP_PORT: 3000 + + web: + image: itzcrazykns1337/vane:v1.12.2@sha256:61f2bbf3386ff3df08911fb3de0e1893b04702a4d49ef13fbadbda937b47ab7c + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/app_data:/home/perplexica/data + - ${APP_DATA_DIR}/data/uploads:/home/perplexica/uploads diff --git a/photoprism/database/.gitkeep b/photoprism/database/.gitkeep new file mode 100755 index 0000000..e69de29 diff --git a/photoprism/dfwebos-app.yml b/photoprism/dfwebos-app.yml new file mode 100644 index 0000000..94d4a6f --- /dev/null +++ b/photoprism/dfwebos-app.yml @@ -0,0 +1,66 @@ +manifestVersion: 1 +id: photoprism +category: files +name: PhotoPrism +version: "260305-fad9d5395" +tagline: РазмСститС свою Ρ„ΠΎΡ‚ΠΎ- ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡ‚Π΅ΠΊΡƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ +description: >- + PhotoPrismΒ β€” это частноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для просмотра, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ + ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ своСй ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ новСйшиС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ для ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ + ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ изобраТСния автоматичСски, Π½Π΅ мСшая Π²Π°ΠΌ. ΠŸΠΎΠΏΡ€ΠΎΡ‰Π°Ρ‚ΡŒΡΡ с + Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят вас Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ свои Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ воспоминания Π² ΠΎΠ±Π»Π°ΠΊΠΎ! + + + - Наш ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ β€” Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅, ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. + + + - Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΠΉΡ‚Π΅ всС, Π½Π΅ бСспокоясь ΠΎ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π°Ρ… ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ RAW Π² JPEG. + + + - АвтоматичСская классификация ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС Google TensorFlow. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, наш индСксатор опрСдСляСт Ρ†Π²Π΅Ρ‚Π°, Ρ†Π²Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ, ΡΡ€ΠΊΠΎΡΡ‚ΡŒ, качСство, ΠΏΠ°Π½ΠΎΡ€Π°ΠΌΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΡŽ, Ρ‚ΠΈΠΏ мСстополоТСния ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ свойства. + + + - Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΌΠΈΡ€Π° Π² высоком Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π³Π΄Π΅ Π²Ρ‹ Π±Ρ‹Π»ΠΈ, ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ для сСбя Π΄Π°Π²Π½ΠΎ Π·Π°Π±Ρ‹Ρ‚Ρ‹Π΅ снимки. + + + - ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ WebDAV, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Microsoft Windows Explorer ΠΈΠ»ΠΈ Apple Finder, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ PhotoPrism, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ со своСго ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои изобраТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PhotoSync. + + + - ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ PhotoPrism создан ΠΊΠ°ΠΊ прогрСссивноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ прСдоставляСт возмоТности, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π³Π»Π°Π²Π½Ρ‹ΠΉ экран. Π’ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ находится Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ сообщСством. +developer: PhotoPrism +website: https://photoprism.app +dependencies: [] +repo: https://github.com/photoprism/photoprism +support: https://gitter.im/browseyourlife/community +port: 8087 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "admin" +deterministicPassword: true +torOnly: false +releaseNotes: >- + Π’ этом выпускС слуТбы основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΡƒΡΠΈΠ»Π΅Π½ΠΈΡŽ бСзопасности, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΠΌ совмСстимости ΠΈ исправлСниям ошибок. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ollama Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды OLLAMA_BASE_URL ΠΈ OLLAMA_API_KEY. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ созданиС подписСй ΠžΠ»Π»Π°ΠΌΡ‹ с ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ для ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ рассуТдСний. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏ изобраТСния послС объСдинСния Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ GPS Π²Π±Π»ΠΈΠ·ΠΈ Π³Ρ€Π°Π½ΠΈΡ† ΠΊΠ°Ρ€Ρ‚Ρ‹ Π² ΠœΠ΅ΡΡ‚Π°Ρ…. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ эмодзи, ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠ΅ с альбомами Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠ°ΠΏΠΎΠΊ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ ΠΏΠ°ΠΏΠΊΠ°ΠΌ ΠΈ альбомам, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ усСчСнными Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. + - Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ошибок Ρ„Π°ΠΉΠ»Π° Π² прСдставлСниях Β«ΠšΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°Β» ΠΈ «Бписок». + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² WebDAV для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ совмСстимости. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ усилСния бСзопасности HTTP. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² Gzip. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ хостингС Π½Π° ΠΎΠ±Ρ‰Π΅ΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с поставщиком удостовСрСний Google OIDC. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π½Π° французский, Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΈΠΉ, Π»Π°Ρ‚Ρ‹ΡˆΡΠΊΠΈΠΉ ΠΈ румынский языки. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу: https://github.com/photoprism/photoprism/releases/. +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/commit/bf4c6f127f1fcf4dbe8eea55729502dfb34278e9 diff --git a/photoprism/docker-compose.yml b/photoprism/docker-compose.yml new file mode 100644 index 0000000..398c7d0 --- /dev/null +++ b/photoprism/docker-compose.yml @@ -0,0 +1,48 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: photoprism_web_1 + APP_PORT: 8087 + # Π­Ρ‚ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ HTTP ΠΎΡ‚ Photoprism. + # ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ здСсь: https://docs.photoprism.app/user-guide/sync/webdav/#server-url + PROXY_AUTH_WHITELIST: "/originals/*,/import/*" + + web: + image: photoprism/photoprism:260305@sha256:5229f68bce0293320547f35c733de584d7c2d5725a0efbddb68d7a118a8fc21c + user: "1000:1000" + restart: on-failure + stop_grace_period: "1m" + volumes: + - "${APP_DATA_DIR}/originals:/photoprism/originals" + - "${APP_DATA_DIR}/storage:/photoprism/storage" + environment: + PHOTOPRISM_ADMIN_PASSWORD: "${APP_PASSWORD}" + PHOTOPRISM_ORIGINALS_LIMIT: 10000 + PHOTOPRISM_HTTP_COMPRESSION: "gzip" + PHOTOPRISM_HTTP_PORT: 8087 + PHOTOPRISM_DATABASE_DRIVER: "mysql" + PHOTOPRISM_DATABASE_SERVER: "photoprism_db_1:3306" + PHOTOPRISM_DATABASE_NAME: "photoprism" + PHOTOPRISM_DATABASE_USER: "photoprism" + PHOTOPRISM_DATABASE_PASSWORD: "photoprism" + PHOTOPRISM_SITE_URL: "http://${APP_DOMAIN}:8087/" + PHOTOPRISM_SITE_TITLE: "PhotoPrism" + PHOTOPRISM_SITE_CAPTION: "Digital Asset Management" + PHOTOPRISM_SITE_DESCRIPTION: "" + PHOTOPRISM_SITE_AUTHOR: "" + + db: + image: mariadb:10.5.12@sha256:dfcba5641bdbfd7cbf5b07eeed707e6a3672f46823695a0d3aba2e49bbd9b1dd + user: "1000:1000" + restart: on-failure + stop_grace_period: "1m" + command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=50 + volumes: + - "${APP_DATA_DIR}/database:/var/lib/mysql" + environment: + MYSQL_ROOT_PASSWORD: "photoprism" + MYSQL_DATABASE: "photoprism" + MYSQL_USER: "photoprism" + MYSQL_PASSWORD: "photoprism" diff --git a/photoprism/originals/.gitkeep b/photoprism/originals/.gitkeep new file mode 100755 index 0000000..e69de29 diff --git a/photoprism/storage/.gitkeep b/photoprism/storage/.gitkeep new file mode 100755 index 0000000..e69de29 diff --git a/pi-hole/data/dnsmasq/.gitkeep b/pi-hole/data/dnsmasq/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pi-hole/data/pihole/.gitkeep b/pi-hole/data/pihole/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pi-hole/dfwebos-app.yml b/pi-hole/dfwebos-app.yml new file mode 100644 index 0000000..2e630b3 --- /dev/null +++ b/pi-hole/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1.1 +id: pi-hole +category: networking +name: Pi-hole +version: "2026.04.1" +tagline: Π‘Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ Π²ΠΎ всСй вашСй сСти +description: >- + ВмСсто ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ + установитС Pi-holeΒ Π½Π° свой DFWebOS, ΠΈ вся ваша ΡΠ΅Ρ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π°. + Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ сСти позволяСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ Π² Π½Π΅Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… мСстах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ + ΠΊΠ°ΠΊ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния ΠΈ смарт-Ρ‚Π΅Π»Π΅Π²ΠΈΠ·ΠΎΡ€Ρ‹, нСзависимо ΠΎΡ‚ оборудования ΠΈΠ»ΠΈ ОБ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ + Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Π΅ объявлСния Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄ΠΎ ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сСти сниТаСтся. + ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡΡ ΠΈ почувствуСт сСбя быстрСС. + + + Помимо Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, Pi-holeΒ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ статистику ΠΏΠΎ всСм Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌ Π² вашСй сСти. Pi-holeΒ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ DHCP-сСрвСром, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Pi-holeΒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΡΠ΅Ρ‚ΡŒΡŽ. + + + Pi-holeΒ ΠΈ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ Pi-holeΒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ зарСгистрированными Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹ΠΌΠΈ ΠΌΠ°Ρ€ΠΊΠ°ΠΌΠΈ Pi-hole. DFWebOS Π½Π΅ спонсируСтся, Π½Π΅ одобряСтся ΠΈ Π½Π΅ связан с Pi-holeΒ. +developer: Pi-holeΒ +website: https://pi-hole.net +dependencies: [] +repo: https://github.com/pi-hole/docker-pi-hole +support: https://discourse.pi-hole.net +port: 8082 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "/admin/" +defaultUsername: "" +deterministicPassword: true +torOnly: false +releaseNotes: >- + ⚠️ Если Π²Ρ‹ настроили свой ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π° использованиС Pi-hole Π² качСствС СдинствСнного DNS-сСрвСра, DFWebOS ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡƒΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Π²ΠΎ врСмя обновлСния, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π΅ΠΌΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ обновлСния. + Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ установитС Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ DNS-сСрвСр (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1.1.1.1) Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ ΠΈΠ»ΠΈ настройтС постоянный Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ DNS, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. + + + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ: + - 🚨 Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π΄Π²Π΅ уязвимости бСзопасности Π² FTL (GHSA-6w8x-p785-6pm4 ΠΈ GHSA-9cqv-839p-gpq2). + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ привСсти ΠΊ сбоям ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ API. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Ρ€Π΅Π΄ΠΊΠΎΠ΅ состояниС Π³ΠΎΠ½ΠΊΠΈ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… API. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с поиском устройства, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ Π½Π° основС MAC ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² punycode, ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½Π½Ρ‹Ρ… IDNA2008. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° диагностика Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€Π°Π²Π° владСния для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для Ρ„Π°ΠΉΠ»ΠΎΠ², связанных с Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠ΅ΠΉ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/pi-hole/docker-pi-hole/releases/tag/2026.04.1. +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/commit/9ca55a25e043dcd50d5cb92c6ec756d368bb4794 diff --git a/pi-hole/docker-compose.yml b/pi-hole/docker-compose.yml new file mode 100644 index 0000000..9faf43b --- /dev/null +++ b/pi-hole/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.7" + +services: + server: + image: pihole/pihole:2026.04.1@sha256:1c32c36b862a12762656b6471c854cebc01fe945639ba3a893611337c2c95e99 + # Pi-hole Π² настоящСС врСмя Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ root + # https://github.com/pi-hole/docker-pi-hole/issues/685 + # user: "1000:1000" + restart: on-failure + network_mode: host + volumes: + - ${APP_DATA_DIR}/data/pihole:/etc/pihole/ + - ${APP_DATA_DIR}/data/dnsmasq:/etc/dnsmasq.d/ + environment: + - FTLCONF_webserver_api_password=${APP_PASSWORD} + - FTLCONF_webserver_port=8082,[::]:8082 + # ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ всС интСрфСйсы, Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ всС источники + - FTLCONF_dns_listeningMode=all + cap_add: + - NET_ADMIN diff --git a/pi-hole/hooks/pre-install b/pi-hole/hooks/pre-install new file mode 100755 index 0000000..eed51f8 --- /dev/null +++ b/pi-hole/hooks/pre-install @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +set -euo pipefail + +RESOLVED_SERVICE_NAME="systemd-resolved" +RESOLVED_CONF_FILE="/etc/systemd/resolved.conf" + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π»ΠΈ слуТба 'systemd-resolved' +if ! systemctl is-active --quiet "${RESOLVED_SERVICE_NAME}.service"; then + echo "Service '${RESOLVED_SERVICE_NAME}' is not running" + exit +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π»ΠΈ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ-Π·Π°Π³Π»ΡƒΡˆΠΊΠ° DNS. +if cat "${RESOLVED_CONF_FILE}" | grep --quiet "^DNSStubListener=no$"; then + echo "DNSStubListener already turned off" + exit +fi + +echo "Turning off the DNS Stub Listener" + +# ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ DNSStubListener Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. +sed -r -i.orig 's/#?DNSStubListener=yes/DNSStubListener=no/g' "${RESOLVED_CONF_FILE}" + +# Π£Π΄Π°Π»ΠΈΡ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ resolv.conf, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π» Π±Ρ‹ +# localhost (ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ DNS systemd-resolved) Π² качСствС прСобразоватСля DNS +rm -f /etc/resolv.conf + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ссылку ΠΌΠ΅ΠΆΠ΄Ρƒ восходящим resolv.conf systemd-resolved. +# ΠΈ resolv.conf OS +ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf + +echo "Restart service '${RESOLVED_SERVICE_NAME}'" +systemctl restart "${RESOLVED_SERVICE_NAME}" \ No newline at end of file diff --git a/picsur/data/db/.gitkeep b/picsur/data/db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/picsur/data/db/.gitkeep @@ -0,0 +1 @@ + diff --git a/picsur/dfwebos-app.yml b/picsur/dfwebos-app.yml new file mode 100644 index 0000000..4a621c7 --- /dev/null +++ b/picsur/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1 +id: picsur +name: Picsur +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π² использовании сСрвис ΠΎΠ±ΠΌΠ΅Π½Π° изобраТСниями +category: files +version: "0.5.6" +port: 8286 +description: >- + πŸ–ΌοΈ Picsur β€” это лСгкая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, разработанная для простоты ΠΈ контроля. Он позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ, Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ изобраТСниями нСпосрСдствСнно со своСго сСрвСра, Π½Π΅ полагаясь Π½Π° сторонниС сСрвисы. Π’Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΊΠ°ΠΊ Imgur ΠΈ Pastebin, Picsur ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ простой ΠΈ эффСктивный интСрфСйс для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ΅Π½ простой способ управлСния изобраТСниями Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. + + + Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ слоТных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для управлСния фотографиями, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ PhotoPrism ΠΈΠ»ΠΈ Immich, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ распознаваниС Π»ΠΈΡ†, Π°Π»ΡŒΠ±ΠΎΠΌΡ‹ ΠΈ сортировку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ИИ, Picsur ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создан для быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ прямого ΠΎΠ±ΠΌΠ΅Π½Π°. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ распространСнныС, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ JPEG, PNG ΠΈ GIF, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ стандартныС Ρ‚ΠΈΠΏΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ QOI ΠΈ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ WebP. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ основных инструмСнтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚, ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΎΠ² сСрого ΠΈ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… эффСктов. + + + ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ пСрСтаскивания ΠΈ прСдоставляСт прямыС ссылки для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° изобраТСниями. Администраторы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ для управлСния Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, прСдлагая ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ слуТбы. + + + ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Picsur размСщаСтся Π½Π° собствСнном хостингС, ΠΎΠ½ обСспСчиваСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ². Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΡ† ΠΈΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π³Ρ€ΡƒΠΏΠΏ, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ изобраТСния ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ, эффСктивно ΠΈ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌΠΈ расходами. +developer: CaramelFur +website: https://picsur.org/upload +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2589 +repo: https://github.com/CaramelFur/Picsur +support: https://github.com/CaramelFur/Picsur/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: "" +dependencies: [] +path: "" +defaultUsername: "admin" +deterministicPassword: true diff --git a/picsur/docker-compose.yml b/picsur/docker-compose.yml new file mode 100644 index 0000000..8398178 --- /dev/null +++ b/picsur/docker-compose.yml @@ -0,0 +1,45 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: picsur_web_1 + APP_PORT: 8286 + PROXY_AUTH_ADD: "false" + + db: + image: postgres:17.4@sha256:fe3f571d128e8efadcd8b2fde0e2b73ebab6dbec33f6bfe69d98c682c7d8f7bd + user: "1000:1000" + mem_limit: 1g + cpu_shares: 1024 + security_opt: + - no-new-privileges:true + healthcheck: + test: ["CMD", "pg_isready", "-q", "-d", "picsur", "-U", "picsuruser"] + timeout: 45s + interval: 10s + retries: 10 + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data:rw + environment: + POSTGRES_DB: picsur + POSTGRES_USER: picsuruser + POSTGRES_PASSWORD: picsurpass + restart: on-failure + + web: + image: ghcr.io/caramelfur/picsur:0.5.6@sha256:209ce21d338cd7d9a1adc838a67695e903149359bf192359819607df1b3c4417 + user: "1000:1000" + environment: + PICSUR_PORT: 8286 + PICSUR_DB_HOST: picsur_db_1 + PICSUR_DB_PORT: 5432 + PICSUR_DB_USERNAME: picsuruser + PICSUR_DB_PASSWORD: picsurpass + PICSUR_DB_DATABASE: picsur + PICSUR_ADMIN_PASSWORD: ${APP_PASSWORD} + PICSUR_MAX_FILE_SIZE: 128000000000 + depends_on: + db: + condition: service_healthy + restart: on-failure diff --git a/pinchflat/data/config/.gitkeep b/pinchflat/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pinchflat/dfwebos-app.yml b/pinchflat/dfwebos-app.yml new file mode 100644 index 0000000..2de8b81 --- /dev/null +++ b/pinchflat/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1 +id: pinchflat +category: media +name: Pinchflat +version: "2025.6.6" +tagline: АвтоматизированноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΌΠ΅Π΄ΠΈΠ°-источников Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. +description: >- + PinchflatΒ β€” это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° YouTube, созданного с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ yt-dlp. Он спроСктирован Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΈΠΌ, Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌ ΠΈ простым Π² использовании. Π’Ρ‹ устанавливаСтС ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° с ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈΠ»ΠΈ плСйлистов YouTube, Π° ΠΎΠ½ сдСлаСт всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅, пСриодичСски провСряя Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Он идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ для использования с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Π΄ΠΈΠ°Ρ†Π΅Π½Ρ‚Ρ€Π° (Plex, Jellyfin, Kodi) ΠΈΠ»ΠΈ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°! + + + Π₯отя Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²ΠΈΠ΄Π΅ΠΎ, Pinch Flat Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° с ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈΠ»ΠΈ плСйлистов. Он Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния β€” Pinchflat Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π° диск, Π³Π΄Π΅ Π²Ρ‹ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния ΠΌΠ΅Π΄ΠΈΠ°Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΈΠ»ΠΈ VLC. + + + ## ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ + - Автономный - всСго ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Docker Π±Π΅Π· Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй. + - ΠœΠΎΡ‰Π½Π°Ρ систСма имСнования, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΈ ΠΊΠ°ΠΊ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. + - ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π² использовании Π²Π΅Π±-интСрфСйс с прСдустановками, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌΠΈ сразу Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. + - ΠŸΠ΅Ρ€Π²ΠΎΠΊΠ»Π°ΡΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠ΅Π΄ΠΈΠ°Ρ†Π΅Π½Ρ‚Ρ€Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Plex, Jellyfin ΠΈ Kodi ([docs](https://github.com/kieraneglin/pinchflat/wiki/Frequently-Asked-Questions#how-do-i-get-media-into-plexjellyfinkodi)) + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠ΄Π°Ρ‡ΠΈ RSS-ΠΊΠ°Π½Π°Π»ΠΎΠ² Π² вашС любимоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для подкастов ([docs](https://github.com/kieraneglin/pinchflat/wiki/Podcast-RSS-Feeds)) + - АвтоматичСски Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈΠ· ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈ плСйлистов + - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прилоТСния. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π°ΡƒΠ΄ΠΈΠΎΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° + - ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΌΠ΅Ρ‚Ρ€Π°ΠΆΠ΅ΠΊ YouTube ΠΈ прямых трансляций. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ + - ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ автоматичСски ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ истСчСнии установлСнного ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°. + – Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ качСство Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‚Π΅Π³ΠΈ SponsorBlock. + - ΠŸΡ€ΠΈ нСобходимости автоматичСскоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старого ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ([docs](https://github.com/kieraneglin/pinchflat/wiki/Automatically-Delete-Media)) + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ установка Π΄Π°Ρ‚ окончания ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ названию ([docs](https://github.com/kieraneglin/pinchflat/wiki/Frequently-Asked-Questions#i-only-want-certain-videos-from-a-source---how-can-i-only-download-those)) + - НадСТная автоматичСская Ρ€Π°Π±ΠΎΡ‚Π°- ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ cookie Π² YouTube для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Π°ΡˆΠΈΡ… Π»ΠΈΡ‡Π½Ρ‹Ρ… плСйлистов ([docs](https://github.com/kieraneglin/pinchflat/wiki/YouTube-Cookies)) + - Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ спонсорского Π±Π»ΠΎΠΊΠ° + - [Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ] позволяСт Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ `yt-dlp` ([docs](https://github.com/kieraneglin/pinchflat/wiki/%5BAdvanced%5D-Custom-yt%E2%80%90dlp-options)) + - [Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ] ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ запуск ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сцСнариСв послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ/удалСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° (Π°Π»ΡŒΡ„Π° - [Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹](https://github.com/kieraneglin/pinchflat/wiki/%5BAdvanced%5D-Custom-lifecycle-scripts)) +developer: Kieran Eglin +website: https://github.com/kieraneglin/pinchflat +dependencies: [] +repo: https://github.com/kieraneglin/pinchflat +support: https://github.com/kieraneglin/pinchflat/issues +port: 8945 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: "" +torOnly: false +permissions: + - STORAGE_DOWNLOADS +submitter: only1thor +submission: "https://github.com/getumbrel/dfwebos-apps/pull/3032" + diff --git a/pinchflat/docker-compose.yml b/pinchflat/docker-compose.yml new file mode 100644 index 0000000..e03d884 --- /dev/null +++ b/pinchflat/docker-compose.yml @@ -0,0 +1,14 @@ +services: + app_proxy: + environment: + APP_HOST: pinchflat_web_1 + APP_PORT: 8945 + + web: + image: ghcr.io/kieraneglin/pinchflat:v2025.6.6@sha256:4e975edf58f0861a5cbfe8fc6aac4851ff5a02dfc3f05ffeea4982e3084a5a4a + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads diff --git a/pingvin-share/data/backend/.gitkeep b/pingvin-share/data/backend/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pingvin-share/data/images/.gitkeep b/pingvin-share/data/images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pingvin-share/dfwebos-app.yml b/pingvin-share/dfwebos-app.yml new file mode 100644 index 0000000..7794393 --- /dev/null +++ b/pingvin-share/dfwebos-app.yml @@ -0,0 +1,44 @@ +manifestVersion: 1.1 +id: pingvin-share +category: files +name: Pingvin Share +version: "1.13.0" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ +description: >- + Pingvin Share β€” это автономная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° WeTransfer. + + + πŸ› οΈ Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Pingvin Share ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π΅ΠΌΡƒ Π² общСдоступном Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это β€” Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Cloudflare Tunnel ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ доступ ΠΊ Pingvin Share (Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌΡƒ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 6453), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свой собствСнный Π΄ΠΎΠΌΠ΅Π½. + + + ✨ ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ + - Π”Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΏΠΎ ссылкС + - НСограничСнный Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° (ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ дисковым пространством) + - Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρƒ истСчСния срока дСйствия Π°ΠΊΡ†ΠΈΠΉ + - Π—Π°Ρ‰ΠΈΡ‰Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ доступ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² посСтитСлСй ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ. + - ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ + - ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ Π°ΠΊΡ†ΠΈΠΈ + - АутСнтификация OIDC ΠΈ LDAP +developer: Elias Schneider +website: https://stonith404.github.io/pingvin-share/introduction +repo: https://github.com/stonith404/pingvin-share +support: https://github.com/stonith404/pingvin-share/issues +dependencies: [] +port: 6453 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ измСнСния Π² этом выпускС: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ кСш Redis вмСсто кСша памяти. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/stonith404/pingvin-share/releases. +torOnly: false +submitter: maltekiefer +submission: https://github.com/getumbrel/dfwebos-apps/pull/1229 diff --git a/pingvin-share/docker-compose.yml b/pingvin-share/docker-compose.yml new file mode 100644 index 0000000..f9f4b20 --- /dev/null +++ b/pingvin-share/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: pingvin-share_web_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + web: + image: stonith404/pingvin-share:v1.13.0@sha256:6bf2bcd3043ee68cb61264f0857511ccf7f212fdb984382b7f2d491635184ad6 + user: "1000:1000" + restart: on-failure + volumes: + - "${APP_DATA_DIR}/data/backend:/opt/app/backend/data" + - "${APP_DATA_DIR}/data/images:/opt/app/frontend/public/img" diff --git a/pingvin-share/hooks/pre-start b/pingvin-share/hooks/pre-start new file mode 100755 index 0000000..1b0c79a --- /dev/null +++ b/pingvin-share/hooks/pre-start @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ВСрсия 1.7.0 позволяла ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ pingvin Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ root: https://github.com/stonith404/pingvin-share/releases/tag/v1.7.0 +# РаньшС Pingvin запускался ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, поэтому Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ рСкурсивно устанавливаСм Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° 1000:1000, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ вСрсий Π΄ΠΎ 1.7.0 Π½Π΅ Π±Ρ‹Π»ΠΎ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ прилоТСния. +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/data" + +# РСкурсивно ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ собствСнности Π½Π° всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΠΎΠ΄ APP_DATA_DIR Π½Π° 1000:1000. +chown -R 1000:1000 "${APP_DATA_DIR}" \ No newline at end of file diff --git a/plane/config/nginx.conf b/plane/config/nginx.conf new file mode 100644 index 0000000..53d91bd --- /dev/null +++ b/plane/config/nginx.conf @@ -0,0 +1,64 @@ +# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ входящий X-Forwarded-Port, Ссли установлСно, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” 8762. +map $http_x_forwarded_port $final_port { + default $http_x_forwarded_port; + "" 8762; +} + +map $http_x_forwarded_proto $final_proto { + default $http_x_forwarded_proto; + "" $scheme; +} + +server { + listen 8762; + + # FILE_SIZE_LIMIT β€” Π±Π°ΠΉΡ‚Ρ‹ Π² Plane env; nginx Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ m/g. + # 52428800 Π±Π°ΠΉΡ‚ β‰ˆ 50ΠΌ + client_max_body_size 50m; + + port_in_redirect off; + absolute_redirect off; + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $final_proto; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Port $final_port; + + location /spaces/ { + proxy_pass http://plane_space_1:3000; + proxy_http_version 1.1; + proxy_set_header Connection ""; + } + + location /god-mode/ { + proxy_pass http://plane_admin_1:3000; + proxy_http_version 1.1; + proxy_set_header Connection ""; + } + + location /live/ { + proxy_pass http://plane_live_1:3000; + proxy_http_version 1.1; + proxy_set_header Connection ""; + } + + location /api/ { + proxy_pass http://plane_api_1:8000; + } + + location /auth/ { + proxy_pass http://plane_api_1:8000; + } + + location /uploads { + proxy_pass http://plane-minio-1:9000; + } + + location / { + proxy_pass http://plane_web_1:3000; + proxy_http_version 1.1; + proxy_set_header Connection ""; + } +} diff --git a/plane/data/db/.gitkeep b/plane/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plane/data/rabbitmq/.gitkeep b/plane/data/rabbitmq/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plane/data/redis/.gitkeep b/plane/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plane/data/uploads/.gitkeep b/plane/data/uploads/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plane/dfwebos-app.yml b/plane/dfwebos-app.yml new file mode 100644 index 0000000..c17d59a --- /dev/null +++ b/plane/dfwebos-app.yml @@ -0,0 +1,39 @@ +manifestVersion: 1.1 +id: plane +category: files +name: Plane +version: "1.3.0" +tagline: Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ для всСх ΠΊΠΎΠΌΠ°Π½Π΄ +description: >- + Meet Plane β€” инструмСнт управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ спринтов ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΡ€ΠΎΠΆΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π±Π΅Π· хаоса, связанного с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ самим инструмСнтом. πŸ§˜β€β™€οΈ + + + 🌟 ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ + - ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ создавайтС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ управляйтС ΠΈΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ². Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ отслСТиваниС, добавляя Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ свойства ΠΈ ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° связанныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. + - Cycles ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΌΠΏ своСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Cycles. Π›Π΅Π³ΠΊΠΎ отслСТивайтС прогрСсс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ сгорания ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтов. + - ΠœΠΎΠ΄ΡƒΠ»ΠΈ Π£ΠΏΡ€ΠΎΡ‰Π°ΠΉΡ‚Π΅ слоТныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, раздСляя ΠΈΡ… Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅, управляСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. + - ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ НастройтС свой Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, создав Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ для отобраТСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. БохраняйтС ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ этими взглядами с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ. + - Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹ БохраняйтС ΠΈ систСматизируйтС ΠΈΠ΄Π΅ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Plane Pages с возмоТностями ИИ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста. Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ тСкст, вставляйтС изобраТСния, добавляйтС гипСрссылки ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ свои Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π² ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ элСмСнты. + - Аналитика ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ΅ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎ всСм Π΄Π°Π½Π½Ρ‹ΠΌ вашСго самолСта. Π’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ, устраняйтС прСпятствия ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°ΠΉΡ‚Π΅ свои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π²ΠΏΠ΅Ρ€Π΅Π΄. + + + Доступ ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ администратора Plane ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ адрСсу `umbrel.local:8762/god-mode`. +developer: Plane Software Inc. +website: http://plane.so/ +repo: https://github.com/makeplane/plane +support: https://github.com/makeplane/plane/issues +dependencies: [] +port: 8762 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: "" +torOnly: false +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/4126 diff --git a/plane/docker-compose.yml b/plane/docker-compose.yml new file mode 100644 index 0000000..ee5593d --- /dev/null +++ b/plane/docker-compose.yml @@ -0,0 +1,222 @@ +version: "3.7" + +x-environment: &env + # ---- Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ URL ΠΈ ΠΏΠΎΡ€Ρ‚Ρ‹ ---- + NGINX_PORT: 8762 + LISTEN_HTTP_PORT: 8762 + + # ---- Имя сСгмСнта, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ внСшним интСрфСйсом для ΠΏΡƒΡ‚Π΅ΠΉ /uploads ---- + BUCKET_NAME: uploads + + # ---- API Π Π°Π±ΠΎΡ‡ΠΈΠ΅ ---- + GUNICORN_WORKERS: 2 + + # ---- Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ---- + POSTGRES_DB: plane + POSTGRES_USER: plane + POSTGRES_PASSWORD: dfwebosplane + DATABASE_URL: postgresql://plane:umbrelplane@plane_db_1:5432/plane + + # ---- Кэш/Π±Ρ€ΠΎΠΊΠ΅Ρ€ ---- + REDIS_URL: redis://plane_redis_1:6379/0 + RABBITMQ_DEFAULT_USER: plane + RABBITMQ_DEFAULT_PASS: dfwebosplane + RABBITMQ_DEFAULT_VHOST: plane + CELERY_BROKER_URL: amqp://plane:umbrelplane@plane_rabbitmq_1:5672/plane + + # ---- ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (MinIO; S3-совмСстимоС) ---- + USE_MINIO: 1 + AWS_ACCESS_KEY_ID: dfwebos + AWS_SECRET_ACCESS_KEY: $APP_PASSWORD + AWS_S3_ENDPOINT_URL: http://plane-minio-1:9000 + AWS_S3_BUCKET_NAME: uploads + FILE_SIZE_LIMIT: 52428800 # 50 MB + MINIO_ENDPOINT_SSL: 0 + MINIO_ROOT_USER: dfwebos + MINIO_ROOT_PASSWORD: $APP_PASSWORD + + # ---- Π”ΠΆΠ°Π½Π³ΠΎ/ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ---- + SECRET_KEY: $APP_SEED + LIVE_SERVER_SECRET_KEY: $APP_SEED + # Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ часто ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π·Π° прокси + USE_X_FORWARDED_HOST: 1 + SECURE_SSL_REDIRECT: 0 + SESSION_COOKIE_SECURE: 0 + CSRF_COOKIE_SECURE: 0 + +services: + app_proxy: + environment: + APP_HOST: plane_nginx_1 + APP_PORT: 8762 + PROXY_AUTH_ADD: "false" + + nginx: + image: nginx:alpine3.23@sha256:5616878291a2eed594aee8db4dade5878cf7edcb475e59193904b198d9b830de + restart: on-failure + volumes: + - ${APP_DATA_DIR}/config/nginx.conf:/etc/nginx/conf.d/default.conf:ro + depends_on: + - web + + db: + image: postgres:17.9-alpine@sha256:778d0b486d6daa02b77434d0358ec57a1b21fd8b6d22ac2eef56a33e816928f6 + user: "1000:1000" + restart: on-failure + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] + interval: 10s + timeout: 5s + retries: 10 + + redis: + image: valkey/valkey:7.2.12-alpine@sha256:d0809f1d763f9fc3d77cd27e7c0393b1b0d69b6ad9269f932328b4793a620c78 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis:/data + + rabbitmq: + image: rabbitmq:3.13.7-management-alpine@sha256:0c64ec4fc5596406d755dcca75e8a3b618192cc5fb69f8f0340f06290b1cc08c + user: "1000:1000" + restart: on-failure + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + volumes: + - ${APP_DATA_DIR}/data/rabbitmq:/var/lib/rabbitmq + + minio: + image: alpine/minio:RELEASE.2025-10-15T17-29-55Z@sha256:cf23643a6cf9ce159c57643ceb88279e431262282428c9e0bf3a7ef1a97e84b4 + user: "1000:1000" + restart: on-failure + command: server /export --console-address ":8763" + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + volumes: + - ${APP_DATA_DIR}/data/uploads:/export + ports: + - "8763:8763" + # Π½Π΅ удаСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ, Ссли имя содСрТит ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ + container_name: plane-minio-1 + + api: + image: makeplane/plane-backend:v1.3.0@sha256:60fb33fa75b63594c1b0bb62b9e50e05f03bb0e46ef384c9eec177f2fb1aaf02 + user: "1000:1000" + restart: on-failure + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + rabbitmq: + condition: service_started + + worker: + image: makeplane/plane-backend:v1.3.0@sha256:60fb33fa75b63594c1b0bb62b9e50e05f03bb0e46ef384c9eec177f2fb1aaf02 + user: "1000:1000" + restart: on-failure + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + depends_on: + api: + condition: service_started + redis: + condition: service_started + rabbitmq: + condition: service_started + command: ["sh","-c","celery -A plane worker --loglevel=info"] + + beat-worker: + image: makeplane/plane-backend:v1.3.0@sha256:60fb33fa75b63594c1b0bb62b9e50e05f03bb0e46ef384c9eec177f2fb1aaf02 + user: "1000:1000" + restart: on-failure + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + depends_on: + api: + condition: service_started + redis: + condition: service_started + rabbitmq: + condition: service_started + migrator: + condition: service_completed_successfully + command: ["sh","-c","celery -A plane beat --loglevel=info"] + + migrator: + image: makeplane/plane-backend:v1.3.0@sha256:60fb33fa75b63594c1b0bb62b9e50e05f03bb0e46ef384c9eec177f2fb1aaf02 + user: "1000:1000" + restart: on-failure + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + depends_on: + db: + condition: service_healthy + command: ["sh","-c","python manage.py wait_for_db && python manage.py migrate"] + + web: + image: makeplane/plane-frontend:v1.3.0@sha256:5116ac06c2b5f8cc6b0dfd7638ce787b44302527dd3fa2b3e6889e52c4aff3d1 + restart: on-failure + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + depends_on: + - api + + live: + image: makeplane/plane-live:v1.3.0@sha256:81ff136509a3069766c27c9f3489db7bfe37af8a8eab8869ee17ab948eeb83c3 + user: "1000:1000" + restart: on-failure + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + depends_on: + - api + + space: + image: makeplane/plane-space:v1.3.0@sha256:0964d53de83a7f2bcb9418dc157f3ede566a6ddad0774d8d2b10cd931b96fcea + user: "1000:1000" + restart: on-failure + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + depends_on: + - api + healthcheck: + test: ["CMD-SHELL", "node -e \"require('http').get('http://127.0.0.1:3000/', (r) => process.exit(r.statusCode < 500 ? 0 : 1)).on('error', () => process.exit(1))\""] + interval: 30s + timeout: 5s + start_period: 10s + retries: 3 + + admin: + image: makeplane/plane-admin:v1.3.0@sha256:dd83ae5d61d592d0877e4ddda9eb32a3828f8b51d8efbc307806c34b9a48c0a2 + restart: on-failure + environment: + <<: *env + env_file: + - ${APP_DATA_DIR}/settings.env + depends_on: + - api diff --git a/plane/hooks/pre-start b/plane/hooks/pre-start new file mode 100755 index 0000000..c234326 --- /dev/null +++ b/plane/hooks/pre-start @@ -0,0 +1,101 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ сцСнарий провСряСт Ρ„Π°ΠΉΠ» срСды Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ-Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ замСняСт ΠΈΡ… систСмными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="$APP_DIR/data" +DESIRED_OWNER="1000:1000" +ENV_FILE="$APP_DIR/settings.env" + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ» +if [ ! -f "$ENV_FILE" ]; then + echo "Error: Environment file not found at $ENV_FILE" + exit 1 +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ WEB_URL Π½Π° "changeme". +if grep -Eq '^WEB_URL= *changeme$' "$ENV_FILE"; then + echo "Placeholder value for WEB_URL detected. Setting from DEVICE_DOMAIN_NAME..." + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΌ URL. + sed -i -E 's|^WEB_URL= *changeme$|WEB_URL="http://'"${DEVICE_DOMAIN_NAME}"':8762"|' "$ENV_FILE" + + echo "Updated WEB_URL in $ENV_FILE" +else + echo "WEB_URL is already set. No changes made." +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ API_BASE_URL Π½Π° "changeme". +if grep -Eq '^API_BASE_URL= *changeme$' "$ENV_FILE"; then + echo "Placeholder value for API_BASE_URL detected. Setting from DEVICE_DOMAIN_NAME..." + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΌ URL. + sed -i -E 's|^API_BASE_URL= *changeme$|API_BASE_URL="http://'"${DEVICE_DOMAIN_NAME}"':8762"|' "$ENV_FILE" + + echo "Updated API_BASE_URL in $ENV_FILE" +else + echo "API_BASE_URL is already set. No changes made." +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ APP_DOMAIN Π½Π° "changeme". +if grep -Eq '^APP_DOMAIN= *changeme$' "$ENV_FILE"; then + echo "Placeholder value for APP_DOMAIN detected. Setting from DEVICE_DOMAIN_NAME..." + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ + sed -i -E 's|^APP_DOMAIN= *changeme$|APP_DOMAIN="'"${DEVICE_DOMAIN_NAME}"':8762"|' "$ENV_FILE" + + echo "Updated APP_DOMAIN in $ENV_FILE" +else + echo "APP_DOMAIN is already set. No changes made." +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ALLOWED_HOSTS Π½Π° "changeme". +if grep -Eq '^ALLOWED_HOSTS= *changeme$' "$ENV_FILE"; then + echo "Placeholder value for ALLOWED_HOSTS detected. Setting from DEVICE_DOMAIN_NAME..." + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ + sed -i -E 's|^ALLOWED_HOSTS= *changeme$|ALLOWED_HOSTS="'"${DEVICE_DOMAIN_NAME}"'"|' "$ENV_FILE" + + echo "Updated ALLOWED_HOSTS in $ENV_FILE" +else + echo "ALLOWED_HOSTS is already set. No changes made." +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CORS_ALLOWED_ORIGINS Π½Π° "changeme". +if grep -Eq '^CORS_ALLOWED_ORIGINS= *changeme$' "$ENV_FILE"; then + echo "Placeholder value for CORS_ALLOWED_ORIGINS detected. Setting from DEVICE_DOMAIN_NAME..." + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ источником Π½Π° основС Π΄ΠΎΠΌΠ΅Π½Π°. + sed -i -E 's|^CORS_ALLOWED_ORIGINS= *changeme$|CORS_ALLOWED_ORIGINS="http://'"${DEVICE_DOMAIN_NAME}"':8762,http://'"${DEVICE_DOMAIN_NAME}"'"|' "$ENV_FILE" + + echo "Updated CORS_ALLOWED_ORIGINS in $ENV_FILE" +else + echo "CORS_ALLOWED_ORIGINS is already set. No changes made." +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CSRF_TRUSTED_ORIGINS Π½Π° "changeme". +if grep -Eq '^CSRF_TRUSTED_ORIGINS= *changeme$' "$ENV_FILE"; then + echo "Placeholder value for CSRF_TRUSTED_ORIGINS detected. Setting from DEVICE_DOMAIN_NAME..." + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ источником Π½Π° основС Π΄ΠΎΠΌΠ΅Π½Π°. + sed -i -E 's|^CSRF_TRUSTED_ORIGINS= *changeme$|CSRF_TRUSTED_ORIGINS="http://'"${DEVICE_DOMAIN_NAME}"':8762,http://'"${DEVICE_DOMAIN_NAME}"'"|' "$ENV_FILE" + + echo "Updated CSRF_TRUSTED_ORIGINS in $ENV_FILE" +else + echo "CSRF_TRUSTED_ORIGINS is already set. No changes made." +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСно Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NGINX_HOST Π½Π° "changeme". +if grep -Eq '^NGINX_HOST= *changeme$' "$ENV_FILE"; then + echo "Placeholder value for NGINX_HOST detected. Setting from DEVICE_DOMAIN_NAME..." + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ + sed -i -E 's|^NGINX_HOST= *changeme$|NGINX_HOST="'"${DEVICE_DOMAIN_NAME}"'"|' "$ENV_FILE" + + echo "Updated NGINX_HOST in $ENV_FILE" +else + echo "NGINX_HOST is already set. No changes made." +fi + +exit 0 diff --git a/plane/settings.env b/plane/settings.env new file mode 100644 index 0000000..0fa6ab1 --- /dev/null +++ b/plane/settings.env @@ -0,0 +1,10 @@ +WEB_URL=changeme +API_BASE_URL=changeme +APP_DOMAIN=changeme +ALLOWED_HOSTS=changeme +CORS_ALLOWED_ORIGINS=changeme +CSRF_TRUSTED_ORIGINS=changeme +NGINX_HOST=changeme +APP_PROTOCOL=http +ENABLE_SIGNUP=0 +DEBUG=0 diff --git a/plausible/clickhouse/clickhouse-config.xml b/plausible/clickhouse/clickhouse-config.xml new file mode 100644 index 0000000..0dfaa70 --- /dev/null +++ b/plausible/clickhouse/clickhouse-config.xml @@ -0,0 +1,23 @@ + + + warning + true + + + + + + + + + + + + + + diff --git a/plausible/clickhouse/clickhouse-user-config.xml b/plausible/clickhouse/clickhouse-user-config.xml new file mode 100644 index 0000000..56cf1cd --- /dev/null +++ b/plausible/clickhouse/clickhouse-user-config.xml @@ -0,0 +1,8 @@ + + + + 0 + 0 + + + diff --git a/plausible/db-data/.gitkeep b/plausible/db-data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plausible/dfwebos-app.yml b/plausible/dfwebos-app.yml new file mode 100644 index 0000000..8aed1ae --- /dev/null +++ b/plausible/dfwebos-app.yml @@ -0,0 +1,40 @@ +manifestVersion: 1 +id: plausible +category: developer +name: Plausible Analytics +version: "3.2.0" +tagline: ΠŸΡ€ΠΎΡΡ‚Π°Ρ Π² использовании ΠΈ бСзопасная для ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Google Analytics. +description: >- + Plausible β€” это ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный, Π»Π΅Π³ΠΊΠΈΠΉ Π²Π΅Π±-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. + Никаких Ρ„Π°ΠΉΠ»ΠΎΠ² cookie ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ соотвСтствиС GDPR, CCPA ΠΈ PECR. + + + βš™οΈ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ придСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ доступ ΠΊ Plausible Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π½Π° Π²Π΅Π±-сайтах. + Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Cloudflare Tunnel ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Plausible доступ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свой собствСнный Π΄ΠΎΠΌΠ΅Π½. +releaseNotes: >- + Π’ этом выпускС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ исправлСний: + + + - ΠžΠ±Ρ‰ΠΈΠ΅ ссылки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ сСгмСнтом Π΄Π°Π½Π½Ρ‹Ρ…. + - Π Π°Π·Π±ΠΈΠ²ΠΊΠ° ΠΏΠΎ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°ΠΌ посСтитСлСй Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ отобраТаСтся Π²ΠΎ всСх ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ…. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка с кэшСм ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ скриптов Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠ°Ρ ΠΊ ошибкам для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… скриптов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ настройки Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти Clickhouse, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ гости сайта ΠΈ Ρ‡Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ€ΠΎΠ»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½ сайта. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/plausible/analytics/releases. +developer: Plausible Community Edition +website: https://plausible.io/ +repo: https://github.com/plausible/analytics +support: https://github.com/plausible/community-edition/issues +port: 9092 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +dependencies: [] +submitter: ~dibref-labter +submission: https://github.com/getumbrel/dfwebos-apps/pull/1371 diff --git a/plausible/docker-compose.yml b/plausible/docker-compose.yml new file mode 100644 index 0000000..5f4dcc5 --- /dev/null +++ b/plausible/docker-compose.yml @@ -0,0 +1,45 @@ +services: + app_proxy: + environment: + APP_HOST: plausible_plausible_1 + APP_PORT: 8000 + + plausible_db: + # Plausible v2.1.1 тСстировался Π½Π° PostgreSQL вСрсий 15 ΠΈ 16. + # https://github.com/plausible/analytics/blob/v2.1.1/.github/workflows/elixir.yml#L21-L32 + image: postgres:16-alpine@sha256:492898505cb45f9835acc327e98711eaa9298ed804e0bb36f29e08394229550d + restart: on-failure + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/db-data:/var/lib/postgresql/data + environment: + - POSTGRES_PASSWORD=postgres + + plausible_events_db: + image: clickhouse/clickhouse-server:24.12-alpine@sha256:cd450891db46cc6ffe313ca2b0fb7dbfb897a6873ca74a724cbe050a2cf62621 + restart: on-failure + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/event-data:/var/lib/clickhouse + - ${APP_DATA_DIR}/event-logs:/var/log/clickhouse-server + - ${APP_DATA_DIR}/clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro + - ${APP_DATA_DIR}/clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro + ulimits: + nofile: + soft: 262144 + hard: 262144 + environment: + - CLICKHOUSE_SKIP_USER_SETUP=1 + + plausible: + image: ghcr.io/plausible/community-edition:v3.2.0@sha256:3d8af8d4a1be32c3dcc5e8dc01496639d945edd9963827e18abe984dd6bda086 + restart: on-failure + user: "1000:1000" + command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run" + depends_on: + - plausible_db + - plausible_events_db + environment: + - BASE_URL=http://${DEVICE_DOMAIN_NAME}:9092 + - SECRET_KEY_BASE=${APP_SEED} + - TOTP_VAULT_KEY=${APP_PLAUSIBLE_VAULT_KEY} diff --git a/plausible/event-data/.gitkeep b/plausible/event-data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plausible/event-logs/.gitkeep b/plausible/event-logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plausible/exports.sh b/plausible/exports.sh new file mode 100644 index 0000000..7be6a99 --- /dev/null +++ b/plausible/exports.sh @@ -0,0 +1,2 @@ +# Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π΄Π»ΠΈΠ½ΠΎΠΉ 32 Π±Π°ΠΉΡ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сСкрСтов TOTP с использованиСм AES256-GCM. НС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ пСрСзапускС прилоТСния. +export APP_PLAUSIBLE_VAULT_KEY=$(openssl dgst -sha256 -binary <<< "$(derive_entropy "env-${app_entropy_identifier}-APP_VAULT_KEY")" | base64) \ No newline at end of file diff --git a/plex/data/config/.gitkeep b/plex/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plex/data/transcode/.gitkeep b/plex/data/transcode/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plex/dfwebos-app.yml b/plex/dfwebos-app.yml new file mode 100644 index 0000000..381496d --- /dev/null +++ b/plex/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1 +id: plex +category: media +name: Plex +version: "1.43.0.10492" +tagline: ΠŸΠΎΡ‚ΠΎΠΊ Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² ΠΈ Ρ‚Π΅Π»Π΅ΡˆΠΎΡƒ +description: >- + Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΠΌΡ‹ ΠΈ Ρ‚Π΅Π»Π΅ΡˆΠΎΡƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ 300 ΠΊΠ°Π½Π°Π»ΠΎΠ² прямого эфира ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΈ Π±Π΅Π· подписки. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π΅Π»Π΅ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ Ρ„ΠΈΠ»ΡŒΠΌΡ‹ Π² прямом эфирС Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΈ с любого устройства с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Plex. + + + Plex ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сСрвСр для размСщСния вашСй ΠΌΠ΅Π΄ΠΈΠ°Ρ‚Π΅ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ проигрыватСля для воспроизвСдСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. ДобавляйтС, ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ доступ ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ всСми Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ для вас развлСчСниями практичСски Π½Π° любом устройствС. + + + ⚠️ Если ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ доступа ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Plex Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ошибкой Β«Π½Π΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½ΠΎΒ», Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ дСйствия, описанныС Π² этом руководствС: https://community.umbrel.com/t/fixing-plexs-not-authorized-error/10523 +developer: Plex +website: https://www.plex.tv/ +dependencies: [] +repo: "" +support: https://www.plex.tv/ +port: 32400 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: /web +defaultUsername: "" +defaultPassword: "" +torOnly: false +permissions: + - STORAGE_DOWNLOADS + - GPU +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ исправлСний ошибок: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠΎΠ² для Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² ΠΈ Ρ‚Π΅Π»Π΅ΡˆΠΎΡƒ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… рСсурсов SquareArt ΠΈ ClearLogo для Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² ΠΈ Ρ‚Π΅Π»Π΅ΡˆΠΎΡƒ. + - ОбновлСн Π²Π΅Π±-интСрфСйс Π΄ΠΎ вСрсии 4.156.0. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»ΠΎΠ² EAC3 7.1 (ΠΊΠ°Π½Π°Π»Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ) + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки транскодирования Π²ΠΈΠ΄Π΅ΠΎ mpeg2 ΠΈ профиля ΠΊΠΎΠ΄Π΅ΠΊΠ° AAC. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ Π·Π΅Π»Π΅Π½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² HEVC. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π²ΡƒΠΊΠ° aac_latm ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² прямых тСлСтрансляциях. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ сбои ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΎ врСмя ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сопоставлСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ зависаниС обновлСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… NFO. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ созданиС ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€ для ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Ρ‹Ρ… Π²ΠΈΠ΄Π΅ΠΎ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с синхронизациСй транскодирования субтитров WebVTT. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://www.videohelp.com/software/Plex. +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/commit/60878f278d544b204d8e7c96240c797f43a9b319 diff --git a/plex/docker-compose.yml b/plex/docker-compose.yml new file mode 100644 index 0000000..4a14f1b --- /dev/null +++ b/plex/docker-compose.yml @@ -0,0 +1,31 @@ +version: "3.7" + +services: + server: + image: linuxserver/plex:1.43.0@sha256:a27f1ce1e1d14cd3627ed217f042bf8de0f796ed274fb27b2dc971ae22a64b95 + restart: on-failure + hostname: "${DEVICE_HOSTNAME}" + network_mode: host + environment: + - PUID=1000 + - PGID=1000 + - VERSION=docker + # Π’ настоящСС врСмя Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ хост-сСти, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ UPnP (сСрвСр Plex DLNA) ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Docker Π½Π΅ Таловался Π½Π° использованиС ΠΏΠΎΡ€Ρ‚Π° 1900/udp (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Home Assistant). + # ΠΏΠΎΡ€Ρ‚Ρ‹: + # - 32400:32400 + # # ПлСкс Компаньон + # - 3005:3005/tcp + # # Roku Ρ‡Π΅Ρ€Π΅Π· Plex Companion + # - 8324:8324/tcp + # # Π‘Π΅Ρ€Π²Π΅Ρ€ Plex DLNA + # - 32469:32469/tcp + # - 1900:1900/udp + # # ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сСти + # - 32410:32410/udp + # - 32412:32412/udp + # - 32413:32413/udp + # - 32414:32414/udp + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${APP_DATA_DIR}/data/transcode:/transcode + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads diff --git a/plex/exports.sh b/plex/exports.sh new file mode 100644 index 0000000..392d708 --- /dev/null +++ b/plex/exports.sh @@ -0,0 +1,6 @@ +# ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Plex Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ прокси прилоТСния +# Π’ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Tor HS. +# Π­Ρ‚ΠΎΡ‚ 'fix' создаст поддСльноС имя хоста HS. +PLEX_TOR_DIR="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}" +mkdir -p "${PLEX_TOR_DIR}" +touch "${PLEX_TOR_DIR}/hostname" diff --git a/pocketbase/data/data/.gitkeep b/pocketbase/data/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pocketbase/data/hooks/.gitkeep b/pocketbase/data/hooks/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pocketbase/data/migrations/initial_superuser.js b/pocketbase/data/migrations/initial_superuser.js new file mode 100644 index 0000000..8d1fce7 --- /dev/null +++ b/pocketbase/data/migrations/initial_superuser.js @@ -0,0 +1,22 @@ +// https://pocketbase.io/docs/js-migrations/#creating-initial-superuser +// pb_migrations/1687801090_initial_superuser.js + +migrate((app) => { + let superusers = app.findCollectionByNameOrId("_superusers") + + let record = new Record(superusers) + + // note: the values can be eventually loaded via $os.getenv(key) + // or from a special local config file + record.set("email", "dfwebos@dfwebos.local") + record.set("password", "dfwebos-pocketbase") + + app.save(record) +}, (app) => { // optional revert operation + try { + let record = app.findAuthRecordByEmail("_superusers", "dfwebos@dfwebos.local") + app.delete(record) + } catch { + // silent errors (probably already deleted) + } +}) diff --git a/pocketbase/data/public/.gitkeep b/pocketbase/data/public/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pocketbase/dfwebos-app.yml b/pocketbase/dfwebos-app.yml new file mode 100644 index 0000000..080c6d5 --- /dev/null +++ b/pocketbase/dfwebos-app.yml @@ -0,0 +1,59 @@ +manifestVersion: 1 +id: pocketbase +name: PocketBase +tagline: БСрвСрная Ρ‡Π°ΡΡ‚ΡŒ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для вашСго ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ SaaS- ΠΈ мобильного прилоТСния Π² 1 Ρ„Π°ΠΉΠ»Π΅ +category: developer +version: "0.37.4" +port: 5400 +description: >- + PocketBase β€” это сСрвСрная Ρ‡Π°ΡΡ‚ΡŒ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, состоящая ΠΈΠ· встроСнной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (SQLite) с подписками Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, встроСнным ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ, ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ панСлью интСрфСйс ΠΈ простым REST Π² стилС API. + + + ⏱️ Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ + + ВстроСнная Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… с построитСлСм схСм, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, подписками Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ простым Π² использовании API REST. + + + πŸͺͺ АутСнтификация + + УправляйтС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ своСго прилоТСния ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ/ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈ рСгистрации OAuth2 (Google, Facebook, GitHub, GitLab) Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. + + + πŸ’Ύ Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² + + Π Π°Π·ΡƒΠΌΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ локально ΠΈΠ»ΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ S3. Π›Π΅Π³ΠΊΠΎ прикрСпляйтС ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Ρ‹ ΠΊ записям Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ создавайтС ΠΏΡ€Π΅Π²ΡŒΡŽ Π½Π° Π»Π΅Ρ‚Ρƒ. + + + 🧩 Π’Ρ‹Π΄Π²ΠΈΠΆΠ½ΠΎΠΉ + + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π˜Π›Π˜ ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ…ΡƒΠΊΠΎΠ² Go ΠΈ JavaScript для создания собствСнного ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ бэкэнда. +developer: PocketBase +website: https://pocketbase.io/ +defaultUsername: "dfwebos@dfwebos.local" +defaultPassword: "dfwebos-pocketbase" +submitter: Sharknoon +submission: https://github.com/getumbrel/dfwebos-apps/pull/1082 +repo: https://github.com/pocketbase/pocketbase +support: https://github.com/pocketbase/pocketbase/discussions +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: /_/ +dependencies: [] +releaseNotes: >- + ⚠️ Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСниС бСзопасности, связанноС с ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ связывания OAuth2, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠ΅ΠΉ Π΄ΠΎ Π²Π·Π»ΠΎΠΌΠ°. + + + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния бСзопасности ΠΈ нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ привязки OAuth2 ΠΏΠ΅Ρ€Π΅Π΄ Π²Π·Π»ΠΎΠΌΠΎΠΌ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ пароля bcrypt, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ пСрСчислСния, ΠΊΠΎΠ³Π΄Π° рСгистрация ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сСтСвого адрСса SMTP IPv6. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²Ρ‹Π±ΠΎΡ€ автозаполнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ обновлял Π±Π°Π·ΠΎΠ²ΠΎΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ списка Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ. + - ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ записи ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ просмотрС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скачки ΠΌΠ°ΠΊΠ΅Ρ‚Π°. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ поставщики Bitbucket, GitHub, GitLab ΠΈ Gitea/Forgejo OAuth2, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½Π΅Π΄Π°Π²Π½ΠΈΠ΅ измСнСния API. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/pocketbase/pocketbase/releases. \ No newline at end of file diff --git a/pocketbase/docker-compose.yml b/pocketbase/docker-compose.yml new file mode 100644 index 0000000..c655957 --- /dev/null +++ b/pocketbase/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: pocketbase_app_1 + APP_PORT: 8090 + PROXY_AUTH_ADD: "false" + + app: + image: ghcr.io/muchobien/pocketbase:0.37.4@sha256:aed00310ab6d78aca1e00f1c800e198841e5d3a7371d887f3da5f773612da2a5 + # Pocketbase Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root + # user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/data:/pb_data + - ${APP_DATA_DIR}/data/public:/pb_public + - ${APP_DATA_DIR}/data/hooks:/pb_hooks + - ${APP_DATA_DIR}/data/migrations:/pb_migrations diff --git a/portainer/default-password b/portainer/default-password new file mode 100644 index 0000000..c616260 --- /dev/null +++ b/portainer/default-password @@ -0,0 +1 @@ +changeme \ No newline at end of file diff --git a/portainer/dfwebos-app.yml b/portainer/dfwebos-app.yml new file mode 100644 index 0000000..5981c0e --- /dev/null +++ b/portainer/dfwebos-app.yml @@ -0,0 +1,71 @@ +manifestVersion: 1.1 +id: portainer +category: developer +name: Portainer +version: "2.39.1" +tagline: ЗапускайтС собствСнныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker Π½Π° своСм DFWebOS. +description: >- + ⚠️ ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для своих стСков ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠΌΠ° Docker. Π”Π°Π½Π½Ρ‹Π΅ Π² Ρ‚ΠΎΠΌΠ°Ρ…, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊ привязкС + Π±ΡƒΠ΄ΡƒΡ‚ потСряны ΠΏΡ€ΠΈ пСрСзапускС ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ прилоТСния Portainer. + + + ⚠️ Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Docker ΠΈ вашими прилоТСниями DFWebOS. + + + Portainer β€” это идСальноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для управлСния Docker, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ запуск ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Docker ΠΈ Docker Compose. + настройки Π½Π° вашСм DFWebOS, прСдоставляя Π²Π°ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ. + + + Portainer обСспСчиваСт ΠΏΠ»Π°Π²Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, позволяя эффСктивно ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ, ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ + ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, сСти, Ρ‚ΠΎΠΌΠ° ΠΈ ΠΎΠ±Ρ€Π°Π·Ρ‹. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker Compose. + с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ. + + + πŸ› οΈ Portainer Π½Π° DFWebOS ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, слСдуйтС этим рСкомСндациям: + + + 1. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для своих стСков ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠΌΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Docker. Π”Π°Π½Π½Ρ‹Π΅ Π² привязкС + Ρ‚ΠΎΠΌΠ° Π±ΡƒΠ΄ΡƒΡ‚ потСряны ΠΏΡ€ΠΈ пСрСзапускС ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ прилоТСния Portainer. + + + 2. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ: слСдитС Π·Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈ сСрвисными ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ umbrelOS. + прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ установили ΠΈΠ· DFWebOS App Store ΠΈΠ»ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ сообщСства, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡŽΠ±Ρ‹Π΅ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. + + + 3. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° пСрСзапуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. УстановитС для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ пСрСзапуска «Ссли Π½Π΅ остановлСн» ΠΈΠ»ΠΈ «всСгда». Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ вашим ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ + для автоматичСского пСрСзапуска ΠΏΡ€ΠΈ пСрСзапускС ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ прилоТСния Portainer. + + + 4. Доступ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ своим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎ адрСсу DFWebOS.local:PORT_NUMBER. НапримСр, для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° + с Π²Π΅Π±-сайтом интСрфСйс, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 4545, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ адрСсу DFWebOS.local:4545, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ. +website: https://portainer.io +dependencies: [] +repo: https://github.com/portainer/portainer +support: https://github.com/portainer/portainer/issues +port: 9000 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "admin" +defaultPassword: "changeme" +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько исправлСний ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ бСзопасности: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСки Docker Π½Π° основС Git ΠΈΠ· GitLab Π½Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ администраторами. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ отсутствовали послС обновлСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Π½Π΅ всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ сСрвиса. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ срСды Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ с мноТСством срСд. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ° Β«Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β» Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ администраторами. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ свои ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡƒΡΡ‚ΡƒΡŽ панСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТимоС Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ шаблона Π±Ρ‹Π»ΠΎ доступно Π½Π΅Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. + - ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ рССстры ΠΎΠ±Ρ€Π°Π·ΠΎΠ² для FIPS. + - УстранСно мноТСство уязвимостСй бСзопасности. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/portainer/portainer/releases.. +permissions: + - GPU +developer: Portainer +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/pull/774 diff --git a/portainer/docker-compose.yml b/portainer/docker-compose.yml new file mode 100644 index 0000000..f292d4f --- /dev/null +++ b/portainer/docker-compose.yml @@ -0,0 +1,36 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: portainer_portainer_1 + APP_PORT: 9000 + + docker: + image: docker:27.2.0-dind@sha256:f9f72ad901a78f27be922b2d320bbc263174f12919c1b37e6a01f828fa904565 + privileged: true + network_mode: host + stop_grace_period: 1m + restart: on-failure + environment: + DOCKER_ENSURE_BRIDGE: "dind0:10.32.0.1/16" + entrypoint: /entrypoint.sh + command: > + dockerd + --bridge dind0 + --data-root /data/data + --exec-root /data/exec + --host unix:///data/docker.sock + --pidfile /data/docker.pid + volumes: + - ${APP_DATA_DIR}/entrypoint.sh:/entrypoint.sh + - ${APP_DATA_DIR}/data/docker:/data + + portainer: + image: portainer/portainer-ce:2.39.1@sha256:1ae8e65d50ca5498cb2c33e617495a1e3ef245b0d2392b4a44c70ae09b822891 + command: --host unix:///var/run/docker.sock --admin-password-file=/default-password + restart: on-failure + volumes: + - ${APP_DATA_DIR}/default-password:/default-password + - ${APP_DATA_DIR}/data/portainer:/data + - ${APP_DATA_DIR}/data/docker:/var/run diff --git a/portainer/entrypoint.sh b/portainer/entrypoint.sh new file mode 100755 index 0000000..71d910f --- /dev/null +++ b/portainer/entrypoint.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +# Π­Ρ‚ΠΎΡ‚ Ρ…Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, Ссли https://github.com/docker-library/docker/pull/444 Π±ΡƒΠ΄Π΅Ρ‚ объСдинСн. + +# Π£Π΄Π°Π»ΠΈΡ‚Π΅ pid-Ρ„Π°ΠΉΠ» docker, Ссли ΠΎΠ½ сущСствуСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ запуск Docker послС Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹. +pidfile="/var/run/docker.pid" +if [[ -f "${pidfile}" ]] +then + rm -f "${pidfile}" +fi + +# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ nftables Π² качСствС бэкэнда для iptables +for command in iptables iptables-restore iptables-restore-translate iptables-save iptables-translate +do + ln -sf /sbin/xtables-nft-multi /sbin/$command +done + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ мост с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ сущСствуСт. +ensure_bridge_exists() { + local name="${1}" + local ip_range="${2}" + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ мост ΡƒΠΆΠ΅ + if ip link show "${name}" &>/dev/null + then + echo "Bridge '${name}' already exists. Skipping creation." + ip addr show "${name}" + return + fi + + echo "Bridge '${name}' does not exist. Creating..." + ip link add "${name}" type bridge + ip addr add "${ip_range}" dev "${name}" + ip link set "${name}" up + + echo "Bridge '${name}' is now up with IP range '${ip_range}'." + ip addr show "${name}" +} + +if [[ "${DOCKER_ENSURE_BRIDGE}" != "" ]] +then + bridge="${DOCKER_ENSURE_BRIDGE%%:*}" + ip_range="${DOCKER_ENSURE_BRIDGE#*:}" + ensure_bridge_exists "${bridge}" "${ip_range}" +fi + +exec dockerd-entrypoint.sh $@ diff --git a/portainer/hooks/pre-start b/portainer/hooks/pre-start new file mode 100755 index 0000000..199a463 --- /dev/null +++ b/portainer/hooks/pre-start @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/data" + +# Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ Ρ„Π°ΠΉΠ» docker.pid, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ послС ΠΏΠ΅Ρ€Π΅Π±ΠΎΠ΅Π² Π² ΠΏΠΎΠ΄Π°Ρ‡Π΅ элСктроэнСргии ΠΈΠ»ΠΈ сбоСв. +rm -f "${APP_DATA_DIR}/docker/docker.pid" diff --git a/poznote/data/.gitkeep b/poznote/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/poznote/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/poznote/dfwebos-app.yml b/poznote/dfwebos-app.yml new file mode 100644 index 0000000..4c52ab2 --- /dev/null +++ b/poznote/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: poznote +name: Poznote +tagline: ΠœΠΎΡ‰Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ +category: files +version: "6.6.1" +port: 8389 +description: >- + πŸ“ Poznote β€” это понятноС ΠΈ Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ, ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Π³ΠΈΠ±ΠΊΠΎΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ пространствС. Он сочСтаСт Π² сСбС тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Markdown для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠ°ΠΊ быстрого наброска, Ρ‚Π°ΠΊ ΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ письма, позволяя мыслям расти ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. + + + Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ обСспСчиваСт Π³ΠΈΠ±ΠΊΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Π³ΠΎΠ², поиска ΠΈ настраиваСмых Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… пространств, поэтому ΠΈΠ΄Π΅ΠΈ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Poznote ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ влоТСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Ρ‚ΠΎ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ связанныС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ вмСстС Π² ΠΎΠ΄Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ΅. + + + Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя инструмСнты для создания ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… списков, Π·Π°Π΄Π°Ρ‡ ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ нСпосрСдствСнно Π² процСсс написания, Π° Π½Π΅ каТутся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ модулями. ВстроСнный инструмСнт для рисования ΠΈ построСния Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ, основанный Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Excalidraw, позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅ΠΈ вмСстС с тСкстом. + + + Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ· ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹, ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для бСзопасного хранСния ΠΈΠ»ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС шаблонов для ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ структур. Poznote стрСмится ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ срСду письма, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ тСкст, ΠΌΠ΅Π΄ΠΈΠ°, ΠΈΠ΄Π΅ΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΡΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, прСдлагая ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ способ управлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ с ΡΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΡΡ‚ΡŒΡŽ. +developer: TimothΓ© Poznanski +website: https://poznote.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/4268 +repo: https://github.com/timothepoznanski/poznote +support: https://github.com/timothepoznanski/poznote/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ панСль сортировки Ρ‚Π΅Π³ΠΎΠ² Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»Π°ΡΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС. + - Π£Π΄Π°Π»Π΅Π½ΠΎ ΠΆΠΈΠ²ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Markdown ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° строка поиска ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ΅ + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° вставка Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Markdown с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π°ΠΆΠ°Ρ‚ΡŒ Enter, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ строку. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° Π² общСдоступных Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°Ρ…. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ тСкст Π² столбцах Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ, ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΈΠ»ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая страница справки ΠΏΠΎ синтаксису Markdown с ΠΆΠΈΠ²Ρ‹ΠΌ поиском ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° JWT носитСля OIDC для REST API с автоматичСской ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ сСлСктор для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ Π² ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ошибки интСрфСйс ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠΌ Markdown. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/timothepoznanski/poznote. +dependencies: [] +path: "" +defaultUsername: "admin_change_me" +defaultPassword: "admin" diff --git a/poznote/docker-compose.yml b/poznote/docker-compose.yml new file mode 100644 index 0000000..693737f --- /dev/null +++ b/poznote/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: poznote_app_1 + APP_PORT: 80 + + app: + image: ghcr.io/timothepoznanski/poznote:6.6.1@sha256:742c2734f2c0e6d2b371c9152db17f7713146ad5bc58038369278c8e2ff918e7 + restart: on-failure + environment: + SQLITE_DATABASE: /var/www/html/data/database/poznote.db + HTTP_WEB_PORT: 80 + volumes: + - ${APP_DATA_DIR}/data:/var/www/html/data + healthcheck: + test: ["CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "-O", "/dev/null", "http://127.0.0.1/api/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 10s + + mcp: + image: ghcr.io/timothepoznanski/poznote-mcp:6.6.1@sha256:28a79ab9c0464bbbe385422f8c34803e1f82a1109a008b4b834b55f6e7466022 + restart: on-failure + environment: + POZNOTE_API_URL: http://poznote_app_1:80/api/v1 + POZNOTE_DEBUG: ${POZNOTE_DEBUG:-false} + ports: + - "8340:8045" + volumes: + - "${APP_DATA_DIR}/data:/var/www/html/data:ro" + depends_on: + - app diff --git a/privatebin/data/privatebin-data/.gitkeep b/privatebin/data/privatebin-data/.gitkeep new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/privatebin/data/privatebin-data/.gitkeep @@ -0,0 +1 @@ + diff --git a/privatebin/dfwebos-app.yml b/privatebin/dfwebos-app.yml new file mode 100644 index 0000000..0aeba03 --- /dev/null +++ b/privatebin/dfwebos-app.yml @@ -0,0 +1,67 @@ +manifestVersion: 1 +id: privatebin +name: PrivateBin +tagline: ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠ½Π»Π°ΠΉΠ½-пастСр с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. +category: files +version: "2.0.3" +port: 3070 +description: >- + ⚠️ Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ PrivateBin трСбуСтся HTTPS ΠΈ доступ ΠΊ общСдоступному Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это β€” с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния Cloudflare Tunnel ΠΈΠ»ΠΈ прилоТСния Nginx Proxy Manager Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS. + + + PrivateBin β€” это минималистичный ΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сСрвис вставки с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. + Он позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ бСзопасно ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ тСкстом ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сквозного ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, гарантируя, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ смоТСт ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ содСрТимоС. + Π‘Π΅Ρ€Π²Π΅Ρ€, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ PrivateBin, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ обСспСчиваСт высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности PrivateBin: + + + πŸ”’ Π‘ΠΊΠ²ΠΎΠ·Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅: всС Π΄Π°Π½Π½Ρ‹Π΅ ΡˆΠΈΡ„Ρ€ΡƒΡŽΡ‚ΡΡ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π½Π° сСрвСр. Π‘Π΅Ρ€Π²Π΅Ρ€ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ Π½Π΅Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. + + + πŸ”₯ Π‘Ρ€ΠΎΠΊ дСйствия ΠΈ сТиганиС послС прочтСния. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ срок дСйствия своих вставок ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ «сТиганиС послС прочтСния», ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ самоуничтоТаСтся послС ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ просмотра. + + + πŸ‘€ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ: PrivateBin Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ рСгистрации ΠΈΠ»ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. + + + πŸ›‘οΈ Π—Π°Ρ‰ΠΈΡ‚Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ бСзопасности, установив ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для вставки. + + + πŸ“œ ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса: PrivateBin ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ подсвСтку синтаксиса для языков программирования, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΠ΄Π°. + + + 🏠 Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅: PrivateBin Π² качСствС Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ‚Π΅ΠΌ, Π³Π΄Π΅ хранятся Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвСрными срСдами. + + + 🚫 НСт ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…: Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисов Pastebin, PrivateBin Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ IP-адрСса ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ… ΠΈΠ»ΠΈ вставках. + + + Он популярСн Π² сообщСствах, заботящихся ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ позволяСт бСзопасно ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, Π½Π΅ оставляя слСдов. +developer: PrivateBin Community +website: https://privatebin.info/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/1657 +repo: https://github.com/PrivateBin/PrivateBin +support: https://github.com/PrivateBin/PrivateBin/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + 🚨 Π’ этом выпускС устранСны критичСскиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСзопасности, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ уязвимости ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ очистки ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ исправлСния бСзопасности Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ шаблонов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с санациСй ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², которая ΠΌΠΎΠ³Π»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ врСдоносныС ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² для внСдрСния HTML. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с созданиСм Π½ΠΎΠ²Ρ‹Ρ… вставок ΠΈΠ· ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² JSON. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/PrivateBin/PrivateBin/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/privatebin/docker-compose.yml b/privatebin/docker-compose.yml new file mode 100644 index 0000000..63b5924 --- /dev/null +++ b/privatebin/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: privatebin_server_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + + server: + image: privatebin/nginx-fpm-alpine:2.0.3@sha256:f8fcca3d71dfe983c8404dc6dbcc140ab12cebe8d4ee62329254c79b5934b1e8 + user: "1000:1000" + read_only: true + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/privatebin-data:/srv/data diff --git a/prowlarr/data/config/.gitkeep b/prowlarr/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/prowlarr/dfwebos-app.yml b/prowlarr/dfwebos-app.yml new file mode 100644 index 0000000..6a2bf8c --- /dev/null +++ b/prowlarr/dfwebos-app.yml @@ -0,0 +1,57 @@ +manifestVersion: 1 +id: prowlarr +category: media +name: Prowlarr +version: "2.3.5.5327" +tagline: "Prowlarr β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ индСксаторов/прокси." +description: >- + Prowlarr β€” это ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€/прокси-сСрвСр индСксатора, созданный Π½Π° основС популярного Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ стСка *arr .net/reactjs для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ прилоТСниями PVR. + Prowlarr ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ индСксаторами Usenet. Он Π»Π΅Π³ΠΊΠΎ интСгрируСтся с Lidarr, Mylar3, Radarr, Readarr ΠΈ Sonarr, прСдлагая ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вашими индСксаторами Π±Π΅Π· нСобходимости настройки индСксатора для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния (ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ всС это). + + + πŸ› οΈ ИНБВРУКЦИЯ ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + + Prowlarr Π½Π° DFWebOS автоматичСски: + + 1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям Serverr ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹: + + Prowlarr Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями Servarr (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Radarr, Sonarr ΠΈ Ρ‚. Π΄.) ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Transmission, qBittorrent ΠΈ Ρ‚. Π΄.), установлСнныС ΠΈΠ· DFWebOS App Store. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ Π²Π°ΠΌΠΈ прилоТСния, ΠΈ Prowlarr Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ соСдинСниями Π·Π° вас. + + + 2. НастройтС Flaresolver: + + Prowlarr поставляСтся с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ настроСнным FlareSolverr. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ‚Π΅Π³ Β«flaresolverrΒ» ΠΊΠΎ всСм индСксаторам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ трСбуСтся. +developer: Prowlarr +website: https://prowlarr.com/ +dependencies: + - transmission +repo: https://github.com/Prowlarr/Prowlarr +support: https://github.com/Prowlarr/Prowlarr/issues +port: 9696 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько исправлСний ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ, Ссли ΠΏΡƒΡ‚ΡŒ содСрТит ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ манифСст PWA с Π±Π°Π·ΠΎΠΉ URL-адрСсов ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠΌΠ΅Π½ΠΈ экзСмпляра Π² манифСстС PWA. + - ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… фиксированной Ρ„ΠΎΡ€ΠΌΡ‹ для индСксаторов, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ UTF8. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ URL-адрСсов Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСмах ΠΈΠ·-Π·Π° Π»ΠΎΠΊΠ°Π»ΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ограничСния Π½Π° ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ послС Π²Ρ…ΠΎΠ΄Π° Π² систСму Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ путям. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ сСлСкторы ΠΌΠ°ΠΊΠ΅Ρ‚Π° SceneTime. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²Ρ‹Π·ΠΎΠ² Nebulance API. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ индСксатор: AnimeZ. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ обновлСния ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Prowlarr/Prowlarr/releases. +torOnly: false +permissions: + - STORAGE_DOWNLOADS +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/commit/60878f278d544b204d8e7c96240c797f43a9b319 diff --git a/prowlarr/docker-compose.yml b/prowlarr/docker-compose.yml new file mode 100644 index 0000000..555cc98 --- /dev/null +++ b/prowlarr/docker-compose.yml @@ -0,0 +1,52 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: prowlarr_server_1 + APP_PORT: 9696 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: linuxserver/prowlarr:version-2.3.5.5327@sha256:6df73ab9e99d0dbaad27c39d8a47c600333eebea80fcb56253a0bb8b630c8115 + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + restart: on-failure + + indexer_proxy: + image: flaresolverr/flaresolverr:v3.4.6@sha256:7962759d99d7e125e108e0f5e7f3cdbcd36161776d058d1d9b7153b92ef1af9e + restart: on-failure + + mac: + image: getumbrel/media-app-configurator:v1.3.0@sha256:67e75dd9f5a14402b7816119a8e20189bc2465484cea077909d164687e59742b + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/config:/config + environment: + APP_ID: "prowlarr" + APP_URL: "http://prowlarr_server_1:9696" + FLARESOLVERR_URL: "http://prowlarr_indexer_proxy_1:8191" + TRANSMISSION_HOST: "transmission_server_1" + TRANSMISSION_PORT: 9091 + RADARR_URL: "http://radarr_server_1:7878" + RADARR_CONFIG_XML: "${APP_PROWLARR_RADARR_CONFIG_XML}" + LIDARR_URL: "http://lidarr_server_1:8686" + LIDARR_CONFIG_XML: "${APP_PROWLARR_LIDARR_CONFIG_XML}" + SONARR_URL: "http://sonarr_server_1:8989" + SONARR_CONFIG_XML: "${APP_PROWLARR_SONARR_CONFIG_XML}" + READARR_URL: "http://readarr_server_1:8787" + READARR_CONFIG_XML: "${APP_PROWLARR_READARR_CONFIG_XML}" + # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ qBittorrent + QBITTORRENT_INSTALLED: ${APP_PROWLARR_QBITTORRENT_INSTALLED:-"false"} + QBITTORRENT_HOST: "qbittorrent_server_1" + QBITTORRENT_PORT: 8080 + # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ SABnzbd + SABNZBD_INSTALLED: ${APP_PROWLARR_SABNZBD_INSTALLED:-"false"} + SABNZBD_HOST: "sabnzbd_web_1" + SABNZBD_PORT: 8080 + SABNZBD_API_KEY: ${APP_PROWLARR_SABNZBD_API_KEY:-""} diff --git a/prowlarr/exports.sh b/prowlarr/exports.sh new file mode 100644 index 0000000..969d771 --- /dev/null +++ b/prowlarr/exports.sh @@ -0,0 +1,18 @@ +export APP_PROWLARR_RADARR_CONFIG_XML=$(cat "${DFWEBOS_ROOT}/app-data/radarr/data/config/config.xml" 2>/dev/null || echo "") +export APP_PROWLARR_LIDARR_CONFIG_XML=$(cat "${DFWEBOS_ROOT}/app-data/lidarr/data/config/config.xml" 2>/dev/null || echo "") +export APP_PROWLARR_SONARR_CONFIG_XML=$(cat "${DFWEBOS_ROOT}/app-data/sonarr/data/config/config.xml" 2>/dev/null || echo "") +export APP_PROWLARR_READARR_CONFIG_XML=$(cat "${DFWEBOS_ROOT}/app-data/readarr/data/config/config.xml" 2>/dev/null || echo "") + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСны Π»ΠΈ qBittorrent ΠΈ SABnzbd. +installed_apps=$("${DFWEBOS_ROOT}/scripts/app" ls-installed) + +if echo "$installed_apps" | grep --quiet 'qbittorrent'; then + export APP_PROWLARR_QBITTORRENT_INSTALLED="true" +fi + +if echo "$installed_apps" | grep --quiet 'sabnzbd'; then + export APP_PROWLARR_SABNZBD_INSTALLED="true" + # экспортируйтС SABNZBD_API_KEY, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: + # api_key = 98e3444f7fab45e592958673bf656g3 + export APP_PROWLARR_SABNZBD_API_KEY=$(grep -Po 'api_key = \K.*' "${DFWEBOS_ROOT}/app-data/sabnzbd/data/config/sabnzbd.ini") +fi diff --git a/public-pool-web/data/postgres/.gitkeep b/public-pool-web/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/public-pool-web/data/redis/.gitkeep b/public-pool-web/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/public-pool-web/dfwebos-app.yml b/public-pool-web/dfwebos-app.yml new file mode 100644 index 0000000..8420bf8 --- /dev/null +++ b/public-pool-web/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: public-pool-web +category: bitcoin +name: Public Pool's Web +version: "0.1.0" +tagline: Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс для управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ вашСго ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ»Π°. +description: > + Π’Π΅Π±-сайт Public Pool прСдоставляСт элСгантный ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс для управлСния ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. + Π΄Π°Π½Π½Ρ‹Π΅ вашСго ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ»Π°. + + + Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ с использованиСм Rails 8.0 ΠΈ соврСмСнных Π²Π΅Π±-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ + ОбновлСния Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, подробная Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° ΠΈ комплСксныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ управлСния ΠΏΡƒΠ»ΠΎΠΌ. + + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ + - Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ° + - Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ + - Π’Π΅Π±-интСрфСйс Sidekiq (для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ с Π½ΠΈΠΌ Π½Π΅ ΡΠ²ΡΠ·Ρ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ) + + + βš οΈΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ: + - Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ IP-адрСс хоста (ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΡ€Ρ‚) вашСго ΠΏΡƒΠ»Π°. (ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡƒΠ» Π΅Ρ‰Π΅ Π½Π΅ раскрываСт свой IP) + - Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ IP-адрСс хоста ΠΈ ΠΏΠΎΡ€Ρ‚ ΠΏΡƒΠ»Π°, пСрСзапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ОБ DFWebOS. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Sidekiq ΠΈΡ… Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚. + + + Π­Ρ‚ΠΎ Ρ…ΠΎΠ±Π±ΠΈ-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚! +developer: martinbarilik +website: https://github.com/martinbarilik/public-pool-web +dependencies: + - public-pool +repo: https://github.com/martinbarilik/public-pool-web +support: https://github.com/martinbarilik/public-pool-web/discussions +port: 2021 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "/" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска: + - исправлСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ созданиСм Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π½ΠΎΠ²ΠΎΠΉ установкС. + - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ PostgresSQL Π΄ΠΎ вСрсии 17.6. +submitter: "martinbarilik" +submission: https://github.com/getumbrel/dfwebos-apps/pull/3159 diff --git a/public-pool-web/docker-compose.yml b/public-pool-web/docker-compose.yml new file mode 100644 index 0000000..ce4dbcc --- /dev/null +++ b/public-pool-web/docker-compose.yml @@ -0,0 +1,58 @@ +services: + app_proxy: + environment: + APP_HOST: public-pool-web_rails-app_1 + APP_PORT: 3000 + + rails-app: + image: martinbarilik/public-pool-web:0.1.0@sha256:943270bc7e5c01ee713f74fec77c3e159db8f3b599e71f324b08d39e8d88a37c + user: "1000:1000" + environment: + - RAILS_MASTER_KEY=${APP_PUBLIC_POOL_WEB_MASTER_KEY} + - DATABASE_URL=${APP_PUBLIC_POOL_WEB_DATABASE_URL} + - REDIS_URL=${APP_PUBLIC_POOL_WEB_REDIS_URL} + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + + db: + image: postgres:17.6@sha256:8a56bef4c60bef3d26193cb9d810fce93def8fd0c459f4a9b14240fbd7559a1d + user: "1000:1000" + environment: + - POSTGRES_USER=${APP_PUBLIC_POOL_WEB_POSTGRES_USERNAME} + - POSTGRES_PASSWORD=${APP_PUBLIC_POOL_WEB_POSTGRES_PASSWORD} + - POSTGRES_DB=${APP_PUBLIC_POOL_WEB_POSTGRES_DBNAME} + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${APP_PUBLIC_POOL_WEB_POSTGRES_USERNAME} -d ${APP_PUBLIC_POOL_WEB_POSTGRES_DBNAME}"] + interval: 10s + timeout: 5s + retries: 5 + + redis: + image: redis:7.4.2@sha256:fbdbaea47b9ae4ecc2082ecdb4e1cea81e32176ffb1dcf643d422ad07427e5d9 + user: "1000:1000" + healthcheck: + test: ["CMD-SHELL", "redis-cli ping"] + interval: 10s + timeout: 5s + retries: 5 + volumes: + - ${APP_DATA_DIR}/data/redis:/data + + sidekiq: + image: martinbarilik/public-pool-web:0.1.0@sha256:943270bc7e5c01ee713f74fec77c3e159db8f3b599e71f324b08d39e8d88a37c + user: "1000:1000" + environment: + - RAILS_MASTER_KEY=${APP_PUBLIC_POOL_WEB_MASTER_KEY} + - REDIS_URL=${APP_PUBLIC_POOL_WEB_REDIS_URL} + - DATABASE_URL=${APP_PUBLIC_POOL_WEB_DATABASE_URL} + command: bundle exec sidekiq + depends_on: + - redis + - db + - rails-app + diff --git a/public-pool-web/exports.sh b/public-pool-web/exports.sh new file mode 100644 index 0000000..509bb7d --- /dev/null +++ b/public-pool-web/exports.sh @@ -0,0 +1,9 @@ +export APP_PUBLIC_POOL_WEB_POSTGRES_USERNAME="public_pool_web" +export APP_PUBLIC_POOL_WEB_POSTGRES_PASSWORD="SlyRoundaboutWay" +export APP_PUBLIC_POOL_WEB_POSTGRES_PORT="5432" +export APP_PUBLIC_POOL_WEB_POSTGRES_DBNAME="public_pool_web_production" +# URL ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ символы подчСркивания (%5F) Π² ΠΈΠΌΠ΅Π½ΠΈ хоста для удовлСтворСния строгого Π°Π½Π°Π»ΠΈΠ·Π° URI. +export APP_PUBLIC_POOL_WEB_POSTGRES_HOST="public-pool-web%5Fdb%5F1" +export APP_PUBLIC_POOL_WEB_DATABASE_URL="postgres://${APP_PUBLIC_POOL_WEB_POSTGRES_USERNAME}:${APP_PUBLIC_POOL_WEB_POSTGRES_PASSWORD}@${APP_PUBLIC_POOL_WEB_POSTGRES_HOST}:${APP_PUBLIC_POOL_WEB_POSTGRES_PORT}/${APP_PUBLIC_POOL_WEB_POSTGRES_DBNAME}" +export APP_PUBLIC_POOL_WEB_REDIS_URL="redis://public-pool-web_redis_1:6379/0" +export APP_PUBLIC_POOL_WEB_MASTER_KEY="dbd1d33e19a5e0ca9b28c2c55803afef" diff --git a/public-pool/data/database/.gitkeep b/public-pool/data/database/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/public-pool/data/proxy/nginx.conf b/public-pool/data/proxy/nginx.conf new file mode 100644 index 0000000..8aef341 --- /dev/null +++ b/public-pool/data/proxy/nginx.conf @@ -0,0 +1,11 @@ +server { + listen 80; + + location / { + proxy_pass http://public-pool_web_1:80; + } + + location ~* ^/api/ { + proxy_pass http://public-pool_server_1:2019; + } +} \ No newline at end of file diff --git a/public-pool/dfwebos-app.yml b/public-pool/dfwebos-app.yml new file mode 100644 index 0000000..129504e --- /dev/null +++ b/public-pool/dfwebos-app.yml @@ -0,0 +1,53 @@ +manifestVersion: 1 +id: public-pool +category: bitcoin +name: Public Pool +version: "3c1289c" +tagline: Π‘ΠΎΠ»ΠΎ-ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΠ» Bitcoin с ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ +description: >- + Public Pool β€” это ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Bitcoin с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π²Π°ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ собствСнный ΠΏΡƒΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ собствСнный ΡƒΠ·Π΅Π». + ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΡƒΠ»Ρ‹, Public Pool позволяСт Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ для ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π²Π°ΡˆΡƒ Π»ΠΈΡ‡Π½ΡƒΡŽ настройку, гарантируя, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π°. + Если Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π΄ΠΎΠ±ΡƒΠ΄Π΅Ρ‚Π΅ Π±Π»ΠΎΠΊ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ всю Π½Π°Π³Ρ€Π°Π΄Ρƒ Π·Π° Π±Π»ΠΎΠΊ. Никакого раздСлСния с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ°ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. Никаких сборов. Никаких посрСдников. + + + На DFWebOS общСствСнный ΠΏΡƒΠ» автоматичСски настраиваСтся для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с вашим ΡƒΠ·Π»ΠΎΠΌ Bitcoin β€” Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ настройка Π½Π΅ трСбуСтся. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΎΠ½ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅. + + + Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³, просто Π½Π°ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ своС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ для ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Π½Π° экзСмпляр ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свСдСния ΠΎ слоС, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. + ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой ΠΎΠ±Ρ‰ΠΈΠΉ Ρ…ΡΡˆΡ€Π΅ΠΉΡ‚, отслСТивайтС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ вознаграТдСния нСпосрСдствСнно Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ адрСс Bitcoin. ΠœΠ°ΠΉΠ½ΠΈΡ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ ΡƒΡΠΈΠ»ΠΈΡ‚ΡŒ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Bitcoin. +developer: Benjamin Wilson +website: https://web.public-pool.io/#/ +dependencies: + - bitcoin +repo: https://github.com/benjamin-wilson/public-pool +support: https://github.com/benjamin-wilson/public-pool/issues +port: 2019 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +releaseNotes: >- + Π­Ρ‚ΠΎ нСбольшоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ устраняСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, которая прСпятствовала доступу ΠΊ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΏΡƒΠ»Ρƒ интСрфСйс ΠΏΡ€ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠΌ доступС ΠΊ общСдоступному Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ Cloudflare ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹). +defaultPassword: "" +widgets: + - id: "stats" + type: "four-stats" + refresh: "5s" + endpoint: "widget-server:3000/widgets/pool" + link: "" + example: + type: "four-stats" + link: "" + items: + - title: "Hash Rate" + text: "968" + subtext: "GH/s" + - title: "Miners" + text: "1" + - title: "Blocks Found" + text: "1" + - title: "Block Height" + text: "883453" +submitter: smolgrrr +submission: https://github.com/getumbrel/dfwebos-apps/pull/915 diff --git a/public-pool/docker-compose.yml b/public-pool/docker-compose.yml new file mode 100644 index 0000000..2abb740 --- /dev/null +++ b/public-pool/docker-compose.yml @@ -0,0 +1,54 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: public-pool_proxy_1 + APP_PORT: 80 + PROXY_AUTH_WHITELIST: "/api/*" + + web: + image: ghcr.io/duckaxe/public-pool-ui:3c1289c@sha256:d916a72b2487c935468b894a89450e5ed688525500fcb81961061c3d7a7877e2 + restart: on-failure + stop_grace_period: 30s + environment: + - DOMAIN=$DEVICE_DOMAIN_NAME + + server: + image: ghcr.io/sethforprivacy/public-pool:9938a05@sha256:96347cbbc2ec6f27ec1b282e8353e41197fad6ca56e011873e69e7c3b6555b14 + restart: on-failure + stop_grace_period: 30s + ports: + - "2018:2018/tcp" + volumes: + - "${APP_DATA_DIR}/data/database:/public-pool/DB" + environment: + - NODE_ENV=production + - BITCOIN_RPC_URL=http://${APP_BITCOIN_NODE_IP} + - BITCOIN_RPC_USER=${APP_BITCOIN_RPC_USER} + - BITCOIN_RPC_PASSWORD=${APP_BITCOIN_RPC_PASS} + - BITCOIN_RPC_PORT=${APP_BITCOIN_RPC_PORT} + - BITCOIN_RPC_TIMEOUT=10000 + - API_PORT=2019 + - STRATUM_PORT=2018 + - NETWORK=mainnet + - API_SECURE=false + - ENABLE_SOLO=true + - ENABLE_PROXY=false + - POOL_IDENTIFIER="Public Pool on Umbrel" + + proxy: + image: nginx:1.25.3@sha256:4c0fdaa8b6341bfdeca5f18f7837462c80cff90527ee35ef185571e1c327beac + volumes: + - ${APP_DATA_DIR}/data/proxy/nginx.conf:/etc/nginx/conf.d/default.conf:ro + depends_on: + - web + - server + restart: on-failure + + widget-server: + image: ghcr.io/getumbrel/umbrel-public-pool-widget:v1.0.0@sha256:b8861a5b79471377f1bfbf6733f11350970b482103d4ef4185f372350ffff6b3 + user: "1000:1000" + environment: + - PUBLIC_POOL_API_URL=http://public-pool_proxy_1/api/pool + restart: on-failure diff --git a/pyload-ng/data/config/.gitkeep b/pyload-ng/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pyload-ng/dfwebos-app.yml b/pyload-ng/dfwebos-app.yml new file mode 100644 index 0000000..37906bc --- /dev/null +++ b/pyload-ng/dfwebos-app.yml @@ -0,0 +1,32 @@ +manifestVersion: 1 +id: pyload-ng +category: files +name: pyload-ng +version: "0.5.0" +tagline: БСсплатный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. +description: >- + Pyload β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для упрощСния Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС распространСнныС видСосайты, хостСры Β«Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊΒ», Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ извСстныС Π²Π΅Π±-стандарты, Ρ‡Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹. + + + ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Pyload ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΈ обСспСчСния возмоТности автоматичСской Ρ€Π°Π±ΠΎΡ‚Ρ‹. + + + Pyload ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ интСрфСйс ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ ΠΈ доступСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π½Π΅ΡˆΠ½ΠΈΡ… инструмСнтов, кроссплатформСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. +developer: pyload +website: https://pyload.net/ +repo: https://github.com/pyload/pyload/ +support: https://github.com/pyload/pyload/issues +port: 8783 +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/4124 +releaseNotes: "" +dependencies: [] +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +permissions: + - STORAGE_DOWNLOADS +path: "" +defaultUsername: "pyload" +defaultPassword: "pyload" diff --git a/pyload-ng/docker-compose.yml b/pyload-ng/docker-compose.yml new file mode 100644 index 0000000..5466fb8 --- /dev/null +++ b/pyload-ng/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: pyload-ng_web_1 + APP_PORT: "8000" + + web: + image: linuxserver/pyload-ng:0.5.0@sha256:0ef3e1d15183eb7f517742afe2f75b42c1d58e14640f8d5741f6e88d2d7b9ab5 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC diff --git a/qbittorrent/data/config/.gitkeep b/qbittorrent/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/qbittorrent/dfwebos-app.yml b/qbittorrent/dfwebos-app.yml new file mode 100644 index 0000000..388790e --- /dev/null +++ b/qbittorrent/dfwebos-app.yml @@ -0,0 +1,56 @@ +manifestVersion: 1.1 +id: qbittorrent +category: networking +name: qBittorrent +version: "5.1.4" +tagline: БСсплатный ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ P2P-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ BitTorrent. +description: >- + qBittorrent β€” это программная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Β΅Torrent с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Он Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для удовлСтворСния потрСбностСй Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΈ минимальном использовании процСссора ΠΈ памяти. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + + qBittorrent Π½Π° DFWebOS настроСн для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π΅Π· нСобходимости ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки. Он Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ зависимым прилоТСниям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Radarr, Sonarr, Lidarr, Readarr ΠΈ Prowlarr. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Π΅ прилоТСния ΠΈΠ· DFWebOS App Store, ΠΈ всС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· сбоСв. + + + НСкоторыС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ совСты: + + + - Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ мСняСтС ΠΏΡƒΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² настройках прилоТСния. Для Π½Π΅Π³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«/app/qBittorrent/downloadsΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваши Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Π² основной ΠΏΠ°ΠΏΠΊΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ DFWebOS. + + - ПослС установки рСкомСндуСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для прилоТСния. + + - Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ поставляСтся Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с двумя Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Web интСрфСйс: VueTorrent ΠΈ Nightwalker. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ…, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Β«Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹Β» -> Β«ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹Β» -> Β«Web интСрфСйс» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π΅Π±-сайт интСрфСйс». Π’ ΠΏΠΎΠ»Π΅ «РасполоТСниС Ρ„Π°ΠΉΠ»ΠΎΠ²Β» Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Β«/app/vuetorrentΒ» для VueTorrent ΠΈΠ»ΠΈ Β«/app/nightwalkerΒ» для Nightwalker ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΒ». + + + ⚠️ qBittorrent скачиваСт Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Clearnet, Π° Π½Π΅ Tor. +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ сбои, связанныС с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ настройками Linux. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ пустыС ΠΏΠ°ΠΏΠΊΠΈ, ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ΡΡ послС удалСния ΠΈΠ»ΠΈ пСрСмСщСния Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Π° поиска. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ HTTP, Π²Π»ΠΈΡΡŽΡ‰Π°Ρ Π½Π° настройки ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ чтСния с экрана Π² спискС Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚ΠΎΠ². + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ фокуса клавиши табуляции Π² интСрфСйс. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску qBittorrent доступны ΠΏΠΎ адрСсу https://www.qbittorrent.org/news. +developer: qBittorrent +website: https://qbittorrent.org/ +dependencies: [] +repo: https://github.com/qBittorrent/qBittorrent +support: https://github.com/qBittorrent/qBittorrent/issues +port: 8094 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "admin" +defaultPassword: "adminadmin" +torOnly: false +permissions: + - STORAGE_DOWNLOADS +submitter: ASOwnerYT +submission: https://github.com/getumbrel/dfwebos-apps/pull/468 diff --git a/qbittorrent/docker-compose.yml b/qbittorrent/docker-compose.yml new file mode 100644 index 0000000..e9e6c5e --- /dev/null +++ b/qbittorrent/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: qbittorrent_server_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "true" + + server: + image: ghcr.io/hotio/qbittorrent:release-5.1.4@sha256:b547db036748d449c5cbd31635dc3b695ccc70424775c44ea91df18bd1da1ea4 + environment: + - PUID=1000 + - PGID=1000 + # - UMASK=002 + volumes: + - ${APP_DATA_DIR}/data/config:/config + # /app/qBittorrent/downloads is the default path set in qBittorrent + - ${DFWEBOS_ROOT}/data/storage/downloads:/app/qBittorrent/downloads + restart: on-failure diff --git a/qbittorrent/hooks/post-start b/qbittorrent/hooks/post-start new file mode 100755 index 0000000..748b74f --- /dev/null +++ b/qbittorrent/hooks/post-start @@ -0,0 +1,117 @@ +#!/usr/bin/env bash +set -euo pipefail + +echo "inside qbittorrent/hooks/post-start" + +# Π­Ρ‚ΠΎΡ‚ скрипт Π΄Π΅Π»Π°Π΅Ρ‚ 2 основныС Π²Π΅Ρ‰ΠΈ: +# 1. УстанавливаСт ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 'adminadmin', Ссли ΠΎΠ½ Π΅Ρ‰Π΅ Π½Π΅ установлСн. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ qBittorrent послС установки Π±Π΅Π· нСобходимости доступа ΠΊ ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° qBittorrent для получСния Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ пароля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½ ΠΏΡ€ΠΈ пСрСзапускС. +# 2. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠΏΡ†ΠΈΡŽ AuthSubnetWhitelist ΠΈ устанавливаСт для AuthSubnetWhitelist ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŒ сСти Docker DFWEBOS_main_network. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ автоматичСски Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прилоТСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Radarr/Sonarr/etc.. + +# ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ» HAS_BEEN_CONFIGURED, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ настроили qBittorrent. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ смогут ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» qBittorrent.conf Π±Π΅Π· Π΅Π³ΠΎ пСрСзаписи нашим сцСнариСм. + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +QBITTORRENT_CONF_FILE="${APP_DATA_DIR}/data/config/config/qBittorrent.conf" +DFWEBOS_QBITTORRENT_CONFIG_FLAG="${APP_DATA_DIR}/HAS_BEEN_CONFIGURED_BY_DFWEBOS" + +if [[ -f "${DFWEBOS_QBITTORRENT_CONFIG_FLAG}" ]]; then + echo "qBittorrent has already been configured." + exit +fi + +# ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ Π΄ΠΎ 30 сСкунд, ΠΏΠΎΠΊΠ° Ρ„Π°ΠΉΠ» qBittorrent.conf появится. +echo "Waiting up to 30 seconds for qBittorrent.conf file to exist..." +for attempt in $(seq 1 300); do + if [[ -f "${QBITTORRENT_CONF_FILE}" ]]; then + echo "qBittorrent.conf file exists" + break + fi + sleep 0.1 +done + +if [[ ! -f "${QBITTORRENT_CONF_FILE}" ]]; then + echo "qBittorrent.conf was never created. Something is likely wrong with the qBittorrent app." + exit +fi + +# ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ 5 сСкунд, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ записан слуТбой qBittorrent. +echo "Waiting 5 seconds for qBittorrent.conf file to be fully written..." +sleep 5 + +ensure_preferences_section() { + if ! grep --quiet '^\[Preferences\]$' "${QBITTORRENT_CONF_FILE}"; then + echo "[Preferences] section does not exist in qBittorrent.conf. Creating it." + printf '\n[Preferences]\n' >> "${QBITTORRENT_CONF_FILE}" + fi +} + +if "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" stop server; then + echo "qBittorrent stopped successfully." +else + echo "Failed to run stop command because we were sent here from the post-start hook. This is expected behavior. Continuing" +fi + +ensure_preferences_section + +# Начиная с вСрсии 4.6.1, qBittorrent большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ вмСсто этого ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π² ΠΆΡƒΡ€Π½Π°Π»Π°Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ идСально для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. +# ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ qBittorrent, ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π²ΠΎΠΉΡ‚ΠΈ Π² систСму с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈΠ· интСрфСйс. +# Π­Ρ‚ΠΎΡ‚ сцСнарий установит Π² качСствС пароля ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ 'adminadmin', Ссли ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π΅Ρ‰Π΅ Π½Π΅ установлСн. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ установил ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, этот сцСнарий Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ. +# ОписаниС прилоТСния Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS ΠΏΡ€ΠΈΠ·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + +# Если строка с `WebUI\Password_PBKDF2` Π΅Ρ‰Π΅ Π½Π΅ сущСствуСт Π² qBittorrent.conf, Π·Π½Π°Ρ‡ΠΈΡ‚ собствСнный ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π΅Ρ‰Π΅ Π½Π΅ установлСн ΠΈ ΠΌΡ‹ прописываСм `adminadmin` Π² качСствС пароля ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. +# ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ эта строка Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ [Настройки]. +# Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ провСряСм эту строку, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ установка Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ qBittorrent ΡƒΠ΄Π°Π»ΠΈΠ» ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. +if ! grep --quiet '^WebUI\\Password_PBKDF2' "${QBITTORRENT_CONF_FILE}"; then + echo "WebUI\\Password_PBKDF2 does not exist in qBittorrent.conf. Adding default password." + + echo "Writing default password adminadmin to qBittorrent.conf" + sed -i '/^\[Preferences\]/a WebUI\\Password_PBKDF2="@ByteArray(gTzqQHUv3A1X43tLaAhaJQ==:ZBCIBA4honNZ7H66xdEoHpqBC/Vvwj17ZCjQKARSK78ScJWDMdWSfxezHG536UekAL/zpRn571MXCfhtdqiArA==)"' "${QBITTORRENT_CONF_FILE}" + +else + # Π­Ρ‚ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ установка, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ установил ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. ΠœΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ. + echo "'WebUI\\Password_PBKDF2' already exists in qBittorrent.conf. No changes made." +fi + +# ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ эти настройки Π² Ρ„Π°ΠΉΠ»Π΅ qBittorrent.conf, Ссли хотят ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΈ этот сцСнарий Π½Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΈΡ…. + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ WebUI\AuthSubnetWhitelist установлСн ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. +echo "Setting AuthSubnetWhitelist=10.21.0.0/16 in qBittorrent.conf" +if grep -q '^WebUI\\AuthSubnetWhitelist=' "${QBITTORRENT_CONF_FILE}"; then + sed -i 's/^WebUI\\AuthSubnetWhitelist=.*/WebUI\\AuthSubnetWhitelist=10.21.0.0\/16/' "${QBITTORRENT_CONF_FILE}" +else + sed -i '/^\[Preferences\]/a WebUI\\AuthSubnetWhitelist=10.21.0.0/16' "${QBITTORRENT_CONF_FILE}" +fi + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ WebUI\AuthSubnetWhitelistEnabled установлСн ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. +echo "Setting WebUI\AuthSubnetWhitelistEnabled=true in qBittorrent.conf" +if grep -q '^WebUI\\AuthSubnetWhitelistEnabled=' "${QBITTORRENT_CONF_FILE}"; then + sed -i 's/^WebUI\\AuthSubnetWhitelistEnabled=.*/WebUI\\AuthSubnetWhitelistEnabled=true/' "${QBITTORRENT_CONF_FILE}" +else + sed -i '/^\[Preferences\]/a WebUI\\AuthSubnetWhitelistEnabled=true' "${QBITTORRENT_CONF_FILE}" +fi + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ WebUI\HostHeaderValidation установлСн ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. +echo "Setting WebUI\HostHeaderValidation=false in qBittorrent.conf" +if grep -q '^WebUI\\HostHeaderValidation=' "${QBITTORRENT_CONF_FILE}"; then + sed -i 's/^WebUI\\HostHeaderValidation=.*/WebUI\\HostHeaderValidation=false/' "${QBITTORRENT_CONF_FILE}" +else + sed -i '/^\[Preferences\]/a WebUI\\HostHeaderValidation=false' "${QBITTORRENT_CONF_FILE}" +fi + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» DFWEBOS_QBITTORRENT_CONFIG_FLAG, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ настроили qBittorrent. +touch "${DFWEBOS_QBITTORRENT_CONFIG_FLAG}" + +# Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слуТбу qBittorrent +echo "Starting qBittorrent..." +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" start server + +# ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ прилоТСния *arr, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ настройку. +apps=("radarr" "sonarr" "lidarr" "readarr" "prowlarr") +installed_apps=$("${DFWEBOS_ROOT}/scripts/app" ls-installed) + +for app in "${apps[@]}"; do + if echo "$installed_apps" | grep --quiet "$app"; then + # ΠœΡ‹ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌ скрипт ΠΏΡ€ΠΈ пСрСзапускС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ всС прилоТСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. + # AND Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ qBittorrent отобраТался Π² спискС установлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ пСрСзапускС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + "${DFWEBOS_ROOT}/scripts/app" restart "$app" & + fi +done diff --git a/radarr/data/config/.gitkeep b/radarr/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/radarr/dfwebos-app.yml b/radarr/dfwebos-app.yml new file mode 100644 index 0000000..415915c --- /dev/null +++ b/radarr/dfwebos-app.yml @@ -0,0 +1,47 @@ +manifestVersion: 1.1 +id: radarr +category: media +name: Radarr +version: "6.1.1.10360" +tagline: Π’Π°Ρˆ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² +description: >- + Radarr β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Usenet ΠΈ BitTorrent. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько RSS-ΠΊΠ°Π½Π°Π»ΠΎΠ² Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ индСксаторами для ΠΈΡ… Π·Π°Ρ…Π²Π°Ρ‚Π°, сортировки ΠΈ пСрСимСнования. Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° автоматичСскоС ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ качСства ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, ΠΊΠΎΠ³Π΄Π° становится доступным Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокого качСства. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΠΌΠ°. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° вСрсия ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΠΌΠ° ΠΊΠ°ΠΊ Π² Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ 4k, Ρ‚Π°ΠΊ ΠΈ Π² Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ 1080p, Π²Π°ΠΌ понадобится нСсколько экзСмпляров. + + + πŸ› οΈ ИНБВРУКЦИЯ ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Radarr Π½Π° DFWebOS автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², установлСнных ΠΈΠ· DFWebOS App Store. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ· Transmission, qBittorerent ΠΈ SABnzbd. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚(Ρ‹). + + + ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ индСксатор, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Radarr ΠΌΠΎΠ³ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΠΌΡ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ индСксаторы нСпосрСдствСнно Π² Radarr ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Prowlarr ΠΈΠ· DFWebOS App Store, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ индСксаторами Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… прилоТСниях. + Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ свои индСксаторы Π² Prowlarr, ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски доступны Π² Radarr. +developer: Radarr +website: https://radarr.video/ +dependencies: + - transmission +repo: https://github.com/Radarr/Radarr +support: https://github.com/Radarr/Radarr/issues +port: 7878 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π°Π½Π°Π»ΠΈΠ· URL-адрСсов Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСмах ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² Π»ΠΎΠΊΠ°Π»ΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ сопоставлСниС Ρ„Π°ΠΉΠ»ΠΎΠ² HTTP. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Π½Π°Π»ΠΈΠ·Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π΅Π»ΠΈΠ·ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ API ΠΏΡ€ΠΈ использовании ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ². + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° настройка TTL для ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Pushover. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языков. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску Radarr доступны ΠΏΠΎ адрСсу https://github.com/Radarr/Radarr/releases. +defaultUsername: "" +defaultPassword: "" +torOnly: false +permissions: + - STORAGE_DOWNLOADS +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/commit/60878f278d544b204d8e7c96240c797f43a9b319 diff --git a/radarr/docker-compose.yml b/radarr/docker-compose.yml new file mode 100644 index 0000000..b420e93 --- /dev/null +++ b/radarr/docker-compose.yml @@ -0,0 +1,41 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: radarr_server_1 + APP_PORT: 7878 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: linuxserver/radarr:6.1.1@sha256:581f159c2b67436863cb4da30e158ef6f6b8878472abbba79ee5d5f7e6b7d28d + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + restart: on-failure + + mac: + image: getumbrel/media-app-configurator:v1.3.0@sha256:67e75dd9f5a14402b7816119a8e20189bc2465484cea077909d164687e59742b + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + environment: + APP_ID: "radarr" + APP_URL: "http://radarr_server_1:7878" + TRANSMISSION_HOST: "transmission_server_1" + TRANSMISSION_PORT: 9091 + ROOT_FOLDER: "/downloads/movies" + # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ qBittorrent + QBITTORRENT_INSTALLED: ${APP_RADARR_QBITTORRENT_INSTALLED:-"false"} + QBITTORRENT_HOST: "qbittorrent_server_1" + QBITTORRENT_PORT: 8080 + # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ SABnzbd + SABNZBD_INSTALLED: ${APP_RADARR_SABNZBD_INSTALLED:-"false"} + SABNZBD_HOST: "sabnzbd_web_1" + SABNZBD_PORT: 8080 + SABNZBD_API_KEY: ${APP_RADARR_SABNZBD_API_KEY:-""} diff --git a/radarr/exports.sh b/radarr/exports.sh new file mode 100644 index 0000000..8bcfd84 --- /dev/null +++ b/radarr/exports.sh @@ -0,0 +1,13 @@ +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСны Π»ΠΈ qBittorrent ΠΈ SABnzbd. +installed_apps=$("${DFWEBOS_ROOT}/scripts/app" ls-installed) + +if echo "$installed_apps" | grep --quiet 'qbittorrent'; then + export APP_RADARR_QBITTORRENT_INSTALLED="true" +fi + +if echo "$installed_apps" | grep --quiet 'sabnzbd'; then + export APP_RADARR_SABNZBD_INSTALLED="true" + # экспортируйтС SABNZBD_API_KEY, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: + # api_key = 98e3444f7fab45e592958673bf656g3 + export APP_RADARR_SABNZBD_API_KEY=$(grep -Po 'api_key = \K.*' "${DFWEBOS_ROOT}/app-data/sabnzbd/data/config/sabnzbd.ini") +fi diff --git a/radarr/hooks/post-install b/radarr/hooks/post-install new file mode 100755 index 0000000..844cdf1 --- /dev/null +++ b/radarr/hooks/post-install @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +set -euo pipefail + +if "${DFWEBOS_ROOT}/scripts/app" ls-installed | grep --quiet 'prowlarr' +then + CONFIG_FILE="${APP_DATA_DIR}/data/config/config.xml" + + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° Ρ„Π°ΠΉΠ» config.xml появится. + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° свойство ΠΊΠ»ΡŽΡ‡Π° API () появится Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. + for attempt in $(seq 1 20); do + if [[ -f "${CONFIG_FILE}" ]] && cat "${CONFIG_FILE}" | grep --quiet ''; then + echo "config.xml file exists and xml key exists..." + + # ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Prowlarr, Ρ‡Ρ‚ΠΎΠ±Ρ‹ автоматичСски Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. + "${DFWEBOS_ROOT}/scripts/app" restart prowlarr + + exit + fi + sleep 1 + done + + >&2 echo "Error: Failed to locate inside: ${CONFIG_FILE}" + exit 1 +fi diff --git a/readarr/data/config/.gitkeep b/readarr/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/readarr/dfwebos-app.yml b/readarr/dfwebos-app.yml new file mode 100644 index 0000000..4ef0d0a --- /dev/null +++ b/readarr/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1.2 +id: readarr +category: media +name: Readarr +version: "0.4.18.2805" +tagline: Π’Π°Ρˆ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠΎ сбору ΠΊΠ½ΠΈΠ³ +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Readarr Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://github.com/Readarr/Readarr. + + + ⚠️ Readarr Π² настоящСС врСмя находится Π½Π° стадии Π±Π΅Ρ‚Π°-тСстирования ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ Π½ΠΈΠΌ всС Π΅Ρ‰Π΅ продолТаСтся. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сломанными, Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ самовозгораниС. + + + Readarr β€” это ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ элСктронных ΠΊΠ½ΠΈΠ³ ΠΈ Π°ΡƒΠ΄ΠΈΠΎΠΊΠ½ΠΈΠ³ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Usenet ΠΈ BitTorrent. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько RSS-ΠΊΠ°Π½Π°Π»ΠΎΠ² Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠ½ΠΈΠ³ Π²Π°ΡˆΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ…. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΠΊΠ°ΠΊ Π°ΡƒΠ΄ΠΈΠΎΠΊΠ½ΠΈΠ³Π°, Ρ‚Π°ΠΊ ΠΈ элСктронная ΠΊΠ½ΠΈΠ³Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, Π²Π°ΠΌ понадобится нСсколько экзСмпляров. + + + πŸ› οΈ ИНБВРУКЦИЯ ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Readarr Π½Π° DFWebOS автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², установлСнных ΠΈΠ· DFWebOS App Store. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ· Transmission, qBittorerent ΠΈ SABnzbd. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚(Ρ‹). + + + ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ индСксатор, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Readarr ΠΌΠΎΠ³ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ индСксаторы нСпосрСдствСнно Π² Readarr ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Prowlarr ΠΈΠ· DFWebOS App Store, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ индСксаторами Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… прилоТСниях. + Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ свои индСксаторы Π² Prowlarr, ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски доступны Π² Readarr. +developer: Readarr +website: https://readarr.com/ +dependencies: + - transmission +repo: https://github.com/Readarr/Readarr +support: https://github.com/Readarr/Readarr/issues +port: 8787 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +permissions: + - STORAGE_DOWNLOADS +submitter: Choff3 +submission: https://github.com/getumbrel/dfwebos-apps/pull/712 +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ исправлСний ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ссылки Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ изобраТСния для постСров ΠΈ ΠΎΠ±Π»ΠΎΠΆΠ΅ΠΊ ΠΊΠ½ΠΈΠ³. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π° счСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сборки. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ полноэкранной Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Readarr/Readarr/releases. + #ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ: ΠΏΡ€Π°Π²Π΄Π° \ No newline at end of file diff --git a/readarr/docker-compose.yml b/readarr/docker-compose.yml new file mode 100644 index 0000000..0ea9b91 --- /dev/null +++ b/readarr/docker-compose.yml @@ -0,0 +1,41 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: readarr_server_1 + APP_PORT: 8787 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: linuxserver/readarr:develop-version-0.4.18.2805@sha256:b6a7420770adeea5cac1f3ee5da606183d014e3f96fb473f3abd88ed11d9f344 + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + restart: on-failure + + mac: + image: getumbrel/media-app-configurator:v1.3.0@sha256:67e75dd9f5a14402b7816119a8e20189bc2465484cea077909d164687e59742b + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + environment: + APP_ID: "readarr" + APP_URL: "http://readarr_server_1:8787" + TRANSMISSION_HOST: "transmission_server_1" + TRANSMISSION_PORT: 9091 + ROOT_FOLDER: "/downloads/books" + # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ qBittorrent + QBITTORRENT_INSTALLED: ${APP_READARR_QBITTORRENT_INSTALLED:-"false"} + QBITTORRENT_HOST: "qbittorrent_server_1" + QBITTORRENT_PORT: 8080 + # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ SABnzbd + SABNZBD_INSTALLED: ${APP_READARR_SABNZBD_INSTALLED:-"false"} + SABNZBD_HOST: "sabnzbd_web_1" + SABNZBD_PORT: 8080 + SABNZBD_API_KEY: ${APP_READARR_SABNZBD_API_KEY:-""} diff --git a/readarr/exports.sh b/readarr/exports.sh new file mode 100644 index 0000000..c42ea2f --- /dev/null +++ b/readarr/exports.sh @@ -0,0 +1,13 @@ +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСны Π»ΠΈ qBittorrent ΠΈ SABnzbd. +installed_apps=$("${DFWEBOS_ROOT}/scripts/app" ls-installed) + +if echo "$installed_apps" | grep --quiet 'qbittorrent'; then + export APP_READARR_QBITTORRENT_INSTALLED="true" +fi + +if echo "$installed_apps" | grep --quiet 'sabnzbd'; then + export APP_READARR_SABNZBD_INSTALLED="true" + # экспортируйтС SABNZBD_API_KEY, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: + # api_key = 98e3444f7fab45e592958673bf656g3 + export APP_READARR_SABNZBD_API_KEY=$(grep -Po 'api_key = \K.*' "${DFWEBOS_ROOT}/app-data/sabnzbd/data/config/sabnzbd.ini") +fi diff --git a/readarr/hooks/post-install b/readarr/hooks/post-install new file mode 100755 index 0000000..3d74291 --- /dev/null +++ b/readarr/hooks/post-install @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +set -euo pipefail + +if "${DFWEBOS_ROOT}/scripts/app" ls-installed | grep --quiet 'prowlarr' +then + CONFIG_FILE="${APP_DATA_DIR}/data/config/config.xml" + + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° Ρ„Π°ΠΉΠ» config.xml появится. + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° свойство ΠΊΠ»ΡŽΡ‡Π° API () появится Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. + for attempt in $(seq 1 20); do + if [[ -f "${CONFIG_FILE}" ]] && cat "${CONFIG_FILE}" | grep --quiet ''; then + echo "config.xml file exists and xml key exists..." + + # ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Prowlarr, Ρ‡Ρ‚ΠΎΠ±Ρ‹ автоматичСски Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. + "${DFWEBOS_ROOT}/scripts/app" restart prowlarr + + exit + fi + sleep 1 + done + + >&2 echo "Error: Failed to locate inside: ${CONFIG_FILE}" + exit 1 +fi \ No newline at end of file diff --git a/readur/data/postgres_data/.gitkeep b/readur/data/postgres_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/readur/data/postgres_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/readur/data/uploads/.gitkeep b/readur/data/uploads/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/readur/data/uploads/.gitkeep @@ -0,0 +1 @@ + diff --git a/readur/data/watch/.gitkeep b/readur/data/watch/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/readur/data/watch/.gitkeep @@ -0,0 +1 @@ + diff --git a/readur/dfwebos-app.yml b/readur/dfwebos-app.yml new file mode 100644 index 0000000..3e75aea --- /dev/null +++ b/readur/dfwebos-app.yml @@ -0,0 +1,46 @@ +manifestVersion: 1 +id: readur +name: Readur +tagline: Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° OCR для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² +category: files +version: "2.9.1" +port: 8111 +description: >- + πŸ“„ Readur β€” это мощная ΠΈ соврСмСнная систСма управлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, призванная ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π»ΠΈΡ†Π°ΠΌ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ эффСктивно ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ своим Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ. Он сочСтаСт Π² сСбС Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ с элСгантным ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным Π²Π΅Π±-интСрфСйсом, обСспСчивая удобство ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + + + ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ PDF-Ρ„Π°ΠΉΠ»Ρ‹, изобраТСния, тСкстовыС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Office, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ простой ΠΌΠ΅Ρ‚ΠΎΠ΄ пСрСтаскивания. Одной ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… сторон Readur являСтся пСрСдовая тСхнология оптичСского распознавания символов, которая автоматичСски ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ тСкст ΠΈΠ· отсканированных Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚Π° функция OCR позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ статичСскиС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° основС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ поиска, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ возмоТности поиска ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…. + + + БистСма постоянно отслСТиваСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΏΠΊΠ°Ρ…, обрабатывая ΠΈΡ… Π½Π΅Ρ€Π°Π·Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠΌ способом, сохраняя исходныС Π΄Π°Π½Π½Ρ‹Π΅. ПослС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ становятся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ доступными для поиска благодаря слоТным возмоТностям полнотСкстового поиска, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚Π° функция поиска Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΌΠΎΡ‰Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ранТирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ быстро ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹. + + + Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ являСтся ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π² Readur: аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ бСзопасных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π° основС Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс создан Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, с ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π° простоту использования ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + Π’ Ρ†Π΅Π»ΠΎΠΌ, Readur ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ оптичСскоС распознаваниС тСкста ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ удобство управлСния большими объСмами Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², обСспСчивая ΠΏΡ€ΠΈ этом быстрый доступ ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. +developer: Jon Fuller +website: https://github.com/readur/readur +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3186 +repo: https://github.com/readur/readur +support: https://github.com/readur/readur/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ API для ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ запроса Π½Π΅ΡƒΠ΄Π°Π²ΡˆΠΈΡ…ΡΡ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° нСкоррСктная миграция, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ обновлСния зависимостСй для большСй ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/readur/readur/releases. +dependencies: [] +path: "" +defaultUsername: "admin" +defaultPassword: "readur2024" diff --git a/readur/docker-compose.yml b/readur/docker-compose.yml new file mode 100644 index 0000000..010c9df --- /dev/null +++ b/readur/docker-compose.yml @@ -0,0 +1,57 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: readur_app_1 + APP_PORT: 8000 + + app: + image: ghcr.io/readur/readur:2.9.1@sha256:16aa8b1d7df218ab0f4fc57fbf890d125020fca416bc3555aa7731e7329020dc + user: "1000:1000" + restart: on-failure + environment: + DATABASE_URL: postgresql://readur:readur_password@readur_postgres_1:5432/readur + JWT_SECRET: ${APP_SEED} + SERVER_ADDRESS: 0.0.0.0:8000 + UPLOAD_PATH: /app/uploads + WATCH_FOLDER: /app/watch + ALLOWED_FILE_TYPES: pdf,png,jpg,jpeg,tiff,bmp,gif,txt,rtf,doc,docx + WATCH_INTERVAL_SECONDS: 30 + FILE_STABILITY_CHECK_MS: 500 + MAX_FILE_AGE_HOURS: 168 + OCR_LANGUAGE: eng + CONCURRENT_OCR_JOBS: 4 + OCR_TIMEOUT_SECONDS: 300 + MAX_FILE_SIZE_MB: 50 + MEMORY_LIMIT_MB: 512 + CPU_PRIORITY: normal + ADMIN_PASSWORD: readur2024 + volumes: + - ${APP_DATA_DIR}/data/uploads:/app/uploads + - ${APP_DATA_DIR}/data/watch:/app/watch + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/api/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + depends_on: + postgres: + condition: service_healthy + + postgres: + image: postgres:17.5@sha256:3962158596daaef3682838cc8eb0e719ad1ce520f88e34596ce8d5de1b6330a1 + user: "1000:1000" + restart: on-failure + environment: + POSTGRES_USER: readur + POSTGRES_PASSWORD: readur_password + POSTGRES_DB: readur + volumes: + - ${APP_DATA_DIR}/data/postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U readur"] + interval: 10s + timeout: 5s + retries: 5 diff --git a/remmina/data/config/.gitkeep b/remmina/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/remmina/dfwebos-app.yml b/remmina/dfwebos-app.yml new file mode 100644 index 0000000..b613204 --- /dev/null +++ b/remmina/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1 +id: remmina +category: networking +name: Remmina +version: "1.4.35" +tagline: Π­ΠΊΡ€Π°Π½ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ +description: >- + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ столы ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ, с ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½ΠΎΠ³ΠΎ экрана ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ². + + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ сСтСвыС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ RDP, VNC, SPICE, X2Go, SSH, WWW (ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» HTTP) ΠΈ EXEC. + + + - Написан Π½Π° GTK, вСдСтся ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Qt. + + + - Π’Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΊΠ°ΠΊ "Ρ€Π΅ΠΌΠΌΠΈΠ½Π°" (основная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°) ΠΈ "Ρ€Π΅ΠΌΠΌΠΈΠ½Π°-ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹". + + + - Remmina β€” свободноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с авторским Π»Π΅Π²ΠΎΠΌ. + + + Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ свободноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС? + + + Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ со всСми. + Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ совмСстного использования Π½Π° Ρ€Π°Π²Π½Ρ‹Ρ… условиях (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ авторским Π»Π΅Π²ΠΎΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· этих свобод ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ отнята. +developer: Remmina +website: https://remmina.org +dependencies: [] +repo: https://gitlab.com/Remmina/Remmina +support: https://www.remmina.org/support/ +port: 8764 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/291 +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ исправлСний ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ сборки для OpenSSL 1.1. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° запуска ΠΊΠΎΠΌΠ°Π½Π΄ SSH ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ SSH. + - Π Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ компиляции с GCC-14. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой, связанный с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Β«ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сохранСниС ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉΒ». + - ОбновлСна ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ балансировкС Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° сайтС https://gitlab.com/Remmina/Remmina/-/releases. \ No newline at end of file diff --git a/remmina/docker-compose.yml b/remmina/docker-compose.yml new file mode 100644 index 0000000..195014b --- /dev/null +++ b/remmina/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: remmina_server_1 + APP_PORT: 3000 + + server: + image: linuxserver/remmina:1.4.35@sha256:ca2b6788bad28d864086649fc276ce696cac9cdf69e6976b85497b341ed07d8d + volumes: + - ${APP_DATA_DIR}/data/config:/config + restart: on-failure + environment: + - PUID=1000 + - PGID=1000 \ No newline at end of file diff --git a/restreamer/config/.gitkeep b/restreamer/config/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/restreamer/config/.gitkeep @@ -0,0 +1 @@ + diff --git a/restreamer/data/.gitkeep b/restreamer/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/restreamer/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/restreamer/dfwebos-app.yml b/restreamer/dfwebos-app.yml new file mode 100644 index 0000000..c1c1b5f --- /dev/null +++ b/restreamer/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1 +id: restreamer +name: Restreamer +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π² использовании видСосСрвСр с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ +category: files +version: "2.12.0" +port: 8135 +description: >- + Restreamer β€” это ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΉ сСрвСр с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ datarhei ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для упрощСния прямой трансляции Π²ΠΈΠ΄Π΅ΠΎ. Он прСдоставляСт ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный Π²Π΅Π±-интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ, Π½Π΅ трСбуя Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… тСхничСских Π·Π½Π°Π½ΠΈΠΉ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ RTMP, HLS, SRT ΠΈ WebRTC, ΠΎΠ½ обСспСчиваСт ΠΏΠ»Π°Π²Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. + + + ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… источников, ΠΊΠ°ΠΊ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, IP-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прямыС трансляции, ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΏΠΎ нСскольким мСстам назначСния, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ YouTube, Twitch ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ сСрвСры. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для частных Π»ΠΈΡ†, прСдприятий ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, стрСмящихся эффСктивно Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΆΠΈΠ²Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ. + + + Restreamer ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ потрСблСния рСсурсов, Ρ‡Ρ‚ΠΎ позволяСт Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ спСктрС оборудования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ встроСнныС систСмы ΠΈ энСргоэффСктивныС устройства. Ѐункция автоматичСского ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ обСспСчиваСт Π±Π΅ΡΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉΠ½ΡƒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°ΠΆΠ΅ Π² случаС Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ соСдинСния. + + + Благодаря ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΡŽ простоты использования, гибкости ΠΈ надСТности Restreamer слуТит ΠΌΠΎΡ‰Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сцСнариСв ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ вСщания, ΠΎΡ‚ Π»ΠΈΡ‡Π½Ρ‹Ρ… трансляций Π΄ΠΎ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ распространСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. +developer: datarhei +website: https://datarhei.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2382 +repo: https://github.com/datarhei/restreamer +support: https://github.com/datarhei/restreamer/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: "" +dependencies: [] +path: "/ui" +defaultUsername: "" +defaultPassword: "" diff --git a/restreamer/docker-compose.yml b/restreamer/docker-compose.yml new file mode 100644 index 0000000..1e09a5b --- /dev/null +++ b/restreamer/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: restreamer_web_1 + APP_PORT: 8080 + + web: + image: datarhei/restreamer:2.12.0@sha256:813acc9d41d2953b1e7fbb5b281f9a1f68d07fef4e1b30e34472b12d3db9426a + environment: + - PUID=1000 + - PGID=1000 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/config:/core/config + - ${APP_DATA_DIR}/data:/core/data + ports: + - 8181:8181 + - 1935:1935 + - 1936:1936 + - 6000:6000/udp diff --git a/ride-the-lightning/boltz/.gitkeep b/ride-the-lightning/boltz/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ride-the-lightning/dfwebos-app.yml b/ride-the-lightning/dfwebos-app.yml new file mode 100644 index 0000000..6e4d41a --- /dev/null +++ b/ride-the-lightning/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1 +id: ride-the-lightning +category: bitcoin +name: Ride The Lightning +version: "0.15.8-beta-boltz" +tagline: ΠœΠΎΡ‰Π½Π°Ρ панСль управлСния для сСти Lightning. +description: >- + RTL β€” это ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ, нСзависимый ΠΎΡ‚ устройства Π²Π΅Π±-интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΉ + ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΡƒΠ·Π»Π° Lightning. Π­Ρ‚ΠΎ обСспСчиваСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ вашСй ΠΌΠΎΠ»Π½ΠΈΠ΅ΠΉ. + ΡƒΠ·Π΅Π» с Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ уровня Bitcoin ΠΈ сСти Lightning. + НСкоторыС интСрСсныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, доступныС Π½Π° RTL: + + + - Богатая панСль инструмСнтов с двумя Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚Π° + + - ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ°/ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ срСдств ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ + + - Π‘ΠΎΠ³Π°Ρ‚ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ функциями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΡ†Π΅Π½ΠΊΠ° баланса, цикличСская рСбалансировка ΠΈ Ρ‚.Β Π΄. + + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°ΠΌΠΈ ΠΈ счСтами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ QR-ΠΊΠΎΠ΄ΠΎΠ² + + - Анализ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ пСрСсылаСмых ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ + + - Π Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² + + - ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ истории Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ + + - Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс Loop для Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… Π»ΠΎΠ΄ΠΎΠΊ. + + - НастраиваСмый интСрфСйс с нСсколькими Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹ΠΌΠΈ схСмами ΠΈ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΌΠΈ/свСтлыми Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ. +developer: Shahana and Suheb +website: https://github.com/Ride-The-Lightning/RTL +dependencies: + - lightning +repo: https://github.com/Ride-The-Lightning/RTL +support: https://github.com/Ride-The-Lightning/RTL/issues/new +port: 3001 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π’ этом выпускС Ride The Lightning обновляСтся Π΄ΠΎ вСрсии 0.15.8-Π±Π΅Ρ‚Π° ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ, появившаяся Π² вСрсии 0.15.7. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ для стандартных счСтов. + - ΠŸΡ€ΠΎΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Boltz-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΄ΠΎ вСрсии 2.11.1. +path: "" +defaultUsername: "" +deterministicPassword: true +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/pull/336 diff --git a/ride-the-lightning/docker-compose.yml b/ride-the-lightning/docker-compose.yml new file mode 100644 index 0000000..af58c1e --- /dev/null +++ b/ride-the-lightning/docker-compose.yml @@ -0,0 +1,54 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: ride-the-lightning_web_1 + APP_PORT: 3001 + + web: + image: shahanafarooqui/rtl:v0.15.8@sha256:54131152cba02a968d83fcc89c07426bfb979372f743649ba1e2626426a34dc0 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/rtl:/data + - ${APP_DATA_DIR}/boltz:/boltz:ro + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + - ${APP_BITCOIN_DATA_DIR}:/bitcoin:ro + entrypoint: /data/entrypoint.sh + environment: + # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ прилоТСния + APP_PASSWORD: $APP_PASSWORD + PORT: 3001 + RTL_CONFIG_PATH: "/data" + CHANNEL_BACKUP_PATH: "/data/backup" + LN_IMPLEMENTATION: "LND" + BLOCK_EXPLORER_URL: "${APP_RTL_BLOCK_EXPLORER_URL}" + + # ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ LND + LN_SERVER_URL: "https://$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_REST_PORT" + MACAROON_PATH: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK" + CONFIG_PATH: "/lnd/dfwebos-lnd.conf" + + # Π‘ΠΎΠ»ΡŒΡ† + BOLTZ_SERVER_URL: "https://ride-the-lightning_boltz_1:9003" + BOLTZ_MACAROON_PATH: "/boltz/.boltz-lnd/macaroons" + + boltz: + image: boltz/boltz-client:2.11.1@sha256:25a984cc76b0d232573cffe7088c2cb2e50b6b8955e09f68d768ef5fc7215c1d + user: "1000:1000" + restart: "on-failure" + stop_grace_period: "1m" + environment: + HOME: "/data" + volumes: + - "${APP_DATA_DIR}/boltz:/data" + - "${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro" + command: + - --datadir=/data/.boltz-lnd + - --lnd.host="$APP_LIGHTNING_NODE_IP" + - --lnd.macaroon="/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon" + - --lnd.certificate="/lnd/tls.cert" + - --rpc.rest.host="0.0.0.0" + - --rpc.rest.port="9003" diff --git a/ride-the-lightning/exports.sh b/ride-the-lightning/exports.sh new file mode 100644 index 0000000..0fba1ae --- /dev/null +++ b/ride-the-lightning/exports.sh @@ -0,0 +1,17 @@ +# ДинамичСский экспорт обозрСватСля Π±Π»ΠΎΠΊΠΎΠ² URL Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΉ сСти Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡƒΠ·Π΅Π» Π‘ΠΈΡ‚ΠΊΠΎΠΉΠ½. + +BLOCK_EXPLORER_URL="https://mempool.space" + +# TODO: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ прилоТСния DFWebOS Mempool ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ URL, Ссли ΠΎΠ½ установлСн. +# Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "${DFWEBOS_ROOT}/scripts/app" ls-installed | grep --quiet 'mempool' +# RTL понадобится способ динамичСского создания URL для локального прилоТСния Mempool. +# Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, localExplorerUrl = `${window.location.protocol}//${window.location.hostname}:${LOCAL_MEMPOOL_PORT}`; + +# Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ APP_BITCOIN_NETWORK ΠΊ URL, Ссли это Π½Π΅ основная ΡΠ΅Ρ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, https://mempool.space/testnet)). +if [[ "${APP_BITCOIN_NETWORK}" != "mainnet" ]]; then + echo "Bitcoin is running on ${APP_BITCOIN_NETWORK}. Appending ${APP_BITCOIN_NETWORK} to the block explorer URL." + BLOCK_EXPLORER_URL="${BLOCK_EXPLORER_URL}/${APP_BITCOIN_NETWORK}" + echo "BLOCK_EXPLORER_URL: ${BLOCK_EXPLORER_URL}" +fi + +export APP_RTL_BLOCK_EXPLORER_URL="${BLOCK_EXPLORER_URL}" diff --git a/ride-the-lightning/rtl/.gitkeep b/ride-the-lightning/rtl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ride-the-lightning/rtl/RTL-Config.json b/ride-the-lightning/rtl/RTL-Config.json new file mode 100644 index 0000000..9c6d36f --- /dev/null +++ b/ride-the-lightning/rtl/RTL-Config.json @@ -0,0 +1,22 @@ +{ + "multiPass": "$APP_PASSWORD", + "defaultNodeIndex": 1, + "SSO": { + "rtlSSO": 0, + "rtlCookiePath": "", + "logoutRedirectLink": "" + }, + "nodes": [ + { + "index": 1, + "lnNode": "DFWebOS", + "Settings": { + "userPersona": "MERCHANT", + "themeMode": "DAY", + "themeColor": "PURPLE", + "enableLogging": true, + "fiatConversion": true + } + } + ] +} \ No newline at end of file diff --git a/ride-the-lightning/rtl/entrypoint.sh b/ride-the-lightning/rtl/entrypoint.sh new file mode 100755 index 0000000..ac13a2f --- /dev/null +++ b/ride-the-lightning/rtl/entrypoint.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env sh + +# ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ пароля ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ +sed -i 's/"multiPassHashed": "70c882380045d35807b45245bd49185991904ff47a5036dfe82103c49f9f0f31"/"multiPass": "'${APP_PASSWORD}'"/' $RTL_CONFIG_PATH/RTL-Config.json +sed -i 's/"multiPass": "moneyprintergobrrr"/"multiPass": "'${APP_PASSWORD}'"/' $RTL_CONFIG_PATH/RTL-Config.json + +# ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ заполнитСля Π½ΠΎΠ²ΠΎΠ³ΠΎ пароля +sed -i 's/$APP_PASSWORD/'${APP_PASSWORD}'/' $RTL_CONFIG_PATH/RTL-Config.json + +exec /sbin/tini -g -- node rtl diff --git a/robosats/dfwebos-app.yml b/robosats/dfwebos-app.yml new file mode 100644 index 0000000..ed0e8ec --- /dev/null +++ b/robosats/dfwebos-app.yml @@ -0,0 +1,85 @@ +manifestVersion: 1 +id: robosats +category: bitcoin +name: RoboSats +version: "v0.8.2-alpha" +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ P2P-ΠΎΠ±ΠΌΠ΅Π½ Bitcoin +description: >- + RoboSats β€” это простоС ΠΈ частноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΠ±ΠΌΠ΅Π½Π° Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½ΠΎΠ² Π½Π° Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Π°Π»ΡŽΡ‚Ρ‹. + Robosats ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ P2P ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ счСтов для + ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ трСбования ΠΊ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ ΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡŽ. Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€ΠΎΠ±ΠΎΡ‚ + Π°Π²Π°Ρ‚Π°Ρ€Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² обСспСчСния ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + + - ΠšΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ваш Π°Π²Π°Ρ‚Π°Ρ€ Ρ€ΠΎΠ±ΠΎΡ‚Π° гСнСрируСтся Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ, рСгистрация Π½Π΅ трСбуСтся. + + - Доступно Π±ΠΎΠ»Π΅Π΅ 10 языков ΠΈ Π±ΠΎΠ»Π΅Π΅ 60 Π±ΡƒΠΌΠ°ΠΆΠ½Ρ‹Ρ… Π²Π°Π»ΡŽΡ‚. + + - БСзопасно: просто Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ счСт-Ρ„Π°ΠΊΡ‚ΡƒΡ€Ρƒ Lightning Hodl ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ ΠΈ ΠΏΡ€Π΅Π΄Π°Π½Ρ‹ Π΄Π΅Π»Ρƒ. + + - Никакого сбора Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΡˆΠ΅ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с вашим ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠΌ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΎ PGP, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. + + - Lightning fast: срСдняя сувСрСнная сдСлка заканчиваСтся Ρ‡Π΅Ρ€Π΅Π· ~ 8 ΠΌΠΈΠ½ΡƒΡ‚. БыстрСС, Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°! + + - ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ обСспСчСнноС условноС Π΄Π΅ΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: ваш ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ всСгда заинтСрСсован ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±Π΅ΠΆΠ°Ρ‚ΡŒ со срСдствами. + + - Бильная систСма ΠΏΠΎΠΎΡ‰Ρ€Π΅Π½ΠΈΠΉ: ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΎΠ±ΠΌΠ°Π½Π° Π½Π°ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡ€Π΅Π·Π°Π½ΠΈΠ΅ΠΌ Π‘Π°Ρ‚ΠΎΠ² Π² Π·Π°Π»ΠΎΠ³Π΅ вСрности. + + - Руководства ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊΠΈ доступны ΠΏΠΎ адрСсу https://learn.robosats.org/watch/en. + + + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΡ€ΡƒΡ‚Ρ‹ΠΌ Ρ€ΠΎΠ±ΠΎΡ‚Π°ΠΌ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сообщСства Π² Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌΠΌ-Π³Ρ€ΡƒΠΏΠΏΠ΅ https://t.me/robosats. +releaseNotes: >- + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + + - Π—Π°ΠΊΠ°Π·Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ описания. Доступно Π² Β«Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ…Β». + - ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ объСдинСнного ΠžΡ€Π΄Π΅Π½Π° ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Π€Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² прСдставлСнии ΠžΡ€Π΄Π΅Π½Π° (Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅ с хоста). + - НовоС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ поиска для ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π² Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ. + - Π’Π°Π»ΡŽΡ‚Π° привязана ΠΊ BTC Π² Ρ„ΠΎΡ€ΠΌΠ΅ свопов. + - РСдакция Ρ‡Π΅ΡˆΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° + + + Бпособы ΠΎΠΏΠ»Π°Ρ‚Ρ‹, ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹Π΅: + + - Π Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΡ + + НовыС способы ΠΎΠΏΠ»Π°Ρ‚Ρ‹: + + - Π—Π΅Π°ΠΌ + + Ошибки: + + - Ѐункция «Активный Ρ€ΠΎΠ±ΠΎΡ‚Β» нСдоступна Π² прСдставлСнии ΠΊΠ½ΠΈΠ³ΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ², ΠΊΠΎΠ³Π΄Π° для соСдинСния установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Nostr, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° всСгда отобраТаСтся красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ для всСх Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠ². + - ОбновлСниС ΠΊΠ½ΠΈΠ³ΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ² Π½Π΅ трСбуСтся, Ссли установлСно соСдинСниС Nostr. + - Для продлСния Π·Π°ΠΊΠ°Π·ΠΎΠ² с ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ трСбуСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ пароля. + - Иногда Π·Π°ΠΊΠ°Π·Ρ‹ Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€ΠΎΠ±ΠΎΡ‚Π° с Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π·Π°ΠΊΠ°Π·ΠΎΠΌ + - ΠžΠ±Π·ΠΎΡ€ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ загруТался + - Кнопка Β«ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎΒ» Π² сводкС Π·Π°ΠΊΠ°Π·Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°. + - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€ΠΎΠ±ΠΎΡ‚Ρ‹ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π·Π°ΠΊΠ°Π·Ρ‹. + - ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ. + - количСство спутников Β«Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅Β» ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΎΡΡŒ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌΠΈ значСниями + - Π‘ΡƒΠΌΠΌΠ° Β«Π‘ΡŽΠ΄ΠΆΠ΅Ρ‚Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈΒ» ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»Π° саты вмСсто милисатов. + - ΠšΠ°Ρ€Ρ‚Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ отобраТаСтся с ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ 1 (ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + - Иногда ΠΆΡƒΡ€Π½Π°Π»Ρ‹ Ρ‡Π°Ρ‚Π° Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΠ»ΠΈΡΡŒ ΠΏΠΎ спору, Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π» эту ΠΎΠΏΡ†ΠΈΡŽ. + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/RoboSats/robosats/releases/tag/v0.8.2-alpha. +developer: RoboSats +website: https://learn.robosats.org +dependencies: [] +repo: https://github.com/RoboSats/robosats +support: https://t.me/robosats +port: 12596 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: RoboSats +submission: https://github.com/getumbrel/dfwebos-apps/pull/122 diff --git a/robosats/docker-compose.yml b/robosats/docker-compose.yml new file mode 100644 index 0000000..68bd02f --- /dev/null +++ b/robosats/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: robosats_web_1 + APP_PORT: 12596 + + web: + image: recksato/robosats-client:v0.8.2-alpha@sha256:f892eb4aae687d010b6acb136bb166555d083f28bd61fe68dcf2f9d2e3abdf83 + restart: on-failure + stop_grace_period: 1m + init: true + environment: + TOR_PROXY_IP: ${TOR_PROXY_IP} + TOR_PROXY_PORT: ${TOR_PROXY_PORT} \ No newline at end of file diff --git a/romm/data/assets/.gitkeep b/romm/data/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/romm/data/config/config.yml b/romm/data/config/config.yml new file mode 100644 index 0000000..adb293f --- /dev/null +++ b/romm/data/config/config.yml @@ -0,0 +1,44 @@ +exclude: + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для сканирования + platforms: [] # ['my_excluded_platform_1', 'my_excluded_platform_2'] + + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€ΠΎΠΌΡ‹ ΠΈΠ»ΠΈ части Ρ€ΠΎΠΌΠΎΠ² для сканирования + roms: + # Π Π°Π·Π΄Π΅Π» ΠΎΠ΄Π½ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€. + # НС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π½Π° Ρ„Π°ΠΉΠ»Ρ‹, находящиСся Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ°Ρ… (многодисковыС Ρ€ΠΎΠΌΡ‹, ΠΈΠ³Ρ€Ρ‹ с обновлСниями, DLC, ΠΏΠ°Ρ‚Ρ‡ΠΈ ΠΈ Ρ‚.ΠΏ.) + single_file: + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· сканирования всС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ + extensions: [] # ['xml', 'txt'] + + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² для сканирования. + # ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сопоставлСниС шаблонов ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² Unix. + # Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ + names: [] # ['info.txt', '._*', '*.nfo'] + + # Π Π°Π·Π΄Π΅Π» ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€ + # ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, находящимся Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ°Ρ… (многодисковыС Ρ€ΠΎΠΌΡ‹, ΠΈΠ³Ρ€Ρ‹ с обновлСниями, DLC, ΠΏΠ°Ρ‚Ρ‡ΠΈ ΠΈ Ρ‚.Π΄.) + multi_file: + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· сканирования ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° 'folder' (RomM ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΏΠΊΠΈ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹) + names: [] # ['my_multi_file_game', 'DLC'] + + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ°Ρ…. + parts: + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² для сканирования ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дисков. + # Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ RomM Π½Π΅ сканируСт ΠΏΠ°ΠΏΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€. + # поэтому Π½Π΅Ρ‚ нСобходимости ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΠΈ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€. + names: [] # ['data.xml', '._*'] # Supports unix filename pattern matching + + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ для сканирования ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дисков. + extensions: [] # ['xml', 'txt'] + +system: + # БвяТитС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. + # [имя ΠΏΠ°ΠΏΠΊΠΈ вашСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹]: [имя ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ RomM] + # Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° 'gc', RomM Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΉ ΠΊΠ°ΠΊ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ 'ngc', Π° Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° 'psx', RomM Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΉ ΠΊΠ°ΠΊ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ 'ps'. + platforms: {} # { gc: 'ngc', psx: 'ps' } + + # БвяТитС ΠΎΠ΄Π½Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ с Π΅Π΅ основной вСрсиСй + versions: {} # { naomi: 'arcade' } + +# Имя ΠΏΠ°ΠΏΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находятся ваши Ρ€ΠΎΠΌΡ‹ +filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is /home/user/library/roms_folder diff --git a/romm/data/db/.gitkeep b/romm/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/romm/data/library/.gitkeep b/romm/data/library/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/romm/data/redis/.gitkeep b/romm/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/romm/data/resources/.gitkeep b/romm/data/resources/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/romm/dfwebos-app.yml b/romm/dfwebos-app.yml new file mode 100644 index 0000000..0463caa --- /dev/null +++ b/romm/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1.1 +id: romm +category: media +name: RomM +version: "4.8.1" +tagline: ΠšΡ€Π°ΡΠΈΠ²Ρ‹ΠΉ, ΠΌΠΎΡ‰Π½Ρ‹ΠΉ, Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ROM. +description: >- + πŸ‘Ύ RomM (ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ROM) позволяСт ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΈΠ³Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ чистого ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΠ³ΠΎ интСрфСйса. + + + πŸŽ Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ схСмам имСнования ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ Ρ‚Π΅Π³Π°ΠΌ RomM Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌ для всСх, ΠΊΡ‚ΠΎ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π½Π° эмуляторах. + + + **ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ** + - Π‘ΠΊΠ°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ³Ρ€ ΠΈ дополняСт Π΅Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· IGDB ΠΈ MobyGames. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ большоС количСство ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ + - Π˜Π³Ρ€Π°ΠΉΡ‚Π΅ Π² ΠΈΠ³Ρ€Ρ‹ прямо ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ EmulatorJS ΠΈ RuffleRS. + - ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ своСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ² ΠΏΡ€ΠΈ этом доступ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ схСмы имСнования MAME, Nintendo Switch ΠΈ Sony Playstation. + - ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ³Ρ€Ρ‹ для PS1 с нСсколькими ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисками) + - ΠœΠΎΠΆΠ΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Π³ΠΈ Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, (E), (БША), (вСрсия v1) ΠΈ Ρ‚. Π΄.) + - ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΠΉΡ‚Π΅, Π·Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅, обновляйтС ΠΈ удаляйтС ΠΈΠ³Ρ€Ρ‹ ΠΈΠ· любого соврСмСнного Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. +developer: rommapp +website: https://github.com/rommapp/romm +repo: https://github.com/rommapp/romm +support: https://github.com/rommapp/romm/issues +port: 4002 +submitter: Mateo Silguero +submission: https://github.com/getumbrel/dfwebos-apps/pull/2020 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + Π­Ρ‚ΠΎ исправлСниС ΠΏΠΎΠ²Π΅Ρ€Ρ… вСрсии 4.8.0. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ исправлСния ΠΈ дополнСния Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 500 ошибок Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ состояния Π·Π°Π΄Π°Ρ‡ΠΈ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ очистки. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ссылки с ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ, Ρ‚Π΅Ρ€ΡΠ²ΡˆΠΈΠ΅ свой Ρ‚ΠΎΠΊΠ΅Π½ ΠΏΡ€ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… пСрСнаправлСниях. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… (ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²) ΠŸΠ—Π£ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки статуса Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΠ³Π΄Π° срок ΠΆΠΈΠ·Π½ΠΈ задания истСк. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° исходящСго HTTP-прокси для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… запросов. + - Бтатистика ΠΏΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° для сокращСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/rommapp/romm/releases. \ No newline at end of file diff --git a/romm/docker-compose.yml b/romm/docker-compose.yml new file mode 100644 index 0000000..c25e592 --- /dev/null +++ b/romm/docker-compose.yml @@ -0,0 +1,51 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: romm_server_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + + server: + user: "1000:1000" + image: rommapp/romm:4.8.1@sha256:2b7a1714b287f69b081ad2a63bb8c2fa673666a17b2f21322b580b0cd51cb266 + volumes: + - ${APP_DATA_DIR}/data/resources:/romm/resources + - ${APP_DATA_DIR}/data/redis:/redis-data + - ${APP_DATA_DIR}/data/library:/romm/library + - ${APP_DATA_DIR}/data/assets:/romm/assets + - ${APP_DATA_DIR}/data/config:/romm/config + restart: on-failure + depends_on: + db: + condition: service_healthy + environment: + - DB_HOST=romm_db_1 + - DB_NAME=romm + - DB_USER=romm-user + - DB_PASSWD=moneyprintergobrr + - ROMM_AUTH_SECRET_KEY=${APP_SEED} + # По ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° 17 фСвраля 2025 Π³ΠΎΠ΄Π° ΠΊΠ»ΡŽΡ‡ΠΈ API нСльзя Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-интСрфСйс, ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» создания здСсь. + #- IGDB_CLIENT_ID= # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ID ΠΈ SECRET Π² IGDB. + #- IGDB_CLIENT_SECRET= # https://api-docs.igdb.com/#account-creation + #- MOBYGAMES_API_KEY= # https://www.mobygames.com/info/api/ + #- STEAMGRIDDB_API_KEY= # https://github.com/rommapp/romm/wiki/Generate-API-Keys#steamgriddb + + db: + user: "1000:1000" + image: mariadb:11.4.5@sha256:5dfb3093333fa0ea53194ddef0a2bfa21d3b1e1353bd228b22610cd6fc0c04da + restart: on-failure + environment: + - MARIADB_ROOT_PASSWORD=dfwebos + - MARIADB_DATABASE=romm + - MARIADB_USER=romm-user + - MARIADB_PASSWORD=moneyprintergobrr + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + start_period: 30s + interval: 10s + timeout: 5s + retries: 5 diff --git a/romm/hooks/pre-start b/romm/hooks/pre-start new file mode 100755 index 0000000..59ee5e3 --- /dev/null +++ b/romm/hooks/pre-start @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +set -euo pipefail + +### ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… romm + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="${APP_DIR}/data" + +DESIRED_OWNER="1000:1000" + +CONFIG_DATA_DIR="${APP_DATA_DIR}/config" + +romm_correct_permission() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +### Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для romm, Ссли ΠΎΠ½ Π½Π΅ сущСствуСт. + +ROMM_CONFIG_FILE="${CONFIG_DATA_DIR}/config.yml" + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π½Π΅ сущСствуСт Π»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³-Ρ„Π°ΠΉΠ» Ρ€ΠΎΠΌΠΌΠ° +if [[ ! -f "${ROMM_CONFIG_FILE}" ]]; then + echo "Creating romm configuration file." + # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ romm. + cat >"${ROMM_CONFIG_FILE}" <<'EOF' +exclude: + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для сканирования + platforms: [] # ['my_excluded_platform_1', 'my_excluded_platform_2'] + + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€ΠΎΠΌΡ‹ ΠΈΠ»ΠΈ части Ρ€ΠΎΠΌΠΎΠ² для сканирования + roms: + # Π Π°Π·Π΄Π΅Π» ΠΎΠ΄Π½ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€. + # НС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π½Π° Ρ„Π°ΠΉΠ»Ρ‹, находящиСся Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ°Ρ… (многодисковыС Ρ€ΠΎΠΌΡ‹, ΠΈΠ³Ρ€Ρ‹ с обновлСниями, DLC, ΠΏΠ°Ρ‚Ρ‡ΠΈ ΠΈ Ρ‚.ΠΏ.) + single_file: + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· сканирования всС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ + extensions: [] # ['xml', 'txt'] + + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² для сканирования. + # ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сопоставлСниС шаблонов ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² Unix. + # Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ + names: [] # ['info.txt', '._*', '*.nfo'] + + # Π Π°Π·Π΄Π΅Π» ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€ + # ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, находящимся Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ°Ρ… (многодисковыС Ρ€ΠΎΠΌΡ‹, ΠΈΠ³Ρ€Ρ‹ с обновлСниями, DLC, ΠΏΠ°Ρ‚Ρ‡ΠΈ ΠΈ Ρ‚.Π΄.) + multi_file: + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· сканирования ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° 'folder' (RomM ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΏΠΊΠΈ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹) + names: [] # ['my_multi_file_game', 'DLC'] + + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ°Ρ…. + parts: + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² для сканирования ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дисков. + # Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ RomM Π½Π΅ сканируСт ΠΏΠ°ΠΏΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€. + # поэтому Π½Π΅Ρ‚ нСобходимости ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΠΈ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€. + names: [] # ['data.xml', '._*'] # Supports unix filename pattern matching + + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ для сканирования ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дисков. + extensions: [] # ['xml', 'txt'] + +system: + # БвяТитС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. + # [имя ΠΏΠ°ΠΏΠΊΠΈ вашСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹]: [имя ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ RomM] + # Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° 'gc', RomM Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΉ ΠΊΠ°ΠΊ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ 'ngc', Π° Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° 'psx', RomM Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΉ ΠΊΠ°ΠΊ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ 'ps'. + platforms: {} # { gc: 'ngc', psx: 'ps' } + + # БвяТитС ΠΎΠ΄Π½Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ с Π΅Π΅ основной вСрсиСй + versions: {} # { naomi: 'arcade' } + +# Имя ΠΏΠ°ΠΏΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находятся ваши Ρ€ΠΎΠΌΡ‹ +filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is /home/user/library/roms_folder +EOF + +echo "Created romm configuration file." + +romm_correct_permission "${CONFIG_DATA_DIR}" + +fi diff --git a/rotki/data/data/.gitkeep b/rotki/data/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/rotki/data/logs/.gitkeep b/rotki/data/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/rotki/dfwebos-app.yml b/rotki/dfwebos-app.yml new file mode 100644 index 0000000..1494a35 --- /dev/null +++ b/rotki/dfwebos-app.yml @@ -0,0 +1,60 @@ +manifestVersion: 1 +id: rotki +category: finance +name: rotki +version: "1.42.1" +tagline: ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ портфСля, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°, бухгалтСрская ΠΈ налоговая ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ +description: >- + rotki β€” это инструмСнт с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для отслСТивания портфСля, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ, бухгалтСрского ΡƒΡ‡Π΅Ρ‚Π° ΠΈ Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ отчСтности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ Π²Π°ΡˆΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + Миссия rotki β€” ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π² ΠΊΡ€ΠΈΠΏΡ‚ΠΎ- ΠΈ финансовом сСкторах посрСдством использования ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π°. + + + Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ практичСски любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ слуТбы, которая состоит ΠΈΠ· SaaS с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ всС свои финансовыС Π΄Π°Π½Π½Ρ‹Π΅, с rotki ваши Π΄Π°Π½Π½Ρ‹Π΅ хранятся Π² Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ локально Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. + + + Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π²Π·ΡΡ‚ΡŒ Π½Π° сСбя ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ваши финансовыС Π΄Π°Π½Π½Ρ‹Π΅! + + + ⚠️ Π’ΠΠ–ΠΠž ⚠️ Доступ ΠΊ Rotki Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ локально. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ любой Ρ†Π΅Π½ΠΎΠΉ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ размСщСния Π΅Π³ΠΎ Π½Π° общСдоступной машинС, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅! +backupIgnore: + - data/logs/* +developer: Rotki +website: https://rotki.com +dependencies: [] +repo: https://github.com/rotki/rotki +support: https://github.com/rotki/rotki/issues +port: 8084 +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΏΠ°Ρ‚Ρ‡, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠΎΠ±Ρ‰Π°Π»ΠΎΡΡŒ Π·Π° послСдниС 5 нСдСль. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ устранСниС нСсоотвСтствий Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ EVM ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ извлСчСния ΠΈΠ»ΠΈ пСрСкодирования. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π½Π° основС Π·Π°Ρ‚Ρ€Π°Ρ‚ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ошибок ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ срСдств (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ETH, Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Ρ‹ DeFi). + - Π‘Π²ΠΎΠΏΡ‹ Sushiswap Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²ΠΎ всСх Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°Ρ… EVM. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Yearn Finance распространяСтся Π½Π° всС сСти EVM. + - ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ комиссий ERC-4337 Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΎ всСх Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°Ρ… EVM. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ событиС ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠ° спама для Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ спама, Ρ„ΠΈΡˆΠΈΠ½Π³Π° ΠΈΠ»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΏΠΎ ΠΎΡ‚Ρ€Π°Π²Π»Π΅Π½ΠΈΡŽ адрСсов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π·Π½Π°Ρ‡ΠΊΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π»ΠΈΡΡŒ Π² развСртываниях Docker. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Curve, Pendle, Beefy ΠΈ Gearbox. + - ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π° ставок ETH Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ сообщСний. + - ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ исправлСний ошибок, связанных с Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, балансами ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ интСрфСйс. + + + ⚠️ Как всСгда ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, всС события истории EVM Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ врСмя Π² зависимости ΠΎΡ‚ количСства событий, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для примСнСния всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/rotki/rotki/releases. +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: Xosten +submission: https://github.com/getumbrel/dfwebos-apps/pull/255 diff --git a/rotki/docker-compose.yml b/rotki/docker-compose.yml new file mode 100644 index 0000000..d159d2b --- /dev/null +++ b/rotki/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: rotki_web_1 + APP_PORT: 80 + + web: + image: rotki/rotki:v1.42.1@sha256:c088bdd6fec5bfe92f6e1a93829d844fa8076040d1754683e07348a97677d4d0 + restart: on-failure + stop_grace_period: 1m + init: true + volumes: + - ${APP_DATA_DIR}/data/data:/data + - ${APP_DATA_DIR}/data/logs:/logs diff --git a/route96/data/config.yaml b/route96/data/config.yaml new file mode 100644 index 0000000..0010574 --- /dev/null +++ b/route96/data/config.yaml @@ -0,0 +1,11 @@ +# АдрСс ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ Π²Π΅Π±-сСрвСра +listen: "0.0.0.0:8002" + +# Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (MySQL/MariaDB) +database: "mysql://route96:moneyprintergobrrr@route96_db_1:3306/route96" + +# ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ для хранСния Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ +storage_dir: "/app/data" + +# ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (100 MB) +max_upload_bytes: 104857600 diff --git a/route96/data/db/.gitkeep b/route96/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/route96/data/uploads/.gitkeep b/route96/data/uploads/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/route96/dfwebos-app.yml b/route96/dfwebos-app.yml new file mode 100644 index 0000000..60f0d75 --- /dev/null +++ b/route96/dfwebos-app.yml @@ -0,0 +1,46 @@ +manifestVersion: 1 +id: route96 +category: social +name: Route96 +version: "0.7.0" +tagline: ΠœΠ΅Π΄ΠΈΠ°ΡΠ΅Ρ€Π²Π΅Ρ€ Blossom/NIP-96 для Nostr +description: >- + Route96 β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΌΠ΅Π΄ΠΈΠ°-сСрвСр для экосистСмы Nostr. + Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Blossom ΠΈ стандарта NIP-96, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ + ΠΈ обслуТивайтС Ρ„Π°ΠΉΠ»Ρ‹ нСпосрСдствСнно со своСго ΡƒΠ·Π»Π°. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности: + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Full Blossom (BUD-01–BUD-09): Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, составлСниС списка, Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ оптимизация ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. + - ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² NIP-96 с Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Nostr (события Ρ‚ΠΈΠΏΠ° 24242) + - Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ с автоматичСским ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ WebP ΠΈ созданиСм ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€. + - ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр прогрСссивных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Blurhash + - ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ИИ с использованиСм настраиваСмых ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ HuggingFace ViT. + - Π—Π°Ρ‰ΠΈΡ‚Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ EXIF β€” ΠΏΡ€ΠΈ нСобходимости отклоняйтС изобраТСния с ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ GPS. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Π΅Π»ΠΎΠ³ΠΎ списка для ограничСния Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Nostr. + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ²ΠΎΡ‚Π°ΠΌΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ + - Π’Π΅Π±-панСль администратора для управлСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. + - ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΎΡ‚Ρ‡Π΅Ρ‚Π°ΠΌΠΈ сообщСства (NIP-56) ΠΈ автоматичСской ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° запроса Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° RFC 7233 для ΠΏΠ»Π°Π²Π½ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. + + + Route96 создан Π½Π° Rust для обСспСчСния высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ использования рСсурсов. + СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ сочСтаСтся с Π»ΡŽΠ±Ρ‹ΠΌ Ρ€Π΅Π»Π΅ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Nostr. +developer: v0l +website: https://github.com/v0l/route96 +dependencies: [] +repo: https://github.com/v0l/route96 +support: https://github.com/v0l/route96/issues +port: 8002 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: "" +torOnly: false +submitter: kieran +submission: https://github.com/getumbrel/dfwebos-apps/pull/5064 diff --git a/route96/docker-compose.yml b/route96/docker-compose.yml new file mode 100644 index 0000000..4e7fa8e --- /dev/null +++ b/route96/docker-compose.yml @@ -0,0 +1,33 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: route96_server_1 + APP_PORT: 8002 + PROXY_AUTH_ADD: "false" + + server: + image: voidic/route96:v0.7.0@sha256:5ab6064f18ca191dd5836487505607122ef3bfeba6e6ccc5b28eef5c604cf4cc + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/uploads:/app/data + - ${APP_DATA_DIR}/data/config.yaml:/app/config.yaml + environment: + RUST_LOG: "info" + APP_PUBLIC_URL: "http://${APP_DOMAIN}:8002" + depends_on: + - db + + db: + image: mariadb:11.2.4@sha256:e9ea1dbab6783ff0281e41e3357d950a5f598b2033559b8443e03b181807910b + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: "moneyprintergobrrr" + MYSQL_USER: "route96" + MYSQL_PASSWORD: "moneyprintergobrrr" + MYSQL_DATABASE: "route96" diff --git a/rustdesk-server/data/hbbr/.gitkeep b/rustdesk-server/data/hbbr/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/rustdesk-server/data/hbbr/.gitkeep @@ -0,0 +1 @@ + diff --git a/rustdesk-server/data/hbbs/.gitkeep b/rustdesk-server/data/hbbs/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/rustdesk-server/data/hbbs/.gitkeep @@ -0,0 +1 @@ + diff --git a/rustdesk-server/data/www/favicon.png b/rustdesk-server/data/www/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..18151e82b11bfd52df745f84cdc3fb0fddc45f30 GIT binary patch literal 875 zcmV-x1C;!UP)nM*;!@0s;a6000C8 z1ONa4|NsB{`}_a@|FN;LqN1YC&d&V&{Qv*|udlE4^z{G#|NsC00Dt=clJfwv=Ky#9 z0DAoZef$7|`T(!!0JP@s_y6GV{{V&g0EhShjP?MD_5hag0GaRrpzZ*r>;S0i0IKQ$ zt?2-_)^nAd~tKi~3-<`GC~*aL)7*n)HC%@?gyI zAj0PWw&hTt|3H@iaI*ejss69t`_J?GpV#`2)cAnO_)xO=fX??otM`!F_K?~3Ae{9P zmGytw^I*sGfZg&@!17?q@jT|Fr%~HwQfsFBwr$M* zr$%f&KtpP|NHIwfqCX|w%dPC9YiV=;Gb2@IF`ySO`M1@z^$j3m@vq)*^x(6j_*{#w z><}W;>y$+RhmWVh&~~3Vc$VH^5Wv7eXa|6Zw(f4bS=S?~oMB){0p!6AW(6rEEwPn6hTX6;1pPl zd0eZMyGreZ30lPBtY+h|Oh%K1Q4q1rkW36KI=}E|c%z@Oh>`#R002ovPDHLkV1h#6 B%cB4Q literal 0 HcmV?d00001 diff --git a/rustdesk-server/data/www/index.html b/rustdesk-server/data/www/index.html new file mode 100644 index 0000000..47c3b37 --- /dev/null +++ b/rustdesk-server/data/www/index.html @@ -0,0 +1,359 @@ + + + Π‘Π΅Ρ€Π²Π΅Ρ€ RustDesk + + + + + + +
+
+ +
+ ● Π—Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ +

RustDesk Server

+
+
+

 

+
+

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ руководство ΠΏΠΎ настройкС соСдинСний ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром 🔧 

+

 

+
    +
  1. +

    ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ RustDesk Π½Π° + ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅
    ЗапуститС RustDesk Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈΠ»ΠΈ устройствС, + ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

    +
  2. +
  3. +

    ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ + настройки
    НаТмитС Π½Π° мСню с трСмя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ рядом с вашим + ID ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Settings.

    +
  4. +
  5. +

    Π Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ сСтСвыС + настройки
    Π’ мСню настроСк ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π» Network. + НаТмитС Unlock Network Settings. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ввСсти систСмный ΠΏΠ°Ρ€ΠΎΠ»ΡŒ.

    +
  6. +
  7. +

    Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ "ID/Relay + Server"
    ПослС Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ сСтСвых настроСк + Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ "ID/Relay Server".

    +
  8. +
  9. +

    Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ + сСрвСра

    +
      +
    • +

      ID- + сСрвСр: Π’Π²Π΅Π΄ΠΈΡ‚Π΅ dfwebos.local:21116 + ΠΊΠ°ΠΊ IP-адрСс ΠΈΠ»ΠΈ Π΄ΠΎΠΌΠ΅Π½ вашСго рСтрансляционного сСрвСра RustDesk.

      +
    • +
    • +

      ΠšΠ»ΡŽΡ‡: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡: +

      Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠ»ΡŽΡ‡Π°...
      +

      +
    • +
    • +

      API- + сСрвСр: Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пустым.

      +
    • +
    • +

      Relay- + сСрвСр: Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пустым.

      +
    • +
    +
  10. +
  11. +

    ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ + настройки
    ПослС Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°ΠΆΠΌΠΈΡ‚Π΅ + Apply, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ настройки.

    +
  12. +
  13. +

    ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ для всСх + ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²
    Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ‚Π΅ ΠΆΠ΅ дСйствия Π½Π° всСх устройствах, + ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сСрвСру. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ dfwebos.local:21116 ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡.

    +
  14. +
+
+

 

+

💡 Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ RustDesk, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ настройку сСрвСра, руководства для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ + Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ RustDesk.

+
+ + + + + diff --git a/rustdesk-server/data/www/logo.png b/rustdesk-server/data/www/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..42ff8aade6625ac4dd3331a1f06abc2be862713f GIT binary patch literal 21228 zcmeFYWl$a6wl><{` zw?nVDhK{Qm$b;0;*}>e(7EJ2u+Tfaj8(N;gU`De@DClysLclsVBu`HF&Nwq*$2@CMd)+jcM2A~~Z8F6U!4 zhjO%Hu{r%}%=JN-9g{{z!p-1M67jPL#bbMoRd_+9ZCE>hhTV#tm#~uv2G^Pi1hA(O zb*B#Yx5@{D_|3Oa zD+vh|SqX{%aOcg5Y`+8{nO;$%ej|0M1Y8&aY`32(ImdLewqbGKD^(aS+k2wBt=0CyRRK{;tqkkiK0vb} z#+96T_p;Jto#6?dB0?2ec625wqn}Z5a9+sQw>|oj@ysP4E?Kz zQGTyYnaBhzOD0T{%ef!i_t_xL(0|LoS!W}Ij3O(S1{EW^ggLb}Jq0DjGn}`uj9>?e zFAZm0KYP|Xr}1pa=pC&k1Afgkkp!f?3^@!2`(ar=B9f{emzqMcmB{ID5~n9R=b`P2 zzywnWuCjO{k$aM-(>X>Z<1{h1UOI{j{H6|e%pfxd6EL%^n zMT8LrJ^9}N?7*%dQcpWudl!CBA@aX*`QOHWO|y`b{w?BaBSfyFs6r~?;0z|^WaeaM zWs>r=a%U$OMkEz92FJ+ z1#j>2PZr+zVDSVwvam6;ve?yj3ZS8ra3b&Dj(zVP)s|x7Hik|3%W( z%KSgc`Y*Qqweq(+|8B^e`oD1hi}Zi^{v!! z%Ipn_8)V96&dUa3V&&m`vxXbY$z<|2WO^HbICwaCIZRCW{)RF$<^SN|YzKM^rf)O!^#eFtcY^=;2ynnC!6&U_EciyN4{gtV20DsTFdBZQ^ z3d@Cq3kSj0l9mN&|mLPiz@LT`*XTtu+yw(3D8B9&sxH&j@%$V3s-onTU=HX)E z1A)!oGJ@U2gaZUN_ zC}U#fU}9(0U}xj!_1|LPza{*?+4aA4{kItSZwdczcK!cG7vg{3 zD}wFcF7Q0w?gaa?_psmYA`u*AbX@=d3G1&f1dy5i?rjpzRaQ|7?f~i?3NiG${2CDe zkOH!jVj7-HC+%K8D7Bqv9-?_O8dn?d{L)$)&oIT|A;d}NKwTpoP2F4FXYGrEO%}Gj z4Hhvx1F*KHruU79qb&4_!SNz;gc=Iul%(li5SU^`JBHPFC$ z2qIpdnGbLtqJk4;Zr%odQvFW|?J8$KVT`8I<|9_t6>3dlE9hld8mrwfx_cK5#TEMA_I7Vr#g_&7MMVq&4jQ`AzdepnEaaw-d!w4%oGm|+ry zZ>j#RTAnJf&GL5Eh&o17emQ_TZqToq*5jr1WZoi$KIg|F`xt-=i9xnr0++r!Ab*v3U zSj7eT4kbEP1U52+WMpV$e&S5ahJ%vep$=V&04(%?J82IsewQh2P)fdvnu%J3^S5zJ zSJlR zci(u=HV~gbw~i1ZtwupQ#PhA4<}xR8DgMi(bTanD^@-EAl_U=>Y1yISb4uRIRKTE| zghCH9^`+4b|K&F_=NzroN`c9~uS$B@- zUUC5V?6YwD`KwDo^RhwvxQ*(s7q3pi$JILF53-7ga@{v?2Se+@9eek5>T*0SaqU!UYr_%`L(~;hzff@b{wY69L*?mU0}Vz% zO2Pa4utP!x*JsZsm%8pJ#Ahzy)X}|iy3r{;)@8EEv4wxp=jYFX$lq~>-kTbURzosj zzNl8Heb4wbQS*D`F}4+%XuAY0u%Z-=xZ-)BxAgtBycU!X%~bmScN*$RY=FJd{VPNu zIS;>6`Ry{QAH~Q3Z$+!Fzmw1FauX_AD>Ymfd6O4vwv|7~=%#@s_C#U`5ktVPHxB{8 zjBnDV=YSMNfN;C6B=)M#uV59VwN9d95~LXRLyU#DrMy-edAY5$O)!_~{&@ZU{--Zo8o-Sd2o zhxy8u3V*yK3#boPesh6Ug?My)*^X)7?fNO;UaeD6P(TF(zzh&Rj8VKe2s-XQ&XsKi z+M%yb;$sJVxq-;(&SpNNX7nvU()hVw!v>m?0e;k+WZaX*wizVsdx!<`J~xPOWHQm zB5@`un3|u;Eqf9p#W@HTY3V$qsN8&(n#Zz#Z(Ei&e+il_iL6x*R6u{dw0(x-@^NhY zTCnMe8VJLnbur=eJlads=^7r_{q37-Z%^eSH$LkQJ=>PNDqh-Q^>YDTryhb6?f{3D z(yWjw<52#-8qihzIl!~&!gQVgLzq7}kf}B99v3hFKB{d)@S}hR89mA%pT#VFHW7fN zqNMP1UC8Ow^zqP9j$Ul-UGz;+@7#H(%F`^`!#K1MkU;MUTz+i%I zUO~5hMrI~^75iz?KK$7tF;dXKeaN&s5v zS2{3gveR&)ucIJ7!vw6C1b=%H%Il+2l|dVhowhZQnn&4)NqvFWr&1@A zR2RvU>=`DE+l$G^%_})r6|`+aPEI{EX}Jd`(0z}>4oL(#FH0&a4UoSHpKt%IYmOWvhuL zYHU+t*hhY`9*;q4Y}Zft>f;6i(Z(M6AWWCkQ^yp1dG*El=}-1wB8{Ym zhVgvM_Z5Przk~4;_wAcHn|;nvmSG=Ob~L%ai9+OeanL-W`MDgg=}F0G`jtWG)|sWc zj#iLJjb??Ka*I|BZ{+0Gs>N*ChgX}Nl@Nz<`1drH2!mp@zrYYd{rMVmB#Nu9J-8~VQkmEqF|DA9Ye`N;BHuB9X1i8R(G$`RM!i^lK)nf+$^*_L1+1cB!8vL2+!II7C2Ncfi_Y zz}@XjeS?C>G#(L<8P)l+c26SA#a9s~>12DI#@k2tp1bhpfFixjHc{~{AB8)Yr8Q>B zF+7r6Zc$%97qbBTl9{AzS%qAn^TbSq2E?2euUZdFOt;OZGoyqYt2hL)icizqF`!^0kCus?87~p@%DKAXU~O;k6*ZWl%WeWQnBJnq*7; zQSsvN4DU7=VxAjEwA!uo^IF^fOy25U11 zHzs-kz$SXpBA;VD5-{dfz&@MS=w>=$MTH{o8(Dmu&FOFb&ggMsqyxOG9$FVQO9Z8eb}FCF7+t&BFl-0Do5JZglqgY@ zLdNkbJJvuna4IwV$xD6eQ7s0CwC>#%N|W?{fY80FT>6NYchc8=rL|VCp-=pSEH*kk zrEPX7??Nz}b(t>w$*;h3L~RtA&b%%1Zk8MUKIGP~hnlbFUJ1xSovFhSNxiF5x? z(#_fD%^-EG^&0LhYvZychMH(cCNYnC-}6fxhqa}%?O_rrm|YRGvaTZOXZ@GM-U>qf8|!+4})9~sjTOlxmlQt z>KupdW_~cUMZ0iN2q_83T10k<`=i%Wn%}?2Ao^*3`>}P(Z?R<)$7V!d8+T6QN0&>n z+8%+o>&&u8)5X2+*&4>9%4`%{Plq^{85dO`kvRrLsHS_-A3|;9PSD^+wyvoI-e? zefV=EQ%P$RUaig%YHChl2HX@ajPGRRm-qPJ(TMMaAD=Qlg)zdN@_y26uYj&RKdU)s z`Ph6oceBG6eW!fy{F*RXOO)d&KE`n~Ko=xF-!hI9Uh8y{)r8z>(yJ1dDgf<5(|;2v6V+wdi46(Y80Bsa^8{)SW(wn0I0 ziX2GR$WZbyUM+Ff;e2!Z(#&vN9sP2#Hr?s$y21l%577fk$aE-}(q@-PqBvXcxXo$R zLL0rq?GuDDE-WW`DNR5VWC(_YAGR8Qv}%n|Lj(}Ugle?|k!6a3d}G?;KT%O$M+28O z%uGgK$LUypB4es%mmP7G+Wg9?nPqAX|BifKV)NK^H<^w9jF?@qtb9uNcw$Q7Hm^!9 zvusWT@gb|Ko_PGx1NCVl4(G}SWsC-pya=PA4tVL93{m6U6xYq3$T36*;F~;WKknX( zbX4CD$Um|eYVNa4L89d_Y|vE&BEaOTcK|SPiVp!7$BTD)UllL=Si9;XHBwkn=b)2+ ze?0RHaP7}btHsy(0xSgJid>2)3sJ`*8XVCsm;?C@IN9dOPIUG9(e6lrS~ND05js+` z`91U=scm;1zO!Rl!%$MgLo{E~8WjJW`6$2KC9R2V(F(FkpxEj|vals*1tzwbWjQ$R zG<-K|F@MpT@p|0N{LJFtc~Pv5D05wOii1t(Ii=uGl10`Gv0_4vH)iRNkrR1eSEk8I z6-ZCh@(PP@iKv6F0ZJkGj=ggt5bl4u$a1~ zo`w}8MwK}9c~bK!z_9f)m1!p`%O*fO^;hX#?90O>n;W9)oK2fmA^sLlG85aQ#{E>} zVRa>98Y+(EA0U5e;xV_zzqFz!m2Wi_!^JrLt6KbYd0+)C1bQ&R@>AFdy@CJb|l=B+Y{!nc~1L+H{}vjQ!twS3y{&`VZPEdqw0Rf8hMd>NV*XXQhVH z_SbLkRSLBn_%RvecKPHr5Hh;0-iOGM&!(OGL==$f-1IZmiE=MSqP5%3F4yAIZda`5 z#OOcwt#ObDsS+1J#{XQ6vZ!PHc+m9+69WPjGLMhndvG8~{vp~W;Pr}i+>IpQQRbPi zHlM69@=KbADvsv088N&XqXq;Su1TPwDNzCm^GNBL!Q*YE%gNc?C7)^%n%~*N+50@A z-;gt5={5Jfl28aq3h?Xp!)c#m9xY$-$<1A?^SUhTW;Ap| z98~LiXd|j#v3j36mbE*aElP}?S5FW5-j@%T<`Vn~nMPrQwbrR`b+o1=elNxgEk^q} zD$ncUxM6E;3a-l%D$i$Qg^h`p4TDbIryWOn$Z-+_SAs3HhvLR8M9?U(U~)O}O65tc zpsYb&MbDlT(I)n=bJgIf)&te3p*;TAv*GYi%k%LXM}W6U;dmTQusCgmhnn;d0Ro&f zD|BMBB(Hg``hB#8(!852lxPqQ+R~$Pt9V>)sb@(g>4iyWqTyv#k|FfoQ3??W%f#Dkmoh{4DX zj$PtvZZ}!TuJ4{t`LDAW5Muk}nRSg#Q%~>PFQoYz=@Q#)0JVz>>{0JHjz1p#P{M&Zu@Z`(mdQ(5k5clif?A4MqVy^n$!Q7o%jr5<5AIWd zmnZ=>MQ%IhYUFdO{Rq{C(1vh^m@8H zmi1GJ%Tbb&)pyf2uqIz4ZLMJyy{JKTNn+(akB8zU){Vt~P^Nc+XGf)Mf?aygrs^7w z%@l8WXeTGu%~*Lq$@lP z*%S@F-+le2p-p1*P1x&fY_EHN8eDMEawwPfwqf&(?`MAWZ5HFWLI z)-<2*Jm?hrY4QaB6ku%)@+qiUA=!+lsvNhoE%+W@-@hQ}@&lGSzFU!Ozsd386eeil z?7UMuuLOGWZL^3U<7B^%?Fwj*2-LD{)7cwFY5E?7HFUaoif0SwFxx3`@DjSg_GVEU zTo&lj3VNO=m&(HcgVGm2*@`rh;|Vy(=SJb3%waf7`va9Qo{!Nny>u6!_G2Zo!kq`d z>+@+PeLfMQQ_}U-iY_-#9SxHIC0Wjvv8guteybp1Xj-uq8z7B(mL^b+#bzWD+mE}g zs5IPDn6YLyn|UqBalL91>}@^@f_g8aLP_u^UsGmcn%D@n0{2p6#)h+E*DgBtm(P9#F9wDJbo~}Bz;uVcbeke#4Q=5 z$`XYAF?GvPFiovpcSmAx)LfHobEB|gv>xZx0Va#`B<}e%T3t$vg4mzKsM%x6-@r}K z?Wxl%(qksAmicWL&LYbcrF9>|(Y5b!AVF_bq7r`VvSIW-LoUu(CqA$*==F59pRnmi zv(m2_cO0_3*d9k47Vtx)FYcxow#H%5dmaOK+ri9EkAz4lJq*af})~OTlAy) zx7yB`6Nc@qj~q$Cru4v!Xe@^5Zd_41fZJo*aW}e6ZUkX1+|lSTg*G?rNvDu`oTHl0 zj5{%xaXS|`gc=oChAD9V%yV+M+*puZ`KnNIJjF%$pyf3@+}%)8uI|PGDKL!;-i2>E zpk(+_@Z;`Y#zhrsV}kZnU@{$TM;&rz_`}hvmsfLb{LxiRKQLdzaK=eq5!`I@If`O| z^xf4B+pFamvk4%0Y4ZGoN3(^>%}vefa6#gWCcz{kMzhwMi|%W#8+G0bivst}MXNh1 zdRWpQsZptET>*SQtB{aU{}JW9Y8EYkld0p+c4!J@cY!N183v{uF~}gI+)YJC-GYuc z9~mKz^(r(}CnH5SGE65uIU`%~_;q0{q~CYzh#WWQ`w4zq0zx0678#BlvPpeingG4_ z7DlKV=f@nlNHVZm2&+@XH!P;>UxO7wDB-v0fCbG(JC^nDg?v4{E`yylEWqmJx};>) z#+j?*hg5z9$+8Bea(${v?ka}OV}R%d>eWfYQo3O_!0W5`c}CaR_5Bjjko~2RN5n|aZqDF~g;)~`f35C8d}Ea{OeCzdKL0*vv*>}N%B4{Ex%DUQE_g=f{0djk zwogNo?U16Yy;n3(Ur8;D8V9f7+@9LQw|5m!MfrX`X22Y}u&8 zd<>pZ6m>uTC6Mbx5zTwGcuhsI_fcq#q`@}s$?bNPSNnTaOtt#qhywCI)o#yCx?03VTz*#} z_=N`mK2+RiROZ_4@3Nk)Tp`DZ#V@=k@F#M()Zgf}`Lg6+EDZeTnLo^~#IzTG^A%fEqJ4NPU zJ`~Dv&CA%jl}7gt=Vc5!f#;OSKzC^Gb+IWJ(bX>?0h>HD5DV3A721M5qMTq;>)SWY zz3O7Q_X~Hr%5%QUS+2z&AvX3yO;xZjQ*7%wol@KC<6e;xL^C3YdRdmW#*f}x7|Oxc zF0&(l#ileE>JRlZzZAm+N_`JiNx#vk=C^!$wve5ng>+Y%9Zmn*^c^4-U3woEj*imO zsgU&Wg;E8!uS(M(u~g*x12aCitzBU=X^E@e=8Mtfc1>SSG*rKBR01TeNmRe30+)AM zyw0N0&7l^9kmIp8yQUT)uOSaI^#~i}&+;QoQRp%p z4f_{)36dMXsPna2g z)(}#K*)3FU2u>jaY_oi{vYg)ohq1_fZLOWa4H9j*yP^o0;GG}J1MN*z12(n(8P zTyhkjBhP7@4b%pm5n`1(O`JsoD_|7$R0T{d8pf&XiqPMSk z6@mf^j#a{ZvdpIj+LagJ{x_P!&zZsyhKR@%flZe zbT(x~Jp(h(xn{jLW<9ogmPALHNkIsGDr@K8zMF_%HI7Ub1;70+*Zcd)t;xWM@$WTo#ZJ$+uJapk!)p8lB}2ajAn zutIYT=i425BtOdUR5q;7cuUeWtK-e!{iZ@u;ug{T{8TlB!ox@yTxIMC+9x{~DQYZO z9V%(j+7yyHr<*C5xiB}WNPM^vyfZlgd1ayy3_z8@rro!XvYl&q7gRz z&(ZUf^2bTSqo%jWeVtfCl`J1=B+cPT^rs`ni&{RK5z?vrNgR|btKK(%TF92E%RO=O z7$S$6()A9K15Z(T(?>`bg1%&qC4++@0tdyYdRuR)0Y`N5nrpj^JeT8(wkFPGeQN}O zeqBU*%I(Z5A3iZjK%K=0`NpmycL{+cOGGQxkF(1ubwgPR=xaWquUg*DlP{Punv_b5 z^R5r-wyiV_+fxWrOhv+Lf!K14DcFCO7|q5xGiSZieRJel%r~ujb8*9+)Ur_%rsQZ~ zlhxJLmQ*SFAWCot#Td#I;|gnkcmk{{syLBa0D>KVCc$%c;RZevuBumYxKC1&7L9eH z0ECb}gym?x4mzCVOT)X}k;e{0RTIy~DEYgs7DCp(HCCqDAaY`(AVUg= zoP&c5aOyF!#CNVVeTuA!!8zrjAsXjG3h?uCw3O7b2EK zFS_MraHCIBe;SGY30H<~rJ1+S_gTg*b9_NA2aU3Q5$5#z+f*2=Bq^CD`PB(WY|@ra zg1W?==xuD5I+R;)4cbuXpr>-Z-BL7-t`vE#DqSqJ+_&Y3o;(mUeq}%X*7Z&J$rl<1 z(V_0~lx%ErZvLAHN9yNojK>5px`I%DB2=`lwLu+AatY1(9@ z;8Xto5UBQH@Y^<{GYC{)_lyjuA$NCL8OP-un*;W;npvN}PSMpAgT(CmXgj<$L!lHn z86TQf{e20;Tu%Ye5s4v&K{z6z-S?8k{x%;eJC%f1*l=JRr6GKymMAZ5JV-7Y@t!0p z#KI*uXO=W%b26kzk-bn(lFd{ZcKY=Xfv35#D2Gbl1vTNphlLxko&p1a0s9!WOdsAC z;t5aiv58frHDiiMKOUOg^nr$?G2#NWrqld5fzMAdZN3XH(UDL%FseW(_0h*Wb=FiVqx=}C6{ zhGp6)t3rm~G^?tn>g^x%IX9&smQQ+^QAYiIB{I^2P{FJ)!8DPMXg-~tTrmd60h6LX zZgf8%lSWfZGf?w8cCU%e};(KFM9U>w}Xr-;l{n8V@Lj-mpnOC=wL$SidSnvhtxac4K z{GZ};%J!B7keppdUpMJ+oR@kr8!Da;R^Uwvf_o0|7TNbx@rVKVg*I4l?J(1kJ-s*b zENM+Pe4P8D9_z>}H94e!kwBp7-jjhJiyE}&ewklAEY9J(%qCHT5iFVhW_62tabIkE zTskP~bT))xIlscR8srUIgP66H<}Uv1eUKW9 z*~-F06S|2tVXCw0>NbJya>Qp@*VVWWJZW(xuf+Ojp{{s($p7WM`HV|RahKm$HGD|O zXYjNVws>`>-x!?JMtX~l8KhI>t(c*OTSp7ALD07Q5LJP;uAUI1SvyU;Syrug1b;gr z6Op2u5lR-7k1LU&mn;Rs(JFwv`nBbKHa+Gmu@SuEsrY*SNKsLPfkuzOK*en$ARQkn zlO7s!u}Rud4r|?`nlx9cLB~rV=KUbl4%4-Z^TWj^5+*yh z+Goc{{k}CKfA_KUX0g{RXcPt}VBk5x+iJ5as2;~;RB?|umJ8bCCZ%`B&QGTgpe1N~ zkTb`SDYe78jFHVUNi-MNcGN7H#iyPZubqFN;?yz5bZUPGgj&M)qvhyRYx@uv`vNz2^sA|32 zxsbj8L%_Oqu>P{caWe@E1#9j7t6>rYOIvf%F98autGWgDW!#!X8OXo$J_Ka9( zJ{^6JYWVEeCwOqe`Qk(cH2&Py`<6F3wP^iH=;9RGK8MY8I9bMq1@WQJvH8GGPj|F+ zV6+c@@R?;sv%L|pY~5?(-v_OGr&&;Dm+cX*G~%8q0qUK0A!A1K0S&M6OX zzSI!N@BBvx`jIGTNNMq6;p4pyL zhn4J~E|2I1wD+hW3<*WB9&FYH|DbeMjk^-2*`<`>nI5_#(?9@~a?{h{9)naiyXL!@ z6weFo5U+Q+QG2r?*a362Nn+k#V-6Kd2H;MeKYkq?i+yF@*)D#%ZKpu_1$84@^3E=+b<|NtSD5x{~G&_OYL*jGF?XqJp&Or+^yXAiv*rl zhqkXXMx!{b4CRmahYe#QeqV;ZK!bFO8%26VyQ1Ec#H32&p;7Upk;0($5m`XIFT9FF zTvhF|JKC$kzgU4VE)#cX?Iu>sb4#@%3zd?I+2^Xc)30S&@vByMcIiJoouoSr81h-~ zrTA4Q0di3u^$UP$>dPg=fE)X6#Q&{=)5Dt2W8Dn7W^uryT2oWexyT|EhI0qv`(mP=+<_x1Js7 zSNznQ6ZM4+ZC;@svpT)jn=SeSV?!ftmImbFY9edYD0mI;%dV0m^r)zAjGCjqqu}j2 zLu5|Vf{ZY}8_jnPaY{w>FvjrG$<%wmwm8Bwdz^e)pYynLv!}ZAZf){?@B8&7>n^YP z7l&icALUf4MoW8+HHM};w3OW$AWI!UcihqP?qz0XB}CWdKRZt3vg=EpRES@GBp~sn zXn&9!9HMwJ^l5*+_Pw$=BWz!HQE}|Q3Z|3Utcm$qZ&pv3X^>ps)MnIcM)>_^sF9Gt z{J%dCkw`Rr@aXtl=3F(q>_oznFVlYlXCNV4wjeS+_u|hMvd&pr*&BmH{{C zExYQQrLFG=O9?yg&zrFf0Emv@oN?UnCGVH&Z0^LeYSrjnqv>|#GQV8$I*Teh5?j?g zb<2f{&fuNWTK(@P<4g-)>D;wTF&^t`;S2dsdxD@(bhdI~D=Ib5Ys>ProgL|K3=c;l z{JHw{;dR+#P+7ISTD0U-b$081HpDHRZ1@~&q+6vG}E(7+0 z4%@NB9n)vOeYJM|QDlc}S$Jf+haYe58mO>b1$tI*#USk5{Ud?;nnj#4qBZ`DUsxp9 zv^hec#@(nLcFLC3#iV*ha?ET1Q8fN2y3xol+GnpZ%=dd`mgO&bi|0;H&*SIyDt|v@ zM7S1}U1YWR2vA3Nf6np)EaH`m=~V+Hy5kV_-q`%~`l@;ut^`pymzdL4jARil41?(H zL(ldn|FWmyk*n33tC8Z*4#FaTBF|z3H5jtvApsq-@Zcip?2j~mRUTUPx3xy;==tJ-XkG?P1>^_ETQZZYqf$2g_jgR@m^DnTpEr9`dPv_uOok; zCzB(QGY{JsvioMy^V1>d6n=;gtwg;4ee~&ZmnA})KVZ}fape{2Y322nq*j2ewhb`> zO$S|!xT_38M)m{+{226oLvucLcj^+O-%LGA5kqtEcL!!GlF#=7kkfXy?@`I_UfyMg z?>OFRo1uw}_e1_nZPX?f6A=H+#(f2${>03nE+-;YZg5HrT8l~t_w|UP!7IGGOxh5m88YLAbrgq!w zkMgH*AwTnv?TKD%qV)Xtcq|@O`?dbf?lSTNtlbyBBiMZ?j9BgdmY2^W?4Bc3sAIE9 z)_T4d7-w5|%EI2`bBdFR7mHmsVpMT64g zs#ef2U?{E1RPht#DOMSsP|2a6aSDyt-(-fToC>Ov5WFKKb8@M@pW=IJttQ)3_XnBJ z2pLBk)P?h?Rn&gJ4}dW8`*FLi>SNqPd=-lkpeXwt?MPAJqD7y6dEUf+7eSSXWKwx; z?{${~g^XLNJ5bVB{zD`Lc_Zow_2s&s=I?Q#g@zzl`Y+oiaelm-oQ%}gw_UnEuSjE^ ze%?=@Uv}@LB~Va*Tx@2n$Q=o29U}_h?!kerstF0ZD}{EC9b|RpFLg> zYTb_A;l2a|qNH0~+3&i`UG%DTO+A00Rfc<=u#bWqY1bB|*%b(7MJ>;_+Q6#ja^Y?qR6V(9`kWKx3aAAf%Uq2}xBDrQ zy9<@!D!v0@pen|?CYy6Z1ag|%<052)p2g)r-mG(NzwX-1I}m2Sa=Ai4kmfE2Q)PP9 z9I?mcPK*3;K2iTQ?1YUC4WHiQ|3fS{kv1Yi5+U#%tr(m!3*Ba-aI0xbvzN#Ej=tw} zAZoG|?x0ps=BEZtzn2)lr;>|7wD~(8`d?Z*q3l7N=k#Qbv=iKF)3;Vr?to<}L#ny| zX?9bRH_4~cq8`tvLeUvL*Pc78Y|}wjMA|B8_f36=CEt+`9%RR+%)G!T-l3A>Mu<@z ziC@caffa%q;|NZ@BmEU~HZ0=w2wKu+ynI=`RvWvETSKUM+X>>Mx+Za|G(=QTj%Ed9}kB+J3x*>wm)}(Kw8w?p25z;fNR~awpHF7kbt&;#H8_&=VjXQohYS*n6%bT9yuZ)_i)p$r_2`D~if4sZ;eMQC zstSJMCywDvg@<42WX30Ab#;pOX>w zCHf!~3k9l#cz#NFzjSWRf_%`ACKC!VPpa*~RL8^Fu4fCXV8nb<7L(#wp(UwAxJu-= zzpmq+jGF6T-CE_%gI0eu*fzd)$v$t-6Oj0YCmYU^nx*eEWARoHlsnTCX5>yjr+OAg2T^CKDA5C1uCgwa(?8wxcfvmp$^7x?ccZXWYDp%)1N=nT1%+ zWEuX%FuKfMPE#vogj3M$YVN{W-)Sy-0+}R4UTs2xb0|wU3lAv~qa$b6ohTJu`tqn&jvKqY+Q~)tMr|T?W z^6{RdP|VQwG2h&lc#QENjrrJA{`Vp#93f^wR`mew`lLm`!$5&uFA`_8qZfoI_9vwS z=~Jthi)rDEdiR~(gP3DGO_VSC?eObtzdzZ$(>?6D&KpR{xvgnw)7qm$(M4SzqXc21 zOUf49HWj{(@Sqtq3{8mN=)S#hq2aWFEqpWkFn9~`1snHz@*7FIUcr}o3G}@n)kEZ^ z%x*Uf&qzL~`Y5#0agn0a(?dZto8ek{V^U&?@8LMb*5ytT-LJ3q#2s6S^$meSw_xZ% ztfKp*TFw`fJS?+5eXVV-{sw#F#4=v!RjJE0Lb#7^vfvRG~q5b>`OB>vk#UB$=6OlozX5*&t9kp~a;{$ux#}7fvo+B+WR8I#F@P zcfHZi!-%`?eEEuZMC{RszdYbU^K9!^Bo$mPx=aXWr=xS?+^zq+0V@*A$Oj^4_MqGZ zS{RMQZihY*HUH)i*o`Cn zHbk0|e;J;yAN63Po#wyY;`~YuV$k0NcsYXBAA_HUK62ZGGEWR+Ex6EW2c_?BaU`hL z4i^;0?oQ}f$WM&k1i9kSUKCHZe(|x^=#dO$^S~D}IXezVl=Kmg@#3s?b7HF^Focyq z{!n@Bp9W>TR)}rg%K@cIR2elt2y1v5|&Ciaajh zhIZ#$dOKN4Dbu9txGhIsf@t@L|0iDHwZ{4qo&B=vm-r%m2gU`XHm{9S270LI*iyG4 z$c=M4-y1f018N49sZqpg`>Ww8u|!u_Dh}5o!+l)3oHMn>< ztWdSI-kq0G9omL^bWGxQdYM37@ZRSIhdd`CytmMa;k-dG&GIK@?<%_xcy<6 zzPuon$R*oM>_bNWBGDE6tDy*_gaMw#C;_q-ILb1gZ$fI4x>SdpVa`yL0mAA>O{fl`ZE6A<}Uf%(c6=)85tpk})s~y>+?>|IUR0{;~_wUUM-3qYaQOVcykCu-$F1?;&dHmIKjw>uk%b_J4lP#KPX!~LAz(F#Pce(q#nM4 z(jKvR&}{X)qxo%{H2eU>A5NS?j~37pdASI+{H`2KKKC%%gd09rT1*;6v;AY6>dGgFaA@h%`f70bnfUic~|nr3@dCUtfs~SHs=Y~ zxC)aqS#ThOPRxzl&H6D@$_KgkeFsdZ{9LlhO%QWa8LRqZ>mlpwJLMT=f-nduU$YAm4| z8e2uEb?6i+X6#i0{8t7=ZpGBQ%6==UH|{sYT|fDKP4OiRJn=OnwI}7h zYV;^s>P?YDxsBQ>&Qr{O_q#WI&gafNT%dz}v*YU)UOu&T|8&)v?W^inrRfnnGK-m2 zo`rj&@j=gMzpscfdkjF%?4?wGza!o<&rNT+W*1dg$U1r=&i|aB#E=UN*5EqcRvE#y zuQQWMO^nwEviDSC7kteo00MN;-=l^pi)1==4~uP~eDddFz4%K(fw>GB$71>AN%^CV zs5zwv!>cj+=QU(V#A=mMdZQM6ocxPN({=rjwgm(;6M>(=aZxBY++9b`Ljy#ax-<2r z>hUfRpzW6`BSY$KR&=NK!8qa(N8C})$pF-crk)kd?^zMg%rE#;llJe!y0&*1w*5Z_ z*`^s7Bwmnnd2^5Av=Qn8#zvwW9Ve#al?6~f&p0&@Liz27*D4w^svb8*syGz;eY{bU*i8G9PDm%p>9eh3+zkZ*(C7}m6_bQQ|5uz<{#@iIh! z2nf(EIv_ajQV%a)6D5(gZ(8=+Uvp5M*xhh9FObhP#%82NL8Yy8u~752^A_6*tR z^3q}DDq~^IbCH7rp?|E;H5IM3Q|`VEYl)d|CI1|M6B6tFDV@LeqI= z^MnRl$w~=+?jw%EzlY$xO^LZwgdLLA?Pl6}Gl=nt!veFs7EFi^I(*Nu`PXVtzJ^IWeV|;I{l3$?V@GXHT`dcxeCC~$#7v^i z5nh_OBn}Xt_{<0b!Ig$$ASCR%YW0=iLE-AQhwVNMxA+Y0!%<}v*FxV1IHw-Gf#G&K_0 z_y}H1N9SeHkHbZSJdWAy4**O|oX`d=H@5nW zo55sFIg zogyc=_spDe{RH=%IX*AsCzR2@JA)hb6PS=^8|qrBg>EVfDxX{9dIyM|uhYbe*dPo# zJ+&>S@L+*cF%IttBWGhi(6xVkcL{UN46sWhC zKEYvd+GfnnR^x_5)e8EW)cgadnw*ai9?!QT- z3`t*Uk=x5Ex49bC+7kE>)jrTS<2lCkpe19b^H*mY%)j!wif0Y<9G!q zKFPR8N6vb-)$hOCD`#`uXq=O1T?gAxjc%E*-qFWkVADS?KnSrb-1n^)E<&kh83FO% zEUbTF(g2@rW<&>;$r<_VLIE>Gj_Hr}^s=WvaVu6$f?P8vv$Hnm-OVTaGR(n3Fe*rx zG%bHtdYp{Q5qeZ8g?=z;gpBk%MOsUX^pG97TquDxd$>eMzERt%0Es{;F~!Fk5Y4!( zKjNrOl!_PrYySa8?tQCX3TjMxWuHkHYKz?DB3%eyUWwdaKbHGA>=b@5J(WAEnohpv zZr3Vgm8YIIjV4YCNn)1*aN!|u1H70kTEE3vFePX+0s-Tg(@=Jg^jx)`@rt`GQURHqRPHcy~ zaFlzzNAuJmb9?njLCE;;{*?+&X(ifw{{Ov#|G^`SlppYwf-%Hi!{&?sD1!FZE>;be H*yO(f+tgqm literal 0 HcmV?d00001 diff --git a/rustdesk-server/dfwebos-app.yml b/rustdesk-server/dfwebos-app.yml new file mode 100644 index 0000000..53dc747 --- /dev/null +++ b/rustdesk-server/dfwebos-app.yml @@ -0,0 +1,42 @@ +manifestVersion: 1.1 +id: rustdesk-server +name: RustDesk Server +tagline: БыстроС ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа +category: networking +version: "1.1.15" +port: 21080 +description: >- + RustDesk β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ ΠΈ бСзопасноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ. Он прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΠΈΠΌ инструмСнтам ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ TeamViewer ΠΈ AnyDesk, Π½ΠΎ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ прСимущСством ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠ΄, ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π½Π° своих собствСнных сСрвСрах. Π­Ρ‚ΠΎ обСспСчиваСт больший ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ срСдой ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа ΠΈ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС соСдинСния ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Π»Π°Π΄Π΅Π΅Ρ‚ ΠΈΠ»ΠΈ управляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° стороннСго поставщика. + + + RustDesk создан с использованиСм Rust, языка систСмного программирования, извСстного своСй ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ памяти. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π»Π΅Π³ΠΊΠΎΠ΅ ΠΈ простоС Π² использовании, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ доступ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ столу доступным ΠΊΠ°ΠΊ для тСхничСских, Ρ‚Π°ΠΊ ΠΈ для нСтСхничСских ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ с устройств Windows, macOS, Linux, iOS ΠΈ Android для управлСния ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. RustDesk ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Ρ„Π°ΠΉΠ»ΠΎΠ², синхронизация Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈ совмСстноС использованиС экрана, обСспСчивая удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½ΡƒΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… мСст. + + + Одним ΠΈΠ· основных прСимущСств RustDesk являСтся Π΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½Π΅ полагаясь Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ сСрвСры. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для удобства ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ сСрвис, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ инфраструктуру, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ своих ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… сСансов. Благодаря этому Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами, Ρ‡Ρ‚ΠΎ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΡ† ΠΈΠ»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π΄Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. + + + Π’ Ρ†Π΅Π»ΠΎΠΌ, RustDesk прСдставляСт собой ΠΌΠΎΡ‰Π½ΡƒΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола. Π•Π³ΠΎ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния ΠΈ высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для всСх, ΠΊΡ‚ΠΎ ΠΈΡ‰Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅, бСзопасноС ΠΈ настраиваСмоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола. +developer: RustDesk Team +website: https://rustdesk.com +submitter: Knufle +submission: https://github.com/getumbrel/dfwebos-apps/pull/2411 +repo: https://github.com/rustdesk/rustdesk-server +support: https://github.com/rustdesk/rustdesk/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "" +defaultPassword: "" +dependencies: [] +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ исправлСний: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° адрСса ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи. + - Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½Π° пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° запуска Π±Π΅Π· root-ΠΏΡ€Π°Π² + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция рСгистрации ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ для использования с Ρ‚Π°ΠΊΠΈΠΌΠΈ инструмСнтами бСзопасности, ΠΊΠ°ΠΊ Fail2ban. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ запрос ΠΆΡƒΡ€Π½Π°Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/rustdesk/rustdesk-server/releases. +path: "" diff --git a/rustdesk-server/docker-compose.yml b/rustdesk-server/docker-compose.yml new file mode 100644 index 0000000..e6ec018 --- /dev/null +++ b/rustdesk-server/docker-compose.yml @@ -0,0 +1,41 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: rustdesk-server_web_1 + APP_PORT: 80 + + hbbs: + container_name: hbbs + image: rustdesk/rustdesk-server:1.1.15@sha256:10818ec05b179039c6660f4d8e74b303f0db2858bbad2b18e24992ea22d54cd6 + ports: + - 21115:21115 + - 21116:21116 + - 21116:21116/udp + - 21118:21118 + command: hbbs + volumes: + - ${APP_DATA_DIR}/data/hbbs:/root + network_mode: "host" + depends_on: + - hbbr + restart: on-failure + + hbbr: + container_name: hbbr + image: rustdesk/rustdesk-server:1.1.15@sha256:10818ec05b179039c6660f4d8e74b303f0db2858bbad2b18e24992ea22d54cd6 + ports: + - 21117:21117 + - 21119:21119 + command: hbbr + volumes: + - ${APP_DATA_DIR}/data/hbbr:/root + network_mode: "host" + restart: on-failure + + web: + image: nginx:1.27@sha256:124b44bfc9ccd1f3cedf4b592d4d1e8bddb78b51ec2ed5056c52d3692baebc19 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/www:/usr/share/nginx/html:ro diff --git a/rustdesk-server/hooks/post-start b/rustdesk-server/hooks/post-start new file mode 100755 index 0000000..ae67549 --- /dev/null +++ b/rustdesk-server/hooks/post-start @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ скрипт позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ RustDesk Π² Π²Π΅Π±-интСрфСйсС. + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")"/..)" +PUBLIC_KEY_FILE="${APP_DATA_DIR}/data/hbbs/id_ed25519.pub" +DESTINATION_FILE="${APP_DATA_DIR}/data/www/public_key.txt" + +echo "Waiting for file (${PUBLIC_KEY_FILE}) to exist..." + +# ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ Π΄ΠΎ 30 сСкунд... +for attempt in $(seq 1 300); do + if [[ -f "${PUBLIC_KEY_FILE}" ]]; then + echo "public key file exists" + # Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² Ρ„Π°ΠΉΠ» назначСния. + cp "${PUBLIC_KEY_FILE}" "${DESTINATION_FILE}" + break + fi + sleep 0.1 +done diff --git a/rusty-kaspad/data/.gitkeep b/rusty-kaspad/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/rusty-kaspad/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/rusty-kaspad/data/app/.gitkeep b/rusty-kaspad/data/app/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/rusty-kaspad/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/rusty-kaspad/dfwebos-app.yml b/rusty-kaspad/dfwebos-app.yml new file mode 100644 index 0000000..76774f8 --- /dev/null +++ b/rusty-kaspad/dfwebos-app.yml @@ -0,0 +1,50 @@ +manifestVersion: 1 +id: rusty-kaspad +category: crypto +name: Rusty Kaspad +version: "v1.1.0-1" +tagline: РСализация ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Kaspa Π½Π° Rust. +description: | + Rusty Kaspad β€” это рСализация ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Kaspa Π½Π° Rust. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΡƒΠ·Π»Π° прСдоставляСт основныС сСтСвыС слуТбы Kaspa, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ RPC. + + Kaspa β€” это ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡŽΡ‚Π° PoW с ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ BlockDAG. + + Π‘Π°ΠΌΠΎΠ΅ сСрдцС ΠšΠ°ΡΠΏΡ‹ β€” это ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой ΡƒΠ·Π΅Π» общСдоступным, ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΠ² TCP-ΠΏΠΎΡ€Ρ‚ 16111 Π½Π° вашСм брандмауэрС Π½Π° IP-адрСс вашСго ΡƒΠ·Π»Π° DFWebOS для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сСти. + + Π­Ρ‚ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Docker, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ [supertypo](https://hub.docker.com/r/kaspanet/rusty-kaspad), Π½Π° основС [Rusty Kaspa](https://github.com/kaspanet/rusty-kaspa). + + Π£ΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΎ для DFWebOS Π›ΡŽΠΊΠΎΠΌ Π”Π°Π½ΡˆΠΈ (https://dunshea.au). +developer: Kaspa Community +website: https://github.com/kaspanet/rusty-kaspa +repo: https://github.com/kaspanet/rusty-kaspa +support: https://github.com/elldeeone/dfwebos-community-app-store/pulls +port: 4321 +dependencies: [] +path: "" +gallery: + - 1.jpg + - 2.jpg +releaseNotes: >- + ⚠️ Π’ этом выпускС схСма Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… обновляСтся Π΄ΠΎ вСрсии 6. Для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΡƒΠ·Π»Π° послС обновлСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска: + - Новый VSPC API v2 (Β«GetVirtualChainFromBlockV2Β») ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ Kaspa, возвращая обновлСния Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΈ принятыС Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π·Π° ΠΎΠ΄ΠΈΠ½ Π²Ρ‹Π·ΠΎΠ². + - Π‘ΠΎΠ»Π΅Π΅ быстрая ΠΈ надСТная ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ синхронизация ΠΈ восстановлСниС с Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½Ρ‹ΠΌ восстановлСниСм Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях. + - Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 3 Ρ€Π°Π·Π° Π±ΠΎΠ»Π΅Π΅ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π° этапС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…. + - МСньшСС использованиС памяти, сокращСниС Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° запись ΠΈ Π±ΠΎΠ»Π΅Π΅ быстрая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° систСма прСдустановок RocksDB для сцСнариСв использования Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² ΠΈ ТСстких дисков с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² WAL ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ кэша. + - БобствСнный мост Rusty Kaspa Stratum Bridge Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ ΠΊΠ°ΠΊ БЕВА + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/kaspanet/rusty-kaspa/releases. + + + ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Буффикс Β«-1Β» Π² этой вСрсии прилоТСния DFWebOS ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π²Π΅Ρ€ΡΠΈΡŽ интСрфСйса/Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Π½Π΅ являСтся Π½ΠΎΠ²ΠΎΠΉ вСрсиСй ΡƒΠ·Π»Π° Rusty Kaspa. + + Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… старых установках это ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ синхронизации ΡƒΠ·Π»Π°. +submitter: Luke Dunshea +submission: https://github.com/getumbrel/dfwebos-apps/pull/2060 +backupIgnore: + - data/app/* diff --git a/rusty-kaspad/docker-compose.yml b/rusty-kaspad/docker-compose.yml new file mode 100644 index 0000000..7ffdec4 --- /dev/null +++ b/rusty-kaspad/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: rusty-kaspad_frontend_1 + APP_PORT: 4321 + + frontend: + image: elldee/kaspa-frontend:v0.4.1@sha256:a77573dfbc706b632ba24b9087685dc0b44d588c60b5399e2c2df2a19bd38a93 + restart: on-failure + stop_grace_period: 1m + depends_on: + - kaspad + + kaspad: + image: kaspanet/rusty-kaspad:v1.1.0@sha256:150ffa0c0dcc6497951f9199d1ba3e48c7d91ef958846b28c9fb5045459a2dca + restart: on-failure + stop_grace_period: 3m + volumes: + - ${APP_DATA_DIR}/data/app:/app/data + ports: + - 16110:16110 # GRPC + - 16111:16111 # P2P + - 17110:17110 # WRPC (Borsh) + - 18110:18110 # WRPC (JSON) diff --git a/sabnzbd/data/config/.gitkeep b/sabnzbd/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sabnzbd/dfwebos-app.yml b/sabnzbd/dfwebos-app.yml new file mode 100644 index 0000000..088f446 --- /dev/null +++ b/sabnzbd/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1.1 +id: sabnzbd +category: networking +name: SABnzbd +version: "4.5.5" +tagline: Автоматизированный инструмСнт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Usenet +description: >- + SABnzbd Π΄Π΅Π»Π°Π΅Ρ‚ Usenet максимально простым ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, автоматизируя всС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ. ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» .nzb. + SABnzbd Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Ρ‚ΡƒΠ΄Π°, Π³Π΄Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½, исправлСн, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ ΠΈ сохранСн Π±Π΅Π· участия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. + SABnzbd ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ простой мастСр настройки ΠΈ инструмСнты самоанализа для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ вашСй настройки. + + + Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΉΡ‚ΠΈ Π½Π° наш сайт: https://sabnzbd.org.. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + + SABnzbd Π½Π° DFWebOS настроСн для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π΅Π· нСобходимости ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки. Он Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ зависимым прилоТСниям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Radarr, Sonarr, Lidarr, Readarr ΠΈ Prowlarr. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Π΅ прилоТСния ΠΈΠ· DFWebOS App Store, ΠΈ всС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· сбоСв. + + + Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, настроСнныС ΠΏΡ€ΠΈ установкС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, пСрСйдя Π² Ρ€Π°Π·Π΄Π΅Π» Β«ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈΒ» Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ настроСк SABnzbd. + Если Π²Ρ‹ это сдСлаСтС, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°ΡˆΠΈΡ… прилоТСниях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Sonarr ΠΈ Radarr, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ соотвСтствовали Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ настроили Π² SABnzbd, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вмСстС. + + Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ API для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Sonarr ΠΈ Radarr, пСрСйдя Π² Ρ€Π°Π·Π΄Π΅Π» Β«ΠžΠ±Ρ‰ΠΈΠ΅Β» Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ SABnzbd. +developer: sabnzbd +website: https://sabnzbd.org/ +dependencies: [] +repo: https://github.com/sabnzbd/sabnzbd +support: https://forums.sabnzbd.org/ +port: 9876 +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/sabnzbd/sabnzbd/releases. +permissions: + - STORAGE_DOWNLOADS + - GPU +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: Parth Jadhav +submission: https://github.com/getumbrel/dfwebos-apps/pull/810 diff --git a/sabnzbd/docker-compose.yml b/sabnzbd/docker-compose.yml new file mode 100644 index 0000000..282376b --- /dev/null +++ b/sabnzbd/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: sabnzbd_web_1 + APP_PORT: 8080 + PROXY_AUTH_WHITELIST: "/api*" + + web: + image: linuxserver/sabnzbd:4.5.5@sha256:37fc318dc632106eac00f096661f43ca513793bf51913bcbd989ba921b3409c8 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + environment: + - DOCKER_MODS=linuxserver/mods:universal-package-install + - INSTALL_PACKAGES=ffmpeg + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC diff --git a/sabnzbd/hooks/post-install b/sabnzbd/hooks/post-install new file mode 100755 index 0000000..a62acdc --- /dev/null +++ b/sabnzbd/hooks/post-install @@ -0,0 +1,131 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ скрипт Π΄Π΅Π»Π°Π΅Ρ‚ 3 основныС Π²Π΅Ρ‰ΠΈ: +# 1. УстанавливаСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° /downloads/incomplete ΠΈ /downloads/complete соотвСтствСнно. +# 2. НастраиваСт ini-Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ прилоТСния *arr ΠΌΠΎΠ³Π»ΠΈ автоматичСски Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ SABnzbd. +# 3. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚ всС установлСнныС прилоТСния *arr, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ. + +# ΠŸΠ΅Ρ€Π΅Π΄ запуском мастСра установки ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² ini-Ρ„Π°ΠΉΠ» прилоТСния SABnzbd, Π½Π΅ бСспокоясь ΠΎ сохранСнии ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. + +# 1. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ имя ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° SABnzbd Π² host_whitelist Π² ini-Ρ„Π°ΠΉΠ»Π΅ прилоТСния SABnzbd: +# host_whitelist = <всС, Ρ‡Ρ‚ΠΎ здСсь установлСно ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ>, sabnzbd_web_1 + +# 2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² INI-Ρ„Π°ΠΉΠ» прилоТСния SABnzbd для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния arr. + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +SABNZBD_CONF_FILE="${APP_DATA_DIR}/data/config/sabnzbd.ini" + +# ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ Π΄ΠΎ 30 сСкунд, ΠΏΠΎΠΊΠ° Ρ„Π°ΠΉΠ» sabnzbd.conf появится. +echo "Waiting up to 30 seconds for sabnzbd.ini file to exist..." +for attempt in $(seq 1 300); do + if [[ -f "${SABNZBD_CONF_FILE}" ]]; then + echo "sabnzbd.ini file exists" + break + fi + sleep 0.1 +done + +if [[ ! -f "${SABNZBD_CONF_FILE}" ]]; then + echo "sabnzbd.ini was never created. Something is likely wrong with the SABnzbd app." + exit +fi + +# ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ 5 сСкунд, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ записан слуТбой SABnzbd. +echo "Waiting 5 seconds for sabnzbd.ini file to be fully written..." +sleep 5 + +# ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ слуТбу SABnzbd +echo "Stopping SABnzbd..." +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" stop web + +# ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ +echo "Overwriting download_dir and complete_dir in sabnzbd.ini" +sed -i 's/download_dir = Downloads\/incomplete/download_dir = \/downloads\/incomplete/' "${SABNZBD_CONF_FILE}" +sed -i 's/complete_dir = Downloads\/complete/complete_dir = \/downloads\/complete/' "${SABNZBD_CONF_FILE}" + +# Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ имя ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° SABnzbd Π² host_whitelist Π² ini-Ρ„Π°ΠΉΠ»Π΅ прилоТСния SABnzbd. +echo "Adding SABnzbd container name to host_whitelist in sabnzbd.ini" +if grep -q '^host_whitelist =' "${SABNZBD_CONF_FILE}"; then + sed -i 's/^host_whitelist = \(.*\)/host_whitelist = \1 sabnzbd_web_1,/' "${SABNZBD_CONF_FILE}" +else + sed -i '/^\[misc\]/a host_whitelist = sabnzbd_web_1,' "${SABNZBD_CONF_FILE}" +fi + +# Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² ini-Ρ„Π°ΠΉΠ» прилоТСния SABnzbd. +# ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ это, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ прилоТСния *arr Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ присутствовали Π² ini-Ρ„Π°ΠΉΠ»Π΅ прилоТСния SABnzbd для автоматичСской настройки SABnzbd. + +categories_content=$(cat << 'EOF' +[categories] +[[*]] +name = * +order = 0 +pp = 3 +script = None +dir = +newzbin = +priority = 0 +[[movies]] +name = movies +order = 0 +pp = +script = Default +dir = /downloads/movies +newzbin = movies +priority = 0 +[[prowlarr-fallback]] +name = prowlarr-fallback +order = 0 +pp = +script = Default +dir = /downloads +newzbin = +priority = -100 +[[books]] +name = books +order = 0 +pp = +script = Default +dir = /downloads/books +newzbin = books +priority = -100 +[[shows]] +name = shows +order = 0 +pp = +script = Default +dir = /downloads/shows +newzbin = shows +priority = 0 +[[music]] +name = music +order = 0 +pp = +script = Default +dir = /downloads/music +newzbin = music +priority = 0 +EOF +) + +# Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² ini-Ρ„Π°ΠΉΠ» +echo "$categories_content" >> "$SABNZBD_CONF_FILE" + +echo "Appended [categories] section with subheaders to $SABNZBD_CONF_FILE" + +# ЗапуститС слуТбу SABnzbd. +echo "Starting SABnzbd..." +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" start web + +# ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ прилоТСния *arr, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ настройку. +apps=("radarr" "sonarr" "lidarr" "readarr" "prowlarr") + +installed_apps=$("${DFWEBOS_ROOT}/scripts/app" ls-installed) + +for app in "${apps[@]}"; do + if echo "$installed_apps" | grep --quiet "$app"; then + # ΠœΡ‹ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌ скрипт ΠΏΡ€ΠΈ пСрСзапускС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ всС прилоТСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. + # AND Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ SABnzbd отобраТался Π² спискС установлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ пСрСзапускС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + "${DFWEBOS_ROOT}/scripts/app" restart "$app" & + fi +done \ No newline at end of file diff --git a/saifa/data/app/.gitkeep b/saifa/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/saifa/data/redis_data/.gitkeep b/saifa/data/redis_data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/saifa/dfwebos-app.yml b/saifa/dfwebos-app.yml new file mode 100644 index 0000000..4e8e5a0 --- /dev/null +++ b/saifa/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1 +id: saifa +category: bitcoin +name: Saifa +version: "1.0.0" +tagline: Lightning сСтСвой ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ счСтов +description: >- + Saifa Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ совмСстимости ΠΈ эффСктивности ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… с сСтСвым Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ Lightning (LND). + + + Наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ процСсс ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, позволяя прилоТСниям бСспрСпятствСнно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ LND Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚Π½ΡƒΡŽ систСму Π²Π΅Π±-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². + + + Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Saifa ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ счСта, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ простой REST API, ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ счСта ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ обновлСния ΠΎ статусС счСтов Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + + + Π­Ρ‚Π° систСма создана для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ обСспСчСния Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ провСдСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² сСти Lightning, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ инструмСнтом для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², стрСмящихся ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои прилоТСния для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ удовлСтворСнности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. +releaseNotes: "" +developer: patra nakamo +website: https://github.com/patranakamo +dependencies: + - bitcoin + - lightning +repo: https://github.com/patranakamo/saifa-be +support: https://github.com/patranakamo/saifa-be/issues +port: 9989 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultUsername: "" +deterministicPassword: true +submitter: patra nakamo +torOnly: false +submission: https://github.com/getumbrel/umbrel/pull/1021 diff --git a/saifa/docker-compose.yml b/saifa/docker-compose.yml new file mode 100644 index 0000000..5765438 --- /dev/null +++ b/saifa/docker-compose.yml @@ -0,0 +1,40 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: saifa_frontend_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + backend: + image: patranakamo/saifa-be:v1.3.3@sha256:a04bbaba219b35d7bb59426665ae813ad2d219cb1b2e0eceed1c79170ede6228 + restart: on-failure + stop_grace_period: 1m + ports: + - "9988:80" + volumes: + - ${APP_DATA_DIR}/data/app:/data + - ${APP_LIGHTNING_NODE_DATA_DIR}:/var/www/html/lnd:ro + depends_on: + - redis + environment: + HOME: /data + APP_PASSWORD: $APP_PASSWORD + BITCOIN_NETWORK: $APP_BITCOIN_NETWORK + LN_SERVER_URL: "https://$LND_IP:$LND_REST_PORT" + REDIS_HOST: saifa_redis_1 + + frontend: + image: patranakamo/saifa-fe:v1.3.2@sha256:06ab9f0246e77a63a102111d00e2da7dfe1a94ed21032e56dbdc63dded9717bc + restart: on-failure + depends_on: + - backend + + redis: + image: redis:7.2.4@sha256:f14f42fc7e824b93c0e2fe3cdf42f68197ee0311c3d2e0235be37480b2e208e6 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/redis_data:/data/redis_data + environment: + HOME: /data/redis_data diff --git a/samba/data/samba/smb.conf b/samba/data/samba/smb.conf new file mode 100644 index 0000000..83610d6 --- /dev/null +++ b/samba/data/samba/smb.conf @@ -0,0 +1,19 @@ +[global] + security = user + server min protocol = SMB2 + + # ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ услуги ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ + load printers = no + printing = bsd + printcap name = /dev/null + disable spoolss = yes + +[storage] + path = /storage + comment = Shared + valid users = @smb + browseable = yes + writable = yes + read only = no + force user = dfwebos + force group = smb \ No newline at end of file diff --git a/samba/dfwebos-app.yml b/samba/dfwebos-app.yml new file mode 100644 index 0000000..e12f727 --- /dev/null +++ b/samba/dfwebos-app.yml @@ -0,0 +1,50 @@ +manifestVersion: 1.2 +id: samba +name: Samba +tagline: Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ своС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ доступным с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Samba +category: networking +version: "4.23.5-r1" +port: 9445 +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Samba Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ ΠΈΠ· DFWebOS App Store, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±ΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ встроСн Π² DFWebOS. + + πŸ“‚ УпроститС ΠΎΠ±ΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Samba! + + Samba β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… устройствах Π² сСти. Π­Ρ‚ΠΎ позволяСт Π²Π°ΡˆΠ΅ΠΌΡƒ устройству DFWebOS бСспрСпятствСнно ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ с Windows, macOS, Linux ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ систСмами. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, прСдоставляСтС Π»ΠΈ Π²Ρ‹ ΠΎΠ±Ρ‰ΠΈΠΉ доступ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ, ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈΠ»ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΌ копиям, Samba Π΄Π΅Π»Π°Π΅Ρ‚ это простым ΠΈ бСзопасным. + + + πŸ“„ Π›Π΅Π³ΠΊΠΈΠΉ доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ + + ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ Π½Π° вашСм устройствС DFWebOS ΠΈ управляйтС ΠΈΠΌΠΈ с любого ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π² вашСй сСти. ΠŸΠΎΠΏΡ€ΠΎΡ‰Π°ΠΉΡ‚Π΅ΡΡŒ со слоТным доступом SSH! + + + πŸ–₯️ ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ + + Samba Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со всСми основными ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Windows, macOS ΠΈ Linux. Π”Π΅Π»ΠΈΡ‚Π΅ΡΡŒ своими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π½Π΅ бСспокоясь ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… совмСстимости. + + + πŸ›‘οΈΠ‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈ НадСТно + + Samba обСспСчиваСт бСзопасный ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ 30 Π»Π΅Ρ‚. Π”ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ΡΡŒ Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваши Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ Π² бСзопасности ΠΈ доступны. +developer: Samba +website: https://www.samba.org/ +submitter: JoΓ£o Victor +permissions: + - STORAGE_DOWNLOADS +submission: https://github.com/getumbrel/dfwebos-apps/pull/1161 +repo: https://github.com/dockur/samba +support: https://github.com/dockur/samba/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ слуТбы ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Samba. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/dockur/samba/releases/tag/v4.23.5-r1. +dependencies: [] +path: "" +defaultUsername: "dfwebos" +deterministicPassword: true +disabled: true diff --git a/samba/docker-compose.yml b/samba/docker-compose.yml new file mode 100644 index 0000000..cb8ddc6 --- /dev/null +++ b/samba/docker-compose.yml @@ -0,0 +1,28 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: samba_homepage_1 + APP_PORT: 80 + + homepage: + image: loficafe/static-web-server-samba:1.0.1@sha256:783667f052d9535bb75946ff9bc807989b041e25437ef10c30b291589d041e6e + restart: on-failure + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/samba/smb.conf:/public/smb.conf:ro + + server: + image: dockurr/samba:4.23.5@sha256:63428d1cb6c1ace60cfa782c1d6c9e4b3686044fc47600c97055e6b62e9bb5fa + restart: on-failure + environment: + USER: dfwebos + PASS: ${APP_PASSWORD} + UID: 1000 + GID: 1000 + ports: + - '446:445' + volumes: + - ${APP_DATA_DIR}/data/samba/smb.conf:/etc/samba/smb.conf + - ${DFWEBOS_ROOT}/data/storage:/storage diff --git a/samourai-server/dfwebos-app.yml b/samourai-server/dfwebos-app.yml new file mode 100644 index 0000000..ae0df15 --- /dev/null +++ b/samourai-server/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1.1 +id: samourai-server +category: bitcoin +name: Samourai Server +version: "1.16.1-hotfix-4" +tagline: Π’Π°Ρˆ Π»ΠΈΡ‡Π½Ρ‹ΠΉ сСрвСр ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ для Samourai Wallet +description: >- + ⚠️ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Whirlpool большС Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ·-Π·Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π° Whirlpool Samourai. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Dojo Π½Π΅ пострадаСт. + + + Samourai Server β€” эксклюзивноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DFWebOS, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Samourai Dojo. + ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ сСрвСры Whirlpool, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт простыС ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ инструкции. + Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ свой кошСлСк Samourai. КошСлСк Samourai Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ сСбС Ρ€Π°Π²Π½Ρ‹Ρ… + ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Π½ΠΎ Π΅Π³ΠΎ конфигурация ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ зависит ΠΎΡ‚ сСти. + ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Samourai Wallet ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ своСму Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ управляСмому Dojo, располоТСнному Π² Исландии. РазмСстив собствСнный сСрвСр Samourai, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π΅Π³ΠΎ сСрвСры ΠΏΡ€ΠΈ использовании Samourai Wallet ΠΈΠ»ΠΈ Sentinel ΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ слоТностСй ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ финансовый сувСрСнитСт. + + + ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Whirlpool CLI v0.10.15. +developer: Samourai +website: https://samouraiwallet.com +dependencies: + - bitcoin + - electrs +repo: https://github.com/louneskmt/dfwebos-samourai-dojo/tree/v1.16.1-dfwebos +support: https://t.me/SamouraiWallet +port: 3021 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ исправляСт ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сСрвСр Samourai Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Bitcoin Core v28.0. + + + ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ функция Whirlpool большС Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ·-Π·Π° закрытия ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π° Whirlpool Samourai. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Dojo Π½Π΅ пострадаСт. +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/pull/461 \ No newline at end of file diff --git a/samourai-server/docker-compose.yml b/samourai-server/docker-compose.yml new file mode 100644 index 0000000..5dc9f2f --- /dev/null +++ b/samourai-server/docker-compose.yml @@ -0,0 +1,157 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_SAMOURAI_SERVER_IP + APP_PORT: 8081 + PROXY_AUTH_ADD: "false" + db: + image: louneskmt/dojo-db:1.5.0-low-mem@sha256:5af4f90818d55360e572033fcc493cd945143e7a3aaef91fa7e102f3c66c7a5b + init: true + restart: on-failure + stop_grace_period: 5m + user: "1000:1000" + environment: + MYSQL_DATABASE: samourai-main + MYSQL_ROOT_PASSWORD: rootpassword + MYSQL_USER: samourai + MYSQL_PASSWORD: password + volumes: + - ${APP_DATA_DIR}/mysql/data:/var/lib/mysql + networks: + default: + ipv4_address: $APP_SAMOURAI_SERVER_DB_IP + + node: + # image: louneskmt/dojo-nodejs:1.16.1@sha256:49de92774ecfcb88af1dc67f8d498641d750c4ec9acaab3c448d70c4f2d4bfe7 + image: nmfretz/dojo-nodejs:1.16.1-rpcfix@sha256:bd047ed34e04b605c662c94ed5819322c0db65b6e3425acd3607486ef28a83ce + init: true + restart: on-failure + command: "/home/node/app/wait-for-it.sh ${APP_SAMOURAI_SERVER_DB_IP}:3306 --timeout=720 --strict -- /home/node/app/restart.sh" + user: "1000:1000" + environment: + # Π“Π›ΠžΠ‘ΠΠ›Π¬ΠΠ«Π™ + COMMON_BTC_NETWORK: $APP_BITCOIN_NETWORK + DOJO_VERSION_TAG: 1.16.1 + NET_DOJO_TOR_IPV4: $TOR_PROXY_IP + TOR_SOCKS_PORT: $TOR_PROXY_PORT + NET_DOJO_MYSQL_IPV4: $APP_SAMOURAI_SERVER_DB_IP + + # MySQL + MYSQL_DATABASE: samourai-main + MYSQL_USER: samourai + MYSQL_PASSWORD: password + + # ΠΠžΠ”Π•Π–Π‘ + NODE_GAP_EXTERNAL: 100 + NODE_GAP_INTERNAL: 100 + NODE_ADDR_FILTER_THRESHOLD: 1000 + NODE_ADDR_DERIVATION_MIN_CHILD: 2 + NODE_ADDR_DERIVATION_MAX_CHILD: 2 + NODE_ADDR_DERIVATION_THRESHOLD: 10 + NODE_TXS_SCHED_MAX_ENTRIES: 10 + NODE_TXS_SCHED_MAX_DELTA_HEIGHT: 18 + NODE_JWT_ACCESS_EXPIRES: 900 + NODE_JWT_REFRESH_EXPIRES: 7200 + NODE_PREFIX_STATUS: status + NODE_PREFIX_SUPPORT: support + NODE_PREFIX_STATUS_PUSHTX: status + NODE_TRACKER_MEMPOOL_PERIOD: 10000 + NODE_TRACKER_UNCONF_TXS_PERIOD: 300000 + NODE_ACTIVE_INDEXER: local_indexer + NODE_FEE_TYPE: ECONOMICAL + + # Π‘Π•Π—ΠžΠŸΠΠ‘ΠΠžΠ‘Π’Π¬ + NODE_API_KEY: $APP_SAMOURAI_SERVER_NODE_API_KEY + NODE_ADMIN_KEY: $APP_SAMOURAI_SERVER_NODE_ADMIN_KEY + NODE_JWT_SECRET: $APP_SAMOURAI_SERVER_NODE_JWT_SECRET + + # Π‘Π˜Π’ΠšΠžΠ˜Π + BITCOIND_IP: $APP_BITCOIN_NODE_IP + BITCOIND_RPC_PORT: $APP_BITCOIN_RPC_PORT + BITCOIND_RPC_USER: $APP_BITCOIN_RPC_USER + BITCOIND_RPC_PASSWORD: $APP_BITCOIN_RPC_PASS + BITCOIND_ZMQ_RAWTXS: $APP_BITCOIN_ZMQ_RAWTX_PORT + BITCOIND_ZMQ_BLK_HASH: $APP_BITCOIN_ZMQ_HASHBLOCK_PORT + + # Π­ΠšΠ‘ΠŸΠ›ΠžΠ Π•Π  + EXPLORER_INSTALL: "off" + + # Π˜ΠΠ”Π•ΠšΠ‘Π•Π  + INDEXER_IP: $APP_ELECTRS_NODE_IP + INDEXER_RPC_PORT: $APP_ELECTRS_NODE_PORT + INDEXER_PROTOCOL: tcp + INDEXER_BATCH_SUPPORT: inactive # 'active' for ElectrumX, 'inactive' otherwise + depends_on: + - db + networks: + default: + ipv4_address: $APP_SAMOURAI_SERVER_NODE_IP + + whirlpool: + image: louneskmt/whirlpool:0.10.15@sha256:3b766327dfa4c2ae40f190c18afa1f3c9cb9101d7964049dc79bdcb89fd21a90 + init: true + restart: on-failure + user: "1000:1000" + command: + - "--listen" + - "--cli.apiKey=$APP_SAMOURAI_SERVER_WHIRLPOOL_API_KEY" + - "--cli.api.http-enable=true" + - "--cli.api.http-port=$APP_SAMOURAI_SERVER_WHIRLPOOL_PORT" + - "--cli.tor=true" + - "--cli.torConfig.coordinator.enabled=true" + - "--cli.torConfig.coordinator.onion=true" + - "--cli.torConfig.backend.enabled=false" + - "--cli.torConfig.backend.onion=false" + - "--cli.mix.liquidityClient=true" + - "--cli.mix.clientsPerPool=1" + - "--resync" + environment: + WHIRLPOOL_BITCOIN_NETWORK: $APP_BITCOIN_NETWORK + WHIRLPOOL_DOJO: "on" + WHIRLPOOL_DOJO_IP: $APP_SAMOURAI_SERVER_IP + depends_on: + - node + volumes: + - ${APP_DATA_DIR}/whirlpool:/home/whirlpool/.whirlpool-cli + networks: + default: + ipv4_address: $APP_SAMOURAI_SERVER_WHIRLPOOL_IP + + nginx: + image: nginx:1.21-alpine@sha256:686aac2769fd6e7bab67663fd38750c135b72d993d0bb0a942ab02ef647fc9c3 + init: true + restart: on-failure + command: /bin/sh -c "envsubst < /var/www/connect/js/conf.template.js > /var/www/connect/js/conf.js && /wait-for node:8080 --timeout=720 -- nginx" + volumes: + - ${APP_DATA_DIR}/nginx/wait-for:/wait-for + - ${APP_DATA_DIR}/nginx/nginx.conf:/etc/nginx/nginx.conf + - ${APP_DATA_DIR}/nginx/${APP_BITCOIN_NETWORK}.conf:/etc/nginx/sites-enabled/dojo.conf + - ${APP_DATA_DIR}/nginx/connect.conf:/etc/nginx/sites-enabled/connect.conf + - ${APP_DATA_DIR}/nginx/connect:/var/www/connect + environment: + COMMON_BTC_NETWORK: $APP_BITCOIN_NETWORK + DOJO_LOCAL_PORT: $APP_SAMOURAI_SERVER_DOJO_PORT + DOJO_HIDDEN_SERVICE: $APP_SAMOURAI_SERVER_DOJO_HIDDEN_SERVICE + WHIRLPOOL_HIDDEN_SERVICE: $APP_SAMOURAI_SERVER_WHIRLPOOL_HIDDEN_SERVICE + NODE_PREFIX_SUPPORT: support + NODE_ADMIN_KEY: $APP_SAMOURAI_SERVER_NODE_ADMIN_KEY + WHIRLPOOL_API_KEY: $APP_SAMOURAI_SERVER_WHIRLPOOL_API_KEY + ports: + - "$APP_SAMOURAI_SERVER_DOJO_PORT:80" + depends_on: + - node + networks: + default: + ipv4_address: $APP_SAMOURAI_SERVER_IP + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" diff --git a/samourai-server/exports.sh b/samourai-server/exports.sh new file mode 100644 index 0000000..e82785e --- /dev/null +++ b/samourai-server/exports.sh @@ -0,0 +1,16 @@ +export APP_SAMOURAI_SERVER_IP="10.21.21.22" +export APP_SAMOURAI_SERVER_DOJO_PORT="3009" +export APP_SAMOURAI_SERVER_CONNECT_PORT="3005" +export APP_SAMOURAI_SERVER_WHIRLPOOL_IP="10.21.21.23" +export APP_SAMOURAI_SERVER_WHIRLPOOL_PORT="8898" +export APP_SAMOURAI_SERVER_DB_IP="10.21.21.24" +export APP_SAMOURAI_SERVER_NODE_IP="10.21.21.25" + +dojo_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-dojo/hostname" +whirlpool_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-whirlpool/hostname" +export APP_SAMOURAI_SERVER_DOJO_HIDDEN_SERVICE="$(cat "${dojo_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" +export APP_SAMOURAI_SERVER_WHIRLPOOL_HIDDEN_SERVICE="$(cat "${whirlpool_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" +export APP_SAMOURAI_SERVER_NODE_API_KEY=$(derive_entropy "env-${app_entropy_identifier}-NODE_API_KEY") +export APP_SAMOURAI_SERVER_NODE_ADMIN_KEY=$(derive_entropy "env-${app_entropy_identifier}-NODE_ADMIN_KEY") +export APP_SAMOURAI_SERVER_NODE_JWT_SECRET=$(derive_entropy "env-${app_entropy_identifier}-NODE_JWT_SECRET") +export APP_SAMOURAI_SERVER_WHIRLPOOL_API_KEY=$(derive_entropy "env-${app_entropy_identifier}-WHIRLPOOL_API_KEY") \ No newline at end of file diff --git a/samourai-server/hooks/pre-start b/samourai-server/hooks/pre-start new file mode 100755 index 0000000..ac8b08f --- /dev/null +++ b/samourai-server/hooks/pre-start @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ сСрвСра Samourai Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° скрытыС слуТбы Dojo ΠΈ Whirlpool Tor Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-dojo/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach nginx +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach whirlpool +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/samourai-server/mysql/data/.gitkeep b/samourai-server/mysql/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/samourai-server/nginx/connect.conf b/samourai-server/nginx/connect.conf new file mode 100644 index 0000000..7902bb8 --- /dev/null +++ b/samourai-server/nginx/connect.conf @@ -0,0 +1,22 @@ +# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ интСрфСйс +server { + listen 8081; + server_name _; + + root /var/www/connect; + index index.html; + + # ΠšΠΎΠ½Π΅Ρ‡Π½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° сопряТСния прокси с API Dojo + location /v2/support/pairing { + proxy_pass http://node:8080/support/pairing; + } + + location /test/v2/support/pairing { + proxy_pass http://node:8080/support/pairing; + } + + # БтатичСскиС Ρ„Π°ΠΉΠ»Ρ‹ Server Connect интСрфСйс + location / { + try_files $uri $uri/ =404; + } +} diff --git a/samourai-server/nginx/connect/css/normalize.css b/samourai-server/nginx/connect/css/normalize.css new file mode 100644 index 0000000..192eb9c --- /dev/null +++ b/samourai-server/nginx/connect/css/normalize.css @@ -0,0 +1,349 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/samourai-server/nginx/connect/css/style.css b/samourai-server/nginx/connect/css/style.css new file mode 100644 index 0000000..b582955 --- /dev/null +++ b/samourai-server/nginx/connect/css/style.css @@ -0,0 +1,143 @@ +body { + background-color: #1D1B1B; + font-family: system-ui,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,Segoe UI,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji; + color: #fff; +} + +*, h1, h2, h3, h4, h5, h6, p, span { + color: #fff; + font-size: 20px; + font-weight: normal; +} + +.success { + color: #63FB72; +} + +.text-muted { + opacity: 0.8; +} + +.text-small { + font-size: 14px; +} + +hr { + width: 100%; + height: 2px; + background: #2F2C2C; + border: none; +} + +.container { + padding: 40px; + max-width: 1440px; + margin: auto; +} + +.app-icon { + border-radius: 20px; +} + +.app { + display: flex; + margin: 20px 0 40px 0; +} + +.app > .app-icon { + flex-shrink: 0; + height: 140px; + width: 140px; + box-shadow: 0 0 40px 0 rgba(0,0,0,0.95); + margin-right: 24px; +} + +.app > .app-details > .app-status { + display: block; + font-size: 20px; + margin: 10px 0 0 0; +} + +.app > .app-details > .app-name { + font-size: 52px; + line-height: 52px; + font-weight: bold; + margin: 10px 0 0 0; +} + +.heading { + display: flex; +} + +.heading > .number { + flex-shrink: 0; + background: #C12525; + height: 66px; + width: 66px; + border-radius: 100%; + line-height: 66px; + text-align: center; + font-size: 36px; + font-weight: bold; + box-shadow: 0 0 20px 0 rgba(0,0,0,0.8); +} + +.heading > .text { + font-size: 52px; + line-height: 52px; + font-weight: bold; + display: inline-block; + margin: 5px 0 0 20px; +} + +.steps { + margin: 40px 0 0 9px; +} + +.steps > .step { + margin-bottom: 20px; + font-size: 20px; + font-weight: normal; +} + +.qr { + position: relative; + width: 260px; + height: 260px; + margin: 20px 0; +} + +.qr > .icon { + position: absolute; + top: 50%; + left: 50%; + transform: translate3d(-50%, -50%, 0); + height: 66px; + width: 66px; + background: #ffffff; +} + +.qr > .icon > img { + display: block; + width: 60px; + height: 60px; + margin: 3px 0 0 3px; + border-radius: 15%; +} + +.note { + margin-top: 30px; + background: #111010; + border-radius: 8px; + padding: 30px; + border: 2px dashed #3D3838; +} + +.note > .note-heading { + margin: 0 0 20px 0; + font-weight: 300; +} + +.note > .note-text { + word-wrap: break-word +} \ No newline at end of file diff --git a/samourai-server/nginx/connect/img/icon.svg b/samourai-server/nginx/connect/img/icon.svg new file mode 100644 index 0000000..2c93b5d --- /dev/null +++ b/samourai-server/nginx/connect/img/icon.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/samourai-server/nginx/connect/index.html b/samourai-server/nginx/connect/index.html new file mode 100644 index 0000000..39f737f --- /dev/null +++ b/samourai-server/nginx/connect/index.html @@ -0,0 +1,98 @@ + + + + + + + + Π‘Π΅Ρ€Π²Π΅Ρ€ Samourai + + + + + + + + +
+
+ +
+ ● Π—Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ +

Π‘Π΅Ρ€Π²Π΅Ρ€ Samourai

+
+
+

Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ инструкциям Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Dojo ΠΈ Whirlpool, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° вашСм DFWebOS, ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ + Samourai Wallet. +

+
+
+
+
+ 1 +

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Dojo

+
+
    +
  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Samourai Wallet Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅.
  2. +
  3. Если Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ кошСлСк, ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ всС срСдства Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ кошСлСк, + ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ кошСлСк Ρ‡Π΅Ρ€Π΅Π· Settings > Wallet > Secure Erase Wallet. Если кошСлСк Π΅Ρ‰Π΅ Π½Π΅ настроСн, пропуститС этот шаг.
  4. +
  5. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Mainnet.
  6. +
  7. НаТмитС Π½Π° мСню с трСмя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ β€œConnect to existing Dojo”.
  8. +
  9. НаТмитС β€œConnect to existing Dojo” ΠΈ отсканируйтС этот QR-ΠΊΠΎΠ΄: +
    +
    +
    + +
    +
    + + +
  10. +
  11. НаТмитС "Start New Wallet" ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ процСсс создания кошСлька.
  12. +
  13. Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Π’Π°Ρˆ Samourai Wallet Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· сСрвСр Dojo, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π° вашСм + DFWebOS. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Network Options, Π½Π°ΠΆΠ°Π² Π½Π° Π·Π½Π°Ρ‡ΠΎΠΊ, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° Wi‑Fi, Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части экрана, ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ β€œDojo Full Node” ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ зСлСная Ρ‚ΠΎΡ‡ΠΊΠ°).
  14. +
+
+
Для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
+

+ Если Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ доступ ΠΊ Dojo Maintenance Tool, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ здСсь. +

+

+ ΠšΠ»ΡŽΡ‡ администратора: +

+
+
+
+
+
+ 2 +

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Whirlpool

+
+
    +
  1. УстановитС Tor Π½Π° свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.
  2. +
  3. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΠΈ установитС Whirlpool GUI.
  4. +
  5. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅: β€œAdvanced: remote CLI”.
  6. +
  7. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ "" (Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ) Π² ΠΏΠΎΠ»Π΅ β€œCLI + address”.
  8. +
  9. ΠŸΡ€ΠΎΠΊΡΠΈ Tor Π΄ΠΎΠ»ΠΆΠ΅Π½ автоматичСски Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π½Π° β€œsocks5://127.0.0.1:9050”.
  10. +
  11. НаТмитС β€œConfigure API key?”.
  12. +
  13. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ "" (Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ) Π² ΠΏΠΎΠ»Π΅ β€œAPI key”.
  14. +
  15. НаТмитС β€œConnect”.
  16. +
  17. НаТмитС Π½Π° Π·Π½Π°Ρ‡ΠΎΠΊ QR-ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ QR-ΠΊΠΎΠ΄ ΠΈΠ· Samourai Wallet Π½Π° вашСм Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅.
  18. +
  19. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Samourai Wallet Π½Π° своСм Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅.
  20. +
  21. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Settings > Transactions > Experimental > Pair to Whirlpool GUI. ΠŸΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅ QR-ΠΊΠΎΠ΄ Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π΅Π³ΠΎ считала.
  22. +
  23. НаТмитС β€œInitialize GUI”.
  24. +
  25. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„Ρ€Π°Π·Ρƒ вашСго Samourai Wallet (BIP39 passphrase, Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π² Samourai Wallet).
  26. +
  27. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ количСство Ρ†ΠΈΠΊΠ»ΠΎΠ² смСшивания для UTXO.
  28. +
  29. НаТмитС β€œMix”.
  30. +
  31. Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Whirlpool Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Π΅Ρ‚ ваши UTXO Π½Π° вашСм DFWebOS!
  32. +
+

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ПослС пСрСзапуска ΠΈΠ»ΠΈ обновлСния вашСго DFWebOS Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ снова ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Whirlpool GUI ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ввСсти ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ смСшиваниС.

+
+ + + + + + diff --git a/samourai-server/nginx/connect/js/conf.template.js b/samourai-server/nginx/connect/js/conf.template.js new file mode 100644 index 0000000..a8a38ce --- /dev/null +++ b/samourai-server/nginx/connect/js/conf.template.js @@ -0,0 +1,7 @@ +var dojoLocalPort = "$DOJO_LOCAL_PORT"; +var dojoHiddenService = "$DOJO_HIDDEN_SERVICE"; +var whirlpoolHiddenService = "$WHIRLPOOL_HIDDEN_SERVICE"; +var bitcoinNetwork = "$COMMON_BTC_NETWORK"; +var dojoAdminKey = "$NODE_ADMIN_KEY"; +var whirlpoolApiKey = "$WHIRLPOOL_API_KEY"; +var dojoSupportPrefix = "$NODE_PREFIX_SUPPORT"; diff --git a/samourai-server/nginx/connect/js/qrcode.min.js b/samourai-server/nginx/connect/js/qrcode.min.js new file mode 100644 index 0000000..5d45a13 --- /dev/null +++ b/samourai-server/nginx/connect/js/qrcode.min.js @@ -0,0 +1,2 @@ +/*! qrcode-svg v1.1.0 | https://github.com/papnkukn/qrcode-svg | MIT license */ +function QR8bitByte(t){this.mode=QRMode.MODE_8BIT_BYTE,this.data=t,this.parsedData=[];for(var e=0,r=this.data.length;e65536?(o[0]=240|(1835008&n)>>>18,o[1]=128|(258048&n)>>>12,o[2]=128|(4032&n)>>>6,o[3]=128|63&n):n>2048?(o[0]=224|(61440&n)>>>12,o[1]=128|(4032&n)>>>6,o[2]=128|63&n):n>128?(o[0]=192|(1984&n)>>>6,o[1]=128|63&n):o[0]=n,this.parsedData.push(o)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function QRCodeModel(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}QR8bitByte.prototype={getLength:function(t){return this.parsedData.length},write:function(t){for(var e=0,r=this.parsedData.length;e=7&&this.setupTypeNumber(t),null==this.dataCache&&(this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,e)},setupPositionProbePattern:function(t,e){for(var r=-1;r<=7;r++)if(!(t+r<=-1||this.moduleCount<=t+r))for(var o=-1;o<=7;o++)e+o<=-1||this.moduleCount<=e+o||(this.modules[t+r][e+o]=0<=r&&r<=6&&(0==o||6==o)||0<=o&&o<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=o&&o<=4)},getBestMaskPattern:function(){for(var t=0,e=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=QRUtil.getLostPoint(this);(0==r||t>o)&&(t=o,e=r)}return e},createMovieClip:function(t,e,r){var o=t.createEmptyMovieClip(e,r);this.make();for(var n=0;n>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=o}for(r=0;r<18;r++){o=!t&&1==(e>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o}},setupTypeInfo:function(t,e){for(var r=this.errorCorrectLevel<<3|e,o=QRUtil.getBCHTypeInfo(r),n=0;n<15;n++){var i=!t&&1==(o>>n&1);n<6?this.modules[n][8]=i:n<8?this.modules[n+1][8]=i:this.modules[this.moduleCount-15+n][8]=i}for(n=0;n<15;n++){i=!t&&1==(o>>n&1);n<8?this.modules[8][this.moduleCount-n-1]=i:n<9?this.modules[8][15-n-1+1]=i:this.modules[8][15-n-1]=i}this.modules[this.moduleCount-8][8]=!t},mapData:function(t,e){for(var r=-1,o=this.moduleCount-1,n=7,i=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;s<2;s++)if(null==this.modules[o][a-s]){var h=!1;i>>n&1)),QRUtil.getMask(e,o,a-s)&&(h=!h),this.modules[o][a-s]=h,-1==--n&&(i++,n=7)}if((o+=r)<0||this.moduleCount<=o){o-=r,r=-r;break}}}},QRCodeModel.PAD0=236,QRCodeModel.PAD1=17,QRCodeModel.createData=function(t,e,r){for(var o=QRRSBlock.getRSBlocks(t,e),n=new QRBitBuffer,i=0;i8*s)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*s+")");for(n.getLengthInBits()+4<=8*s&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*s||(n.put(QRCodeModel.PAD0,8),n.getLengthInBits()>=8*s));)n.put(QRCodeModel.PAD1,8);return QRCodeModel.createBytes(n,o)},QRCodeModel.createBytes=function(t,e){for(var r=0,o=0,n=0,i=new Array(e.length),a=new Array(e.length),s=0;s=0?d.get(f):0}}var c=0;for(u=0;u=0;)e^=QRUtil.G15<=0;)e^=QRUtil.G18<>>=1;return e},getPatternPosition:function(t){return QRUtil.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,r){switch(t){case QRMaskPattern.PATTERN000:return(e+r)%2==0;case QRMaskPattern.PATTERN001:return e%2==0;case QRMaskPattern.PATTERN010:return r%3==0;case QRMaskPattern.PATTERN011:return(e+r)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(e/2)+Math.floor(r/3))%2==0;case QRMaskPattern.PATTERN101:return e*r%2+e*r%3==0;case QRMaskPattern.PATTERN110:return(e*r%2+e*r%3)%2==0;case QRMaskPattern.PATTERN111:return(e*r%3+(e+r)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new QRPolynomial([1],0),r=0;r5&&(r+=3+i-5)}for(o=0;o=256;)t-=255;return QRMath.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},i=0;i<8;i++)QRMath.EXP_TABLE[i]=1<>>7-t%8&1)},put:function(t,e){for(var r=0;r>>e-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function QRCode(t){if(this.options={padding:4,width:256,height:256,typeNumber:4,color:"#000000",background:"#ffffff",ecl:"M"},"string"==typeof t&&(t={content:t}),t)for(var e in t)this.options[e]=t[e];if("string"!=typeof this.options.content)throw new Error("Expected 'content' as string!");if(0===this.options.content.length)throw new Error("Expected 'content' to be non-empty!");if(!(this.options.padding>=0))throw new Error("Expected 'padding' value to be non-negative!");if(!(this.options.width>0&&this.options.height>0))throw new Error("Expected 'width' or 'height' value to be higher than zero!");var r=this.options.content,o=function(t,e){for(var r=function(t){var e=encodeURI(t).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return e.length+(e.length!=t?3:0)}(t),o=1,n=0,i=0,a=QRCodeLimitLength.length;i<=a;i++){var s=QRCodeLimitLength[i];if(!s)throw new Error("Content too long: expected "+n+" but got "+r);switch(e){case"L":n=s[0];break;case"M":n=s[1];break;case"Q":n=s[2];break;case"H":n=s[3];break;default:throw new Error("Unknwon error correction level: "+e)}if(r<=n)break;o++}if(o>QRCodeLimitLength.length)throw new Error("Content too long");return o}(r,this.options.ecl),n=function(t){switch(t){case"L":return QRErrorCorrectLevel.L;case"M":return QRErrorCorrectLevel.M;case"Q":return QRErrorCorrectLevel.Q;case"H":return QRErrorCorrectLevel.H;default:throw new Error("Unknwon error correction level: "+t)}}(this.options.ecl);this.qrcode=new QRCodeModel(o,n),this.qrcode.addData(r),this.qrcode.make()}QRCode.prototype.svg=function(t){var e=this.options||{},r=this.qrcode.modules;void 0===t&&(t={container:e.container||"svg"});for(var o=void 0===e.pretty||!!e.pretty,n=o?" ":"",i=o?"\r\n":"",a=e.width,s=e.height,h=r.length,l=a/(h+2*e.padding),u=s/(h+2*e.padding),g=void 0!==e.join&&!!e.join,d=void 0!==e.swap&&!!e.swap,f=void 0===e.xmlDeclaration||!!e.xmlDeclaration,c=void 0!==e.predefined&&!!e.predefined,R=c?n+''+i:"",p=n+''+i,m="",Q="",v=0;v'+i:n+''+i}}g&&(m=n+'');var T="";switch(t.container){case"svg":f&&(T+=''+i),T+=''+i,T+=R+p+m,T+="";break;case"svg-viewbox":f&&(T+=''+i),T+=''+i,T+=R+p+m,T+="";break;case"g":T+=''+i,T+=R+p+m,T+="";break;default:T+=(R+p+m).replace(/^\s+/,"")}return T},QRCode.prototype.save=function(t,e){var r=this.svg();"function"!=typeof e&&(e=function(t,e){});try{require("fs").writeFile(t,r,e)}catch(t){e(t)}},"undefined"!=typeof module&&(module.exports=QRCode); diff --git a/samourai-server/nginx/connect/js/script.js b/samourai-server/nginx/connect/js/script.js new file mode 100644 index 0000000..ed08107 --- /dev/null +++ b/samourai-server/nginx/connect/js/script.js @@ -0,0 +1,44 @@ +let dojoHost = `${window.location.hostname}:${dojoLocalPort}`; +const dojoBaseRoute = bitcoinNetwork == "testnet" ? "test/v2" : "v2"; + +if(window.location.hostname.endsWith(".onion")) { + dojoHost = dojoHiddenService; +} + +document.getElementById('dojo-admin-key').innerText = dojoAdminKey; +document.getElementById('whirlpool-api-key').innerText = whirlpoolApiKey; +document.getElementById('whirlpool-hidden-service').innerText = `http://${whirlpoolHiddenService}`; +document.getElementById('dmt-link').setAttribute("href", `http://${dojoHost}/admin/`); + +fetch(`http://${dojoHost}/${dojoBaseRoute}/auth/login`, { + method: 'POST', + headers: new Headers({ + 'Content-Type': 'application/x-www-form-urlencoded' + }), + body: `apikey=${dojoAdminKey}` + }) + .then(response => response.json()) + .then(data => { + fetch(`http://${window.location.host}/${dojoBaseRoute}/${dojoSupportPrefix}/pairing`, { + method: 'GET', + headers: new Headers({ + 'Authorization': 'Bearer ' + data.authorizations.access_token, + 'Content-Type': 'application/json' + }) + }) + .then(response => response.json()) + .then(pairingInfo => { + pairingInfo.pairing.url = `http://${dojoHiddenService}/${dojoBaseRoute}`; + + const qrcodeSvg = new QRCode({ + content: JSON.stringify(pairingInfo), + join: true, + container: "svg-viewbox", + padding: 3, + color: "#000000", + background: "#ffffff", + ecl: "M", + }).svg(); + document.querySelector('.qr-contents').innerHTML = qrcodeSvg; + }); + }); diff --git a/samourai-server/nginx/mainnet.conf b/samourai-server/nginx/mainnet.conf new file mode 100644 index 0000000..18c75c8 --- /dev/null +++ b/samourai-server/nginx/mainnet.conf @@ -0,0 +1,66 @@ +# ΠŸΡ€ΠΎΠΊΡΠΈ WebSockets +# https://www.nginx.com/blog/websocket-nginx/ +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +# Π‘Π΅Ρ€Π²Π΅Ρ€ WebSocket ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ здСсь +upstream websocket { + server node:8080; +} + +# ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ сайта +server { + listen 80; + server_name _; + + # УстановитС Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ прокси для прилоТСния + proxy_connect_timeout 600; + proxy_read_timeout 600; + proxy_send_timeout 600; + send_timeout 600; + + # Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ прокси-сСрвСр WebSocket + location /v2/inv { + proxy_pass http://websocket; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + } + + # Π‘Π΅Ρ€Π²Π΅Ρ€ PushTX ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ, поэтому сначала прокси + location /v2/pushtx/ { + proxy_pass http://node:8081/; + } + + # Π‘Π΅Ρ€Π²Π΅Ρ€ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ, поэтому сначала прокси + location /v2/tracker/ { + proxy_pass http://node:8082/; + } + + # ΠŸΡ€ΠΎΠΊΡΠΈ-запросы ΠΊ инструмСнту обслуТивания + location = /admin/conf/index.js { + proxy_pass http://node:8080/static/admin/conf/index-mainnet.js; + } + + location /admin/ { + proxy_pass http://node:8080/static/admin/; + } + + # ΠŸΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ запросы вСрсии 2 Π½Π° сСрвСр ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй. + location /v2/ { + proxy_pass http://node:8080/; + } + + # ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π»ΡƒΠΊΠΎΠ²Ρ‹ΠΉ адрСс Π² инструмСнт обслуТивания + location = / { + return 301 /admin; + } + + # ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ запросы + location / { + return 200 '{"status":"ok"}'; + add_header Content-Type application/json; + } +} diff --git a/samourai-server/nginx/nginx.conf b/samourai-server/nginx/nginx.conf new file mode 100644 index 0000000..26aa64a --- /dev/null +++ b/samourai-server/nginx/nginx.conf @@ -0,0 +1,44 @@ +user nginx; +worker_processes auto; +daemon off; + +# Π—Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ критичСскиС ошибки ΠΈ Π²Ρ‹ΡˆΠ΅ Π² stderr +# (см. https://github.com/nginxinc/docker-nginx/blob/594ce7a8bc26c85af88495ac94d5cd0096b306f7/mainline/alpine/Dockerfile#L104) +error_log /var/log/nginx/error.log crit; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + # ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° активности Π² цСлях ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + access_log off; + + # НС раскрывайтС Π²Π΅Ρ€ΡΠΈΡŽ сСрвСра + server_tokens off; + + sendfile on; + + keepalive_timeout 95; + + # Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сТатиС ΠΎΡ‚Π²Π΅Ρ‚Π° + gzip on; + # Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ сТатия: 1-9 + gzip_comp_level 1; + # ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ сТатиС gzip для Π±ΠΎΠ»Π΅Π΅ старых вСрсий IE. + gzip_disable msie6; + # Минимальная Π΄Π»ΠΈΠ½Π° ΠΎΡ‚Π²Π΅Ρ‚Π° Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ сработаСт gzip + gzip_min_length 128; + # Π‘ΠΆΠΈΠΌΠ°ΠΉΡ‚Π΅ эти Ρ‚ΠΈΠΏΡ‹ MIME Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ text/html. + gzip_types application/json; + # ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ с проксированиСм, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΎΡ‚Π²Π΅Ρ‚ Vary: Accept-Encoding. + gzip_vary on; + + include /etc/nginx/sites-enabled/*.conf; +} diff --git a/samourai-server/nginx/testnet.conf b/samourai-server/nginx/testnet.conf new file mode 100644 index 0000000..162111b --- /dev/null +++ b/samourai-server/nginx/testnet.conf @@ -0,0 +1,71 @@ +# ΠŸΡ€ΠΎΠΊΡΠΈ WebSockets +# https://www.nginx.com/blog/websocket-nginx/ +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +# Π‘Π΅Ρ€Π²Π΅Ρ€ WebSocket ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ здСсь +upstream websocket { + server node:8080; +} + +# ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ сайта +server { + listen 80; + server_name _; + + # УстановитС Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ прокси для прилоТСния + proxy_connect_timeout 600; + proxy_read_timeout 600; + proxy_send_timeout 600; + send_timeout 600; + + # Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ прокси-сСрвСр WebSocket + location /test/v2/inv { + proxy_pass http://websocket; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + } + + # Π‘Π΅Ρ€Π²Π΅Ρ€ PushTX ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ, поэтому сначала прокси + location /test/v2/pushtx/ { + proxy_pass http://node:8081/; + } + + # Π‘Π΅Ρ€Π²Π΅Ρ€ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ, поэтому сначала прокси + location /test/v2/tracker/ { + proxy_pass http://node:8082/; + } + + # ΠŸΡ€ΠΎΠΊΡΠΈ-запросы ΠΊ инструмСнту обслуТивания + location = /admin/conf/index.js { + proxy_pass http://node:8080/static/admin/conf/index-testnet.js; + } + + location /admin/ { + proxy_pass http://node:8080/static/admin/; + } + + # ΠŸΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ запросы вСрсии 2 Π½Π° сСрвСр ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй. + location /test/v2/ { + proxy_pass http://node:8080/; + } + + # ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π»ΡƒΠΊΠΎΠ²Ρ‹ΠΉ адрСс Π² инструмСнт обслуТивания + location = / { + return 301 /admin; + } + + # ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ запросы + location / { + return 200 '{"status":"ok"}'; + add_header Content-Type application/json; + } + + location /test/ { + return 200 '{"status":"ok"}'; + add_header Content-Type application/json; + } +} diff --git a/samourai-server/nginx/wait-for b/samourai-server/nginx/wait-for new file mode 100755 index 0000000..539a01d --- /dev/null +++ b/samourai-server/nginx/wait-for @@ -0,0 +1,79 @@ +#!/bin/sh + +TIMEOUT=15 +QUIET=0 + +echoerr() { + if [ "$QUIET" -ne 1 ]; then printf "%s\n" "$*" 1>&2; fi +} + +usage() { + exitcode="$1" + cat << USAGE >&2 +Usage: + $cmdname host:port [-t timeout] [-- command args] + -q | --quiet Do not output any status messages + -t TIMEOUT | --timeout=timeout Timeout in seconds, zero for no timeout + -- COMMAND ARGS Execute command with args after the test finishes +USAGE + exit "$exitcode" +} + +wait_for() { + for i in `seq $TIMEOUT` ; do + nc -z "$HOST" "$PORT" > /dev/null 2>&1 + + result=$? + if [ $result -eq 0 ] ; then + if [ $# -gt 0 ] ; then + exec "$@" + fi + exit 0 + fi + sleep 1 + done + echo "Operation timed out" >&2 + exit 1 +} + +while [ $# -gt 0 ] +do + case "$1" in + *:* ) + HOST=$(printf "%s\n" "$1"| cut -d : -f 1) + PORT=$(printf "%s\n" "$1"| cut -d : -f 2) + shift 1 + ;; + -q | --quiet) + QUIET=1 + shift 1 + ;; + -t) + TIMEOUT="$2" + if [ "$TIMEOUT" = "" ]; then break; fi + shift 2 + ;; + --timeout=*) + TIMEOUT="${1#*=}" + shift 1 + ;; + --) + shift + break + ;; + --help) + usage 0 + ;; + *) + echoerr "Unknown argument: $1" + usage 1 + ;; + esac +done + +if [ "$HOST" = "" -o "$PORT" = "" ]; then + echoerr "Error: you need to provide a host and port to test." + usage 2 +fi + +wait_for "$@" diff --git a/samourai-server/torrc.template b/samourai-server/torrc.template new file mode 100644 index 0000000..d006b8a --- /dev/null +++ b/samourai-server/torrc.template @@ -0,0 +1,7 @@ +# Бкрытая слуТба Π΄ΠΎΠ΄Π·Ρ‘ Samourai-Server +HiddenServiceDir /data/app-$APP_ID-dojo +HiddenServicePort 80 $APP_SAMOURAI_SERVER_IP:80 + +# Samourai-Server Π’ΠΎΠ΄ΠΎΠ²ΠΎΡ€ΠΎΡ‚ Бкрытая слуТба +HiddenServiceDir /data/app-$APP_ID-whirlpool +HiddenServicePort 80 $APP_SAMOURAI_SERVER_WHIRLPOOL_IP:$APP_SAMOURAI_SERVER_WHIRLPOOL_PORT \ No newline at end of file diff --git a/samourai-server/whirlpool/.gitkeep b/samourai-server/whirlpool/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/satsale/data/.gitkeep b/satsale/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/satsale/dfwebos-app.yml b/satsale/dfwebos-app.yml new file mode 100644 index 0000000..f8310e1 --- /dev/null +++ b/satsale/dfwebos-app.yml @@ -0,0 +1,38 @@ +manifestVersion: 1 +id: satsale +category: bitcoin +name: SatSale +version: "0.1.13-build-1" +tagline: Π›Π΅Π³ΠΊΠΈΠΉ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹ΠΉ процСссор Bitcoin +description: >- + SatSale β€” это простой, Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΠ»Π°Ρ‚Π΅ΠΆ Bitcoin. + процСссор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ собствСнному ΡƒΠ·Π»Ρƒ Bitcoin. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SatSale, Ρ‡Ρ‚ΠΎΠ±Ρ‹ + ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅ свой DFWebOS Π² Ρ‚ΠΎΡ€Π³ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ (настройки Π² /admin). + SatSale ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ поТСртвования ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… сторонников, облСгчая ΠΏΡ€ΡΠΌΡƒΡŽ + ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ посрСдников ΠΈ большая ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС + адрСса для ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ. + + + РазмСститС свой собствСнный ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹ΠΉ шлюз Bitcoin для Woocommerce Π±Π΅Π· посрСдников ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ любой сайт WordPress Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½Ρ‹. + + + Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DFWebOS содСрТит подмноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ для SatSale, Π½ΠΎ обновлСния Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… готовности. ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ сайт ΠΈ GitHub, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС! + + + ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ SatSale всС Π΅Ρ‰Π΅ находится Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π½Π΅ нСсСм отвСтствСнности Π·Π° Π»ΡŽΠ±ΡƒΡŽ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ срСдств, уязвимости ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΠΈ. ВсСгда ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΠΉΡ‚Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈ максимально ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, внСситС свой Π²ΠΊΠ»Π°Π΄, Ссли ΠΌΠΎΠΆΠ΅Ρ‚Π΅! +developer: Nick Farrow +website: https://satsale.org +dependencies: + - lightning +repo: https://github.com/nickfarrow/SatSale/ +support: https://github.com/nickfarrow/SatSale/issues +port: 5000 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: /admin +deterministicPassword: true +submitter: Nick Farrow +submission: https://github.com/getumbrel/umbrel/pull/1102 +releaseNotes: "" \ No newline at end of file diff --git a/satsale/docker-compose.yml b/satsale/docker-compose.yml new file mode 100644 index 0000000..7fb8008 --- /dev/null +++ b/satsale/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: satsale_web_1 + APP_PORT: 5000 + PROXY_AUTH_ADD: "false" + + web: + image: satsale/satsale:0.1.13@sha256:98380ad6c5166d83e627c4d1f4efdbcfd5b9217096f7fb26b287fda89eebccbb + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + DATA_DIR: "/data" + # Π”Π΅Ρ‚Π°Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡƒΠ·Π»Π° Lightning + LND_DATA_DIR: $APP_LIGHTNING_NODE_DATA_DIR + LND_HOST: $APP_LIGHTNING_NODE_IP + LND_GRPC_PORT: $APP_LIGHTNING_NODE_GRPC_PORT + MACAROON_FILE: /lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/invoice.macaroon + TLS_FILE: /lnd/tls.cert + APP_PASSWORD: $APP_PASSWORD diff --git a/satwatch/data/db/.gitkeep b/satwatch/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/satwatch/dfwebos-app.yml b/satwatch/dfwebos-app.yml new file mode 100644 index 0000000..b846a7e --- /dev/null +++ b/satwatch/dfwebos-app.yml @@ -0,0 +1,34 @@ +manifestVersion: 1.1 +id: satwatch +category: bitcoin +name: sat.watch +version: "1.1.8" +tagline: Bitcoin ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ оповСщСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ +description: >- + sat.watch обСспСчиваСт ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ вашСго Bitcoin Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + + ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ адрСсов Bitcoin, xpub ΠΈΠ»ΠΈ дСскрипторов. + - ΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… срСдствах + - ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ΅ΠΌΠΏΡƒΠ» ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ + - Π‘Π²ΠΎΠ΄ΠΊΠ° ΠΎΠ±Ρ‰Π΅Π³ΠΎ баланса для всСх отслСТиваСмых адрСсов + - УвСдомлСния ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΈ Π²Π΅Π±-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌ + - элСктронная ΠΏΠΎΡ‡Ρ‚Π° с ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ PGP +developer: J.P. Cummins +releaseNotes: "" +dependencies: + - bitcoin + - electrs +website: https://sat.watch +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +repo: https://github.com/jpcummins/sat.watch +support: https://github.com/jpcummins/sat.watch/issues +port: 3883 +path: "/app" +defaultUsername: "satwatch" +deterministicPassword: true +submitter: J.P. Cummins +submission: https://github.com/getumbrel/dfwebos-apps/pull/2723 diff --git a/satwatch/docker-compose.yml b/satwatch/docker-compose.yml new file mode 100644 index 0000000..0b06fee --- /dev/null +++ b/satwatch/docker-compose.yml @@ -0,0 +1,40 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: satwatch_web_1 + APP_PORT: 8080 + web: + image: ghcr.io/jpcummins/sat.watch:1.1.8@sha256:9911b2d8ff720672a2c97bd0cc1811c74790b96ae951ad98f7956ee9d480b175 + restart: on-failure + stop_grace_period: 1m + environment: + DATABASE_URL: "postgresql://satwatch:satwatch@satwatch_db_1:5432/satwatch?sslmode=disable" + ELECTRUM_HOST: $APP_ELECTRS_NODE_IP + ELECTRUM_PORT: $APP_ELECTRS_NODE_PORT + URL: "http://$DEVICE_DOMAIN_NAME:3883" + ZMQ_HOST: $APP_BITCOIN_NODE_IP + ZMQ_PORT: $APP_BITCOIN_ZMQ_RAWTX_PORT + RPCHOST: "http://$APP_BITCOIN_NODE_IP:$APP_BITCOIN_RPC_PORT" + RPCUSER: $APP_BITCOIN_RPC_USER + RPCPASSWORD: $APP_BITCOIN_RPC_PASS + user: "1000:1000" + depends_on: + db: + condition: service_healthy + db: + image: docker.io/library/postgres:17@sha256:fe3f571d128e8efadcd8b2fde0e2b73ebab6dbec33f6bfe69d98c682c7d8f7bd + restart: on-failure + environment: + POSTGRES_USER: satwatch + POSTGRES_PASSWORD: satwatch + POSTGRES_DB: satwatch + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + healthcheck: + test: pg_isready -U satwatch -h localhost -d satwatch + interval: 5s + timeout: 5s + retries: 10 diff --git a/satwatch/exports.yml b/satwatch/exports.yml new file mode 100644 index 0000000..e69de29 diff --git a/satwatch/hooks/pre-start b/satwatch/hooks/pre-start new file mode 100755 index 0000000..2f8b8a7 --- /dev/null +++ b/satwatch/hooks/pre-start @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π‘Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° слуТба Π½Π΅ станСт работоспособной, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach --wait --wait-timeout 60 web + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. +for attempt in $(seq 1 3); do + if "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" run --rm web "./create-user -admin -username satwatch -password ${APP_PASSWORD} -idempotent"; then + echo "Successfully created default user" + break + else + # Π‘Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… трСбуСтся врСмя для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ послС установки. + echo "Failed to create default user. Retrying..." + sleep 0.5 + fi +done diff --git a/scanservjs/data/config/.gitkeep b/scanservjs/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/scanservjs/data/scans/.gitkeep b/scanservjs/data/scans/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/scanservjs/dfwebos-app.yml b/scanservjs/dfwebos-app.yml new file mode 100644 index 0000000..ad12ae8 --- /dev/null +++ b/scanservjs/dfwebos-app.yml @@ -0,0 +1,31 @@ +manifestVersion: 1 +id: scanservjs +category: files +name: scanservjs +version: "3.0.4" +tagline: Π’Π΅Π±-интСрфСйс для Π²Π°ΡˆΠΈΡ… SANE-совмСстимых сканСров +description: >- + scanservjs β€” это Π²Π΅Π±-интСрфСйс интСрфСйс для вашСго сканСра. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько сканСров (с использованиСм SANE) Π² сСти Π±Π΅Π· нСобходимости установки Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ слоТной установки. +developer: sbs20 +website: https://sbs20.github.io/scanservjs/ +dependencies: [] +repo: https://github.com/sbs20/scanservjs +support: https://github.com/sbs20/scanservjs/issues +port: 2903 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: highghlow +submission: https://github.com/getumbrel/dfwebos-apps/pull/1094 +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ‡Π΅ΡˆΡΠΊΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ процСсс сборки + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ нСпрямоС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ imagemagick 7. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/sbs20/scanservjs/releases. \ No newline at end of file diff --git a/scanservjs/docker-compose.yml b/scanservjs/docker-compose.yml new file mode 100644 index 0000000..754982e --- /dev/null +++ b/scanservjs/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: scanservjs_server_1 + APP_PORT: 8080 + + server: + image: sbs20/scanservjs:v3.0.4@sha256:e42263444a8dd5d533ead7d9eb2ef5fd9ca7a4a80569a6f9c14b7a3c21b9c7ca + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/scans:/var/lib/scanservjs/output + - ${APP_DATA_DIR}/data/config:/etc/scanservjs + - /var/run/dbus:/var/run/dbus + # ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ /dev хоста, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ USB-устройств Π±Π΅Π· нСобходимости Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ устройства ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ + - /dev:/dev + privileged: true diff --git a/seafile/data/db/.gitkeep b/seafile/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/seafile/data/seadoc-data/.gitkeep b/seafile/data/seadoc-data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/seafile/data/seafile-data/.gitkeep b/seafile/data/seafile-data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/seafile/dfwebos-app.yml b/seafile/dfwebos-app.yml new file mode 100644 index 0000000..6166b91 --- /dev/null +++ b/seafile/dfwebos-app.yml @@ -0,0 +1,50 @@ +manifestVersion: 1 +id: seafile +category: files +name: Seafile +version: "12.0.14" +tagline: НадСТноС ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для синхронизации ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ +description: > + Seafile β€” это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для синхронизации ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ для обСспСчСния высокой надСТности, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅, Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΈ сотрудничайтС ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π±Π°Π·Ρƒ Π·Π½Π°Π½ΠΈΠΉ своСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Wiki Seafile. + + + πŸ”„ НадСТная синхронизация Ρ„Π°ΠΉΠ»ΠΎΠ² + + ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌ устройством. НадСТная ΠΈ эффСктивная синхронизация Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + + + πŸ›‘οΈ ВстроСнноС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² + + Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ Π²Π°ΠΌΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ. Π€Π°ΠΉΠ»Ρ‹ ΡˆΠΈΡ„Ρ€ΡƒΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ синхронизациСй с сСрвСром. Π”Π°ΠΆΠ΅ систСмный администратор Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹. + + + πŸ› οΈΠΠΠ‘Π’Π ΠžΠ™ΠšΠ: + + Seafile настроСн для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ» ΠΏΡ€ΠΈ установкС Π½Π° DFWebOS. Однако Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ DFWebOS.local, + ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Seafile, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² «БистСмный администратор» > «Настройки» ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Β«FILE_SERVER_ROOTΒ» Π½Π° /seafhttp. +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя мноТСство исправлСний ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π΄Π²Π΅ сохранСнныС XSS-уязвимости Π² полоТСниях ΠΈ условиях ΠΈ Π½Π° страницах администратора учрСТдСния. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ S/MIME. + - Π Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ интСрфСйс Π² ссылках ΠΎΠ±Ρ‰Π΅Π³ΠΎ доступа ΠΈ страницах Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://manual.seafile.com/latest/changelog/server-changelog/. +developer: Seafile +website: https://www.seafile.com/ +dependencies: [] +repo: https://github.com/haiwen/seafile +support: https://www.seafile.com/en/support/ +port: 8920 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +torOnly: false +defaultUsername: "dfwebos" +deterministicPassword: true +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/281 diff --git a/seafile/docker-compose.yml b/seafile/docker-compose.yml new file mode 100644 index 0000000..c540d55 --- /dev/null +++ b/seafile/docker-compose.yml @@ -0,0 +1,57 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: seafile + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + db: + image: mariadb:10.11.6@sha256:20a8bd91d972c97cffded88f2ba0ab533c8988b2dc08090c57d50caf7114ed20 + container_name: seafile-mysql + environment: + - MYSQL_ROOT_PASSWORD=db_dev + - MYSQL_LOG_CONSOLE=true + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql + + memcached: + image: memcached:1.6.18@sha256:4ab520657d9919221f752771bb013d632c9b39cea9dfae9162244b2e39885bcd + container_name: seafile-memcached + entrypoint: memcached -m 256 + + seafile: + image: seafileltd/seafile-mc:12.0.14@sha256:8d0dd6b682c12cb0e1d4f1f73ba223b0176e9e3d43805408a2f631706e9c10e8 + container_name: seafile + volumes: + - ${APP_DATA_DIR}/data/seafile-data:/shared + environment: + - DB_HOST=seafile-mysql + - DB_ROOT_PASSWD=db_dev + - JWT_PRIVATE_KEY=${APP_SEED} + - INIT_SEAFILE_ADMIN_EMAIL=dfwebos + - INIT_SEAFILE_ADMIN_PASSWORD=${APP_PASSWORD} + - SEAFILE_SERVER_LETSENCRYPT=false + - SEAFILE_SERVER_HOSTNAME=${DEVICE_DOMAIN_NAME}:8920 + - ENABLE_SEADOC=true + - SEADOC_SERVER_URL=http://${DEVICE_DOMAIN_NAME}:8921 + depends_on: + - db + - memcached + + seadoc: + image: seafileltd/sdoc-server:1.0.5@sha256:b5d3aff910be22388d329053c7dc2847a6760a6c7cfd7f0b1ef0e4f445b158b3 + volumes: + - ${APP_DATA_DIR}/data/seadoc-data:/shared + ports: + - 8921:80 + environment: + - DB_HOST=seafile-mysql + - DB_USER=root + - DB_PASSWORD=db_dev + - DB_NAME=seahub_db + - JWT_PRIVATE_KEY=${APP_SEED} + - SEAHUB_SERVICE_URL=http://${DEVICE_DOMAIN_NAME}:8920 + depends_on: + - db diff --git a/searxng/data/cache/.gitkeep b/searxng/data/cache/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/searxng/data/config/.gitkeep b/searxng/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/searxng/data/config/settings.yml b/searxng/data/config/settings.yml new file mode 100644 index 0000000..49dd089 --- /dev/null +++ b/searxng/data/config/settings.yml @@ -0,0 +1,8 @@ +# НалоТСниС ΠΏΠΎΠ²Π΅Ρ€Ρ… встроСнных настроСк ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ SearXNG (Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ доставки ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ· 3000 строк). +# Π€ΠΎΡ€ΠΌΠ°Ρ‚ JSON Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ API, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Open WebUI. +use_default_settings: true + +search: + formats: + - html + - json diff --git a/searxng/dfwebos-app.yml b/searxng/dfwebos-app.yml new file mode 100644 index 0000000..9c8122d --- /dev/null +++ b/searxng/dfwebos-app.yml @@ -0,0 +1,41 @@ +manifestVersion: 1 +id: searxng +name: SearXNG +tagline: БСсплатная мСтапоисковая систСма Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. +category: networking +version: "2026.4.7" +port: 8182 +description: >- + πŸ” SearXNG β€” это мСтапоисковая систСма, которая позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ поиск Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, объСдиняя Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… поисковых поставщиков Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ отправляСт запрос, SearXNG отправляСт этот запрос ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ мноТСству Π²Π½Π΅ΡˆΠ½ΠΈΡ… поисковых систСм ΠΈ слуТб. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ собираСт ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, прСдоставляя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΡƒ спСктру ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников Π±Π΅Π· нСобходимости ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈ сбалансированных Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска ΠΏΡƒΡ‚Π΅ΠΌ агрСгирования Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² с Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. ОбъСдиняя эти Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, SearXNG ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π·ΡΡ‚ΠΎΡΡ‚ΡŒ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΈΠ·-Π·Π° использования ΠΎΠ΄Π½ΠΎΠΉ поисковой систСмы, прСдлагая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΉ взгляд Π½Π° Ρ‚Π΅ΠΌΡ‹ поиска. БистСма ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² поиска: ΠΎΡ‚ Π²Π΅Π±-страниц Π΄ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΈΠ΄Π΅ΠΎ, новостСй ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΈΠΌ поставщикам Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ. + + + ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, SearXNG создан с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π½Π΅ сохраняСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ поиска ΠΈΠ»ΠΈ Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ поиск обрабатываСтся нСзависимо, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ отслСТивания ΠΈΠ»ΠΈ профилирования Π½Π΅ происходит. ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΠΎΡΡ‚ΡŒ поиска ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π² большСй бСзопасности ΠΏΡ€ΠΈ поискС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π’ Ρ†Π΅Π»ΠΎΠΌ, SearXNG Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт поиска, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ прСимущСства Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… поисковых систСм, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ защищая ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ обСспСчивая ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΈ бСспристрастный поиск. +developer: SearXNG +website: https://docs.searxng.org/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3253 +repo: https://github.com/searxng/searxng +support: https://github.com/searxng/searxng/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π’ этом выпускС исправлСна ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Open WebUI ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ потрСбитСлями API, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ SearXNG Π΄ΠΎ вСрсии 2026.4.7: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка «хост Π½Π΅ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Β» ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Open WebUI). + - Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ поиска JSON для ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ API. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости DuckDuckGo ΠΏΡƒΡ‚Π΅ΠΌ восстановлСния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Sec-Fetch. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΡ‚Π° Karmasearch ΠΈ сбой ΠΏΡ€ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… запросах. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠΊΠ° TubeArchivist. + - ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Lingva с Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ экзСмпляром. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ + - И Π΅Ρ‰Π΅ +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/searxng/docker-compose.yml b/searxng/docker-compose.yml new file mode 100644 index 0000000..61a4729 --- /dev/null +++ b/searxng/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: searxng-web + APP_PORT: 8080 + + web: + image: ghcr.io/searxng/searxng:2026.4.7-08ef7a63d@sha256:6a89a150d0163877caab1982b7a20d0a03fd4b39401a0d3f26f61ad205949442 + container_name: searxng-web # Avoid underscores in hostname (Werkzeug rejects them) + restart: on-failure + environment: + SEARXNG_SECRET: ${APP_SEED} + SEARXNG_LIMITER: "false" # Disable bot detection β€” container-to-container calls lack proxy headers + volumes: + - ${APP_DATA_DIR}/data/config:/etc/searxng + - ${APP_DATA_DIR}/data/cache:/var/cache/searxng diff --git a/searxng/hooks/pre-start b/searxng/hooks/pre-start new file mode 100755 index 0000000..80a469e --- /dev/null +++ b/searxng/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +SETTINGS_FILE="${APP_DATA_DIR}/data/config/settings.yml" +MIGRATED_FLAG="${APP_DATA_DIR}/SETTINGS_MIGRATED" + +# ΠžΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Π°Ρ миграция: Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ автоматичСски сгСнСрированный 3000-строчный settings.yml Π½Π° наш +# минимальноС Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ поиска JSON (трСбуСтся для ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ API, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ +# ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ WebUI), унаслСдовав всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ· встроСнной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ SearXNG. +# ПослС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ» становится Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈ ΠΌΡ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° большС ΠΊ Π½Π΅ΠΌΡƒ Π½Π΅ прикасаСмся. +# ΠŸΡ€ΠΈ Π½ΠΎΠ²Ρ‹Ρ… установках это Π±Π΅Π·Π²Ρ€Π΅Π΄Π½ΠΎΠ΅ дСйствиС (пСрСзаписываСт связанный Ρ„Π°ΠΉΠ» с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌ содСрТимым). +if [[ ! -f "${MIGRATED_FLAG}" ]]; then + echo "Replacing SearXNG settings.yml with minimal overlay..." + cat > "${SETTINGS_FILE}" <<'EOF' +# НалоТСниС ΠΏΠΎΠ²Π΅Ρ€Ρ… встроСнных настроСк ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ SearXNG (Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ доставки ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ· 3000 строк). +# Π€ΠΎΡ€ΠΌΠ°Ρ‚ JSON Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ API, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Open WebUI. +use_default_settings: true + +search: + formats: + - html + - json +EOF + touch "${MIGRATED_FLAG}" +fi diff --git a/shopstr/dfwebos-app.yml b/shopstr/dfwebos-app.yml new file mode 100644 index 0000000..55f46e8 --- /dev/null +++ b/shopstr/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1 +id: shopstr +category: bitcoin +name: Shopstr +version: "0.7.5" +tagline: Π”Π΅Π»Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ свободно +description: >- + πŸ›’ Shopstr β€” это дСцСнтрализованная торговая ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, построСнная Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ Nostr ΠΈ прСдназначСнная для обСспСчСния глобальной ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠΉ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»ΠΈ Π±Π΅Π· использования Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈΠ»ΠΈ посрСдников. Он позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΈ услуги с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Bitcoin, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ Lightning, сохраняя ΠΏΡ€ΠΈ этом ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ транзакциями. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ сувСрСнитСта ΠΈ Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ доступа, Shopstr ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΡƒΡŽ ΠΊ Ρ†Π΅Π½Π·ΡƒΡ€Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌ элСктронной ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ†ΠΈΠΈ. + + + ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ прСдлоТСния ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ Nostr для прСдоставлСния Ρ‚Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠ°ΠΊ идСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Π°Ρ связь ΠΈ интСграция ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ. Shopstr, созданный с использованиСм соврСмСнных Π²Π΅Π±-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ TypeScript, Next.js ΠΈ Tailwind CSS, обСспСчиваСт Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Он ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker, Π° Ρ‚Π°ΠΊΠΆΠ΅ доступСн Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ Tor для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + Shopstr идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΈΡ‰Π΅Ρ‚ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ срСду для ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ†ΠΈΠΈ, Π³Π΄Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Π½Π° Π±Π°Π·Π΅ Bitcoin ΠΈ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, Π° Π½Π΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ организациями. + + Π’Π°ΡˆΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ. Π’Π°Ρˆ ΠΌΠ°Π³Π°Π·ΠΈΠ½. +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Shopstr содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ состояниС Π³ΠΎΠ½ΠΊΠΈ ΠΏΡ€ΠΈ создании Π½ΠΎΠ²Ρ‹Ρ… Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² ΠΏΡ€ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ Π·Π°ΠΊΠ°Π·Π°. + - ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π΄ΠΈΠ·Π°ΠΉΠ½ страницы оформлСния Π·Π°ΠΊΠ°Π·Π°. + - ΠΠ΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ исправлСния стиля ΠΊΠΎΠ΄Π°. +developer: calvadev +website: https://calva.dev +dependencies: [] +repo: https://github.com/shopstr-eng/shopstr +support: https://github.com/shopstr-eng/shopstr/issues +port: 30402 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: calvadev +submission: https://github.com/getumbrel/dfwebos-apps/pull/2131 diff --git a/shopstr/docker-compose.yml b/shopstr/docker-compose.yml new file mode 100644 index 0000000..ac7c73a --- /dev/null +++ b/shopstr/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: shopstr_web_1 + APP_PORT: 3000 + + web: + image: calvadev/shopstr:v0.7.5@sha256:b123e9d16f4267ea766813cbc12ac0989afcea03a72b42edfa37b64951ececdb + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + PORT: 3000 diff --git a/simple-torrent/data/config/.gitkeep b/simple-torrent/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/simple-torrent/data/downloads/.gitkeep b/simple-torrent/data/downloads/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/simple-torrent/data/torrents/.gitkeep b/simple-torrent/data/torrents/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/simple-torrent/dfwebos-app.yml b/simple-torrent/dfwebos-app.yml new file mode 100644 index 0000000..f03ad42 --- /dev/null +++ b/simple-torrent/dfwebos-app.yml @@ -0,0 +1,53 @@ +manifestVersion: 1.1 +id: simple-torrent +category: networking +name: SimpleTorrent +version: "1.3.9-hotfix-1" +tagline: Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DFWebOS +description: >- + SimpleTorrent β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСтся + Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ, Π·Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° свой DFWebOS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ + Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ извлСчСния ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ HTTP. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ прСдставляСт собой + ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΊ Cloud-Torrent ΠΎΡ‚ jpillora. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + + - Π˜Π½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² + + - Запуск внСшнСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡: DoneCmd + + - ΠžΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΡ€ΠΈ достиТСнии коэффициСнта высСва: SeedRatio. + + - ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒ скорости Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ/Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ: UploadRate/DownloadRate + + - ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ статистика трансфСров Π² сСти интСрфСйс. + + - ΠΠ°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ Π·Π° Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Π°ΠΌΠΈ + + - Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Ρ‹ ΠΈΠ· внСшнСго источника + + - ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° для ΠΌΠ°Π³Π½ΠΈΡ‚Π°: + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ подписка Π½Π° Magnet RSS. + + + ⚠️ SimpleTorrent Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Clearnet, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· Tor. +releaseNotes: >- + - SimpleTorrent Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прилоТСния Π½Π° DFWebOS, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Jellyfin, File Browser, Transmission, Plex ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. +developer: Preston +website: https://github.com/boypt +dependencies: [] +repo: https://github.com/boypt/simple-torrent +support: https://github.com/boypt/simple-torrent/issues +port: 8086 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +permissions: + - STORAGE_DOWNLOADS +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/commit/b12c581ae14255c2087fc8e2f0e7014a351a363b \ No newline at end of file diff --git a/simple-torrent/docker-compose.yml b/simple-torrent/docker-compose.yml new file mode 100644 index 0000000..8851c28 --- /dev/null +++ b/simple-torrent/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: simple-torrent_server_1 + APP_PORT: 8086 + + server: + image: boypt/cloud-torrent:1.3.9@sha256:90cc62869ebaabbdba31535cdff4c66ede98b341956d2ebcd6650610a37e9819 + user: "1000:1000" + restart: on-failure + command: > + --port=8086 + --config-path /config/simple-torrent.json + volumes: + - ${APP_DATA_DIR}/data/torrents:/torrents + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + - ${APP_DATA_DIR}/data/config:/config diff --git a/simple-torrent/hooks/pre-start b/simple-torrent/hooks/pre-start new file mode 100755 index 0000000..e3d68d5 --- /dev/null +++ b/simple-torrent/hooks/pre-start @@ -0,0 +1,61 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ЦСлью этого прСдстартового ΠΊΡ€ΡŽΡ‡ΠΊΠ° являСтся миграция +# локальная ΠΏΠ°ΠΏΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… установок +# Π² ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ DFWebOS + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" +DFWEBOS_ROOT="${APP_DATA_DIR}/../.." + +# Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ DFWebOS. +# сущСствуСт ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ +DFWEBOS_DATA_DIR="${DFWEBOS_ROOT}/data" +DFWEBOS_DATA_STORAGE_DIR="${DFWEBOS_DATA_DIR}/storage" +DFWEBOS_DATA_STORAGE_DOWNLOADS_DIR="${DFWEBOS_DATA_STORAGE_DIR}/downloads" +DESIRED_OWNER="1000:1000" + +if [[ ! -d "${DFWEBOS_DATA_STORAGE_DOWNLOADS_DIR}" ]]; then + mkdir -p "${DFWEBOS_DATA_STORAGE_DOWNLOADS_DIR}" +fi + +simpletorrent_correct_permission() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +simpletorrent_correct_permission "${DFWEBOS_DATA_DIR}" +simpletorrent_correct_permission "${DFWEBOS_DATA_STORAGE_DIR}" +simpletorrent_correct_permission "${DFWEBOS_DATA_STORAGE_DOWNLOADS_DIR}" + +# ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠΈΡ‚Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ установки для использования ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ. +LOCAL_DOWNLOADS_DIR="${APP_DATA_DIR}/data/downloads" + +if [[ ! -d "${LOCAL_DOWNLOADS_DIR}" ]]; then + echo "No local downloads directory found. Skipping migration..." + exit +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½Π΅ пуста Π»ΠΈ локальная Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°. +if [[ "$(ls -l "${LOCAL_DOWNLOADS_DIR}" | wc -l)" -gt "1" ]]; then + # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ содСрТимоС локальной ΠΏΠ°ΠΏΠΊΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ Π² ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ DFWebOS. + mv --verbose "${LOCAL_DOWNLOADS_DIR}/"* "${DFWEBOS_DATA_STORAGE_DOWNLOADS_DIR}" +fi + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, пуст Π»ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ. +if [[ "$(ls -l "${LOCAL_DOWNLOADS_DIR}" | wc -l)" -gt "1" ]]; then + echo "Failed to migrate local downloads directory: ${LOCAL_DOWNLOADS_DIR}" + echo "This directory still contains files/folders..." + exit +fi + +rm -rf "${LOCAL_DOWNLOADS_DIR}" + +echo "Local downloads directory successfully migrated" \ No newline at end of file diff --git a/slink/data/images/.gitkeep b/slink/data/images/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/slink/data/images/.gitkeep @@ -0,0 +1 @@ + diff --git a/slink/data/var/.gitkeep b/slink/data/var/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/slink/data/var/.gitkeep @@ -0,0 +1 @@ + diff --git a/slink/dfwebos-app.yml b/slink/dfwebos-app.yml new file mode 100644 index 0000000..68cffbd --- /dev/null +++ b/slink/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1 +id: slink +name: Slink +tagline: ΠœΠΎΡ‰Π½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для ΠΎΠ±ΠΌΠ΅Π½Π° изобраТСниями, ориСнтированная Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. +category: files +version: "1.11.0" +port: 8811 +description: >- + πŸ“Έ SlinkΒ β€” это соврСмСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΠ±ΠΌΠ΅Π½Π° изобраТСниями, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для прСдоставлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ контроля Π½Π°Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡ… изобраТСния хранятся, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ. Он обСспСчиваСт элСгантный ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° простым ΠΈ эффСктивным. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ сторонних сСрвисов, Slink ΠΏΠΎΡ€ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своСй собствСнной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, гарантируя, Ρ‡Ρ‚ΠΎ каТдая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° останСтся ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ бСзопасной, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ. + + + ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ стандартныС ΠΈ высокоэффСктивныС Ρ‚ΠΈΠΏΡ‹, Ρ‡Ρ‚ΠΎ позволяСт бСспрСпятствСнно ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС Π²ΠΈΠ΄Ρ‹ ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»ΠΎΠ². Π—Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ изобраТСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ автоматичСски ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ сТатия ΠΈ удалСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ обСспСчиваСт Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ встроСна Π² Ρ„Π°ΠΉΠ»Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сочСтаСт Π² сСбС удобство ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Slink подходящим ΠΊΠ°ΠΊ для Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ использования, Ρ‚Π°ΠΊ ΠΈ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ срСды, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + Помимо простого хостинга ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Slink Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΌΠΎΡ‰Π½ΡƒΡŽ систСму управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. Администраторы ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ одобрСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ надСТности ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для обСспСчСния бСзопасности ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. КаТдоС ΠΎΠ±Ρ‰Π΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… URL-адрСсов, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ распространСниС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, сохраняя ΠΏΡ€ΠΈ этом ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ доступом. + + + Slink построСн Π½Π° ΠΈΠ΄Π΅Π΅ собствСнности ΠΈ прозрачности. Он позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠΉ слоТности, вмСсто этого сосрСдоточив Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° надСТности, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ удобствС использования. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ Slink для ΠΎΠ±ΠΌΠ΅Π½Π° творчСскими Ρ€Π°Π±ΠΎΡ‚Π°ΠΌΠΈ, управлСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ рСсурсами ΠΈΠ»ΠΈ хранСния Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ чистый ΠΈ отвСтствСнный способ размСщСния ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° изобраТСниями с ΠΏΠΎΠ»Π½Ρ‹ΠΌ спокойствиСм. +developer: Andrii Kryvoviaz +website: https://docs.slinkapp.io/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3848 +repo: https://github.com/andrii-kryvoviaz/slink +support: https://github.com/andrii-kryvoviaz/slink/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + ⚠️ ВсС Π°ΠΊΡ†ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΠ΅ рСсурсы Π±ΡƒΠ΄ΡƒΡ‚ пСрСнСсСны автоматичСски, Π½ΠΎ ΠΎΠ±Ρ‰ΠΈΠ΅ рСсурсы с настраиваСмыми ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. + + + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ содСрТит нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° многоязычная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° с ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ Π½Π° Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΈΠΉ, испанский, французский, ΠΈΡ‚Π°Π»ΡŒΡΠ½ΡΠΊΠΈΠΉ, японский, польский, украинский ΠΈ китайский. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ элСмСнты управлСния Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ изобраТСния для Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π·Π°Ρ‰ΠΈΡ‚Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ для ΠΎΠ±Ρ‰ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄Π°Ρ‚Ρ‹ истСчСния срока дСйствия Π°ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ автоматичСски ΠΎΡ‚Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ врСмя. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ страница для просмотра ΠΈ управлСния всСми ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π²Π°ΠΌΠΈ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ рСсурсами. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы Π·Π° счСт устранСния ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ мСрцания пустого состояния ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ прорисовкС. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ копирования Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° с Ρ‚ΠΎΠ½ΠΊΠΈΠΌ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹ΠΌ сигналом. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ интСрфСйс с Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΌ просмотра, Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ панСлью поиска ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ страницСй Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/andrii-kryvoviaz/slink/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/slink/docker-compose.yml b/slink/docker-compose.yml new file mode 100644 index 0000000..a22b7bd --- /dev/null +++ b/slink/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: slink_web_1 + APP_PORT: 3000 + + web: + image: anirdev/slink:v1.11.0@sha256:8a7476a8ec940f23d398ab836bc0da5adcf742f686be7cd31c086e64769e95de + user: "1000:1000" + restart: on-failure + environment: + TZ: UTC + ORIGIN: http://${DEVICE_DOMAIN_NAME}:8811 + REQUIRE_SSL: "false" + USER_APPROVAL_REQUIRED: "false" + USER_PASSWORD_MIN_LENGTH: 8 + USER_PASSWORD_REQUIREMENTS: 15 + IMAGE_MAX_SIZE: 15M + IMAGE_STRIP_EXIF_METADATA: "true" + IMAGE_COMPRESSION_QUALITY: 80 + STORAGE_PROVIDER: local + volumes: + - ${APP_DATA_DIR}/data/var:/app/var/data + - ${APP_DATA_DIR}/data/images:/app/slink/images diff --git a/snapdrop/data/config/.gitkeep b/snapdrop/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/snapdrop/dfwebos-app.yml b/snapdrop/dfwebos-app.yml new file mode 100644 index 0000000..51d27f5 --- /dev/null +++ b/snapdrop/dfwebos-app.yml @@ -0,0 +1,25 @@ +manifestVersion: 1 +id: snapdrop +category: files +name: Snapdrop +version: "b8b78cc2" +tagline: ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Airdrop с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ +description: >- + Snapdrop β€” Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π’Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½ Airdrop ΠΎΡ‚ Apple. +developer: RobinLinus +website: https://snapdrop.net/ +dependencies: [] +repo: https://github.com/RobinLinus/snapdrop +support: https://github.com/RobinLinus/snapdrop/blob/master/docs/faq.md +port: 8222 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/290 +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ исправлСния ошибок. \ No newline at end of file diff --git a/snapdrop/docker-compose.yml b/snapdrop/docker-compose.yml new file mode 100644 index 0000000..5d73a0b --- /dev/null +++ b/snapdrop/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: snapdrop_server_1 + APP_PORT: 80 + + server: + image: linuxserver/snapdrop:version-b8b78cc2@sha256:3e0af233372e6ae7ac711397d40cbe2797cefe13220d65e5e284a64252cc0c2c + volumes: + - ${APP_DATA_DIR}/data/config:/config + restart: on-failure + environment: + - PUID=1000 + - PGID=1000 \ No newline at end of file diff --git a/snort/dfwebos-app.yml b/snort/dfwebos-app.yml new file mode 100644 index 0000000..e53ed1c --- /dev/null +++ b/snort/dfwebos-app.yml @@ -0,0 +1,74 @@ +manifestVersion: 1 +id: snort +category: social +name: Snort +version: "v0.5.3" +tagline: Быстрый Nostr интСрфСйс +description: >- + Snort β€” это ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для Nostr, созданный с использованиСм React, быстрый ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠΉ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. + Наша Ρ†Π΅Π»ΡŒ – ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ простой Π² использовании интСрфСйс для взаимодСйствия с ΡΠ΅Ρ‚ΡŒΡŽ Nostr, сдСлав Π΅Π³ΠΎ доступным для всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + Благодаря чистому ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятному Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ Snort ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ сСти Nostr ΠΈ доступ ΠΊ Π΅Π΅ функциям, позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ эффСктивно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. +releaseNotes: >- + # ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ + + - **УсилСниС бСзопасности**: комплСксныС исправлСния Π°ΡƒΠ΄ΠΈΡ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ подписи Π¨Π½ΠΎΡ€Ρ€Π°, Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠΈ рСтрансляционных сообщСний NIP-46, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ PIN-ΠΊΠΎΠ΄Π° ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ довСрия дСлСгирования NIP-26. + + - **ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ**: пакСтная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π¨Π½ΠΎΡ€Ρ€Π° Π² WASM, лСнивая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ², ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированныС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹, пакСтная оптимизация Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Ρ€Π΅Π»Π΅ ΠΈ устранСниС Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ события. + + - **Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ**: исправлСны многочислСнныС Ρ†ΠΈΠΊΠ»Ρ‹ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° React, массивы зависимостСй ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ замыкания ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°/памяти Π²ΠΎ всСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. + + + # Π”ΠΎΠ±Π°Π²Π»Π΅Π½ + + - ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½Ρ‹Π΅ тСсты ΠΏΡƒΡ‚ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов. + + - Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² с ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ, уровнями ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ + + - Π’ΠΈΠ΄ DVM: 7000, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ счСта-Ρ„Π°ΠΊΡ‚ΡƒΡ€Ρ‹, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ»Π°Ρ‚Ρ‹ + + - Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ Ρ€Π΅Π»Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΏΡƒΠ» пуст. + + - ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ манифСста Zapstore (nap.yaml β†’ zapstore.yaml) + + + # Зафиксированный + + - РСальная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подписи Π¨Π½ΠΎΡ€Ρ€Π° Π² isValid + + - ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСзопасности ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ PIN-ΠΊΠΎΠ΄Π°. + + - НИП-46 Π·Π°Ρ‰ΠΈΡ‰Π΅Π½ ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… рСтрансляционных сообщСний ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ сСкрСтов. + + - Π£Π΄Π°Π»Π΅Π½ΠΎ Π½Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ дСлСгирования NIP-26 Π² getRootPubKey. + + - ΠžΠ±Π΅Ρ€Π½ΡƒΡ‚Ρ‹ всС опасныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ JSON.parse Π² try/catch. + + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ для всСх висящих ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠΉ. + + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈ исправлСны ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°/памяти. + + β€” Π¦ΠΈΠΊΠ»Ρ‹ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π² NoteReaction, Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Ρ… Π½Π° страницС профиля Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°Ρ…, увСдомлСниях ΠΈ NoteContext. + + - Π Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° массивы зависимостСй ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ замыкания ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. + + - ΠžΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ снимок NoteStore ΠΈ мутация Π²Π²ΠΎΠ΄Π° OutboxModel. + + - Врассировки ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π΅Π»Π΅ с тСстами систСмы запросов Π½Π° ΠΊΡ€Π°ΠΉΠ½ΠΈΠ΅ случаи. + + + https://github.com/v0l/snort/compare/v0.4.0...v0.5.0 +developer: Snort +website: https://snort.social +dependencies: [] +repo: https://git.v0l.io/Kieran/snort +support: https://t.me/snort_social +port: 52027 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Snort +submission: https://github.com/getumbrel/dfwebos-apps/pull/411 diff --git a/snort/docker-compose.yml b/snort/docker-compose.yml new file mode 100644 index 0000000..49cfd74 --- /dev/null +++ b/snort/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: snort_web_1 + APP_PORT: 8080 + + web: + image: voidic/snort:v0.5.3@sha256:410778efd4d74f001bb20e91e9f752bda8bb2e5d5f796a2020b253be8b9ca099 + init: true diff --git a/snowflake/data/.gitkeep b/snowflake/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/snowflake/data/index.html b/snowflake/data/index.html new file mode 100644 index 0000000..8f5404d --- /dev/null +++ b/snowflake/data/index.html @@ -0,0 +1,166 @@ + + + + + + ΠŸΡ€ΠΎΠΊΡΠΈ Tor Snowflake + + + + + + + + +
+
+ + + + + + + + + + + + + + +
+ ● Π—Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ +

ΠŸΡ€ΠΎΠΊΡΠΈ Tor Snowflake

+
+
+

+ Бпасибо Π·Π° установку прокси Tor Snowflake Π½Π° ваш DFWebOS. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ†Π΅Π½Π·ΡƒΡ€Ρƒ Tor ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. +

+

+ ΠžΡ‚ вас большС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ трСбуСтся, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш DFWebOS оставался Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ. :) +

+
+

+ НиТС доступна почасовая статистика Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ваш прокси. +

+
+
+
+
+ + + + + + + diff --git a/snowflake/dfwebos-app.yml b/snowflake/dfwebos-app.yml new file mode 100644 index 0000000..1212837 --- /dev/null +++ b/snowflake/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1.1 +id: snowflake +category: networking +name: Tor Snowflake Proxy +version: "v2.12.1" +tagline: ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ†Π΅Π½Π·ΡƒΡ€Ρƒ +description: >- + Snowflake β€” это систСма Π±ΠΎΡ€ΡŒΠ±Ρ‹ с ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ†Π΅Π½Π·ΡƒΡ€ΠΎΠΉ. Π›ΡŽΠ΄ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ + censored ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Snowflake для доступа Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Π˜Ρ… связь ΠΈΠ΄Π΅Ρ‚ + Ρ‡Π΅Ρ€Π΅Π· прокси-сСрвСры Snowflake, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π²ΠΎΠ»ΠΎΠ½Ρ‚Π΅Ρ€Ρ‹. + + + Если ваш доступ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π½Π΅ подвСргаСтся Ρ†Π΅Π½Π·ΡƒΡ€Π΅, Π²Π°ΠΌ слСдуСт Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования прокси-сСрвСра Snowflake, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π² Ρ†Π΅Π½Π·ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… сСтях. НСт нСобходимости Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊ ΠΊΠ°ΠΊΠΈΠΌ Π²Π΅Π±-сайтам люди ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ваш прокси. Π˜Ρ… Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ IP-адрСс просмотра Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ Tor, Π° Π½Π΅ Π²Π°ΡˆΠ΅ΠΌΡƒ. +developer: The Tor Project, Inc. +website: https://snowflake.torproject.org/ +dependencies: [] +repo: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/tree/main +support: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues +port: 3800 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +releaseNotes: >- + Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠΌ выпуска вСрсии 2.12.0. + - ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ статистику прокси, Ссли суммарный ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» установлСн Π½Π° ноль. + - УстановитС для ΠΊΠΎΠ΄Π° страны Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «нСизвСстно», Ссли поиск ΠΏΠΎ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΈ Π½Π΅ удался. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° скрытого транспорта DTLS Π² прокси ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. + - ОбновлСн стСк pion WebRTC с исправлСниями бСзопасности ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + - ΠžΠΏΡ€ΠΎΡ прокси-сСрвСра Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли рСтранслятор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ доступСн. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ°Π½Π°Π»ΠΎΠ² SQS. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ измСрСния ΠΎΡ‚Ρ‚ΠΎΠΊΠ° прокси Ρƒ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Prometheus для количСства ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² прокси. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ состояниС Π³ΠΎΠ½ΠΊΠΈ Π² бСзопасном ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ Prometheus. + - ЧСткая ΠΊΠ°Ρ€Ρ‚Π° Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… IP-адрСсов прокси-сСрвСров для прСдотвращСния Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ роста. + - Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ IP-адрСса ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ· SDP для Ρ€Π°Π½Π΄Π΅Π²Ρƒ кСша AMP. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Docker. + - Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠΎΠ². + - ОбновлСниС списка ΠΈ зависимостСй STUN-сСрвСров. + + + Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ выпускС: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/releases + + + Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ с вСрсиСй 2.11.0: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/compare/v2.11.0...v2.12.1 +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/pull/1284 diff --git a/snowflake/docker-compose.yml b/snowflake/docker-compose.yml new file mode 100644 index 0000000..2fd397b --- /dev/null +++ b/snowflake/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: snowflake_web_1 + APP_PORT: 3800 + + proxy: + image: thetorproject/snowflake-proxy:v2.12.1@sha256:53658adcf8183ed387a8abce383536f45d72b4688638e078d6c1686970199feb + restart: on-failure + stop_grace_period: 1m + command: "-log /data/snowflake.log -verbose" + volumes: + - ${APP_DATA_DIR}/data:/data + + web: + image: sorenisanerd/gotty:v1.6.0@sha256:23b4669973e96d8d7d37b3bfd9e6566bdd701aa1a56eee2dc0e0362bd927ed88 + restart: on-failure + stop_grace_period: 1m + command: gotty --port 3800 --index "/snowflake/index.html" --title-format "Tor Snowflake Proxy" bash -c 'tail -n 10000 -f /snowflake/snowflake.log | grep "Traffic Relayed"' + volumes: + - ${APP_DATA_DIR}/data:/snowflake diff --git a/snowflake/hooks/pre-start b/snowflake/hooks/pre-start new file mode 100755 index 0000000..018fa18 --- /dev/null +++ b/snowflake/hooks/pre-start @@ -0,0 +1,188 @@ +#!/usr/bin/env bash +set -euo pipefail + +### ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ index.html для снСТинки, Ссли ΠΎΠ½ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½. + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="${APP_DIR}/data" + +INDEX_HTML_FILE="${APP_DATA_DIR}/index.html" + +# ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„Π°ΠΉΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ каноничСский index.html для снСТинки. +MARKER_REGEX='^' + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π½Π΅ сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ»Π° index.html ΠΈΠ»ΠΈ ΠΎΠ½ сущСствуСт ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ +if [[ ! -f "${INDEX_HTML_FILE}" ]] || ! grep -qx "${MARKER_REGEX}" "${INDEX_HTML_FILE}"; then + echo "Updating index.html file for snowflake." + # ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» index.html. + cat >"${INDEX_HTML_FILE}" <<'EOF' + + + + + Tor Snowflake Proxy + + + + + + + + +
+
+ + + + + + + + + + + + + + +
+ ● Running +

Tor Snowflake Proxy

+
+
+

+ Thank you for installing Tor Snowflake Proxy on your DFWebOS to help defeat Tor censorship around the world. +

+

+ No further action is required from your end other than keeping your DFWebOS running. :) +

+
+

+ Hourly statistics of the data relayed through your proxy are available below. +

+
+
+
+
+ + + + + + + +EOF + +echo "Updated index.html file for snowflake." + +fi diff --git a/solidtime/data/app/.gitkeep b/solidtime/data/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/solidtime/data/app/app/.gitkeep b/solidtime/data/app/app/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/solidtime/data/app/framework/cache/.gitkeep b/solidtime/data/app/framework/cache/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/solidtime/data/app/framework/views/.gitkeep b/solidtime/data/app/framework/views/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/solidtime/data/app/logs/.gitkeep b/solidtime/data/app/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/solidtime/data/db/.gitkeep b/solidtime/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/solidtime/dfwebos-app.yml b/solidtime/dfwebos-app.yml new file mode 100644 index 0000000..f759e49 --- /dev/null +++ b/solidtime/dfwebos-app.yml @@ -0,0 +1,55 @@ +manifestVersion: 1.1 +id: solidtime +name: Solidtime +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅, бСзопасноС ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для отслСТивания Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ +category: files +version: "0.12.1" +port: 8770 +description: >- + πŸ•’ Solidtime β€” это простоС, бСзопасноС ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для отслСТивания Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° своим Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ. Он прост Π² использовании ΠΈ ΡƒΠ²Π°ΠΆΠ°Π΅Ρ‚ Π²Π°ΡˆΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, сохраняя ваши Π΄Π°Π½Π½Ρ‹Π΅ локально. + + + πŸ“ŠΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: + - ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ своС врСмя с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простого ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятного интСрфСйса + - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΎΠ± использовании вашСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ + - ЭкспортируйтС свои Π΄Π°Π½Π½Ρ‹Π΅ Π² CSV для дальнСйшСго Π°Π½Π°Π»ΠΈΠ·Π°. + - БСзопасно ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ: ваши Π΄Π°Π½Π½Ρ‹Π΅ хранятся локально Π½Π° вашСм DFWebOS. + + ⚠️ Новых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». ΠŸΡ€ΠΈΠΌΠ΅Ρ€: + + `sudo docker exec -i Solidtime_scheduler_1 bash -c "echo '<ΠΏΠ°Ρ€ΠΎΠ»ΡŒ' | php artisan admin:user:create '' '' --ask-for-password --verify-email"` + + + πŸ’» Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Desktop Client, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. + – Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DFWebOS Files ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π» **Apps/Solidtime**. + - Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ„Π°ΠΉΠ» `desktop_client_id.txt`, содСрТащий ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ трСбуСтся нСсколько ΠΌΠΈΠ½ΡƒΡ‚, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΎ станСт доступным послС установки. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹. +developer: Solidtime +website: https://www.solidtime.io/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/2588 +repo: https://github.com/solidtime-io/solidtime +support: https://github.com/solidtime-io/solidtime/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +defaultUsername: "dfwebos@dfwebos.local" +deterministicPassword: true +defaultPassword: "" +dependencies: [] +releaseNotes: >- + 🚨 Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСниС бСзопасности. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС. + + + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСниС бСзопасности ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ бСзопасности, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ записи Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… организациях. + - Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ заполняСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ модального ΠΎΠΊΠ½Π° создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… записСй Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° сайтС https://github.com/solidtime-io/solidtime/releases. +path: "" diff --git a/solidtime/docker-compose.yml b/solidtime/docker-compose.yml new file mode 100644 index 0000000..366a0f6 --- /dev/null +++ b/solidtime/docker-compose.yml @@ -0,0 +1,215 @@ +services: + app_proxy: + environment: + APP_HOST: solidtime_app_1 + APP_PORT: 8000 + PROXY_AUTH_ADD: "false" + + app: + image: solidtime/solidtime:0.12.1@sha256:e6c67c722b7237193b77eba7d9808f2b6bc65bcb232caaa6ecd1306a2daecfd3 + user: "1000:1000" + restart: on-failure + volumes: + - "${APP_DATA_DIR}/data/app:/var/www/html/storage" + environment: + CONTAINER_MODE: "http" + AUTO_DB_MIGRATE: "true" + APP_NAME: "solidtime" + VITE_APP_NAME: "solidtime" + APP_ENV: "production" + APP_DEBUG: "false" + APP_URL: "http://${DEVICE_DOMAIN_NAME}:8770" + APP_FORCE_HTTPS: "false" + TRUSTED_PROXIES: "0.0.0.0/0,2000:0:0:0:0:0:0:0/3" + + # АутСнтификация + SUPER_ADMINS: "dfwebos@dfwebos.local" + + # Π’Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° + LOG_CHANNEL: "stderr_daily" + LOG_LEVEL: "debug" + + # Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… + DB_CONNECTION: "pgsql" + DB_HOST: "solidtime_db_1" + DB_PORT: "5432" + DB_SSLMODE: "require" + DB_DATABASE: "solidtime" + DB_USERNAME: "solidtime" + DB_PASSWORD: "solidtime" + + # ΠŸΠΎΡ‡Ρ‚Π° + MAIL_MAILER: "smtp" + MAIL_HOST: "" + MAIL_PORT: "" + MAIL_ENCRYPTION: "tls" + MAIL_FROM_ADDRESS: "no-reply@your-domain.com" + MAIL_FROM_NAME: "solidtime" + MAIL_USERNAME: "" + MAIL_PASSWORD: "" + + # ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ + QUEUE_CONNECTION: "database" + + # Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² + FILESYSTEM_DISK: "local" + PUBLIC_FILESYSTEM_DISK: "public" + + # Услуги + GOTENBERG_URL: "http://solidtime_gotenberg_1:3000" + env_file: + - ${APP_DATA_DIR}/keys.env + healthcheck: + test: [ "CMD-SHELL", "curl --fail http://localhost:8000/health-check/up || exit 1" ] + depends_on: + db: + condition: service_healthy + + scheduler: + image: solidtime/solidtime:0.12.1@sha256:e6c67c722b7237193b77eba7d9808f2b6bc65bcb232caaa6ecd1306a2daecfd3 + user: "1000:1000" + restart: on-failure + volumes: + - "${APP_DATA_DIR}/data/app:/var/www/html/storage" + environment: + CONTAINER_MODE: scheduler + APP_NAME: "solidtime" + VITE_APP_NAME: "solidtime" + APP_ENV: "production" + APP_DEBUG: "false" + APP_URL: "http://${DEVICE_DOMAIN_NAME}:8770" + APP_FORCE_HTTPS: "false" + TRUSTED_PROXIES: "0.0.0.0/0,2000:0:0:0:0:0:0:0/3" + + # АутСнтификация + SUPER_ADMINS: "dfwebos@dfwebos.local" + + # Π’Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° + LOG_CHANNEL: "stderr_daily" + LOG_LEVEL: "debug" + + # Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… + DB_CONNECTION: "pgsql" + DB_HOST: "solidtime_db_1" + DB_PORT: "5432" + DB_SSLMODE: "require" + DB_DATABASE: "solidtime" + DB_USERNAME: "solidtime" + DB_PASSWORD: "solidtime" + + # ΠŸΠΎΡ‡Ρ‚Π° + MAIL_MAILER: "smtp" + MAIL_HOST: "" + MAIL_PORT: "" + MAIL_ENCRYPTION: "tls" + MAIL_FROM_ADDRESS: "no-reply@your-domain.com" + MAIL_FROM_NAME: "solidtime" + MAIL_USERNAME: "" + MAIL_PASSWORD: "" + + # ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ + QUEUE_CONNECTION: "database" + + # Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² + FILESYSTEM_DISK: "local" + PUBLIC_FILESYSTEM_DISK: "public" + + # Услуги + GOTENBERG_URL: "http://solidtime_gotenberg_1:3000" + env_file: + - ${APP_DATA_DIR}/keys.env + healthcheck: + test: [ "CMD", "healthcheck" ] + depends_on: + db: + condition: service_healthy + + queue: + image: solidtime/solidtime:0.12.1@sha256:e6c67c722b7237193b77eba7d9808f2b6bc65bcb232caaa6ecd1306a2daecfd3 + user: "1000:1000" + restart: on-failure + volumes: + - "${APP_DATA_DIR}/data/app:/var/www/html/storage" + environment: + CONTAINER_MODE: worker + WORKER_COMMAND: "php /var/www/html/artisan queue:work" + APP_NAME: "solidtime" + VITE_APP_NAME: "solidtime" + APP_ENV: "production" + APP_DEBUG: "false" + APP_URL: "http://${DEVICE_DOMAIN_NAME}:8770" + APP_FORCE_HTTPS: "false" + TRUSTED_PROXIES: "0.0.0.0/0,2000:0:0:0:0:0:0:0/3" + + # АутСнтификация + SUPER_ADMINS: "dfwebos@dfwebos.local" + + # Π’Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° + LOG_CHANNEL: "stderr_daily" + LOG_LEVEL: "debug" + + # Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… + DB_CONNECTION: "pgsql" + DB_HOST: "solidtime_db_1" + DB_PORT: "5432" + DB_SSLMODE: "require" + DB_DATABASE: "solidtime" + DB_USERNAME: "solidtime" + DB_PASSWORD: "solidtime" + + # ΠŸΠΎΡ‡Ρ‚Π° + MAIL_MAILER: "smtp" + MAIL_HOST: "" + MAIL_PORT: "" + MAIL_ENCRYPTION: "tls" + MAIL_FROM_ADDRESS: "no-reply@your-domain.com" + MAIL_FROM_NAME: "solidtime" + MAIL_USERNAME: "" + MAIL_PASSWORD: "" + + # ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ + QUEUE_CONNECTION: "database" + + # Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² + FILESYSTEM_DISK: "local" + PUBLIC_FILESYSTEM_DISK: "public" + + # Услуги + GOTENBERG_URL: "http://solidtime_gotenberg_1:3000" + env_file: + - ${APP_DATA_DIR}/keys.env + healthcheck: + test: [ "CMD", "healthcheck" ] + depends_on: + db: + condition: service_healthy + + db: + image: 'postgres:17.3@sha256:0321e2252ebfeecb8bc1a899755084d29bce872953e1a5a3e25ec0860b739098' + user: "1000:1000" + restart: on-failure + environment: + PGPASSWORD: 'soldtime' + POSTGRES_DB: 'solidtime' + POSTGRES_USER: 'solidtime' + POSTGRES_PASSWORD: 'solidtime' + volumes: + - '${APP_DATA_DIR}/data/db:/var/lib/postgresql/data' + healthcheck: + test: + - CMD + - pg_isready + - '-q' + - '-d' + - 'solidtime' + - '-U' + - 'solidtime' + retries: 3 + timeout: 5s + + gotenberg: + image: gotenberg/gotenberg:8.17.1@sha256:46e7b68adeadda1794a9ab194f1e2939f5b09ff21aadef6000e84102c9af6dd5 + user: "1000:1000" + restart: on-failure + healthcheck: + test: [ "CMD", "curl", "--silent", "--fail", "http://localhost:3000/health" ] diff --git a/solidtime/hooks/post-start b/solidtime/hooks/post-start new file mode 100755 index 0000000..b06a503 --- /dev/null +++ b/solidtime/hooks/post-start @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Sentinel-Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π±Ρ‹Π» Π»ΠΈ ΡƒΠΆΠ΅ создан client_id +CLIENT_SENTINEL="${APP_DATA_DIR}/desktop_client_id.txt" + +# ──────────────────────────────────────────────────────────── +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ desktop_client_id.txt сущСствуСт. +# ──────────────────────────────────────────────────────────── +if [[ ! -s "$CLIENT_SENTINEL" ]]; then + echo "Solidtime: generating desktop client id…" + "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" \ + run --rm scheduler php artisan passport:client --name=desktop --redirect_uri=solidtime://oauth/callback --public -n \ + | grep 'Client ID' | awk '{print $NF}' > "$CLIENT_SENTINEL" +fi diff --git a/solidtime/hooks/post-update b/solidtime/hooks/post-update new file mode 100755 index 0000000..9a56654 --- /dev/null +++ b/solidtime/hooks/post-update @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ΠŸΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ вычислСнныС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ для SolidTime + +echo "Recalculating computed attributes for solidtime." +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" run --rm scheduler php artisan computed-attributes:generate +echo "Successfully recalculated computed attributes for solidtime." + +exit 0 diff --git a/solidtime/hooks/pre-start b/solidtime/hooks/pre-start new file mode 100755 index 0000000..6ddbfc8 --- /dev/null +++ b/solidtime/hooks/pre-start @@ -0,0 +1,93 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +KEYS_FILE="${APP_DIR}/keys.env" + +# Sentinel-Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π±Ρ‹Π» Π»ΠΈ ΡƒΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ администратор +ADMIN_SENTINEL="${APP_DATA_DIR}/.admin_created" + +# имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ администратора +ADMIN_NAME="DFWebOS" +ADMIN_EMAIL="dfwebos@dfwebos.local" + +# максимальноС количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΈ врСмя оТидания ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ (60 сСкунд) +MAX_TRIES=12 +SLEEP_SECS=5 + +# ──────────────────────────────────────────────────────────── +# ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, Ссли администратор ΡƒΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½. +# ──────────────────────────────────────────────────────────── +if [[ -f "$ADMIN_SENTINEL" ]]; then + echo "Solidtime: admin already initialised - skipping bootstrap." + exit 0 +fi + +# ──────────────────────────────────────────────────────────── +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ keys.env сущСствуСт. +# ──────────────────────────────────────────────────────────── +if [[ ! -s "$KEYS_FILE" ]]; then + echo "Solidtime: generating keys.env…" + "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" \ + run --rm app php artisan self-host:generate-keys \ + | grep -v "Container mode:" > "$KEYS_FILE" +fi + +# ──────────────────────────────────────────────────────────── +# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ вСсь стСк, Ρ‡Ρ‚ΠΎΠ±Ρ‹ миграция Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ автоматичСски. +# ВСроятно, здСсь ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ сСрвисы, Π½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ это для простоты. +# --wait игнорируСтся Π² старых вСрсиях Compose (DFWebOS < 1.0) +# ──────────────────────────────────────────────────────────── +echo "Solidtime: starting full stack to run migrations…" +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" \ + up -d --wait --wait-timeout 90 + +# ──────────────────────────────────────────────────────────── +# ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ-администратор (максимум 60 сСкунд). +# ВсС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹, поэтому с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ всС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ. +# Но Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² для надСТности +# ──────────────────────────────────────────────────────────── +echo "Solidtime: ensuring admin user exists…" +for ((try=1; try<=MAX_TRIES; try++)); do + # Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ + ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (Π΄Π²Π΅ строки, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ \n), + # Π·Π°Ρ‚Π΅ΠΌ запуститС ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ Laravel Π²Π½ΡƒΡ‚Ρ€ΠΈ слуТбы *scheduler*. + # - `printf … |` прСдоставляСт стандартный Π²Π²ΠΎΠ΄, поэтому ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚. + # - `compose … exec -T` ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ распрСдСлСниС TTY ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, дСлая стандартный Π²Π²ΠΎΠ΄ + # вСсти сСбя ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» (трСбуСтся для Π²Π²ΠΎΠ΄Π° Π² сцСнарии). + # - Π’ случаС успСха ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠ· 0, сообщая Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ. + if printf '%s\n%s\n' "${APP_PASSWORD}" "${APP_PASSWORD}" | \ + "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" \ + exec -T scheduler php artisan admin:user:create \ + "${ADMIN_NAME}" "${ADMIN_EMAIL}" \ + --ask-for-password --verify-email ; then + touch "$ADMIN_SENTINEL" + echo "Solidtime: admin user ready." + break + fi + echo " Attempt $try/$MAX_TRIES failed - retrying in ${SLEEP_SECS}s…" + sleep "$SLEEP_SECS" +done + +if [[ ! -f "$ADMIN_SENTINEL" ]]; then + echo "Solidtime ERROR: could not create admin user after $MAX_TRIES attempts." + exit 1 +fi + +# ──────────────────────────────────────────────────────────── +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ доступа Passport, Ссли ΠΎΠ½ отсутствуСт. +# ──────────────────────────────────────────────────────────── +if ! grep -q "^PASSPORT_PERSONAL_ACCESS_CLIENT_ID=" "$KEYS_FILE" 2>/dev/null; then + echo "Solidtime: creating Passport personal-access client…" + "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" \ + run --rm app php artisan passport:client --personal --name="API" | + awk '/Client ID/ {printf "PASSPORT_PERSONAL_ACCESS_CLIENT_ID=%s\n", $NF} + /Client secret/ {printf "PASSPORT_PERSONAL_ACCESS_CLIENT_SECRET=%s\n", $NF}' \ + >> "$KEYS_FILE" + echo "Solidtime: Passport client created." +fi + +# ──────────────────────────────────────────────────────────── +# ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ DFWebOS Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π·Π°Π½ΠΎΠ²ΠΎ. +# ──────────────────────────────────────────────────────────── +echo "Solidtime: bootstrap finished - stopping stack for clean start…" +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" stop diff --git a/solidtime/keys.env b/solidtime/keys.env new file mode 100644 index 0000000..e69de29 diff --git a/sonarr/data/config/.gitkeep b/sonarr/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sonarr/dfwebos-app.yml b/sonarr/dfwebos-app.yml new file mode 100644 index 0000000..bbbe574 --- /dev/null +++ b/sonarr/dfwebos-app.yml @@ -0,0 +1,41 @@ +manifestVersion: 1.1 +id: sonarr +category: media +name: Sonarr +version: "4.0.17.2952" +tagline: Smart PVR для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏ новостСй ΠΈ BitTorrent +description: >- + Sonarr β€” это PVR для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Usenet ΠΈ BitTorrent. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько RSS-ΠΊΠ°Π½Π°Π»ΠΎΠ² Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Ρ… эпизодов Π²Π°ΡˆΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… ΡˆΠΎΡƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ…. Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° автоматичСскоС ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ качСства ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΠ³Π΄Π° становится доступным Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокого качСства. + + + πŸ› οΈ ИНБВРУКЦИЯ ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Sonarr Π½Π° DFWebOS автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², установлСнных ΠΈΠ· DFWebOS App Store. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ· Transmission, qBittorerent ΠΈ SABnzbd. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚(Ρ‹). + + + ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ индСксатор, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Sonarr ΠΌΠΎΠ³ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΡˆΠΎΡƒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ индСксаторы нСпосрСдствСнно Π² Sonarr ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Prowlarr ΠΈΠ· DFWebOS App Store, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ индСксаторами Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… прилоТСниях. + Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ свои индСксаторы Π² Prowlarr, ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски доступны Π² Sonarr. +developer: Sonarr +website: https://sonarr.tv/ +dependencies: + - transmission +repo: https://github.com/Sonarr/Sonarr +support: https://github.com/Sonarr/Sonarr/issues +port: 8989 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +releaseNotes: >- + Π­Ρ‚ΠΎ нСбольшоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ с исправлСниями ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску Sonarr ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Sonarr/Sonarr/releases. +defaultUsername: "" +defaultPassword: "" +torOnly: false +permissions: + - STORAGE_DOWNLOADS +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/commit/60878f278d544b204d8e7c96240c797f43a9b319 diff --git a/sonarr/docker-compose.yml b/sonarr/docker-compose.yml new file mode 100644 index 0000000..79a6da2 --- /dev/null +++ b/sonarr/docker-compose.yml @@ -0,0 +1,41 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: sonarr_server_1 + APP_PORT: 8989 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: linuxserver/sonarr:4.0.17@sha256:76414c033f290d3c9f1f9dfad71150abe71d92592369a3377a5903d579e6e2b2 + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + restart: on-failure + + mac: + image: getumbrel/media-app-configurator:v1.3.0@sha256:67e75dd9f5a14402b7816119a8e20189bc2465484cea077909d164687e59742b + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + environment: + APP_ID: "sonarr" + APP_URL: "http://sonarr_server_1:8989" + TRANSMISSION_HOST: "transmission_server_1" + TRANSMISSION_PORT: 9091 + ROOT_FOLDER: "/downloads/shows" + # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ qBittorrent + QBITTORRENT_INSTALLED: ${APP_SONARR_QBITTORRENT_INSTALLED:-"false"} + QBITTORRENT_HOST: "qbittorrent_server_1" + QBITTORRENT_PORT: 8080 + # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ SABnzbd + SABNZBD_INSTALLED: ${APP_SONARR_SABNZBD_INSTALLED:-"false"} + SABNZBD_HOST: "sabnzbd_web_1" + SABNZBD_PORT: 8080 + SABNZBD_API_KEY: ${APP_SONARR_SABNZBD_API_KEY:-""} diff --git a/sonarr/exports.sh b/sonarr/exports.sh new file mode 100644 index 0000000..8446541 --- /dev/null +++ b/sonarr/exports.sh @@ -0,0 +1,13 @@ +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСны Π»ΠΈ qBittorrent ΠΈ SABnzbd. +installed_apps=$("${DFWEBOS_ROOT}/scripts/app" ls-installed) + +if echo "$installed_apps" | grep --quiet 'qbittorrent'; then + export APP_SONARR_QBITTORRENT_INSTALLED="true" +fi + +if echo "$installed_apps" | grep --quiet 'sabnzbd'; then + export APP_SONARR_SABNZBD_INSTALLED="true" + # экспортируйтС SABNZBD_API_KEY, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: + # api_key = 98e3444f7fab45e592958673bf656g3 + export APP_SONARR_SABNZBD_API_KEY=$(grep -Po 'api_key = \K.*' "${DFWEBOS_ROOT}/app-data/sabnzbd/data/config/sabnzbd.ini") +fi diff --git a/sonarr/hooks/post-install b/sonarr/hooks/post-install new file mode 100755 index 0000000..844cdf1 --- /dev/null +++ b/sonarr/hooks/post-install @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +set -euo pipefail + +if "${DFWEBOS_ROOT}/scripts/app" ls-installed | grep --quiet 'prowlarr' +then + CONFIG_FILE="${APP_DATA_DIR}/data/config/config.xml" + + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° Ρ„Π°ΠΉΠ» config.xml появится. + # ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° свойство ΠΊΠ»ΡŽΡ‡Π° API () появится Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. + for attempt in $(seq 1 20); do + if [[ -f "${CONFIG_FILE}" ]] && cat "${CONFIG_FILE}" | grep --quiet ''; then + echo "config.xml file exists and xml key exists..." + + # ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Prowlarr, Ρ‡Ρ‚ΠΎΠ±Ρ‹ автоматичСски Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. + "${DFWEBOS_ROOT}/scripts/app" restart prowlarr + + exit + fi + sleep 1 + done + + >&2 echo "Error: Failed to locate inside: ${CONFIG_FILE}" + exit 1 +fi diff --git a/sparkkiosk/data/.gitkeep b/sparkkiosk/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sparkkiosk/dfwebos-app.yml b/sparkkiosk/dfwebos-app.yml new file mode 100644 index 0000000..dcb69ba --- /dev/null +++ b/sparkkiosk/dfwebos-app.yml @@ -0,0 +1,30 @@ +manifestVersion: 1 +id: sparkkiosk +category: bitcoin +name: Sparkkiosk +version: "1.0.0-build-2" +tagline: ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ киоск LNURL +description: >- + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Sparkkiosk, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ молниСносныС ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ распСчатанных QR-ΠΊΠΎΠ΄ΠΎΠ². + Π² киосках самообслуТивания/ΠΊΠ°Ρ„Π΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… мСстах, Π³Π΄Π΅ Π½Π΅ прСдусмотрСно POS-взаимодСйствиС + НуТСн ΠΈΠ»ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. + + + Π’ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² панСль управлСния, создайтС Π½ΠΎΠ²Ρ‹ΠΉ LNURL, установитС Π²Π°Π»ΡŽΡ‚Ρƒ ΠΈ сумму ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ QR для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ послСдниС счСта. +developer: Jens Gertsen +website: https://github.com/jensgertsen/sparkkiosk +dependencies: + - lightning +repo: https://github.com/jensgertsen/sparkkiosk +support: https://github.com/jensgertsen/sparkkiosk/discussions +port: 21214 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: true +torOnly: false +submitter: Jens Gertsen +submission: https://github.com/getumbrel/umbrel/pull/1312 +releaseNotes: "" \ No newline at end of file diff --git a/sparkkiosk/docker-compose.yml b/sparkkiosk/docker-compose.yml new file mode 100644 index 0000000..7f81710 --- /dev/null +++ b/sparkkiosk/docker-compose.yml @@ -0,0 +1,29 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: sparkkiosk_web_1 + APP_PORT: 21214 + PROXY_AUTH_ADD: "false" + + web: + image: jensgertsen/sparkkiosk:v1.0.0@sha256:d49500ce9c47d04436e64dae7e336416aa32f83673058154aa8a983e1420008c + user: 1000:1000 + init: true + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + environment: + # ЛНД + LND_GRPC_ENDPOINT: $APP_LIGHTNING_NODE_IP + LND_GRPC_PORT: $APP_LIGHTNING_NODE_GRPC_PORT + LND_GRPC_CERT: "/lnd/tls.cert" + LND_GRPC_MACAROON: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon" + + # ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ + APP_HIDDEN_SERVICE: http://$APP_HIDDEN_SERVICE + APP_PASSWORD: $APP_PASSWORD + APP_DOMAIN: $APP_DOMAIN diff --git a/specter-desktop/data/.gitkeep b/specter-desktop/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/specter-desktop/dfwebos-app.yml b/specter-desktop/dfwebos-app.yml new file mode 100644 index 0000000..5407067 --- /dev/null +++ b/specter-desktop/dfwebos-app.yml @@ -0,0 +1,63 @@ +manifestVersion: 1 +id: specter-desktop +category: bitcoin +name: Specter Desktop +version: "2.1.7" +tagline: ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠΎΠ΄ΠΏΠΈΡΡŒ с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ кошСльками стала ΠΏΡ€ΠΎΡ‰Π΅ +description: >- + Spectre Desktop ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ядру Bitcoin, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌΡƒ Π½Π° вашСм DFWebOS ΠΈΠ»ΠΈ сСрвСрС Electrum. + Он Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для просмотра для ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ ΠΈ ΠΎΠ΄Π½ΠΎΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. + КошСльки Bitcoin. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Spectre Desktop Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со всСми основными + Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ кошСльки, Π² Ρ‚ΠΎΠΌ числС: + + + - Π‘ΠΈΠ΄Π‘ΠΈΠ³Π½Π΅Ρ€ + + - Spectre DIY (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ с Π²ΠΎΠ·Π΄ΡƒΡˆΠ½Ρ‹ΠΌ Π·Π°Π·ΠΎΡ€ΠΎΠΌ, с использованиСм QR-ΠΊΠΎΠ΄ΠΎΠ²) + + - Блокстрим Π”ΠΆΠ΅ΠΉΠ΄ + + - ColdCard (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ с Π²ΠΎΠ·Π΄ΡƒΡˆΠ½Ρ‹ΠΌ Π·Π°Π·ΠΎΡ€ΠΎΠΌ, с использованиСм SD-ΠΊΠ°Ρ€Ρ‚Ρ‹) + + - ΠŸΠ°ΡΠΏΠΎΡ€Ρ‚ + + - БитБокс02 + + - Electrum (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ с ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ интСрфСйсом, Ссли Electrum Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅/Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅) + + - Keystone (с Π²ΠΎΠ·Π΄ΡƒΡˆΠ½Ρ‹ΠΌ Π·Π°Π·ΠΎΡ€ΠΎΠΌ, с использованиСм QR-ΠΊΠΎΠ΄ΠΎΠ²) + + - Π’Ρ€Π΅Π·ΠΎΡ€ + + - Π›Π΅Π΄ΠΆΠ΅Ρ€ + + - KeepKey + + + Spectre Desktop Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ использованиС ядра Bitcoin Π½Π° вашСм DFWebOS Π² качСствС горячСго кошСлька ΠΏΡƒΡ‚Π΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈΠ»ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ случайной ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ BIP39, Π½ΠΎ эта функция являСтся ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ, ΠΈ ΠΌΡ‹ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС. ΠœΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… кошСльков ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… появлСния. +developer: Crypto Advance +website: https://specter.solutions +dependencies: + - bitcoin +repo: https://github.com/cryptoadvance/specter-desktop +support: https://t.me/spectersupport +port: 25441 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ измСнСния Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой ΠΏΡ€ΠΈ запускС, связанный с SQLAlchemy, ΠΏΡƒΡ‚Π΅ΠΌ обновлСния зависимости Spectrum. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой, ΠΊΠΎΠ³Π΄Π° ядро Bitcoin нСдоступно Π²ΠΎ врСмя Π²Ρ…ΠΎΠ΄Π° Π² систСму. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°ΠΌΠΈ сборки macOS. + - Π—Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ Π² ΠΊΠΎΠ΄ кошСлька. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΈ подробная информация доступны ΠΏΠΎ адрСсу https://github.com/cryptoadvance/specter-desktop/releases. +submitter: k9ert +submission: https://github.com/getumbrel/umbrel/pull/339 diff --git a/specter-desktop/docker-compose.yml b/specter-desktop/docker-compose.yml new file mode 100644 index 0000000..ec65c01 --- /dev/null +++ b/specter-desktop/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: specter-desktop_web_1 + APP_PORT: 25441 + + web: + image: ghcr.io/cryptoadvance/specter-desktop:v2.1.7@sha256:585deac233ab0ff63f0362d5fbf9155d4613ea45296b0eb8cdce9febee718d44 + stop_signal: SIGINT + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + command: + - --host=0.0.0.0 + - --specter-data-folder=/data + environment: + # TODO: APP_PASSWORD + # Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ env большС Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, начиная с вСрсии 2.0.0 (послС ввСдСния ΠΎΠΏΡ†ΠΈΠΈ общСдоступного сСрвСра Electrum). Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ ΠΈΡ… здСсь для Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ использования Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Ссли Spectre Desktop снова Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ. + BTC_RPC_USER: $APP_BITCOIN_RPC_USER + BTC_RPC_PASSWORD: $APP_BITCOIN_RPC_PASS + BTC_RPC_HOST: $APP_BITCOIN_NODE_IP + BTC_RPC_PORT: $APP_BITCOIN_RPC_PORT + BTC_RPC_PROTOCOL: http diff --git a/sphinx-relay/data/.gitkeep b/sphinx-relay/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sphinx-relay/dfwebos-app.yml b/sphinx-relay/dfwebos-app.yml new file mode 100644 index 0000000..46873c0 --- /dev/null +++ b/sphinx-relay/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1.1 +id: sphinx-relay +category: social +name: Sphinx Relay +version: "2.5.2" +tagline: ΠžΠ±Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈ ΠΏΠ»Π°Ρ‚ΠΈΡ‚Π΅ Π² сСти Lightning +description: >- + Sphinx Relay ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ваш ΡƒΠ·Π΅Π» Lightning Π² ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ + ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ сСрвСр. БообщСния ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ сквозному ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ + Π‘Π΅Ρ‚ΡŒ Bitcoin Lightning. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Sphinx Π½Π° свой Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ с + https://sphinx.chat ΠΈ соСдинитС Π΅Π³ΠΎ с Sphinx Relay Π½Π° DFWebOS. + + + Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ Sphinx Relay ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ осущСствляСтся Π² сСти Lightning, поэтому ΠΎΠ½Π° Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, нСотслСТиваСма ΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π°. БообщСния ΡˆΠΈΡ„Ρ€ΡƒΡŽΡ‚ΡΡ с использованиСм ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Sphinx. + + + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΠ»Π΅ΠΌΠ΅Π½Π°ΠΌ Π½Π° https://tribes.sphinx.chat.. Если Π²Ρ‹ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚Π΅ΡΡŒ ΠΊ ΠΏΠ»Π΅ΠΌΠ΅Π½ΠΈ подкастов, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ подкаст Π² Sphinx ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ поТСртвования хосту. +developer: Stakwork +website: https://sphinx.chat +dependencies: + - lightning +repo: https://github.com/stakwork/sphinx-relay +support: https://t.me/joinchat/Fb4OcRo4LrRD6NXfsNdeeQ +port: 3300 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: /connect +defaultUsername: "" +defaultPassword: "" +submitter: Stakwork +submission: https://github.com/getumbrel/umbrel/pull/341 +releaseNotes: >- + Π’ этом выпускС Sphinx Relay обновляСтся Π΄ΠΎ вСрсии 2.5.2. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° счСтов ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° подписки MQTT послС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сСти. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний. + - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ прямой ΠΎΠ±ΠΌΠ΅Π½ сообщСниями ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Ρ€Π΅Π»Π΅. + - УсилСнныС ΠΌΠ΅Ρ€Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ спама. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок ΠΈ оптимизация ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΈ подробная информация доступны ΠΏΠΎ адрСсу https://github.com/stakwork/sphinx-relay/releases. \ No newline at end of file diff --git a/sphinx-relay/docker-compose.yml b/sphinx-relay/docker-compose.yml new file mode 100644 index 0000000..4143d33 --- /dev/null +++ b/sphinx-relay/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: sphinx-relay_server_1 + APP_PORT: $APP_SPHINX_RELAY_PORT + PROXY_AUTH_ADD: "false" + + server: + image: sphinxlightning/sphinx-relay:v2.5.2@sha256:d37e2b72756cff670b759036fea6d4faad4cc10952256afd93f901ea36d652e2 + init: true + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + - ${APP_DATA_DIR}/data:/relay/.lnd/ + environment: + PUBLIC_URL: "$APP_HIDDEN_SERVICE:$APP_SPHINX_RELAY_PORT" + LND_IP: $APP_LIGHTNING_NODE_IP + CONNECT_UI: "true" + LND_PORT: $APP_LIGHTNING_NODE_GRPC_PORT + TLS_LOCATION: /lnd/tls.cert + MACAROON_LOCATION: /lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/admin.macaroon + LND_LOG_LOCATION: /lnd/logs/bitcoin/${APP_BITCOIN_NETWORK}/lnd.log \ No newline at end of file diff --git a/sphinx-relay/exports.sh b/sphinx-relay/exports.sh new file mode 100644 index 0000000..30c1e9c --- /dev/null +++ b/sphinx-relay/exports.sh @@ -0,0 +1,2 @@ +export APP_SPHINX_RELAY_PORT="3300" +export APP_SPHINX_RELAY_TOR_HS_EXTRA_PORTS="${APP_SPHINX_RELAY_PORT}:sphinx-relay_server_1:${APP_SPHINX_RELAY_PORT}" \ No newline at end of file diff --git a/sqlitebrowser/data/config/.gitkeep b/sqlitebrowser/data/config/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/sqlitebrowser/data/config/.gitkeep @@ -0,0 +1 @@ + diff --git a/sqlitebrowser/dfwebos-app.yml b/sqlitebrowser/dfwebos-app.yml new file mode 100644 index 0000000..1ec0f81 --- /dev/null +++ b/sqlitebrowser/dfwebos-app.yml @@ -0,0 +1,52 @@ +manifestVersion: 1 +id: sqlitebrowser +name: SQLite Browser +tagline: Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для SQLite +category: developer +version: "3.13.1" +port: 8887 +description: >- + DB Browser для SQLite (DB4S) β€” это высококачСствСнный Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для создания, проСктирования ΠΈ рСдактирования Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, совмСстимых с SQLite. + + + DB4S ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. DB4S ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ интСрфСйс, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° элСктронныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, поэтому Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ слоТныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SQL. + + + ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ доступны элСмСнты управлСния ΠΈ мастСра, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅: + + - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ сТатиС Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. + + - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† + + - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ индСксов + + - ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΠΉΡ‚Π΅, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅, добавляйтС ΠΈ удаляйтС записи. + + - Поиск записСй + + - Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈ экспорт записСй Π² Π²ΠΈΠ΄Π΅ тСкста + + - Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈ экспорт Ρ‚Π°Π±Π»ΠΈΡ† ΠΈΠ·/Π² Ρ„Π°ΠΉΠ»Ρ‹ CSV. + + - Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈ экспорт Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·/Π² Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°ΠΌΠΏΠ° SQL. + + - Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ SQL-запросов ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² + + - Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π» всСх ΠΊΠΎΠΌΠ°Π½Π΄ SQL, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. + + - ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ простых Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ запроса. +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +dependencies: [] +releaseNotes: "" +path: "" +defaultUsername: "" +defaultPassword: "" +developer: SQLiteBrowser +website: https://sqlitebrowser.org/ +repo: https://github.com/sqlitebrowser/sqlitebrowser +support: https://github.com/sqlitebrowser/sqlitebrowser/issues +submitter: dirstel +submission: https://github.com/getumbrel/dfwebos-apps/pull/2223 diff --git a/sqlitebrowser/docker-compose.yml b/sqlitebrowser/docker-compose.yml new file mode 100644 index 0000000..553c470 --- /dev/null +++ b/sqlitebrowser/docker-compose.yml @@ -0,0 +1,15 @@ +services: + app_proxy: + environment: + APP_HOST: sqlitebrowser_app_1 + APP_PORT: 3000 + + app: + image: linuxserver/sqlitebrowser:3.13.1@sha256:1b1e81f0af222af3353a4c8d3c4737264a1816a43e4410819430335fa099b1da + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/config:/config + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/CET diff --git a/squeaknode/dfwebos-app.yml b/squeaknode/dfwebos-app.yml new file mode 100644 index 0000000..63c2acf --- /dev/null +++ b/squeaknode/dfwebos-app.yml @@ -0,0 +1,31 @@ +manifestVersion: 1.1 +id: squeaknode +category: social +name: Squeaknode +version: "0.3.3" +tagline: ΠžΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Π°Ρ Π»Π΅Π½Ρ‚Π° статусов с ΠΌΠΎΠ½Π΅Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Lightning +description: >- + SqueaknodeΒ β€” это ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠ±Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сообщСния Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ + Lightning Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ + скрипит. Писк β€” это пост, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄ΠΎ 280 символов. + + + ВрСмСнная шкала Squeaknode упорядочСна ΠΏΠΎ высотС Ρ…Π΅ΡˆΠ° Π±Π»ΠΎΠΊΠ° Bitcoin, встроСнного Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сигнал. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ писк Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ подписан Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π°Π²Ρ‚ΠΎΡ€Π°. Squeaks ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ с любого ΡƒΠ·Π»Π° Π½Π° любой ΡƒΠ·Π΅Π», Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Π½Π΅ внСсСт ΠΏΠ»Π°Ρ‚Π΅ΠΆ Lightning для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. +developer: Jonathan Zernik +website: https://squeaknode.org +dependencies: + - bitcoin + - lightning +repo: https://github.com/squeaknode/squeaknode +support: https://github.com/squeaknode/squeaknode/discussions +port: 12994 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: dfwebos +deterministicPassword: true +submitter: Jonathan Zernik +submission: https://github.com/getumbrel/umbrel/pull/385 +releaseNotes: "" \ No newline at end of file diff --git a/squeaknode/docker-compose.yml b/squeaknode/docker-compose.yml new file mode 100644 index 0000000..46798e4 --- /dev/null +++ b/squeaknode/docker-compose.yml @@ -0,0 +1,58 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: squeaknode_web_1 + APP_PORT: $APP_SQUEAKNODE_PORT + + web: + image: ghcr.io/squeaknode/squeaknode:v0.3.3@sha256:021688519fc112bdec5d3e614719a80192065dae569fb85d8f5cd377ee1f9d65 + restart: on-failure + stop_grace_period: 1m + ports: + - "$APP_SQUEAKNODE_GRPC_PORT:$APP_SQUEAKNODE_GRPC_PORT" + volumes: + - ${APP_DATA_DIR}/sqk:/sqk + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + user: "1000:1000" + environment: + # Π”Π΅Ρ‚Π°Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Bitcoin Core + SQUEAKNODE_BITCOIN_RPC_HOST: $APP_BITCOIN_NODE_IP + SQUEAKNODE_BITCOIN_RPC_PORT: $APP_BITCOIN_RPC_PORT + SQUEAKNODE_BITCOIN_RPC_USER: $APP_BITCOIN_RPC_USER + SQUEAKNODE_BITCOIN_RPC_PASS: $APP_BITCOIN_RPC_PASS + + # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды LND + SQUEAKNODE_LIGHTNING_BACKEND: "lnd" + SQUEAKNODE_LIGHTNING_LND_RPC_HOST: $APP_LIGHTNING_NODE_IP + SQUEAKNODE_LIGHTNING_LND_RPC_PORT: $APP_LIGHTNING_NODE_GRPC_PORT + SQUEAKNODE_LIGHTNING_LND_TLS_CERT_PATH: "/lnd/tls.cert" + SQUEAKNODE_LIGHTNING_LND_MACAROON_PATH: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon" + + # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды Tor + SQUEAKNODE_TOR_PROXY_IP: "${TOR_PROXY_IP}" + SQUEAKNODE_TOR_PROXY_PORT: "${TOR_PROXY_PORT}" + + # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды прилоТСния + SQUEAKNODE_WEBADMIN_ENABLED: "true" + SQUEAKNODE_WEBADMIN_USERNAME: "dfwebos" + SQUEAKNODE_WEBADMIN_PASSWORD: "${APP_PASSWORD}" + + SQUEAKNODE_NODE_NETWORK: "$APP_BITCOIN_NETWORK" + SQUEAKNODE_NODE_SQK_DIR_PATH: "/sqk" + SQUEAKNODE_NODE_MAX_SQUEAKS: 10000 + + SQUEAKNODE_SERVER_EXTERNAL_ADDRESS: $APP_SQUEAKNODE_P2P_HIDDEN_SERVICE + + DEBUG: "squeaknode:*" + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" \ No newline at end of file diff --git a/squeaknode/exports.sh b/squeaknode/exports.sh new file mode 100644 index 0000000..6e0d5bc --- /dev/null +++ b/squeaknode/exports.sh @@ -0,0 +1,7 @@ +export APP_SQUEAKNODE_PORT="12994" +export APP_SQUEAKNODE_GRPC_PORT="8994" +export APP_SQUEAKNODE_P2P_PORT="8555" +export APP_SQUEAKNODE_P2P_TESTNET_PORT="18555" + +squeaknode_p2p_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-p2p/hostname" +export APP_SQUEAKNODE_P2P_HIDDEN_SERVICE="$(cat "${squeaknode_p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" \ No newline at end of file diff --git a/squeaknode/hooks/pre-start b/squeaknode/hooks/pre-start new file mode 100755 index 0000000..7b79f76 --- /dev/null +++ b/squeaknode/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Squeaknode Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° скрытая слуТба Tor P2P Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π°. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-p2p/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach web +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/squeaknode/sqk/.gitkeep b/squeaknode/sqk/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/squeaknode/torrc.template b/squeaknode/torrc.template new file mode 100644 index 0000000..a610e48 --- /dev/null +++ b/squeaknode/torrc.template @@ -0,0 +1,4 @@ +# Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис Squeaknode p2p +HiddenServiceDir /data/app-$APP_ID-p2p +HiddenServicePort $APP_SQUEAKNODE_P2P_PORT squeaknode_web_1:$APP_SQUEAKNODE_P2P_PORT +HiddenServicePort $APP_SQUEAKNODE_P2P_TESTNET_PORT squeaknode_web_1:$APP_SQUEAKNODE_P2P_TESTNET_PORT \ No newline at end of file diff --git a/squeakroad/data/.gitkeep b/squeakroad/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/squeakroad/dfwebos-app.yml b/squeakroad/dfwebos-app.yml new file mode 100644 index 0000000..54278e6 --- /dev/null +++ b/squeakroad/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1 +id: squeakroad +category: bitcoin +name: Squeak Road +version: "0.1.14-build-2" +tagline: ЗапуститС свой собствСнный Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΉ Ρ€Ρ‹Π½ΠΎΠΊ +description: >- + Squeak Road позволяСт Π²Π°ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌ Ρ€Ρ‹Π½ΠΊΠΎΠΌ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΡƒΠΏΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. + + Как администратор вашСго Ρ€Ρ‹Π½ΠΊΠ°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ листинги Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹, ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ + ставка комиссии, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Π·ΠΈΠΌΠ°Ρ‚ΡŒΡΡ с ΠΏΡ€ΠΎΠ΄Π°ΠΆ. + + ΠŸΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ†Π΅Π½ΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ, ΠΈ эти ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для расчСта Π±Π°Π»Π»ΠΎΠ². + Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Π°. + + ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдоставляСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ вашСго ΡƒΠ·Π»Π° Lightning. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ счСт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ связываСт ваш ΡƒΠ·Π΅Π» Lightning с вашСй Π»ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ вашим мСстополоТСниСм. +developer: Jonathan Zernik +website: https://github.com/yzernik/squeakroad +dependencies: + - lightning +repo: https://github.com/yzernik/squeakroad +support: https://t.me/squeakroad +port: 18200 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "dfwebos" +deterministicPassword: true +releaseNotes: >- + β€” Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ сообщСниС ΠΎΠ± ошибкС ΠΏΡ€ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ рСгистрации ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + β€” НС ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΠΉΡ‚Π΅ рСсурсы ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ CDN. +submitter: Jonathan Zernik +submission: https://github.com/getumbrel/dfwebos-apps/pull/70 \ No newline at end of file diff --git a/squeakroad/docker-compose.yml b/squeakroad/docker-compose.yml new file mode 100644 index 0000000..18d047c --- /dev/null +++ b/squeakroad/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: squeakroad_web_1 + APP_PORT: 18200 + PROXY_AUTH_ADD: "false" + + web: + image: ghcr.io/yzernik/squeakroad:v0.1.14@sha256:8530514170ce43f85020f10cf2143d49d24b0c57ecc137b879118a03789fde61 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - $APP_LIGHTNING_NODE_DATA_DIR:/lnd-dir:ro + - ${APP_DATA_DIR}/data:/data + environment: + ROCKET_PORT: 18200 + ROCKET_ADDRESS: 0.0.0.0 + SQUEAKROAD_DB_URL: /data/db.sqlite + SQUEAKROAD_ADMIN_USERNAME: dfwebos + SQUEAKROAD_ADMIN_PASSWORD: ${APP_PASSWORD} + SQUEAKROAD_LND_HOST: $APP_LIGHTNING_NODE_IP + SQUEAKROAD_LND_PORT: $APP_LIGHTNING_NODE_GRPC_PORT + SQUEAKROAD_LND_TLS_CERT_PATH: /lnd-dir/tls.cert + SQUEAKROAD_LND_MACAROON_PATH: /lnd-dir/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon diff --git a/stalwart/data/.gitkeep b/stalwart/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/stalwart/dfwebos-app.yml b/stalwart/dfwebos-app.yml new file mode 100644 index 0000000..64c9cac --- /dev/null +++ b/stalwart/dfwebos-app.yml @@ -0,0 +1,70 @@ +manifestVersion: 1.1 +id: stalwart +name: Stalwart +tagline: Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр для ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ +category: files +version: "v0.15.5" +port: 8745 +description: >- + πŸ“§ Stalwart β€” это быстрый, бСзопасный ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ сСрвСр с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€Π΅ΠΉ, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, встроСнный Π² Rust для обСспСчСния Π²Ρ‹ΡΠΎΡ‡Π°ΠΉΡˆΠ΅Π³ΠΎ уровня ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ бСзопасности. + + + Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ коммуникационная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° + - Полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹: JMAP, IMAP4, POP3 ΠΈ SMTP с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, бСзопасности ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. + - Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹: ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΠΈ CalDAV, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ CardDAV, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² WebDAV ΠΈ ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠΌΠΈ. + - Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ спама ΠΈ Ρ„ΠΈΡˆΠΈΠ½Π³Π°: Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π½Π° основС ИИ, Ρ‡Π΅Ρ€Π½Ρ‹Π΅ списки DNS, сСрыС списки, отслСТиваниС Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + + ΠœΠΎΡ‰Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для любого ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° + - Π“ΠΈΠ±ΠΊΠΈΠ΅ сСрвСрныС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°: PostgreSQL, MySQL, SQLite, S3, Redis, ElasticSearch ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. + - ВстроСнноС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, 2FA ΠΈ автоматичСскиС сСртификаты TLS. + - ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²Π°Ρ, готовая ΠΊ кластСризации конструкция с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Kubernetes ΠΈ Docker. + - Богатая панСль администратора, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ инструмСнты самообслуТивания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + + + НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ нСбольшой частный сСрвСр ΠΈΠ»ΠΈ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ΅ прСдприятиС, Stalwart обСспСчиваСт ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ связь, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ. + + + Π­Ρ‚ΠΎ настроСнныС сопоставлСния Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΠΎΡ€Ρ‚ΠΎΠ²: + - **10443:443** (HTTPS) + - **10025:25** (SMTP) + - **10465:465** (БМВПБ) + - **10587:587** (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° SMTP) + - **10143:143** (IMAP) + - **10993:993** (IMAPS) + - **14190:4190** (Π‘ΠΈΡ‚ΠΎ) + - **10110:110** (POP3) + - **10995:995** (POP3S) + + + Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ экзСмпляр, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://stalw.art/docs/install/platform/docker/. +developer: Stalwart Labs +website: https://stalw.art/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/4112 +repo: https://github.com/stalwartlabs/stalwart +support: https://github.com/stalwartlabs/stalwart/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + ⚠️ Если Π²Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ с вСрсии 0.14.x ΠΈ Π½ΠΈΠΆΠ΅, эта вСрсия Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько критичСских ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сдСлайтС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию: https://github.com/stalwartlabs/stalwart/blob/main/UPGRADING/v0_15.md. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ цикличСских структур MIME Π² IMAP ΠΈ JMAP. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° индСксация трассировки ΠΏΡ€ΠΈ использовании ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ². + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ запросов JMAP ΠΈ вычислСниС состояния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ JMAP для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ созданных ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ свойства. + - РСшСн JMAP для ΡƒΡ‡Π΅Ρ‚Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² запроса Π² Email/queryChanges. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° измСнСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅Ρ‚. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/stalwartlabs/stalwart/releases. +dependencies: [] +path: "" +deterministicPassword: true +defaultUsername: admin diff --git a/stalwart/docker-compose.yml b/stalwart/docker-compose.yml new file mode 100644 index 0000000..d4c5fea --- /dev/null +++ b/stalwart/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3.9" + +services: + app_proxy: + environment: + APP_HOST: stalwart_server_1 + APP_PORT: 8080 + PROXY_AUTH_ADD: "false" + + server: + image: stalwartlabs/stalwart:v0.15.5@sha256:dcf575db2d53d9ef86d6ced8abe4ba491984659a0f8862cc6079ee7b41c3c568 + user: "1000:1000" + ports: + - 10443:443 # HTTPS + - 10025:25 # SMTP + - 10465:465 # SMTPS + - 10587:587 # SMTP Submission + - 10143:143 # IMAP + - 10993:993 # IMAPS + - 14190:4190 # Sieve + - 10110:110 # POP3 + - 10995:995 # POP3S + volumes: + - ${APP_DATA_DIR}/data:/opt/stalwart + restart: on-failure diff --git a/stalwart/hooks/post-start b/stalwart/hooks/post-start new file mode 100755 index 0000000..043f8af --- /dev/null +++ b/stalwart/hooks/post-start @@ -0,0 +1,86 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Π­Ρ‚ΠΎΡ‚ скрипт Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Stalwart. + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="$APP_DIR/data" +CONFIG_FILE="$APP_DATA_DIR/etc/config.toml" + +# Π€Π°ΠΉΠ» Sentinel для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π±Ρ‹Π» Π»ΠΈ ΡƒΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ администратор +ADMIN_SENTINEL="${APP_DATA_DIR}/.admin_created" + +# МаксимальноС количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ +MAX_RETRIES=10 +RETRY_DELAY=2 + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π»ΠΈ ΡƒΠΆΠ΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ администратора +check_already_processed() { + if [ -f "$ADMIN_SENTINEL" ]; then + echo "Admin already initialized. Skipping..." + exit 0 + fi +} + +# ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ станСт доступСн с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠΌΠΈ. +wait_for_config() { + local retries=0 + while [ $retries -lt $MAX_RETRIES ]; do + if [ -f "$CONFIG_FILE" ]; then + echo "Config file found at $CONFIG_FILE" + return 0 + fi + + retries=$((retries + 1)) + echo "Config file not found. Retry $retries/$MAX_RETRIES in ${RETRY_DELAY}s..." + sleep $RETRY_DELAY + done + + echo "Error: Config file not found at $CONFIG_FILE after $MAX_RETRIES attempts" + exit 1 +} + +# Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ сСкрСт Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ +update_secret() { + if [ -z "${APP_PASSWORD:-}" ]; then + echo "Error: APP_PASSWORD environment variable not set" + exit 1 + fi + + # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ сСкрСт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Ρƒ ΠΆΠ΅ соль + NEW_SECRET=$(openssl passwd -6 -salt 8woP51TKJO.JKOp9 "${APP_PASSWORD}") + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, сущСствуСт Π»ΠΈ Ρ€Π°Π·Π΄Π΅Π» Fallback-admin. + if ! grep -q "\[authentication.fallback-admin\]" "$CONFIG_FILE"; then + echo "Error: [authentication.fallback-admin] section not found in config file" + exit 1 + fi + + # Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сСкрСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ + sed -i.bak "/^\[authentication\.fallback-admin\]/,/^\[/s|^secret = .*|secret = \"$NEW_SECRET\"|" "$CONFIG_FILE" + + # Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ + rm -f "$CONFIG_FILE.bak" + + # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ·ΠΎΡ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ администратора ΠΊΠ°ΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ. + touch "$ADMIN_SENTINEL" + + echo "Successfully updated admin password in $CONFIG_FILE" + + echo "Restarting app to apply new password..." + "${DFWEBOS_ROOT}/scripts/app" restart "${APP_ID}" & +} + +# ОсновноС исполнСниС +echo "Starting Stalwart post-start configuration..." + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π»ΠΈ ΠΎΠ½ΠΎ ΡƒΠΆΠ΅ +check_already_processed + +# ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ +wait_for_config + +# ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСкрСт +update_secret + +echo "Stalwart post-start configuration completed." diff --git a/stirling-pdf/data/configs/.gitkeep b/stirling-pdf/data/configs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/stirling-pdf/data/logs/.gitkeep b/stirling-pdf/data/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/stirling-pdf/data/pipeline/.gitkeep b/stirling-pdf/data/pipeline/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/stirling-pdf/data/tessdata/.gitkeep b/stirling-pdf/data/tessdata/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/stirling-pdf/dfwebos-app.yml b/stirling-pdf/dfwebos-app.yml new file mode 100644 index 0000000..0d42756 --- /dev/null +++ b/stirling-pdf/dfwebos-app.yml @@ -0,0 +1,71 @@ +manifestVersion: 1 +id: stirling-pdf +name: Stirling PDF +tagline: Π‘ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅, раздСляйтС, Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ PDF-Ρ„Π°ΠΉΠ»Ρ‹. +category: files +version: "2.10.0" +port: 27829 +description: >- + Stirling PDF β€” это Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ локально Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π΅Π±-инструмСнт для манипуляции PDF, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ + всС ваши трСбования PDF. Он позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ PDF, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅, слияниС, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, + рСорганизация, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, сТатиС ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ локально, обСспСчивая ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. + ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². + + + ⚠️ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ + + ПослС установки запуск Stirling PDF Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ нСсколько ΠΌΠΈΠ½ΡƒΡ‚. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ΡΡŒ тСрпСния ΠΈ ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹. + + + πŸ“„ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со страницами + + Stirling PDF прСдоставляСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ графичСский интСрфСйс для объСдинСния, раздСлСния, ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° ΠΈ пСрСмСщСния PDF-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΡ… страниц. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ + измСняйтС многостраничныС PDF-Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ настраиваСмых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² просмотра, сортировки ΠΈ поиска. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ рСдактирования Π½Π° страницС, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, рисованиС ΠΈ + Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ тСкста ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ доступно. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ страницы PDF Π² Ρ€Π°Π·Π½ΠΎΠΌ порядкС, ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ PDF-Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° 90 градусов. + приращСния ΠΈ удалСния страниц. + + + πŸ”„οΈ ΠšΠΎΠ½Π²Π΅Ρ€ΡΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ + + ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ PDF-Ρ„Π°ΠΉΠ»Ρ‹ Π² изобраТСния ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ любой ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² PDF ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ PDF Π² Word, PowerPoint ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ + Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ HTML, URL-адрСса ΠΈ Markdown Π² PDF. + + + πŸ›‘οΈ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ + + ДобавляйтС ΠΈ удаляйтС ΠΏΠ°Ρ€ΠΎΠ»ΠΈ, измСняйтС ΠΈΠ»ΠΈ устанавливайтС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ PDF, добавляйтС водяныС Π·Π½Π°ΠΊΠΈ, сСртифицируйтС ΠΈΠ»ΠΈ подписывайтС PDF-Ρ„Π°ΠΉΠ»Ρ‹, ΠΎΡ‡ΠΈΡ‰Π°ΠΉΡ‚Π΅ PDF-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ автоматичСски Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ тСкст. + для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности. + + + πŸ› οΈΠ”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: + + ДобавляйтС, создавайтС ΠΈΠ»ΠΈ записывайтС подписи, восстанавливайтС PDF-Ρ„Π°ΠΉΠ»Ρ‹, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΈ удаляйтС пустыС страницы, сравнивайтС Π΄Π²Π° PDF-Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ различия Π² тСкстС, добавляйтС + изобраТСния Π² PDF-Ρ„Π°ΠΉΠ»Ρ‹, ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ PDF-Ρ„Π°ΠΉΠ»Ρ‹ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ изобраТСния ΠΈΠ· PDF, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° страниц, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ распознаваниС тСкста Π½Π° PDF, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PDF/A, + Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΠΉΡ‚Π΅ PDF-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ PDF для просмотра ΠΈΠ»ΠΈ экспорта ΠΊΠ°ΠΊ JSON. +developer: Stirling Tools +website: https://stirlingtools.com/ +submitter: Sharknoon +submission: https://github.com/getumbrel/dfwebos-apps/pull/1111 +repo: https://github.com/Stirling-Tools/Stirling-PDF +support: https://github.com/Stirling-Tools/Stirling-PDF/discussions +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ исправлСния ошибок: + - УстановитС Π²ΠΈΠ΄ ΠΏΡ€ΠΈ запускС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ настройки ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Reader для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола. + - Новый Ρ€Π΅ΠΆΠΈΠΌ сравнСния пиксСлСй Π² инструмСнтС сравнСния PDF для выявлСния Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. + - ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ использования памяти для Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² API. + - Π‘ΠΎΠ»Π΅Π΅ быстрый ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€. + - ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ открываСтся боковая панСль ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΠ±Ρ‰ΠΈΠΌ доступом ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ SSO. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ модальноС ΠΎΠΊΠ½ΠΎ PDF, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ использованиС QR-ΠΊΠΎΠ΄Π° Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ зависаниС заполнСния Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠΈ с пустыми значСниями. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° края. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Stirling-Tools/Stirling-PDF/releases. +dependencies: [] +path: "" diff --git a/stirling-pdf/docker-compose.yml b/stirling-pdf/docker-compose.yml new file mode 100644 index 0000000..875f355 --- /dev/null +++ b/stirling-pdf/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: stirling-pdf_app_1 + APP_PORT: 8080 + PROXY_AUTH_WHITELIST: "/api/*" + app: + image: stirlingtools/stirling-pdf:2.10.0@sha256:4d9abedcd57a9aa4d36ffb8fc9a4801aea2d295bf6ad349e23dd4b45661a5e42 + # Stirling PDF Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ + #user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + # ВрСбуСтся для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… языков OCR. + - ${APP_DATA_DIR}/data/tessdata:/usr/share/tessdata + - ${APP_DATA_DIR}/data/configs:/configs + - ${APP_DATA_DIR}/data/logs:/logs + - ${APP_DATA_DIR}/data/pipeline:/pipeline + environment: + # НС трСбуСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ DFWebOS Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + DOCKER_ENABLE_SECURITY: "false" + INSTALL_BOOK_AND_ADVANCED_HTML_OPS: "true" + LANGS: ALL + SECURITY_ENABLELOGIN: "false" diff --git a/strix/dfwebos-app.yml b/strix/dfwebos-app.yml new file mode 100644 index 0000000..7ff8302 --- /dev/null +++ b/strix/dfwebos-app.yml @@ -0,0 +1,32 @@ +manifestVersion: 1 +id: strix +category: automation +name: Strix +version: "2.1.0" +tagline: Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ обнаруТСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² IP-ΠΊΠ°ΠΌΠ΅Ρ€ для Frigate +description: >- + Поиск Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² для Π²Π°ΡˆΠΈΡ… ΠΊΠ°ΠΌΠ΅Ρ€. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ IP-ΠΊΠ°ΠΌΠ΅Ρ€, особСнно китайскиС NVR ΠΈ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π±Π΅Π· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Никаких URL-адрСсов RTSP, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… спСцификаций ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ способа ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ Frigate. Strix Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, сопоставляя Π²Π°ΡˆΡƒ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащСй Π±ΠΎΠ»Π΅Π΅ 100 000 шаблонов URL-адрСсов для 67 000 ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, тСстируя ΠΈΡ… ΠΈ возвращая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ. + + + Π’Π²Π΅Π΄ΠΈΡ‚Π΅ IP-адрСс вашСй ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, модСль, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. Strix провСряСт всС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ URL-адрСсов ΠΈ прСдоставляСт Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π·Π° считанныС сСкунды. + + + Π—Π°Ρ‚Π΅ΠΌ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ frgate.yml β€” Π΄Π°ΠΆΠ΅ с 500 ΠΊΠ°ΠΌΠ΅Ρ€Π°ΠΌΠΈ β€” ΠΈ Strix Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ 501 с основным ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· go2rtc, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΊΠ°ΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ RTSP ΠΈΠ»ΠΈ ONVIF β€” Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ BUBBLE, MJPEG, JPEG, HTTP-FLV ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ постоянно Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ. +developer: eduard256 +website: https://github.com/eduard256/Strix +repo: https://github.com/eduard256/Strix +support: https://github.com/eduard256/Strix/issues +port: 4567 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: "" +path: "" +defaultUsername: "" +defaultPassword: "" +dependencies: [] +submitter: eduard256 +submission: https://github.com/getumbrel/dfwebos-apps/pull/5114 diff --git a/strix/docker-compose.yml b/strix/docker-compose.yml new file mode 100644 index 0000000..ac876ad --- /dev/null +++ b/strix/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: strix_web_1 + APP_PORT: 4567 + + web: + image: eduard256/strix:2.1.0@sha256:d34883001c2acf812446863281fe17a411cb16696f070d3fe4ae24b0be177ee5 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m diff --git a/super-productivity/dfwebos-app.yml b/super-productivity/dfwebos-app.yml new file mode 100644 index 0000000..5e1e0e1 --- /dev/null +++ b/super-productivity/dfwebos-app.yml @@ -0,0 +1,73 @@ +manifestVersion: 1 +id: super-productivity +name: Super Productivity +tagline: Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ способ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. +category: files +version: "18.3.0" +port: 8020 +description: >- + ⚠️ По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Super Productivity сохраняСт ваши Π΄Π°Π½Π½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ настройки) Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π½Π° устройствС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для доступа ΠΊ Π½ΠΈΠΌ. + Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ваши Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ привязанными ΠΊ этому Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ ΠΈ устройству, ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ потСряны, Ссли Π²Ρ‹ очиститС Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ устройство. + + + βš™οΈ Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… устройствах, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ настройкам прилоТСния ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Dropbox ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ сСрвСру WebDAV, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Nextcloud. + + + Super Productivity β€” это комплСксноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, созданноС для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ людям ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π­Ρ‚ΠΎΡ‚ инструмСнт идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², фрилансСров ΠΈ всСх, ΠΊΡ‚ΠΎ ΠΈΡ‰Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. Он сочСтаСт Π² сСбС основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. + + + Благодаря Super Productivity ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ списки Π΄Π΅Π», ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈ ​​эффСктивно ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ прогрСсс. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ Π·Π°Π΄Π°Ρ‡, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ сроки ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ свою ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ отслСТивания Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ совмСщаСтС нСсколько Π·Π°Π΄Π°Ρ‡, это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт Π²Π°ΠΌ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ Π±Ρ‹Ρ‚ΡŒ Π² курсС своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + + + πŸ“… Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ: создавайтС, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΈ расставляйтС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ Π·Π°Π΄Π°Ρ‡. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π½Π°Π·Π½Π°Ρ‡Π°ΠΉΡ‚Π΅ сроки выполнСния ΠΈ отслСТивайтС статус Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. + + + πŸ•’ Π£Ρ‡Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: записывайтС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ врСмя прямо Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ расходуСтся вашС врСмя. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ свою ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Pomodoro ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. + + + πŸ”— Super Productivity интСгрируСтся с Ρ‚Π°ΠΊΠΈΠΌΠΈ популярными инструмСнтами, ΠΊΠ°ΠΊ Jira, GitHub ΠΈ GitLab, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ, Π½Π΅ выходя ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса. + + + πŸ“Š ΠžΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°: создавайтС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ‹ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ своих Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ°Ρ…. + + πŸ“΄ Автономный Ρ€Π΅ΠΆΠΈΠΌ: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ врСмя Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. + + + πŸ›‘οΈ ΠšΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Super Productivity Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ваши Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ хранятся локально, обСспСчивая бСзопасноС ΠΈ настраиваСмоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π°ΡˆΠΈΡ… потрСбностСй Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + Super Productivity ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, сохраняя ΠΏΡ€ΠΈ этом ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Он идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ простой, Π½ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ эффСктивноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π½Π΅ полагаясь Π½Π° слоТноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС. Super Productivity, доступный для Windows, macOS, Linux ΠΈ Π² Π²ΠΈΠ΄Π΅ Π²Π΅Π±-прилоТСния, прСдставляСт собой ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вписываСтся Π² ваш Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ ΠΈΠ»ΠΈ сотрудничаСтС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. +developer: Johannes Schickling +website: https://super-productivity.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/1812 +repo: https://github.com/johannesjo/super-productivity +support: https://github.com/johannesjo/super-productivity/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + НСкоторыС ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ сортировки Π½Π° Ρ‚ΡƒΡ€Π΅Ρ†ΠΊΠΎΠΌ языкС ΠΈ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. + - Π’ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ сообщСства Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Super Productivity MCP. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° отобраТСния Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Ρ€Π°Π²Π΅Π½ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ запросы Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅Β» Π² поставщик Π·Π°Π΄Π°Ρ‡ GitHub. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° обнаруТСния простоя Wayland Ρ‡Π΅Ρ€Π΅Π· бэкэнд ext-idle-notify. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ reInitData API для ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ влоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΈ вставкС простого URL-адрСса. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ тСкст ΠšΠ°Π»Π΅Π½Π΄Π°Ρ€Ρ Google, выходящий Π·Π° Ρ„ΠΎΠ½. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ URL-адрСса ΠΏΠ»Π°Π³ΠΈΠ½Π° AutoPlan, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π΄ΠΎ Codeberg. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ сопоставлСния ΠΏΠΎΠ»Π΅ΠΉ поставщика ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² контСкстС ΠΏΠ»Π°Π³ΠΈΠ½Π°. + β€” УмСньшСно ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ панСлью свСдСний ΠΎ Π·Π°Π΄Π°Ρ‡Π΅ ΠΈ контСкстным мСню. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/johannesjo/super-productivity/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/super-productivity/docker-compose.yml b/super-productivity/docker-compose.yml new file mode 100644 index 0000000..a0144c6 --- /dev/null +++ b/super-productivity/docker-compose.yml @@ -0,0 +1,11 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: super-productivity_web_1 + APP_PORT: 80 + + web: + image: johannesjo/super-productivity:v18.3.0@sha256:4b84c54a4b1221712896fdcf67fcbdd3b3118c972a45f57e11b0fd2a2164d1d2 + restart: on-failure diff --git a/sure/data/postgres/.gitkeep b/sure/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sure/data/rails/.gitkeep b/sure/data/rails/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sure/data/redis/.gitkeep b/sure/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sure/dfwebos-app.yml b/sure/dfwebos-app.yml new file mode 100644 index 0000000..e957e4d --- /dev/null +++ b/sure/dfwebos-app.yml @@ -0,0 +1,38 @@ +manifestVersion: 1 +id: sure +name: Sure +tagline: ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π»ΠΈΡ‡Π½Ρ‹Ρ… финансов для всСх +category: finance +version: "0.6.9" +description: >- + ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими дСньгами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Sure, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния для Π»ΠΈΡ‡Π½Ρ‹Ρ… финансов, созданного для любого этапа ΠΆΠΈΠ·Π½ΠΈ. БвяТитС свои банковскиС счСта, Π°ΠΊΡ†ΠΈΠΈ, ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡŽΡ‚Ρƒ ΠΈ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 10 000 ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΈΡ… Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° CSV. ВсС визуализируСтся Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, поэтому Π²Ρ‹ всСгда Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Π³Π΄Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ. + + + Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ транзакциями Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊΠΈΠΌ простым. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄ΠΎΡ…ΠΎΠ΄Ρ‹, расходы ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†ΠΎΠ² ΠΈ Ρ‚Π΅Π³ΠΎΠ². НастройтС ΠΏΡ€Π°Π²ΠΈΠ»Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ для автоматичСской классификации расходов ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π° считанныС сСкунды Π½Π°ΠΉΡ‚ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. + + + Π‘ΡŽΠ΄ΠΆΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ простоС ΠΈ Π³ΠΈΠ±ΠΊΠΎΠ΅. УстанавливайтС Π»ΠΈΠΌΠΈΡ‚Ρ‹ расходов ΠΏΠΎ катСгориям, отслСТивайтС излишки, сравнивайтС Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠ΅ распрСдСлСниС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ финансовыС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. + + + Sure Ρ‚Π°ΠΊΠΆΠ΅ поставляСтся со встроСнным ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ ИИ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши финансы, ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ структуру расходов ΠΈ быстро ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ вопросы ΠΎ Π²Π°ΡˆΠΈΡ… Π΄Π΅Π½ΡŒΠ³Π°Ρ…. + + + Sure создан Π½Π° основС Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ прозрачности ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄, внСсти свой Π²ΠΊΠ»Π°Π΄ Π² Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ контроля. Π’Π°ΡˆΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ бСзопасной Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ваша финансовая ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. +developer: Sure Finances +website: https://sure.am +repo: https://github.com/we-promise/sure +support: https://github.com/we-promise/sure/discussions +submitter: cergmin +submission: https://github.com/getumbrel/dfwebos-apps/pull/4559 +dependencies: [] +port: 3064 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: "" +path: "" +defaultUsername: "" +defaultPassword: "" +backupIgnore: + - data/redis/* diff --git a/sure/docker-compose.yml b/sure/docker-compose.yml new file mode 100644 index 0000000..e57027f --- /dev/null +++ b/sure/docker-compose.yml @@ -0,0 +1,85 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: sure_web_1 + APP_PORT: 3000 + + web: + image: ghcr.io/we-promise/sure:0.6.9@sha256:3d899b3eced520d8d3166a3d53184cbb1356670fb52d050f94f8e62e59754d70 + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/rails:/rails/storage + restart: on-failure + environment: + POSTGRES_USER: sure_user + POSTGRES_PASSWORD: sure_password + POSTGRES_DB: sure_production + SECRET_KEY_BASE: $APP_SEED + SELF_HOSTED: "true" + RAILS_FORCE_SSL: "false" + RAILS_ASSUME_SSL: "false" + DB_HOST: sure_db_1 + DB_PORT: 5432 + REDIS_URL: redis://sure_redis_1:6379/1 + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + + worker: + image: ghcr.io/we-promise/sure:0.6.9@sha256:3d899b3eced520d8d3166a3d53184cbb1356670fb52d050f94f8e62e59754d70 + user: "1000:1000" + command: bundle exec sidekiq + volumes: + - ${APP_DATA_DIR}/data/rails:/rails/storage + restart: on-failure + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + environment: + POSTGRES_USER: sure_user + POSTGRES_PASSWORD: sure_password + POSTGRES_DB: sure_production + SECRET_KEY_BASE: $APP_SEED + SELF_HOSTED: "true" + RAILS_FORCE_SSL: "false" + RAILS_ASSUME_SSL: "false" + DB_HOST: sure_db_1 + DB_PORT: 5432 + REDIS_URL: redis://sure_redis_1:6379/1 + + db: + image: postgres:18.3-alpine@sha256:52098013b4b64a746626437d38afc03cabff6cdeb4d3d92e2342aa95f0ce56ea + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/postgres:/data + environment: + POSTGRES_USER: sure_user + POSTGRES_PASSWORD: sure_password + POSTGRES_DB: sure_production + PGDATA: /data/pgdata + healthcheck: + test: "pg_isready -U sure_user -h localhost -d sure_production" + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + + redis: + image: redis:8.4.2@sha256:4b0ab81cf4d84e610215d0159dcc218d4ec6180f869a9bc83c33a1945d6f3e42 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis:/data + healthcheck: + test: redis-cli ping + interval: 5s + timeout: 5s + retries: 5 + start_period: 30s diff --git a/suredbits-wallet/data/log/.gitkeep b/suredbits-wallet/data/log/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/suredbits-wallet/data/wallet/.gitkeep b/suredbits-wallet/data/wallet/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/suredbits-wallet/dfwebos-app.yml b/suredbits-wallet/dfwebos-app.yml new file mode 100644 index 0000000..4f4e888 --- /dev/null +++ b/suredbits-wallet/dfwebos-app.yml @@ -0,0 +1,33 @@ +manifestVersion: 1.1 +id: suredbits-wallet +category: bitcoin +name: Suredbits Wallet +version: "1.9.7" +tagline: Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ кошСлСк DLC. +description: >- + КошСлСк Suredbits β€” это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°Π³Π°Π·ΠΈΠ½ для создания Discreet + Π–ΡƒΡ€Π½Π°Π» ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ². Π‘ нашим кошСльком Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ ставки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π’Ρ€Π°ΠΌΠΏ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π‘Π°ΠΉΠ΄Π΅Π½Π°. + прСзидСнтскиС Π²Ρ‹Π±ΠΎΡ€Ρ‹ Π² БША 2020 Π³ΠΎΠ΄Π° ΠΈΠ»ΠΈ слоТныС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ финансовыС инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ + ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° Ρ€Π°Π·Π½ΠΈΡ†Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для хСдТирования рисков ΠΈΠ»ΠΈ участия Π² + спСкуляция. + + + Π’ΠΠ˜ΠœΠΠΠ˜Π•: это Π°Π»ΡŒΡ„Π°-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π½Π΅ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΠΉΡ‚Π΅ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π΅Π½Π΅Π³. +releaseNotes: > + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° β€‹β€‹ΠΎΡˆΠΈΠ±ΠΊΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ классифицировали DLC ΠΏΠΎ вСрсии ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. +developer: Suredbits +website: https://suredbits.com +dependencies: + - bitcoin +repo: https://github.com/bitcoin-s/bitcoin-s +support: https://t.me/suredbits +port: 3020 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Suredbits +submission: https://github.com/getumbrel/umbrel/pull/1147 diff --git a/suredbits-wallet/docker-compose.yml b/suredbits-wallet/docker-compose.yml new file mode 100644 index 0000000..c695f80 --- /dev/null +++ b/suredbits-wallet/docker-compose.yml @@ -0,0 +1,64 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: suredbits-wallet_web_1 + APP_PORT: 3002 + + web: + image: bitcoinscala/wallet-server-ui:1.9.7@sha256:50da55b6d607d03775041aa2c056c5fe281a33f0e471d58e07a99dd2670718e3 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/wallet:/bitcoin-s + - ${APP_DATA_DIR}/data/log:/log + environment: + LOG_PATH: "/log/" + BITCOIN_S_HOME: "/bitcoin-s/" + #MEMPOOL_API_URL: "http://dfwebos.local:${APP_MEMPOOL_PORT}/api" + WALLET_SERVER_API_URL: "http://suredbits-wallet_walletserver_1:9999/" + WALLET_SERVER_WS: "ws://suredbits-wallet_walletserver_1:19999/events" + TOR_PROXY: socks5://${TOR_PROXY_IP}:${TOR_PROXY_PORT} + DEFAULT_UI_PASSWORD: "none" + BITCOIN_S_SERVER_RPC_PASSWORD: $APP_PASSWORD + depends_on: + - walletserver + + walletserver: + image: bitcoinscala/bitcoin-s-server:1.9.7@sha256:cee2c4682d6172d6af2f0edfae016e3cc7aacc15ba56eb0652d9d65d31e7baf3 + entrypoint: ["/opt/docker/bin/bitcoin-s-server", "--datadir", "/bitcoin-s", "--conf", "/opt/docker/docker-application.conf"] + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/wallet:/bitcoin-s + environment: + BITCOIN_S_NODE_MODE: "bitcoind" + BITCOIN_S_NETWORK: $APP_BITCOIN_NETWORK + BITCOIN_S_KEYMANAGER_ENTROPY: $APP_SEED + BITCOIN_S_PROXY_ENABLED: "false" + BITCOIN_S_TOR_ENABLED: "false" + BITCOIN_S_TOR_PROVIDED: "true" + BITCOIN_S_DLCNODE_PROXY_ENABLED: "true" + BITCOIN_S_DLCNODE_PROXY_SOCKS5: "${TOR_PROXY_IP}:${TOR_PROXY_PORT}" + BITCOIN_S_DLCNODE_EXTERNAL_IP: $APP_SUREDBITS_WALLET_P2P_HIDDEN_SERVICE + BITCOIN_S_BITCOIND_HOST: $APP_BITCOIN_NODE_IP + BITCOIN_S_BITCOIND_PORT: $APP_BITCOIN_RPC_PORT + BITCOIN_S_BITCOIND_USER: $APP_BITCOIN_RPC_USER + BITCOIN_S_BITCOIND_PASSWORD: $APP_BITCOIN_RPC_PASS + BITCOIN_S_SERVER_RPC_PASSWORD: $APP_PASSWORD + JAVA_OPTS: "-Xmx756m" + DISABLE_JLINK: "1" + ports: + - "$APP_SUREDBITS_WALLET_P2P_PORT:$APP_SUREDBITS_WALLET_P2P_PORT" + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" diff --git a/suredbits-wallet/exports.sh b/suredbits-wallet/exports.sh new file mode 100644 index 0000000..4074875 --- /dev/null +++ b/suredbits-wallet/exports.sh @@ -0,0 +1,4 @@ +export APP_SUREDBITS_WALLET_P2P_PORT="2862" + +suredbits_wallet_p2p_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-p2p/hostname" +export APP_SUREDBITS_WALLET_P2P_HIDDEN_SERVICE="$(cat "${suredbits_wallet_p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")" \ No newline at end of file diff --git a/suredbits-wallet/hooks/pre-start b/suredbits-wallet/hooks/pre-start new file mode 100755 index 0000000..b3250f6 --- /dev/null +++ b/suredbits-wallet/hooks/pre-start @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ кошСлька Suredbits Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° скрытая слуТба Tor P2P Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π°. + +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-p2p/hostname" + +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach walletserver +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." + +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi \ No newline at end of file diff --git a/suredbits-wallet/torrc.template b/suredbits-wallet/torrc.template new file mode 100644 index 0000000..05c2334 --- /dev/null +++ b/suredbits-wallet/torrc.template @@ -0,0 +1,3 @@ +# Suredbits-кошСлСк P2P Бкрытая слуТба +HiddenServiceDir /data/app-$APP_ID-p2p +HiddenServicePort $APP_SUREDBITS_WALLET_P2P_PORT suredbits-wallet_walletserver_1:$APP_SUREDBITS_WALLET_P2P_PORT \ No newline at end of file diff --git a/swingmusic/data/config/.gitkeep b/swingmusic/data/config/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/swingmusic/data/config/.gitkeep @@ -0,0 +1 @@ + diff --git a/swingmusic/data/music/.gitkeep b/swingmusic/data/music/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/swingmusic/data/music/.gitkeep @@ -0,0 +1 @@ + diff --git a/swingmusic/dfwebos-app.yml b/swingmusic/dfwebos-app.yml new file mode 100644 index 0000000..bb8180f --- /dev/null +++ b/swingmusic/dfwebos-app.yml @@ -0,0 +1,44 @@ +manifestVersion: 1 +id: swingmusic +name: Swing Music +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ потоковая ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΌΡƒΠ·Ρ‹ΠΊΠΈ +category: media +version: "2.1.4" +port: 1970 +description: >- + 🎡 Swing Music β€” это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ β€” соврСмСнноС, чистоС ΠΈ ΠΌΠΎΡ‰Π½ΠΎΠ΅. + + Он позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой собствСнный частный сСрвис, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Spotify, Π΄ΠΎΠΌΠ°. + + + πŸ§‘β€πŸ’» Π‘ΠΎΠ·Π΄Π°Π½ΠΎ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + Swing Music сохраняСт ваши Π΄Π°Π½Π½Ρ‹Π΅ локально. РазмСститС свою ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, транслируйтС Π΅Π΅ ΠΈΠ· любого Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ. +developer: Mungai Njoroge +website: https://github.com/swing-opensource/swingmusic +submitter: panie18 +submission: https://github.com/getumbrel/dfwebos-apps/pull/3412 +repo: https://github.com/swing-opensource/swingmusic +support: https://github.com/swing-opensource/swingmusic/issues +defaultUsername: "admin" +defaultPassword: "admin" +dependencies: [] +releaseNotes: >- + 🚨 Π’ этом выпускС исправлСна ​​критичСская ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ бСзопасности (ΠΎΠ±Ρ…ΠΎΠ΄ ΠΏΡƒΡ‚ΠΈ Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²). Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π΅, особСнно Ссли ваш сСрвСр ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. + + + Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ скробблы Last.fm ΡΠΎΡ…Ρ€Π°Π½ΡΠ»ΠΈΡΡŒ Π½Π΅ для Ρ‚ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€ΠΎΠ»ΡŒ администратора. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой Windows ΠΏΡ€ΠΈ запускС. + - ОбновлСн Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ список игнорирования исполнитСлСй ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + - ΠΠ»ΡŒΠ±ΠΎΠΌΡ‹, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° «альбом», Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ саундтрСки. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/swing-opensource/swingmusic/releases. +path: "/" +gallery: + - 1.jpg + - 2.jpg + - 3.jpg diff --git a/swingmusic/docker-compose.yml b/swingmusic/docker-compose.yml new file mode 100644 index 0000000..9d06068 --- /dev/null +++ b/swingmusic/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.9" + +services: + app_proxy: + environment: + APP_HOST: swingmusic_app_1 + APP_PORT: 1970 + PROXY_AUTH_ADD: "false" + + app: + image: ghcr.io/swingmx/swingmusic:v2.1.4@sha256:89009c016848946c35418eb8459fee9eba044fb3a4cd6808160a510ecb8b22f6 + restart: on-failure + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${APP_DATA_DIR}/data/music:/music:rw + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads diff --git a/synapse/data/synapse/.gitkeep b/synapse/data/synapse/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/synapse/dfwebos-app.yml b/synapse/dfwebos-app.yml new file mode 100644 index 0000000..b4b4dcd --- /dev/null +++ b/synapse/dfwebos-app.yml @@ -0,0 +1,54 @@ +manifestVersion: 1.1 +id: synapse +category: social +name: Synapse +version: "1.151.0" +tagline: Π”ΠΎΠΌΠ°ΡˆΠ½ΠΈΠΉ сСрвСр ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ +description: >- + Synapse β€” это рСализация домашнСго сСрвСра Matrix с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, написанная ΠΈ поддСрТиваСмая Element. Matrix β€” это ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ стандарт для бСзопасной ΠΈ совмСстимой связи Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + + + πŸ’‘ Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ + + + Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Matrix, Π²Π°ΠΌ понадобится ΠΊΠ»ΠΈΠ΅Π½Ρ‚. Бписок популярных ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://matrix.org/ecosystem/clients/ + + + Π’ Matrix ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ управляСт ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ Matrix, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ Π΄ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΌΡƒ сСрвСру Matrix. Π”ΠΎΠΌΠ°ΡˆΠ½ΠΈΠΉ сСрвСр Ρ…Ρ€Π°Π½ΠΈΡ‚ всю Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ‡Π°Ρ‚ΠΎΠ² ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записях ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ сСрвСру IMAP/SMTP. + Как ΠΈ Π² случаС с элСктронной ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ собствСнный домашний сСрвСр Matrix, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ своими сообщСниями ΠΈ историСй, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ сСрвСр (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Matrix.org). Π£ Matrix Π½Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ контроля ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ поставщика услуг, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ WhatsApp, Facebook, Hangouts ΠΈ Ρ‚. Π΄. + + + πŸ› οΈ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° + + + Для Π½Π°Ρ‡Π°Π»Π° установитС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Β» Π½Π° свой DFWebOS ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Matrix Π½Π° устройство ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ. Когда Π²Ρ‹ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ΡΡŒ ΠΈΠ»ΠΈ Π²Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² систСму Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ адрСс домашнСго сСрвСра, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚Π΅, со значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Matrix.org Π½Π° http://dfwebos.local:8008 для локального доступа. + + + Для бСспСрСбойного ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π΄Π°ΠΆΠ΅ Ссли ваш ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ Ρ‚ΠΎΠΉ ΠΆΠ΅ сСти, Ρ‡Ρ‚ΠΎ ΠΈ ваш DFWebOS, просто установитС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Tailscale Π½Π° свой DFWebOS ΠΈ своС клиСнтскоС устройство ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ http://dfwebos:8008 Π² качСствС адрСса вашСго сСрвСра. +developer: Element +website: https://element-hq.github.io/synapse/latest/ +dependencies: [] +repo: https://github.com/element-hq/synapse +support: https://github.com/element-hq/synapse/issues +port: 8008 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/commit/c9f0975e766e79d4bd6adf4255cd081f54d654cb +releaseNotes: >- + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСрвСров ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ (MSC4284). + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° получСния ΠΎΠ±Ρ‰ΠΈΡ… ΠΊΠΎΠΌΠ½Π°Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HTTP/2 вмСсто ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ тСкста ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ слуТбС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Matrix. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ сбои синхронизации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ для ΠΊΠΎΠΌΠ½Π°Ρ‚, вСрсия ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отсутствовала Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ API-интСрфСйсы администратора ΠΊΠ°Ρ€Π°Π½Ρ‚ΠΈΠ½Π½Ρ‹Ρ… носитСлСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»ΠΈ Π½Π΅Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ значСния для ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… носитСлСй. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Synapse Π½Π΅ запускался ΠΏΡ€ΠΈ сбоС обнаруТСния ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° OpenID Connect. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/element-hq/synapse/releases. \ No newline at end of file diff --git a/synapse/docker-compose.yml b/synapse/docker-compose.yml new file mode 100644 index 0000000..183354a --- /dev/null +++ b/synapse/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: synapse_server_1 + APP_PORT: $APP_SYNAPSE_PORT + PROXY_AUTH_ADD: "false" + + server: + image: matrixdotorg/synapse:v1.151.0@sha256:184dc8757daef019b511e7f96fc6e5edfb880fd074d8cf702c7e3aa899d188c8 + restart: on-failure + stop_grace_period: 1m + entrypoint: "bash" + command: "-c './start.py generate && ./start.py migrate_config && echo -e \"\nenable_registration_without_verification: true\" >> /data/homeserver.yaml && exec ./start.py'" + volumes: + - ${APP_DATA_DIR}/data/synapse:/data + environment: + UID: "1000" + GID: "1000" + SYNAPSE_HTTP_PORT: "${APP_SYNAPSE_PORT}" + SYNAPSE_SERVER_NAME: "${APP_HIDDEN_SERVICE}" + SYNAPSE_REPORT_STATS: "yes" + SYNAPSE_ENABLE_REGISTRATION: "yes" + SYNAPSE_NO_TLS: "yes" diff --git a/synapse/exports.sh b/synapse/exports.sh new file mode 100644 index 0000000..8007a03 --- /dev/null +++ b/synapse/exports.sh @@ -0,0 +1,2 @@ +export APP_SYNAPSE_PORT="8008" +export APP_SYNAPSE_TOR_HS_EXTRA_PORTS="${APP_SYNAPSE_PORT}:synapse_server_1:${APP_SYNAPSE_PORT}" \ No newline at end of file diff --git a/syncthing/data/.gitkeep b/syncthing/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/syncthing/dfwebos-app.yml b/syncthing/dfwebos-app.yml new file mode 100644 index 0000000..497e58d --- /dev/null +++ b/syncthing/dfwebos-app.yml @@ -0,0 +1,39 @@ +manifestVersion: 1 +id: syncthing +category: files +name: Syncthing +version: "2.0.16" +tagline: ΠžΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Π°Ρ синхронизация Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ вашими устройствами +description: >- + Syncthing β€” это одноранговая нСпрСрывная синхронизация Ρ„Π°ΠΉΠ»ΠΎΠ². + ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Он синхронизируСт Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½ ΠΎΡ‚ посторонних Π³Π»Π°Π·. Π’Π°ΡˆΠΈ Π΄Π°Π½Π½Ρ‹Π΅ β€” это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ваши Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ Π²Ρ‹ + Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹Π±ΠΎΡ€Π°, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ, Π±ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ Π»ΠΈΡ†Π°ΠΌ. + Π²Π΅Ρ‡Π΅Ρ€ΠΈΠ½ΠΊΠ΅ ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° пСрСдаСтся Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. + + + УстановитС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Syncthing Π½Π° свой DFWebOS ΠΈ соСдинитС Π΅Π³ΠΎ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Syncthing Π½Π° своСм Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования. +developer: The Syncthing Foundation +website: https://syncthing.net +dependencies: [] +repo: https://github.com/syncthing/syncthing +support: https://forum.syncthing.net +port: 8384 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultPassword: "" +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько исправлСний ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄Π»ΠΈΠ½Ρ‹ сТатого сообщСния ΠΏΠ΅Ρ€Π΅Π΄ распаковкой. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° слуТба systemd для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ пСрСопрСдСлСния владСния синхронизациСй. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° пСсочница systemd для восстановлСния ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², связанных с chown. + - ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ соСдинСния Π·Π° счСт использования ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для QUIC ΠΈ TCP. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ SQLite Π·Π° счСт ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ максимального числа ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… соСдинСний ΠΈ сохранСния ΠΈΡ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ постоянно. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/syncthing/syncthing/releases. +submitter: Sam Cymbaluk +submission: https://github.com/getumbrel/umbrel/pull/1092 diff --git a/syncthing/docker-compose.yml b/syncthing/docker-compose.yml new file mode 100644 index 0000000..ae18dfb --- /dev/null +++ b/syncthing/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: syncthing_server_1 + APP_PORT: 8384 + + server: + image: syncthing/syncthing:2.0.16@sha256:4a961394ca471f4e48f31ad2cef50697e502c8799e2e98477a1c3844e0c5bc54 + restart: on-failure + stop_grace_period: 1m + hostname: dfwebos + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data:/var/syncthing + ports: + - 22000:22000/tcp + - 22000:22000/udp diff --git a/tailscale/data/.gitkeep b/tailscale/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tailscale/dfwebos-app.yml b/tailscale/dfwebos-app.yml new file mode 100644 index 0000000..db039fa --- /dev/null +++ b/tailscale/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1 +id: tailscale +category: networking +name: Tailscale +version: "v1.96.5" +tagline: НулСвая настройка VPN для доступа ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ DFWebOS ΠΈΠ· любого мСста +description: >- + Tailscale β€” это VPN Π±Π΅Π· настройки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ + вашим DFWebOS ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ вашими устройствами. Π”Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ мСТсСтСвыми экранами ΠΈΠ»ΠΈ + подсСти, Tailscale просто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. + + + Tailscale Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Π°ΡˆΠ΅ΠΌΡƒ DFWebOS ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ IP-адрСс ΠΈ автоматичСски Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΎΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ останСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ сСти ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ваш DFWebOS. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ локальная ΡΠ΅Ρ‚ΡŒ, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π΅Π·Π΄Π΅. + + + Tailscale опираСтся Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Noise WireGuardΒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ ΠΈ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ довСрия стандарт. +developer: Tailscale Inc. +website: https://tailscale.com +dependencies: [] +repo: https://github.com/tailscale/tailscale +support: https://tailscale.com/contact/support +port: 8240 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/pull/1248 +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://tailscale.com/changelog#service. \ No newline at end of file diff --git a/tailscale/docker-compose.yml b/tailscale/docker-compose.yml new file mode 100644 index 0000000..9aa3f50 --- /dev/null +++ b/tailscale/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3.7" + +services: + web: + network_mode: "host" # TODO: We can remove this later with some iptables magic + image: tailscale/tailscale:v1.96.5@sha256:dbeff02d2337344b351afac203427218c4d0a06c43fc10a865184063498472a6 + restart: on-failure + stop_grace_period: 1m + command: "sh -c 'tailscale web --listen 0.0.0.0:8240 & exec tailscaled --tun=userspace-networking'" + volumes: + - ${APP_DATA_DIR}/data:/var/lib diff --git a/tailscale/exports.sh b/tailscale/exports.sh new file mode 100644 index 0000000..dd27d3d --- /dev/null +++ b/tailscale/exports.sh @@ -0,0 +1,18 @@ +# ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ выполняСм установку Tailscale +if ! cat "${DFWEBOS_ROOT}/db/user.json" | grep --quiet '"tailscale"' +then + + # Π˜ΡΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сцСнарий прилоТСния вСрсии 0.5.0, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ бСсконСчный Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ внСсСниС странных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ сцСнарии прилоТСния. + if sha256sum "${DFWEBOS_ROOT}/scripts/app" | grep '43d41ead6963780289e381a172ea346603e36ae650f9e5c878e93aa5c1f78e15\|1620d0e2cfd9cb70e300e28cd3c93a03c00ee65175fe0281a71f62793cc05e19' + then + echo "Detected Tailscale install, we need to patch the install script so this doesn't fail!" + + echo "Patching app script..." + sed -i 's/^ wait_for_tor_hs/ [[ "${app}" != "tailscale" ]] \&\& wait_for_tor_hs/g' "${DFWEBOS_ROOT}/scripts/app" + + echo "Attempting new install after patch" + "${DFWEBOS_ROOT}/scripts/app" install tailscale + + exit # this kills the original install script process + fi +fi diff --git a/tallycoin-connect/data/.gitkeep b/tallycoin-connect/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tallycoin-connect/dfwebos-app.yml b/tallycoin-connect/dfwebos-app.yml new file mode 100644 index 0000000..4951ece --- /dev/null +++ b/tallycoin-connect/dfwebos-app.yml @@ -0,0 +1,39 @@ +manifestVersion: 1.2 +id: tallycoin-connect +category: bitcoin +name: Tallycoin Connect +version: "1.8.0-1" +tagline: ΠŸΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Π½ΠΈΡ Crowfund нСпосрСдствСнно Π½Π° ваш ΡƒΠ·Π΅Π» DFWebOS с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Tallycoin +description: >- + ⚠️ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± устарСвании: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° объявили это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΈ поэтому большС Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ обновлСния. + ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Tallycoin Π·Π°ΠΊΡ€Ρ‹Π»Π°ΡΡŒ 1 июня 2024 Π³ΠΎΠ΄Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСрвис Tallycoin Connect Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. + + + Tallycoin β€” это краудфандинговая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с поТСртвованиями Π² Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½Π°Ρ… ΠΈ молниях. ВмСстС с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Tallycoin Connect Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ поТСртвования нСпосрСдствСнно Π½Π° свой ΡƒΠ·Π΅Π» DFWebOS. Ноль комиссий! +developer: djbooth007 +website: https://tallycoin.app/connect/ +dependencies: + - lightning +repo: https://github.com/djbooth007/tallycoin_connect +support: https://github.com/djbooth007/tallycoin_connect/issues +port: 8124 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: true +releaseNotes: >- + 🚨 Π’ΠΠ–ΠΠž: Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½Π° своСм DFWebOS прилоТСния Tallycoin Connect ΠΈ Home Assistant, + поТалуйста, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Tallycoin Connect Π΄ΠΎ послСднСй вСрсии ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Home Assistant. Π­Ρ‚ΠΎΡ‚ шаг + обСспСчиваСт Π±Π΅ΡΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, прСдотвращая ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ двумя прилоТСниями. + + + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ измСняСт ΠΏΠΎΡ€Ρ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Tallycoin Connect, с 8123 Π½Π° 8124. Π­Ρ‚ΠΎ сдСлано Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ + ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΏΠΎΡ€Ρ‚Π° с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Home Assistant, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 8123. + + + Для самого прилоТСния Tallycoin Connect ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π΅Ρ‚. +submitter: d11n +submission: https://github.com/getumbrel/umbrel/pull/1052 +disabled: true diff --git a/tallycoin-connect/docker-compose.yml b/tallycoin-connect/docker-compose.yml new file mode 100644 index 0000000..3c24322 --- /dev/null +++ b/tallycoin-connect/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: tallycoin-connect_web_1 + APP_PORT: 8123 + + web: + image: djbooth007/tallycoin_connect:v1.8.0@sha256:818868d99fcec7e0c371ff9b169b413627bc032218aa3aa0b7a99f14d0c598fd + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + - ${APP_DATA_DIR}/data:/data + environment: + LND_SOCKET: "$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT" + LND_MACAROON_PATH: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/admin.macaroon" + LND_TLSCERT_PATH: "/lnd/tls.cert" + CONFIG_FILE: "/data/tallycoin_api.key" + TALLYCOIN_PASSWD_CLEARTEXT: "$APP_PASSWORD" diff --git a/tallycoin-connect/hooks/post-update b/tallycoin-connect/hooks/post-update new file mode 100755 index 0000000..29b11ec --- /dev/null +++ b/tallycoin-connect/hooks/post-update @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +# пСрСзапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠ²Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° Π±Ρ‹Π» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ +"${DFWEBOS_ROOT}/scripts/app" restart "${APP_ID}" & \ No newline at end of file diff --git a/tautulli/dfwebos-app.yml b/tautulli/dfwebos-app.yml new file mode 100644 index 0000000..01b642e --- /dev/null +++ b/tautulli/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: tautulli +category: media +name: tautulli +version: "2.17.0" +tagline: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой ΠΌΠ΅Π΄ΠΈΠ°-сСрвСр Plex +description: >- + Tautulli β€” это стороннСС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ вмСстС с мСдиасСрвСром Plex для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° активности ΠΈ отслСТивания Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ статистики. + Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ эта статистика Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ смотрСли, ΠΊΡ‚ΠΎ это смотрСл, ΠΊΠΎΠ³Π΄Π° ΠΈ Π³Π΄Π΅ ΠΎΠ½ΠΈ это смотрСли ΠΈ ΠΊΠ°ΠΊ это смотрСли. + ЕдинствСнноС, Ρ‡Π΅Π³ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚, это Β«ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ это посмотрСли», Π½ΠΎ ΠΊΡ‚ΠΎ я Ρ‚Π°ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Ρ‚ΡŒ сомнСнию ваши 42 ΠΏΡŒΠ΅ΡΡ‹ Β«Π₯ΠΎΠ»ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрдца». + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Π’ΠΎ врСмя ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ настройки Π²Π°ΠΌ потрСбуСтся ввСсти IP-адрСс вашСго устройства DFWebOS для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ мСдиасСрвСру Plex. + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ IP-адрСс вашСго устройства, посСтив панСль администратора вашСго ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнт сканирования IP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Angry IP Scanner. +developer: Tautulli +website: https://tautulli.com/ +dependencies: [] +repo: https://github.com/Tautulli/Tautulli +support: https://github.com/Tautulli/Tautulli/wiki +port: 8212 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +releaseNotes: >- + ⚠️ Π’ вСрсиях Tautulli <=2.16.1 ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ нСсколько уязвимостСй бСзопасности. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ послСднСй вСрсии. + + + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько исправлСний ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ бСзопасности: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ΅ тСкста увСдомлСния (CVE-2026-28505). + β€” Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ get_home_stats API (CVE-2026-31799). + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΎΠ±Ρ…ΠΎΠ΄ ΠΏΡƒΡ‚ΠΈ Π±Π΅Π· Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ изобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π±ΡŽΠ»Π»Π΅Ρ‚Π΅Π½Ρ (CVE-2026-31831). + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° JSONP (CVE-2026-32275). + β€” Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° аутСнтификация для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ прокси-сСрвСра ΠΎΠ±Ρ€Π°Π·Π° PMS (CVE-2026-31804). + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ экспорта ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΠΊΠ½ΠΎ истории, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π±ΡŽΠ»Π»Π΅Ρ‚Π΅Π½ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Plex. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΈ подробная информация доступны ΠΏΠΎ адрСсу https://github.com/Tautulli/Tautulli/releases. +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/673 diff --git a/tautulli/docker-compose.yml b/tautulli/docker-compose.yml new file mode 100644 index 0000000..fa346f9 --- /dev/null +++ b/tautulli/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: tautulli_web_1 + APP_PORT: 8181 + + web: + image: linuxserver/tautulli:2.17.0@sha256:b7ab997603ac54ce9cebd0e546f2c626c646d9f5b9841d8842b8a75edbc3326a + volumes: + - ${APP_DATA_DIR}/data/config:/config + restart: on-failure + environment: + - PUID=1000 + - PGID=1000 diff --git a/tdex/caddy-data/Caddyfile b/tdex/caddy-data/Caddyfile new file mode 100644 index 0000000..49c053a --- /dev/null +++ b/tdex/caddy-data/Caddyfile @@ -0,0 +1,6 @@ +:8080 { + handle_path /api/* { + reverse_proxy tdex_tdexd_1:9092 + } + reverse_proxy tdex_dashboard_1:8080 +} diff --git a/tdex/dfwebos-app.yml b/tdex/dfwebos-app.yml new file mode 100644 index 0000000..d0b9599 --- /dev/null +++ b/tdex/dfwebos-app.yml @@ -0,0 +1,57 @@ +manifestVersion: 1.1 +id: tdex +category: bitcoin +name: TDEX Provider +version: "1.0.1-hotfix" +tagline: ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΡŒΡ‚Π΅ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Π² сСти TDEX, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ для Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ Liquid Network. +description: >- + ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊ ликвидности Ρ…Ρ€Π°Π½ΠΈΡ‚ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Ρ‹ BASE_ASSET-QUOTE_ASSET Π² своСм Π½Π΅ΠΊΠ°ΡΡ‚ΠΎΠ΄ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ горячСм кошСлькС Liquid, + ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… стратСгий ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚-ΠΌΠ΅ΠΉΠΊΠΈΠ½Π³Π° с ΠΎΡ€Π°ΠΊΡƒΠ»ΠΎΠΌ ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ. ΠŸΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ заинтСрСсованы Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ + Π±Ρ‹Ρ‚ΡŒ всСгда Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· Clearnet, Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скрытой слуТбы Onion. + + + ΠΠ΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ комиссию ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сдСлки ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ€Π΅Π·Π΅Ρ€Π²Ρ‹. ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊ ликвидности ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ + Π½Π°Π΄ Ρ€Ρ‹Π½ΠΎΡ‡Π½ΠΎΠΉ стратСгиСй, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для расчСта Ρ€Ρ‹Π½ΠΎΡ‡Π½ΠΎΠΉ ставки, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ сдСлки. ΠŸΡ€ΠΈ этом, + Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚-ΠΌΠ΅ΠΉΠΊΠΈΠ½Π³Π°, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° остатки Ρ€Π΅Π·Π΅Ρ€Π²ΠΎΠ² ΠΈ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΡƒΡŽ сумму + Ρ‚Ρ€Π΅ΠΉΠ΄Π΅Ρ€ΠΎΠΌ Π±Π΅Π· нСобходимости ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ источнику Ρ†Π΅Π½. Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠ΅ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΄Π΅ΠΌΠΎΠ½Π° Π°Π»ΡŒΡ„Π° являСтся + постоянноС созданиС Ρ€Ρ‹Π½ΠΊΠ° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ. ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, эта модСль Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ Π·Π°ΠΊΠ°Π·ΠΎΠ² Π½Π° основС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π½Ρ‹ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅. + КаТдая транзакция, происходящая Π½Π° этом Ρ€Ρ‹Π½ΠΊΠ΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Ρ‹Π½ΠΎΡ‡Π½Ρ‹Π΅ Ρ†Π΅Π½Ρ‹. +releaseNotes: >- + Π­Ρ‚ΠΎ выпуск исправлСния, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½ΠΎΠ²Ρ‹Ρ… установок прилоТСния TDEX Provider. + + + ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии 1.0.1: + + + 🚨 Π’ΠΠ–ΠΠž: ΠŸΠ•Π Π•Π” ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас записана Ρ„Ρ€Π°Π·Π° восстановлСния ΠΈΠ· 24 слов. + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ вас Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свой кошСлСк с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Ρ€Π°Π·Ρ‹ восстановлСния ΠΈΠ· 24 слов. + + + Π­Ρ‚ΠΎ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΌΠΎΠ½Π° TDEX, содСрТащСС ряд ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС: + + - ОбновлСниС Π΄ΠΎ TDEXv2: интСрфСйс Trade Π΄Π΅ΠΌΠΎΠ½Π° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ спСцификации Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TDEX v2. Π‘ этим ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π΅ΠΌΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ + использованиС PSETv2 ΠΊΠ°ΠΊ способа описания ΠΈ построСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ (вмСсто старого PSETv0), Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² соотвСтствии с + ΠΏΠΎ спСц. + + - ΠžΡ‚ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ кошСлька: Π΄Π΅ΠΌΠΎΠ½Ρƒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ трСбуСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΡˆΠ΅Π»ΡŒΠΊΡƒ Ocean, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ°Ρ€ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. + ΠΈ просканируйтС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π½Π° ΠΈΡ… Π½Π°Π»ΠΈΡ‡ΠΈΠ΅. КошСлСк Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ события, потрСбляСмыС Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ для ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ…/Π½Π΅ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈ utxos. + Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ слуТбы. + Π’Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ срСдства, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½Π° счСт Π΄Π°ΠΌΠ΅ΠΎΠ½Π°. + + - ВстроСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄Π°Ρ‡ΠΈ Ρ†Π΅Π½: Π΄Π΅ΠΌΠΎΠ½ позволяСт Π²Π°ΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Ρ†Π΅Π½ для Π²Π°ΡˆΠΈΡ… Ρ€Ρ‹Π½ΠΊΠΎΠ² с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌΠΈ стратСгиями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… Ρ†Π΅Π½Ρ‹ всСгда Π±Ρ‹Π»ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. +dependencies: [] +developer: TDEX Network +website: https://dev.tdex.network +repo: https://github.com/tdex-network/tdex-daemon +support: https://t.me/tdexnetwork +submitter: TDEX Network (tiero) +submission: https://github.com/getumbrel/dfwebos-apps/pull/151 +port: 9094 +torOnly: false +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" \ No newline at end of file diff --git a/tdex/docker-compose.yml b/tdex/docker-compose.yml new file mode 100644 index 0000000..8005084 --- /dev/null +++ b/tdex/docker-compose.yml @@ -0,0 +1,68 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: tdex_caddy_1 + APP_PORT: 8080 + + oceand: + image: ghcr.io/vulpemventures/oceand:v0.1.17@sha256:37b813b43b068e32d918b9f42539c33287308cc81d00909c742b7164dfefc0c4 + tty: true + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/ocean-data:/home/ocean/.oceand + environment: + OCEAN_LOG_LEVEL: 5 + OCEAN_DB_TYPE: "badger" + OCEAN_NO_TLS: "true" + OCEAN_NO_PROFILER: "true" + OCEAN_UTXO_EXPIRY_DURATION_IN_SECONDS: 240 + + tdexd: + image: ghcr.io/tdex-network/tdexd:v1.0.1@sha256:eef1f31e98208e9a35ddf308317bc1df71065e189fa0915c769c7a01394ef79a + tty: true + restart: on-failure + depends_on: + - oceand + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/tdexd:/home/tdex/.tdex-daemon + ports: + - ${APP_TDEX_PORT}:${APP_TDEX_PORT} + environment: + TDEX_LOG_LEVEL: 5 + TDEX_OPERATOR_LISTENING_PORT: "${APP_TDEX_PORT}" + TDEX_TRADE_LISTENING_PORT: "${APP_TDEX_PORT}" + TDEX_NO_OPERATOR_TLS: "true" + TDEX_WALLET_ADDR: oceand:18000 + # эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания соСдинСния URL + # ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ всСгда ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ внСшнюю ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ + # доступСн ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ‡Π΅Ρ€Π΅Π· Tor + TDEX_CONNECT_ADDR: "${APP_TDEX_DAEMON_HIDDEN_SERVICE}" + TDEX_CONNECT_PROTO: http + + dashboard: + image: ghcr.io/tdex-network/dashboard:v1.0.2@sha256:71d598afb0d5ec9966306f4ef0d5f6839a9d7dc50726a935f3d0bb38f1925d78 + restart: on-failure + environment: + USE_PROXY: "false" + IS_PACKAGED: "true" + TRADER_HIDDEN_SERVICE: "${APP_TDEX_DAEMON_HIDDEN_SERVICE}" + + caddy: + image: caddy:2.6.4-alpine@sha256:4dfec6c3b22c36b63ea4a3633c7cdbdaa9926d1324c27db2b0e2b70ef9cd105a + restart: on-failure + volumes: + - ${APP_DATA_DIR}/caddy-data/Caddyfile:/etc/caddy/Caddyfile + + tor: + image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro + - ${TOR_DATA_DIR}:/data + environment: + HOME: "/tmp" diff --git a/tdex/exports.sh b/tdex/exports.sh new file mode 100644 index 0000000..947ba40 --- /dev/null +++ b/tdex/exports.sh @@ -0,0 +1,4 @@ +export APP_TDEX_PORT="9092" + +daemon_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-daemon/hostname" +export APP_TDEX_DAEMON_HIDDEN_SERVICE="$(cat "${daemon_hidden_service_file}" 2>/dev/null || echo "daemon_not_yet_set.onion")" diff --git a/tdex/hooks/pre-start b/tdex/hooks/pre-start new file mode 100755 index 0000000..27e6b12 --- /dev/null +++ b/tdex/hooks/pre-start @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +set -euo pipefail + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" + +# ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Caddyfile, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ tdexd. +CADDYFILE_PATH="${APP_DATA_DIR}/caddy-data/Caddyfile" +sed -i 's/tdex_tdexd_1:9090/tdex_tdexd_1:9092/g' "${CADDYFILE_PATH}" + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ocean-data сущСствуСт для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΈΠ· старой вСрсии, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ. +OCEAN_DATA_DIR="${APP_DATA_DIR}/ocean-data" + +[ ! -d "${OCEAN_DATA_DIR}" ] && mkdir -p "${OCEAN_DATA_DIR}" && chown 1000:1000 "${OCEAN_DATA_DIR}" + +# Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ tdexd сущСствуСт для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· старой структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² tdex-data. +TDEXD_DATA_DIR="${APP_DATA_DIR}/tdexd" + +[ ! -d "${TDEXD_DATA_DIR}" ] && mkdir -p "${TDEXD_DATA_DIR}" && chown 1000:1000 "${TDEXD_DATA_DIR}" + +# ΠžΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ TDEX Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° скрытая слуТба Tor Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π°. +HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-daemon/hostname" +if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + exit +fi + +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach oceand +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tdexd + +echo "App: ${APP_ID} - Generating Tor Hidden Service..." +for attempt in $(seq 1 100); do + if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file created successfully!" + break + fi + sleep 0.1 +done + +if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then + echo "App: ${APP_ID} - Hidden service file wasn't created" +fi diff --git a/tdex/ocean-data/.gitkeep b/tdex/ocean-data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tdex/tdexd/.gitkeep b/tdex/tdexd/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tdex/torrc.template b/tdex/torrc.template new file mode 100644 index 0000000..61d653d --- /dev/null +++ b/tdex/torrc.template @@ -0,0 +1,3 @@ +# TDEX Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ интСрфСйс ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅ΠΉΠ΄Π΅Ρ€Π° +HiddenServiceDir /data/app-$APP_ID-daemon +HiddenServicePort 80 tdex_tdexd_1:$APP_TDEX_PORT diff --git a/teamspeak/data/.gitkeep b/teamspeak/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/teamspeak/dfwebos-app.yml b/teamspeak/dfwebos-app.yml new file mode 100644 index 0000000..254c8ca --- /dev/null +++ b/teamspeak/dfwebos-app.yml @@ -0,0 +1,85 @@ +manifestVersion: 1 +id: teamspeak +name: TeamSpeak +tagline: ΠŸΡ€ΠΎΡΡ‚Π°Ρ, бСзопасная ΠΈ качСствСнная связь для ΠΈΠ³Ρ€, обучСния, бизнСса ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. +category: social +version: "3.13.7" +port: 50371 +description: >- + ⚠️ Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ ΠΈΠ· DFWebOS App Store, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для запуска TeamSpeak Π½Π° устройствах Arm64. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ установки ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. TeamSpeak скоро вСрнСтся! + + + Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎ чистый Π·Π²ΡƒΠΊ для общСния с Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Π°ΠΌΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ уровня, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π±Π΅Π· Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΈ + нСпрСвзойдСнная Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ врСмя Π±Π΅Π·ΠΎΡ‚ΠΊΠ°Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + 1) Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ TeamSpeak для ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΉ Π²Π°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: https://www.teamspeak.com/downloads.. + Π’Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ своСго ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ TeamSpeak Π½Π° своСм DFWebOS. + + + 2) Π’ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TeamSpeak Π½Π° своСм устройствС DFWebOS, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ для Π²Ρ…ΠΎΠ΄Π°: + + - Π‘Π΅Ρ€Π²Π΅Ρ€: Teamspeak_server_1 + + - ΠŸΠΎΡ€Ρ‚: 10011 + + - SSH: Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ + + - Имя: serveradmin (имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ здСсь Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡ΠΊΡƒ прилоТСния Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС) + + - ΠŸΠ°Ρ€ΠΎΠ»ΡŒ: (ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ здСсь Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡ΠΊΡƒ прилоТСния Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС) + + 3) ЗаявитС ΠΏΡ€Π°Π²Π° Π½Π° свой сСрвСр ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° TeamSpeak, создав ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ TeamSpeak Π½Π° вашСм DFWebOS ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π² Π΅Π³ΠΎ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. + + + πŸŽ™οΈ НСпрСвзойдСнноС качСство ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ голоса + + ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎ чистоС ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π±Π΅Π· Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ благодаря встроСнной автоматичСской Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ΅ громкости ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π° ΠΈ сниТСнию Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΡˆΡƒΠΌΠ°. + ΠΈ эхоподавлСниС. + + + 🎭 ВстроСнная ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ + + Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΌΡ‹ Π½Π΅ ΠΈΠΌΠ΅Π΅ΠΌ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ вашСго голосового ΠΈΠ»ΠΈ тСкстового Ρ‡Π°Ρ‚Π°, ΠΈ рСгистрация Π½Π΅ трСбуСтся. + + + πŸ›‘οΈ Π‘Π•Π—ΠžΠŸΠΠ‘ΠΠžΠ‘Π’Π¬, КАК НИКАКАЯ ДРУГАЯ + + Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ уровня Π² стандартной ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°Ρ†ΠΈΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TS3 ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° основС AES ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ для всСго сСрвСра ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½Π΅Π³ΠΎ. + ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹. + + + 🎚️ Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ систСма Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ + + ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСй ΠΌΠΎΡ‰Π½ΠΎΠΉ, Π»ΡƒΡ‡ΡˆΠ΅ΠΉ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ иСрархичСской систСмы Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π Π΅ΡˆΠΈΡ‚Π΅, ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΊ ΠΊΠ°Π½Π°Π»Π°ΠΌ + ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + + πŸ”Š ΠŸΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹ΠΉ Π·Π²ΡƒΠΊ + + Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ событий с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Π·Π²ΡƒΠΊΠΎΠΌ. Π‘Π»ΡƒΡˆΠ°ΠΉΡ‚Π΅ своих Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Π΅ΠΉ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π² Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΌ пространствС Π½Π° 360Β°, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ прСимущСство ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ дСйствий. + ваш ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ»Π°Π½ ΠΈΠ³Ρ€Ρ‹. + + + 🎨 БСзграничная настройка + + Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ TeamSpeak своим собствСнным ΠΈ настройтС свой ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π² соотвСтствии со своим Π»ΠΈΡ‡Π½Ρ‹ΠΌ стилСм с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π·Π²ΡƒΠΊΠΎΠ² ΠΈ Π·Π½Π°Ρ‡ΠΊΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ + Ρ‚Π΅ΠΌΡ‹. Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈΠ· сотСн Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ, созданных сообщСством ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ создавайтС свои собствСнныС. +developer: TeamSpeak Systems, Inc. +website: https://www.teamspeak.com +repo: "" +submitter: Sharknoon +submission: https://github.com/getumbrel/dfwebos-apps/pull/1112 +support: https://support.teamspeak.com +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: "" +dependencies: [] +path: "" +defaultUsername: serveradmin +deterministicPassword: true +disabled: true \ No newline at end of file diff --git a/teamspeak/docker-compose.yml b/teamspeak/docker-compose.yml new file mode 100644 index 0000000..6111c92 --- /dev/null +++ b/teamspeak/docker-compose.yml @@ -0,0 +1,31 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: teamspeak_ui_1 + APP_PORT: 8080 + + ui: + image: joni1802/ts3-manager:v2.2.1@sha256:d69890c323e8715cef0f625036c7c51ec7e7da321438897633fff5df83da1e39 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + JWT_SECRET: $APP_SEED + + server: + image: teamspeak:3.13.7@sha256:b5bdec55bc87b992c5658e739f3ce465644efa6d997633110b12be3dc3a10796 + # TeamSpeak Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. + #user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + ports: + - 9987:9987/udp + - 10011:10011 + - 30033:30033 + volumes: + - ${APP_DATA_DIR}/data:/var/ts3server + environment: + TS3SERVER_LICENSE: accept + TS3SERVER_SERVERADMIN_PASSWORD: $APP_PASSWORD \ No newline at end of file diff --git a/technitium-dns/data/.gitkeep b/technitium-dns/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/technitium-dns/dfwebos-app.yml b/technitium-dns/dfwebos-app.yml new file mode 100644 index 0000000..0c38c04 --- /dev/null +++ b/technitium-dns/dfwebos-app.yml @@ -0,0 +1,42 @@ +manifestVersion: 1 +id: technitium-dns +category: networking +name: Technitium DNS Server +version: "14.2.0" +tagline: Π‘Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ ΠΈ врСдоносноС ПО Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ DNS для всСй вашСй сСти. +description: >- + DNS-сСрвСр Technitium β€” это Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ рСкурсивный DNS-сСрвСр с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния DNS-сСрвСра Π² цСлях ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ бСзопасности. + Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ» Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ настроСк ΠΈΠ»ΠΈ с минимальной настройкой. +releaseNotes: >- + 🚨 Π­Ρ‚ΠΎΡ‚ основной выпуск обновляСтся Π΄ΠΎ срСды выполнСния .NET 9 ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ исправлСния бСзопасности. ВсС ΡƒΠ·Π»Ρ‹ кластСра Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ вмСстС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ°Π·Π° Π² обслуТивании ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ограничСния скорости с ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ QPM. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ отравлСния кэша ΠΈΠ·-Π·Π° Π°Ρ‚Π°ΠΊ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ IP. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ пониТСния вСрсии DNSSEC, которая ΠΌΠΎΠ³Π»Π° ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция кластСризации для управлСния нСсколькими экзСмплярами DNS-сСрвСра с Π΅Π΄ΠΈΠ½ΠΎΠΉ консоли. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (2FA) с TOTP. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ MISP Connector для Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ врСдоносных Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈΠ· ΠΊΠ°Π½Π°Π»ΠΎΠ² MISP. + - ОбновлСно ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ с настраиваСмым сроком ΠΆΠΈΠ·Π½ΠΈ для Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Log Exporter с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ вСдСния ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² EDNS. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° записСй ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² URL-адрСсах Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ…/Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… списков. + - ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ исправлСний ошибок ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π·ΠΎΠ½Ρ‹, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ сСанса ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ прилоТСния. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/TechnitiumSoftware/DnsServer/blob/master/CHANGELOG.md. +developer: Technitium +website: https://technitium.com/dns/ +dependencies: [] +repo: https://github.com/TechnitiumSoftware/DnsServer +support: https://github.com/TechnitiumSoftware/DnsServer/discussions +port: 5380 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: admin +deterministicPassword: true +submitter: highghlow +submission: https://github.com/getumbrel/umbrel/pull/1046 diff --git a/technitium-dns/docker-compose.yml b/technitium-dns/docker-compose.yml new file mode 100644 index 0000000..b954c98 --- /dev/null +++ b/technitium-dns/docker-compose.yml @@ -0,0 +1,42 @@ +version: "3.7" + +services: + dns-server: + image: technitium/dns-server:14.2.0@sha256:b6a39621a5c6b37e6ca8c4b428a7e39531041e19be4b28285657c8c74374950b + network_mode: host + # ΠΏΠΎΡ€Ρ‚Ρ‹: + # - "5380:5380/tcp" #DNS Π²Π΅Π±-консоль (HTTP) + # - "53443:53443/tcp" #DNS Π²Π΅Π±-консоль (HTTPS) + # - сСрвис "53:53/udp" #DNS + # - сСрвис "53:53/tcp" #DNS + # - сСрвис "853:853/udp" #DNS-over-QUIC + # - сСрвис "853:853/tcp" #DNS-over-TLS + # - БСрвис "443:443/udp" #DNS-over-HTTPS (HTTP/3) + # - БСрвис "443:443/tcp" #DNS-over-HTTPS (HTTP/1.1, HTTP/2) + # - Π‘Π»ΡƒΠΆΠ±Π° "80:80/tcp" #DNS-over-HTTP (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ прокси-сСрвСром ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄Π»Π΅Π½ΠΈΠ΅ΠΌ сСртификата certbot) + # - БСрвис "8053:8053/tcp" #DNS-over-HTTP (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ прокси) + # - сСрвис "67:67/udp" #DHCP + environment: + - DNS_SERVER_DOMAIN=${DEVICE_DOMAIN_NAME} #The primary domain name used by this DNS Server to identify itself. + - DNS_SERVER_ADMIN_PASSWORD=${APP_PASSWORD} #DNS web console admin user password. + # - DNS_SERVER_ADMIN_PASSWORD_FILE=password.txt #The path to a file that contains a plain text password for the DNS web console admin user. + # - DNS_SERVER_PREFER_IPV6=false #DNS Server will use IPv6 for querying whenever possible with this option enabled. + # - DNS_SERVER_WEB_SERVICE_HTTP_PORT=5380 #The TCP port number for the DNS web console over HTTP protocol. + # - DNS_SERVER_WEB_SERVICE_HTTPS_PORT=53443 #The TCP port number for the DNS web console over HTTPS protocol. + # - DNS_SERVER_WEB_SERVICE_ENABLE_HTTPS=false #Enables HTTPS for the DNS web console. + # - DNS_SERVER_WEB_SERVICE_USE_SELF_SIGNED_CERT=false #Enables self signed TLS certificate for the DNS web console. + # - DNS_SERVER_OPTIONAL_PROTOCOL_DNS_OVER_HTTP=false #Enables DNS server optional protocol DNS-over-HTTP on TCP port 8053 to be used with a TLS terminating reverse proxy like nginx. + # - DNS_SERVER_RECURSION=AllowOnlyForPrivateNetworks #Recursion options: Allow, Deny, AllowOnlyForPrivateNetworks, UseSpecifiedNetworks. + # - DNS_SERVER_RECURSION_DENIED_NETWORKS=1.1.1.0/24 #Comma separated list of IP addresses or network addresses to deny recursion. Valid only for `UseSpecifiedNetworks` recursion option. + # - DNS_SERVER_RECURSION_ALLOWED_NETWORKS=127.0.0.1, 192.168.1.0/24 #Comma separated list of IP addresses or network addresses to allow recursion. Valid only for `UseSpecifiedNetworks` recursion option. + # - DNS_SERVER_ENABLE_BLOCKING=false #Sets the DNS server to block domain names using Blocked Zone and Block List Zone. + # - DNS_SERVER_ALLOW_TXT_BLOCKING_REPORT=false #Specifies if the DNS Server should respond with TXT records containing a blocked domain report for TXT type requests. + # - DNS_SERVER_BLOCK_LIST_URLS= #A comma separated list of block list URLs. + # - DNS_SERVER_FORWARDERS=1.1.1.1, 8.8.8.8 #Comma separated list of forwarder addresses. + # - DNS_SERVER_FORWARDER_PROTOCOL=Tcp #Forwarder protocol options: Udp, Tcp, Tls, Https, HttpsJson. + # - DNS_SERVER_LOG_USING_LOCAL_TIME=true #Enable this option to use local time instead of UTC for logging. + volumes: + - ${APP_DATA_DIR}/data:/etc/dns + restart: on-failure + # систСмныС Ρ„Π°ΠΉΠ»Ρ‹: + # - net.ipv4.ip_local_port_range=1024 65000 diff --git a/termix/data/.gitkeep b/termix/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/termix/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/termix/dfwebos-app.yml b/termix/dfwebos-app.yml new file mode 100644 index 0000000..b5a4db2 --- /dev/null +++ b/termix/dfwebos-app.yml @@ -0,0 +1,78 @@ +manifestVersion: 1 +id: termix +name: Termix +tagline: УправляйтС своими сСрвСрами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного SSH, Ρ‚ΡƒΠ½Π½Π΅Π»Π΅ΠΉ ΠΈ доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ. +category: developer +version: "2.1.0" +port: 6444 +description: >- + πŸ’» Termix ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для упрощСния администрирования сСрвСра Π·Π° счСт объСдинСния ΠΌΠΎΡ‰Π½Ρ‹Ρ… инструмСнтов управлСния Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ интСрфСйсС. По своСй сути ΠΎΠ½ обСспСчиваСт прямой доступ ΠΊ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌ SSH Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, устраняя Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ…. БСансы ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ… ΠΈΠ»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… экранов, Ρ‡Ρ‚ΠΎ позволяСт администраторам с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько Π·Π°Π΄Π°Ρ‡ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ систСмами. Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» отличаСтся быстротой рСагирования ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ быстроС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ настройка, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ устранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ. + + + Помимо Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа, Termix ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ туннСлями, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ обСспСчиваСт бСзопасныС ΠΈ постоянныС соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами ΠΈ слуТбами. Π­Ρ‚ΠΈ Ρ‚ΡƒΠ½Π½Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈ нСобходимости автоматичСски ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ администраторам ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ доступными Π±Π΅Π· постоянного Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°. Π­Ρ‚Π° функция особСнно ΠΏΠΎΠ»Π΅Π·Π½Π° для поддСрТания ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ связи Π² срСдах, Π³Π΄Π΅ соСдинСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ часто Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ. + + + Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ аспСкт Termix. По ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², пСрСимСнования ΠΈΠ»ΠΈ удалСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ рСдактирования ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° нСпосрСдствСнно Π² интСрфСйсС. ВстроСнный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ обСспСчиваСт подсвСтку синтаксиса для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков программирования ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ сцСнарии, Π½Π΅ полагаясь Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты. Π­Ρ‚Π° бСсшовная интСграция сниТаСт Ρ‚Ρ€Π΅Π½ΠΈΠ΅ ΠΈ ускоряСт повсСднСвныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ тСхничСскому ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡŽ. + + + Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с нСсколькими сСрвСрами Termix Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя диспСтчСр хостов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ соСдинСния ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π΅Π³ΠΈ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСд, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ систСмы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΈΠ»ΠΈ производствСнныС систСмы. Вакая структура Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ администраторы смогут быстро Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ хост ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ, Π½Π΅ просматривая Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ списки сохранСнных ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. + + + Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ваТная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Termix β€” ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдставляСт ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ статистику ΠΏΠΎ систСмным рСсурсам, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ процСссора, использованиС памяти ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π­Ρ‚ΠΈ свСдСния ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ администраторам Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ пСрСрастут Π² критичСскиС. + + + ВсС эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² чистый ΠΈ соврСмСнный интСрфСйс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ отдаСтся удобству использования. Π”ΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ ΡΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, позволяя ΠΊΠ°ΠΊ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ администраторам, Ρ‚Π°ΠΊ ΠΈ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ со слоТными систСмами. Termix ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСрвСром ΠΈΠ· Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° инструмСнтов Π² цСлостный, доступный ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ процСсс. +developer: LukeGus +website: https://docs.termix.site/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3845 +repo: https://github.com/Termix-SSH/Termix/ +support: https://github.com/Termix-SSH/Termix/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС: + - Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Tmux для Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² + - ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅ΠΌ интСрфСйс, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π”Ρ€Π°ΠΊΡƒΠ»Ρƒ ΠΈ ΠΏΠΎΠ»ΡƒΠ½ΠΎΡ‡Π½Ρ‹ΠΉ эспрСссо. + - Кнопка ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… сСансов SSH. + - МСню ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ для копирования, вставки ΠΈ открытия Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅. + - ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ истории ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + - ОбмСн Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈ ролями + - ЭкспортируйтС всС хосты ΠΊΠ°ΠΊ JSON. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° пробуТдСния ΠΏΠΎ локальной сСти + - Π‘Ρ‚ΡƒΠΊ ΠΏΠΎΡ€Ρ‚Π° для соСдинСний SSH + - ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° сСанса Π² настройках администратора. + - НастраиваСмый ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΆΡƒΡ€Π½Π°Π»Π° Π² настройках администратора. + - Π’Ρ‹Π±ΠΎΡ€ встроСнного ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° OPKSSH Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅. + - ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° сосСднюю Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ всС» ΠΈ Β«ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ всСх» для Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΎ мноТСство исправлСний, связанных с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ. + - Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния Docker. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° аутСнтификация Π½Π° основС Ρ„Π°ΠΉΠ»ΠΎΠ² cookie для соСдинСний WebSocket. + - БСансы SSH Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ привязаны ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ доступС. + - ΠšΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π° ΠΆΡƒΡ€Π½Π°Π»Π°. + - Π£Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ тСкста ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈΠ· ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ хоста API. + - БСссии Π°Π½Π½ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ сбросС пароля. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π΅ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²Ρ‹Π²ΠΎΠ΄ Π·Π²ΡƒΠΊΠ° RDP ΠΈ динамичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° сСанса. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° страница администратора, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰Π°Ρ статус администратора. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Windows, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ сСрвСрам SSH послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅ Π² Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° очистка туннСля, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… соСдинСний. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° вставка Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π° с хоста Π² сСанс RDP. + - Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° послС записи SFTP. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Termix-SSH/Termix/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/termix/docker-compose.yml b/termix/docker-compose.yml new file mode 100644 index 0000000..7adfff7 --- /dev/null +++ b/termix/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: termix_web_1 + APP_PORT: 8080 + + web: + image: ghcr.io/lukegus/termix:release-2.1.0@sha256:52e45c1ea3fb85be5b3ade5ff42eed0946fe81131cbd834f6960e00797f17f86 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/app/data diff --git a/thelounge/data/.gitkeep b/thelounge/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/thelounge/dfwebos-app.yml b/thelounge/dfwebos-app.yml new file mode 100644 index 0000000..d70c3e6 --- /dev/null +++ b/thelounge/dfwebos-app.yml @@ -0,0 +1,32 @@ +manifestVersion: 1.1 +id: thelounge +category: social +name: The Lounge +version: "4.4.3" +tagline: Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ IRC, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ хостинга. +description: >- + The LoungeΒ β€” это соврСмСнный Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ IRC (Internet Relay Chat) с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт постоянноС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° связи с сСрвСрами IRC Π΄Π°ΠΆΠ΅ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс, совмСстимый с Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ, смартфонами ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π°ΠΌΠΈ. + + + Он пСрСносит IRC Π² 21 Π²Π΅ΠΊ с Ρ‚Π°ΠΊΠΈΠΌΠΈ функциями, ΠΊΠ°ΠΊ push-увСдомлСния, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр ссылок ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, позволяя совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСрвСр Π΄Ρ€ΡƒΠ·ΡŒΡΠΌ ΠΈΠ»ΠΈ Ρ‡Π»Π΅Π½Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. + + + Для обСспСчСния ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Lounge ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° постоянно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ сСрвСр, прСдоставляя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ доступ Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ устройства. + + + Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‰ΠΈΠΉ Π² сСбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΡˆΠΈΠ±Π°Π»Ρ‹ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° для соврСмСнного Ρ‡Π°Ρ‚Π°, Ρ‚Π°ΠΊ ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ доступ ΠΊ Ρ‡Π°Ρ‚Ρƒ Π±Π΅Π· рСгистрации. +developer: The Lounge Team +website: https://thelounge.chat +dependencies: [] +repo: https://github.com/thelounge/thelounge +support: https://github.com/thelounge/thelounge/issues +port: 9003 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "dfwebos" +deterministicPassword: true +submitter: oren-z0 +submission: https://github.com/getumbrel/dfwebos-apps/pull/2412 diff --git a/thelounge/docker-compose.yml b/thelounge/docker-compose.yml new file mode 100644 index 0000000..5798683 --- /dev/null +++ b/thelounge/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: thelounge_web_1 + APP_PORT: 9000 + PROXY_AUTH_ADD: "false" + + web: + image: ghcr.io/thelounge/thelounge:v4.4.3@sha256:c0565787e0c44951df4ea77840519a41cfe6a4ec040bf1bda928a91866cc3e5e + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/var/opt/thelounge diff --git a/thelounge/hooks/pre-start b/thelounge/hooks/pre-start new file mode 100755 index 0000000..32b5890 --- /dev/null +++ b/thelounge/hooks/pre-start @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ЦСль этого прСдстартового Ρ…ΡƒΠΊΠ° β€” Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ гостиной + +APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" + +# Π΄ΠΎΠ·ΠΎΡ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π±Ρ‹Π» Π»ΠΈ ΡƒΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ +USER_SENTINEL="${APP_DATA_DIR}/.user_created" + +# имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ +USER_NAME="dfwebos" + +# максимальноС количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΈ врСмя оТидания ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ (60 сСкунд) +MAX_TRIES=12 +SLEEP_SECS=5 + +# ──────────────────────────────────────────────────────────── +# ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ +# ──────────────────────────────────────────────────────────── +if [[ -f "$USER_SENTINEL" ]]; then + echo "thelounge: user already initialised - skipping bootstrap." + exit 0 +fi + +# ──────────────────────────────────────────────────────────── +# ΠŸΠΎΠ΄Π½ΠΈΠΌΠΈΡ‚Π΅ Π²Π΅Π±-сСрвис, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π±Ρ‹Π»ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ запуску. +# ──────────────────────────────────────────────────────────── +echo "thelounge: starting full stack to run migrations…" +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" \ + up -d --wait --wait-timeout 90 web + +# ──────────────────────────────────────────────────────────── +# ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ создан (максимум 60 сСкунд). +# Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ успСха с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ +# Но Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² для надСТности +# ──────────────────────────────────────────────────────────── +echo "thelounge: ensuring user exists…" +for ((try=1; try<=MAX_TRIES; try++)); do + if "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" exec -T web thelounge add "${USER_NAME}" --password "${APP_PASSWORD}" \ ; then + touch "$USER_SENTINEL" + echo "thelounge: user ready." + break + fi + echo " Attempt $try/$MAX_TRIES failed - retrying in ${SLEEP_SECS}s…" + sleep "$SLEEP_SECS" +done + +if [[ ! -f "$USER_SENTINEL" ]]; then + echo "thelounge ERROR: could not create user after $MAX_TRIES attempts." + exit 1 +fi + +# ──────────────────────────────────────────────────────────── +# ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ DFWebOS Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π·Π°Π½ΠΎΠ²ΠΎ. +# ──────────────────────────────────────────────────────────── +echo "thelounge: bootstrap finished - stopping stack for clean start…" +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" stop diff --git a/thinkdashboard/data/.gitkeep b/thinkdashboard/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/thinkdashboard/dfwebos-app.yml b/thinkdashboard/dfwebos-app.yml new file mode 100644 index 0000000..f9cec4e --- /dev/null +++ b/thinkdashboard/dfwebos-app.yml @@ -0,0 +1,35 @@ +manifestVersion: 1 +id: thinkdashboard +category: files +name: ThinkDashboard +version: "0.7.6" +tagline: ЛСгкая панСль Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ с сочСтаниями клавиш. +description: >- + ThinkDashboard β€” это лСгкая, автономная панСль Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ с сочСтаниями клавиш. + + + ✨ ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ + - ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½: чистый тСкстовый интСрфСйс. + - БочСтания клавиш: Π½Π°Π·Π½Π°Ρ‡Π°ΠΉΡ‚Π΅ сочСтания клавиш для быстрого открытия Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ. + - НастраиваСмыС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: распрСдСляйтС Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎ катСгориям. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅ΠΌ: Ρ‚Π΅ΠΌΠ½Ρ‹Π΅ ΠΈ свСтлыС Ρ‚Π΅ΠΌΡ‹. + - Настройка Ρ‚Π΅ΠΌΡ‹: полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° настройки Ρ‚Π΅ΠΌΡ‹ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ создания бСсконСчных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². + - Адаптивный Π΄ΠΈΠ·Π°ΠΉΠ½: Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах. +developer: MatiasDesuu +website: https://github.com/MatiasDesuu/ThinkDashboard +repo: https://github.com/MatiasDesuu/ThinkDashboard +support: https://github.com/MatiasDesuu/ThinkDashboard/issues +port: 8229 +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3960 +releaseNotes: "" +dependencies: [] +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +permissions: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/thinkdashboard/docker-compose.yml b/thinkdashboard/docker-compose.yml new file mode 100644 index 0000000..77ccaff --- /dev/null +++ b/thinkdashboard/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: thinkdashboard_server_1 + APP_PORT: "8080" + + server: + image: ghcr.io/matiasdesuu/thinkdashboard:v0.7.6@sha256:3bd3ac29fcd0329673a1b4946e4e63ecc55239e6221a00bd4b407a5343c55079 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/app/data + environment: + - PORT=8080 diff --git a/threema/dfwebos-app.yml b/threema/dfwebos-app.yml new file mode 100644 index 0000000..0a41525 --- /dev/null +++ b/threema/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1 +id: threema +name: Threema Web +tagline: Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный ΠΈ бСзопасный Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Threema. +category: files +version: "2.6.3" +port: 8855 +description: >- + πŸ“± Threema Web β€” это бСзопасный ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Threema нСпосрСдствСнно ΠΈΠ· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, сохраняя ΠΏΡ€ΠΈ этом ΠΏΠΎΠ»Π½ΠΎΠ΅ сквозноС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Бканируя QR-ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния Threema, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ прямоС соСдинСниС ΠΌΠ΅ΠΆΠ΄Ρƒ своим смартфоном ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, гарантируя, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ сообщСния ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Π½Π΅ΡˆΠ½ΠΈΡ… сСрвСрах. Бвязь осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· WebRTC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт частноС ΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠ΅ соСдинСниС. + + + Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Threema Web ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСния, ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ изобраТСниями ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ бСсСдами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»Π½ΠΎΡ€Π°Π·ΠΌΠ΅Ρ€Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ ΠΈ большой экран. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π° устройствах ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠΎ, Threema Web обСспСчиваСт высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ бСзопасности. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ бСспрСпятствСнный ΠΎΠ±ΠΌΠ΅Π½ сообщСниями Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… устройствах Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° для ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. +developer: Threema GmbH +website: https://threema.ch/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2226 +repo: https://github.com/threema-ch/threema-web +support: https://github.com/threema-ch/threema-web/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности этой вСрсии: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ финский ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ + β€” ΠžΠ±Π΅Π·Π·Π°Ρ€Π°ΠΆΠ΅Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π² SendFileDialog. + - ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ зависимости + + + ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π½Π° https://github.com/threema-ch/threema-web/blob/master/CHANGELOG.md. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/threema/docker-compose.yml b/threema/docker-compose.yml new file mode 100644 index 0000000..118bed7 --- /dev/null +++ b/threema/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: threema_web_1 + APP_PORT: 80 + + web: + image: dennysubke/threema-web:v2.6.3@sha256:8c65ceb537a7a85bb98ef38263860dc6bede8faef620143ec01a584dec26878d + # Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· Ρ€ΡƒΡ‚Π° + #user: "1000:1000" + restart: on-failure diff --git a/thunderhub/data/thubConfig.yaml b/thunderhub/data/thubConfig.yaml new file mode 100644 index 0000000..f4b68f2 --- /dev/null +++ b/thunderhub/data/thubConfig.yaml @@ -0,0 +1,13 @@ +accounts: + - name: 'DFWebOS' + serverUrl: '{YML_ENV_1}' + certificatePath: '/lnd/tls.cert' + macaroonPath: '/lnd/data/chain/bitcoin/mainnet/admin.macaroon' + - name: 'DFWebOS Testnet' + serverUrl: '{YML_ENV_1}' + certificatePath: '/lnd/tls.cert' + macaroonPath: '/lnd/data/chain/bitcoin/testnet/admin.macaroon' + - name: 'DFWebOS Regtest' + serverUrl: '{YML_ENV_1}' + certificatePath: '/lnd/tls.cert' + macaroonPath: '/lnd/data/chain/bitcoin/regtest/admin.macaroon' diff --git a/thunderhub/dfwebos-app.yml b/thunderhub/dfwebos-app.yml new file mode 100644 index 0000000..de69144 --- /dev/null +++ b/thunderhub/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1 +id: thunderhub +category: bitcoin +name: ThunderHub +version: "0.15.4" +tagline: ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своим ΡƒΠ·Π»ΠΎΠΌ Lightning +description: >- + ThunderHub позволяСт Π²Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ вашим ΡƒΠ·Π»ΠΎΠΌ Lightning. + с красивым ΠΈ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠΌ интСрфСйс. Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ всС возмоТности ThunderHub + ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ получСния ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ Lightning Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ вашСго ΡƒΠ·Π»Π° + статистику работоспособности ΠΈ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ рСбалансировка ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈ + ΠΌΠ½ΠΎΠ³ΠΎΠ»ΡƒΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠ»Π½ΠΈΠ΅ΠΎΡ‚Π²ΠΎΠ΄Ρ‹. + + + Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ вашСго ΡƒΠ·Π»Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ благодаря ΠΎΡ‚Ρ‡Π΅Ρ‚Π°ΠΌ ΠΎ транзакциях, Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌ ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π² этот Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт. +developer: Anthony Potdevin +website: https://thunderhub.io/ +dependencies: + - lightning +repo: https://github.com/apotdevin/thunderhub +support: https://t.me/thunderhub +port: 3000 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +deterministicPassword: true +releaseNotes: >- + ThunderHub 0.15.4 прСдставляСт ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ интСрфСйс с ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΌ стилСм всСго прилоТСния ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями ΠΎΠ±ΠΌΠ΅Π½Π° с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° срСдств. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/apotdevin/thunderhub/releases/tag/v0.15.4. +submitter: Anthony Potdevin +submission: https://github.com/getumbrel/umbrel/pull/343 diff --git a/thunderhub/docker-compose.yml b/thunderhub/docker-compose.yml new file mode 100644 index 0000000..05a83e5 --- /dev/null +++ b/thunderhub/docker-compose.yml @@ -0,0 +1,24 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: thunderhub_web_1 + APP_PORT: 3000 + + web: + image: apotdevin/thunderhub:0.15.4@sha256:62c71058ee811c7027f3e78dcf261db483d34e188e0414b1f284cb2ec811f974 + # Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ schema.gql. + # user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + - ${APP_DATA_DIR}/data:/data + environment: + MASTER_PASSWORD_OVERRIDE: "$APP_PASSWORD" + NO_VERSION_CHECK: "true" + LOG_LEVEL: "debug" + ACCOUNT_CONFIG_PATH: "/data/thubConfig.yaml" + YML_ENV_1: "$APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT" + TOR_PROXY_SERVER: "socks://$TOR_PROXY_IP:$TOR_PROXY_PORT" diff --git a/tools/translate-hash-comments.js b/tools/translate-hash-comments.js new file mode 100644 index 0000000..32bec0c --- /dev/null +++ b/tools/translate-hash-comments.js @@ -0,0 +1,259 @@ +const fs = require('fs'); +const path = require('path'); + +const workspaceRoot = path.resolve(__dirname, '..'); +const skipDirs = new Set(['.git', 'node_modules', '.venv']); +const skipExtensions = new Set(['.md', '.png', '.jpg', '.jpeg', '.gif', '.webp', '.ico', '.svg', '.pdf', '.zip', '.tar', '.gz', '.7z']); +const nonHashCommentExtensions = new Set(['.html', '.htm', '.css', '.scss', '.sass', '.less', '.js', '.jsx', '.ts', '.tsx']); +const translationCache = new Map(); + +function sleep(delayMs) { + return new Promise((resolve) => setTimeout(resolve, delayMs)); +} + +const protectedPattern = /https?:\/\/\S+|www\.\S+|\$\{?[A-Z0-9_]+\}?|\/[A-Za-z0-9._\-/]+|\b[a-z0-9._-]+\/[a-z0-9._-]+\b|\b[a-z0-9._-]+\.[a-z]{2,}\b|\*[A-Za-z]+|`[^`]+`|"[^"]+"|'[^']+'/g; + +function shouldSkipFile(filePath) { + const ext = path.extname(filePath).toLowerCase(); + return skipExtensions.has(ext); +} + +function supportsHashComments(filePath) { + const ext = path.extname(filePath).toLowerCase(); + return !nonHashCommentExtensions.has(ext); +} + +function listFiles(dirPath) { + const entries = fs.readdirSync(dirPath, { withFileTypes: true }); + const files = []; + for (const entry of entries) { + if (entry.isDirectory()) { + if (skipDirs.has(entry.name)) { + continue; + } + files.push(...listFiles(path.join(dirPath, entry.name))); + continue; + } + const filePath = path.join(dirPath, entry.name); + if (!shouldSkipFile(filePath)) { + files.push(filePath); + } + } + return files; +} + +function isProbablyTextFile(filePath) { + const buffer = fs.readFileSync(filePath); + const length = Math.min(buffer.length, 1024); + for (let index = 0; index < length; index += 1) { + if (buffer[index] === 0) { + return false; + } + } + return true; +} + +function hasCyrillic(text) { + return /[А-Π―Π°-яЁё]/.test(text); +} + +function isCodeLikeComment(text) { + const trimmed = text.trim(); + if (!trimmed) { + return true; + } + if (/^#[A-Za-z_-][A-Za-z0-9_-]*\s*[>{.{:\[]/.test(trimmed)) { + return true; + } + if (/^[!\/]/.test(trimmed)) { + return true; + } + if (/^[\[\]{}()<>:=,$"'`*_./\\-]+$/.test(trimmed)) { + return true; + } + if (/^[A-Za-z0-9_.-]+\s*:\s*[^\s].*$/.test(trimmed) && !/\s{2,}|\b(is|are|if|when|for|with|without|must|can|will|should|here|example)\b/i.test(trimmed)) { + return true; + } + if (/^[A-Za-z0-9_.-]+\s*=\s*[^\s].*$/.test(trimmed) && !/\b(is|are|if|when|for|with|without|must|can|will|should|here|example)\b/i.test(trimmed)) { + return true; + } + if (/^-\s*[A-Z0-9_]+\s*=/.test(trimmed)) { + return true; + } + if (/^[A-Za-z0-9_.-]+\/$/.test(trimmed)) { + return true; + } + return false; +} + +function protectTerms(text) { + const tokens = []; + const protectedText = text.replace(protectedPattern, (match) => { + const placeholder = `ZXQQ${tokens.length}QQXZ`; + tokens.push(match); + return placeholder; + }); + return { protectedText, tokens }; +} + +function restoreTerms(text, tokens) { + let restored = text; + tokens.forEach((token, index) => { + restored = restored.replace(new RegExp(`ZXQQ${index}QQXZ`, 'g'), token); + }); + return restored; +} + +function postProcess(text) { + return text + .replace(/\bUI\b/g, 'интСрфСйс') + .replace(/\bAPI\b/g, 'API') + .replace(/\bHTTP\b/g, 'HTTP') + .replace(/\bHTTPS\b/g, 'HTTPS') + .replace(/\bSSH\b/g, 'SSH') + .replace(/\bDNS\b/g, 'DNS') + .replace(/\bTor\b/g, 'Tor') + .replace(/\bDocker Compose\b/g, 'Docker Compose') + .replace(/\bDFWebOS\b/g, 'DFWebOS'); +} + +async function translateText(text) { + if (!text.trim() || hasCyrillic(text)) { + return text; + } + if (translationCache.has(text)) { + return translationCache.get(text); + } + + const { protectedText, tokens } = protectTerms(text); + const url = `https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=ru&dt=t&q=${encodeURIComponent(protectedText)}`; + let response; + for (let attempt = 0; attempt < 4; attempt += 1) { + response = await fetch(url, { headers: { 'User-Agent': 'Mozilla/5.0' } }); + if (response.ok) { + break; + } + if (response.status < 500 || attempt === 3) { + throw new Error(`Translation failed with status ${response.status}`); + } + await sleep(500 * (attempt + 1)); + } + + if (!response.ok) { + throw new Error(`Translation failed with status ${response.status}`); + } + + const payload = await response.json(); + const translated = payload[0].map((item) => item[0]).join(''); + const restored = restoreTerms(translated, tokens); + const processed = postProcess(restored); + translationCache.set(text, processed); + return processed; +} + +function splitInlineComment(text) { + const marker = text.indexOf(' # '); + if (marker === -1) { + return null; + } + return { + head: text.slice(0, marker + 1), + tail: text.slice(marker + 3), + }; +} + +async function translateCommentLine(line) { + const match = line.match(/^(\s*#+)(\s*)(.*)$/); + if (!match) { + return { changed: false, line }; + } + + const prefix = match[1]; + const spacing = match[2]; + const body = match[3]; + + if (prefix.startsWith('#!')) { + return { changed: false, line }; + } + if (!body.trim()) { + return { changed: false, line }; + } + + const inlineComment = splitInlineComment(body); + if (inlineComment && isCodeLikeComment(inlineComment.head.trim())) { + const translatedTail = await translateText(inlineComment.tail); + const updated = `${prefix}${spacing}${inlineComment.head} # ${translatedTail}`; + return { changed: updated !== line, line: updated }; + } + + if (isCodeLikeComment(body)) { + return { changed: false, line }; + } + + const translated = await translateText(body); + const updated = `${prefix}${spacing}${translated}`; + return { changed: updated !== line, line: updated }; +} + +async function processFile(filePath) { + if (!supportsHashComments(filePath)) { + return false; + } + + if (!isProbablyTextFile(filePath)) { + return false; + } + + const source = fs.readFileSync(filePath, 'utf8').replace(/\r\n/g, '\n'); + if (!/^\s*#/m.test(source)) { + return false; + } + + const lines = source.split('\n'); + let changed = false; + + for (let index = 0; index < lines.length; index += 1) { + const result = await translateCommentLine(lines[index]); + if (result.changed) { + lines[index] = result.line; + changed = true; + } + } + + if (changed) { + fs.writeFileSync(filePath, lines.join('\n')); + } + return changed; +} + +async function main() { + const args = process.argv.slice(2); + const filePaths = args.length + ? args.map((filePath) => path.resolve(workspaceRoot, filePath)) + : listFiles(workspaceRoot); + + let updated = 0; + const failedFiles = []; + for (const filePath of filePaths) { + try { + const changed = await processFile(filePath); + if (changed) { + updated += 1; + console.log(`translated ${path.relative(workspaceRoot, filePath)}`); + } + } catch (error) { + failedFiles.push(path.relative(workspaceRoot, filePath)); + console.warn(`failed ${path.relative(workspaceRoot, filePath)}: ${error.message}`); + } + } + console.log(`updated files: ${updated}`); + if (failedFiles.length > 0) { + console.log(`failed files: ${failedFiles.length}`); + process.exitCode = 1; + } +} + +main().catch((error) => { + console.error(error); + process.exit(1); +}); \ No newline at end of file diff --git a/tools/translate-manifests.js b/tools/translate-manifests.js new file mode 100644 index 0000000..2c7d3d3 --- /dev/null +++ b/tools/translate-manifests.js @@ -0,0 +1,260 @@ +const fs = require('fs'); +const path = require('path'); + +const workspaceRoot = path.resolve(__dirname, '..'); +const targetFields = ['releaseNotes', 'tagline', 'description']; +const skipDirs = new Set(['.git', 'node_modules', '.venv']); +const translationCache = new Map(); + +const protectedPattern = /https?:\/\/\S+|www\.\S+|\b(?:OpenAI|TypeScript|Typescript|JavaScript|Docker|GitHub|OAuth2|OAuth|MCP|API|SDK|UI|CLI|AI|AWS|JSON|CSV|FFMPEG|VCF|PDF|BTC|S3|PostgreSQL|Redis|npmjs\.com|DFWebOS|dfwebOS|Copilot|Docker Compose|MySQL|SQLite|PostgreSQL|WebDAV|WebRTC|Nostr|Bitcoin|Lightning|Tor|TLS|SSH|REST|GraphQL|WebSocket|Prometheus|Grafana|InfluxDB|MongoDB|MariaDB|Node\.js|Nextcloud|OpenStreetMap|YouTube|Plex|Sonarr|Radarr|Lidarr|Readarr|Prowlarr|SABnzbd|qBittorrent|Transmission|Home Assistant|WordPress)\b/g; + +function listManifestFiles(dirPath) { + const entries = fs.readdirSync(dirPath, { withFileTypes: true }); + const files = []; + for (const entry of entries) { + if (entry.isDirectory()) { + if (skipDirs.has(entry.name)) { + continue; + } + files.push(...listManifestFiles(path.join(dirPath, entry.name))); + continue; + } + if (entry.name === 'dfwebos-app.yml') { + files.push(path.join(dirPath, entry.name)); + } + } + return files; +} + +function hasCyrillic(text) { + return /[А-Π―Π°-яЁё]/.test(text); +} + +function parseTopLevelField(source, key) { + const lines = source.split('\n'); + const startIndex = lines.findIndex((line) => line.startsWith(`${key}:`)); + if (startIndex === -1) { + return null; + } + + let endIndex = lines.length; + for (let index = startIndex + 1; index < lines.length; index += 1) { + if (/^[^\s#][^:]*:/.test(lines[index])) { + endIndex = index; + break; + } + } + + const firstLine = lines[startIndex]; + const inlineValue = firstLine.slice(`${key}:`.length).trim(); + let style = 'plain'; + let value = ''; + + if (inlineValue === '>' || inlineValue === '>-' || inlineValue === '|' || inlineValue === '|-') { + style = inlineValue; + value = lines + .slice(startIndex + 1, endIndex) + .map((line) => (line.startsWith(' ') ? line.slice(2) : line)) + .join('\n'); + } else if (inlineValue.startsWith('"') && inlineValue.endsWith('"')) { + style = 'double-quoted'; + value = JSON.parse(inlineValue); + } else if (inlineValue.startsWith("'") && inlineValue.endsWith("'")) { + style = 'single-quoted'; + value = inlineValue.slice(1, -1).replace(/''/g, "'"); + } else { + style = 'plain'; + value = inlineValue; + } + + return { startIndex, endIndex, style, value }; +} + +function protectTerms(text) { + const tokens = []; + const protectedText = text.replace(protectedPattern, (match) => { + const placeholder = `ZXQQ${tokens.length}QQXZ`; + tokens.push(match); + return placeholder; + }); + return { protectedText, tokens }; +} + +function restoreTerms(text, tokens) { + let restored = text; + tokens.forEach((token, index) => { + restored = restored.replace(new RegExp(`ZXQQ${index}QQXZ`, 'g'), token); + }); + return restored; +} + +function postProcessTranslation(text) { + return text + .replace(/\bUI\b/g, 'интСрфСйс') + .replace(/\bAI\b/g, 'ИИ') + .replace(/AI-/g, 'ИИ-') + .replace(/\bself-hosted\b/gi, 'ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹ΠΉ') + .replace(/\bopen source\b/gi, 'с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ') + .replace(/\bbug fixes\b/gi, 'исправлСния ошибок') + .replace(/\brelease notes\b/gi, 'примСчания ΠΊ выпуску') + .replace(/\bkey features\b/gi, 'ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности') + .replace(/\benterprise-ready\b/gi, 'Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌΡƒ использованию') + .replace(/\bAI provider\b/gi, 'ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ ИИ') + .replace(/\bhot reloading\b/gi, 'горячая ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°'); +} + +async function translateText(text) { + if (!text.trim()) { + return text; + } + if (hasCyrillic(text)) { + return text; + } + if (translationCache.has(text)) { + return translationCache.get(text); + } + + const { protectedText, tokens } = protectTerms(text); + const url = `https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=ru&dt=t&q=${encodeURIComponent(protectedText)}`; + const response = await fetch(url, { + headers: { + 'User-Agent': 'Mozilla/5.0', + }, + }); + + if (!response.ok) { + throw new Error(`Translation request failed with ${response.status}`); + } + + const payload = await response.json(); + const translated = payload[0].map((item) => item[0]).join(''); + const restored = restoreTerms(translated, tokens); + const processed = postProcessTranslation(restored); + translationCache.set(text, processed); + return processed; +} + +function splitIntoChunks(value) { + const parts = value.split(/(\n{2,})/); + const chunks = []; + + for (const part of parts) { + if (!part) { + continue; + } + if (/^\n+$/.test(part)) { + chunks.push({ type: 'separator', text: part }); + continue; + } + + if (part.length <= 1500) { + chunks.push({ type: 'text', text: part }); + continue; + } + + const lines = part.split('\n'); + let current = []; + let currentLength = 0; + + for (const line of lines) { + const nextLength = currentLength + line.length + (current.length ? 1 : 0); + if (current.length && nextLength > 1500) { + chunks.push({ type: 'text', text: current.join('\n') }); + current = [line]; + currentLength = line.length; + } else { + current.push(line); + currentLength = nextLength; + } + } + + if (current.length) { + chunks.push({ type: 'text', text: current.join('\n') }); + } + } + + return chunks; +} + +async function translateMultiline(value) { + const chunks = splitIntoChunks(value); + const translatedChunks = []; + + for (const chunk of chunks) { + if (chunk.type === 'separator' || !chunk.text.trim()) { + translatedChunks.push(chunk.text); + continue; + } + translatedChunks.push(await translateText(chunk.text)); + } + + return translatedChunks.join(''); +} + +function quoteSingle(text) { + return `'${text.replace(/'/g, "''")}'`; +} + +function formatField(key, style, value) { + if (style === '>' || style === '>-' || style === '|' || style === '|-') { + return [`${key}: ${style}`, ...value.split('\n').map((line) => ` ${line}`)].join('\n'); + } + if (style === 'double-quoted') { + return `${key}: ${JSON.stringify(value)}`; + } + if (style === 'single-quoted') { + return `${key}: ${quoteSingle(value)}`; + } + if (/^[\p{L}\p{N} .,!?:;()\-\/]+$/u.test(value)) { + return `${key}: ${value}`; + } + return `${key}: ${JSON.stringify(value)}`; +} + +async function processManifest(filePath) { + const source = fs.readFileSync(filePath, 'utf8').replace(/\r\n/g, '\n'); + const lines = source.split('\n'); + const replacements = []; + + for (const field of targetFields) { + const parsed = parseTopLevelField(source, field); + if (!parsed || hasCyrillic(parsed.value)) { + continue; + } + const translated = await translateMultiline(parsed.value); + replacements.push({ ...parsed, field, translated }); + } + + if (!replacements.length) { + return false; + } + + replacements.sort((left, right) => right.startIndex - left.startIndex); + for (const replacement of replacements) { + const rendered = formatField(replacement.field, replacement.style, replacement.translated).split('\n'); + lines.splice(replacement.startIndex, replacement.endIndex - replacement.startIndex, ...rendered); + } + + fs.writeFileSync(filePath, lines.join('\n')); + return true; +} + +async function main() { + const files = listManifestFiles(workspaceRoot); + let changedCount = 0; + + for (const filePath of files) { + const changed = await processManifest(filePath); + if (changed) { + changedCount += 1; + console.log(`translated ${path.relative(workspaceRoot, filePath)}`); + } + } + + console.log(`updated manifests: ${changedCount}`); +} + +main().catch((error) => { + console.error(error); + process.exit(1); +}); \ No newline at end of file diff --git a/torbrowser/config/.gitkeep b/torbrowser/config/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/torbrowser/config/.gitkeep @@ -0,0 +1 @@ + diff --git a/torbrowser/dfwebos-app.yml b/torbrowser/dfwebos-app.yml new file mode 100644 index 0000000..150dda1 --- /dev/null +++ b/torbrowser/dfwebos-app.yml @@ -0,0 +1,43 @@ +manifestVersion: 1 +id: torbrowser +name: Tor Browser +tagline: НСвидимый Ρ‰ΠΈΡ‚ для вашСго просмотра +category: networking +version: "15.0.1" +port: 5832 +description: >- + πŸ§… Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Tor β€” ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для обСспСчСния Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ, бСзопасного ΠΈ частного доступа Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Tor, созданный Π½Π° основС Mozilla Firefox ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для обСспСчСния ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠ΅Ρ‚ΡŒ Tor (Π»ΡƒΠΊΠΎΠ²Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€) для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ личности ΠΈ мСстополоТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡƒΡ‚Π΅ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ рСтрансляции ΠΈΡ… ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· нСсколько ΡƒΠ·Π»ΠΎΠ² ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. Π­Ρ‚ΠΎΡ‚ процСсс, извСстный ΠΊΠ°ΠΊ «луковая ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡΒ», скрываСт IP-адрСса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π²Π΅Π±-сайтам, рСкламодатСлям ΠΈΠ»ΠΈ организациям наблюдСния Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ слоТно ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ дСйствия Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ мСстополоТСниС. + + + Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ†Π΅Π½ΠΈΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ сталкиваСтся с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-срСдой, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Tor ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Он Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ cookie, Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ снятия ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΎΠ² ΠΏΠ°Π»ΡŒΡ†Π΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Π²Π΅Π±-сайтах, Π° Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ просмотров ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ cookie ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сСансС. Π­Ρ‚ΠΎ обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ анонимности ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ сбора Π΄Π°Π½Π½Ρ‹Ρ… способами, нСдоступными стандартным Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌ. + + + Помимо ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Tor обСспСчиваСт Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ сСти, позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ†Π΅Π½Π·ΡƒΡ€Ρƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π³ΠΈΠΎΠ½Π°Ρ… ΠΈΠ»ΠΈ сСтях. Π₯отя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ компромиссы Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ просмотра ΠΈΠ·-Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ·Π»ΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Tor являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных инструмСнтов для бСзопасного доступа Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π±Π΅Π· Ρ†Π΅Π½Π·ΡƒΡ€Ρ‹. Оно Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ свободно ΠΈ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ, обСспСчивая Π±ΠΎΠ»Π΅Π΅ бСзопасный ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. + + + ℹ️ Для Raspberry Pi ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… устройств ARM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ старый Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ сообщСства (вСрсия 13.0.9), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Tor Π² настоящСС врСмя Π½Π΅ прСдоставляСт ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ выпуска. +developer: The Tor Project +website: https://www.torproject.org/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/1928 +repo: https://github.com/torproject/tor +support: https://support.torproject.org/ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + ℹ️ Устройства Raspberry Pi/ARM ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ сообщСства 13.0.9, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ вСрсия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Tor нСдоступна. + + + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + + - ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Firefox ESR 140.5.0 с исправлСниями бСзопасности ΠΈΠ· Firefox 145. + - ОбновлСн NoScript 13.4 ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция поиска DuckDuckGo Β«No ИИ». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ порядок Π² поисковых систСмах ΠΈ восстановлСно ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ увСдомлСния ΠΎΠ± ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. + - ВосстановлСны ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ Noto CJK ΠΈ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠΌ тСкста Π² Linux. + - ОбновлСн GeckoView 140.5.0esr ΠΈ исправлСны задания обновлСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Android. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ систСма сборки с восстановлСнной вСрсиСй экспСртного ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Go 1.24.10. +dependencies: [] +path: "" diff --git a/torbrowser/docker-compose.yml b/torbrowser/docker-compose.yml new file mode 100644 index 0000000..ee2c12a --- /dev/null +++ b/torbrowser/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: torbrowser_web_1 + APP_PORT: 5800 + web: + image: dennysubke/torbrowser:15.0.1@sha256:81269f7ec6494e5d7d4fc88391256bfb311165bb1d18124984ada296268c6962 + restart: on-failure + environment: + - DARK_MODE=1 + - WEB_AUDIO=1 + volumes: + - ${APP_DATA_DIR}/config:/config diff --git a/torq/data/passwd b/torq/data/passwd new file mode 100644 index 0000000..3bf07a1 --- /dev/null +++ b/torq/data/passwd @@ -0,0 +1 @@ +user:x:1000:1000:,,,:/tmp:/bin/bash \ No newline at end of file diff --git a/torq/data/torq/.gitkeep b/torq/data/torq/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/torq/dfwebos-app.yml b/torq/dfwebos-app.yml new file mode 100644 index 0000000..c6ed8ba --- /dev/null +++ b/torq/dfwebos-app.yml @@ -0,0 +1,77 @@ +manifestVersion: 1 +id: torq +category: bitcoin +name: Torq +version: "v2.2.2" +tagline: ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для управлСния ΡƒΠ·Π»Π°ΠΌΠΈ +description: >- + Эксплуатация ΡƒΠ·Π»Π° Lightning Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° своими ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ, Π±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ комиссии ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + + Π‘ Torq Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ всС Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… инструмСнтов. + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + - Π£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов. + + - УвСдомлСния Ρ‡Π΅Ρ€Π΅Π· Telegram, Discord ΠΈ Slack (с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈ шаблонами) + + - Быстро Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 1000 ΠΊΠ°Π½Π°Π»Π°Ρ…. + + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ визуализация Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ статистики пСрСсылки. + + - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ нСсколькими ΡƒΠ·Π»Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. + + - Π€ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ + + - Π₯Ρ€Π°Π½ΠΈΡ‚ всС события с вашСго ΡƒΠ·Π»Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ события HTLC, измСнСния ставок комиссии ΠΈ события Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π°. + + - БохраняйтС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ прСдставлСний Ρ‚Π°Π±Π»ΠΈΡ† для быстрого поиска Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. + + - Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ + + - ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π΄Π½ΠΈ, Π½Π΅Π΄Π΅Π»ΠΈ, мСсяцы), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ свой прогрСсс. + + - ΠŸΠΎΠΌΠ΅Ρ‡Π°ΠΉΡ‚Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΈ ΡƒΠ·Π»Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ (ОбмСн, Π£Π·Π΅Π» ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠŸΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ, Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅). +developer: Torq +website: https://torq.co +dependencies: + - lightning +repo: "" +support: https://github.com/lncapital/torq/issues/new +port: 7028 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + - Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° дСскрипторов ΡƒΠ·Π»Π° Torq API + - Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΡƒΠ·Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Torq API. + - НапримСр: Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ·Π΅Π» A, Π½ΠΎ Ссли ΠΎΠ½ нСдоступСн, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ·Π΅Π» B. Или: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ·Π΅Π» A 70% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡƒΠ·Π΅Π» B 30% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. + - ΠŸΠΎΡ€ΠΎΠ³ простоя ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠ·Π»Π°. + β€” НастраиваСмый ΠΏΠΎΡ€ΠΎΠ³ для запуска событий ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠ·Π»Π° Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ Torq Π±Ρ‹Π» ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½. + - НапримСр: сущСствуСт Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ настроСн Π½Π° срабатываниС ΠΏΡ€ΠΈ Β«ΠžΠΏΠ»Π°Ρ‚Π΅Β». Π—Π°Ρ‚Π΅ΠΌ Π½Π° ΡƒΠ·Π»Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ΠΎΠΏΠ»Π°Ρ‚Π°, ΠΏΠΎΠΊΠ° Torq Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π». Если Torq снизился мСньшС установлСнного ΠΏΠΎΡ€ΠΎΠ³Π°, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс **запускаСтся** ΠΏΡ€ΠΈ запускС Torq, Π° Ссли Torq снизился дольшС ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ значСния, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс **Π½Π΅ запускаСтся**. + - Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ‚Π΅Π³ΠΈ Ρ‡Π΅Ρ€Π΅Π· мСню Β«Π’Π΅Π³ΠΈΒ» -> Β«Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Β». + - ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ‚Π΅Π³ΠΎΠ² Π½Π° страницС Β«ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ°Π½Π°Π»Π°Β». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки ΠΈ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Бтатус ΡƒΠ·Π»Π° Bitcoind Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ отобраТаСтся Π² «модальном ΠΎΠΊΠ½Π΅ статуса». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ «послСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ баланса» ΠΈ сдСлана сортировка столбцов ΠΏΠΎ «послСднСму измСнСнию баланса». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ свСдСний ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΡƒΠ·Π»Π° CLN. + - УпорядочСнный список Ρ‚Π΅Π³ΠΎΠ² Π½Π° страницС Β«Π’Π΅Π³ΠΈΒ» Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ счСт Bolt11, Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² Signet. + - Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Β«Π½Π΅ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉΒ» баланс Π½Π° ΡƒΠ·Π»Π΅ bitcoind. + - ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ mempool-url conf Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ Π² ΠΊΠΎΠ½Ρ†Π΅ + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка интСрфСйс, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠ°Ρ ΠΊ ошибкС Π² интСрфСйс ΠΏΡ€ΠΈ осущСствлСнии внутрисСтСвого ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°. + - ВСкст Β«Π‘Π²ΡΠ·Π°Ρ‚ΡŒΡΡ со слуТбой ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈΒ» Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступСн для ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ Ρ‡Π°Ρ‚Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.- Π’ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅ΠΉ вСрсии Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​внутрСнняя Ρ‚Π°Π±Π»ΠΈΡ†Π° Β«ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°Β», которая сохраняСт ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°, Π΄Π°ΠΆΠ΅ Ссли ΡƒΠ·Π΅Π», с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Π΅ΠΆ, нСдоступСн. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ слишком сильно Ρ€Π°Π·Π΄ΡƒΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ссли ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ. Π’ этом выпускС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для установки количСства Π΄Π½Π΅ΠΉ, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ хранятся ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Ссли ноль, ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· 1 час). + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ CLN, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΡƒΠ΄Π²ΠΎΠ΅Π½Π½Ρ‹ΠΉ баланс, ΠΊΠΎΠ³Π΄Π° транзакция Π²Π½ΡƒΡ‚Ρ€ΠΈ сСти Π½Π΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π°. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ состояниС Π³ΠΎΠ½ΠΊΠΈ Π² кэшС баланса ΠΊΠ°Π½Π°Π»Π° LND, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ привСсти ΠΊ сбою Torq. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях баланс ΠΊΠ°Π½Π°Π»Π° Π½Π΅ обновлялся, Π° Β«ΠΎΠ±Ρ‰ΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ баланс ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°Β» Π½Π΅ обновлялся. +path: "" +defaultUsername: "" +deterministicPassword: false +submitter: Torq +submission: https://github.com/getumbrel/dfwebos-apps/pull/549 diff --git a/torq/docker-compose.yml b/torq/docker-compose.yml new file mode 100644 index 0000000..a3c0928 --- /dev/null +++ b/torq/docker-compose.yml @@ -0,0 +1,43 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: torq_web_1 + APP_PORT: 7028 + + web: + image: lncapital/torq:2.2.2@sha256:28cfac8c81f92e7d4e021a780b2d3f2dc766a37c7ebeef68f6105f682f3b196f + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + command: + - --torq.port + - "7028" + - --db.host + - torq_db_1 + - --db.password + - moneyprintergobrrr + - --torq.password + - ${APP_PASSWORD} + - --lnd.url + - ${APP_LIGHTNING_NODE_IP}:${APP_LIGHTNING_NODE_GRPC_PORT} + - --lnd.macaroon-path + - /lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/admin.macaroon + - --lnd.tls-path + - /lnd/tls.cert + - --torq.auto-login + - start + + db: + image: timescale/timescaledb:2.8.1-pg14@sha256:96c3a5587a24bb336437403b394f5927f639322cf3fcc0eff4ee0294da540dd7 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + environment: + POSTGRES_PASSWORD: moneyprintergobrrr + volumes: + - ${APP_DATA_DIR}/data/torq:/var/lib/postgresql/data + - ${APP_DATA_DIR}/data/passwd:/etc/passwd:ro # Enables postgres to init on user 1000 diff --git a/toshi-moto/data/db/diagnostic.data/.gitkeep b/toshi-moto/data/db/diagnostic.data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/toshi-moto/data/db/journal/.gitkeep b/toshi-moto/data/db/journal/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/toshi-moto/data/proxy/nginx.conf b/toshi-moto/data/proxy/nginx.conf new file mode 100644 index 0000000..16dbe12 --- /dev/null +++ b/toshi-moto/data/proxy/nginx.conf @@ -0,0 +1,36 @@ +proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g + inactive=60m use_temp_path=off; + +log_format cache '$remote_addr - $remote_user [$time_local] ' + '"$request" $status $body_bytes_sent ' + '"$http_referer" "$http_user_agent" ' + 'Cache: $upstream_cache_status'; +server { + listen 8021; + + + location /sw.js { + root /usr/share/nginx/html; + add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0"; + add_header Pragma "no-cache"; + add_header Expires "0"; + + # ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ MIME для сСрвисных Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠ². + default_type application/javascript; + try_files $uri =404; + } + + location /api/ { + proxy_pass http://toshi-moto_api_web_1:8121/api/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html =404; + + } +} diff --git a/toshi-moto/data/server-logs/.gitkeep b/toshi-moto/data/server-logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/toshi-moto/dfwebos-app.yml b/toshi-moto/dfwebos-app.yml new file mode 100644 index 0000000..b85c192 --- /dev/null +++ b/toshi-moto/dfwebos-app.yml @@ -0,0 +1,47 @@ +manifestVersion: 1.1 +id: toshi-moto +category: finance +name: Toshi Moto +version: "1.37.1" +website: https://toshimoto.app +tagline: БСзопасный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ портфСля Bitcoin с Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ +description: >- + Toshi Moto β€” это кошСлСк Bitcoin, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для просмотра, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для бСзопасного ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° портфСля ΠΈ отслСТивания Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности: + + - Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ (Xpub) для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… адрСсов Bitcoin. + + - АгрСгация баланса Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎ всСм вашим кошСлькам ΠΈ адрСсам + + - Полная история Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈ возмоТности ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. + + - ΠšΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ - никакая ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ информация Π½Π΅ пСрСдаСтся Π½Π° сСрвСры. + + - Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, обСспСчивая Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… срСдств. + + + ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для энтузиастов Bitcoin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π°ΠΊΡ‚ΠΈΠ²Ρ‹ Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° для ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ бСзопасности. +developer: Toshi Moto +dependencies: + - bitcoin + - mempool +repo: https://github.com/toshimoto821/toshi-moto +support: https://github.com/toshimoto821/toshi-moto +port: 8021 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ toshi-moto содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния: + - добавляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Ρ… адрСсов (Ρ€ΡƒΡ‡Π½Ρ‹Π΅ кошСльки Π±Π΅Π· xpubs) + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ измСнСния ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://github.com/toshimoto821/toshi-moto/compare/web-ui-1.36.1...web-ui-1.37.1. +defaultUsername: "" +deterministicPassword: false +submitter: Toshi Moto +submission: https://github.com/getumbrel/dfwebos-apps/pull/3203 diff --git a/toshi-moto/docker-compose.yml b/toshi-moto/docker-compose.yml new file mode 100644 index 0000000..c75fa79 --- /dev/null +++ b/toshi-moto/docker-compose.yml @@ -0,0 +1,39 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: toshi-moto_web_1 + APP_PORT: 8021 + PROXY_AUTH_ADD: "false" + + api_web: + image: toshimoto821/toshi-moto-api:1.8.4@sha256:750927ef2d0b0bbcffcbb57632d861e567a8b7243381c0285b2b2660dc31244a + restart: on-failure + stop_grace_period: 1m + user: 1000:1000 + depends_on: + - mongodb + environment: + PORT: 8121 + MONGODB_URI: "mongodb://toshi-moto_mongodb_1:27017/toshi-moto" + + web: + image: toshimoto821/toshi-moto:1.37.1@sha256:c4317ae166e7d4fd57acb5822f44cf2edaef71f5bf032ca0c866b8a12c71a470 + restart: on-failure + user: 1000:1000 + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/proxy/nginx.conf:/etc/nginx/conf.d/default.conf:ro + depends_on: + - api_web + environment: + PORT: 8021 + + mongodb: + image: mongo:8.0.10@sha256:15fb53a5160ebabff5ecade8f8b5d48721b68ea190957a7f35b5b38e8340e62b + stop_grace_period: 1m + user: 1000:1000 + command: mongod --noauth + volumes: + - ${APP_DATA_DIR}/data/db:/data/db diff --git a/transmission/data/config/.gitkeep b/transmission/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/transmission/dfwebos-app.yml b/transmission/dfwebos-app.yml new file mode 100644 index 0000000..5aa3de4 --- /dev/null +++ b/transmission/dfwebos-app.yml @@ -0,0 +1,91 @@ +manifestVersion: 1 +id: transmission +category: networking +name: Transmission +version: "4.1.1" +tagline: Быстрый, простой ΠΈ бСсплатный ΠΊΠ»ΠΈΠ΅Π½Ρ‚ BitTorrent. +description: >- + Transmission создан для простого ΠΈ эффСктивного использования. ΠœΡ‹ установили настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ просто Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, ΠΈ для настройки Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ просмотра, Ρ‡Π΅Ρ€Π½Ρ‹Π΅ списки ΠΏΠ»ΠΎΡ…ΠΈΡ… ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² ΠΈ Π²Π΅Π±-интСрфСйс, трСбуСтся всСго нСсколько Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠ² ΠΌΡ‹ΡˆΡŒΡŽ. Когда Ubuntu Π²Ρ‹Π±Ρ€Π°Π»Π° Transmission Π² качСствС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° BitTorrent ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Π±Ρ‹Π»Π° простота обучСния. + + + Transmission ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ· самых Π½ΠΈΠ·ΠΊΠΈΡ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ памяти ΠΈ рСсурсам срСди всСх ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² BitTorrent. НСбольшиС Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Transmission β€” ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Ρ‚Π°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… NAS ΠΈ ΠΌΠ΅Π΄ΠΈΠ°-сСрвСров. Transmission, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Western Digital, Zyxel ΠΈ Belkin, обСспСчиваСт поистинС Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ практичСски Π½Π° любом совмСстимом ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ. + + + Transmission β€” это ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, основанный Π½Π° Π²ΠΎΠ»ΠΎΠ½Ρ‚Π΅Ρ€Π°Ρ…. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² BitTorrent, Transmission Π½Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ со своими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π² ΠΈΠ³Ρ€Ρ‹ с Ρ†Π΅Π»ΡŒΡŽ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ дСньги. + + + ΠœΡ‹ Π½Π΅ объСдиняСм ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π°, Ρ„Π»ΡΡˆ-Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ, инструмСнты Π’Π²ΠΈΡ‚Ρ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅. Он Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Π½ΠΎΠΉ вСрсии. ΠœΡ‹ Π½Π΅ отслСТиваСм Π½Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. На нашСм сайтС ΠΈ Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ… Π½Π΅Ρ‚ стороннСй Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ. + + + ⚠️ Transmission скачиваСт Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Clearnet, Π° Π½Π΅ Tor. +developer: Transmission +website: https://transmissionbt.com/ +dependencies: [] +repo: https://github.com/transmission/transmission +support: https://github.com/transmission/transmission/issues +port: 9091 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "/transmission/web/" +defaultUsername: "" +defaultPassword: "" +torOnly: false +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск исправлСний исправляСт Π±ΠΎΠ»Π΅Π΅ 20 ошибок ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ порядок ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½ΠΎΠ³Π΄Π° тСрялся ΠΌΠ΅ΠΆΠ΄Ρƒ сСансами. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ приостановкС Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Π° ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΅Π³ΠΎ списка Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ сбой Π½Π° устройствах Arm32. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ RPC, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Ρ€ΡƒΡˆΠ°Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сторонних ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², возвращая Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ чисСл для ΠΏΠΎΠ»Π΅ΠΉ ограничСния скорости. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π·Π°Π²ΠΈΡΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΏΡ€ΠΈ высокой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ полосы пропускания. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° для Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ распрСдСлСния пропускной способности ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡ΠΊΠΈ Π² спискС Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚ΠΎΠ² Π² Windows. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Ρ‹Π΅ ссылки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ· Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ URLΒ» Π² GTK. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ сочСтания клавиш ΠΏΡ€ΠΈ сборкС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GTK3. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ настроСк GTK. + - ΠžΡ‚ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° подтвСрТдСния Β«Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Β» ΠΈ Β«Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Β». + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/transmission/transmission/releases. +permissions: + - STORAGE_DOWNLOADS +widgets: + - id: "status" + type: "four-stats" + refresh: "5s" + endpoint: "widget-server:80/widgets/status" + link: "" + example: + type: "four-stats" + link: "" + items: + - title: "Downloading" + text: "3" + subtext: "torrents" + - title: "Seeding" + text: "1" + subtext: "torrents" + - title: "Stopped" + text: "0" + subtext: "torrents" + - title: "Queued" + text: "2" + subtext: "torrents" + - id: "torrent-list" + type: "list" + refresh: "2s" + endpoint: "widget-server:80/widgets/torrent-list" + link: "" + example: + type: "list" + link: "" + items: + - text: "33% β€’ Ubuntu 22.04.3 amd64 ISO image" + subtext: "↓4.4Mbps ↑1.2Mbps" + - text: "100% β€’ Ubuntu 21.1.0 amd64 ISO image" + subtext: "↓0Mbps ↑78Kbps" + - text: "100% β€’ Debian 11.0 amd64 ISO image" + subtext: "↓0Mbps ↑827Kbps" +submitter: DFWebOS +submission: https://github.com/getumbrel/dfwebos-apps/commit/60878f278d544b204d8e7c96240c797f43a9b319 diff --git a/transmission/docker-compose.yml b/transmission/docker-compose.yml new file mode 100644 index 0000000..d3a9bf4 --- /dev/null +++ b/transmission/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: transmission_server_1 + APP_PORT: 9091 + + server: + image: linuxserver/transmission:4.1.1@sha256:d2183a00bbd5dbb083b14dcd65419379bfd91e0965b52849642354ec3d246452 + environment: + - PUID=1000 + - PGID=1000 + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${DFWEBOS_ROOT}/data/storage/downloads:/downloads + ports: + - 51413:51413 + - 51413:51413/udp + restart: on-failure + + widget-server: + image: getumbrel/umbrel-transmission-widget-server:v1.0.0@sha256:0ee30f1eecbf6f4f3f62e3f6d5c1626bd31d15ace7e97cacff5fc091836650cf + environment: + - TRANSMISSION_URL=http://transmission_server_1 + - TRANSMISSION_PORT=9091 + restart: on-failure diff --git a/trilium-notes/data/.gitkeep b/trilium-notes/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/trilium-notes/dfwebos-app.yml b/trilium-notes/dfwebos-app.yml new file mode 100644 index 0000000..ef43055 --- /dev/null +++ b/trilium-notes/dfwebos-app.yml @@ -0,0 +1,77 @@ +manifestVersion: 1 +id: trilium-notes +category: files +name: Trilium Notes +version: "v0.102.2" +tagline: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ свою Π»ΠΈΡ‡Π½ΡƒΡŽ Π±Π°Π·Ρƒ Π·Π½Π°Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Trilium Notes. +description: >- + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ + + + - Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹. ΠžΠ΄Π½Ρƒ Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах Π΄Π΅Ρ€Π΅Π²Π° (см. ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅). + + - Π‘ΠΎΠ³Π°Ρ‚ΠΎΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ WYSIWYG, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, изобраТСния ΠΈ матСматичСскиС вычислСния с Π°Π²Ρ‚ΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ ΡƒΡ†Π΅Π½ΠΊΠΈ + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° рСдактирования Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ с исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ подсвСтку синтаксиса. + + - Быстрая ΠΈ простая навигация ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ, полнотСкстовый поиск ΠΈ подъСм Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ. + + - Π‘Π΅ΡΡˆΠΎΠ²Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ + + - Атрибуты Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, выполнСния запросов ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… сцСнариСв. + + - Бинхронизация с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ сСрвСром синхронизации (Π΅ΡΡ‚ΡŒ сторонняя слуТба для размСщСния сСрвСра синхронизации) + + - ОбмСн (публикация) Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ Π² общСдоступном Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. + + - НадСТноС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ с Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ. + + - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ эскизов схСм с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного Excalidraw (Ρ‚ΠΈΠΏ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ «холст») + + - ΠšΠ°Ρ€Ρ‚Ρ‹ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠ°Ρ€Ρ‚Ρ‹ ссылок для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ. + + - Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ - см. Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Π²ΠΈΡ‚Ρ€ΠΈΠ½Ρ‹. + + - REST API для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ + + - Π₯ΠΎΡ€ΠΎΡˆΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎ удобству использования, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄ΠΎ 100 000 Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ. + + - БСнсорный ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ интСрфСйс для смартфонов ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ΠΎΠ². + + - Ночная Ρ‚Π΅ΠΌΠ° + + - Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈ экспорт Evernote ΠΈ Markdown + + - Web Clipper для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ сохранСния Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. +developer: TriliumNext +website: https://github.com/TriliumNext +dependencies: [] +repo: https://github.com/TriliumNext/Trilium +support: https://github.com/TriliumNext/Trilium/wiki +port: 3779 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: /#root +defaultUsername: "" +defaultPassword: "" +torOnly: false +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/199 +releaseNotes: >- + 🚨 Π­Ρ‚ΠΎΡ‚ выпуск содСрТит Π²Π°ΠΆΠ½Ρ‹Π΅ исправлСния бСзопасности. ВсСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ. + + + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ бСзопасности Π² вСрсии 0.102.2: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° содСрТимого SVG Π² ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°Ρ… ΠΈ основном API. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ Mermaid. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ увСдомлСния для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ экранирования содСрТимого. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠ° MIME для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· API. + - ΠŸΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ большС Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². + - OpenID Connect Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ бСзопасный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ случайных чисСл. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/TriliumNext/Trilium/releases. \ No newline at end of file diff --git a/trilium-notes/docker-compose.yml b/trilium-notes/docker-compose.yml new file mode 100644 index 0000000..a6a19f8 --- /dev/null +++ b/trilium-notes/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: trilium-notes_server_1 + APP_PORT: 8080 + PROXY_AUTH_WHITELIST: "/api/*" + + server: + image: triliumnext/trilium:v0.102.2@sha256:f1a2fd88e7032d60f863231ce94348e906bcd6a5fa043801badd5896c20c064d + restart: on-failure + environment: + - TRILIUM_DATA_DIR=/data + volumes: + - ${APP_DATA_DIR}/data:/data diff --git a/trip/data/app/.gitkeep b/trip/data/app/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/trip/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/trip/dfwebos-app.yml b/trip/dfwebos-app.yml new file mode 100644 index 0000000..5efe287 --- /dev/null +++ b/trip/dfwebos-app.yml @@ -0,0 +1,46 @@ +manifestVersion: 1 +id: trip +name: Trip +tagline: ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ ΠΊΠ°Ρ€Ρ‚ ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΠΎΠ΅Π·Π΄ΠΎΠΊ +category: files +version: "1.43.2" +port: 8980 +description: >- + πŸ—ΊοΈ TRIP β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ минималистичный Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ ΠΊΠ°Ρ€Ρ‚ ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΠΎΠ΅Π·Π΄ΠΎΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши Π΄ΠΎΡΡ‚ΠΎΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (POI) ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ вашСго ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ характСристики: + - БоставляйтС ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΈ управляйтС POI Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚Π°Ρ…. + - ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΄Π½Π΅Π²Π½Ρ‹Π΅ ΠΏΠΎΠ΅Π·Π΄ΠΊΠΈ с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌΠΈ. + - Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π°Ρ‚ΡŒ ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠΏΡƒΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ + + + Никакой Ρ‚Π΅Π»Π΅ΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ. Никакого отслСТивания. Никакой Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹. БСсплатно, навсСгда. +developer: itskovacs +website: https://itskovacs-trip.netlify.app/ +repo: https://github.com/itskovacs/trip +support: https://github.com/itskovacs/trip/issues +submitter: itskovacs +submission: https://github.com/getumbrel/dfwebos-apps/pull/3830 +releaseNotes: >- + НовыС возмоТности: + - АвтоматизированноС созданиС ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. + + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ интСрфСйс/UX: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с синхронизациСй ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΠΎΠ΅Π·Π΄ΠΎΠΊ. + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка нСизвСстной ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ API. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/itskovacs/trip/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg diff --git a/trip/docker-compose.yml b/trip/docker-compose.yml new file mode 100644 index 0000000..7a90372 --- /dev/null +++ b/trip/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: trip_app_1 + APP_PORT: 8000 + + app: + image: ghcr.io/itskovacs/trip:1.43.2@sha256:9e63c48d8c11b681d67e1a4178ca9b1818a2aba53e8541df30fcd8bdb40c3ad5 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/app:/app/storage + command: ["fastapi", "run", "/app/trip/main.py", "--host", "0.0.0.0"] diff --git a/tubearchivist/data/cache/.gitkeep b/tubearchivist/data/cache/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tubearchivist/data/elasticsearch/.gitkeep b/tubearchivist/data/elasticsearch/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tubearchivist/data/media/.gitkeep b/tubearchivist/data/media/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tubearchivist/data/redis/.gitkeep b/tubearchivist/data/redis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tubearchivist/dfwebos-app.yml b/tubearchivist/dfwebos-app.yml new file mode 100644 index 0000000..054bf5c --- /dev/null +++ b/tubearchivist/dfwebos-app.yml @@ -0,0 +1,48 @@ +manifestVersion: 1 +id: tubearchivist +category: media +name: Tube Archivist +version: "0.5.10" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Π΄ΠΈΠ°-сСрвСр YouTube +description: >- + Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ваша коллСкция Π²ΠΈΠ΄Π΅ΠΎ YouTube вырастСт, станСт слоТно ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ. + Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚-Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ Tube Archivist: индСксируя свою ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π²ΠΈΠ΄Π΅ΠΎ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· YouTube, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ, ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π΅ΠΎ YouTube Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс. + + + Основная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: + - ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ YouTube. + - Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ yt-dlp. + - Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎ доступными для поиска. + - ВоспроизвСдСниС Π²ΠΈΠ΄Π΅ΠΎ + - Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° просмотрСнными ΠΈ нСпросмотрСнными Π²ΠΈΠ΄Π΅ΠΎ +backupIgnore: + - data/cache + - data/redis +developer: tubearchivist +website: https://www.tubearchivist.com/ +dependencies: [] +repo: https://github.com/tubearchivist/tubearchivist +support: https://github.com/tubearchivist/tubearchivist/issues +port: 8079 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "admin" +deterministicPassword: true +torOnly: false +submitter: Kanishk Pachauri +submission: https://github.com/getumbrel/dfwebos-apps/pull/3944 +releaseNotes: >- + Π’ этом выпускС исправлСны ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ Tube Archivist: + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сСкрСтов ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ процСсс ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ сохранСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок для обнаруТСния Π±ΠΎΡ‚ΠΎΠ² Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· плСйлистов ΠΏΡ€ΠΈ рассинхронизации. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки внСдрСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² пустых описаниях. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Elasticsearch 9. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния поставщиков Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² PO. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/tubearchivist/tubearchivist/releases. \ No newline at end of file diff --git a/tubearchivist/docker-compose.yml b/tubearchivist/docker-compose.yml new file mode 100644 index 0000000..dcb5668 --- /dev/null +++ b/tubearchivist/docker-compose.yml @@ -0,0 +1,53 @@ +version: '3.7' +services: + app_proxy: + environment: + APP_HOST: tubearchivist_server_1 + APP_PORT: 8000 + PROXY_AUTH_ADD: "false" + + server: + image: bbilly1/tubearchivist:v0.5.10@sha256:dfe723cf008520e1758ecc3e59e6ea8761dd10d5bb099cd87289e80f5bd66567 + volumes: + - ${APP_DATA_DIR}/data/media:/youtube + - ${APP_DATA_DIR}/data/cache:/cache + environment: + - ES_URL=http://tubearchivist_elasticsearch_1:9200 + - REDIS_CON=redis://tubearchivist_redis_1:6379 + - HOST_UID=1000 + - HOST_GID=1000 + - TA_HOST=http://${DEVICE_DOMAIN_NAME}:8079 + - TA_USERNAME=admin + - TA_PASSWORD=${APP_PASSWORD} + - ELASTIC_PASSWORD=verysecret + - TZ=UTC + restart: on-failure + depends_on: + - elasticsearch + - redis + + redis: + image: redis:8.2.2-bookworm@sha256:4521b581dbddea6e7d81f8fe95ede93f5648aaa66a9dacd581611bf6fe7527bd + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis:/data + depends_on: + - elasticsearch + + elasticsearch: + image: elasticsearch:8.19.6@sha256:e2d7e20893ad820bcad241bf47b89958787f6b38225478dfe100b66937840b0f + user: "1000:1000" + restart: on-failure + environment: + - "ELASTIC_PASSWORD=verysecret" + - "ES_JAVA_OPTS=-Xms1g -Xmx1g" + - "xpack.security.enabled=true" + - "discovery.type=single-node" + - "path.repo=/usr/share/elasticsearch/data/snapshot" + ulimits: + memlock: + soft: -1 + hard: -1 + volumes: + - ${APP_DATA_DIR}/data/elasticsearch:/usr/share/elasticsearch/data diff --git a/twenty/data/db-data/.gitkeep b/twenty/data/db-data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/twenty/data/db-data/.gitkeep @@ -0,0 +1 @@ + diff --git a/twenty/data/docker-data/.gitkeep b/twenty/data/docker-data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/twenty/data/docker-data/.gitkeep @@ -0,0 +1 @@ + diff --git a/twenty/data/redis/.gitkeep b/twenty/data/redis/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/twenty/data/redis/.gitkeep @@ -0,0 +1 @@ + diff --git a/twenty/data/server-local-data/.gitkeep b/twenty/data/server-local-data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/twenty/data/server-local-data/.gitkeep @@ -0,0 +1 @@ + diff --git a/twenty/dfwebos-app.yml b/twenty/dfwebos-app.yml new file mode 100644 index 0000000..be149e3 --- /dev/null +++ b/twenty/dfwebos-app.yml @@ -0,0 +1,59 @@ +manifestVersion: 1.1 +id: twenty +name: Twenty +tagline: АдаптируСмоС CRM-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для бСспСрСбойной совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ роста ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. +category: files +version: "1.20.0" +port: 2020 +description: >- + Twenty β€” это вСдущая CRM с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, созданная сообщСством ΠΈΠ· сотСн участников для удовлСтворСния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… потрСбностСй вашСго бизнСса. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для обСспСчСния гибкости, ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ прСдприятиям любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π° эффСктивно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌΠΈ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы. + + + Π‘ Twenty Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· систСму управлСния ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ настраиваСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ поля для сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, спСцифичной для Π²Π°ΡˆΠΈΡ… бизнСс-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, гарантируя, Ρ‡Ρ‚ΠΎ ваша CRM Π±ΡƒΠ΄Π΅Ρ‚ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΊ вашим потрСбностям. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΊΠ°Π½Π±Π°Π½, Ρ‚Π°ΠΊ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС, Ρ‡Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅. + + + Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°, которая Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ прСдставлСниС ΠΎ Π²Π°ΡˆΠΈΡ… процСссах ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΎΡ€ΠΎΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ΄Π°ΠΆ. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ β€” Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° цСнная функция, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ элСктронныС письма, относящиСся ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, нСпосрСдствСнно Π² вашСм Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ пространствС. Π­Ρ‚Π° интСграция Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° смоТСт эффСктивно ΡΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π°Ρ‚ΡŒ, Π½Π΅ покидая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ. + + + К ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ примСчания ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‡Ρ‚ΠΎ позволяСт вашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ взаимодСйствиС с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π’Π΅ΠΌ, ΠΊΠΎΠΌΡƒ Π½ΡƒΠΆΠ½Π° Π±ΠΎΠ»Π΅Π΅ продвинутая автоматизация, Twenty ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ API ΠΈ Webhook, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов. + + + ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования Twenty Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠ΅ сотрудничСство Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ возмоТности настройки Ρ‚Π°ΠΊΠΆΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ Twenty смоТСт Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ роста ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ вашСго бизнСса. + + + ⚠️ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Twenty CRM Π½Π΅ поставляСтся с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ настроСнными поставщиками элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈΠ»ΠΈ калСндаря. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ слуТбы, ΠΊΠ°ΠΊ Gmail ΠΈΠ»ΠΈ Microsoft Outlook, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свои собствСнныС ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ OAuth ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² настройках Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ **Π”Ρ€ΡƒΠ³ΠΎΠ΅/ПанСль администратора/ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ**. ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΠΈ появятся Π² интСрфСйсС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС установки Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. + + + ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΏΠΎ настройкС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://twenty.com/developers/section/self-hosting/setup#for-gmail-and-google-calendar +backupIgnore: + - data/redis/* +developer: Twenty.com PBC +website: https://twenty.com/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2484 +repo: https://github.com/twentyhq/twenty +support: https://github.com/twentyhq/twenty/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + Π’ этом выпускС прСдставлСны ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, ИИ, Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссах, ΠΌΠ°ΠΊΠ΅Ρ‚Π°Ρ… записСй ΠΈ бСзопасности: + - ИзмСнСниС порядка пСрСтаскивания Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ с Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ панСлью ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ мСню. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ‡Π°Ρ‚Π° ИИ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ возобновляСмого ΠΏΠΎΡ‚ΠΎΠΊΠ°, сохранСниС Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠΎΠ² сообщСний, Ρ€Π΅Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€Π° ΠΈ Π½ΠΎΠ²Ρ‹Π΅ настройки ΠΌΠΎΠ΄Π΅Π»ΠΈ ИИ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ пропуск ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈ сбоС, шаг Ρ„ΠΎΡ€ΠΌΡ‹ с мноТСствСнным Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΠ΅Ρ‚Π° страницы записи, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, Π³Ρ€ΡƒΠΏΠΏΡƒ скрытых ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ объСдинСния записСй. + - OAuth 2.0 ДинамичСская рСгистрация ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² (RFC 7591) ΠΈ унифицированная рСгистрация ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + - Π’ΠΈΠΏ поля Rich Text Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ бСзопасности, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ XSS для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ обслуТивания Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ IP-адрСса SSRF ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния уязвимостСй зависимостСй. + - ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ для горячих запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Apollo v4. + - Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ записСй ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² для ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ исправлСния ошибок Π² Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, просмотрС доски, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π΅ интСрфСйс. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/twentyhq/twenty/releases/. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/twenty/docker-compose.yml b/twenty/docker-compose.yml new file mode 100644 index 0000000..b9e9bcd --- /dev/null +++ b/twenty/docker-compose.yml @@ -0,0 +1,76 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: twenty_server_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + server: + image: twentycrm/twenty:v1.20.0@sha256:b3120df567a73c849a7a1ae58fa4f3d7bdd5072939312be702375960ed601557 + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/server-local-data:/app/packages/twenty-server/.local-storage + - ${APP_DATA_DIR}/data/docker-data:/app/docker-data + environment: + NODE_PORT: 3000 + PG_DATABASE_URL: postgres://postgres:postgres@twenty_db_1:5432/default + SERVER_URL: http://${DEVICE_DOMAIN_NAME}:2020 + REDIS_URL: redis://twenty_redis_1:6379 + APP_SECRET: 2Gn5puuVCH0SI386E9RqOqHm0hGIAyrB + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + healthcheck: + test: curl --fail http://localhost:3000/healthz + interval: 10s + timeout: 30s + retries: 10 + start_period: 120s + restart: on-failure + + worker: + image: twentycrm/twenty:v1.20.0@sha256:b3120df567a73c849a7a1ae58fa4f3d7bdd5072939312be702375960ed601557 + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/server-local-data:/app/packages/twenty-server/.local-storage + command: ["yarn", "worker:prod"] + environment: + PG_DATABASE_URL: postgres://postgres:postgres@twenty_db_1:5432/default + SERVER_URL: http://${DEVICE_DOMAIN_NAME}:2020 + REDIS_URL: redis://twenty_redis_1:6379 + DISABLE_DB_MIGRATIONS: "true" + DISABLE_CRON_JOBS_REGISTRATION: "true" + APP_SECRET: 2Gn5puuVCH0SI386E9RqOqHm0hGIAyrB + depends_on: + db: + condition: service_healthy + server: + condition: service_healthy + restart: on-failure + + db: + image: postgres:16.8@sha256:74e7a26f7db1d5bbce23b4132fb4855ed0987ec9dc44f6d078ba8800892dc927 + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/db-data:/var/lib/postgresql/data + environment: + POSTGRES_DB: default + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + healthcheck: + test: pg_isready -U postgres -h localhost -d postgres + interval: 10s + timeout: 30s + retries: 10 + restart: on-failure + + redis: + image: redis:7.4.2@sha256:bd41d55aae1ecff61b2fafd0d66761223fe94a60373eb6bb781cfbb570a84079 + user: "1000:1000" + restart: on-failure + volumes: + - "${APP_DATA_DIR}/data/redis:/data" diff --git a/twenty/hooks/post-update b/twenty/hooks/post-update new file mode 100755 index 0000000..a170e83 --- /dev/null +++ b/twenty/hooks/post-update @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ кСш послС обновлСния прилоТСния + +echo "Clearing cache for twenty." +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" run --rm server yarn command:prod cache:flush +echo "Successfully cleared the twenty cache." + +echo "Running database migrations for twenty." +"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" run --rm server yarn database:migrate:prod +echo "Successfully run database migrations for twenty." + +exit 0 diff --git a/umami/data/db/.gitkeep b/umami/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/umami/dfwebos-app.yml b/umami/dfwebos-app.yml new file mode 100644 index 0000000..455cca0 --- /dev/null +++ b/umami/dfwebos-app.yml @@ -0,0 +1,67 @@ +manifestVersion: 1 +id: umami +name: Umami +tagline: ΠŸΡ€ΠΎΡΡ‚Π°Ρ, быстрая Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Google Analytics, ориСнтированная Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. +category: developer +version: "3.1.0" +port: 25727 +description: >- + Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ возмоТностСй понимания. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + Umami ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ сбор, Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… Π²Π΅Π±-Π΄Π°Π½Π½Ρ‹Ρ…, сохраняя ΠΏΡ€ΠΈ этом ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ посСтитСлСй ΠΈ ΠΏΡ€Π°Π²ΠΎ собствСнности Π½Π° Π΄Π°Π½Π½Ρ‹Π΅. + + + ⚠️ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ + + Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π°ΠΆΠ°Π² Π½Π° Π°Π²Π°Ρ‚Π°Ρ€ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ Β«ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒΒ». + + Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ придСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Umami доступ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π½Π° Π²Π΅Π±-сайтах. + + Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Cloudflare Tunnel ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DFWebOS ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Umami, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свой собствСнный Π΄ΠΎΠΌΠ΅Π½. + + + 😌 ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° Π² использовании + + Umami прост Π² использовании ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ, Π±Π΅Π· нСобходимости ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹. ВсС Π΄Π°Π½Π½Ρ‹Π΅ доступны с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ взгляда. + + + πŸ’Ύ Π’Π»Π°Π΄Π΅ΠΉΡ‚Π΅ своими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ + + Π’Π»Π°Π΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ для обСспСчСния соблюдСния постоянно ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Π·Π°ΠΊΠΎΠ½ΠΎΠ² ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, зная, Ρ‡Ρ‚ΠΎ ваши Π΄Π°Π½Π½Ρ‹Π΅ находятся ΠΏΠΎΠ΄ вашим ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ. + + + πŸ”’ Π‘ΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. + + Umami позволяСт Π²Π°ΠΌ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, соблюдая ΠΏΡ€ΠΈ этом ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ВсС Π΄Π°Π½Π½Ρ‹Π΅ Π°Π½ΠΎΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ. Π‘Π°Π½Π½Π΅Ρ€Ρ‹ cookie Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ. +developer: Umami +website: https://umami.is +submitter: Sharknoon +submission: https://github.com/getumbrel/dfwebos-apps/pull/1083 +repo: https://github.com/umami-software/umami +support: https://github.com/umami-software/umami/discussions +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: admin +defaultPassword: umami +dependencies: [] +releaseNotes: >- + Π­Ρ‚ΠΎ основной выпуск Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ со мноТСством Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ. + + + НСкоторыС ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Доски: создавайтС собствСнныС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ с Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Π³ΠΈΠ±ΠΊΠΎΠΌ холстС. + - ВоспроизвСдСниС сСанса: смотритС, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ сСансы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ воспроизводятся Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ с настраиваСмой маскировкой ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + - ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ: отслСТивайтС основныС Π²Π΅Π±-ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ (LCP, INP, CLS, FCP, TTFB) ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Π²Π°ΡˆΠΈΡ… посСтитСлСй. + - ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Π°Ρ страница ΠΎΠ±Ρ‰Π΅Π³ΠΎ доступа с ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств, ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ссылками ΠΎΠ±Ρ‰Π΅Π³ΠΎ доступа ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ отобраТСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ доступа. + - Π›ΠΎΠ³ΠΈΠΊΠ° Π˜Π›Π˜, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° мноТСствСнного Π²Ρ‹Π±ΠΎΡ€Π° Π² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ…, сСгмСнтах ΠΈ ΠΊΠΎΠ³ΠΎΡ€Ρ‚Π°Ρ…. + - UTM-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΈ поля, доступныС Π²ΠΎ всСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. + - ΠŸΠΎΡΡ‚Π°ΠΏΠ½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ свойств событий ΠΏΡ€ΠΈ создании Π²ΠΎΡ€ΠΎΠ½ΠΊΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ уязвимости бСзопасности, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ IDOR Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… ΠΈ сСгмСнтах. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ многочислСнныС ошибки, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ часового пояса, Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ страниц, ΡƒΡ‡Π΅Ρ‚ рСгистра ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ интСрфСйс. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/umami-software/umami/releases. +path: "/dashboard" diff --git a/umami/docker-compose.yml b/umami/docker-compose.yml new file mode 100644 index 0000000..00d8214 --- /dev/null +++ b/umami/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3.7" + +services: + app: + image: ghcr.io/umami-software/umami:3.1.0@sha256:e3f80c0625aad7179b49da27d475357cabb1068b8cacd9a792cfd6966888b123 + user: "1001:1001" + restart: on-failure + stop_grace_period: 1m + ports: + - 25727:3000 + environment: + DATABASE_URL: postgresql://umami:umami@umami_db_1:5432/umami + DATABASE_TYPE: postgresql + APP_SECRET: ${APP_SEED} + depends_on: + - db + + db: + image: postgres:15-alpine@sha256:8a8d55343d6fc456cb183453e3094ff140b984157b36b48f817dd581654f2aec + restart: on-failure + stop_grace_period: 1m + environment: + POSTGRES_DB: umami + POSTGRES_USER: umami + POSTGRES_PASSWORD: umami + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data diff --git a/uptime-kuma/data/.gitkeep b/uptime-kuma/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/uptime-kuma/data/uptime-kuma/.gitkeep b/uptime-kuma/data/uptime-kuma/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/uptime-kuma/dfwebos-app.yml b/uptime-kuma/dfwebos-app.yml new file mode 100644 index 0000000..ee110d5 --- /dev/null +++ b/uptime-kuma/dfwebos-app.yml @@ -0,0 +1,60 @@ +manifestVersion: 1 +id: uptime-kuma +category: networking +name: Uptime Kuma +version: "2.2.1" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Π΅Π·ΠΎΡ‚ΠΊΠ°Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ +description: > + Uptime Kuma β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ инструмСнт ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Uptime Robot. + + + Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: + + + - ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Π΅Π·ΠΎΡ‚ΠΊΠ°Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ для ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова HTTP(s)/TCP/HTTP/Ping/DNS/Push/Steam Game Server. + + - НСобычный, Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ, Быстрый интСрфСйс/UX. + + - УвСдомлСния Ρ‡Π΅Ρ€Π΅Π· Telegram, Discord, Gotify, Slack, Pushover, ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ (SMTP) ΠΈ Π±ΠΎΠ»Π΅Π΅ 70 слуТб ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. + + - Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ 20 сСкунд. + + - НСсколько языков + + - ΠŸΡ€ΠΎΡΡ‚Π°Ρ страница статуса + + - Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΈΠ½Π³Π° + + - Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ сСртификатС +developer: Louis Lam +website: https://uptime.kuma.pet +dependencies: [] +repo: https://github.com/louislam/uptime-kuma +support: https://github.com/louislam/uptime-kuma/issues +port: 8385 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultPassword: "" +releaseNotes: > + НовыС возмоТности: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ поставщик ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Fluxer. + β€” УстановитС для названия процСсса Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«uptime-kumaΒ» для упрощСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ процСсса. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния isParentActive. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΡΡ‚ΠΈΠ»ΡŒ Π²Π²ΠΎΠ΄Π° Fluxer ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π° Discord. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ коэффициСнта бСспСрСбойной Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ срСднСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΈΠ· ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Prometheus. + - ВосстановлСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² AWS ΠΈ Azure, которая Π±Ρ‹Π»Π° Ρ€Π°Π½Π΅Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π°. + + + Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ бСзопасности: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° умСрСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° бСзопасности (GHSA-v832-4r73-wx5j). + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/louislam/uptime-kuma/releases. +submitter: Philipp Haussleiter +submission: https://github.com/getumbrel/umbrel/pull/1148 diff --git a/uptime-kuma/docker-compose.yml b/uptime-kuma/docker-compose.yml new file mode 100644 index 0000000..9225919 --- /dev/null +++ b/uptime-kuma/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: uptime-kuma_server_1 + APP_PORT: 3001 + PROXY_AUTH_ADD: "false" + + server: + image: louislam/uptime-kuma:2.2.1@sha256:7337368a77873f159435de9ef09567f68c31285ed5f951dec36256c4b267ee44 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/uptime-kuma:/app/data diff --git a/urbit-bitcoin-connector/dfwebos-app.yml b/urbit-bitcoin-connector/dfwebos-app.yml new file mode 100644 index 0000000..d638aa2 --- /dev/null +++ b/urbit-bitcoin-connector/dfwebos-app.yml @@ -0,0 +1,39 @@ +manifestVersion: 1 +id: urbit-bitcoin-connector +category: bitcoin +name: Urbit Bitcoin Connector +version: "0.1.0" +tagline: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ кошСлСк Bitcoin вашСго Urbit ΠΊ ΡƒΠ·Π»Ρƒ Bitcoin. +description: >- + Π’ Urbit Π΅ΡΡ‚ΡŒ собствСнный кошСлСк Bitcoin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΌΡƒ + ΡƒΠ·Π΅Π» Ρ‡Π΅Ρ€Π΅Π· посрСдника, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ. ΠŸΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Ρ‡Π°ΡΡ‚ΡŒΡŽ бэкэнда + ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ %btc-provider, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ взаимодСйствуСт с ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· bitcoind + ΠΈ lectrs, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ прокси-сСрвСр Node Express для трансляции Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² RPC. + ΠΌΠ΅ΠΆΠ΄Ρƒ TCP ΠΈ HTTP. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ установит ΠΈ настроит Express-прокси. + Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Bitcoin вашСго DFWebOS. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ это, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ + Bitcoin Π½Π° ΠΊΠΎΡ€Π°Π±Π»Π΅ (Π΄Π°ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ Π½Π° вашСм DFWebOS) ΠΈ настройтС Π΅Π³ΠΎ, + ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΡ€Π°Π±Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ своими кошСльками. + + + Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ Π²Π΅Π±-страницу с графичСским интСрфСйсом с инструкциями ΠΏΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ вашСго ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ΠΈ кошСлька Bitcoin. Π’Π΅Π±-сайт интСрфСйс доступСн Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ 9090. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ссли ваш Urbit Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вашСм DFWebOS, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ своСго ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ/частный IP-адрСс DFWebOS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, http://192.168.0.10:55555).). + + + Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ ~timluc-miptev ΠΈ ~master-forwex +developer: ~sitful-hatred & ~mopfel-winrux +website: https://subject.network +dependencies: + - bitcoin + - electrs +repo: https://github.com/yapishu/urbit-bitcoin-node +support: https://github.com/yapishu/urbit-bitcoin-node +port: 9090 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +torOnly: false +submitter: ~sitful-hatred +submission: https://github.com/getumbrel/umbrel/pull/1243 +releaseNotes: "" \ No newline at end of file diff --git a/urbit-bitcoin-connector/docker-compose.yml b/urbit-bitcoin-connector/docker-compose.yml new file mode 100644 index 0000000..120f9e8 --- /dev/null +++ b/urbit-bitcoin-connector/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: $APP_URBIT_BITCOIN_CONNECTOR_IP + APP_PORT: $APP_URBIT_BITCOIN_CONNECTOR_PORT + + web: + image: matwet/urbit-btc-node:latest@sha256:930a1752684277f743d2b48a59b4b977da96423d49ed4b5076c14cd81fa5e286 + init: true + restart: on-failure + stop_grace_period: 1m + ports: + - ${APP_URBIT_BITCOIN_CONNECTOR_SERVER_PORT}:${APP_URBIT_BITCOIN_CONNECTOR_SERVER_PORT} + environment: + INTERNAL_IP: $APP_URBIT_BITCOIN_CONNECTOR_IP + ELECTRUM_IP: $APP_ELECTRS_NODE_IP + ELECTRUM_PORT: $APP_ELECTRS_NODE_PORT + BITCOIN_IP: $APP_BITCOIN_NODE_IP + BITCOIN_RPC_PORT: $APP_BITCOIN_RPC_PORT + BITCOIN_RPC_USER: $APP_BITCOIN_RPC_USER + BITCOIN_RPC_PASS: $APP_BITCOIN_RPC_PASS + BITCOIN_RPC_AUTH: $APP_BITCOIN_RPC_AUTH + networks: + default: + ipv4_address: $APP_URBIT_BITCOIN_CONNECTOR_IP diff --git a/urbit-bitcoin-connector/exports.sh b/urbit-bitcoin-connector/exports.sh new file mode 100644 index 0000000..e83522a --- /dev/null +++ b/urbit-bitcoin-connector/exports.sh @@ -0,0 +1,3 @@ +export APP_URBIT_BITCOIN_CONNECTOR_IP="10.21.21.81" +export APP_URBIT_BITCOIN_CONNECTOR_PORT="9090" +export APP_URBIT_BITCOIN_CONNECTOR_SERVER_PORT="55555" \ No newline at end of file diff --git a/urbit/dfwebos-app.yml b/urbit/dfwebos-app.yml new file mode 100644 index 0000000..ef6a29d --- /dev/null +++ b/urbit/dfwebos-app.yml @@ -0,0 +1,44 @@ +manifestVersion: 1 +id: urbit +category: networking +name: Urbit +version: "v4.3" +tagline: ЗапуститС Urbit Π½Π° своСм Π·ΠΎΠ½Ρ‚ΠΈΠΊΠ΅ +description: >- + Urbit β€” это ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр для нСзависимых Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈ сСтСвых + вычислСния. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€ Nock встроСн Π² систСму Hoon. + язык программирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Arvo, Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. + систСма, которая обмСниваСтся Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· Ames, Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ P2P-ΡΠ΅Ρ‚ΡŒ. + + + Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ экзСмплярами Urbit Π½Π° вашСм DFWebOS. Он прСдоставляСт простой графичСский интСрфСйс управлСния, запускаСт ΠΈ останавливаСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ваш +ΠΊΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· интСрфСйс. + + + Если Π²Ρ‹ заинтСрСсованы Π² ΠΏΠΎΠΊΡƒΠΏΠΊΠ΅ ΠΏΠ»Π°Π½Π΅Ρ‚Ρ‹ L2, ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚Π΅ Π·Π°ΠΊΠ°Π·: subject.network/buy. + + + Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌ ~timluc-miptev, ~master-forwex, ~sipsen-pilser ΠΈ ~rivpyl-sidfyl. +developer: ~mopfel-winrux & ~sitful-hatred +website: https://github.com/mopfel-winrux/urbit-dfwebos +dependencies: [] +repo: https://github.com/mopfel-winrux/urbit-dfwebos +support: https://github.com/mopfel-winrux/urbit-dfwebos/issues +port: 8090 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: /launch +defaultUsername: dfwebos +deterministicPassword: true +torOnly: false +submitter: ~mopfel-winrux +submission: https://github.com/getumbrel/umbrel/pull/1246 +releaseNotes: >- + vere-v4.3 β€” это второстСпСнная вСрсия со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ исправлСниями ΠΈ функциями: + - Π‘Ρ€Π΅Π΄Π° выполнСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сТатиС http-ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² gzip, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния tlon. + - Π‘Π±ΠΎΡ€ΠΊΠ° Windows Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ установлСнной зависимости libblake3. + - ВСрсия lmdb, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ vere-v4.2 ΠΈ Π½ΠΈΠΆΠ΅, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² Windows, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΆΡƒΡ€Π½Π°Π»Π° событий Π΄ΠΎ 63 Π“Π‘ сразу ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску здСсь: https://github.com/urbit/vere/releases/tag/vere-v4.3. \ No newline at end of file diff --git a/urbit/docker-compose.yml b/urbit/docker-compose.yml new file mode 100644 index 0000000..7f9620b --- /dev/null +++ b/urbit/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: urbit_manager_1 + APP_PORT: 8090 + PROXY_AUTH_ADD: "false" + + manager: + image: mopfelwinrux/urbit-umbrel:v4.3@sha256:91f4ae90f4ed5721de4b9389bc13d79627b52d11d5d8afa08802088f6e65d06d + ports: + - "34343:34343" + volumes: + - ${APP_DATA_DIR}/piers:/data/piers + - ${APP_DATA_DIR}/keys:/data/keys + environment: + APP_PASSWORD: ${APP_PASSWORD} diff --git a/usocial/data/.gitkeep b/usocial/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/usocial/dfwebos-app.yml b/usocial/dfwebos-app.yml new file mode 100644 index 0000000..ef8d793 --- /dev/null +++ b/usocial/dfwebos-app.yml @@ -0,0 +1,39 @@ +manifestVersion: 1 +id: usocial +category: social +name: usocial +version: "0.1.7-build-1" +tagline: Π§ΠΈΡ‚Π°Ρ‚ΡŒ. Π‘Π»ΡƒΡˆΠ°Ρ‚ΡŒ. Π Π°ΡΠΏΠ»Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ. +description: >- + ΠšΠ»ΠΈΠ΅Π½Ρ‚ подкастов ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° чтСния ΠΊΠ°Π½Π°Π»ΠΎΠ² для вашСго Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ сСрвСра. Π‘ + Lightning ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСти. + + + - ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ интСрфСйс (минималистичный Π΄ΠΈΠ·Π°ΠΉΠ½ Π² стилС HN) + + - ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ + + - ДСцСнтрализованная ΠΊΠ°Ρ€ΠΌΠ° + + - Чистый ΠΊΠΎΠ΄ (Python/Flask/SQLite) + + - Поиск подкастов ΠΈΠ· индСкса подкастов + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Π³Π° значСния Podcasting 2.0, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ Bitcoin создатСлям подкастов Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ Lightning. +developer: Ioan BizΔƒu +website: http://usocial.me +dependencies: + - lightning +repo: https://github.com/ibz/usocial +support: https://github.com/ibz/usocial/issues +port: 8448 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: true +torOnly: false +submitter: Ioan BizΔƒu +submission: https://github.com/getumbrel/umbrel/pull/1247 +releaseNotes: "" \ No newline at end of file diff --git a/usocial/docker-compose.yml b/usocial/docker-compose.yml new file mode 100644 index 0000000..f9e2649 --- /dev/null +++ b/usocial/docker-compose.yml @@ -0,0 +1,32 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: usocial_web_1 + APP_PORT: 5000 + + web: + image: ghcr.io/ibz/usocial:v0.1.5-buster@sha256:1b1215d7fba847bf922a2615fee6400ce61cac4545dff6bfcf9703af8e05b953 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro + - ${APP_DATA_DIR}/data:/instance + environment: + USOCIAL_JOB: "WEB" + APP_PASSWORD: "${APP_PASSWORD}" + LND_IP: "${APP_LIGHTNING_NODE_IP}" + LND_GRPC_PORT: ${APP_LIGHTNING_NODE_GRPC_PORT} + LND_DIR: "/lnd" + + fetcher: + depends_on: + - web + image: ghcr.io/ibz/usocial:v0.1.7-buster@sha256:864d0d225ed3f48060e6020abbe95355c99fb4426da3fdfb4e185581ccd0368b + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/instance + environment: + USOCIAL_JOB: "FETCH_FEEDS" diff --git a/vaultwarden/data/.gitkeep b/vaultwarden/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/vaultwarden/dfwebos-app.yml b/vaultwarden/dfwebos-app.yml new file mode 100644 index 0000000..fc372c3 --- /dev/null +++ b/vaultwarden/dfwebos-app.yml @@ -0,0 +1,69 @@ +manifestVersion: 1 +id: vaultwarden +category: files +name: Vaultwarden +version: "1.34.3" +tagline: "ΠΠ΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр, совмСстимый с BitwardenΒ" +description: >- + Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ β€” Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° + рСализация сСрвСра BitwardenΒ API, совмСстимого с + ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ BitwardenΒ*. Vaultwarden идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния всСх + ваши ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π² Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° вашСм DFWebOS. Vaultwarden β€” это ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ + Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ BitwardenΒ API, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: + + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ + + - ВлоТСния + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° API + + - ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ статичСских Ρ„Π°ΠΉΠ»ΠΎΠ² для интСрфСйса Vault. + + - Иконки Π²Π΅Π±-сайта API + + - АутСнтификатор ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° U2F + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° YubiKey ΠΈ Duo + + - ЭкстрСнный доступ + + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Π’Π΅Π±-интСрфСйс Vaultwarden нСдоступСн Ρ‡Π΅Ρ€Π΅Π· http, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для доступа ΠΊ Π½Π΅ΠΌΡƒ для ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ настройки Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Tor. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ: + + - Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваш DFWebOS доступСн Ρ‡Π΅Ρ€Π΅Π· Tor, пСрСйдя Π² «Настройки» Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ TorΒ» Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ состояниС. Π’Π°ΠΌ потрСбуСтся ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ DFWebOS, Ссли ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ Tor Π±Ρ‹Π» Ρ€Π°Π½Π΅Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½. + + - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ своСму Π·ΠΎΠ½Ρ‚Ρƒ Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Tor, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ адрСс .onion, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² настройках Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ TorΒ». + + - Π’ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Tor ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Vaultwaden ΠΈ создайтС ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись. + + - ПослС создания ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ своСму сСрвСру Vaultwarden ΠΈΠ· любого прилоТСния Bitwarden (мобильного, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚.Β Π΄.), Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΄Π°Π½Π½Ρ‹Π΅ IP-адрСса вашСго сСрвСра. + + - Для Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ соСдинСния ΠΈΠ· любой Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΌΠΈΡ€Π° установитС Tailscale Π½Π° свой DFWebOS ΠΈ ваши устройства ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ IP-адрСс Tailscale для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сСрвСру Vaultwarden. + + + *ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Vaultwarden Π½Π΅ связан Π½ΠΈ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ BitwardenΒ, Π½ΠΈ с 8bit Solutions LLC. ΠŸΡ€ΠΈ использовании этого прилоТСния сообщайтС Π½Π°ΠΌ ΠΎ Π»ΡŽΠ±Ρ‹Ρ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈΠ»ΠΈ прСдлоТСниях Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ (ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ Ρ‚. Π΄.), ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ BitwardenΒ. +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… MySQL/MariaDB ΠΏΡ€ΠΈ использовании ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Alpine. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/dani-garcia/vaultwarden/releases. +developer: Daniel GarcΓ­a +website: https://github.com/dani-garcia +dependencies: [] +repo: https://github.com/dani-garcia/vaultwarden +support: https://vaultwarden.discourse.group/ +port: 8089 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: true +submitter: DFWebOS +submission: https://github.com/getumbrel/umbrel/commit/44c842bddafffa558569f730cb0d5442ee073bf5 diff --git a/vaultwarden/docker-compose.yml b/vaultwarden/docker-compose.yml new file mode 100644 index 0000000..a3ca8bb --- /dev/null +++ b/vaultwarden/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: vaultwarden_server_1 + APP_PORT: 8089 + PROXY_AUTH_ADD: "false" + + server: + image: vaultwarden/server:1.34.3@sha256:84fd8a47f58d79a1ad824c27be0a9492750c0fa5216b35c749863093bfa3c3d7 + user: "1000:1000" + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data:/data + environment: + ROCKET_PORT: 8089 diff --git a/vert/dfwebos-app.yml b/vert/dfwebos-app.yml new file mode 100644 index 0000000..a06e57e --- /dev/null +++ b/vert/dfwebos-app.yml @@ -0,0 +1,34 @@ +manifestVersion: 1 +id: vert +name: VERT +tagline: Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² +category: files +version: "9154213" +port: 3884 +description: >- + πŸ”„ VERT β€” это соврСмСнная ΠΈ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для прСобразования Ρ„Π°ΠΉΠ»ΠΎΠ², созданная для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² простым, бСзопасным ΠΈ эффСктивным. Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ изобраТСния, Π²ΠΈΠ΄Π΅ΠΎ, Π°ΡƒΠ΄ΠΈΠΎ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈ быстро ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ. КаТдоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ выполняСтся Π³Π»Π°Π΄ΠΊΠΎ, гарантируя максимальноС сохранСниС исходного качСства ΠΈ структуры Ρ„Π°ΠΉΠ»ΠΎΠ². + + + Π§Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ VERT, Ρ‚Π°ΠΊ это Π΅Π³ΠΎ ориСнтация Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠšΠΎΠ½Π²Π΅Ρ€ΡΠΈΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ локально, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π° внСшниС сСрвСры. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ снимаСт ограничСния Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ врСмя оТидания. + + + VERT сочСтаСт Π² сСбС чистый, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ прСобразования, прСдоставляя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ простоту ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. Π‘ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠ½ обСспСчиваСт удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ потрСбностям. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ ΡƒΠ²Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² быстрый, простой ΠΈ приятный процСсс. +developer: VERT +website: https://vert.sh/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3846 +repo: https://github.com/VERT-sh/VERT +support: https://github.com/VERT-sh/VERT/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + НСкоторыС ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ маскируСмый Π·Π½Π°Ρ‡ΠΎΠΊ PWA для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ внСшнСго Π²ΠΈΠ΄Π° Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ URL-адрСс Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° страниц GitHub. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/vert/docker-compose.yml b/vert/docker-compose.yml new file mode 100644 index 0000000..b11beaa --- /dev/null +++ b/vert/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: vert_web_1 + APP_PORT: 80 + + web: + image: ghcr.io/vert-sh/vert:sha-9154213@sha256:921bd61b3d786ecedce81e5ec0cb5112bce6c43d64e331a53af6862e56bd3ebd + restart: on-failure + environment: + PUB_HOSTNAME: http://${DEVICE_DOMAIN_NAME}:3884 + PUB_VERTD_URL: http://${DEVICE_DOMAIN_NAME}:3884 + PUB_ENV: production diff --git a/vikunja/data/db/.gitkeep b/vikunja/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/vikunja/data/files/.gitkeep b/vikunja/data/files/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/vikunja/dfwebos-app.yml b/vikunja/dfwebos-app.yml new file mode 100644 index 0000000..d8f3920 --- /dev/null +++ b/vikunja/dfwebos-app.yml @@ -0,0 +1,49 @@ +manifestVersion: 1 +id: vikunja +category: files +name: Vikunja +version: "2.3.0" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для создания Π΄Π΅Π». +description: >- + Π”ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Π’ΠΈΠΊΡƒΠ½ΡŒΠ΅ ΠΊΠ°ΠΊ ΠΎ записной ΠΊΠ½ΠΈΠΆΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ всС свои Π²Π΅Ρ‰ΠΈ. Но со свСрхспособностями. + + + πŸ—‚οΈ Π‘ΡƒΠ΄ΡŒΡ‚Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ + + ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ всС свои Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ всС иСрархичСски ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ связанныС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹. + + + πŸ‘₯ Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π°Ρ‚ΡŒ с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ + + Vikunja позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ всСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ! Задания ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΡ‚ΠΎ Π½Π°Π΄ Ρ‡Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. + + + πŸ› οΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ + + Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ свои Π·Π°Π΄Π°Ρ‡ΠΈ Π² классичСском Π²ΠΈΠ΄Π΅ списка, Π² Π²ΠΈΠ΄Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π“Π°Π½Ρ‚Π°, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ°Π½Π±Π°Π½-доски. ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ! +releaseNotes: >- + 🚨 Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ 11 исправлСний бСзопасности. ОбновлСниС Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска: + - Новая систСма ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² + - Π’ΠΈΠΊΡƒΠ½ΡŒΡ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² качСствС ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° OAuth 2.0. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° WeKan ΠΈ CSV + - Окно быстрого Π²Ρ…ΠΎΠ΄Π° Π² Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://vikunja.io/changelog/. +developer: Vikunja +website: https://vikunja.io/ +dependencies: [] +repo: https://github.com/go-vikunja/vikunja +support: https://community.vikunja.io/ +port: 4523 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +deterministicPassword: false +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/694 diff --git a/vikunja/docker-compose.yml b/vikunja/docker-compose.yml new file mode 100644 index 0000000..8649a66 --- /dev/null +++ b/vikunja/docker-compose.yml @@ -0,0 +1,41 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: vikunja_web_1 + APP_PORT: 3456 + # Ρƒ vikunja Π΅ΡΡ‚ΡŒ своя собствСнная аутСнтификация, поэтому Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ здСсь ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ DFWebOS. + PROXY_AUTH_ADD: "false" + + db: + image: mariadb:10.11.8@sha256:75f6e61397758489d1dccf95db33b6b49ebfc7ec1253d40060fdf8ceb7f938a3 + command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci + environment: + MYSQL_ROOT_PASSWORD: supersecret + MYSQL_USER: vikunja + MYSQL_PASSWORD: secret + MYSQL_DATABASE: vikunja + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql + restart: on-failure + healthcheck: + test: ["CMD-SHELL", "mysqladmin ping -h localhost -u $$MYSQL_USER --password=$$MYSQL_PASSWORD"] + interval: 2s + start_period: 30s + + web: + image: vikunja/vikunja:2.3.0@sha256:f6b80393c1998cd5cd0dc38d24762c59ab4c10000a6f1032ef5b554e262cab93 + environment: + VIKUNJA_SERVICE_PUBLICURL: http://${DEVICE_DOMAIN_NAME}:4523 + VIKUNJA_DATABASE_HOST: vikunja_db_1 + VIKUNJA_DATABASE_PASSWORD: secret + VIKUNJA_DATABASE_TYPE: mysql + VIKUNJA_DATABASE_USER: vikunja + VIKUNJA_DATABASE_DATABASE: vikunja + VIKUNJA_SERVICE_JWTSECRET: ${APP_SEED} + volumes: + - ${APP_DATA_DIR}/data/files:/app/vikunja/files + depends_on: + - db + restart: on-failure diff --git a/wanderer/data/data.ms/.gitkeep b/wanderer/data/data.ms/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wanderer/data/data.ms/.gitkeep @@ -0,0 +1 @@ + diff --git a/wanderer/data/pb_data/.gitkeep b/wanderer/data/pb_data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wanderer/data/pb_data/.gitkeep @@ -0,0 +1 @@ + diff --git a/wanderer/data/uploads/.gitkeep b/wanderer/data/uploads/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wanderer/data/uploads/.gitkeep @@ -0,0 +1 @@ + diff --git a/wanderer/dfwebos-app.yml b/wanderer/dfwebos-app.yml new file mode 100644 index 0000000..71335b0 --- /dev/null +++ b/wanderer/dfwebos-app.yml @@ -0,0 +1,50 @@ +manifestVersion: 1 +id: wanderer +name: Wanderer +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² +category: files +version: "0.18.5" +port: 3111 +description: >- + πŸ—ΊοΈ Wanderer β€” это автономная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, прСдназначСнная для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Ρ‹Ρ…Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅ΡˆΠ΅Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΈ вСлосипСдными ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌΠΈ, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠΌΠΈ Π½Π° своих условиях. Он прСдоставляСт понятный ΠΈ соврСмСнный интСрфСйс для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² GPX, рисования Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Π΅ ΠΈ ΠΈΡ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π±ΠΎΡ€ высоты. Wanderer ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ полнотСкстовый поиск ΠΈ ΠΌΠΎΡ‰Π½ΡƒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°ΠΉΡ‚ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‚ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ ΠΈΡ‰ΡƒΡ‚, ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ критСриям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Ρ€Π΅Π³ΠΈΠΎΠ½, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ активности. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ удСляСт большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ владСнию Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, прСдлагая ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° вашСм собствСнном сСрвСрС Π±Π΅Π· участия Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… Π»ΠΈΡ†. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ слои ΠΊΠ°Ρ€Ρ‚ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… поставщиков, ΠΊΠ°ΠΊ OpenStreetMap, ΠΈ позволяСт ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ GPX, поэтому ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ устройствами. + + + Wanderer особСнно популярСн срСди людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ нравится ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ свою Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² ΠΈΠ»ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ впСчатлСниями Π½Π° свСТСм Π²ΠΎΠ·Π΄ΡƒΡ…Π΅ с Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ, ΠΊΠ»ΡƒΠ±ΠΎΠΌ ΠΈΠ»ΠΈ мСстным сообщСством. Π•Π³ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π° ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ YunoHost, ΠΈ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ сСмСй, ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… вмСстС мСроприятия Π½Π° свСТСм Π²ΠΎΠ·Π΄ΡƒΡ…Π΅. Π•Π³ΠΎ чистый Π΄ΠΈΠ·Π°ΠΉΠ½, особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ коммСрчСских ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для всСх, ΠΊΡ‚ΠΎ Ρ†Π΅Π½ΠΈΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своими внСшними Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. +developer: Flomp +website: https://wanderer.to/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/2955 +repo: https://github.com/Flomp/wanderer +support: https://github.com/Flomp/wanderer/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg + - 6.jpg + - 7.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исправлСниС бСзопасности, Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ исправлСния ошибок: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ бСзопасности, связанная с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ XML. + - Настройки Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° списка ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΈ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ ΠΊ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° коррСкция высоты для сохранСния исходных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ GPX, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ расчСт подъСма ΠΈ спуска для высокочастотных Ρ‚Ρ€Π΅ΠΊΠΎΠ² GPX. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ слСд для Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π±Π΅Π· настроСк ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠžΡ‚ΠΌΠ΅Π½Π°Β» ΠΈ потСря фокуса ΠΏΡ€ΠΈ поискС ΠΏΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρƒ слСдов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ массовоС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ слСдов Π² модальном ΠΎΠΊΠ½Π΅ поиска ΠΏΠΎ списку. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΈ ошибки, связанныС с локалью. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ PDF ΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ, поэтому описания большС Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡƒΡ‚Π΅Π²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ сохранСниС состояния ΠΊΠ°Ρ€Ρ‚Ρ‹ для Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ состояниС Π³ΠΎΠ½ΠΊΠΈ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠ΅Π΅ ΠΊ ошибкам ΠΏΡ€ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ слСда. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‡Π΅ΡˆΡΠΊΠΎΠ³ΠΎ языка. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску: https://github.com/Flomp/wanderer/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/wanderer/docker-compose.yml b/wanderer/docker-compose.yml new file mode 100644 index 0000000..1f70b1d --- /dev/null +++ b/wanderer/docker-compose.yml @@ -0,0 +1,62 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: wanderer_web_1 + APP_PORT: 3000 + + web: + image: flomp/wanderer-web:v0.18.5@sha256:49eefcf02155639bf3b750cef96cef9c0f3260ece03348aec316aeb29d713c10 + user: "1000:1000" + depends_on: + search: + condition: service_healthy + db: + condition: service_started + environment: + ORIGIN: http://${DEVICE_DOMAIN_NAME}:3111 + BODY_SIZE_LIMIT: Infinity + PUBLIC_POCKETBASE_URL: http://wanderer_db_1:8090 + PUBLIC_DISABLE_SIGNUP: "false" + UPLOAD_FOLDER: /app/uploads + UPLOAD_USER: admin + UPLOAD_PASSWORD: ${APP_PASSWORD} + PUBLIC_VALHALLA_URL: https://valhalla1.openstreetmap.de + PUBLIC_NOMINATIM_URL: https://nominatim.openstreetmap.org + MEILI_URL: http://wanderer_search_1:7700 + MEILI_MASTER_KEY: ${APP_SEED} + volumes: + - ${APP_DATA_DIR}/data/uploads:/app/uploads + restart: on-failure + + search: + image: getmeili/meilisearch:v1.14.0@sha256:8cd411ba5d9ec2dfce02e241305208eebacce0fd74a72bece21cadd03dc566ce + environment: + MEILI_NO_ANALYTICS: "true" + MEILI_URL: http://wanderer_search_1:7700 + MEILI_MASTER_KEY: ${APP_SEED} + volumes: + - ${APP_DATA_DIR}/data/data.ms:/meili_data/data.ms + restart: on-failure + healthcheck: + test: curl --fail http://localhost:7700/health || exit 1 + interval: 15s + retries: 10 + start_period: 20s + timeout: 10s + + db: + image: flomp/wanderer-db:v0.18.5@sha256:c1798be5822e5b802b0e235dba108a5cc0dca7609e1bc52b417c5cafb3981d89 + user: "1000:1000" + depends_on: + search: + condition: service_healthy + environment: + POCKETBASE_ENCRYPTION_KEY: ${APP_WANDERER_ENCRYPTION_KEY} + MEILI_URL: http://wanderer_search_1:7700 + MEILI_MASTER_KEY: ${APP_SEED} + ORIGIN: http://${DEVICE_DOMAIN_NAME}:3111 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/pb_data:/pb_data diff --git a/wanderer/exports.sh b/wanderer/exports.sh new file mode 100644 index 0000000..cbfb785 --- /dev/null +++ b/wanderer/exports.sh @@ -0,0 +1 @@ +export APP_WANDERER_ENCRYPTION_KEY=$(derive_entropy "${app_entropy_identifier}-WANDERER_ENCRYPTION_KEY" | head -c32) diff --git a/watch-your-lan/data/WatchYourLAN/.gitkeep b/watch-your-lan/data/WatchYourLAN/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/watch-your-lan/dfwebos-app.yml b/watch-your-lan/dfwebos-app.yml new file mode 100644 index 0000000..5cb75d6 --- /dev/null +++ b/watch-your-lan/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1 +id: watch-your-lan +name: WatchYourLAN +tagline: Π›Π΅Π³ΠΊΠΈΠΉ сСтСвой IP-сканСр +category: networking +version: "2.1.4" +port: 8840 +description: >- + WatchYourLAN β€” это Π»Π΅Π³ΠΊΠΈΠΉ сСтСвой IP-сканСр. Оно позволяСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС устройства, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ вашСй локальной сСти. +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Swagger API. + - Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ хосты ΠΈΠ· API + - Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ сканированиС ΠΈΠ· API ΠΈΠ»ΠΈ настроСк ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ/сканирования. + - Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ хосты + - Ѐункция пробуТдСния ΠΏΠΎ локальной сСти + + + ⚠️ ΠžΠΏΡ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ HIST_IN_DB устарСла. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ всСгда хранится Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/aceberg/WatchYourLAN/releases. +developer: aceberg +website: https://github.com/aceberg/WatchYourLAN +submitter: Jasper +submission: https://github.com/getumbrel/dfwebos-apps/pull/940 +repo: https://github.com/aceberg/WatchYourLAN +support: https://github.com/aceberg/WatchYourLAN/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/watch-your-lan/docker-compose.yml b/watch-your-lan/docker-compose.yml new file mode 100644 index 0000000..02b35be --- /dev/null +++ b/watch-your-lan/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.7" + +services: + web: + image: aceberg/watchyourlan:2.1.4@sha256:f77532ca7c3c9a4398cb094df7674013a3d7fcf4699386f1e456c24df6fef00e + network_mode: "host" + restart: on-failure + stop_grace_period: 1m + init: true + environment: + TZ: "UTC" # required: needs your TZ for correct time + IFACES: "eth0 wlan0 enp1s0" # required: 1 or more interface + HOST: "0.0.0.0" # optional, default: 0.0.0.0 + PORT: "8840" # optional, default: 8840 + # Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ: + # TIMEOUT: "120" # ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, врСмя Π² сСкундах, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: 120 + # THEME: "sand" # Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ + # COLOR: "dark" # Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ + volumes: + - ${APP_DATA_DIR}/data:/data/WatchYourLAN diff --git a/wavelog/data/config/.gitkeep b/wavelog/data/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wavelog/data/db/.gitkeep b/wavelog/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wavelog/data/uploads/.gitkeep b/wavelog/data/uploads/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wavelog/data/userdata/.gitkeep b/wavelog/data/userdata/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wavelog/dfwebos-app.yml b/wavelog/dfwebos-app.yml new file mode 100644 index 0000000..af2f447 --- /dev/null +++ b/wavelog/dfwebos-app.yml @@ -0,0 +1,58 @@ +manifestVersion: 1.1 +id: wavelog +name: Wavelog +version: "2.4.1" +tagline: "ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для записи Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… радиостанций" +description: >- + ⚠️ НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π²Π°ΠΆΠ½Ρ‹Π΅ инструкции ΠΏΠΎ настройкС. + + Wavelog β€” это ΠΌΠΎΡ‰Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для записи Ρ€Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… радиостанций, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своими Ρ€Π°Π΄ΠΈΠΎΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ рСгистрация QSO, отслСТиваниС Π½Π°Π³Ρ€Π°Π΄ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ LoTW ΠΈ eQSL. + + πŸ› οΈΠ˜ΠΠ‘Π’Π Π£ΠšΠ¦Π˜Π― ПО ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ• + + Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ мастСра установки Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ настройки: + + - Имя хоста: wavelog-db + - Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…: Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠΉ ΠΆΡƒΡ€Π½Π°Π» + - Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠΉ ΠΆΡƒΡ€Π½Π°Π» + - ΠŸΠ°Ρ€ΠΎΠ»ΡŒ: Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠΉ ΠΆΡƒΡ€Π½Π°Π» + + Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. +category: social +developer: DF2ET, DJ7NT, HB9HIL, LA8AJA +website: https://www.wavelog.org +repo: https://github.com/wavelog/wavelog +support: https://github.com/wavelog/wavelog/issues +port: 8099 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +dependencies: [] +submitter: LU5JPL +submission: https://github.com/getumbrel/dfwebos-apps/pull/3323 +releaseNotes: >- + Π­Ρ‚ΠΎ слуТСбный выпуск, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ряд ошибок ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… страниц, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ DX-Cluster, Advanced Logbook ΠΈ Π½Π°Π³Ρ€Π°Π΄Ρƒ JCC. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ Π½Π°Π³Ρ€Π°Π΄ Π·ΠΎΠ½ ITU. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° статистика DXCC, Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π²ΡˆΠ°ΡΡΡ, Ссли Π½Π΅ Π±Ρ‹Π» установлСн Ρ€Π΅ΠΆΠΈΠΌ распространСния. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка Π½Π° страницС посСтитСля, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠ°Ρ ΠΊ ошибкС 500. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ расчСт домашнСго QTH Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ DX-Cluster. + - Π’ список Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² DX-Cluster Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ источника. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ ΠΈ тСпловая ΠΊΠ°Ρ€Ρ‚Π° Π²ΠΎ Π’Π°ΠΉΠΌΠΏΠ»ΠΎΡ‚Ρ‚Π΅Ρ€. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° пСрСнос Π·ΠΎΠ½ CQ ΠΈ ITU Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ Advanced Logbook. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ быстрый поиск Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΌ ΠΆΡƒΡ€Π½Π°Π»Π΅. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° дублирования Ρ€Π΅ΠΆΠΈΠΌΠ° Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ ΠΆΡƒΡ€Π½Π°Π»Π°. + - Π’ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΆΡƒΡ€Π½Π°Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция объСдинСния QSO. + - ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π½Π°Π³Ρ€Π°Π΄Π° JCC с сущСствСнным ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ скорости. + - Π’ сводку DXCC для просмотра «ВсС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹Β» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ слоты для Π³Ρ€ΡƒΠΏΠΏ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΌΠ΅Ρ€Ρ†Π°Π½ΠΈΠ΅ отобраТСния мСстного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° ΠΏΡ€ΠΈ смСнС ΠΏΠΎΠ·Ρ‹Π²Π½Ρ‹Ρ…. + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ для get_contacts_adif API. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/wavelog/wavelog/releases. \ No newline at end of file diff --git a/wavelog/docker-compose.yml b/wavelog/docker-compose.yml new file mode 100644 index 0000000..ce0fab4 --- /dev/null +++ b/wavelog/docker-compose.yml @@ -0,0 +1,29 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: wavelog_app_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + app: + image: ghcr.io/wavelog/wavelog:2.4.1@sha256:5b80014f45a6e96acde24c37afd23a9298b5a1813e49cb72edf85349cded16a2 + environment: + CI_ENV: docker + volumes: + - ${APP_DATA_DIR}/data/config:/var/www/html/application/config/docker + - ${APP_DATA_DIR}/data/uploads:/var/www/html/uploads + - ${APP_DATA_DIR}/data/userdata:/var/www/html/userdata + depends_on: + - wavelog-db + + wavelog-db: + image: mariadb:11.4@sha256:39596f079862334be04f4231664862e55d4febe54309cc62f750f2297de85b06 + environment: + MARIADB_RANDOM_ROOT_PASSWORD: yes + MARIADB_DATABASE: wavelog + MARIADB_USER: wavelog + MARIADB_PASSWORD: wavelog + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql diff --git a/wavelog/hooks/pre-start b/wavelog/hooks/pre-start new file mode 100755 index 0000000..822f734 --- /dev/null +++ b/wavelog/hooks/pre-start @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ΠœΡ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ user/group 33 (www-data) +# ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ устанавливаСм Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° 33:33. +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/data" + +DESIRED_OWNER="33:33" + +CONFIG_DATA_DIR="${APP_DATA_DIR}/config" +UPLOADS_DATA_DIR="${APP_DATA_DIR}/uploads" +USERDATA_DATA_DIR="${APP_DATA_DIR}/userdata" + +wavelog_correct_permission() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +wavelog_correct_permission "${CONFIG_DATA_DIR}" +wavelog_correct_permission "${UPLOADS_DATA_DIR}" +wavelog_correct_permission "${USERDATA_DATA_DIR}" diff --git a/webcheck/data/.gitkeep b/webcheck/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/webcheck/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/webcheck/dfwebos-app.yml b/webcheck/dfwebos-app.yml new file mode 100644 index 0000000..f16b034 --- /dev/null +++ b/webcheck/dfwebos-app.yml @@ -0,0 +1,47 @@ +manifestVersion: 1 +id: webcheck +name: WebCheck +tagline: Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для Π°Π½Π°Π»ΠΈΠ·Π° любого Π²Π΅Π±-сайта. +category: networking +version: "1.0.0" +port: 3093 +description: >- + WebCheck β€” это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт OSINT (с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Intelligence) для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π²Π΅Π±-сайтов. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π°ΡƒΠ΄ΠΈΡ‚ бСзопасности ΠΈ Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π΅Π±-сайтов. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + + + πŸ” Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π±-сайтов: автоматичСскоС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ уязвимостСй ΠΈ нСдостатков бСзопасности. + + + πŸš€ Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠ°ΠΊ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. + + + πŸ“ Анализ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°: ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ DNS ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² HTTP. + + + πŸ“Š Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС: созданиС снимков экрана для докумСнтирования ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² сайтов. + + + πŸ“ ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ: Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ отслСТиваниС с настраиваСмыми ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ отчСтности. + + + WebCheck являСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ API, являСтся кроссплатформСнным ΠΈ Π»Π΅Π³ΠΊΠΎ развСртываСтся Ρ‡Π΅Ρ€Π΅Π· Docker, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ доступным Π½Π° любом сСрвСрС. Π•Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ обСспСчиваСт ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, заботящихся ΠΎ бСзопасности. + + + Помимо Π°Π½Π°Π»ΠΈΠ·Π° общСдоступных Π²Π΅Π±-сайтов, WebCheck ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ бСзопасности Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ сСти ΠΈ инфраструктуры Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ. НастраиваСмыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ инструмСнтом для Π²Π΅Π±-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ² ΠΈ Π³Ρ€ΡƒΠΏΠΏ ИВ-бСзопасности. +developer: Alicia Sykes +website: https://web-check.xyz/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/1742 +repo: https://github.com/Lissy93/web-check +support: https://github.com/Lissy93/web-check/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: "" +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/webcheck/docker-compose.yml b/webcheck/docker-compose.yml new file mode 100644 index 0000000..4316742 --- /dev/null +++ b/webcheck/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: webcheck_server_1 + APP_PORT: 3000 + server: + image: ghcr.io/lissy93/web-check:1.0.0@sha256:5c310ff7d81cd87cf69a2738f930da2e5050aada543012720a859f01e4c5654c + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/app/data diff --git a/wger/config/nginx.conf b/wger/config/nginx.conf new file mode 100644 index 0000000..0959579 --- /dev/null +++ b/wger/config/nginx.conf @@ -0,0 +1,27 @@ +upstream wger { + server wger_web_1:8000; +} + +server { + + listen 80; + + location / { + proxy_pass http://wger; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $host:$server_port; + proxy_redirect off; + } + + location /static/ { + alias /wger/static/; + } + + location /media/ { + alias /wger/media/; + } + + client_max_body_size 100M; +} diff --git a/wger/config/prod.env b/wger/config/prod.env new file mode 100644 index 0000000..a5236f2 --- /dev/null +++ b/wger/config/prod.env @@ -0,0 +1,97 @@ +# Часовой пояс сСрвСра, список Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½: +# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones +TIME_ZONE=Europe/Berlin +TZ=Europe/Berlin + +# +# ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ +WGER_INSTANCE=https://wger.de +ALLOW_REGISTRATION=True +ALLOW_GUEST_USERS=True +ALLOW_UPLOAD_VIDEOS=True +MIN_ACCOUNT_AGE_TO_TRUST=21 + +SYNC_EXERCISES_CELERY=True +SYNC_EXERCISE_IMAGES_CELERY=True +SYNC_EXERCISE_VIDEOS_CELERY=True + +SYNC_INGREDIENTS_CELERY=True +DOWNLOAD_INGREDIENTS_FROM=WGER + +USE_CELERY=True + +# +# Π‘Π΅Π»ΡŒΠ΄Π΅Ρ€Π΅ΠΉ +CELERY_BROKER=redis://wger_cache_1:6379/2 +CELERY_BACKEND=redis://wger_cache_1:6379/2 +CELERY_FLOWER_PASSWORD=adminadmin + +# +# Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… +DJANGO_DB_ENGINE=django.db.backends.postgresql +DJANGO_DB_DATABASE=wger +DJANGO_DB_USER=wger +DJANGO_DB_PASSWORD=wger +DJANGO_DB_HOST=wger_db_1 +DJANGO_DB_PORT=5432 +DJANGO_PERFORM_MIGRATIONS=True + +# +# Кэш +DJANGO_CACHE_BACKEND=django_redis.cache.RedisCache +DJANGO_CACHE_LOCATION=redis://wger_cache_1:6379/1 +DJANGO_CACHE_TIMEOUT=1296000 +DJANGO_CACHE_CLIENT_CLASS=django_redis.client.DefaultClient + +# +# Атаки Π³Ρ€ΡƒΠ±ΠΎΠΉ силы ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² систСму +AXES_ENABLED=True +AXES_FAILURE_LIMIT=10 +AXES_COOLOFF_TIME=30 +AXES_HANDLER=axes.handlers.cache.AxesCacheHandler +AXES_LOCKOUT_PARAMETERS=ip_address +AXES_IPWARE_PROXY_COUNT=1 +AXES_IPWARE_META_PRECEDENCE_ORDER=HTTP_X_FORWARDED_FOR,REMOTE_ADDR + +# +# Π”Ρ€ΡƒΠ³ΠΈΠ΅ +DJANGO_DEBUG=False +WGER_USE_GUNICORN=True +EXERCISE_CACHE_TTL=18000 + +# +# JWT авторизация +ACCESS_TOKEN_LIFETIME=10 +REFRESH_TOKEN_LIFETIME=24 + +# +# АутСнтификация прокси-сСрвСра — ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ пустым, Ссли Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ это. +AUTH_PROXY_HEADER='' +AUTH_PROXY_TRUSTED_IPS='' +AUTH_PROXY_CREATE_UNKNOWN_USER=False +AUTH_PROXY_USER_EMAIL_HEADER='' +AUTH_PROXY_USER_NAME_HEADER='' + +# +# Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ ΠΆΡƒΡ€Π½Π°Π»Π° +LOG_LEVEL_PYTHON=INFO + +# +# Π Π΅ΠΊΠ°ΠΏΡ‡Π° (ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°) +USE_RECAPTCHA=False + +# +# ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ статичСских Ρ„Π°ΠΉΠ»ΠΎΠ² +DJANGO_CLEAR_STATIC_FIRST=False + +# +# ЭлСктронная ΠΏΠΎΡ‡Ρ‚Π° +FROM_EMAIL='wger Workout Manager ' + +# +# ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΎΡ‚Π΄Ρ‹Ρ…Π° Π”ΠΆΠ°Π½Π³ΠΎ +NUMBER_OF_PROXIES=1 + +# +# Π•Π΄ΠΈΠ½ΠΎΡ€ΠΎΠ³ +GUNICORN_CMD_ARGS="--workers 3 --threads 2 --worker-class gthread --proxy-protocol True --timeout 240" diff --git a/wger/data/celery-beat/.gitkeep b/wger/data/celery-beat/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wger/data/celery-beat/.gitkeep @@ -0,0 +1 @@ + diff --git a/wger/data/media/.gitkeep b/wger/data/media/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wger/data/media/.gitkeep @@ -0,0 +1 @@ + diff --git a/wger/data/postgres-data/.gitkeep b/wger/data/postgres-data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wger/data/postgres-data/.gitkeep @@ -0,0 +1 @@ + diff --git a/wger/data/redis-data/.gitkeep b/wger/data/redis-data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wger/data/redis-data/.gitkeep @@ -0,0 +1 @@ + diff --git a/wger/data/static/.gitkeep b/wger/data/static/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wger/data/static/.gitkeep @@ -0,0 +1 @@ + diff --git a/wger/dfwebos-app.yml b/wger/dfwebos-app.yml new file mode 100644 index 0000000..b004bf7 --- /dev/null +++ b/wger/dfwebos-app.yml @@ -0,0 +1,57 @@ +manifestVersion: 1 +id: wger +name: wger +tagline: ЀитнСс-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ для Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ питания. +category: files +version: "2.5" +port: 8450 +description: >- + πŸ“ˆ wger ​​— это ΠΌΠΎΡ‰Π½ΠΎΠ΅ ΠΈ Π³ΠΈΠ±ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для управлСния фитнСсом с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π² ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, отслСТивании ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, питания ΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ прогрСсса Π² фитнСсС. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ частным Π»ΠΈΡ†ΠΎΠΌ, стрСмящимся ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ‚Ρ€Π΅Π½Π΅Ρ€ΠΎΠΌ, ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΈΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€Π½ΠΎΠ³ΠΎ Π·Π°Π»Π°, ΠΈΡ‰ΡƒΡ‰ΠΈΠΌ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ программирования Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, wger ​​прСдоставляСт ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ потрСбностям фитнСса. + + + По своСй сути wger ​​прСдлагаСт ΠΎΠ±ΡˆΠΈΡ€Π½ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ инструкции, изобраТСния ΠΈ классификации Π³Ρ€ΡƒΠΏΠΏ ΠΌΡ‹ΡˆΡ†. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, выбирая ΠΈΠ· ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ добавляя свои собствСнныС. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ»Π°Π½ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ структурирован с использованиСм ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ, Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Π΄Ρ‹Ρ…Π° ΠΈ стратСгий прогрСсса, Ρ‡Ρ‚ΠΎ позволяСт Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя систСму отслСТивания Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, которая рСгистрируСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ упраТнСния ΠΈ прСдоставляСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ тСндСнциях ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. + + + Помимо обучСния, wger β€‹β€‹Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя комплСксный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ планирования питания. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ ΠΏΠΈΡ‰ΠΈ, Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Π»ΠΎΡ€ΠΈΠΉ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ распрСдСлСниС ΠΌΠ°ΠΊΡ€ΠΎΠ½ΡƒΡ‚Ρ€ΠΈΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π΄ΠΈΠ΅Ρ‚Π° соотвСтствуСт ΠΈΡ… цСлям Π² фитнСсС. Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² питания ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² ΠΏΠΈΡ‰ΠΈ, прСдоставляя ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ цСнности ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ собствСнныС записи ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ… питания. + + + Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ долгосрочного ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° прогрСсса wger β€‹β€‹Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя инструмСнты Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ отслСТивания вСса, Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ эффСктивности Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ статистичСскиС сводки. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ, ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ рСалистичныС Ρ†Π΅Π»ΠΈ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ Π½Π° протяТСнии всСго ΠΏΡƒΡ‚ΠΈ ΠΊ фитнСсу. + + + Одним ΠΈΠ· Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ аспСктов wger ​​являСтся Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для Ρ‚Ρ€Π΅Π½Π΅Ρ€ΠΎΠ², Ρ‚Ρ€Π΅Π½Π΅Ρ€ΠΎΠ² ΠΈ спортивных Π·Π°Π»ΠΎΠ². ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€ΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ позволяСт Ρ‚Ρ€Π΅Π½Π΅Ρ€Π°ΠΌ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½Ρ‹ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ эффСктивно ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ прогрСсс ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². + + + Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, wger ​​постоянно развиваСтся, ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ сообщСство вносит Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. Π•Π³ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠΏΠΎΡ€ Π½Π° настройку Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ Ρ†Π΅Π½Π½Ρ‹ΠΌ инструмСнтом для всСх, ΠΊΡ‚ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ занимаСтся фитнСсом, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ, ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ спортсмСны ΠΈΠ»ΠΈ профСссионалы Π² области фитнСса. +developer: wger Project +website: https://wger.de/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3247 +repo: https://github.com/wger-project/wger +support: https://github.com/wger-project/wger/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg + - 6.jpg +releaseNotes: >- + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° синхронизация ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ² с использованиСм ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ созданного Π΄Π°ΠΌΠΏΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для Π±ΠΎΠ»Π΅Π΅ быстрой ΠΈ эффСктивной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠΎΡ€Ρ†ΠΈΠΈ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΄Ρƒ Π² Ρ‚Π°ΠΊΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ…, ΠΊΠ°ΠΊ Β«1 Ρ‡Π°ΡˆΠΊΠ°Β» ΠΈΠ»ΠΈ Β«1 порция». + - Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΡ€Ρ†ΠΈΠΉ автоматичСски ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· Open Food Facts. + - Π’ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ поля для Π²Π΅Π³Π°Π½ΠΎΠ², Π²Π΅Π³Π΅Ρ‚Π°Ρ€ΠΈΠ°Π½Ρ†Π΅Π² ΠΈ Π½ΡƒΡ‚Ρ€ΠΈΠΊΠΎΡ€ΠΎΠ². + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Β«Ρ€Π°Π·ΠΌΠΈΠ½ΠΊΠ°Β» ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ сСта. + - АвтоматичСскоС считываниС Π΄Π°Ρ‚Ρ‹ ΠΈΠ· Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π³Π°Π»Π΅Ρ€Π΅ΠΈ. + - Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΠΏΠΎΠ»Π΅ нСпосрСдствСнно Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ упраТнСния. + - УстановитС языковыС прСдпочтСния интСрфСйс. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° для ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ Π½Π° врСмя + - НСсколько записСй ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π² дСнь + - Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ язык интСрфСйс для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://github.com/wger-project/wger/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/wger/docker-compose.yml b/wger/docker-compose.yml new file mode 100644 index 0000000..06d4737 --- /dev/null +++ b/wger/docker-compose.yml @@ -0,0 +1,113 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: wger_nginx_1 + APP_PORT: 80 + + web: + image: wger/server:2.5@sha256:1cac2c62b8d85b54dab16291df802a1cdbf66828201b8df6104db0400320f0df + user: "1000:1000" + depends_on: + db: + condition: service_healthy + cache: + condition: service_healthy + environment: + SECRET_KEY: ${APP_SEED} + SIGNING_KEY: ${APP_SEED} + CSRF_TRUSTED_ORIGINS: http://${DEVICE_DOMAIN_NAME}:${APP_WGER_PORT},http://${DEVICE_HOSTNAME}:${APP_WGER_PORT},${APP_WGER_LOCAL_URLS} + SITE_URL: http://${DEVICE_DOMAIN_NAME}:8450 + MEDIA_URL: http://${DEVICE_DOMAIN_NAME}:8450/media/ + env_file: + - ${APP_DATA_DIR}/config/prod.env + volumes: + - ${APP_DATA_DIR}/data/static:/home/wger/static + - ${APP_DATA_DIR}/data/media:/home/wger/media + healthcheck: + test: wget --no-verbose --tries=1 --spider http://localhost:8000 + interval: 10s + timeout: 5s + start_period: 300s + retries: 5 + restart: on-failure + + nginx: + image: nginx:alpine3.22@sha256:d67ea0d64d518b1bb04acde3b00f722ac3e9764b3209a9b0a98924ba35e4b779 + depends_on: + - web + volumes: + - ${APP_DATA_DIR}/config/nginx.conf:/etc/nginx/conf.d/default.conf:ro + - ${APP_DATA_DIR}/data/static:/wger/static:ro + - ${APP_DATA_DIR}/data/media:/wger/media:ro + healthcheck: + test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://127.0.0.1:80/"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + restart: on-failure + + db: + image: postgres:17.5-alpine@sha256:6567bca8d7bc8c82c5922425a0baee57be8402df92bae5eacad5f01ae9544daa + user: "1000:1000" + environment: + POSTGRES_USER: wger + POSTGRES_PASSWORD: wger + POSTGRES_DB: wger + TZ: Europe/Berlin + volumes: + - ${APP_DATA_DIR}/data/postgres-data:/var/lib/postgresql/data/ + healthcheck: + test: pg_isready -U wger + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + restart: on-failure + + cache: + image: redis:8.0.3-alpine@sha256:25c0ae32c6c2301798579f5944af53729766a18eff5660bbef196fc2e6214a9c + user: "1000:1000" + volumes: + - ${APP_DATA_DIR}/data/redis-data:/data + healthcheck: + test: redis-cli ping + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + restart: on-failure + + celery_worker: + image: wger/server:2.5@sha256:1cac2c62b8d85b54dab16291df802a1cdbf66828201b8df6104db0400320f0df + user: "1000:1000" + command: /start-worker + env_file: + - ${APP_DATA_DIR}/config/prod.env + volumes: + - ${APP_DATA_DIR}/data/media:/home/wger/media + depends_on: + web: + condition: service_healthy + healthcheck: + test: celery -A wger inspect ping + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + restart: on-failure + + celery_beat: + image: wger/server:2.5@sha256:1cac2c62b8d85b54dab16291df802a1cdbf66828201b8df6104db0400320f0df + user: "1000:1000" + command: /start-beat + volumes: + - ${APP_DATA_DIR}/data/celery-beat:${APP_DATA_DIR}/beat/ + env_file: + - ${APP_DATA_DIR}/config/prod.env + depends_on: + celery_worker: + condition: service_healthy + restart: on-failure diff --git a/wger/exports.sh b/wger/exports.sh new file mode 100644 index 0000000..c3d9222 --- /dev/null +++ b/wger/exports.sh @@ -0,0 +1,16 @@ +export APP_WGER_PORT="8450" + +local_ips=$(hostname --all-ip-addresses 2> /dev/null) || local_ips="" +export APP_WGER_LOCAL_IPS="${local_ips}" + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ URLs с http:// ΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠΌ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ запятыми. +ips_with_port=$(for ip in $local_ips; do + # ΠžΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ адрСса IPv6 Π² [] + if [[ "$ip" == *:* ]]; then + echo -n "http://[$ip]:$APP_WGER_PORT," + else + echo -n "http://$ip:$APP_WGER_PORT," + fi +done | sed 's/,$//') + +export APP_WGER_LOCAL_URLS="${ips_with_port}" diff --git a/whoogle-search/dfwebos-app.yml b/whoogle-search/dfwebos-app.yml new file mode 100644 index 0000000..fe30b31 --- /dev/null +++ b/whoogle-search/dfwebos-app.yml @@ -0,0 +1,83 @@ +manifestVersion: 1 +id: whoogle-search +category: networking +name: Whoogle Search +version: "1.2.4" +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ мСтапоисковая систСма Π±Π΅Π· Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, ΡƒΠ²Π°ΠΆΠ°ΡŽΡ‰Π°Ρ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. +description: >- + ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска Google, Π½ΠΎ Π±Π΅Π· Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, JavaScript, ссылок AMP, + Ρ„Π°ΠΉΠ»Ρ‹ cookie ΠΈΠ»ΠΈ отслСТиваниС IP-адрСса. Π›Π΅Π³ΠΊΠΎ развСртываСтся Π² ΠΎΠ΄Π½ΠΎΠΌ + Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Docker ΠΈ настройтС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. + Быстро ΠΈ просто Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π² качСствС Π·Π°ΠΌΠ΅Π½Ρ‹ основной поисковой систСмы Π½Π° + ΠΊΠ°ΠΊ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ. + + + - Никакой Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ ΠΈ спонсорского ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. + + - НСт JavaScript* + + - Никаких Ρ„Π°ΠΉΠ»ΠΎΠ² cookie** + + - Никакого отслСТивания/привязки вашСго Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ IP-адрСса*** + + – НСт ссылок AMP. + + – НСт Ρ‚Π΅Π³ΠΎΠ² отслСТивания URL-адрСсов (Ρ‚.Β Π΅. utm=%s). + + - НСт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ€Π΅Ρ„Π΅Ρ€Π΅Ρ€Π° + + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° прокси Tor ΠΈ HTTP/SOCKS. + + - АвтозаполнСниС/поиск ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ + + - Поиск POST-запросов ΠΈ запросы ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ) + + - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π±Π΅Π· пСрСнаправлСния сайта (Π² настоящСС врСмя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств) + + - Π Π΅ΠΆΠΈΠΌΡ‹ Ρ‚Π΅ΠΌΡ‹ БвСтлая/Вёмная/БистСмная (с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚Π΅ΠΌ CSS) + + - Π‘Π»ΡƒΡ‡Π°ΠΉΠ½ΠΎ сгСнСрированный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π°Π³Π΅Π½Ρ‚ + + - ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° установки/развСртывания + + - Поиск Π² стилС DDG (Ρ‚. Π΅. ! ) + + - Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ поиск ΠΏΠΎ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ (Ρ‚. Π΅. Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ рядом с <Π³ΠΎΡ€ΠΎΠ΄>) + + - Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ NoJS для просмотра Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ с Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ JavaScript. + + + *Никаких сторонних JavaScript. Whoogle ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ JavaScript, Π½ΠΎ Ссли ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, JavaScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠ°ΠΊ прСдставлСниС поисковых ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + + ** Никаких сторонних Ρ„Π°ΠΉΠ»ΠΎΠ² cookie. Whoogle ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ cookie (сСансы) Π½Π° сторонС сСрвСра для хранСния Π½Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ‚Π΅ΠΌΠ°, язык ΠΈ Ρ‚. Π΄. Как ΠΈ Π² случаС с JavaScript, Ρ„Π°ΠΉΠ»Ρ‹ cookie ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈ Π½Π΅ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска Whoogle. + + ***ΠŸΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС ΠΈΠ»ΠΈ настройкС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запросов Ρ‡Π΅Ρ€Π΅Π· VPN, Tor, прокси ΠΈ Ρ‚. Π΄. +developer: Ben Busby +website: https://github.com/benbusby +dependencies: [] +repo: https://github.com/benbusby/whoogle-search +support: https://github.com/benbusby/whoogle-search/issues +port: 6420 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + ⚠️ НСдавниС измСнСния Google Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΠ»ΠΈ прСдоставлСниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска Π±Π΅Π· JavaScript, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Whoogle. + + + ⚠️ Π­Ρ‚ΠΎ послСдняя ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ вСрсия Whoogle Search. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ объявил ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Google агрСссивно Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ поисковыС запросы Π±Π΅Π· JavaScript. Whoogle, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½ΠΎ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π΅ планируСтся. + + + Π­Ρ‚ΠΎΡ‚ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: + - ОбновлСн ΠΏΡƒΠ» User-Agent, ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ строки для восстановлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + - ОбновлСна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/benbusby/whoogle-search/compare/v1.2.3...v1.2.4. +submitter: Jasper +submission: https://github.com/getumbrel/dfwebos-apps/pull/117 diff --git a/whoogle-search/docker-compose.yml b/whoogle-search/docker-compose.yml new file mode 100644 index 0000000..6bc077c --- /dev/null +++ b/whoogle-search/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: whoogle-search_web_1 + APP_PORT: 6420 + + web: + image: benbusby/whoogle-search:1.2.4@sha256:6ae072238642b7e5860c8fa7f68cf06be797eb4e2278fc41d17d3b5e8a051eea + restart: on-failure + stop_grace_period: 1m + init: true + user: "927:927" + environment: + EXPOSE_PORT: 6420 diff --git a/wikijs/config/.gitkeep b/wikijs/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wikijs/data/.gitkeep b/wikijs/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wikijs/dfwebos-app.yml b/wikijs/dfwebos-app.yml new file mode 100644 index 0000000..506e846 --- /dev/null +++ b/wikijs/dfwebos-app.yml @@ -0,0 +1,39 @@ +manifestVersion: 1.1 +id: wikijs +category: developer +name: WikiJS +version: "2.5.313" +tagline: Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ написаниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ΠΌ +description: >- + Π‘Π°ΠΌΠΎΠ΅ ΠΌΠΎΡ‰Π½ΠΎΠ΅ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Wiki с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. + + + НС всСм ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Wiki.js ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ. + + + Π Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ бСсплатности, это Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚ΡŒ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ошибки. Wiki.js ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ AGPLv3. + + + ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свою Π²ΠΈΠΊΠΈ ΠΊ постоянно Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅ΠΌΡƒΡΡ списку Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, вСдСния ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ², Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°, поиска ΠΈ хранСния. +developer: Requarks +website: https://js.wiki/ +dependencies: [] +repo: https://github.com/requarks/wiki +support: https://js.wiki/support +port: 9182 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +torOnly: false +releaseNotes: >- + 🚨 Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΠΎΠ΅ исправлСниС бСзопасности: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, которая позволяла ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ сСбя Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/requarks/wiki/releases. +submitter: Pranshu Agrawal +submission: https://github.com/getumbrel/dfwebos-apps/pull/273 diff --git a/wikijs/docker-compose.yml b/wikijs/docker-compose.yml new file mode 100644 index 0000000..cc2771a --- /dev/null +++ b/wikijs/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: wikijs_server_1 + APP_PORT: 3000 + PROXY_AUTH_ADD: "false" + + server: + user: "1000:1000" + image: linuxserver/wikijs:2.5.313@sha256:dfcd14107ad31835bb15e71e53cd9d968f7ecce5b5c43b85c4b16c818435446a + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/data + - ${APP_DATA_DIR}/repo:/app/wiki/data/repo + - ${APP_DATA_DIR}/config:/config diff --git a/wikijs/hooks/pre-start b/wikijs/hooks/pre-start new file mode 100755 index 0000000..bb4166c --- /dev/null +++ b/wikijs/hooks/pre-start @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/data" +APP_CONFIG_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/config" +APP_REPO_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/repo" + +# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ€Π΅ΠΏΠΎ, Ссли ΠΎΠ½ Π½Π΅ сущСствуСт. Π­Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² установки Π΄ΠΎ вСрсии 2.5.306-1. +[ ! -d "${APP_REPO_DIR}" ] && mkdir -p "${APP_REPO_DIR}" + +# РСкурсивно ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ собствСнности Π½Π° всС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ привязки Π½Π° 1000:1000. wikijs Ρ€Π°Π±ΠΎΡ‚Π°Π» с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root для установок Π΄ΠΎ вСрсии 2.5.306-1 +# Π΄Π°ΠΆΠ΅ нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ использовал ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния "correct" PUID/PGID для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ linuxserver.io. +chown -R 1000:1000 "${APP_DATA_DIR}" +chown -R 1000:1000 "${APP_CONFIG_DIR}" +chown -R 1000:1000 "${APP_REPO_DIR}" diff --git a/wikijs/repo/.gitkeep b/wikijs/repo/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wingfit/data/.gitkeep b/wingfit/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wingfit/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/wingfit/dfwebos-app.yml b/wingfit/dfwebos-app.yml new file mode 100644 index 0000000..60d0847 --- /dev/null +++ b/wingfit/dfwebos-app.yml @@ -0,0 +1,37 @@ +manifestVersion: 1 +id: wingfit +name: Wingfit +tagline: ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½ΠΎΠ΅ фитнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. +category: files +version: "5.3.1" +port: 8950 +description: >- + 🦾 Wingfit β€” это Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠ΅ фитнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ долгосрочный прогрСсс Π² Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…. По своСй сути ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ обСспСчиваСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ создания, настройки ΠΈ рСгистрации Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ тяТСлой Π°Ρ‚Π»Π΅Ρ‚ΠΈΠΊΠΎΠΉ, Π±Π΅Π³ΠΎΠΌ, худоТСствСнной гимнастикой ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ физичСской активности. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ свои собствСнныС упраТнСния ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈΡ… ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ. КаТдая Π΄Π΅Ρ‚Π°Π»ΡŒ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записана, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, повторСния, вСса, расстояния, врСмя, ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρ‹ ΠΎΡ‚Π΄Ρ‹Ρ…Π° ΠΈ примСчания, Ρ‡Ρ‚ΠΎ позволяСт Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈ Π·Π½Π°Ρ‡ΠΈΠΌΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ отслСТиваниС Π»ΠΈΡ‡Π½Ρ‹Ρ… записСй, поэтому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡˆΠΊΠ°Π»Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ всСх зарСгистрированных Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ закономСрности, Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Wingfit поощряСт структурированный прогрСсс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π΅ΡΡΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π΅ΠΊ, Π½Π΅ навязывая ТСстких шаблонов ΠΈΠ»ΠΈ фиксированных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. + + + Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… фитнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π³Π΅ΠΉΠΌΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ, увСдомлСниями ΠΈΠ»ΠΈ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π»Π΅Π½Ρ‚Π°ΠΌΠΈ, Wingfit Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ минималистичСн ΠΈ Π½Π΅ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Он создан для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ относятся ΠΊ своим Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌ ΠΈ хотят ΠΈΠΌΠ΅Ρ‚ΡŒ понятный, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс для достиТСния своих физичСских Ρ†Π΅Π»Π΅ΠΉ. Π’ основС ΠΎΠΏΡ‹Ρ‚Π° Π»Π΅ΠΆΠΈΡ‚ прСдоставлСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ возмоТности Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свою ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ расти Π² своСм собствСнном Ρ‚Π΅ΠΌΠΏΠ΅. Благодаря Π³ΠΈΠ±ΠΊΠΎΠΌΡƒ вСдСнию ΠΆΡƒΡ€Π½Π°Π»Π°, Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ прогрСсса ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŽ Π½Π°Π΄ структурой ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ занятия Wingfit являСтся ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ компаньоном для спортсмСнов, Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ всСх, ΠΊΡ‚ΠΎ стрСмится ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ свой фитнСс-ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅. +developer: Kovacs +website: https://wingfit.fr/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3185 +repo: https://github.com/itskovacs/wingfit +support: https://github.com/itskovacs/wingfit/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ мСню Ρ‚Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° мобильном Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/itskovacs/wingfit/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/wingfit/docker-compose.yml b/wingfit/docker-compose.yml new file mode 100644 index 0000000..2806818 --- /dev/null +++ b/wingfit/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: wingfit_app_1 + APP_PORT: 8000 + + app: + image: ghcr.io/itskovacs/wingfit:5.3.1@sha256:fed5dcc1c8abdec6409f4272caa08f9a6f1d2a3c8e1f9a13b3459c2ffea8a360 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/app/storage + command: ["fastapi", "run", "/app/wingfit/main.py", "--host", "0.0.0.0"] diff --git a/wireguard/data/wireguard/.gitkeep b/wireguard/data/wireguard/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wireguard/dfwebos-app.yml b/wireguard/dfwebos-app.yml new file mode 100644 index 0000000..0c0d6fc --- /dev/null +++ b/wireguard/dfwebos-app.yml @@ -0,0 +1,61 @@ +manifestVersion: 1 +id: wireguard +name: WireGuard +tagline: ЗапуститС свой собствСнный бСсплатный ΠΈ Π±Π΅Π·Π»ΠΈΠΌΠΈΡ‚Π½Ρ‹ΠΉ WireGuard VPN +category: networking +version: "14" +port: 51821 +description: >- + WireGuard β€” Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ простой, Π½ΠΎ быстрый ΠΈ соврСмСнный VPN, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ. + + + Он стрСмится Π±Ρ‹Ρ‚ΡŒ быстрСС, ΠΏΡ€ΠΎΡ‰Π΅, ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅Π΅ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅, Ρ‡Π΅ΠΌ IPsec, ΠΈ ΠΏΡ€ΠΈ этом ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ. Он Π½Π°ΠΌΠ΅Ρ€Π΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‡Π΅ΠΌ OpenVPN. + + + WireGuard Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠ°ΠΊ VPN ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΊ Π½Π° встроСнных интСрфСйсах, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΡΡƒΠΏΠ΅Ρ€ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для самых Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π². + + + ☺️ ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π² использовании + + WireGuard Ρ‚Π°ΠΊ ΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. Он ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ VPN-соСдинСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простого ΠΎΠ±ΠΌΠ΅Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈ автоматичСски управляСт соСдинСниями. + + + πŸ” ΠšΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΠΈ обоснованный + + WireGuard ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ, Ρ‚Π°ΠΊΡƒΡŽ ​​как структура ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Noise, Curve25519, ChaCha20 ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Он Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„Π°ΠΌΠΈ. + + + πŸ›‘οΈ Минимальная ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ + + WireGuard Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ простоты ΠΈ простоты Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ уязвимостСй бСзопасности. + + + ⏱️ Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ + + Благодаря высокоскоростным криптографичСским ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с ядром Linux WireGuard обСспСчиваСт Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² сСти. + + + πŸ“ Π§Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½ΠΎ + + WireGuard β€” это ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ акадСмичСского рассмотрСния, с Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. + + + ℹ️ Доступ ΠΈΠ·Π²Π½Π΅ локальной сСти + + Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ WireGuard ΠΈΠ·-Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² локальной сСти, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ 51820/udp Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° вашС устройство DFWebOS. + + Если Π²Ρ‹ сканируСтС QR-ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя хоста Π½Π° Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя вашСго устройства ΠΈΠ»ΠΈ общСдоступный IP-адрСс. +releaseNotes: >- + Π’ этом выпускС WireGuard Easy обновляСтся Π΄ΠΎ вСрсии 14. +dependencies: [] +developer: Emile Nijssen +website: https://github.com/wg-easy/wg-easy +submitter: Sharknoon +submission: https://github.com/getumbrel/dfwebos-apps/pull/1084 +repo: https://github.com/wg-easy/wg-easy +support: https://github.com/wg-easy/wg-easy/discussions +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" \ No newline at end of file diff --git a/wireguard/docker-compose.yml b/wireguard/docker-compose.yml new file mode 100644 index 0000000..144943f --- /dev/null +++ b/wireguard/docker-compose.yml @@ -0,0 +1,24 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: wireguard_app_1 + APP_PORT: 51821 + + app: + image: ghcr.io/wg-easy/wg-easy:14@sha256:f6c2587da3fdc9d5927743fb4a92cff42d690b182396ffd0cdad034becb41053 + restart: on-failure + stop_grace_period: 1m + ports: + - "51820:51820/udp" + volumes: + - ${APP_DATA_DIR}/data/wireguard:/etc/wireguard + environment: + WG_HOST: ${DEVICE_DOMAIN_NAME} + cap_add: + - NET_ADMIN + - SYS_MODULE + sysctls: + - net.ipv4.ip_forward=1 + - net.ipv4.conf.all.src_valid_mark=1 \ No newline at end of file diff --git a/wizarr/data/.gitkeep b/wizarr/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wizarr/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/wizarr/dfwebos-app.yml b/wizarr/dfwebos-app.yml new file mode 100644 index 0000000..e7c3e79 --- /dev/null +++ b/wizarr/dfwebos-app.yml @@ -0,0 +1,41 @@ +manifestVersion: 1 +id: wizarr +name: Wizarr +tagline: ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Π°Ρ систСма ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠΉ ΠΈ управлСния мСдиасСрвСрами +category: media +version: "2026.4.0" +port: 5690 +description: >- + πŸ§™ Wizarr β€” ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, созданноС для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ процСсса управлСния ΠΈ рСгистрации ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° мСдиасСрвСрах. Он прСдоставляСт Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ систСму, которая позволяСт администраторам ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ссылки-ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΌ доступ ΠΊ сСрвСру. Π­Ρ‚ΠΎΡ‚ процСсс устраняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€ΡƒΡ‡Π½ΠΎΠΉ настройки ΠΈ сниТаСт административныС расходы, упрощая эффСктивноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ нСсколькими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ инструкции ΠΏΠΎ процСссу установки, помогая ΠΈΠΌ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ своих ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ сСрвСру. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ систСму отслСТивания ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠΉ ΠΈ активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, прСдоставляя администраторам ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΡ‚ΠΎ присоСдинился, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡŒ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с сСрвСром. Π’Π°ΠΊΠΎΠ΅ отслСТиваниС позволяСт Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ Π½Π° доступ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ члСнства ΠΈΠ»ΠΈ ограничСния ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ доступа. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ запросы, Wizarr Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ сСрвСр остаСтся ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ доступа ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. + + + ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Wizarr интСгрируСтся с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΈ инструмСнтами связи для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ координация рСгистрации ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ управляСмый процСсс Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ, прСдоставляя Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ инструкции ΠΈ шаги, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ бСспрСпятствСнно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ сСрвСрной срСдС. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ количСство запросов Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎΠΉ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятной. + + + Π’ Ρ†Π΅Π»ΠΎΠΌ, Wizarr стрСмится ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ простым, эффСктивным ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ. Он прСдоставляСт администраторам инструмСнты для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° взаимодСйствия, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов ΠΈ поддСрТания контроля Π½Π°Π΄ доступом, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ прСдоставляСт простой ΠΈ структурированный способ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ сСрвСру ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. БочСтая ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, отслСТиваниС активности ΠΈ автоматичСскоС руководство, Wizarr ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅Π΅ качСство Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвСра ΠΊΠ°ΠΊ для администраторов, Ρ‚Π°ΠΊ ΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. +developer: Wizarr +website: https://github.com/wizarrrr/wizarr +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3847 +repo: https://github.com/wizarrrr/wizarr +support: https://github.com/wizarrrr/wizarr/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² этом выпускС: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ потСря Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ LDAP ΠΈ восстановлСны ссылки для ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ шаги мастСра, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π² настройках с нСсколькими сСрвСрами. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π²Π»ΠΈΡΡŽΡ‰Π°Ρ Π½Π° Π½Π΅Π΄Π°Π²Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Π΄ΠΈΠ°-элСмСнты. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/wizarrrr/wizarr/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/wizarr/docker-compose.yml b/wizarr/docker-compose.yml new file mode 100644 index 0000000..ff6d581 --- /dev/null +++ b/wizarr/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: wizarr_app_1 + APP_PORT: 5690 + + app: + image: ghcr.io/wizarrrr/wizarr:v2026.4.0@sha256:19da537e01b5470cb34b083b5ac64cb534dd27084d9d66bc634e96c1f3976884 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/data + environment: + - PUID=1000 + - PGID=1000 + - DISABLE_BUILTIN_AUTH=false + - TZ=UTC diff --git a/woofbot-lnd/data/db/diagnostic.data/.gitkeep b/woofbot-lnd/data/db/diagnostic.data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/woofbot-lnd/data/db/journal/.gitkeep b/woofbot-lnd/data/db/journal/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/woofbot-lnd/data/server-logs/.gitkeep b/woofbot-lnd/data/server-logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/woofbot-lnd/dfwebos-app.yml b/woofbot-lnd/dfwebos-app.yml new file mode 100644 index 0000000..c2a99cf --- /dev/null +++ b/woofbot-lnd/dfwebos-app.yml @@ -0,0 +1,36 @@ +manifestVersion: 1.1 +id: woofbot-lnd +category: bitcoin +name: WoofBot (LND) +version: "0.9.8" +tagline: Π§Π°Ρ‚-Π±ΠΎΡ‚ для вашСго Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° +description: >- + WoofBot β€” это Ρ‡Π°Ρ‚-Π±ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вашСм Π»ΠΈΡ‡Π½ΠΎΠΌ ΡƒΠ·Π»Π΅ Bitcoin ΠΈ отправляСт увСдомлСния Π² Telegram. + для настроСнных событий: ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ с/Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ адрСса, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, + Π½ΠΎΠ²Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + Π­Ρ‚Π° вСрсия WoofBot интСгрируСтся с API-интСрфСйсом LND Lightning. WoofBot НЕ связан с + Lightning Labs, создатСли LND. WoofBot взаимодСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с API LND. +developer: WoofBotApp +website: https://github.com/woofbotapp +dependencies: + - bitcoin + - lightning +repo: https://github.com/woofbotapp/woofbotapp +support: https://github.com/woofbotapp/woofbotapp/discussions +port: 8093 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + - ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ счСта ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. + + - НовыС смайлы для ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΠΏΠ»Π°Ρ‚Π΅ адрСса. + + - ОбновлСниС зависимостСй Π½Π° сторонС сСрвСра. +submitter: WoofBotApp +submission: https://github.com/getumbrel/dfwebos-apps/pull/442 diff --git a/woofbot-lnd/docker-compose.yml b/woofbot-lnd/docker-compose.yml new file mode 100644 index 0000000..7c93e7c --- /dev/null +++ b/woofbot-lnd/docker-compose.yml @@ -0,0 +1,43 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: woofbot-lnd_web_1 + APP_PORT: 8080 + + web: + image: woofbot/woofbot:v0.9.8@sha256:483076f0f364291d569025639ab502dc19c9c61d38931402955482e53cc3d950 + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + environment: + MONGODB_URI: "mongodb://woofbot-lnd_mongodb_1:27017/woofbot" + APP_PORT: "8080" + APP_SEED: $APP_SEED + APP_BITCOIN_NODE_IP: $APP_BITCOIN_NODE_IP + APP_BITCOIN_RPC_USER: $APP_BITCOIN_RPC_USER + APP_BITCOIN_RPC_PASS: $APP_BITCOIN_RPC_PASS + APP_BITCOIN_RPC_PORT: $APP_BITCOIN_RPC_PORT + APP_LIGHTNING_NODE_IP: $APP_LIGHTNING_NODE_IP + APP_LIGHTNING_NODE_GRPC_PORT: $APP_LIGHTNING_NODE_GRPC_PORT + LND_TLS_PATH: "/lnd/tls.cert" + LND_READONLY_MACAROON_PATH: "/lnd/data/chain/bitcoin/$APP_BITCOIN_NETWORK/readonly.macaroon" + SERVER_LOGS_FILEPATH: /app/logs/server.log + volumes: + - ${APP_DATA_DIR}/data/server-logs:/app/logs + - "${APP_LIGHTNING_NODE_DATA_DIR}/tls.cert:/lnd/tls.cert:ro" + - "${APP_LIGHTNING_NODE_DATA_DIR}/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/readonly.macaroon:/lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/readonly.macaroon:ro" + depends_on: + - mongodb + + mongodb: + # НовыС вСрсии mongo Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Raspberry Pi 4 Arm64. + image: mongo:4.4.6-bionic@sha256:3d0e6df9fd5bc42cbf8ef8bc9e6c4e78f6f26c7157dbd7bdec72d202ab8ebe3a + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/db:/data/db + - ${APP_DATA_DIR}/data/db/diagnostic.data:/data/db/diagnostic.data + - ${APP_DATA_DIR}/data/db/journal:/data/db/journal diff --git a/woofbot/data/db/diagnostic.data/.gitkeep b/woofbot/data/db/diagnostic.data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/woofbot/data/db/journal/.gitkeep b/woofbot/data/db/journal/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/woofbot/data/server-logs/.gitkeep b/woofbot/data/server-logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/woofbot/dfwebos-app.yml b/woofbot/dfwebos-app.yml new file mode 100644 index 0000000..35ad819 --- /dev/null +++ b/woofbot/dfwebos-app.yml @@ -0,0 +1,33 @@ +manifestVersion: 1.1 +id: woofbot +category: bitcoin +name: WoofBot (without Lightning) +version: "0.9.8" +tagline: Π§Π°Ρ‚-Π±ΠΎΡ‚ для вашСго Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° +description: >- + WoofBot β€” это Ρ‡Π°Ρ‚-Π±ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вашСм Π»ΠΈΡ‡Π½ΠΎΠΌ ΡƒΠ·Π»Π΅ Bitcoin ΠΈ отправляСт увСдомлСния Π² Telegram. + для настроСнных событий: ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ с/Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ адрСса, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, + Π½ΠΎΠ²Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + Π­Ρ‚Π° вСрсия WoofBot Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установки Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Bitcoin Core ΠΈ Π½Π΅ интСгрируСтся с + любой молниСносный API. +developer: WoofBotApp +website: https://github.com/woofbotapp +dependencies: + - bitcoin +repo: https://github.com/woofbotapp/woofbotapp +support: https://github.com/woofbotapp/woofbotapp/discussions +port: 8092 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +releaseNotes: >- + - НовыС смайлы для ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΠΏΠ»Π°Ρ‚Π΅ адрСса. + + - ОбновлСниС зависимостСй Π½Π° сторонС сСрвСра. +submitter: WoofBotApp +submission: https://github.com/getumbrel/dfwebos-apps/pull/28 diff --git a/woofbot/docker-compose.yml b/woofbot/docker-compose.yml new file mode 100644 index 0000000..ddeabe2 --- /dev/null +++ b/woofbot/docker-compose.yml @@ -0,0 +1,37 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: woofbot_web_1 + APP_PORT: 8080 + + web: + image: woofbot/woofbot:v0.9.8@sha256:483076f0f364291d569025639ab502dc19c9c61d38931402955482e53cc3d950 + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + environment: + MONGODB_URI: "mongodb://woofbot_mongodb_1:27017/woofbot" + APP_PORT: "8080" + APP_SEED: $APP_SEED + APP_BITCOIN_NODE_IP: $APP_BITCOIN_NODE_IP + APP_BITCOIN_RPC_USER: $APP_BITCOIN_RPC_USER + APP_BITCOIN_RPC_PASS: $APP_BITCOIN_RPC_PASS + APP_BITCOIN_RPC_PORT: $APP_BITCOIN_RPC_PORT + SERVER_LOGS_FILEPATH: /app/logs/server.log + volumes: + - ${APP_DATA_DIR}/data/server-logs:/app/logs + depends_on: + - mongodb + + mongodb: + # НовыС вСрсии mongo Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Raspberry Pi 4 Arm64. + image: mongo:4.4.6-bionic@sha256:3d0e6df9fd5bc42cbf8ef8bc9e6c4e78f6f26c7157dbd7bdec72d202ab8ebe3a + user: 1000:1000 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/db:/data/db + - ${APP_DATA_DIR}/data/db/diagnostic.data:/data/db/diagnostic.data + - ${APP_DATA_DIR}/data/db/journal:/data/db/journal diff --git a/woofbot/hooks/pre-start b/woofbot/hooks/pre-start new file mode 100755 index 0000000..5cc4a81 --- /dev/null +++ b/woofbot/hooks/pre-start @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -euo pipefail + +APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)/data" + +[ ! -d "${APP_DATA_DIR}" ] && mkdir -p "${APP_DATA_DIR}" && chown 1000:1000 "${APP_DATA_DIR}" + +SERVER_LOGS_DIR="${APP_DATA_DIR}/server-logs" + +[ ! -d "${SERVER_LOGS_DIR}" ] && mkdir -p "${SERVER_LOGS_DIR}" && chown 1000:1000 "${SERVER_LOGS_DIR}" diff --git a/wordpress/data/db/.gitkeep b/wordpress/data/db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wordpress/data/wordpress/.gitkeep b/wordpress/data/wordpress/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/wordpress/dfwebos-app.yml b/wordpress/dfwebos-app.yml new file mode 100644 index 0000000..56b6c56 --- /dev/null +++ b/wordpress/dfwebos-app.yml @@ -0,0 +1,51 @@ +manifestVersion: 1 +id: wordpress +name: WordPress +tagline: ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Π²Π΅Π±-сайтов ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. +category: social +version: "6.9.4" +port: 8567 +description: >- + πŸ“š **Π Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ возмоТности своСго Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ голоса** β€” ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹. WordPress β€” ΠΎΡ‚ Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠ³ΠΎΠ² Π΄ΠΎ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠ² β€” прСдоставляСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своими историями. + + + ✨ **РаскройтС свой творчСский ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»**. Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈΠ· тысяч Ρ‚Π΅ΠΌ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², создайтС свой ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ сдСлайтС свой сайт ΠΏΠΎ-настоящСму своим. + + + 🀝 **ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΌΡƒ сообщСству**. ΠžΠ±Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ с создатСлями, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈ энтузиастами со всСго ΠΌΠΈΡ€Π°. ВмСстС сформируйтС Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ сСти. + + + βš™οΈ **Настройка ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅**. Π‘Π΅ΡΡˆΠΎΠ²Π½Π°Ρ интСграция, ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ нСограничСнная Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ β€” ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ Π±Π΅Π·Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ возмоТности для роста ΠΈ ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΉ. + + + **ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅.** WordPress ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ локально Π² вашСй сСти. Однако Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ люди Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ вашСй локальной сСти ΠΈΠΌΠ΅Π»ΠΈ доступ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ экзСмпляру, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ доступным Π² общСдоступном Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. + Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя, самый простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ доступным β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния Cloudflare Tunnel ΠΈΠ»ΠΈ Nginx Proxy Manager Π² DFWebOS App Store ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ для своСго Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Β«http://wordpress_app_1" (ΠΏΠΎΡ€Ρ‚ 80). + + + Π§Ρ‚ΠΎΠ±Ρ‹ это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ **WordPress АдрСс (URL)** ΠΈ **АдрСс сайта (URL)** для вашСго Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² настройках WordPress. + Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ установитС **ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ** Π² Nginx Proxy Manager ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Cloudflare Tunnel. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://developer.wordpress.org/advanced-administration/security/https/#using-a-reverse-proxy. +developer: WordPress +website: https://wordpress.org/ +submitter: al-lac +submission: https://github.com/getumbrel/dfwebos-apps/pull/1947 +repo: https://github.com/WordPress/WordPress +support: https://wordpress.org/support/forums/ +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +defaultUsername: "" +defaultPassword: "" +dependencies: [] +releaseNotes: >- + ⚠️ Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ экзСмпляр Wordpress, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡ‚ΠΈ Π² интСрфСйс администратора ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Ρ‚ΡƒΠ΄Π°. + + + 🚨 Π­Ρ‚ΠΎ выпуск бСзопасности, ΠΈ рСкомСндуСтся Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Он дополняСт исправлСния ΠΈΠ· вСрсий 6.9.2 ΠΈ 6.9.3, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ ΠΏΡƒΡ‚ΠΈ PclZip. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΎΠ±Ρ…ΠΎΠ΄ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈΒ». + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ XXE Π²ΠΎ внСшнСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ getID3. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://wordpress.org/news/category/releases/. +path: "/wp-admin" diff --git a/wordpress/docker-compose.yml b/wordpress/docker-compose.yml new file mode 100644 index 0000000..91c9266 --- /dev/null +++ b/wordpress/docker-compose.yml @@ -0,0 +1,33 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: wordpress_app_1 + APP_PORT: 80 + PROXY_AUTH_ADD: "false" + + app: + image: wordpress:6.9.4@sha256:ee74dc0ebbe7ec43b7f473c0fb4f1dfb6b211d7785f0a95bcdfa10e628c2e67f + user: "1000:1000" + environment: + - WORDPRESS_DB_HOST=wordpress_db_1 + - WORDPRESS_DB_NAME=wordpress + - WORDPRESS_DB_USER=dfwebos + - WORDPRESS_DB_PASSWORD=dfweboswordpress + volumes: + - ${APP_DATA_DIR}/data/wordpress:/var/www/html + restart: on-failure + depends_on: + - db + + db: + image: mariadb:11.5.2@sha256:2d50fe0f77dac919396091e527e5e148a9de690e58f32875f113bef6506a17f5 + user: "1000:1000" + environment: + - MYSQL_ROOT_PASSWORD=dfweboswordpressroot + - MYSQL_DATABASE=wordpress + - MYSQL_USER=dfwebos + - MYSQL_PASSWORD=dfweboswordpress + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/mysql + restart: on-failure diff --git a/yamtrack/data/db/.gitkeep b/yamtrack/data/db/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/yamtrack/data/db/.gitkeep @@ -0,0 +1 @@ + diff --git a/yamtrack/data/redis/.gitkeep b/yamtrack/data/redis/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/yamtrack/data/redis/.gitkeep @@ -0,0 +1 @@ + diff --git a/yamtrack/dfwebos-app.yml b/yamtrack/dfwebos-app.yml new file mode 100644 index 0000000..fd453d4 --- /dev/null +++ b/yamtrack/dfwebos-app.yml @@ -0,0 +1,54 @@ +manifestVersion: 1 +id: yamtrack +name: Yamtrack +tagline: Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Π΄ΠΈΠ°-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ +category: media +version: "0.25.2" +port: 8742 +description: >- + 🎬 YamtrackΒ β€” это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для отслСТивания ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ„ΠΈΠ»ΡŒΠΌΡ‹, Ρ‚Π΅Π»Π΅ΡˆΠΎΡƒ, Π°Π½ΠΈΠΌΠ΅, ΠΌΠ°Π½Π³Ρƒ, Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€Ρ‹, ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ комиксы. Он прСдоставляСт ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ своСм ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°, Ρ‚Π°ΠΊΡƒΡŽ ​​как Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ, статус просмотра, прогрСсс, Π΄Π°Ρ‚Ρ‹ Π½Π°Ρ‡Π°Π»Π° ΠΈ окончания, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ. КаТдоС дСйствиС, выполняСмоС Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, протоколируСтся, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ вСсти ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ своих взаимодСйствий, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°Ρ‡Π°Π»ΠΎ просмотра ΠΈΠ»ΠΈ чтСния ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ приостановлСнного ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. + + + Одной ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… особСнностСй Yamtrack являСтся Π΅Π³ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ автоматичСски ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· популярных сСрвисов, Ρ‚Π°ΠΊ ΠΈ созданными Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ записями для ΠΌΠ΅Π΄ΠΈΠ°-элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСдоступны Ρ‡Π΅Ρ€Π΅Π· внСшниС API. Π­Ρ‚ΠΎ обСспСчиваСт пСрсонализированноС ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ отслСТиваниС. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ отслСТиваСмыС ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Ρ‹ Π² собствСнныС списки ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ этими коллСкциями с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ взаимодСйствиС с сообщСством. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ калСндаря прСдоставляСт ΠΎΠ±Π·ΠΎΡ€ прСдстоящих выпусков, информируя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎ Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΡ… интСрСсам. УвСдомлСния ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Discord, Telegram, Slack ΠΈ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Appprise, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π±Ρ‹Ρ‚ΡŒ Π² курсС Π½ΠΎΠ²Ρ‹Ρ… выпусков ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°ΠΆΠ½Ρ‹Ρ… событий. + + + Yamtrack ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ со своими ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ записями ΠΈ пСрсонализированными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ отслСТивания, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ подходящим для Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… хозяйств ΠΈΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π³Ρ€ΡƒΠΏΠΏ ΠΌΠ΅Π΄ΠΈΠ°-энтузиастов. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Jellyfin позволяСт автоматичСски ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ эпизоды послС ΠΈΡ… просмотра, ΠΏΠ»Π°Π²Π½ΠΎ связывая воспроизвСдСниС ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ отслСТивания. Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… поддСрТиваСтся ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… извСстных сСрвисов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Trakt, Simkl, MyAnimeList, The Movie Database, AniList ΠΈ Kitsu, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± отслСТивании ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС свои отслСТиваСмыС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ» CSV ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΈ нСобходимости. + + + Yamtrack Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ развиваСтся с рСгулярными обновлСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с ΠΌΠ΅Π΄ΠΈΠ°-сСрвСрами ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ возмоТности поиска Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ цСнят ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° простоту использования, комплСксныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ отслСТивания ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ свои собствСнныС Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ полагаясь Π½Π° сторонниС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ Ρ†Π΅Π½Π½Ρ‹ΠΉ инструмСнт для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ вСсти ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡƒΡ‡Π΅Ρ‚ своСго Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ³ΠΎ мСдиапотрСблСния Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ мСстС. +developer: Xila Cai +website: https://github.com/FuzzyGrim/Yamtrack +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3157 +repo: https://github.com/FuzzyGrim/Yamtrack +support: https://github.com/FuzzyGrim/Yamtrack/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg + - 6.jpg +dependencies: [] +releaseNotes: >- + Π’ этом выпускС исправлСна ошибка, появившаяся Π² вСрсии 0.25.1: + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅Π»Π΅ΡˆΠΎΡƒ ΠΌΠΎΠ³Π»ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Π΅ нСотслСТиваСмыС сСзоны ΠΊΠ°ΠΊ Β«ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β» β€” Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ вызываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вновь ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌΠΈ сСзонами. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° информация ΠΎΠ± Π°ΠΊΡ‚Π΅Ρ€Π°Ρ… Π½Π° страницах с описаниСм Ρ„ΠΈΠ»ΡŒΠΌΠ°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ поставщики услуг просмотра Π½Π° страницах свСдСний ΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Ρ‹ Π² рСкомСндациях. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΌΠ΅Π΄ΠΈΠ°-ΠΎΡ†Π΅Π½ΠΊΡƒ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ Ρ€Π°Π²Π΅Π½ 0. + - Показ DLC ΠΊ ΠΈΠ³Ρ€Π°ΠΌ + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Π΄ΠΈΠ° Π½Π° Π³Π»Π°Π²Π½Ρ‹ΠΉ экран. + - АвтоматичСски ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСлСсСзон ΠΊΠ°ΠΊ Β«Π’ процСссС», ΠΊΠΎΠ³Π΄Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ сСзон Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ сочСтаниС клавиш `/` для фокусировки Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ поиска. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° Ρ‚Π΅Π»Π΅ΡˆΠΎΡƒ ΠΊΠ°ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ нСвыходящих Π² эфир сСзонов. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ выпуски ΠΈΠ³Ρ€. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/FuzzyGrim/Yamtrack/releases. +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/yamtrack/docker-compose.yml b/yamtrack/docker-compose.yml new file mode 100644 index 0000000..f8455c0 --- /dev/null +++ b/yamtrack/docker-compose.yml @@ -0,0 +1,29 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: yamtrack_web_1 + APP_PORT: 8000 + + web: + image: ghcr.io/fuzzygrim/yamtrack:0.25.2@sha256:928df13c46c9f615b37f5ef1eb5a87fc8813f5941f28c7d8227af73d291b0d19 + # ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· Ρ€ΡƒΡ‚Π° + # user: "1000:1000" + restart: on-failure + security_opt: + - no-new-privileges:true + depends_on: + - redis + environment: + SECRET: ${APP_SEED} + REDIS_URL: redis://yamtrack_redis_1:6379 + volumes: + - ${APP_DATA_DIR}/data/db:/yamtrack/db:rw + + redis: + image: redis:8.0.2@sha256:b43d2dcbbdb1f9e1582e3a0f37e53bf79038522ccffb56a25858969d7a9b6c11 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/redis:/data:rw diff --git a/yucca/data/data/.gitkeep b/yucca/data/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/yucca/data/ffmpeg/.gitkeep b/yucca/data/ffmpeg/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/yucca/dfwebos-app.yml b/yucca/dfwebos-app.yml new file mode 100644 index 0000000..82437cc --- /dev/null +++ b/yucca/dfwebos-app.yml @@ -0,0 +1,30 @@ +manifestVersion: 1 +id: yucca +category: automation +name: Yucca +version: "0.12.0" +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для видСонаблюдСния NVR +description: >- + Yucca β€” это простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для видСонаблюдСния NVR для Π΄ΠΎΠΌΠ° ΠΈ бизнСса. + Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ бСзопасных Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ² с тысячами ΠΊΠ°ΠΌΠ΅Ρ€, абонСнтскими услугами ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ домашним использованиСм. + + + [ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android](https://play.google.com/store/apps/details?id=app.yucca.android&utm_source=dfwebos) +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск содСрТит исправлСния ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. +developer: Yucca Stream +website: https://yucca.app/ +repo: "" +support: https://docs.yucca.app/en/support/ +port: 9910 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +path: "" +deterministicPassword: false +dependencies: [] +submitter: YuccaStream +submission: https://github.com/getumbrel/dfwebos-apps/pull/1071 diff --git a/yucca/docker-compose.yml b/yucca/docker-compose.yml new file mode 100644 index 0000000..d9f3a68 --- /dev/null +++ b/yucca/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3.8" + +services: + app_proxy: + environment: + APP_HOST: yucca_yucca_1 + APP_PORT: 9910 + PROXY_AUTH_WHITELIST: "/v1/*" + + yucca: + image: yuccastream/yucca:0.12.0@sha256:815909dda5241cc56bf856967bd12c1aa7f44c35831574fae758b849851632ab + restart: on-failure + shm_size: "128mb" + working_dir: /opt/yucca + volumes: + - "${APP_DATA_DIR}/data/data:/opt/yucca/data" + - "${APP_DATA_DIR}/data/ffmpeg:/opt/yucca/ffmpeg" + ports: + - 10925:10925 # SMTP server + - 9912:9912 # telemetry (prometheus) + environment: # Read more about configuration here https://docs.yucca.app/en/configuration/ + YUCCA_SERVER_DATA_DIR: "/opt/yucca/data" + YUCCA_SMTP_SERVER_LISTEN_ADDRESS: ":10925" diff --git a/zabbix/data/postgres/.gitkeep b/zabbix/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/zabbix/dfwebos-app.yml b/zabbix/dfwebos-app.yml new file mode 100644 index 0000000..880b4f8 --- /dev/null +++ b/zabbix/dfwebos-app.yml @@ -0,0 +1,59 @@ +manifestVersion: 1.1 +id: zabbix +category: networking +name: Zabbix +tagline: Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. +version: "7.4.8" +description: >- + ⚠️ Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Zabbix послС установки ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ нСсколько ΠΌΠΈΠ½ΡƒΡ‚. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹. + + + РСшСниС для распрСдСлСнного ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ класса с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ доступности сСтСвых устройств, сСрвСров, слуТб ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ИВ-рСсурсов. + Zabbix β€” это Π³ΠΈΠ±ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, ΠΎΡ‚ простого Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ прилоТСния Π΄ΠΎ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΉ срСды, со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ функциями: + - ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ рСсурсов: ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сСтСвых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², рСсурсов сСрвСра ΠΈ встроСнных/Π²Π½Π΅ΡˆΠ½ΠΈΡ… устройств. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹) для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° всСго, ΠΎΡ‚ устройства Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня Π΄ΠΎ слуТбы SAAS. + - Π‘Π±ΠΎΡ€ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π³Π΅Π½Ρ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ Π±Π΅Π·Π°Π³Π΅Π½Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для сбора ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ· любого источника β€” устройств, Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Docker, Kubernetes, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… инфраструктур, Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π΅Π±-страниц, экосистСм Java, сСрвСров ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ API, бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. + - Анализ ΠΏΠ΅Ρ€Π²ΠΎΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: рассчитывайтС Π½Π° Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сопоставляСт ΠΊΠ°ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ выполняСт Π°Π½Π°Π»ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΏΡ€ΠΈΡ‡ΠΈΠ½. + - Π˜Π½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹, оповСщСния ΠΈ увСдомлСния: ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ оповСщСния, ΠΊΠΎΠ³Π΄Π° Π² экосистСмС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° (ΠΏΡ€Π΅Π²Π΅Π½Ρ‚ΠΈΠ²Π½ΠΎ ΠΈΠ»ΠΈ посмСртно). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ нСсколько ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Slack, JIRA, Microsoft Teams, ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈΠ»ΠΈ тСкстовыС сообщСния), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… событий, происходящих Π² вашСй срСдС.- ΠžΠ±Π·ΠΎΡ€ Β«Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°Β»: Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ собранныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ события ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π² Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ…, списках, гСографичСских ΠΊΠ°Ρ€Ρ‚Π°Ρ… ΠΈ ​​картах Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ сСти. + - ΠœΡƒΠ»ΡŒΡ‚ΠΈΠ°Ρ€Π΅Π½Π΄Π½ΠΎΡΡ‚ΡŒ ΠΈ распрСдСлСнный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³: Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ удобством ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‚Π΄Π΅Π»ΠΎΠ² ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ мСстополоТСния Π·Π° брандмауэрами с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄. + - НСпрСвзойдСнная Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Zabbix ΠΊ вашим потрСбностям ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ событий Ρ‡Π΅Ρ€Π΅Π· HTTP, составлСниС ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², Π°ΡƒΠ΄ΠΈΡ‚, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, расчСты сСрвисного соглашСния ΠΎΠ± ΡƒΡ€ΠΎΠ²Π½Π΅ обслуТивания ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. + + + βš™οΈΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ: + + + АгСнт Zabbix ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΡ€Ρ‚ 10050. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сам сСрвСр Zabbix, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π» Β«ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ > Π₯осты Π² ZabbixΒ» ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ хост «сСрвСр ZabbixΒ», Π΄ΠΎΠ±Π°Π²ΠΈΠ² DNS-имя Β«zabbix_zabbix-agent_1Β» ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΎΠΏΡ†ΠΈΡŽ Β«ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ DNSΒ». +developer: Zabbix LLC +website: https://www.zabbix.com/ +dependencies: [] +repo: https://github.com/zabbix/zabbix +support: https://www.zabbix.com/support +port: 10052 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "Admin" +defaultPassword: "zabbix" +torOnly: false +releaseNotes: >- + Π­Ρ‚ΠΎ основной выпуск, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Ρ‹ срСдства ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ класса. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ этого выпуска Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° каскадных (Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ…) Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов обнаруТСния Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня (LLD). + - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ мастСр хостов API ΠΈ встроСнная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„ΠΎΡ€ΠΌΡ‹ для хостов, элСмСнтов ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ². + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OAuth для Ρ‚ΠΈΠΏΠ° носитСля элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° TLS для связи ΠΌΠ΅ΠΆΠ΄Ρƒ интСрфСйсом ΠΈ сСрвСром. + - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ макросов Vault Π½Π° прокси-сСрвСрах Zabbix для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности. + - ОбновлСна максимальная поддСрТиваСмая вСрсия TimescaleDB Π΄ΠΎ 2.25 ΠΈ PostgreSQL Π΄ΠΎ 17. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Β«ΠšΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° Ρ‚ΠΎΠ²Π°Ρ€Π°Β» ΠΈ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π² ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π° MVC. + - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² хостов Π½Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… хостах. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ сцСнарии сбоя Zabbix Proxy ΠΈ сСрвСра Π² процСссах обнаруТСния ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° высокой доступности. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² для элСмСнтов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ окраску Π² списках прокси. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ настройки Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° сСансов ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° очистки кэша истории. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Teams ΠΈ Ρ‚ΠΈΠΏΡ‹ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° Telegram с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ‚Π΅ΠΌ супСргруппы. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску доступны ΠΏΠΎ адрСсу https://www.zabbix.com/release_notes. +submitter: DavidGarciaCat +submission: https://github.com/getumbrel/dfwebos-apps/pull/1376 diff --git a/zabbix/docker-compose.yml b/zabbix/docker-compose.yml new file mode 100644 index 0000000..3a2f564 --- /dev/null +++ b/zabbix/docker-compose.yml @@ -0,0 +1,56 @@ +version: "3.7" + +services: + + app_proxy: + environment: + APP_HOST: zabbix_zabbix-frontend_1 + APP_PORT: 8080 + + zabbix-frontend: + image: zabbix/zabbix-web-nginx-pgsql:7.4.8-alpine@sha256:4d23de6390cc1b176214598210df660d7f6904fe66e45d776948740c5a8e2abf + hostname: zabbix-frontend + restart: on-failure + environment: + DB_SERVER_HOST: zabbix-database + POSTGRES_USER: zabbix + POSTGRES_PASSWORD: zabbix + ZBX_SERVER_HOST: zabbix-server + PHP_TZ: UTC + depends_on: + - zabbix-server + - zabbix-database + + zabbix-server: + image: zabbix/zabbix-server-pgsql:7.4.8-alpine@sha256:b118d2f69194c0bf1cb52698050db06fa06e4a11ebb271c6af889dba183e7d69 + hostname: zabbix-server + restart: on-failure + init: true + environment: + DB_SERVER_HOST: zabbix-database + POSTGRES_USER: zabbix + POSTGRES_PASSWORD: zabbix + ports: + - "10050:10050" + depends_on: + - zabbix-database + + zabbix-agent: + image: zabbix/zabbix-agent2:7.4.8-alpine@sha256:2323ac07ff647f430d48cc0fea16c844a3ff2c46308eebf8af460498b508b336 + hostname: zabbix-agent + restart: on-failure + init: true + environment: + ZBX_HOSTNAME: zabbix-agent + ZBX_SERVER_HOST: zabbix-server + + zabbix-database: + image: postgres:13.18-alpine3.20@sha256:77815c1f18ae761b0e503503a494475a03149d7ce544934ccecdbafdb3956c94 + hostname: zabbix-database + restart: on-failure + environment: + POSTGRES_PASSWORD: zabbix + POSTGRES_USER: zabbix + POSTGRES_DB: zabbix + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data diff --git a/zen/data/app/.gitkeep b/zen/data/app/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/zen/data/app/.gitkeep @@ -0,0 +1 @@ + diff --git a/zen/data/images/.gitkeep b/zen/data/images/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/zen/data/images/.gitkeep @@ -0,0 +1 @@ + diff --git a/zen/dfwebos-app.yml b/zen/dfwebos-app.yml new file mode 100644 index 0000000..d2cf7f6 --- /dev/null +++ b/zen/dfwebos-app.yml @@ -0,0 +1,57 @@ +manifestVersion: 1 +id: zen +name: Zen +tagline: ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ +category: files +version: "1.5.0" +port: 8894 +description: >- + πŸ“’ Zen β€” это минималистскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ простой ΠΈ эффСктивный способ сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ управлСния Сю. Он позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ с использованиСм Markdown, поддСрТивая ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² форматирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ списки, Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ тСкста. ВсС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ хранятся локально Π² ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… SQLite, гарантируя, Ρ‡Ρ‚ΠΎ ваши Π΄Π°Π½Π½Ρ‹Π΅ останутся ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄ вашим ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ. + + + ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ понятный ΠΈ Π½Π΅ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΉ интСрфСйс, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для простоты использования ΠΊΠ°ΠΊ Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΌΠΎΡ‰Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ полнотСкстового поиска, которая позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ быстро Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… Π²Π²ΠΎΠ΄Π°, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Π³ΠΈ вмСсто Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ°ΠΏΠΎΠΊ для Π³ΠΈΠ±ΠΊΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ изобраТСния прямо Π² своих Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°Ρ…, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠ±ΠΎΠ³Π°Ρ‚ΠΈΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. + + + Zen Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ порядок Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ мСстС Π±Π΅Π· Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. БочСтания клавиш ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, обСспСчивая Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π΅ полагаясь ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° ΠΌΡ‹ΡˆΡŒ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ использованиС благодаря своим прогрСссивным функциям Π²Π΅Π±-прилоТСния, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ своим Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. + + + Π’ Ρ†Π΅Π»ΠΎΠΌ, Zen прСдставляСт собой Π»Π΅Π³ΠΊΠΈΠΉ, быстрый ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ инструмСнт для управлСния Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ знаниями, вСдСния ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΈΠ»ΠΈ простого вСдСния Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, прСдоставляя Π²Π°ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ вашими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ срСдС. +developer: Sheshbabu +website: https://www.sheshbabu.com/zen/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/3555 +repo: https://github.com/sheshbabu/zen +support: https://github.com/sheshbabu/zen/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π­Ρ‚ΠΎΡ‚ выпуск содСрТит нСсколько интСрСсных Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ: + + + НовыС возмоТности: + - ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ поиска, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ быстрСС Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. + - ОглавлСниС для облСгчСния Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ. + - Ѐункция Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Ρ… Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Π²Π΅Ρ€Ρ…Ρƒ. + - Ѐункция шаблонов для быстрого создания Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ с ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ структурой. + - Ѐункция очистки мусора, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. + - БСмантичСский поиск для Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ обнаруТСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Canvas для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСрСтаскивания. + - Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ для быстрых мыслСй ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ. + - Поиск сходства ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для поиска ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. + + + Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: + - Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ поиск: Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ сСтки. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ просмотр Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ списков. + - ПанСль инструмСнтов Β«Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹ΠΉ список» для облСгчСния доступа. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΡΡ‚ΠΈΠ»ΡŒ оглавлСния. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° интСграция лайтбокса с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ закрытия ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. + - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ настроСк ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сохраняСтся локально. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/zen/docker-compose.yml b/zen/docker-compose.yml new file mode 100644 index 0000000..2d62dc8 --- /dev/null +++ b/zen/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.7" + +services: + app_proxy: + environment: + APP_HOST: zen_app_1 + APP_PORT: 8080 + + app: + image: ghcr.io/sheshbabu/zen/zen:1.5.0@sha256:370d7ae0d8b4d06593b44ffa1cfde5d15c7f80abe4bbe8d94e86d8d29e250270 + user: "1000:1000" + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data/app:/data + - ${APP_DATA_DIR}/data/images:/images diff --git a/zeronote/dfwebos-app.yml b/zeronote/dfwebos-app.yml new file mode 100644 index 0000000..5f92cdf --- /dev/null +++ b/zeronote/dfwebos-app.yml @@ -0,0 +1,25 @@ +manifestVersion: 1 +id: zeronote +name: ZeroNote +version: "1.0.7" +tagline: "ВсС ваши Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΏΠ°Ρ€ΠΎΠ»ΠΈ, Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈ 2FA Π² ΠΎΠ΄Π½ΠΎΠΌ бСзопасном Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ." +category: files +description: "ZeroNote β€” это ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ замСняСт ваш ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ 2FA-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΅Π΄ΠΈΠ½ΠΎΠΉ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмой создания Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ Π½Π° Π±Π°Π·Π΅ смарт-Ρ‚Π΅Π³ΠΎΠ², Π³Π΄Π΅ всС хранится локально Π½Π° вашСм устройствС с ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Ρ€Π°Π·Π³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠΉ синхронизациСй ΠΈΠ»ΠΈ синхронизациСй S3." +developer: "besoeasy" +website: "https://github.com/besoeasy/zeronote" +repo: "https://github.com/besoeasy/zeronote" +support: "https://github.com/besoeasy/zeronote/issues" +port: 8000 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния ошибок. +dependencies: [] +path: "/" +defaultUsername: "" +defaultPassword: "" +submitter: besoeasy +submission: https://github.com/getumbrel/dfwebos-apps/pull/4053 diff --git a/zeronote/docker-compose.yml b/zeronote/docker-compose.yml new file mode 100644 index 0000000..9e9ba37 --- /dev/null +++ b/zeronote/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: zeronote_app_1 + APP_PORT: 8000 + + app: + image: ghcr.io/besoeasy/zeronote:1.0.7@sha256:368672d8bdc03a3a0632f241e4a53a2fed1240093eb88c82360c7d112474cbbe + user: "1000:1000" + restart: on-failure + stop_grace_period: 5m + environment: + - NODE_ENV=production diff --git a/zigbee2mqtt/data/.gitkeep b/zigbee2mqtt/data/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/zigbee2mqtt/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/zigbee2mqtt/dfwebos-app.yml b/zigbee2mqtt/dfwebos-app.yml new file mode 100644 index 0000000..738b83e --- /dev/null +++ b/zigbee2mqtt/dfwebos-app.yml @@ -0,0 +1,58 @@ +manifestVersion: 1 +id: "zigbee2mqtt" +name: "Zigbee2MQTT" +tagline: "ΠœΠΎΡΡ‚ Zigbee-MQTT, ΠΈΠ·Π±Π°Π²ΡŒΡ‚Π΅ΡΡŒ ΠΎΡ‚ собствСнных мостов Zigbee" +category: "automation" +version: "2.9.2" +port: 60082 +description: >- + ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ устройства Zigbee Π±Π΅Π· моста ΠΈΠ»ΠΈ шлюза поставщика. + + Он ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ события ΠΈ позволяСт Π²Π°ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ вашими устройствами Zigbee Ρ‡Π΅Ρ€Π΅Π· MQTT. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои устройства Zigbee с любой инфраструктурой ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅. + + + **БовмСстимый** + + Zigbee2MQTT ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹ Zigbee ΠΈ мноТСство устройств. + + + **Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ** + + Zigbee2MQTT Ρ…ΠΎΡ€ΠΎΡˆΠΎ интСгрируСтся с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ домашнСй Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ MQTT. + + + **ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄** + + Zigbee2MQTT распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GNU General Public License 3. + + + **ΠΠ°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ** + + ПослС установки Π²Π°ΠΌ откроСтся мастСр установки. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ своС устройство ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅. ПослС настройки Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для доступа ΠΊ Π²Π΅Π±-интСрфСйсу. +developer: "@Koenkk" +website: "https://www.zigbee2mqtt.io/" +submitter: "dirstel" +submission: "https://github.com/getumbrel/dfwebos-apps/pull/2472" +repo: "https://github.com/Koenkk/zigbee2mqtt" +support: "https://github.com/Koenkk/zigbee2mqtt/issues" +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +releaseNotes: >- + Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ исправлСния. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя: + - Π’Π½ΠΎΠ²ΡŒ Π²Π²Π΅Π΄Π΅Π½Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ рСгистрации ΠΈ исправлСна ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° URL-адрСсов высокой доступности ΠΏΡ€ΠΈ рСгистрации. + - Home Assistant: исправлСны ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎΠ³ΠΎΠ΄Ρ‹. + - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ опрос ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… устройств. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ внСшнСго интСрфСйса, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ быстрыС ΠΊΠ½ΠΎΠΏΠΊΠΈ для создания ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², Π½ΠΎΠ²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ устройству ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС. + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 69 Π½ΠΎΠ²Ρ‹Ρ… устройств, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π»Π°ΠΌΠΏΡ‹ Β«Π’Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΒ», Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ SONOFF, Π»Π°ΠΌΠΏΡ‹ Philips Hue, Π²ΠΈΠ»ΠΊΠΈ IKEA ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ тСрмостаты. + - Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ устройств ΠΈ исправлСния ошибок для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π±Ρ€Π΅Π½Π΄ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Shelly, Tuya, Aqara, Danfoss, Schneider Electric ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/Koenkk/zigbee2mqtt/releases. +dependencies: + - mosquitto +path: "" diff --git a/zigbee2mqtt/docker-compose.yml b/zigbee2mqtt/docker-compose.yml new file mode 100644 index 0000000..67e3270 --- /dev/null +++ b/zigbee2mqtt/docker-compose.yml @@ -0,0 +1,19 @@ +services: + + app_proxy: + environment: + APP_HOST: zigbee2mqtt_app_1 + APP_PORT: 8080 + + app: + image: koenkk/zigbee2mqtt:2.9.2@sha256:2a21bbf7a664a149024bbe1f776e3151f28ed9db15948270dcbffb89544a41f0 + restart: on-failure + volumes: + - ${APP_DATA_DIR}/data:/app/data:rw + - /run/udev:/run/udev:ro + privileged: true + environment: + ZIGBEE2MQTT_CONFIG_FRONTEND_ENABLED: "true" + ZIGBEE2MQTT_CONFIG_FRONTEND_PORT: 8080 + ZIGBEE2MQTT_CONFIG_MQTT_SERVER: "mqtt://mosquitto_broker_1:1883" + Z2M_ONBOARD_NO_REDIRECT: 1 diff --git a/zoraxy/data/config/.gitkeep b/zoraxy/data/config/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/zoraxy/data/config/.gitkeep @@ -0,0 +1 @@ + diff --git a/zoraxy/dfwebos-app.yml b/zoraxy/dfwebos-app.yml new file mode 100644 index 0000000..ed24090 --- /dev/null +++ b/zoraxy/dfwebos-app.yml @@ -0,0 +1,76 @@ +manifestVersion: 1 +id: zoraxy +name: Zoraxy +tagline: Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ прокси-сСрвСр с автоматичСским ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ SSL. +category: networking +version: "3.3.2" +port: 8400 +description: >- + Π›Π΅Π³ΠΊΠΎ ΠΈ бСзопасно Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ свои прилоТСния Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. + + + ⚠️ Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, публикуя прилоТСния Π² общСдоступном Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Ρ‰ΠΈΡ‚Ρƒ Π²Ρ…ΠΎΠ΄Π° Π² систСму, ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ раскрытия ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΌΠ΅Ρ€ бСзопасности. + + πŸ”§ Zoraxy Proxy Manager ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΡ€Ρ‚ 41080 для HTTP (Π½Π΅Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ) Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ ΠΏΠΎΡ€Ρ‚ 41443 для HTTPS (Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ) Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. + Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваши прилоТСния доступными ΠΈΠ· общСдоступного Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅. + ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ внСшний ΠΏΠΎΡ€Ρ‚ 80 (HTTP) Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ 41080 ΠΈ внСшний ΠΏΠΎΡ€Ρ‚ 443 (HTTPS) Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ 41443. + + + Zoraxy β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ, ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ прокси-сСрвСр ΠΈ инструмСнт пСрСнаправлСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для обСспСчСния простого, Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ ΠΈ бСзопасного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° управлСния Π²Π΅Π±-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ Π² Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… лабораториях ΠΈ срСдах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Написанный Π½Π° Go, Zoraxy обслуТиваСт ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², Ρ‚Π°ΠΊ ΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, упрощая процСсс ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ HTTP-запросов Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ сСрвСры, обСспСчивая эффСктивноС ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ услугами, Π½Π΅ полагаясь Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅, Π±ΠΎΠ»Π΅Π΅ слоТныС сСрвСры, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ NGINX ΠΈΠ»ΠΈ Apache. + + + ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности: + + + πŸ”€ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси ΠΈ WebSocket: Zoraxy ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ соСдинСния HTTP/2 ΠΈ автоматичСски ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ проксированиС WebSocket, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ трСбуСтся ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ соСдинСниС с Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ‡Π°Ρ‚-сСрвисы ΠΈΠ»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ. Он Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ проксированиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ псСвдонимы хостов ΠΈ настраиваСмыС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ гибкости. + + + πŸ€– TLS/SSL с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ACME: Zoraxy ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ настройку HTTPS с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ACME, Ρ‡Ρ‚ΠΎ позволяСт автоматичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ сСртификаты SSL Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π°ΠΊΠΈΡ… поставщиков, ΠΊΠ°ΠΊ Let's Encrypt. Π­Ρ‚Π° функция ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сСртификаты SNI (индикация ΠΈΠΌΠ΅Π½ΠΈ сСрвСра) ΠΈ SAN (Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ имя ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚Π°), помогая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ бСзопасно ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. + + + πŸ“ ВнСсСниС Π² Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ΠΈ Π±Π΅Π»Ρ‹ΠΉ списки Π³Π΅ΠΎ-IP. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ Π·Π° счСт прСдлоТСния Ρ‡Π΅Ρ€Π½Ρ‹Ρ… ΠΈ Π±Π΅Π»Ρ‹Ρ… списков Π½Π° основС Π³Π΅ΠΎ-IP ΠΈ IP-адрСсов, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ доступ Π½Π° основС мСстополоТСния ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… IP-адрСсов. Π­Ρ‚Π° функция особСнно ΠΏΠΎΠ»Π΅Π·Π½Π° для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ слуТб ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π³ΠΈΠΎΠ½ΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… IP-адрСсов. + + + 🌐 Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ сСтСвой ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ интСграция ZeroTier: для распрСдСлСнных сСтСй Zoraxy прСдоставляСт встроСнный интСрфСйс ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° для управлСния сСтями ZeroTier, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ бСзопасныС ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими ΡƒΠ·Π»Π°ΠΌΠΈ. Π­Ρ‚Π° функция особСнно Ρ†Π΅Π½Π½Π° для энтузиастов Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΉ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΡ… частныС сСти с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ внСшним доступом. БообщСство Zoraxy DEV. + + + πŸ› οΈ ВстроСнныС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹: Zoraxy Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси-сСрвСра ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ IP-адрСсов CIDR, сканСр mDNS для обнаруТСния локальной сСти ΠΈ инструмСнты для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ прокси-соСдинСний. Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» Web-SSH позволяСт ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ устройствами Π² сСти, Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Wake-on-LAN Π΅Ρ‰Π΅ большС Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ возмоТности использования Zoraxy для сСтСвых администраторов. + + + πŸ“Š ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ΅ проксированиС ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Помимо HTTP/HTTPS, Zoraxy ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ проксированиС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² TCP ΠΈ UDP, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π±Π΅Π·ΠΎΡ‚ΠΊΠ°Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ нСпСрсонализированная Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСдставлСниС ΠΎ сСтСвой активности Π±Π΅Π· использования Ρ„Π°ΠΉΠ»ΠΎΠ² cookie, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ услуг нСпосрСдствСнно Π² Zoraxy. + + + πŸ–₯️ ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ интСрфСйс ΠΈ интСграция: интСрфСйс Zoraxy ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн ΠΈ содСрТит ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ инструкции ΠΏΠΎ настройкС для ΠΌΠ΅Π½Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… конфигурациях ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ инфраструктурами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π΅ΠΆΠΈΠΌ управлСния с ΠΎΠ΄Π½ΠΈΠΌ администратором ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² частных сСтях, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ домашним ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ. + + + Zoraxy особСнно популярСн Π² Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… лабораториях ΠΈ сообщСствах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² благодаря своСму ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, надСТности ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌΡƒ исходному ΠΊΠΎΠ΄Ρƒ. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° устройствах с Π½ΠΈΠ·ΠΊΠΈΠΌ энСргопотрСблСниСм, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ подходящим для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСд хостинга, ΠΎΡ‚ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… распрСдСлСнных сСтСвых Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€. Π•Π³ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² сочСтании с Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ настройку управлСния ΡΠ΅Ρ‚ΡŒΡŽ ΠΈΠ»ΠΈ бСзопасно ΠΈ эффСктивно Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π²Π΅Π±-сСрвисы. +developer: Toby Chui +website: https://zoraxy.aroz.org/ +submitter: dennysubke +submission: https://github.com/getumbrel/dfwebos-apps/pull/1751 +repo: https://github.com/tobychui/zoraxy +support: https://github.com/tobychui/zoraxy/issues +gallery: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg + - 5.jpg +releaseNotes: >- + Π’ этой вСрсии прСдставлСны Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ сущСствСнныС ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + + + ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: + - Настройки Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ прокси Π² систСмС ΠΏΡ€Π°Π²ΠΈΠ» доступа + - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° Zoraxy Auth. + - Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ Π±Π΅Π·ΠΎΡ‚ΠΊΠ°Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. + - Π’Π΅Π±-Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° сСрвСр WebDAV для Π±ΠΎΠ»Π΅Π΅ бСзопасного ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ. + - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС соСдинСний ΠΈ общая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прокси. + - ΠŸΠ΅Ρ€Π΅Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡ сохранСния Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ исправлСния настроСк ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + + + ΠŸΠΎΠ»Π½Ρ‹Π΅ примСчания ΠΊ выпуску ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу https://github.com/tobychui/zoraxy/releases. +dependencies: [] +path: "" +defaultUsername: "" +defaultPassword: "" diff --git a/zoraxy/docker-compose.yml b/zoraxy/docker-compose.yml new file mode 100644 index 0000000..59157c5 --- /dev/null +++ b/zoraxy/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: zoraxy_server_1 + APP_PORT: 8000 + + server: + image: zoraxydocker/zoraxy:v3.3.2@sha256:2d4bcfb9fe4073c33242b452374017f61e1e4be2f8dc59d963c0359b6e02d3b5 + restart: on-failure + ports: + - 41080:80 + - 41443:443 + volumes: + - ${APP_DATA_DIR}/data/config/:/opt/zoraxy/config + - /etc/localtime:/etc/localtime:ro + environment: + FASTGEOIP: "false" + ZEROTIER: "false" + DOCKER: "false" + NOAUTH: "true"