Skip to content

Commit 32f01ae

Browse files
chore: sync READMEs from source repos
1 parent 69dbe0a commit 32f01ae

2 files changed

Lines changed: 26 additions & 19 deletions

File tree

docs/projects/Scripts.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,28 @@ Utility scripts for selfhosted infrastructure management.
1010
- `.bash_aliases` — Shell aliases for common operations
1111
- `docker_aliases.sh` — Docker Compose wrapper with 1Password secret resolution, fzf integration, Dozzle group management, and tab completion
1212
- `tmux_session_picker.sh` — Auto-creates tmux sessions on SSH login with a table showing running processes and last access time
13+
- `projectivy-deploy.sh` — Installs Projectivy Launcher on Android TV over ADB, selects it as home, and supports configuration backup/restore
14+
- `androidtv-app-sync.sh` — Applies checksum-pinned APK updates to reachable Android TV devices without downgrading packages
15+
16+
`androidtv-app-sync.sh` can share one manifest between a timer and manual runs. Keep Play-managed
17+
apps in audit-only mode and pin every sideloaded APK by version and checksum:
18+
19+
```text
20+
# package<TAB>minimum-versionCode<TAB>source<TAB>SHA-256
21+
com.spocky.projengmenu 1 managed -
22+
com.plexapp.android 1 managed -
23+
com.google.android.youtube.tvunplugged 1 managed -
24+
ca.devmesh.seerrtv 1 managed -
25+
smarttube.package.from.approved.apk 123 https://example.invalid/smarttube.apk <64-character-sha256>
26+
ca.devmesh.seerrtv 123 https://example.invalid/seerrtv.apk <64-character-sha256>
27+
```
28+
29+
Use the managed SeerrTV row on Google TV/Shield manifests and the pinned APK row on Fire TV
30+
manifests. SmartTube is always a pinned sideload row. Obtain the package and version from the exact
31+
approved APK (`aapt dump badging app.apk`) rather than assuming stable, beta, and F-Droid IDs match.
32+
33+
The ADB client key must be stored outside an ephemeral container. If a device reports
34+
`unauthorized`, approve that persistent key once on the TV; never rotate keys as a retry strategy.
1335

1436
## Contributors
1537

docs/projects/qui_workflows.md

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
Automation workflows for [qui](https://github.com/autobrr/qui) — a qBittorrent automation manager. These workflows manage the complete torrent lifecycle: tagging, maintenance, share limits, and cleanup.
44

5-
21 automations organized by function, designed for a hardlink-aware setup with cross-seed support.
5+
21 automations, published and kept in sync by [qui-sync](https://github.com/ProphetSe7en/qui-sync), designed for a hardlink-aware setup with cross-seed support.
66

77
## Requirements
88

99
- [qui](https://github.com/autobrr/qui) instance with API access
1010
- qBittorrent with hardlink detection enabled (save path and hardlink target on the same filesystem)
11-
- `curl` and `python3` (for the export script)
1211

1312
## Quick Start
1413

@@ -20,34 +19,20 @@ Import individual JSON files through the qui web UI, or use the API:
2019
curl -X POST "http://your-qui:7474/api/instances/${QUI_INSTANCE_ID:-1}/automations" \
2120
-H "X-API-Key: YOUR_KEY" \
2221
-H "Content-Type: application/json" \
23-
-d @tagging/Tag\ -\ tracker\ name.json
22+
-d @qbit/Tag\ tracker\ name.json
2423
```
2524

2625
The `id` field in each JSON is from the source instance and will be reassigned on import. Sort order and conditions are preserved.
2726

2827
### Export (update from live instance)
2928

30-
```bash
31-
# Set your qui URL and API key
32-
export QUI_URL="http://your-qui:7474"
33-
export QUI_API_KEY="your-api-key"
34-
35-
# Run the export script
36-
./scripts/export.sh
37-
```
38-
39-
The export script fetches all automations from the API, strips instance-specific fields (`instanceId`, `createdAt`, `updatedAt`), and writes individual JSON files to the categorized directories. When adding new automations, update the `FILE_MAP` in the script.
29+
This repo is published by a running [qui-sync](https://github.com/ProphetSe7en/qui-sync) instance, not a manual script. To update it: open qui-sync's Export tab, review the diff, and click Commit export, then Push to remote. See qui-sync's [How-To Guide](https://github.com/ProphetSe7en/qui-sync/blob/main/docs/how-to.md#export) for the full flow.
4030

4131
## Structure
4232

4333
```
4434
qui_workflows/
45-
├── tagging/ # Tracker name, noHL, stalledDL, tracker issue
46-
├── maintenance/ # Resume, delete unregistered, recheck missing
47-
├── limits/ # Share limits and speed limits by category
48-
├── cleanup/ # Delete rules by category with guards
49-
├── scripts/
50-
│ └── export.sh # Export automations from live instance
35+
├── qbit/ # All 21 automations, published by qui-sync
5136
└── README.md
5237
```
5338

0 commit comments

Comments
 (0)