代理

1
export {http,https}_proxy="http://ip:port"
1
2
set http_proxy=http://ip:port
set https_proxy=http://ip:port

mariadb

debian

1
2
3
4
5
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
apt install mariadb-server
systemctl enable mariadb --now

mysql_secure_installation

/etc/mysql/mariadb.conf.d/10-custom.cnf

1
2
3
4
5
6
7
8
9
10
11
12
13
[mysqld]
skip-name-resolve=ON
performance_schema=ON
innodb_buffer_pool_size=512M
innodb_log_file_size=128M
innodb_log_buffer_size=256M

slow-query-log=1
slow-query-log-file=/var/log/mysql-slow.log
long_query_time=2

query_cache_type=ON
query_cache_size=256M

alpine

1
2
3
4
5
apk add mariadb mariadb-client
/etc/init.d/mariadb setup
rc-service mariadb start
rc-update add mariadb default
mariadb-secure-installation
1
2
3
4
5
6
7
8
CREATE DATABASE `database`;

CREATE USER 'user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON `database`.* TO 'user'@'%';

FLUSH PRIVILEGES;
1
2
show status like '%Qcache%';
show variables like "%query_cache%"

redis

debian

1
2
3
4
5
6
7
8
apt-get install lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list
apt-get update
apt-get install redis

systemctl enable redis-server --now

caddy

debian

1
2
3
4
5
6
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy
systemctl enable caddy --now

alpine

1
2
3
apk add caddy
rc-update add caddy
rc-service caddy restart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
(cors) {
@cors_preflight method OPTIONS
@cors header Origin {args.0}

handle @cors_preflight {
header Access-Control-Allow-Origin "{args.0}"
header Access-Control-Allow-Methods *
header Access-Control-Allow-Headers *
header Access-Control-Max-Age "3600"
respond "" 204
}

handle @cors {
header Access-Control-Allow-Origin "{args.0}"
header Access-Control-Expose-Headers *
}
}

import /data/conf/*.caddy

:80 {
root * /usr/share/caddy
file_server
}

domain.com {
encode zstd gzip
tls domain@email

import cors http://domain.com
reverse_proxy 127.0.0.1:6001

log {
output file /data/logs/domain.log
}
}

domain.com:80 {
encode zstd gzip

root * /data/www//dist
try_files {path} /index.html
file_server
}

reverse_proxy 127.0.0.1:4050 {
header_up X-Real-IP {remote}
handle_response {
header Access-Control-Allow-Origin *
header Access-Control-Allow-Methods *
header Access-Control-Allow-Headers *
header Access-Control-Max-Age 3600
copy_response
}
}

log {
output file /data/logs/log.log

format console {
time_format wall
time_local
}
}

handle_path /logs/* {
root * /data/www/logs/
file_server browse {
precompressed zstd br gzip
hide ".gitignore" "*.json" "supervisord*"
}
}

supervisor

debian

1
2
apt install supervisor
systemctl enable supervisor --now

alpine

1
2
3
4
apk add supervisor
rc-update add supervisord
rc-service supervisord restart
mkdir -p /etc/supervisor.d/

nodejs

1
2
3
4
5
6
curl -sS https://deb.nodesource.com/setup_lts.x | bash
apt install nodejs

npm config set registry https://registry.npmmirror.com

npm install -g pnpm

git

1
2
3
4
5
6
git config core.filemode false

git daemon --verbose --export-all --base-path=.
git clone git://127.0.0.1/file file

git clone ../base/file file

pake

1
2
pake http://domain.test --name domain --icon favicon_128.ico --fullscreen --always-on-top --installer-language zh-CN
pake http://domain-dev.test --name domain-dev --icon favicon_128.ico --installer-language zh-CN --debug

php

frankenphp

1
2
3
wget https://github.com/dunglas/frankenphp/releases/download/v1.3.1/frankenphp-linux-x86_64
chmod +x frankenphp-linux-x86_64
mv frankenphp-linux-x86_64 /usr/local/bin

/usr/local/bin/php

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env bash
args=("$@")
index=0
for i in "$@"
do
if [ "$i" == "-d" ]; then
unset 'args[$index]'
unset 'args[$index+1]'
fi
index=$((index+1))
done

/usr/local/bin/frankenphp php-cli ${args[@]}
1
frankenphp php-cli /usr/local/bin/composer  install --no-dev -vvv

composer

1
2
3
4
wget https://mirrors.tencent.com/composer/composer.phar
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
composer config -g repos.packagist composer https://mirrors.tencent.com/composer/
1
composer install --no-dev -vvv

laravel

1
php artisan key:generate

win

1
irm https://massgrave.dev/get | iex

alpine

1
RUN apk add name --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/
1
2
apk add openssh
rc-update add sshd

docker

install

debian

1
2
3
4
5
6
7
8
9
10
11
12
13
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update

apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

image

1
2
3
4
# save image
docker save puzzle9/image:latest | gzip > puzzle9_image-latest.tar.gz
# load image
gunzip -c puzzle9_image-latest.tar.gz | docker load

tar

1
2
3
4
5
6
# 解压
tar -xvf file

# 打包
tar -cvf file.tar files
tar -czvf file.tar.gz files