Skip to content

Commit bac2b3c

Browse files
committed
feat: thin project pages linking to GitHub
Replace duplicated README content on each project page with a short blurb, key highlights, and a View on GitHub button (plus an Open live app link and preview for the two web apps). READMEs on GitHub are now the single source of truth. Add .bs-actions/.bs-preview styles.
1 parent 974fc64 commit bac2b3c

9 files changed

Lines changed: 140 additions & 1244 deletions

File tree

‎docs/projects/RedditModLog.md‎

Lines changed: 14 additions & 429 deletions
Large diffs are not rendered by default.

‎docs/projects/Scripts.md‎

Lines changed: 14 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,20 @@
1-
# Scripts
2-
3-
[![ShellCheck](https://github.com/baker-scripts/Scripts/actions/workflows/shellcheck.yml/badge.svg)](https://github.com/baker-scripts/Scripts/actions/workflows/shellcheck.yml)
4-
5-
Utility scripts for selfhosted infrastructure management.
6-
7-
## Contents
8-
9-
- `nextdns_sync.py` — Syncs NextDNS profile settings (allowlist, denylist, security, privacy)
10-
- `.bash_aliases` — Shell aliases for common operations
11-
- `docker_aliases.sh` — Docker Compose wrapper with 1Password secret resolution, fzf integration, Dozzle group management, and tab completion
12-
- `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
1+
---
2+
title: Scripts
3+
---
154

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.
35-
36-
## Contributors
5+
# Scripts
376

38-
<a href="https://github.com/baker-scripts/Scripts/graphs/contributors">
39-
<img src="https://contrib.rocks/image?repo=baker-scripts/Scripts" alt="Contributors" />
40-
</a>
7+
Utility scripts for self-hosted infrastructure management: DNS sync, shell aliases, tmux helpers, and Android TV deployment.
418

42-
## Disclaimer
9+
<div class="bs-actions" markdown="0">
10+
<a class="bs-btn bs-btn--primary" href="https://github.com/baker-scripts/Scripts">View on GitHub →</a>
11+
</div>
4312

44-
These scripts are provided as-is with no warranty. Always review scripts before running them on your system and test in a non-production environment first. The authors are not responsible for any issues resulting from their use.
13+
## Highlights
4514

46-
## License
15+
- `docker_aliases.sh`: Docker Compose wrapper with 1Password secret resolution, fzf integration, and Dozzle group management.
16+
- `nextdns_sync.py`: syncs NextDNS profile settings (allowlist, denylist, security, privacy).
17+
- `tmux_session_picker.sh`: auto-creates a tmux session on SSH login with a running-process table.
18+
- `projectivy-deploy.sh` and `androidtv-app-sync.sh`: install and checksum-pin apps on Android TV devices over ADB.
4719

48-
[MIT](https://github.com/baker-scripts/Scripts/blob/main/LICENSE)
20+
Full contents and usage notes: **[GitHub README →](https://github.com/baker-scripts/Scripts#readme)**

‎docs/projects/StarrScripts.md‎

Lines changed: 15 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -1,156 +1,21 @@
1-
# StarrScripts
2-
3-
A curated collection of scripts to optimize and manage various functions related to Starr applications and associated tools.
4-
Occasionally holds random useful scripts as well.
5-
These scripts are designed to enhance functionality, improve management, and automate routine tasks.
6-
All scripts are **Created By: [Bakerboy448](https://github.com/bakerboy448/) unless otherwise noted.**
7-
8-
**Warning**: Do not edit files on Windows that will be executed on Linux without ensuring the line-endings are set to `LF`.
9-
This means that `CRLF` cannot be used in .sh scripts. Bash scripts will not execute properly and you will receive an
10-
error.
11-
12-
## Scripts Overview
13-
14-
### qui Cross-Seed Trigger for Starr Apps
15-
16-
- **Script:** `qui-xseed.sh`
17-
- **Description:** Triggers a [qui](https://github.com/autobrr/qui) data-based cross-seed search when Radarr or Sonarr completes an import. The script creates a dir-scan entry in qui, triggers a scan, polls for completion, then cleans up.
18-
- **Creator:** [Bakerboy448](https://github.com/bakerboy448/)
19-
- **Requirements:**
20-
- [qui](https://github.com/autobrr/qui) with API access enabled
21-
- Radarr/Sonarr with Custom Script connect support
22-
- **Instructions:**
23-
1. Copy `.env.sample` to `.env` and configure the `QUI_*` variables.
24-
2. Docker Users: Mount `.env` and `qui-xseed.sh` to your Starr's `/config` mount.
25-
3. In Radarr: `Settings` -> `Connect` -> `Custom Script` -> select "On Import" and "On Upgrade".
26-
4. In Sonarr: `Settings` -> `Connect` -> `Custom Script` -> select "On Import Complete".
27-
5. Test and Save.
28-
- **Configuration (`.env`):**
29-
- `QUI_HOST` - qui hostname (default: `localhost`)
30-
- `QUI_PORT` - qui API port (default: `7476`)
31-
- `QUI_APIKEY` - qui API key
32-
- `QUI_TARGET_INSTANCE_ID` - qui instance ID (default: `1`)
33-
- `QUI_QBIT_PATH_PREFIX` - optional path prefix for qBittorrent
34-
- `QUI_TAGS` - optional comma-separated tags
35-
- `TORRENT_CLIENTS` - comma-separated torrent client names (default: `qBittorrent`)
36-
- `USENET_CLIENTS` - comma-separated usenet client names (default: `SABnzbd`)
37-
- `LOG_FILE` - log file path (default: `./qui_xseed.log`)
38-
- **Notes:**
39-
- Only errors are written to stderr (which starr apps capture). All other logging goes to the log file only, to avoid noisy notifications.
40-
- The script is idempotent — duplicate download IDs are skipped via the ID log file.
41-
- Replaces the legacy `xseed.sh` (removed in v4.0.0) which used the cross-seed API directly.
42-
43-
### Duplicate File Manager
44-
45-
- **Script:** `dupe.sh`
46-
- **Description:** Executes `jdupes` to find and manage duplicate files in the specified directory.
47-
- **Instructions:**
48-
1. Copy `.env.sample` to `.env`.
49-
2. Populate required values under "# Jdupes" header.
50-
3. Review and adjust script parameters to fit your use case.
51-
- **Output:** Results are saved to a file as specified in the script.
52-
53-
### Merge Folders Utility
54-
55-
- **Script:** `merge_folders.py`
56-
- **Description:** A robust utility designed for merging multiple directories into a single target directory, ensuring that no existing files are overwritten in the process. This script uses a recursive function to efficiently merge content, while providing detailed logging of each step to monitor the creation, movement, and skipping of files and directories.
57-
- **Features:**
58-
- **Recursive Merging:** Seamlessly combines contents of source directories into a target directory.
59-
- **Non-destructive:** Preserves existing files by not overwriting them.
60-
- **Error Handling:** Captures and logs errors during the merging process, ensuring reliable operations.
61-
- **Detailed Logging:** Tracks and logs every file and directory operation, providing clear visibility into the process.
62-
- **Usage Case:** Ideal for consolidating data in scenarios like organizing media libraries, merging data backups, or simplifying file system structures.
63-
- **Instructions:**
64-
1. Update `source_dirs` and uncomment the variable
65-
2. Update `target_dir` and uncomment the variable
66-
3. Uncomment `atomic_moves` to engage the movement operation
67-
4. Run the script with `python3 merge_folders.py`
68-
69-
### Plex Image Cleanup Updater
70-
71-
- **Script:** `pic-update.sh`
72-
- **Description:** Updates [Plex-Image-Cleanup](https://github.com/meisnate12/Plex-Image-Cleanup) to the latest branch.
73-
- **Review:** Check that script parameters are suitable for your environment.
74-
75-
### Plex Meta Manager Updater
76-
77-
- **Script:** `pmm-update.sh`
78-
- **Description:** Updates [Plex Meta Manager](https://github.com/meisnate12/Plex-Meta-Manager) to the latest branch.
79-
- **Review:** Confirm script parameters align with your configuration.
80-
81-
### QbitManage API Trigger
82-
83-
- **Script:** `qbm-api-trigger.sh`
84-
- **Description:** Triggers [QbitManage](https://github.com/StuffAnThings/qbit_manage) commands via Web API for specific torrent hashes.
85-
- **Requirements:**
86-
- QbitManage v4.5+ with Web API enabled (`QBT_WEB_SERVER=true`)
87-
- QbitManage container accessible via HTTP
88-
- **Instructions:**
89-
1. Configure QbitManage Web API in your docker-compose.yml
90-
2. In qBittorrent, navigate to `Options` -> `Downloads` -> `Run external program on torrent completion`
91-
3. Add command: `/path/to/qbm-api-trigger.sh %I`
92-
4. The `%I` variable passes the torrent hash to trigger commands like `tag_update`, `share_limits`, `rem_unregistered`, and `recheck`
93-
- **Notes:**
94-
- Script sends POST request to `http://127.0.0.1:4269/api/run-command` by default
95-
- Modify `API_URL` and `COMMANDS` variables in script to customize behavior
96-
- All execution details logged to `run_qbit_manage_commands.log`
97-
98-
### QbitManage Updater
1+
---
2+
title: StarrScripts
3+
---
994

100-
- **Script:** `qbm-update.sh`
101-
- **Description:** Updates [QbitManage](https://github.com/StuffAnThings/qbit_manage) to the latest branch.
102-
- **Review:** Ensure script parameters match your setup before execution.
103-
104-
### Servarr Bot Merger
105-
106-
- **Script:** `servarr/servarr_bot_merge.sh`
107-
- **Description:** Merges the latest changes from the Servarr Wiki Bot Branch into the Prowlarr Indexers Wiki Master.
108-
109-
### Backup Config
110-
111-
- **Script:** `backup_config.sh`
112-
- **Description:** Backs up configuration directories to a compressed archive.
113-
114-
### Fail2ban Config Dump
115-
116-
- **Script:** `f2b-dump.sh`
117-
- **Description:** Dumps Fail2ban configuration details to a temporary file for review.
118-
119-
### Omegabrr Updater
120-
121-
- **Script:** `omegabrr_upgrade.sh`
122-
- **Description:** Upgrades [Omegabrr](https://github.com/autobrr/omegabrr) to the latest version.
123-
124-
### Radarr Duplicate Finder
125-
126-
- **Script:** `radarr_dupefinder.sh`
127-
- **Description:** Finds duplicate files in Radarr library directories.
128-
129-
### Sonarr Duplicate Finder
130-
131-
- **Script:** `sonarr_dupefinder.sh`
132-
- **Description:** Finds duplicate files in Sonarr library directories.
133-
134-
### ZFS Snapshot Cleanup
135-
136-
- **Script:** `zfsburn.sh`
137-
- **Description:** Deletes ZFS autosnapshots older than a specified number of days.
138-
- **Instructions:**
139-
1. Copy `.env.sample` to `.env`.
140-
2. Fill in the required values under "# ZFS Destroy" header.
141-
142-
## Contributors
143-
144-
<a href="https://github.com/baker-scripts/StarrScripts/graphs/contributors">
145-
<img src="https://contrib.rocks/image?repo=baker-scripts/StarrScripts" alt="Contributors" />
146-
</a>
5+
# StarrScripts
1476

148-
Contributions to improve or expand the scripts collection are welcome. Please [open an issue](https://github.com/baker-scripts/StarrScripts/issues) for more information.
7+
Bash scripts for Starr apps (Radarr, Sonarr, Lidarr, Readarr): custom formats, naming, duplicate management, and update automation.
1498

150-
## Disclaimer
9+
<div class="bs-actions" markdown="0">
10+
<a class="bs-btn bs-btn--primary" href="https://github.com/baker-scripts/StarrScripts">View on GitHub →</a>
11+
</div>
15112

152-
These scripts are provided as-is with no warranty. Scripts may delete files, modify configurations, or interact with external APIs. Always review scripts before running and test in a non-production environment first. The authors are not responsible for any data loss or issues resulting from their use.
13+
## Highlights
15314

154-
## License
15+
- `qui-xseed.sh`: triggers a [qui](https://github.com/autobrr/qui) cross-seed search when Radarr or Sonarr finishes an import.
16+
- `qbm-api-trigger.sh`: fires [QbitManage](https://github.com/StuffAnThings/qbit_manage) commands per torrent hash via the Web API.
17+
- Radarr and Sonarr duplicate finders, plus a non-destructive folder-merge utility.
18+
- Updater scripts for QbitManage, Kometa, Omegabrr, and Plex-Image-Cleanup.
19+
- Housekeeping: ZFS snapshot cleanup, config backup, fail2ban config dump.
15520

156-
[MIT](https://github.com/baker-scripts/StarrScripts/blob/main/LICENSE)
21+
Full script list, requirements, and configuration: **[GitHub README →](https://github.com/baker-scripts/StarrScripts#readme)**

‎docs/projects/autodns.md‎

Lines changed: 14 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,20 @@
1-
# Cloudflare DNS Updater
1+
---
2+
title: autodns
3+
---
24

3-
[![Docker](https://github.com/baker-scripts/autodns/actions/workflows/docker-image.yml/badge.svg)](https://github.com/baker-scripts/autodns/actions/workflows/docker-image.yml)
5+
# autodns
46

5-
The Cloudflare DNS Updater (AutoDNS) is a Flask-based application designed to automate the updating of A records on Cloudflare. Using GUIDs for DNS record identification, it features automatic IP detection from incoming requests and integrates with Apprise for sending notifications upon successful updates or when errors occur.
7+
A lightweight Flask app that keeps Cloudflare A records current, identifying each record by GUID and detecting the client IP automatically.
68

7-
## Features
9+
<div class="bs-actions" markdown="0">
10+
<a class="bs-btn bs-btn--primary" href="https://github.com/baker-scripts/autodns">View on GitHub →</a>
11+
</div>
812

9-
- **Automatic IP Detection:** Determines the client IP from incoming requests. When behind a trusted reverse proxy, trusts `X-Forwarded-For` only from configured proxy IPs.
10-
- **GUID-based Identification:** Securely identifies the DNS record to update using GUIDs.
11-
- **Notifications:** Sends notifications through a variety of services using Apprise upon successful updates or errors.
13+
## Highlights
1214

13-
## Prerequisites
15+
- GUID-based record identification, so a client only needs its own ID to update.
16+
- Automatic client-IP detection, proxy-aware: trusts `X-Forwarded-For` only from configured proxy IPs.
17+
- Apprise notifications on successful updates and on errors.
18+
- Ships as a Docker image (`ghcr.io/baker-scripts/autodns`).
1419

15-
Before you begin, ensure you have met the following requirements:
16-
17-
- Docker and Docker Compose installed on your machine.
18-
- A Cloudflare account and API token with DNS edit permissions.
19-
20-
## Environmental Variables
21-
22-
- `CF_ZONE_ID` - Cloudflare Zone ID for the DNS records you are updating.
23-
- `CF_API_TOKEN` - API token used to authenticate with Cloudflare’s API.
24-
- `APPRISE_URLS`- Comma-separated URLs for notification services
25-
- `TRUSTED_PROXIES` - Comma-separated IPs of trusted reverse proxies. When set, `X-Forwarded-For` is only trusted from these IPs. When empty, `remote_addr` is always used.
26-
27-
```shell
28-
docker run -d \
29-
--name autodns \
30-
--restart unless-stopped \
31-
-p 4295:4295 \
32-
-v /your/path/to/config:/config \
33-
-e CF_ZONE_ID="your-zone-id" \
34-
-e CF_API_TOKEN="your-api-token" \
35-
-e APPRISE_URLS="your-apprise-urls-separated-by-commas" \
36-
-e AUTODNS_PORT=4295 \
37-
-e AUTODNS_HOST=0.0.0.0 \
38-
-e TRUSTED_PROXIES="" \
39-
ghcr.io/baker-scripts/autodns:develop
40-
```
41-
42-
## Contributors
43-
44-
<a href="https://github.com/baker-scripts/autodns/graphs/contributors">
45-
<img src="https://contrib.rocks/image?repo=baker-scripts/autodns" alt="Contributors" />
46-
</a>
47-
48-
## Disclaimer
49-
50-
This software is provided as-is with no warranty. Always review configurations before applying and test in a non-production environment first. The authors are not responsible for any DNS issues or service disruptions resulting from its use.
51-
52-
## License
53-
54-
[GPL-3.0](https://github.com/baker-scripts/autodns/blob/main/LICENSE)
20+
Environment variables, Docker run example, and setup: **[GitHub README →](https://github.com/baker-scripts/autodns#readme)**

0 commit comments

Comments
 (0)