Skip to content

Instantly share code, notes, and snippets.

View kravietz's full-sized avatar

Paweł Krawczyk kravietz

View GitHub Profile
# Docker networking is messy and undocumented. Docker will create IP addresses and iptables at random times.
# This can be limited by using totally static IP addresses for network interfaces and avoiding the default network bridge.
# /etc/default/docker
# DOCKER_OPTS="--iptables=false --ipv6 --bip 172.16.0.1/16 --fixed-cidr 172.16.0.0/16 --fixed-cidr-v6 2a01:9000::/68"
# --bip is the host IP address of the docker0 interface
# --fixed-cidr is the CIDR subnet allocated to the docker0 interface (default network bridge)
# --fixed-cidr-v6 is the IPv6 CIDR allocated to docker0
# for IPv6 split your /64 delegated subnet into /68 subnets and allocate them to each docker-compose.yml subnet:
@kravietz
kravietz / nftables-host.conf
Last active June 15, 2023 07:23
Simple workstation nftables
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop
iifname lo accept
ct state established,related accept
# allow any incoming ICMP and ICMPv6
@kravietz
kravietz / sitemap-split.py
Created February 19, 2015 12:43
XML sitemap split into 50k chunks
#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import print_function
from gzip import GzipFile
import gzip
import sys
__author__ = 'Paweł Krawczyk'
@kravietz
kravietz / preload.py
Last active January 12, 2022 20:42
Resource hints (dns-prefetch, preload, prerender etc) middleware for Django. Includes automated resource discovery.
#!/usr/bin/python
# -*- coding: utf-8 -*-
from urllib.parse import urlparse
import codecs
from django.conf import settings
from django.utils.html_parser import HTMLParser
__author__ = 'Paweł Krawczyk'
#!/usr/bin/python3
# monitor a group of websites and email alerts
# cron task:
#
# */5 * * * * t=$(mktemp); if ! python3 /home/user/server-checks.py >$t; then mail email@example.com -s "Web check $(date)" <$t; fi; rm $t
# https://ipsec.pl/ True 0.7856874465942383
# sample output (only if errors detected, otherwise stays silent)
@kravietz
kravietz / minecraft.service
Created March 13, 2020 22:16
Hardened Minecraft systemd service
[Unit]
Description=Minecraft
Requires=local-fs.target network-online.target
After=local-fs.target network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/java -Xmx768M -Xms500M -jar minecraft_server.jar nogui
WorkingDirectory=/home/minecraft
User=minecraft
@kravietz
kravietz / scram-sha-256.txt
Last active January 21, 2020 14:25
Switch PostgreSQL 10 to new strong SCRAM-SHA-256 password authentication
postgres@tyler:~$ psql
psql (10.5 (Ubuntu 10.5-1.pgdg16.04+1))
Type "help" for help.
postgres=# show password_encryption;
password_encryption
---------------------
md5
(1 row)
@kravietz
kravietz / docker-ce.yml
Last active September 24, 2018 20:11
Installing Docker 18 using Ansible on Ubuntu
# taken from https://get.docker.com/
---
- apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
- apt_repository:
repo: 'deb https://apt.dockerproject.org/repo ubuntu-{{ansible_distribution_release}} main'
state: absent
- apt_repository:
@kravietz
kravietz / django-dnt.py
Last active January 12, 2018 11:25
DoNotTrack middleware for Django.
#!/usr/bin/python
# -*- coding: utf-8 -*-
from django.views.generic import TemplateView
__author__ = 'Paweł Krawczyk'
DNT_HEADER = 'HTTP_DNT'
class DoNotTrackMiddleware(object):