Skip to content

Instantly share code, notes, and snippets.

@tjamet
tjamet / keybase.md
Last active October 26, 2015 14:23

Keybase proof

I hereby claim:

  • I am tjamet on github.
  • I am thibo (https://keybase.io/thibo) on keybase.
  • I have a public key whose fingerprint is 447F ABDB F10E EE23 4EB0 6DD2 B334 F345 2D9A 6625

To claim this, I am signing this object:

@tjamet
tjamet / docker-haproxy-certbot.sh
Last active September 6, 2017 19:03
Create letsencrypt certificate
mkdir www letsencrypt lib
docker run --rm -p 80:9000 -v $PWD/www:/src -w /src python:alpine python -m http.server 9000
docker run -v $PWD/letsencrypt:/etc/letsencrypt -v $PWD/lib:/var/lib/letsencrypt -v $PWD/www:/var/www certbot/certbot certonly --webroot -w /var/www --domain ${domain}
cat ./letsencrypt/live/${domain}/fullchain.pem ./letsencrypt/live/${domain}/privkey.pem > cert.haproxy
@tjamet
tjamet / tls-http-server.go
Created April 13, 2018 18:57
TLS HTTP server using in-memory certificate
// From https://github.com/golang/go/blob/c0547476f342665514904cf2581a62135d2366c3/src/net/http/server.go#L3223
// tcpKeepAliveListener sets TCP keep-alive timeouts on accepted
// connections. It's used by ListenAndServe and ListenAndServeTLS so
// dead TCP connections (e.g. closing laptop mid-download) eventually
// go away.
type tcpKeepAliveListener struct {
*net.TCPListener
}
func (ln tcpKeepAliveListener) Accept() (c net.Conn, err error) {
@tjamet
tjamet / proxy-handler-factory.go
Last active November 10, 2022 10:15
http handler factory to proxy requests in go
func newProxyHandler(client *http.Client, backend *url.URL) http.Handler {
return http.HandlerFunc(func(ow http.ResponseWriter, r *http.Request) {
w := &loggedResponseWriter{ResponseWriter: ow}
defer func() {
log.Printf("%s %s %d %d Bytes", r.Method, r.URL.Path, w.code, w.size)
}()
req, err := http.NewRequest(r.Method, fmt.Sprintf("%s://%s", backend.Scheme, backend.Host), r.Body)
if err != nil {
log.Println("failed to call backend:", err.Error())
@tjamet
tjamet / Kubectl-oneliners.sh
Created January 16, 2020 16:14
Some tricks around Kubectl
# Create an AWS secret from a kubernetes one
kubectl get secret my-secret -o json | jq -r '.data | map_values(.| @base64d | fromjson)' |\
aws secretsmanager create-secret --name my-secret --secret-string file:///dev/stdin