Skip to content

Instantly share code, notes, and snippets.

View imorrish's full-sized avatar
🏠
Working from home

Ian Morrish imorrish

🏠
Working from home
View GitHub Profile
#!/usr/bin/env bash
#
# install-hybrididp-lxc.sh
#
# Creates a Debian LXC container on Proxmox VE and installs HybridIdP
# (https://github.com/bohewu/HybridIdP) NATIVELY — no Docker — following the
# "Advanced / Manual Configuration" section of the project's deployment guide:
# https://github.com/bohewu/HybridIdP/blob/main/docs/DEPLOYMENT_GUIDE.md#advanced--manual-configuration
#
# What this does, matching the manual steps 1:1:
@imorrish
imorrish / install-langflow-lxc.sh
Created August 15, 2026 00:48
Creates a Debian 12 LXC on Proxmox to host Langflow
#!/usr/bin/env bash
#
# install-langflow-lxc.sh
#
# Creates a Debian LXC container on Proxmox VE and installs Langflow
# (https://github.com/langflow-ai/langflow) natively with uv/pip — NO DOCKER.
# Also installs every official Langflow extension bundle listed at
# https://docs.langflow.org/extensions-bundle-list (as of Langflow 1.11.0).
#
# RUN THIS ON THE PROXMOX HOST (as root), not inside a container.
@imorrish
imorrish / install-kestra-lxc.sh
Last active August 14, 2026 23:39
Install Kestra on a Proxmox LXC
#!/usr/bin/env bash
#
# install-kestra-lxc.sh
#
# Helper script to create a Debian LXC container on Proxmox VE and install
# Kestra (https://kestra.io) inside it, running via Docker Compose with a
# Postgres backend.
#
# RUN THIS ON THE PROXMOX HOST (as root), not inside a container.
#
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
#add-type -path 'C:\Users\imorrish\Source\Workspaces\VISE_ATEMLib\SwitcherLib\bin\Debug\SwitcherLib.dll'
#cd \scripts
$Videohub="192.168.1.50"
function ConnectToATEM()
{
Try{
$ATEMipAddress = (Get-ItemProperty -path 'HKCU:\Software\Blackmagic Design\ATEM Software Control').ipAddress
#$DocumentsPath = [Environment]::GetFolderPath("MyDocuments") + '\windowspowershell\SwitcherLib.dll'
add-type -path 'SwitcherLib.dll'
@imorrish
imorrish / BMDSDITallySend.ino
Created July 8, 2019 23:11
Blackmagic Design Camera Tally using SDI Shield and Arduino GPIO
/*
SDI Tally interface based
Turns tally of the cameras on and off based on pins pulled low.
This interface is programed for Potential free outputs on a video mixer.
This means that if the tally output of the video mixer is active it will make a connection to ground.
By configuring the inputs with pull-up they are active 5V high and when pulled low to GND it will send that ports tally to the SDI output.
Written by Daniel Wittenaar for free use.
Use code and arduino's with care!! I'm not responsable for any damage caused by using this code!!
#Assume we are in the directory with all required files
add-type -path '.\StreamDeckSharp.dll'
#don't have native streamdeck software running or you get an error
$deckInterface = [StreamDeckSharp.StreamDeck]::OpenDevice()
function inputevent($key){
if($key.IsDown){
#run a supersource annimation when button is pressed
switch($key.key){
#0 is top right key
@imorrish
imorrish / hubrotator.ps1
Created May 3, 2019 20:27
Blackmagic VideoHub monitor port input rotator
Param(
[Parameter(Mandatory=$True,Position=1)]
[string]$HubIP,
[Parameter(Mandatory=$True,Position=2)]
[int]$duration=120,
[Parameter(Mandatory=$True,Position=1)]
[int]$outPort,
[Parameter(Mandatory=$True,Position=1)]
[int[]]$monports
)
# Script created by Ian Morrish
# See https://ianmorrish.wordpress.com/2019/03/02/atem-wireless-multiviewer-with-touch-switching/
# Run Newtek studio monitor first, select input and set to full screen.
# this script requires my switcherlib.dll which you can get from the site above
# after starting this script, <ALT><Tab> to see the multiview live video feed (I will automate this soon)
#Show-Process "overlay"
# Connect to ATEM
function ConnectToATEM()
@imorrish
imorrish / AnimateSupersource.ps1
Created December 29, 2018 18:25
Animate Blackmagic ATEM Supersource box layouts using Windows PowerShell
# See https://ianmorrish.wordpress.com for more info and prerequisites
# Tranlated from LUA code provided by Doug Johnson https://djp.li/supersource
function ConnectToATEM()
{
Try{
$ATEMipAddress = (Get-ItemProperty -path 'HKCU:\Software\Blackmagic Design\ATEM Software Control').ipAddress
$DocumentsPath = [Environment]::GetFolderPath("MyDocuments") + '\windowspowershell\SwitcherLib.dll'
add-type -path $DocumentsPath #'SwitcherLib.dll'
$Global:atem = New-Object SwitcherLib.Switcher($ATEMipAddress)