Skip to content

Instantly share code, notes, and snippets.

View schtobia's full-sized avatar

Tobias Schmidl schtobia

View GitHub Profile
@schtobia
schtobia / tschroot
Last active June 6, 2025 04:30
Mount /tmp, /dev/pts, /dev/shm and /proc into chroot and change into chroot
#! /bin/sh
[ ! -d "$1" ] && echo "$1 is not a valid directory." && exit 1;
trap "umount \"${1}\"/tmp \"${1}\"/dev/null \"${1}\"/dev/pts \"${1}\"/dev/random \"${1}\"/dev/shm \"${1}\"/dev/urandom \"${1}\"/proc" EXIT INT TERM HUP PIPE &&
mount --bind /tmp "${1}/tmp" && \
mount --bind /dev/null "${1}/dev/null" && \
mount --bind /dev/pts "${1}/dev/pts" && \
mount --bind /dev/random "${1}/dev/random" && \
mount --bind /dev/shm "${1}/dev/shm" && \
mount --bind /dev/urandom "${1}/dev/urandom" && \
mount --bind /proc "${1}/proc" && \
@schtobia
schtobia / vscode.service
Created November 30, 2024 07:51
systemd service for vscode
[Unit]
After=network.target
[Service]
ExecStart=/home/schtobia/.local/bin/code tunnel
[Install]
WantedBy=default.target
# Install this file under $HOME/.config/systemd/user/vscode.service
@schtobia
schtobia / wslg-x11.service
Created July 26, 2024 11:50
systemd service for bind mounting the WSL X11 socket to /tmp/.X11-unix
# SPDX-License-Identifier: LGPL-2.1-or-later
#
[Install]
WantedBy=multi-user.target
[Unit]
Description=Mount WSL X11 socket
ConditionPathExists=/tmp/.X11-unix
ConditionPathExists=/mnt/wslg/.X11-unix
@schtobia
schtobia / nginx_client_cn_auth.conf
Last active August 22, 2023 11:18
CN-based client authentification with nginx. This emulates Apache's SSLRequire (%{SSL_CLIENT_S_DN_CN} in {"Really Me"})
map $ssl_client_s_dn $ssl_client_s_dn_cn {
default "";
~/CN=(?<CN>[^/]+) $CN;
}
server {
listen 80;
listen [::]:80;
listen 443 ssl;
@schtobia
schtobia / docker-compose.override.yml
Created June 2, 2023 10:59
docker-compose Override for mailcow
version: '2.1'
services:
nginx-mailcow:
labels:
traefik.enable: true
traefik.http.routers.moo.entrypoints: websecure
traefik.http.routers.moo.middlewares: commonSSLHeaders
traefik.http.routers.moo.rule: Host(`${ADDITIONAL_SERVER_NAMES}`)
traefik.htttp.routers.moo.tls: true

$2a$11$pDk8VFI6qoZ5ezpLHLYsS.eRyO4.JInB6Xp8JXLWUkPRB3rNsn/VG

@schtobia
schtobia / docker-compose.yml
Last active July 1, 2020 08:29
Motioneye docker-compose file
---
version: "3.7"
services:
motioneye:
image: ccrisan/motioneye:master-armhf
init: true
ports:
- "8081:8081"
- "80:8765"
environment:
@schtobia
schtobia / merge-pdfs.sh
Last active June 5, 2020 12:31
Merge PDFs with images in 300dpi
#! /bin/sh
[ "$#" -lt 2 ] && { echo "Usage: $0 <outputfile> <inputfile> ..."; exit 1; }
output_file="$1"
shift
gs -dBATCH -dNOPAUSE -dPDFSETTINGS=/prepress -sDEVICE=pdfwrite -o "$output_file" $@
#!/bin/bash
# Usage: debdiffconf.sh <filename>
# Produce on stdout, a diff of <filename> against the first installed Debian
# package found that provides it.
# Returns the exit code of diff if everything worked, 3 or 4 otherwise.
base_name=$(basename $0)
required=( apt-get apt-file diff dpkg-deb dpkg-query realpath)
@schtobia
schtobia / dex.md
Created May 29, 2018 09:08
Open .desktop files under bash
  1. check if dex is installed:

    vimes ~ » [ -x "$(which dex)" ] && echo "Dex is installed." || echo "Dex is not installed."
    Dex is not installed.
    vimes ~ » 
    
  2. so, install dex:

vimes ~ » sudo apt install dex