Skip to content

Instantly share code, notes, and snippets.

defulmere /
Last active Jul 12, 2021
drupal and open social on opalstack
  1. Create a new MariaDB database and user at and make a note of the database name, database user name, and database user password.

  2. Create a new shell user at

  3. SSH to the new shell user and run the following commands:

    cd ~
    # install composer
    mkdir -p ~/bin
    wget -O composer-setup.php
    php74 composer-setup.php --install-dir=$HOME/bin --filename=composer
defulmere / gist:438b3cf94cc725c6a67e40888e1e280a
Last active May 25, 2021
colored bar graph of system load over time in terminal with atopsar
View gist:438b3cf94cc725c6a67e40888e1e280a
np=$( nproc ); atopsar -p | grep ":[0-9]\{2\}\s\+[0-9]" | awk '{printf("\n%s %6.2f ",$1, $5); for (i = 0; i<$5; i++) {if (i<'$np'*.7) {printf "\033[32m"} else if (i<'$np') {printf "\033[33m"} else {printf "\033[31m"}; printf("█")}; printf "\033[0m"}'; echo ""
defulmere /
Last active Jul 16, 2021
Nextcloud on Opalstack

HOWTO install Nextcloud on Opalstack

  1. In your Opalstack dashboard create a new "Nginx Proxy Port" application and attach it to a site with Let's Encrypt enabled on the site. Make a note of the app's name and port assignment, and the site domain.

  2. In your Opalstack dashboard create a new MariaDB database and user. Make a note of the DB name, DB user name, and password.

  3. SSH to your app's shell user and run the following commands:

    cd ~/apps/appname
    git clone -b opalstack
    cd userspace-fpm-installer
defulmere / github_post_recieve.php
Created Dec 7, 2020 — forked from cowboy/github_post_recieve.php
GitHub PHP webhook to auto-pull on repo push
View github_post_recieve.php
// Use in the "Post-Receive URLs" section of your GitHub repo.
if ( $_POST['payload'] ) {
shell_exec( 'cd /srv/www/git-repo/ && git reset --hard HEAD && git pull' );
defulmere /
Created Feb 27, 2020
Get a list of all cloudflare IPv4 addresses with python
import requests
from ipaddress import *
subnets = requests.get('').content.split()
for s in subnets:
subnet = IPv4Network(s.decode())
for h in subnet.hosts():
defulmere /
Last active Mar 30, 2021
How to override an old sqlite3 module with pysqlite3 in django
# first: pip install pysqlite3-binary
# then in
# these three lines swap the stdlib sqlite3 lib with the pysqlite3 package
import sys
sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')
'default': {

Keybase proof

I hereby claim:

  • I am defulmere on github.
  • I am defulmere ( on keybase.
  • I have a public key ASBZZcxbuMCre_b7oVVQdOToz5KHlPd_bdHCFK-QKHRa_Ao

To claim this, I am signing this object:

defulmere /
Last active Oct 8, 2020
replacement for WebFaction's built-in mail2script
#!/bin/env python
This is a replacement for WebFaction's built-in mail2script (which cannot
parse large messages > 5MB).
To use it: