Skip to content

Instantly share code, notes, and snippets.

View egg82's full-sized avatar

egg82

View GitHub Profile
@egg82
egg82 / proxmox_nvidia.md
Last active May 4, 2024 14:03
NVidia Proxmox + LXC

Proxmox

Find the proper driver at the NVidia website.

Note: Make sure to select "Linux 64-bit" as your OS

Hit the "Search" button.

@egg82
egg82 / seaweedfs_owncloud.md
Last active March 28, 2024 18:18
SeaweedFS + OwnCloud

A quick write-up on SeaweedFS + OwnCloud

This guide aims to take a look at a distributed, scalable SeaweedFS as a backend storage for an OwnCloud server. Why not NextCloud? Because NextCloud's S3 connector is outdated and not maintained, and won't work with SeaweedFS. Both OwnCloud and NextCloud have the same support and the same plugins. The only concern anyone has is some weird split that happened between the two years ago. It's fine.

This was a giant pain in the ass, but eventually I got it working. This is how.

Filesystem/Hardware

All servers start from fresh, clean installs of Ubuntu 18.04.3

This guide will use three seperate boxes (one master/OwnCloud and two slaves). I'm assuming there's spare, unformatted disks attached to the slaves. If not, ignore or change the section on mounting to fit your needs.

@egg82
egg82 / apt_cacher_ng.md
Last active January 22, 2024 08:15
AptCacherNg Apt Proxy Setup

More techniques - caching apt packages network-wide

This guide runs through setting up AptCacherNg on a proxy/server to provide apt caching to clients. The client proxy scripts allow for multiple proxies, and account for proxies being offline.

Note that, for obvious reasons, this only works on Debian-based machines (Ubuntu and derivatives as well).

Server (the cache/proxy)

Note: you will need port 3142 open to the clients using this cache/proxy

@egg82
egg82 / get.sh
Created February 21, 2023 16:30
#!/usr/bin/env bash
SOURCE=${BASH_SOURCE[0]}
while [ -L "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )
SOURCE=$(readlink "$SOURCE")
[[ $SOURCE != /* ]] && SOURCE=$DIR/$SOURCE # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )
#!/usr/bin/env bash
export INFO_ENABLED=true
export DEBUG_ENABLED=true
export TMP_DIR="/tmp/commander"
if [[ -d "${TMP_DIR}" ]]; then
rm -rf "${TMP_DIR}"
fi
mkdir -p "${TMP_DIR}"
#!/usr/bin/env bash
export LANG_VAR_NOT_SET="Variable {var} is not set."
export LANG_FROM_TYPE_NOT_RECOGNIZED="from type {type} not recognized."
#!/usr/bin/env bash
# https://stackoverflow.com/questions/51653450/show-call-stack-in-bash
stacktrace () {
local i=1 line file func
while read -r line func file < <(caller ${i}); do
echo >&2 "[${i}] ${file}:${line} ${func}()"
echo >&2 ">>> $(sed -n "${line}"p "${file}")"
((i++))
done
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKCrHoDSGJ1dj9QMj9AysdHAQhmNnNgah5IgTSOT74Ym eddsa-key-20221010
@egg82
egg82 / list.md
Last active June 7, 2022 03:45
Bukkit server guide & plugin list
@egg82
egg82 / hardening.md
Last active April 2, 2022 12:46
Basic server hardening techniques

Trust

As is outlined in this LiveOverflow video, trusting information is hard.

Note that I disagree with some of the key talking points in the video, as you will see later on in this guide.

My credentials, as of time of writing:

  • Security+ certified
  • Linux admin for over a decade
  • Professional Linux admin for about 6 years