updated 2024-09-20
Version 2409? (Build 16.0.17928.20148)
| #!/bin/bash | |
| # Install dependencies only for Docker. | |
| [[ ! -e /.dockerinit ]] && exit 0 | |
| set -xe | |
| # Update packages and install composer and PHP dependencies. | |
| apt-get update -yqq | |
| apt-get install git libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev phpunit -yqq |
sysctl -w fs.file-max=12000500
sysctl -w fs.nr_open=20000500
# Set the maximum number of open file descriptors
ulimit -n 20000000
# Set the memory size for TCP with minimum, default and maximum thresholds
sysctl -w net.ipv4.tcp_mem='10000000 10000000 10000000'This tutorial describes how to install TLS to a mail server consisting of Postfix and/or Dovecot by using Let's Encrypt certificates with automatic renewing and firewall management.
The system used for this tutorial was:
$ lsb_release -idrc
Distributor ID: Ubuntu| xstat() { | |
| for target in "${@}"; do | |
| inode=$(ls -di "${target}" | cut -d ' ' -f 1) | |
| fs=$(df "${target}" | tail -1 | awk '{print $1}') | |
| crtime=$(sudo debugfs -R 'stat <'"${inode}"'>' "${fs}" 2>/dev/null | | |
| grep -oP 'crtime.*--\s*\K.*') | |
| printf "%s\t%s\n" "${crtime}" "${target}" | |
| done | |
| } |
| # This is just a cheat sheet: | |
| # On production | |
| sudo -u postgres pg_dump database | gzip -9 > database.sql.gz | |
| # On local | |
| scp -C production:~/database.sql.gz | |
| dropdb database && createdb database | |
| gunzip < database.sql.gz | psql database |
| /** | |
| * Calculate the center/average of multiple GeoLocation coordinates | |
| * Expects an array of objects with .latitude and .longitude properties | |
| * | |
| * @url http://stackoverflow.com/a/14231286/538646 | |
| */ | |
| function averageGeolocation(coords) { | |
| if (coords.length === 1) { | |
| return coords[0]; | |
| } |
| # wget -O "/etc/X11/xorg.conf" https://gist.githubusercontent.com/unique1984/1d29e8caaf649546ff0bc07769b834af/raw/8140fc06dd02daae33ec7cae6aabcf6225c6dcd3/X11%2520Dummy%2520configuration.txt | |
| # This xorg configuration file will start a dummy X11 server. | |
| # move it to /etc/X11/xorg.conf | |
| # don't forget apt install xserver-xorg-video-dummy; | |
| # based on https://xpra.org/Xdummy.html | |
| Section "ServerFlags" | |
| Option "DontVTSwitch" "true" | |
| Option "AllowMouseOpenFail" "true" | |
| Option "PciForceNone" "true" |
| <?php | |
| require_once __DIR__.'/V8JsNodeModuleLoader_FileAccessInterface.php'; | |
| require_once __DIR__.'/V8JsNodeModuleLoader_NormalisePath.php'; | |
| /** | |
| * Simple Node.js module loader for use with V8Js PHP extension | |
| * | |
| * This class understands Node.js' node_modules/ directory structure | |
| * and can require modules/files from there. | |
| * |