UPDATE: apparently kernel difference may have a serious impact, so I'll redo the test from scratch.
Test performed with AOF enabled, fsync policy 1 second, allowing the rewrites to be triggered.
Command lines used:
#!/usr/bin/env bash | |
# | |
# Author: @nikolaizujev | |
# | |
# Big respect to @mholt6 for making Caddy | |
# | |
# This script is based on: | |
# - https://www.calhoun.io/building-caddy-server-from-source/ | |
# - https://g.liams.io/liam/simple-build-caddy.git | |
# |
This notes is written by Sheldon. You can find me with #iOSBySheldon in Github, Youtube, Facebook, etc.
Convert .mov/.MP4 to .gif
As a developer, I feel better to upload a short video when I create the pull request to show other viewers what I did in this PR. I tried .mov format directly got after finishing recording screen using Quicktime, however, gif offers preview in most web pages, and has smaller file size.
This is not limited to developer, anyone has this need can use this method to convert the files.
#!/bin/bash | |
START=$SECONDS | |
FILES=/var/www/vhosts/site.com/logs/access-2*.log | |
# Generate summary | |
goaccess /var/www/vhosts/site.com/logs/access.log --geoip-database /var/www/vhosts/site.com/logs/GeoIP.dat -o /var/www/vhosts/site.com/web/web/reports/summary.html | |
# Generate monthly reports | |
# -> Split logs |
#!/usr/bin/env python3 | |
# Start this script before you start NGINX, so it is ready and waiting for log data. | |
# You should start it in the background with & or run it from supervisord or something. | |
# If the port is above 1024, you can run this script as a non-root user (recommended). | |
# | |
# It listens for raw Syslog data over UDP, parses is, aggregates it, and writes | |
# it to a file every flush_interval seconds. The output file format looks like this: | |
# key<TAB>value | |
# Here is an example (note that the delimiter is actually TAB, not a space): |
#!/usr/bin/env python | |
""" | |
Warm the caches of your website by crawling each page defined in sitemap.xml. | |
To use, download this file and make it executable. Then run: | |
./cache-warmer.py --threads 4 --file /data/web/public/sitemap.xml -v | |
""" | |
import argparse | |
import multiprocessing.pool as mpool | |
import os.path | |
import re |
#!/bin/bash | |
if [ "$#" -ne 1 ] || [ "x$1" == "x" ] ; then | |
echo "Usage: $0 <sitemap.xml>" | |
exit 0; | |
fi | |
if [ ! -f "$1" ]; then | |
echo "Sitemap file $1 not found! Exit!" | |
exit 1 |
This gist assumes you are migrating an existing site for www.example.com — ideally WordPress — to a new server — ideally Ubuntu Server 16.04 LTS — and wish to enable HTTP/2 (backwards compatibile with HTTP/1.1) with always-on HTTPS, caching, compression, and more. Although these instructions are geared towards WordPress, they should be trivially extensible to other PHP frameworks, other FastCGI backends, and even non-FastCGI backends (using proxy
in lieu of fastcgi
in the terminal Caddyfile stanza).
Quickstart: Use your own naked and canonical domain names instead of example.com and www.example.com and customize the Caddyfile and VCL provided in this gist to your preferences!
These instructions target Varnish Cache 4.1, PHP-FPM 7.0, and Caddy 0.10. (I'm using MariaDB 10.1 as well, but that's not relevant to this guide.)
This document details a simple RPM build flow pattern used to build and host RPM artifacts for open source projects. The below is a visual summary of this flow.
In order to achieve this multiple tools and services are used. The services and their purpose in the flow is as listed below.
Service | Purpose |
---|---|
GitHub | As is the most common use for GitHub, it holds the build source code. In this case we hold only the spec files and related source files. All other sources, including project binaries/sources are retrieved at build time. |
Here are the simple steps needed to create a deployment from your local GIT repository to a server based on this in-depth tutorial.
You are developing in a working-copy on your local machine, lets say on the master branch. Most of the time, people would push code to a remote server like github.com or gitlab.com and pull or export it to a production server. Or you use a service like deepl.io to act upon a Web-Hook that's triggered that service.