Skip to content

Instantly share code, notes, and snippets.

View yohangdev's full-sized avatar
🏠
Working from home

Yoga Hanggara yohangdev

🏠
Working from home
View GitHub Profile
@yohangdev
yohangdev / Dockerfile
Created May 7, 2021 16:54
Dockerfile PHP 8 & Newrelic Agent
FROM alpine:3.13
LABEL Maintainer="Yoga Hanggara <[email protected]>" \
Description="Lightweight Laravel app container with Nginx 1.18 & PHP-FPM 8 based on Alpine Linux."
ARG PHP_VERSION="8.0.2-r0"
# Install packages
RUN apk --no-cache add php8=${PHP_VERSION} php8-fpm php8-opcache php8-openssl php8-curl php8-phar php8-session \
php8-fileinfo php8-pdo php8-pdo_mysql php8-mysqli php8-mbstring php8-dom \
@yohangdev
yohangdev / README.md
Last active November 13, 2020 15:25
Docker Swarm with Traefik

Docker Swarm with Traefik Load Balancer/Reverse Proxy

Setup

$ export NODE_ID=$(docker info -f '{{.Swarm.NodeID}}')
$ docker network create --driver=overlay traefik-public
$ docker node update --label-add traefik-public.traefik-public-certificates=true $NODE_ID
$ docker stack deploy -c traefik.yml traefik

Traefik Dashboard: http://IP-ADDRESS:8080

@yohangdev
yohangdev / logging.php
Created November 11, 2020 03:50
Laravel Logging Stdout
<?php
use Monolog\Handler\NullHandler;
use Monolog\Handler\StreamHandler;
use Monolog\Handler\SyslogUdpHandler;
return [
/*
|--------------------------------------------------------------------------
@yohangdev
yohangdev / siege.md
Last active November 14, 2020 15:23
MacOS Set Limit Open/Max Files

macOS has only 16K ports available that won't be released until socket TIME_WAIT is passed. The default timeout for TIME_WAIT is 15 seconds. Consider reducing in case of available port bottleneck.

You can check whether this is a problem with netstat:

$ sysctl net.inet.tcp.msl
net.inet.tcp.msl: 15000

$ sudo sysctl -w net.inet.tcp.msl=1000
net.inet.tcp.msl: 15000 -&gt; 1000
@yohangdev
yohangdev / docker-swarm.sh
Last active September 17, 2020 17:20
Docker Swarm Test Connectivity
ufw disable
iptables -F
iptabels -L
docker system prune -a --volumes
docker swarm init --advertise-addr=192.168.168.169
docker network create --driver=overlay --attachable=true testnet
docker network create --driver=overlay --attachable=true --subnet 100.0.0.0/24 testnet
@yohangdev
yohangdev / arm.md
Created September 15, 2020 14:46 — forked from alexellis/arm.md
Test swarm connectivity

Regular PC / cloud architecture (64-bit)

See the snippets "guide.md" and "redis.md" below.

Swarm on a Raspberry Pi

If you're wanting to run Docker Swarm on your Raspberry Pi checkout these instructions:

@yohangdev
yohangdev / cleansing.sql
Created September 8, 2020 14:09
Cheatsheet for common data cleansing with mySQL (Phone Number, NIK, dsb)
SELECT * FROM table WHERE phone_number REGEXP '^\\+62';
UPDATE table
SET phone_number = REPLACE(phone_number, '+62', '0')
WHERE phone_number REGEXP '^\\+62';
#######
SELECT * FROM table WHERE phone_number REGEXP '-';
@yohangdev
yohangdev / mikrotik
Created June 7, 2020 15:03
Mikrotik using OpenDNS (bypass ISP Indihome transparent proxy/dns)
/ip firewall nat
add chain=dstnat protocol=udp dst-port=53 action=dst-nat to-addresses=208.67.222.222 to-ports=443 comment="OpenDNS"
add chain=dstnat protocol=udp dst-port=53 action=dst-nat to-addresses=208.67.220.220 to-ports=443 comment="OpenDNS"
@yohangdev
yohangdev / app.log
Created January 26, 2020 17:42
Golang: Logs, Fluentd, Kubernetes, ELK
{"appname":"foo-app","event_name":"EMPLOYEE_LIST","hostname":"staging-1","level":"info","msg":"List employees.","session":"1ce3f6v","time":"2020-01-26T13:25:17Z"}
{"appname":"foo-app","event_name":"EMPLOYEE_LIST","hostname":"staging-1","level":"info","msg":"List employees.","session":"1ce3f6v","time":"2020-01-26T13:25:17Z"}
{"time":"2020-01-26T13:25:17.52912267Z","id":"","remote_ip":"172.17.0.1","host":"192.168.99.100:32352","method":"GET","uri":"/employees","user_agent":"hey/0.0.1","status":200,"error":"","latency":2926374,"latency_human":"2.926374ms","bytes_in":0,"bytes_out":191}
{"time":"2020-01-26T13:25:17.529325311Z","id":"","remote_ip":"172.17.0.1","host":"192.168.99.100:32352","method":"GET","uri":"/employees","user_agent":"hey/0.0.1","status":200,"error":"","latency":5232626,"latency_human":"5.232626ms","bytes_in":0,"bytes_out":191}
{"appname":"foo-app","event_name":"EMPLOYEE_SHOW","hostname":"staging-1","level":"info","msg":"Show employee.","session":"1ce3f6v","time":"2020-01-26T17:41:00Z"}
{"time":"
@yohangdev
yohangdev / google_signin_onetap.js
Last active December 4, 2019 01:24
Google One-Tap Sign In (YOLO)
// <script src="https://smartlock.google.com/client"></script>
googleyolo.hint({
supportedAuthMethods: [
'https://accounts.google.com'
],
supportedIdTokenProviders: [{
uri: 'https://accounts.google.com',
clientId: 'CLIENT ID'
}]