Skip to content

Instantly share code, notes, and snippets.

View bozdoz's full-sized avatar
☠️
I may be dead

bozdoz bozdoz

☠️
I may be dead
View GitHub Profile
@bozdoz
bozdoz / docker-compose.yml
Created February 27, 2019 02:33
simple docker compose wordpress
version: '3.3'
services:
db:
image: mariadb
volumes:
- wp_db:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpass
@bozdoz
bozdoz / custom-css.css
Created April 19, 2019 01:39
Add Sidebar to WordPress Leaflet Map
/* close button is conflicting with my theme */
.leaflet-sidebar .close {
z-index: 1000;
}
@bozdoz
bozdoz / addMailDomain.sh
Created April 29, 2020 00:51
addMailDomain.sh
#!/bin/bash
sudo echo "*.$1" >> /etc/opendkim/TrustedHosts
sudo echo "mail._domainkey.$1 $1:mail:/etc/opendkim/keys/$1/mail.private" >> /etc/opendkim/KeyTable
sudo echo "*@$1 mail._domainkey.$1" >> /etc/opendkim/SigningTable
cd /etc/opendkim/keys
sudo mkdir $1
cd $1
sudo opendkim-genkey -s mail -d $1
sudo chown opendkim:opendkim mail.private
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
/**
* better typing replacement for array method .filter(Boolean)
*
* .filter(Boolean) filters out falsy values, but TypeScript is unaware
* .filter(filterTruthy) does the same but has a type guard.
*
* These examples have identical outputs with differing types
*
* ```
* [1, 2, 0, null].filter(Boolean) // (number | null)[]

Keybase proof

I hereby claim:

  • I am bozdoz on github.
  • I am bozdoz (https://keybase.io/bozdoz) on keybase.
  • I have a public key ASDKjWRTq9do63W2233q95XlkJO1zPt_ayQqRr5l92a7Gwo

To claim this, I am signing this object:

@bozdoz
bozdoz / README.md
Created September 1, 2020 01:42
Simple Traefik auto-discovery localhost Quick Start

Create a network for Traefik and any future containers to join:

docker network create web

Start up the traefik compose file:

docker-compose up -d

View the dashboard: http://localhost:8080

@bozdoz
bozdoz / robots.txt
Created November 10, 2020 04:05
robots.txt for nofollow noindex
User-agent: *
Disallow: /
@bozdoz
bozdoz / types.d.ts
Last active February 23, 2021 02:59
types.d.ts
// https://www.typescriptlang.org/play?#code/JYOwLgpgTgZghgYwgAgILIN4ChnLgIwQC5kQBXAW32h2QBMIYSBnMKUAc1o4AtgTyVGrgBWAawA2JAEoQEAeyh0APK3YgOAGlKVqUAHy0KIeQN3QA2gF0sAXyxYA9ACpnyAPIgJAT2QcIYMgADlDyQdBgwBDMyDChFMgAKsgA7jzQKABucBJkKMAx8jDIYN7hyADSyM6OWKXlnj7KidoV+sgAvMgACsAIYs3a2LgW3cigyGIQ3kVJViSJo1bIEAAekCB0MVUA-D3IAhCZNLYWUzPFiVaGTo7IEsAUwIFg8sjyXr6CesGh4VCRaJ1MooABCnQ8n2UqG032gNwUIFYJWiYBI4K6wzwhBIAEYAEwAZk03D4JAALABWABsJPsQA
/** Only get properties from T where value is of type K */
type Only<T, K> = Pick<T, {
[P in keyof T]: T[P] extends K ? P : never
}[keyof T]>
//
// Writable properties from an interface
//
@bozdoz
bozdoz / typedObjectKeys.ts
Created February 12, 2021 18:39
Typed Object Keys
/** Gets a typed array from Object.keys */
function typedObjectKeys<T extends Record<string, any>>(a: T) {
return Object.keys(a) as (keyof T)[];
}
export default typedObjectKeys;