Skip to content

Instantly share code, notes, and snippets.

Flavoured for a Debian 10 IPA-joined web server, and based on these pages from the FreeIPA wiki:

Install pre-requisites

# Install pre-requisites
sudo apt install libapache2-mod-authnz-pam libapache2-mod-auth-kerb libapache2-mod-auth-gssapi

# libapache2-mod-nss isn't packaged for Buster for some reason, but oldstable package works fine:
html {
cursor: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+AKHQAJD3MugBkAAAB5SURBVDjLpVNBDsAgCCuGQ///Wg4m7KKGmG0qknCBUAoFsWqOC1MAoDJVbNVQsp2tGqgUzRQ21jJGOO0aYwWXdgRAJWbVjhnMIKkRIkh6Bx3k+g7KW6JrvSVnm8UBeFxOjEffVoFKmZm8HdLo9PWVqzysmq9e+i//APQoZfbgyIqBAAAAAElFTkSuQmCC'), auto;
}
.scrollable {
border: 14px solid #5f9ea0;
border-image-source: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAApCAIAAADLfmfbAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4goaByox2bZl5AAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAA2UlEQVR42u3dMQqCUBjA8c/oQN2kjhM4C23doNkxJ+9QS4OOzZ2hreHREBg21EPj95sF5eGfT3nDK9quj6f6dI4hl+YYEffrLYDf29eH0R6ThcWC+RIwCBgQMCBgEDAgYEDAgIBBwICAAQGDgAEBAwIGBAwCBgQMCBgQMAgYEDAgYBAwIGBAwMCI5eeXpuMeABMYyDWBV+tNvD9q6VvSkU27qspwL/iP99MEBp/QgIABAYOAAQEDAgYGvOwDp52uKZjOk8CU308TGGasaLs+IrZlaS3APzCQzwMIpytnJp1AMAAAAABJRU5ErkJggg==');
border-image-slice: 0 14 14 14;
border-top: 0;
}
#!/usr/bin/env python3
from flask import Flask, Response, abort, request
from PIL import Image
import requests
try:
from StringIO import BytesIO
except ImportError:
from io import BytesIO
from kivy.app import App
from kivy.clock import Clock
from kivy.uix.widget import Widget
from kivy.graphics import Color, Line
import random, time
import queue, threading
class FFTGraph(Widget):
def draw_graph(self, dt):
try: