1313 lines
30 KiB
Bash
1313 lines
30 KiB
Bash
|
|
#!/usr/bin/env bash
|
|
# Bash wrappers for docker run commands
|
|
# Source: https://github.com/jessfraz/dotfiles/blob/master/.dockerfunc
|
|
|
|
export DOCKER_REPO_PREFIX=jess
|
|
|
|
#
|
|
# Helper Functions
|
|
#
|
|
dcleanup(){
|
|
local containers
|
|
mapfile -t containers < <(docker ps -aq 2>/dev/null)
|
|
docker rm "${containers[@]}" 2>/dev/null
|
|
local volumes
|
|
mapfile -t volumes < <(docker ps --filter status=exited -q 2>/dev/null)
|
|
docker rm -v "${volumes[@]}" 2>/dev/null
|
|
local images
|
|
mapfile -t images < <(docker images --filter dangling=true -q 2>/dev/null)
|
|
docker rmi "${images[@]}" 2>/dev/null
|
|
}
|
|
del_stopped(){
|
|
local name=$1
|
|
local state
|
|
state=$(docker inspect --format "{{.State.Running}}" "$name" 2>/dev/null)
|
|
|
|
if [[ "$state" == "false" ]]; then
|
|
docker rm "$name"
|
|
fi
|
|
}
|
|
rmctr(){
|
|
# shellcheck disable=SC2068
|
|
docker rm -f $@ 2>/dev/null || true
|
|
}
|
|
relies_on(){
|
|
for container in "$@"; do
|
|
local state
|
|
state=$(docker inspect --format "{{.State.Running}}" "$container" 2>/dev/null)
|
|
|
|
if [[ "$state" == "false" ]] || [[ "$state" == "" ]]; then
|
|
echo "$container is not running, starting it for you."
|
|
$container
|
|
fi
|
|
done
|
|
}
|
|
# creates an nginx config for a local route
|
|
nginx_config(){
|
|
server=$1
|
|
route=$2
|
|
|
|
cat >"${HOME}/.nginx/conf.d/${server}.conf" <<-EOF
|
|
upstream ${server} { server ${route}; }
|
|
server {
|
|
server_name ${server};
|
|
location / {
|
|
proxy_pass http://${server};
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade \$http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
proxy_set_header Host \$http_host;
|
|
proxy_set_header X-Forwarded-Proto \$scheme;
|
|
proxy_set_header X-Forwarded-For \$remote_addr;
|
|
proxy_set_header X-Forwarded-Port \$server_port;
|
|
proxy_set_header X-Request-Start \$msec;
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# restart nginx
|
|
docker restart nginx
|
|
|
|
# add host to /etc/hosts
|
|
hostess add "$server" 127.0.0.1
|
|
|
|
# open browser
|
|
browser-exec "http://${server}"
|
|
}
|
|
|
|
#
|
|
# Container Aliases
|
|
#
|
|
apt_file(){
|
|
docker run --rm -it \
|
|
--name apt-file \
|
|
${DOCKER_REPO_PREFIX}/apt-file
|
|
}
|
|
alias apt-file="apt_file"
|
|
audacity(){
|
|
del_stopped audacity
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
--device /dev/snd \
|
|
--group-add audio \
|
|
--name audacity \
|
|
${DOCKER_REPO_PREFIX}/audacity
|
|
}
|
|
aws(){
|
|
docker run -it --rm \
|
|
-v "${HOME}/.aws:/root/.aws" \
|
|
--log-driver none \
|
|
--name aws \
|
|
${DOCKER_REPO_PREFIX}/awscli "$@"
|
|
}
|
|
az(){
|
|
docker run -it --rm \
|
|
-v "${HOME}/.azure:/root/.azure" \
|
|
--log-driver none \
|
|
${DOCKER_REPO_PREFIX}/azure-cli "$@"
|
|
}
|
|
bees(){
|
|
docker run -it --rm \
|
|
-e NOTARY_TOKEN \
|
|
-v "${HOME}/.bees:/root/.bees" \
|
|
-v "${HOME}/.boto:/root/.boto" \
|
|
-v "${HOME}/.dev:/root/.ssh:ro" \
|
|
--log-driver none \
|
|
--name bees \
|
|
${DOCKER_REPO_PREFIX}/beeswithmachineguns "$@"
|
|
}
|
|
cadvisor(){
|
|
docker run -d \
|
|
--restart always \
|
|
-v /:/rootfs:ro \
|
|
-v /var/run:/var/run:rw \
|
|
-v /sys:/sys:ro \
|
|
-v /var/lib/docker/:/var/lib/docker:ro \
|
|
-p 1234:8080 \
|
|
--name cadvisor \
|
|
google/cadvisor
|
|
|
|
hostess add cadvisor "$(docker inspect --format '{{.NetworkSettings.Networks.bridge.IPAddress}}' cadvisor)"
|
|
browser-exec "http://cadvisor:8080"
|
|
}
|
|
cheese(){
|
|
del_stopped cheese
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v "${HOME}/Pictures:/root/Pictures" \
|
|
--device /dev/video0 \
|
|
--device /dev/snd \
|
|
--device /dev/dri \
|
|
--name cheese \
|
|
${DOCKER_REPO_PREFIX}/cheese
|
|
}
|
|
chrome(){
|
|
# add flags for proxy if passed
|
|
local proxy=
|
|
local map
|
|
local args=$*
|
|
if [[ "$1" == "tor" ]]; then
|
|
relies_on torproxy
|
|
|
|
map="MAP * ~NOTFOUND , EXCLUDE torproxy"
|
|
proxy="socks5://torproxy:9050"
|
|
args="https://check.torproject.org/api/ip ${*:2}"
|
|
fi
|
|
|
|
del_stopped chrome
|
|
|
|
# one day remove /etc/hosts bind mount when effing
|
|
# overlay support inotify, such bullshit
|
|
docker run -d \
|
|
--memory 3gb \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v "${HOME}/Downloads:/root/Downloads" \
|
|
-v "${HOME}/Pictures:/root/Pictures" \
|
|
-v "${HOME}/Torrents:/root/Torrents" \
|
|
-v "${HOME}/.chrome:/data" \
|
|
-v /dev/shm:/dev/shm \
|
|
-v /etc/hosts:/etc/hosts \
|
|
--security-opt seccomp:/etc/docker/seccomp/chrome.json \
|
|
--device /dev/snd \
|
|
--device /dev/dri \
|
|
--device /dev/video0 \
|
|
--device /dev/usb \
|
|
--device /dev/bus/usb \
|
|
--group-add audio \
|
|
--group-add video \
|
|
--name chrome \
|
|
${DOCKER_REPO_PREFIX}/chrome --user-data-dir=/data \
|
|
--proxy-server="$proxy" \
|
|
--host-resolver-rules="$map" "$args"
|
|
|
|
}
|
|
consul(){
|
|
if [[ -n "$(which consul)" ]]; then
|
|
"$(which consul)" "$@"
|
|
else
|
|
del_stopped consul
|
|
|
|
# check if we passed args and if consul is running
|
|
local state
|
|
state=$(docker inspect --format "{{.State.Running}}" consul 2>/dev/null)
|
|
if [[ "$state" == "true" ]] && [[ "$*" != "" ]]; then
|
|
docker exec -it consul consul "$@"
|
|
return 0
|
|
fi
|
|
|
|
docker run -d \
|
|
--restart always \
|
|
-v "${HOME}/.consul:/etc/consul.d" \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
--net host \
|
|
-e GOMAXPROCS=2 \
|
|
--name consul \
|
|
${DOCKER_REPO_PREFIX}/consul agent \
|
|
-bootstrap-expect 1 \
|
|
-config-dir /etc/consul.d \
|
|
-data-dir /data \
|
|
-encrypt "$(docker run --rm ${DOCKER_REPO_PREFIX}/consul keygen)" \
|
|
-ui-dir /usr/src/consul \
|
|
-server \
|
|
-dc neverland \
|
|
-bind 0.0.0.0
|
|
|
|
hostess add consul "$(docker inspect --format '{{.NetworkSettings.Networks.bridge.IPAddress}}' consul)"
|
|
browser-exec "http://consul:8500"
|
|
fi
|
|
}
|
|
cura(){
|
|
del_stopped cura
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v "${HOME}/cura:/root/cura" \
|
|
-v "${HOME}/.cache/cura:/root/.cache/cura" \
|
|
-v "${HOME}/.config/cura:/root/.config/cura" \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
--device /dev/dri \
|
|
--name cura \
|
|
${DOCKER_REPO_PREFIX}/cura
|
|
}
|
|
dcos(){
|
|
docker run -it --rm \
|
|
-v "${HOME}/.dcos:/root/.dcos" \
|
|
-v "$(pwd):/root/apps" \
|
|
-w /root/apps \
|
|
${DOCKER_REPO_PREFIX}/dcos-cli "$@"
|
|
}
|
|
figma() {
|
|
del_stopped figma
|
|
|
|
docker run --rm -it \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--name figma \
|
|
${DOCKER_REPO_PREFIX}/figma-wine bash
|
|
}
|
|
firefox(){
|
|
del_stopped firefox
|
|
|
|
docker run -d \
|
|
--memory 2gb \
|
|
--net host \
|
|
--cpuset-cpus 0 \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-v "${HOME}/.firefox/cache:/root/.cache/mozilla" \
|
|
-v "${HOME}/.firefox/mozilla:/root/.mozilla" \
|
|
-v "${HOME}/Downloads:/root/Downloads" \
|
|
-v "${HOME}/Pictures:/root/Pictures" \
|
|
-v "${HOME}/Torrents:/root/Torrents" \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
--device /dev/snd \
|
|
--device /dev/dri \
|
|
--name firefox \
|
|
${DOCKER_REPO_PREFIX}/firefox "$@"
|
|
|
|
# exit current shell
|
|
exit 0
|
|
}
|
|
fleetctl(){
|
|
docker run --rm -it \
|
|
--entrypoint fleetctl \
|
|
-v "${HOME}/.fleet://.fleet" \
|
|
r.j3ss.co/fleet "$@"
|
|
}
|
|
gcalcli(){
|
|
docker run --rm -it \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v "${HOME}/.gcalcli/home:/home/gcalcli/home" \
|
|
-v "${HOME}/.gcalcli/work/oauth:/home/gcalcli/.gcalcli_oauth" \
|
|
-v "${HOME}/.gcalcli/work/gcalclirc:/home/gcalcli/.gcalclirc" \
|
|
--name gcalcli \
|
|
${DOCKER_REPO_PREFIX}/gcalcli "$@"
|
|
}
|
|
dgcloud(){
|
|
docker run --rm -it \
|
|
-v "${HOME}/.gcloud:/root/.config/gcloud" \
|
|
-v "${HOME}/.ssh:/root/.ssh:ro" \
|
|
-v "$(command -v docker):/usr/bin/docker" \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
--name gcloud \
|
|
${DOCKER_REPO_PREFIX}/gcloud "$@"
|
|
}
|
|
gimp(){
|
|
del_stopped gimp
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v "${HOME}/Pictures:/root/Pictures" \
|
|
-v "${HOME}/.gtkrc:/root/.gtkrc" \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
--name gimp \
|
|
${DOCKER_REPO_PREFIX}/gimp
|
|
}
|
|
gitsome(){
|
|
docker run --rm -it \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
--name gitsome \
|
|
--hostname gitsome \
|
|
-v "${HOME}/.gitsomeconfig:/home/anon/.gitsomeconfig" \
|
|
-v "${HOME}/.gitsomeconfigurl:/home/anon/.gitsomeconfigurl" \
|
|
${DOCKER_REPO_PREFIX}/gitsome
|
|
}
|
|
hollywood(){
|
|
docker run --rm -it \
|
|
--name hollywood \
|
|
${DOCKER_REPO_PREFIX}/hollywood
|
|
}
|
|
htop(){
|
|
if [[ -n "$(which htop)" ]]; then
|
|
"$(which htop)" "$@"
|
|
else
|
|
docker run --rm -it \
|
|
--pid host \
|
|
--net none \
|
|
--name htop \
|
|
${DOCKER_REPO_PREFIX}/htop
|
|
fi
|
|
}
|
|
htpasswd(){
|
|
docker run --rm -it \
|
|
--net none \
|
|
--name htpasswd \
|
|
--log-driver none \
|
|
${DOCKER_REPO_PREFIX}/htpasswd "$@"
|
|
}
|
|
http(){
|
|
docker run -t --rm \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
--log-driver none \
|
|
${DOCKER_REPO_PREFIX}/httpie "$@"
|
|
}
|
|
imagemin(){
|
|
local image=$1
|
|
local extension="${image##*.}"
|
|
local filename="${image%.*}"
|
|
|
|
docker run --rm -it \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v "${HOME}/Pictures:/root/Pictures" \
|
|
${DOCKER_REPO_PREFIX}/imagemin sh -c "imagemin /root/Pictures/${image} > /root/Pictures/${filename}_min.${extension}"
|
|
}
|
|
irssi() {
|
|
del_stopped irssi
|
|
# relies_on notify_osd
|
|
|
|
docker run --rm -it \
|
|
--user root \
|
|
-v "${HOME}/.irssi:/home/user/.irssi" \
|
|
${DOCKER_REPO_PREFIX}/irssi \
|
|
chown -R user /home/user/.irssi
|
|
|
|
docker run --rm -it \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v "${HOME}/.irssi:/home/user/.irssi" \
|
|
--read-only \
|
|
--name irssi \
|
|
${DOCKER_REPO_PREFIX}/irssi
|
|
}
|
|
john(){
|
|
local file
|
|
file=$(realpath "$1")
|
|
|
|
docker run --rm -it \
|
|
-v "${file}:/root/$(basename "${file}")" \
|
|
${DOCKER_REPO_PREFIX}/john "$@"
|
|
}
|
|
kernel_builder(){
|
|
docker run --rm -it \
|
|
-v /usr/src:/usr/src \
|
|
-v /lib/modules:/lib/modules \
|
|
-v /boot:/boot \
|
|
--name kernel-builder \
|
|
${DOCKER_REPO_PREFIX}/kernel-builder
|
|
}
|
|
keypassxc(){
|
|
del_stopped keypassxc
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-v /usr/share/X11/xkb:/usr/share/X11/xkb:ro \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v /etc/machine-id:/etc/machine-id:ro \
|
|
--name keypassxc \
|
|
${DOCKER_REPO_PREFIX}/keepassxc
|
|
}
|
|
kicad(){
|
|
del_stopped kicad
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v "${HOME}/kicad:/root/kicad" \
|
|
-v "${HOME}/.cache/kicad:/root/.cache/kicad" \
|
|
-v "${HOME}/.config/kicad:/root/.config/kicad" \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
--device /dev/dri \
|
|
--name kicad \
|
|
${DOCKER_REPO_PREFIX}/kicad
|
|
}
|
|
kvm(){
|
|
del_stopped kvm
|
|
relies_on pulseaudio
|
|
|
|
# modprobe the module
|
|
modprobe kvm
|
|
|
|
docker run -d \
|
|
--tmpfs /var/run \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-v "${HOME}/kvm:/root/kvm" \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
--link pulseaudio:pulseaudio \
|
|
-e PULSE_SERVER=pulseaudio \
|
|
--group-add audio \
|
|
--name kvm \
|
|
--privileged \
|
|
${DOCKER_REPO_PREFIX}/kvm
|
|
}
|
|
libreoffice(){
|
|
del_stopped libreoffice
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v "${HOME}/slides:/root/slides" \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
--name libreoffice \
|
|
${DOCKER_REPO_PREFIX}/libreoffice
|
|
}
|
|
lpass(){
|
|
docker run --rm -it \
|
|
-v "${HOME}/.lpass:/root/.lpass" \
|
|
--name lpass \
|
|
${DOCKER_REPO_PREFIX}/lpass "$@"
|
|
}
|
|
lynx(){
|
|
if [[ -n "$(which lynx)" ]]; then
|
|
"$(which lynx)" "$@"
|
|
else
|
|
docker run --rm -it \
|
|
--name lynx \
|
|
${DOCKER_REPO_PREFIX}/lynx "$@"
|
|
fi
|
|
}
|
|
masscan(){
|
|
docker run -it --rm \
|
|
--log-driver none \
|
|
--net host \
|
|
--cap-add NET_ADMIN \
|
|
--name masscan \
|
|
${DOCKER_REPO_PREFIX}/masscan "$@"
|
|
}
|
|
mc(){
|
|
cwd="$(pwd)"
|
|
name="$(basename "$cwd")"
|
|
|
|
docker run --rm -it \
|
|
--log-driver none \
|
|
-v "${cwd}:/home/mc/${name}" \
|
|
--workdir "/home/mc/${name}" \
|
|
${DOCKER_REPO_PREFIX}/mc "$@"
|
|
}
|
|
mpd(){
|
|
del_stopped mpd
|
|
|
|
# adding cap sys_admin so I can use nfs mount
|
|
# the container runs as a unpriviledged user mpd
|
|
docker run -d \
|
|
--device /dev/snd \
|
|
--cap-add SYS_ADMIN \
|
|
-e MPD_HOST=/var/lib/mpd/socket \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /etc/exports:/etc/exports:ro \
|
|
-v "${HOME}/.mpd:/var/lib/mpd" \
|
|
-v "${HOME}/.mpd.conf:/etc/mpd.conf" \
|
|
--name mpd \
|
|
${DOCKER_REPO_PREFIX}/mpd
|
|
}
|
|
mutt(){
|
|
# subshell so we dont overwrite variables
|
|
(
|
|
local account=$1
|
|
export IMAP_SERVER
|
|
export SMTP_SERVER
|
|
|
|
if [[ "$account" == "riseup" ]]; then
|
|
export GMAIL=$MAIL_RISEUP
|
|
export GMAIL_NAME=$MAIL_RISEUP_NAME
|
|
export GMAIL_PASS=$MAIL_RISEUP_PASS
|
|
export GMAIL_FROM=$MAIL_RISEUP_FROM
|
|
IMAP_SERVER=mail.riseup.net
|
|
SMTP_SERVER=$IMAP_SERVER
|
|
fi
|
|
|
|
docker run -it --rm \
|
|
-e GMAIL \
|
|
-e GMAIL_NAME \
|
|
-e GMAIL_PASS \
|
|
-e GMAIL_FROM \
|
|
-e GPG_ID \
|
|
-e IMAP_SERVER \
|
|
-e SMTP_SERVER \
|
|
-v "${HOME}/.gnupg:/home/user/.gnupg:ro" \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
--name "mutt-${account}" \
|
|
${DOCKER_REPO_PREFIX}/mutt
|
|
)
|
|
}
|
|
ncmpc(){
|
|
del_stopped ncmpc
|
|
|
|
docker run --rm -it \
|
|
-v "${HOME}/.mpd/socket:/var/run/mpd/socket" \
|
|
-e MPD_HOST=/var/run/mpd/socket \
|
|
--name ncmpc \
|
|
${DOCKER_REPO_PREFIX}/ncmpc "$@"
|
|
}
|
|
neoman(){
|
|
del_stopped neoman
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--device /dev/bus/usb \
|
|
--device /dev/usb \
|
|
--name neoman \
|
|
${DOCKER_REPO_PREFIX}/neoman
|
|
}
|
|
nes(){
|
|
del_stopped nes
|
|
local game=$1
|
|
|
|
docker run -d \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--device /dev/dri \
|
|
--device /dev/snd \
|
|
--name nes \
|
|
${DOCKER_REPO_PREFIX}/nes "/games/${game}.rom"
|
|
}
|
|
netcat(){
|
|
docker run --rm -it \
|
|
--net host \
|
|
${DOCKER_REPO_PREFIX}/netcat "$@"
|
|
}
|
|
nginx(){
|
|
del_stopped nginx
|
|
|
|
docker run -d \
|
|
--restart always \
|
|
-v "${HOME}/.nginx:/etc/nginx" \
|
|
--net host \
|
|
--name nginx \
|
|
nginx
|
|
|
|
# add domain to hosts & open nginx
|
|
sudo hostess add jess 127.0.0.1
|
|
}
|
|
nmap(){
|
|
if [[ -n "$(which nmap)" ]]; then
|
|
"$(which nmap)" "$@"
|
|
else
|
|
docker run --rm -it \
|
|
--net host \
|
|
${DOCKER_REPO_PREFIX}/nmap "$@"
|
|
fi
|
|
}
|
|
notify_osd(){
|
|
del_stopped notify_osd
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
--net none \
|
|
-v /etc \
|
|
-v /home/user/.dbus \
|
|
-v /home/user/.cache/dconf \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--name notify_osd \
|
|
${DOCKER_REPO_PREFIX}/notify-osd
|
|
}
|
|
alias notify-send=notify_send
|
|
notify_send(){
|
|
relies_on notify_osd
|
|
local args=${*:2}
|
|
docker exec -i notify_osd notify-send "$1" "${args}"
|
|
}
|
|
now(){
|
|
docker run -it --rm \
|
|
-v "${HOME}/.now:/root/.now" \
|
|
-v "$(pwd):/usr/src/repo:ro" \
|
|
--workdir /usr/src/repo \
|
|
--log-driver none \
|
|
${DOCKER_REPO_PREFIX}/now "$@"
|
|
}
|
|
openscad(){
|
|
del_stopped openscad
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v "${HOME}/openscad:/root/openscad" \
|
|
-v "${HOME}/.config/OpenSCAD:/root/.config/OpenSCAD" \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
--device /dev/dri \
|
|
--name openscad \
|
|
${DOCKER_REPO_PREFIX}/openscad
|
|
}
|
|
opensnitch(){
|
|
del_stopped opensnitchd
|
|
del_stopped opensnitch
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
--net host \
|
|
--cap-add NET_ADMIN \
|
|
-v /etc/machine-id:/etc/machine-id:ro \
|
|
-v /var/run/dbus:/var/run/dbus \
|
|
-v /usr/share/dbus-1:/usr/share/dbus-1 \
|
|
-v "/var/run/user/$(id -u):/var/run/user/$(id -u)" \
|
|
-e DBUS_SESSION_BUS_ADDRESS \
|
|
-e XAUTHORITY \
|
|
-v "${HOME}/.Xauthority:$HOME/.Xauthority" \
|
|
-v /tmp:/tmp \
|
|
--name opensnitchd \
|
|
${DOCKER_REPO_PREFIX}/opensnitchd
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v /usr/share/X11:/usr/share/X11:ro \
|
|
-v /usr/share/dbus-1:/usr/share/dbus-1 \
|
|
-v /etc/machine-id:/etc/machine-id:ro \
|
|
-v /var/run/dbus:/var/run/dbus \
|
|
-v "/var/run/user/$(id -u):/var/run/user/$(id -u)" \
|
|
-e DBUS_SESSION_BUS_ADDRESS \
|
|
-e XAUTHORITY \
|
|
-v "${HOME}/.Xauthority:$HOME/.Xauthority" \
|
|
-e HOME \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
-e XDG_RUNTIME_DIR \
|
|
-v /etc/passwd:/etc/passwd:ro \
|
|
-v /etc/group:/etc/group:ro \
|
|
-v /tmp:/tmp \
|
|
-u "$(id -u)" -w "$HOME" \
|
|
--net host \
|
|
--name opensnitch \
|
|
${DOCKER_REPO_PREFIX}/opensnitch
|
|
}
|
|
osquery(){
|
|
rmctr osquery
|
|
|
|
docker run -d --restart always \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
-v /etc/os-release:/etc/os-release:ro \
|
|
--net host \
|
|
--ipc host \
|
|
--pid host \
|
|
-e OSQUERY_ENROLL_SECRET \
|
|
--name osquery \
|
|
--privileged \
|
|
${DOCKER_REPO_PREFIX}/osquery \
|
|
--verbose \
|
|
--enroll_secret_env=OSQUERY_ENROLL_SECRET \
|
|
--docker_socket=/var/run/docker.sock \
|
|
--host_identifier=hostname \
|
|
--tls_hostname="${OSQUERY_DOMAIN}" \
|
|
--enroll_tls_endpoint=/api/v1/osquery/enroll \
|
|
--config_plugin=tls \
|
|
--config_tls_endpoint=/api/v1/osquery/config \
|
|
--config_tls_refresh=10 \
|
|
--disable_distributed=false \
|
|
--distributed_plugin=tls \
|
|
--distributed_interval=10 \
|
|
--distributed_tls_max_attempts=3 \
|
|
--distributed_tls_read_endpoint=/api/v1/osquery/distributed/read \
|
|
--distributed_tls_write_endpoint=/api/v1/osquery/distributed/write \
|
|
--logger_plugin=tls \
|
|
--logger_tls_endpoint=/api/v1/osquery/log \
|
|
--logger_tls_period=10
|
|
}
|
|
pandoc(){
|
|
if [[ -n "$(which pandoc)" ]]; then
|
|
"$(which pandoc)" "$@"
|
|
else
|
|
local file=${*: -1}
|
|
local lfile
|
|
lfile=$(readlink -m "$(pwd)/${file}")
|
|
local rfile
|
|
rfile=$(readlink -m "/$(basename "$file")")
|
|
local args=${*:1:${#@}-1}
|
|
|
|
docker run --rm \
|
|
-v "${lfile}:${rfile}" \
|
|
-v /tmp:/tmp \
|
|
--name pandoc \
|
|
${DOCKER_REPO_PREFIX}/pandoc "${args}" "${rfile}"
|
|
fi
|
|
}
|
|
pivman(){
|
|
del_stopped pivman
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--device /dev/bus/usb \
|
|
--device /dev/usb \
|
|
--name pivman \
|
|
${DOCKER_REPO_PREFIX}/pivman
|
|
}
|
|
pms(){
|
|
del_stopped pms
|
|
|
|
docker run --rm -it \
|
|
-v "${HOME}/.mpd/socket:/var/run/mpd/socket" \
|
|
-e MPD_HOST=/var/run/mpd/socket \
|
|
--name pms \
|
|
${DOCKER_REPO_PREFIX}/pms "$@"
|
|
}
|
|
pond(){
|
|
del_stopped pond
|
|
relies_on torproxy
|
|
|
|
docker run --rm -it \
|
|
--net container:torproxy \
|
|
--name pond \
|
|
${DOCKER_REPO_PREFIX}/pond
|
|
}
|
|
privoxy(){
|
|
del_stopped privoxy
|
|
relies_on torproxy
|
|
|
|
docker run -d \
|
|
--restart always \
|
|
--link torproxy:torproxy \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-p 8118:8118 \
|
|
--name privoxy \
|
|
${DOCKER_REPO_PREFIX}/privoxy
|
|
|
|
hostess add privoxy "$(docker inspect --format '{{.NetworkSettings.Networks.bridge.IPAddress}}' privoxy)"
|
|
}
|
|
pulseaudio(){
|
|
del_stopped pulseaudio
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
--device /dev/snd \
|
|
-p 4713:4713 \
|
|
--restart always \
|
|
--group-add audio \
|
|
--name pulseaudio \
|
|
${DOCKER_REPO_PREFIX}/pulseaudio
|
|
}
|
|
rainbowstream(){
|
|
docker run -it --rm \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v "${HOME}/.rainbow_oauth:/root/.rainbow_oauth" \
|
|
-v "${HOME}/.rainbow_config.json:/root/.rainbow_config.json" \
|
|
--name rainbowstream \
|
|
${DOCKER_REPO_PREFIX}/rainbowstream
|
|
}
|
|
registrator(){
|
|
del_stopped registrator
|
|
|
|
docker run -d --restart always \
|
|
-v /var/run/docker.sock:/tmp/docker.sock \
|
|
--net host \
|
|
--name registrator \
|
|
gliderlabs/registrator consul:
|
|
}
|
|
remmina(){
|
|
del_stopped remmina
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
-v "${HOME}/.remmina:/root/.remmina" \
|
|
--name remmina \
|
|
--net host \
|
|
${DOCKER_REPO_PREFIX}/remmina
|
|
}
|
|
ricochet(){
|
|
del_stopped ricochet
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
--device /dev/dri \
|
|
--name ricochet \
|
|
${DOCKER_REPO_PREFIX}/ricochet
|
|
}
|
|
rstudio(){
|
|
del_stopped rstudio
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-v "${HOME}/fastly-logs:/root/fastly-logs" \
|
|
-v /dev/shm:/dev/shm \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
--device /dev/dri \
|
|
--name rstudio \
|
|
${DOCKER_REPO_PREFIX}/rstudio
|
|
}
|
|
s3cmdocker(){
|
|
del_stopped s3cmd
|
|
|
|
docker run --rm -it \
|
|
-e AWS_ACCESS_KEY="${DOCKER_AWS_ACCESS_KEY}" \
|
|
-e AWS_SECRET_KEY="${DOCKER_AWS_ACCESS_SECRET}" \
|
|
-v "$(pwd):/root/s3cmd-workspace" \
|
|
--name s3cmd \
|
|
${DOCKER_REPO_PREFIX}/s3cmd "$@"
|
|
}
|
|
scudcloud(){
|
|
del_stopped scudcloud
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v /etc/machine-id:/etc/machine-id:ro \
|
|
-v /var/run/dbus:/var/run/dbus \
|
|
-v "/var/run/user/$(id -u):/var/run/user/$(id -u)" \
|
|
-e TERM \
|
|
-e XAUTHORITY \
|
|
-e DBUS_SESSION_BUS_ADDRESS \
|
|
-e HOME \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
-v /etc/passwd:/etc/passwd:ro \
|
|
-v /etc/group:/etc/group:ro \
|
|
-u "$(whoami)" -w "$HOME" \
|
|
-v "${HOME}/.Xauthority:$HOME/.Xauthority" \
|
|
-v "${HOME}/.scudcloud:/home/jessie/.config/scudcloud" \
|
|
--device /dev/snd \
|
|
--name scudcloud \
|
|
${DOCKER_REPO_PREFIX}/scudcloud
|
|
|
|
# exit current shell
|
|
exit 0
|
|
}
|
|
shorewall(){
|
|
del_stopped shorewall
|
|
|
|
docker run --rm -it \
|
|
--net host \
|
|
--cap-add NET_ADMIN \
|
|
--privileged \
|
|
--name shorewall \
|
|
${DOCKER_REPO_PREFIX}/shorewall "$@"
|
|
}
|
|
skype(){
|
|
del_stopped skype
|
|
relies_on pulseaudio
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--link pulseaudio:pulseaudio \
|
|
-e PULSE_SERVER=pulseaudio \
|
|
--security-opt seccomp:unconfined \
|
|
--device /dev/video0 \
|
|
--group-add video \
|
|
--group-add audio \
|
|
--name skype \
|
|
${DOCKER_REPO_PREFIX}/skype
|
|
}
|
|
slack(){
|
|
del_stopped slack
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--device /dev/snd \
|
|
--device /dev/dri \
|
|
--device /dev/video0 \
|
|
--group-add audio \
|
|
--group-add video \
|
|
-v "${HOME}/.slack:/root/.config/Slack" \
|
|
--ipc="host" \
|
|
--name slack \
|
|
${DOCKER_REPO_PREFIX}/slack "$@"
|
|
}
|
|
spotify(){
|
|
del_stopped spotify
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
--security-opt seccomp:unconfined \
|
|
--device /dev/snd \
|
|
--device /dev/dri \
|
|
--group-add audio \
|
|
--group-add video \
|
|
--name spotify \
|
|
${DOCKER_REPO_PREFIX}/spotify
|
|
}
|
|
ssh2john(){
|
|
local file
|
|
file=$(realpath "$1")
|
|
|
|
docker run --rm -it \
|
|
-v "${file}:/root/$(basename "${file}")" \
|
|
--entrypoint ssh2john \
|
|
${DOCKER_REPO_PREFIX}/john "$@"
|
|
}
|
|
sshb0t(){
|
|
del_stopped sshb0t
|
|
|
|
if [[ ! -d "${HOME}/.ssh" ]]; then
|
|
mkdir -p "${HOME}/.ssh"
|
|
fi
|
|
|
|
if [[ ! -f "${HOME}/.ssh/authorized_keys" ]]; then
|
|
touch "${HOME}/.ssh/authorized_keys"
|
|
fi
|
|
|
|
GITHUB_USER=${GITHUB_USER:=jessfraz}
|
|
|
|
docker run --rm -it \
|
|
--name sshb0t \
|
|
-v "${HOME}/.ssh/authorized_keys:/root/.ssh/authorized_keys" \
|
|
r.j3ss.co/sshb0t \
|
|
--user "${GITHUB_USER}" --keyfile /root/.ssh/authorized_keys --once
|
|
}
|
|
steam(){
|
|
del_stopped steam
|
|
relies_on pulseaudio
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /etc/machine-id:/etc/machine-id:ro \
|
|
-v /var/run/dbus:/var/run/dbus \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-v "${HOME}/.steam:/home/steam" \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--link pulseaudio:pulseaudio \
|
|
-e PULSE_SERVER=pulseaudio \
|
|
--device /dev/dri \
|
|
--name steam \
|
|
${DOCKER_REPO_PREFIX}/steam
|
|
}
|
|
t(){
|
|
docker run -t --rm \
|
|
-v "${HOME}/.trc:/root/.trc" \
|
|
--log-driver none \
|
|
${DOCKER_REPO_PREFIX}/t "$@"
|
|
}
|
|
tarsnap(){
|
|
docker run --rm -it \
|
|
-v "${HOME}/.tarsnaprc:/root/.tarsnaprc" \
|
|
-v "${HOME}/.tarsnap:/root/.tarsnap" \
|
|
-v "$HOME:/root/workdir" \
|
|
${DOCKER_REPO_PREFIX}/tarsnap "$@"
|
|
}
|
|
telnet(){
|
|
docker run -it --rm \
|
|
--log-driver none \
|
|
${DOCKER_REPO_PREFIX}/telnet "$@"
|
|
}
|
|
termboy(){
|
|
del_stopped termboy
|
|
local game=$1
|
|
|
|
docker run --rm -it \
|
|
--device /dev/snd \
|
|
--name termboy \
|
|
${DOCKER_REPO_PREFIX}/nes "/games/${game}.rom"
|
|
}
|
|
terraform(){
|
|
if [[ -n "$(which terraform)" ]]; then
|
|
"$(which terraform)" "$@"
|
|
else
|
|
docker run -it --rm \
|
|
-v "${HOME}:${HOME}:ro" \
|
|
-v "$(pwd):/usr/src/repo" \
|
|
-v /tmp:/tmp \
|
|
--workdir /usr/src/repo \
|
|
--log-driver none \
|
|
-e GOOGLE_APPLICATION_CREDENTIALS \
|
|
-e SSH_AUTH_SOCK \
|
|
${DOCKER_REPO_PREFIX}/terraform "$@"
|
|
fi
|
|
}
|
|
tor(){
|
|
del_stopped tor
|
|
|
|
docker run -d \
|
|
--net host \
|
|
--name tor \
|
|
${DOCKER_REPO_PREFIX}/tor
|
|
|
|
# set up the redirect iptables rules
|
|
sudo setup-tor-iptables
|
|
|
|
# validate we are running through tor
|
|
browser-exec "https://check.torproject.org/"
|
|
}
|
|
torbrowser(){
|
|
del_stopped torbrowser
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
--device /dev/snd \
|
|
--name torbrowser \
|
|
${DOCKER_REPO_PREFIX}/tor-browser
|
|
|
|
# exit current shell
|
|
exit 0
|
|
}
|
|
tormessenger(){
|
|
del_stopped tormessenger
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
--device /dev/snd \
|
|
--name tormessenger \
|
|
${DOCKER_REPO_PREFIX}/tor-messenger
|
|
|
|
# exit current shell
|
|
exit 0
|
|
}
|
|
torproxy(){
|
|
del_stopped torproxy
|
|
|
|
docker run -d \
|
|
--restart always \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-p 9050:9050 \
|
|
--name torproxy \
|
|
${DOCKER_REPO_PREFIX}/tor-proxy
|
|
|
|
hostess add torproxy "$(docker inspect --format '{{.NetworkSettings.Networks.bridge.IPAddress}}' torproxy)"
|
|
}
|
|
traceroute(){
|
|
docker run --rm -it \
|
|
--net host \
|
|
${DOCKER_REPO_PREFIX}/traceroute "$@"
|
|
}
|
|
transmission(){
|
|
del_stopped transmission
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v "${HOME}/Torrents:/transmission/download" \
|
|
-v "${HOME}/.transmission:/transmission/config" \
|
|
-p 9091:9091 \
|
|
-p 51413:51413 \
|
|
-p 51413:51413/udp \
|
|
--name transmission \
|
|
${DOCKER_REPO_PREFIX}/transmission
|
|
|
|
|
|
hostess add transmission "$(docker inspect --format '{{.NetworkSettings.Networks.bridge.IPAddress}}' transmission)"
|
|
browser-exec "http://transmission:9091"
|
|
}
|
|
travis(){
|
|
docker run -it --rm \
|
|
-v "${HOME}/.travis:/root/.travis" \
|
|
-v "$(pwd):/usr/src/repo:ro" \
|
|
--workdir /usr/src/repo \
|
|
--log-driver none \
|
|
${DOCKER_REPO_PREFIX}/travis "$@"
|
|
}
|
|
virsh(){
|
|
relies_on kvm
|
|
|
|
docker run -it --rm \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /run/libvirt:/var/run/libvirt \
|
|
--log-driver none \
|
|
--net container:kvm \
|
|
${DOCKER_REPO_PREFIX}/libvirt-client "$@"
|
|
}
|
|
virtualbox(){
|
|
del_stopped virtualbox
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--privileged \
|
|
--name virtualbox \
|
|
${DOCKER_REPO_PREFIX}/virtualbox
|
|
}
|
|
virt_viewer(){
|
|
relies_on kvm
|
|
|
|
docker run -it --rm \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-v /run/libvirt:/var/run/libvirt \
|
|
-e PULSE_SERVER=pulseaudio \
|
|
--group-add audio \
|
|
--log-driver none \
|
|
--net container:kvm \
|
|
${DOCKER_REPO_PREFIX}/virt-viewer "$@"
|
|
}
|
|
alias virt-viewer="virt_viewer"
|
|
visualstudio(){
|
|
del_stopped visualstudio
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--device /dev/dri \
|
|
--name visualstudio \
|
|
${DOCKER_REPO_PREFIX}/vscode
|
|
}
|
|
alias vscode="visualstudio"
|
|
vlc(){
|
|
del_stopped vlc
|
|
relies_on pulseaudio
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
-e GDK_SCALE \
|
|
-e GDK_DPI_SCALE \
|
|
-e QT_DEVICE_PIXEL_RATIO \
|
|
--link pulseaudio:pulseaudio \
|
|
-e PULSE_SERVER=pulseaudio \
|
|
--group-add audio \
|
|
--group-add video \
|
|
-v "${HOME}/Torrents:/home/vlc/Torrents" \
|
|
--device /dev/dri \
|
|
--name vlc \
|
|
${DOCKER_REPO_PREFIX}/vlc
|
|
}
|
|
watchman(){
|
|
del_stopped watchman
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v "${HOME}/Downloads:/root/Downloads" \
|
|
--name watchman \
|
|
${DOCKER_REPO_PREFIX}/watchman --foreground
|
|
}
|
|
weematrix(){
|
|
del_stopped weematrix
|
|
|
|
docker run --rm -it \
|
|
--user root \
|
|
-v "${HOME}/.weechat:/home/user/.weechat" \
|
|
${DOCKER_REPO_PREFIX}/weechat-matrix \
|
|
chown -R user /home/user/.weechat
|
|
|
|
docker run --rm -it \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v "${HOME}/.weechat:/home/user/.weechat" \
|
|
-e "TERM=screen" \
|
|
--name weematrix \
|
|
${DOCKER_REPO_PREFIX}/weechat-matrix
|
|
}
|
|
weeslack(){
|
|
del_stopped weeslack
|
|
|
|
docker run --rm -it \
|
|
--user root \
|
|
-v "${HOME}/.weechat:/home/user/.weechat" \
|
|
${DOCKER_REPO_PREFIX}/wee-slack \
|
|
chown -R user /home/user/.weechat
|
|
|
|
docker run --rm -it \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v "${HOME}/.weechat:/home/user/.weechat" \
|
|
--name weeslack \
|
|
${DOCKER_REPO_PREFIX}/wee-slack
|
|
}
|
|
wg(){
|
|
docker run -i --rm \
|
|
--log-driver none \
|
|
-v /tmp:/tmp \
|
|
--cap-add NET_ADMIN \
|
|
--net host \
|
|
--name wg \
|
|
${DOCKER_REPO_PREFIX}/wg "$@"
|
|
}
|
|
wireshark(){
|
|
del_stopped wireshark
|
|
|
|
docker run -d \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
-e "DISPLAY=unix${DISPLAY}" \
|
|
--cap-add NET_RAW \
|
|
--cap-add NET_ADMIN \
|
|
--net host \
|
|
--name wireshark \
|
|
${DOCKER_REPO_PREFIX}/wireshark
|
|
}
|
|
wrk(){
|
|
docker run -it --rm \
|
|
--log-driver none \
|
|
--name wrk \
|
|
${DOCKER_REPO_PREFIX}/wrk "$@"
|
|
}
|
|
ykman(){
|
|
del_stopped ykman
|
|
|
|
if [[ -n "$(which ykman)" ]]; then
|
|
"$(which ykman)" "$@"
|
|
else
|
|
docker run --rm -it \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
--device /dev/usb \
|
|
--device /dev/bus/usb \
|
|
--name ykman \
|
|
${DOCKER_REPO_PREFIX}/ykman bash
|
|
fi
|
|
}
|
|
ykpersonalize(){
|
|
del_stopped ykpersonalize
|
|
|
|
if [[ -n "$(which ykpersonalize)" ]]; then
|
|
"$(which ykpersonalize)" "$@"
|
|
else
|
|
docker run --rm -it \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
--device /dev/usb \
|
|
--device /dev/bus/usb \
|
|
--name ykpersonalize \
|
|
${DOCKER_REPO_PREFIX}/ykpersonalize bash
|
|
fi
|
|
}
|
|
yubico_piv_tool(){
|
|
del_stopped yubico-piv-tool
|
|
|
|
if [[ -n "$(which yubico-piv-tool)" ]]; then
|
|
"$(which yubico-piv-tool)" "$@"
|
|
else
|
|
docker run --rm -it \
|
|
-v /etc/localtime:/etc/localtime:ro \
|
|
--device /dev/usb \
|
|
--device /dev/bus/usb \
|
|
--name yubico-piv-tool \
|
|
${DOCKER_REPO_PREFIX}/yubico-piv-tool bash
|
|
fi
|
|
}
|
|
alias yubico-piv-tool="yubico_piv_tool"
|