diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml
new file mode 100644
index 0000000..f1a2f1d
--- /dev/null
+++ b/.github/workflows/publish-release.yml
@@ -0,0 +1,81 @@
+name: Publish Release ๐ท๏ธ
+
+on:
+ push:
+ tags:
+ - "v?[0-9]+.[0-9]+.[0-9]+*"
+ workflow_dispatch:
+ inputs:
+ tag:
+ description: "The existing tag to publish"
+ type: "string"
+ required: true
+
+jobs:
+ version-check:
+ name: "Check versions โ๏ธ"
+ runs-on: ubuntu-24.04
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Compare App and Git versions ๐ฐ"
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ APP_VERSION=$(grep "^readonly VERSION" stream-sprout | cut -d'"' -f2)
+ GIT_VERSION=$(git describe --tags | cut -d'-' -f1)
+ echo "App version: ${REL_VERSION}"
+ echo "Git version: ${GIT_VERSION}"
+ if [ "${APP_VERSION}" != "${GIT_VERSION}" ]; then
+ echo "ERROR! Version mismatch.";
+ exit 1
+ fi
+
+ build-release:
+ needs: [version-check]
+ name: "Build Release ๐จโ๐ง"
+ runs-on: ubuntu-24.04
+ steps:
+ - uses: actions/checkout@v4
+ - name: "Build .deb ๐ฅ"
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ sudo apt-get -y update
+ sudo apt-get -y install debhelper devscripts
+ REL_VER=$(grep "^readonly VERSION" stream-sprout | cut -d'"' -f2)
+ rm debian/changelog
+ dch --package stream-sprout --newversion="${REL_VER}-1" --distribution=unstable "New upstream release." --create
+ dpkg-buildpackage --build=binary --no-check-builddeps --compression=gzip
+ - name: "Draft Release ๐ฅ๏ธ"
+ run: |
+ gh release create "${{ github.ref }}" --draft --generate-notes
+ - name: "Upload .deb โคด๏ธ"
+ run: |
+ gh release upload "${{ github.ref }}" "../stream-sprout_${REL_VER}-1_all.deb" --clobber
+ - name: "Publish release ๐ค๏ธ"
+ run: |
+ if [ "$(gh release view "${{ github.ref }}" --json assets --template '{{len .assets}}')" -lt 0 ]; then
+ exit 1
+ fi
+ gh release edit "${{ github.ref }}" --draft=false
+
+ publish-flakehub:
+ needs: [version-check]
+ name: "Publish FlakeHub โ๏ธ"
+ runs-on: "ubuntu-24.04"
+ permissions:
+ id-token: "write"
+ contents: "read"
+ steps:
+ - uses: "actions/checkout@v4"
+ with:
+ ref: "${{ (inputs.tag != null) && format('refs/tags/{0}', inputs.tag) || '' }}"
+ - uses: "DeterminateSystems/nix-installer-action@main"
+ - uses: "DeterminateSystems/magic-nix-cache-action@main"
+ - uses: "DeterminateSystems/flakehub-push@main"
+ with:
+ visibility: "public"
+ name: "wimpysworld/stream-sprout"
+ tag: "${{ inputs.tag }}"
diff --git a/README.md b/README.md
index 3d42f34..c8f9a04 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
# Stream Sprout
-**Restream OBS Studio to multiple destinations with ease**
+**Restream a video source to multiple destinations such as Twitch, YouTube, and Owncast.**
**Made with ๐ for
&
**
@@ -29,17 +29,33 @@ Stream Sprout uses FFmpeg to re-stream a video source to multiple destinations s
## Installation
-### Debian / Ubuntu
+### Debian
-- tbc
+`yq` is available in bullseye-backports, bookworm, trixie and newer.
+
+- Download the Stream Sprout .deb package from the [releases page]()
+- Install it with `apt-get install ./stream-sprout_0.1.0-1_all.deb`.
### NixOS
-- tbc
+[](https://flakehub.com/flake/wimpysworld/stream-sprout)
+
+Stable releases of Stream Sprout are published to FlakeHub for Nix users. See the flake on FlakeHub for more details:
+
+-
+
+## Ubuntu 24.04 and newer
+
+`yq` is available in Ubuntu 24.04 and newer.
+
+- Download the Stream Sprout .deb package from the [releases page]()
+- Install it with `apt-get install ./stream-sprout_0.1.0-1_all.deb`.
+
+For Ubuntu versions earlier than 24.04 you can [install Stream Sprout from source](#from-source).
### From source
-You need to have [FFmpeg](https://ffmpeg.org/) and [yq](https://github.com/mikefarah/yq) installed on your system.
+You need to have [FFmpeg](https://ffmpeg.org/) and [yq](https://github.com/kislyuk/yq) installed on your system.
```bash
git clone https://github.com/wimpysworld/stream-sprout.git
diff --git a/debian/control b/debian/control
index 13858e0..5ee48a3 100644
--- a/debian/control
+++ b/debian/control
@@ -19,7 +19,7 @@ Depends:
yq,
${misc:Depends},
${shlibs:Depends},
-Description: Restream to multiple destinations with ease.
+Description: Restream a video source to multiple destinations such as Twitch, YouTube, and Owncast.
Stream Sprout uses FFmpeg to re-stream a video source to multiple destinations
such as Twitch, YouTube, and Owncast.
.