Skip to content

Instantly share code, notes, and snippets.

Automating workflows.

Seth Carstens scarstens

Automating workflows.
View GitHub Profile
scarstens / Dockerfile
Created Apr 10, 2022
Dockerfile for production deploys
View Dockerfile
# Double-container Dockerfile for separated build process.
# If you're just copy-pasting this, don't forget a .dockerignore!
# We're starting with the same base image, but we're declaring
# that this block outputs an image called DEPS that we
# won't be deploying - it just installs our npm deps
FROM node:14-alpine AS deps
# If you need libc for any of your deps, uncomment this line:
# RUN apk add --no-cache libc6-compat
View nodemailer-smpt-connection-test.mjs
// Make sure you run this file from the project root
// or use `npm run email`
import nodemailer from "nodemailer";
import * as dotenv from "dotenv";
import path from "path";
// path: path.resolve(path.basename(path.dirname(process.cwd())), ".env"),
"Setup email config: ",
View react-query-param-cap-firstletter.js
import { useRouter } from "next/router";
const function getAssetTypeFirstLetterUppercase(){
const { query } = useRouter();
// Format first letter to be capitalized
const assetType = query?.type
? query?.type[0].toUpperCase() + query?.type.slice(1)
: undefined;
scarstens / timer.class.php
Created Sep 18, 2012
PHP Benchmark Timer
View timer.class.php
$timer = new timer(1); // constructor starts the timer, so no need to do it ourselves
... mysql query ...
$query_time = $timer->get();
... page processing ...
scarstens / wordpress.different-langauges.php
Created Apr 28, 2014
Setup different languages for WordPress admin and front end
View wordpress.different-langauges.php
// setup one language for admin and the other for theme
// must be called before load_theme_textdomain()
function set_my_locale($locale) {
$locale = ( is_admin() ) ? "en_US" : "it_IT";
setlocale(LC_ALL, $local );
return $locale;
add_filter( 'locale', 'set_my_locale' );
scarstens /
Last active Mar 26, 2019
Lando Initializer
lando init --recipe=wordpress --webroot=. --option via=nginx --option php=7.2 --option database=mariadb --option xdebug=true --source=cwd --name=osp
lando start
lando wp core download
lando wp config create --dbname=wordpress --dbuser=wordpress --dbpass=wordpress
lando wp core install --quiet --admin_email="" --title="LandoSite" --admin_user=admin --admin_password=password --url=
lando wp theme delete twentythirteen ; lando wp theme delete twentyfourteen; lando wp theme delete twentyfifteen; lando wp theme delete twentysixteen; lando wp plugin delete hello; lando wp plugin delete akismet;;
scarstens / vvv-nginx-image-fallback-prod.conf
Created Jun 21, 2018
Nginx configuration based on FanSided's local development shows has to setup nginx fallback for images that exist in production, so that you don't need to download them locally.
View vvv-nginx-image-fallback-prod.conf
#matches all .dev TLDs
log_format main 'MAIN: $remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';
log_format wpc 'WPCONTENT: $remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';
log_format PROXY 'PROXY: $remote_addr - $remote_user [$time_local] '
scarstens / sunrise.php
Created Aug 23, 2017
View sunrise.php
if (!empty($_SERVER['HTTP_HOST']))
$site = get_site_by_path(strtolower($_SERVER['HTTP_HOST']), '/');
define('COOKIE_DOMAIN', '.'.$site->domain);
scarstens / class-an-injected-network-site-option.php
Created Jan 11, 2017
Site option example of injecting new section and fields into existing sm_options_page or sm_options_container from the fansided-vip plugin
View class-an-injected-network-site-option.php
* Plugin Name: an-injected-network-site-option
* Description: Site option example of injecting new section and fields into existing sm_options_page or sm_options_container from the fansided-vip plugin
* Plugin URI:
* Author: sethcarstens
* Author URI:
* Version: 0.0.1
* Text Domain: fs
* License: GPLv2 or later