Skip to content

Instantly share code, notes, and snippets.

View pkellner's full-sized avatar

Peter Kellner pkellner

View GitHub Profile
@pkellner
pkellner / models.md
Created December 3, 2024 02:28
Deployment Models in React Explained by ChatGPT

Your options represent different approaches to rendering and server-side involvement in a web application. Here's a breakdown of each approach:

1. CSR (Client-Side Rendering), no SSR

  • How it works: The browser downloads a JavaScript bundle, which is then executed on the client to render the UI.
  • Use case: Ideal for highly interactive, single-page applications (SPAs) where SEO is not a priority.
  • Pros:
    • Fast initial server response (just static HTML/JS).
    • Easier to scale as it reduces server-side load.
  • Cons:
  • Slower Time to Interactive (TTI) because rendering waits for JavaScript to load.
@pkellner
pkellner / docker-profile-grouped.sh
Last active October 17, 2024 15:13
dockerprofiler grouped (done with o1-preview)
#!/bin/sh
# Define group prefixes
groups="better-rules-com better-rules-net gmail-to-icloud-net coolify"
group_totals="0 0 0 0"
unassigned_total=0
# Create temporary files
stats_file=$(mktemp)
temp_file=$(mktemp)
@pkellner
pkellner / docker-perf.sh
Created October 16, 2024 12:44
docker-perf.sh
#!/bin/bash
# Capture the stats for all containers
docker stats --no-stream --format "{{.Container}} {{.Name}} {{.CPUPerc}} {{.MemUsage}}" > stats.txt
# Temporary file to store container info for sorting
temp_file=$(mktemp)
# Helper function to format running time
format_time() {
version: "3.9"
services:
mysqlsecure:
image: mysql:8.0
container_name: mysqlsecure
volumes:
- ./data:/var/lib/mysql
- ./certs:/etc/mysql/certs
environment:
version: "3.9"
services:
mysqlsecure:
image: mysql:8.0
container_name: mysqlsecure
volumes:
- ./data:/var/lib/mysql
- ./certs:/etc/mysql/certs
environment:
version: '3.8'
services:
changedetection:
labels:
- 'traefik.http.middlewares.<random_unique_name>.basicauth.users=test:$2y$12$ci.4U63YX83CwkyUrjqxAucnmi2xXOIlEF6T/KdP9824f1Rf1iyNG'
image: 'redis/redisinsight:latest'
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5540"]
interval: 30s
timeout: 10s
version: "3.9"
networks:
web:
external: true
services:
mysqlsecure:
image: mysql:8.0
container_name: mysqlsecure
version: '3.8'
services:
simpleweb:
image: 'yeasy/simple-web:latest'
restart: always
ports:
- '8095:80'
container_name: simpleweb
expose:
- 8095
services:
wg-easy:
environment:
- LANG=en
- WG_HOST=5.78.84.82
- 'WG_POST_DOWN=iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE'
- 'WG_POST_UP=iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE'
image: ghcr.io/wg-easy/wg-easy
container_name: wg-easy
volumes:
services:
wg-easy:
environment:
- LANG=en
- WG_HOST=5.78.84.82
- 'WG_POST_DOWN=iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE'
- 'WG_POST_UP=iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE'
image: ghcr.io/wg-easy/wg-easy
container_name: wg-easy
volumes: