Skip to content

Instantly share code, notes, and snippets.

@fabriziosalmi
fabriziosalmi / caddy-waf-suite.md
Last active January 9, 2025 22:30
Caddy WAF suite (caddy-mib, caddy-mlf, caddy-waf)

Caddy WAF suite

Caddyfile

{
	# Disable the admin API for security (optional)
	admin off

	# Disable automatic HTTPS for testing purposes
@fabriziosalmi
fabriziosalmi / caddywaf.go
Created January 3, 2025 10:54
4xx, 5xx error loop protection proposal
package caddywaf
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net"
"os"
"regexp"
@fabriziosalmi
fabriziosalmi / proxmox_configuration.md
Created November 29, 2024 17:29
proxmox configuration via yaml and python

Proxmox API Integration Guide

This repository demonstrates the use of the Proxmox API for programmatically managing Proxmox environments. By leveraging the API, you can efficiently handle Proxmox nodes, containers (LXC), and virtual machines (VMs) in a secure, scalable, and maintainable manner. This guide provides an example of automating tasks like LXC and VM creation using Python.


Features

  • Supports LXC and VM Management: Provision containers and VMs with detailed configurations.
  • Centralized Configuration: YAML-based configuration simplifies management of multiple hosts and nodes.
@fabriziosalmi
fabriziosalmi / generate_kickdrums.py
Created October 19, 2024 20:53
Generate 10000 Kick Drums
import numpy as np
import random
from scipy.io.wavfile import write
from scipy.signal import sawtooth, square
from pydub import AudioSegment, effects
import os
import hashlib
import librosa
from librosa.feature import mfcc
import concurrent.futures
# RAM Disk SSH Access Configuration
ram_disk:
enabled: true
mount_point: "/mnt/ramdisk"
size: "100M" # Adjust as necessary
permissions:
- "noexec" # Prevent execution of binaries
- "nosuid" # Disallow setting user IDs on files
- "nodev" # Disallow device files

Full Code Implementation

#!/bin/bash

# Load configuration from YAML (using yq to parse YAML)
CONFIG_FILE="/path/to/your/config.yaml"

# Function to get value from YAML
get_yaml_value() {
@fabriziosalmi
fabriziosalmi / httpd-error-analyzer.sh
Created August 26, 2024 08:23
httpd-error-analyzer.sh
#!/bin/bash
# Define the directory containing Apache error logs
LOG_DIR="/var/log/httpd/" # Adjust the path according to your configuration
# Define the temporary file path
TMP_DIR=$(mktemp -d)
TMP_LOG_FILE="$TMP_DIR/combined_error.log"
# Define the output file for the summary
@fabriziosalmi
fabriziosalmi / hello-world-docker-compose.yaml
Last active August 24, 2024 20:13
hello-world-docker-compose.yaml
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "88:80"
#!/bin/bash
# requirements: wget, sudo
VERSION=v4.9.6
BINARY=yq_linux_amd64
wget https://github.com/mikefarah/yq/releases/download/${VERSION}/${BINARY} -O yq
sudo mv yq /usr/local/bin/yq
sudo chmod +x /usr/local/bin/yq
@fabriziosalmi
fabriziosalmi / check_metrics.sh
Created July 22, 2024 13:33
Cloudflare Tunnels metrics display
#!/bin/bash
# Fetch metrics
metrics=$(curl -s http://127.0.0.1:60123/metrics)
# Define the metrics to be displayed
metric_names=(
"cloudflared_tcp_active_sessions"
"cloudflared_tunnel_active_streams"
"cloudflared_tunnel_ha_connections"