HistoryPurge
This commit is contained in:
commit
5febeb6fd9
12
LICENSE
Normal file
12
LICENSE
Normal file
@ -0,0 +1,12 @@
|
||||
BSD Zero Clause License
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
8
README.md
Normal file
8
README.md
Normal file
@ -0,0 +1,8 @@
|
||||
Collection of Dockerfiles
|
||||
|
||||
## docker on macvlan
|
||||
On Linux, docker macvlan driver can be used to simplify routing. To create a macvlan network:
|
||||
|
||||
```bash
|
||||
docker network create -d macvlan --subnet=192.168.86.0/24 --ip-range=192.168.86.96/27 --gateway=192.168.86.1 -o parent=enp7s0f1 macvlan
|
||||
```
|
10
alpine/adminer/Dockerfile
Normal file
10
alpine/adminer/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="adminer on alpine"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
ENV container docker
|
||||
RUN apk update; apk add bash tini php8-pdo_mysql php8-fpm nginx php8-session supervisor
|
||||
RUN mkdir -p /var/www/html /etc/supervisor.d
|
||||
COPY nginx-default.conf /etc/nginx/http.d/default.conf
|
||||
RUN wget https://github.com/vrana/adminer/releases/download/v4.8.1/adminer-4.8.1-mysql-en.php -O /var/www/html/adminer.php
|
||||
COPY run.ini /etc/supervisor.d/run.ini
|
||||
CMD ["/usr/bin/supervisord", "-n"]
|
19
alpine/adminer/nginx-default.conf
Normal file
19
alpine/adminer/nginx-default.conf
Normal file
@ -0,0 +1,19 @@
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
root /var/www/html;
|
||||
|
||||
# You may need this to prevent return 404 recursion.
|
||||
location = /404.html {
|
||||
internal;
|
||||
}
|
||||
|
||||
location ~ [^/]\.php(/|$) {
|
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||
fastcgi_param HTTP_PROXY "";
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_index index.php;
|
||||
include fastcgi_params;
|
||||
}
|
||||
}
|
10
alpine/adminer/run.ini
Normal file
10
alpine/adminer/run.ini
Normal file
@ -0,0 +1,10 @@
|
||||
[program:nginx]
|
||||
command=/usr/sbin/nginx -g 'daemon off;'
|
||||
autostart=true
|
||||
autorestart=true
|
||||
|
||||
[program:phpfpm]
|
||||
command=/usr/sbin/php-fpm8 -F
|
||||
autostart=true
|
||||
autorestart=true
|
||||
|
9
alpine/aliyuncli/Dockerfile
Normal file
9
alpine/aliyuncli/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
# aliyuncli requires python2
|
||||
FROM alpine:3.10
|
||||
ENV container docker
|
||||
RUN apk update; apk upgrade; apk add py2-pip jq bash gcc libc-dev python2-dev libffi-dev rust cargo openssl-dev py2-cryptography sqlite
|
||||
RUN pip install aliyuncli aliyun-python-sdk-ecs aliyun-python-sdk-nas aliyun-python-sdk-ram aliyun-python-sdk-slb aliyun-python-sdk-rds
|
||||
COPY get-instances.sh /root/get-instances.sh
|
||||
COPY ec2-matching.sh /root/ec2-matching.sh
|
||||
RUN chmod 755 /root/*.sh
|
||||
ENTRYPOINT ["/bin/bash"]
|
17
alpine/aliyuncli/README.md
Normal file
17
alpine/aliyuncli/README.md
Normal file
@ -0,0 +1,17 @@
|
||||
# Authentication
|
||||
```
|
||||
$ aliyuncli configure
|
||||
Aliyun Access Key ID [None]:
|
||||
Aliyun Access Key Secret [None]:
|
||||
Default Region Id [None]: cn-hongkong
|
||||
Default output format [None]:
|
||||
```
|
||||
|
||||
# Sample usage
|
||||
/root/get-instances.sh
|
||||
|
||||
# More aliyuncli usage
|
||||
```
|
||||
aliyuncli ecs DescribeInstances --MaxResults 100 | jq -cr '.Instances.Instance[] | [.InstanceName,.InstanceType,.CpuOptions.CoreCount,.Memory,.OSType,.InstanceId,.OSNameEn,.ZoneId] | @csv'
|
||||
aliyuncli ecs DescribeDisks --MaxResults 200 | jq -cr '.Disks.Disk[] | [.InstanceId, .Size, .ZoneId] | @csv'
|
||||
```
|
33
alpine/aliyuncli/ec2-matching.sh
Normal file
33
alpine/aliyuncli/ec2-matching.sh
Normal file
@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
cat <<EOF > /tmp/ec2-raw.txt
|
||||
m5.large 2 8
|
||||
m5.xlarge 4 16
|
||||
m5.2xlarge 8 32
|
||||
m5.4xlarge 16 64
|
||||
m5.8xlarge 32 128
|
||||
c5.large 2 4
|
||||
c5.xlarge 4 8
|
||||
c5.2xlarge 8 16
|
||||
c5.4xlarge 16 32
|
||||
c5.9xlarge 36 72
|
||||
c5.12xlarge 48 96
|
||||
r5.large 2 16
|
||||
r5.xlarge 4 32
|
||||
r5.2xlarge 8 64
|
||||
r5.4xlarge 16 128
|
||||
r5.8xlarge 32 256
|
||||
EOF
|
||||
|
||||
if [ ! -f ec2-size-match.db ]; then
|
||||
echo "create table instances(instance varchar(30), cpu int, ram int)" | sqlite3 ec2-size-match.db
|
||||
cat /tmp/ec2-raw.txt | while read a b c; do
|
||||
echo "insert into instances values(\"$a\", \"$b\", \"$c\");" | sqlite3 ec2-size-match.db
|
||||
done
|
||||
fi
|
||||
|
||||
RESULT=$(echo "select instance from instances where cpu = \"$1\" and ram = \"$2\";" | sqlite3 ec2-size-match.db)
|
||||
if [ -z "$RESULT" ]; then
|
||||
echo manual-match
|
||||
else
|
||||
echo $RESULT
|
||||
fi
|
15
alpine/aliyuncli/get-instances.sh
Normal file
15
alpine/aliyuncli/get-instances.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
echo "InstanceName","InstanceSize","vcpu","ram","OS","InstanceId","OSVersion","Location","TotalDiskSize","MatchingEC2"
|
||||
aliyuncli ecs DescribeInstances --MaxResults 100 | \
|
||||
jq -cr '.Instances.Instance[] | [.InstanceName,.InstanceType,.Cpu,.Memory,.OSType,.InstanceId,.OSNameEn,.ZoneId] | @csv' \
|
||||
> /tmp/instances.csv
|
||||
aliyuncli ecs DescribeDisks --MaxResults 200 | jq -cr '.Disks.Disk[] | [.Size,.InstanceId] | @csv' > /tmp/disks.csv
|
||||
cat /tmp/instances.csv | while read l; do
|
||||
i=$(echo $l | awk -F, '{print $6}')
|
||||
DISK=$(grep $i /tmp/disks.csv | awk -F, '{SUM+=$1}; END {print SUM}')
|
||||
CPU=$(echo $l | awk -F, '{print $3}')
|
||||
RAM=$(echo $l | awk -F, '{print $4/1024}')
|
||||
echo -n "$l,$DISK,"
|
||||
./ec2-matching.sh $CPU $RAM
|
||||
done
|
||||
|
7
alpine/azcli/Dockerfile
Normal file
7
alpine/azcli/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
||||
FROM alpine:latest
|
||||
ENV container docker
|
||||
RUN apk update; apk add python3 py3-apipkg gcc python3-dev linux-headers libffi libffi-dev py3-cffi musl-dev openssl-dev jq make bash
|
||||
RUN pip3 install azure-cli
|
||||
ENV PS1 "azcli-2.0.80 $ "
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
|
1
alpine/azcli/build.sh
Executable file
1
alpine/azcli/build.sh
Executable file
@ -0,0 +1 @@
|
||||
docker build --network macvlan -t alpine/azcli .
|
10
alpine/dante/Dockerfile
Normal file
10
alpine/dante/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="Dante socks5 server"
|
||||
LABEL maintainer="xpk@headdesk.me"
|
||||
ENV container docker
|
||||
RUN apk update; apk add tini dante-server dante
|
||||
#RUN addgroup -g 3000 ctnuser && adduser -u 3000 -G ctnuser -D ctnuser
|
||||
#USER ctnuser
|
||||
COPY sockd.conf /etc/sockd.conf
|
||||
ENTRYPOINT ["/sbin/tini", "--"]
|
||||
CMD ["/usr/sbin/sockd"]
|
2
alpine/dante/build.sh
Executable file
2
alpine/dante/build.sh
Executable file
@ -0,0 +1,2 @@
|
||||
export DOCKER_BUILDKIT=1
|
||||
docker build --network host -t alpine/dante .
|
2
alpine/dante/restart.sh
Executable file
2
alpine/dante/restart.sh
Executable file
@ -0,0 +1,2 @@
|
||||
docker rm -f sockd
|
||||
./start.sh
|
30
alpine/dante/sockd.conf
Normal file
30
alpine/dante/sockd.conf
Normal file
@ -0,0 +1,30 @@
|
||||
# logoutput: stdout
|
||||
errorlog: stderr
|
||||
|
||||
#user.privileged: root
|
||||
user.unprivileged: nobody
|
||||
|
||||
# The listening network interface or address.
|
||||
internal: 0.0.0.0 port=11080
|
||||
|
||||
# The proxying network interface or address.
|
||||
external: eth0
|
||||
|
||||
# socks-rules determine what is proxied through the external interface.
|
||||
# The default of "none" permits anonymous access.
|
||||
socksmethod: none
|
||||
|
||||
# client-rules determine who can connect to the internal interface.
|
||||
# The default of "none" permits anonymous access.
|
||||
clientmethod: none
|
||||
|
||||
client pass {
|
||||
from: 192.168.86.0/24 to: 0.0.0.0/0
|
||||
log: connect disconnect error
|
||||
}
|
||||
|
||||
socks pass {
|
||||
from: 192.168.86.0/24 to: 0.0.0.0/0
|
||||
log: connect disconnect error
|
||||
}
|
||||
|
2
alpine/dante/start.sh
Executable file
2
alpine/dante/start.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
docker run -d --name sockd --network macvlan --cpus 2 --memory 1g --restart always --ip 192.168.86.18 alpine/dante
|
10
alpine/ebcli/Dockerfile
Normal file
10
alpine/ebcli/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="AWS ebcli on Alpine"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
ENV container docker
|
||||
RUN apk add python openssl wget curl git bash gcc make musl-dev zlib-dev libffi-dev bzip2-dev openssl-dev readline-dev
|
||||
RUN git clone https://github.com/aws/aws-elastic-beanstalk-cli-setup.git
|
||||
RUN ./aws-elastic-beanstalk-cli-setup/scripts/bundled_installer
|
||||
RUN /root/.pyenv/versions/3.7.2/bin/pip install awscli
|
||||
ENV PATH="/root/.ebcli-virtual-env/executables:/root/.pyenv/versions/3.7.2/bin:$PATH"
|
||||
CMD ["/bin/bash"]
|
10
alpine/ebcli/Dockerfile-new
Normal file
10
alpine/ebcli/Dockerfile-new
Normal file
@ -0,0 +1,10 @@
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
LABEL description="AWS ebcli on Alpine"
|
||||
FROM alpine:latest
|
||||
ENV container docker
|
||||
RUN apk add python openssl wget curl git bash gcc make musl-dev zlib-dev libffi-dev bzip2-dev openssl-dev readline-dev
|
||||
RUN git clone https://github.com/aws/aws-elastic-beanstalk-cli-setup.git
|
||||
RUN ./aws-elastic-beanstalk-cli-setup/scripts/bundled_installer
|
||||
RUN /root/.pyenv/versions/3.7.2/bin/pip install awscli
|
||||
ENV PATH="/root/.ebcli-virtual-env/executables:/root/.pyenv/versions/3.7.2/bin:$PATH"
|
||||
CMD ["/bin/bash"]
|
8
alpine/flarectl/Dockerfile
Normal file
8
alpine/flarectl/Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
FROM alpine:latest
|
||||
|
||||
# Set a working directory
|
||||
RUN apk add go bash jq
|
||||
RUN go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest
|
||||
RUN echo "export PATH=/root/go/bin:$PATH" >> /root/.bashrc
|
||||
|
||||
ENTRYPOINT [ "/bin/bash" ]
|
9
alpine/flarectl/README.md
Normal file
9
alpine/flarectl/README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# Usage:
|
||||
```
|
||||
export CF_API_KEY=xxx
|
||||
export CF_API_EMAIL=yyy
|
||||
flarectl dns l --zone your-domain.com
|
||||
```
|
||||
|
||||
# Reference:
|
||||
https://pkg.go.dev/github.com/cloudflare/cloudflare-go/cmd/flarectl#section-readme
|
9
alpine/flarectl/monitoring.sh
Normal file
9
alpine/flarectl/monitoring.sh
Normal file
@ -0,0 +1,9 @@
|
||||
cfcli zones -f json | jq -cr '.[] | .name,.id' | paste - - | awk '{print $1,$2}' | while read d k; do
|
||||
cfcli ls -d $d -f json | jq -cr '.[] | select(.type == "A") | .name' | while read s; do
|
||||
echo curl -X POST \"https://api.cloudflare.com/client/v4/zones/$k/healthchecks\" \
|
||||
-H \"X-Auth-Email: ken.fong@rackspace.com\" \
|
||||
-H \"X-Auth-Key: xxx\" \
|
||||
-H \"Content-Type: application/json\" \
|
||||
--data \'\{\"name\":\"site-monitor\",\"description\":\"Health check\",\"check_regions\":[\"SEAS\"],\"type\":\"HTTPS\",\"consecutive_successes\":1,\"consecutive_fails\":2,\"http_config\":\{\"method\":\"GET\",\"port\":443,\"path\":\"/\",\"expected_codes\":[\"200\"],\"follow_redirects\":true,\"allow_insecure\":false,\"timeout\":5,\"retries\":2,\"interval\":60,\"address\":\"$s\"\}\'
|
||||
done
|
||||
done
|
17
alpine/flarectl/setenv-cl.sh.asc
Normal file
17
alpine/flarectl/setenv-cl.sh.asc
Normal file
@ -0,0 +1,17 @@
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
Comment: To decrypt, save the entire message to a file and then run gpg -d <file>
|
||||
|
||||
hQGMA3pyazT9EturAQwA1qGGGxhOFYt5ibmXHxS6TzVO1ETRF3bzv8Zk2u3Yg1fn
|
||||
FBa3Vsqnar4KFHxWhc1nNA3qqR4+RXLgSe9Uq9nUiJ2XYLqysqbD9LnMdSKLWTWW
|
||||
XY8jkQMHlQ5esHxx4N7aiztaCr1Ga/yT4d2zPrWeUMm75iZhpXE4K/0IR97GssaP
|
||||
neH5zMbTQq60M4Umcx9HJyIfI9t6vcP9dGw+OyB5aqCgyGZMmfGMdfGLGrhJu3Nz
|
||||
LA+0rZ6iotM1YDX4WOFP0+IfGqSffceeDdVJUVsZUAp5eDQUbTsJyGtS43LGzZ1X
|
||||
1ith1Sm2lDAX0yH0v06GGPQYptlF1g7JcwQMEc96wQbl78/mjqA6owU/N7zHjs6E
|
||||
xdEVKg4CIkDHf4q7e961MXoKcDt9LBpzIm4osGF0PAVcQFJezyyCe3fUPBsHwJ0C
|
||||
L6SugTZe6AjiVRG/vhXieYD01z9fPPX7m66w+0mqfYQ9rVWVXjImBJR37ApvIyfJ
|
||||
ic0SA18Sbrj+i4CevLGo0p8B+hZe5A5hG9WzVa30Z+ubOWB7lJLm59vP6tzTFqUa
|
||||
9vOQC/8jSs5z6NVEqlxBijdvWs5oIyzC8Ufc+62DchdPVq85bRDuma6/KagpI7Hy
|
||||
4bzm9eNBz+pk7dJl0XybGnFvwpTISzN3ZtWazwtvhFzZSUt/zY0ZiZOLxjAUnwO4
|
||||
FrHaT/3Cs7gPuIDg/rIg9q3GLuh7RHd7ZhoBxdbammQ=
|
||||
=bzPr
|
||||
-----END PGP MESSAGE-----
|
17
alpine/flarectl/setenv-rs.sh.asc
Normal file
17
alpine/flarectl/setenv-rs.sh.asc
Normal file
@ -0,0 +1,17 @@
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
Comment: To decrypt, save the entire message to a file and then run gpg -d <file>
|
||||
|
||||
hQGMA3pyazT9EturAQv+Jek+09cSCj1XccwH37c3deVa2UFHB1p1oI7B4iRLkaKH
|
||||
CBzQCUR4f0W7DI9AwBbmd21OHzirgfs9S1UL/ygHQPukNI8D3esRKq6dCMLyctHQ
|
||||
MG/q1MvRQVF4EtHmFkQoChnGEQBmpREv2xaEzOPNM7RyDZk6vktplUfGDKW78jB6
|
||||
oORrAyIMI+kKFG7QI5Zx8XlZWh1+IueXUybK040InVck9t5ge3cvMIgtvnSh4bng
|
||||
9X7ZhLKopURGrniNNNjO2i9aD3+jDJu/LFkzo1pQfgcSRix2l1la2YYB6e11AV/Q
|
||||
A8AWcorXofD6vo6n7PuCISmX9PWxxPjzggkFjRXyg85vLUDVWFk7lPgAT4PQ9T3Q
|
||||
OKcY5KWHPQSIv77iqN72JbKoTKbFvYvZOXbnJRaapn+Mce6WpSuBprhhxsSW4y/T
|
||||
8vum3w/yooDEB/ZV46IZcat9h1c9MOlJlpzzkULtYbwKZstkheM27ac2ht1wqwt0
|
||||
yY8nork7HE6OrxCDFRkz0p8B1IxalHAyMEuUnaZFxG590hY9lajKelUhXGfNusDk
|
||||
FvEBvu6RcXU+wH11rnzHJeOr+QXkPCPM6bGGVGRpPsi0FYuquwOm9zv0YjWR/Ljv
|
||||
07KrAwql3Lrd8GljqtY4viouJ58FPj44vLfpZxHI1EZHtTOVVheZ7IgGKRRY0Z01
|
||||
E6CuZIrAyCzD9HJ3kjBh/N3PjWfS1dRckarYAwm4mF8=
|
||||
=y9Ol
|
||||
-----END PGP MESSAGE-----
|
4
alpine/flarectl/setenv.sh
Normal file
4
alpine/flarectl/setenv.sh
Normal file
@ -0,0 +1,4 @@
|
||||
export CF_API_KEY=
|
||||
export CF_API_EMAIL=
|
||||
#CF_API_DOMAIN
|
||||
|
11
alpine/fpmredis/Dockerfile
Normal file
11
alpine/fpmredis/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
||||
FROM alpine:latest
|
||||
ENV container docker
|
||||
RUN apk update; apk upgrade; apk add php83-gd php83-session php83-json php83-fpm php83-mysqlnd php83-mysqli php83-mbstring php83-xml php83-redis php83-curl php83-gmp bash php83-pdo_mysql php83-zip php83-dom php83-xmlwriter php83-xmlreader php83-ctype php83-simplexml php83-intl php83-iconv supervisor php83-opcache php83-posix php83-fileinfo php83-pecl-imagick php83-bcmath php83-pcntl php83-cli php83-sysvsem php83-exif php83-sodium php83-bz2
|
||||
COPY supervisord.conf /etc/supervisord.conf
|
||||
COPY fpm-www.conf /etc/php83/php-fpm.d/www.conf
|
||||
COPY nc-upgrade.sh /var/www/nc-upgrade.sh
|
||||
COPY php.ini /etc/php83/php.ini
|
||||
# RUN sed -i -e 's/^disable_functions.*/disable_functions=exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,eval,base64_decode/g' -e 's/^expose_php.*/expose_php=off/g' -e 's/^memory_limit.*/memory_limit=512M/g' -e 's/^session.save_handler.*/session.save_handler=redis/g' /etc/php83/php.ini
|
||||
RUN echo 'session.save_path = "tcp://192.168.86.212:6379"' >> /etc/php83/php.ini
|
||||
EXPOSE 9000
|
||||
CMD ["/usr/bin/supervisord", "-n"]
|
7
alpine/fpmredis/Dockerfile-old
Normal file
7
alpine/fpmredis/Dockerfile-old
Normal file
@ -0,0 +1,7 @@
|
||||
FROM alpine
|
||||
ENV container docker
|
||||
RUN apk update; apk upgrade; apk add supervisor php7-gd php7-session php7-json php7-fpm php7-mysqlnd php7-mysqli php7-mbstring php7-xml php7-redis php7-curl php7-gmp bash apache2-webdav php7-pdo_mysql php7-zip php7-dom php7-xmlwriter php7-xmlreader php7-ctype php7-simplexml php7-intl php7-iconv
|
||||
COPY supervisord.conf /etc/supervisord.conf
|
||||
COPY fpm-www.conf /etc/php7/php-fpm.d/www.conf
|
||||
EXPOSE 9000
|
||||
CMD ["/usr/bin/supervisord", "-n"]
|
10
alpine/fpmredis/Dockerfile-php7
Normal file
10
alpine/fpmredis/Dockerfile-php7
Normal file
@ -0,0 +1,10 @@
|
||||
FROM alpine
|
||||
ENV container docker
|
||||
RUN apk update; apk upgrade; apk add php7-gd php7-session php7-json php7-fpm php7-mysqlnd php7-mysqli php7-mbstring php7-xml php7-redis php7-curl php7-gmp bash php7-pdo_mysql php7-zip php7-dom php7-xmlwriter php7-xmlreader php7-ctype php7-simplexml php7-intl php7-iconv redis supervisor php7-opcache php7-posix php7-fileinfo php7-pecl-imagick php7-bcmath php7-pcntl php7-cli
|
||||
COPY supervisord.conf /etc/supervisord.conf
|
||||
COPY fpm-www.conf /etc/php7/php-fpm.d/www.conf
|
||||
RUN sed -i -e 's/^disable_functions.*/disable_functions=exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,eval,base64_decode/g' /etc/php7/php.ini
|
||||
RUN sed -i -e 's/^expose_php.*/expose_php=off/g' /etc/php7/php.ini
|
||||
RUN sed -i -e 's/^memory_limit.*/memory_limit=512M/g' /etc/php7/php.ini
|
||||
EXPOSE 9000
|
||||
CMD ["/usr/bin/supervisord", "-n"]
|
9
alpine/fpmredis/Dockerfile-php81
Normal file
9
alpine/fpmredis/Dockerfile-php81
Normal file
@ -0,0 +1,9 @@
|
||||
FROM alpine:3.16
|
||||
ENV container docker
|
||||
RUN apk update; apk upgrade; apk add php81-gd php81-session php81-json php81-fpm php81-mysqlnd php81-mysqli php81-mbstring php81-xml php81-redis php81-curl php81-gmp bash php81-pdo_mysql php81-zip php81-dom php81-xmlwriter php81-xmlreader php81-ctype php81-simplexml php81-intl php81-iconv redis supervisor php81-opcache php81-posix php81-fileinfo php81-pecl-imagick php81-bcmath php81-pcntl php81-cli
|
||||
COPY supervisord.conf /etc/supervisord.conf
|
||||
COPY fpm-www.conf /etc/php81/php-fpm.d/www.conf
|
||||
RUN sed -i -e 's/^disable_functions.*/disable_functions=exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,eval,base64_decode/g' -e 's/^expose_php.*/expose_php=off/g' -e 's/^memory_limit.*/memory_limit=512M/g' -e 's/^session.save_handler.*/session.save_handler=redis/g' /etc/php81/php.ini
|
||||
RUN echo 'session.save_path = "tcp://192.168.86.212:6379"' >> /etc/php81/php.ini
|
||||
EXPOSE 9000
|
||||
CMD ["/usr/bin/supervisord", "-n"]
|
1
alpine/fpmredis/README.md
Normal file
1
alpine/fpmredis/README.md
Normal file
@ -0,0 +1 @@
|
||||
nextcloud does not support php 7.4+.
|
67
alpine/fpmredis/apache-vhosts.conf
Normal file
67
alpine/fpmredis/apache-vhosts.conf
Normal file
@ -0,0 +1,67 @@
|
||||
LoadModule dav_module /usr/lib/apache2/mod_dav.so
|
||||
|
||||
# Enable php-fpm integration
|
||||
<Proxy "fcgi://127.0.0.1:9000" enablereuse=on max=10>
|
||||
</Proxy>
|
||||
<FilesMatch ".+\.ph(ar|p|tml)$">
|
||||
SetHandler "proxy:fcgi://127.0.0.1:9000"
|
||||
</FilesMatch>
|
||||
DirectoryIndex /index.php index.php
|
||||
|
||||
<VirtualHost *:80>
|
||||
# this site is now behind nginx
|
||||
# https://www.headdesk.me/Nginx_reverse_proxy_container
|
||||
|
||||
# requires ondrej ppa
|
||||
# Protocols h2c http/1.1
|
||||
|
||||
# vhost for music share
|
||||
# access with user xpk.music / qwer-tyui-asdf-ghjk-zxcv
|
||||
|
||||
ServerName xpk.headdesk.me
|
||||
ServerAlias localhost
|
||||
DocumentRoot /var/www/nextcloud
|
||||
ErrorLog /var/log/apache2/xpk.headdesk.me.err
|
||||
LogLevel error
|
||||
CustomLog /var/log/apache2/xpk.headdesk.me.log combined
|
||||
|
||||
Alias /music /nas/music
|
||||
<Location /music>
|
||||
Options Indexes
|
||||
DAV on
|
||||
#AuthType Digest
|
||||
#AuthName "XPKMusic"
|
||||
#AuthDigestProvider file
|
||||
AuthType Basic
|
||||
AuthName "XPK Music"
|
||||
#AuthUserFile "/etc/apache2/webdav.passwd"
|
||||
AuthUserFile "/etc/apache2/xpkmusic.paswd"
|
||||
<Limit GET PROPFIND>
|
||||
require valid-user
|
||||
</Limit>
|
||||
</Location>
|
||||
|
||||
Alias /nextcloud /var/www/nextcloud
|
||||
<Location /nextcloud>
|
||||
Require all granted
|
||||
</Location>
|
||||
|
||||
<Directory /var/www/nextcloud/>
|
||||
Options +FollowSymlinks
|
||||
AllowOverride All
|
||||
|
||||
<IfModule mod_dav.c>
|
||||
Dav off
|
||||
</IfModule>
|
||||
|
||||
SetEnv HOME /var/www/nextcloud
|
||||
SetEnv HTTP_HOME /var/www/nextcloud
|
||||
|
||||
</Directory>
|
||||
|
||||
<Directory /var/www/nextcloud/data/>
|
||||
Require all denied
|
||||
</Directory>
|
||||
|
||||
</VirtualHost>
|
||||
|
BIN
alpine/fpmredis/backup.tar
Normal file
BIN
alpine/fpmredis/backup.tar
Normal file
Binary file not shown.
2
alpine/fpmredis/build.sh
Executable file
2
alpine/fpmredis/build.sh
Executable file
@ -0,0 +1,2 @@
|
||||
export DOCKER_BUILDKIT=1
|
||||
docker build --pull --network host -t alpine/fpmredis .
|
BIN
alpine/fpmredis/c8-php8-backup.tar
Normal file
BIN
alpine/fpmredis/c8-php8-backup.tar
Normal file
Binary file not shown.
23
alpine/fpmredis/fpm-www.conf
Normal file
23
alpine/fpmredis/fpm-www.conf
Normal file
@ -0,0 +1,23 @@
|
||||
[www]
|
||||
user = nobody
|
||||
group = nobody
|
||||
listen = 0.0.0.0:9000
|
||||
pm = dynamic
|
||||
pm.max_children = 50
|
||||
pm.start_servers = 10
|
||||
pm.min_spare_servers = 10
|
||||
pm.max_spare_servers = 20
|
||||
pm.process_idle_timeout = 20s
|
||||
pm.max_requests = 500
|
||||
php_admin_flag[log_errors] = on
|
||||
php_admin_value[error_log] = /var/log/fpm-$pool.error.log
|
||||
php_admin_value[disable_functions] = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignal
|
||||
php_admin_value[memory_limit] = 512M
|
||||
php_admin_value[upload_max_filesize] = 800M
|
||||
php_admin_value[post_max_size] = 850M
|
||||
; needed by nextcloud
|
||||
env[HOSTNAME] = $HOSTNAME
|
||||
env[PATH] = /usr/local/bin:/usr/bin:/bin
|
||||
env[TMP] = /tmp
|
||||
env[TMPDIR] = /tmp
|
||||
env[TEMP] = /tmp
|
17
alpine/fpmredis/nc-upgrade.sh
Normal file
17
alpine/fpmredis/nc-upgrade.sh
Normal file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
cp /etc/php81/php.ini /etc/php81/php.ini-orig
|
||||
sed -i -e '/^disable_function/d' /etc/php81/php.ini
|
||||
VERSION=$1
|
||||
cd /var/www/nextcloud
|
||||
cp nextcloud/config/config.php .
|
||||
cp -ap nextcloud/data/ data/
|
||||
apk add axel sudo
|
||||
axel https://download.nextcloud.com/server/releases/nextcloud-$VERSION.zip
|
||||
unzip -o -q nextcloud-$VERSION.zip
|
||||
cp config.php nextcloud/config/
|
||||
cp -ap data nextcloud/
|
||||
chown -R xfs:xfs nextcloud
|
||||
cd nextcloud
|
||||
sudo -u xfs php81 occ upgrade
|
||||
sudo -u xfs php81 occ maintenance:mode --off
|
||||
cp /etc/php81/php.ini-orig /etc/php81/php.ini
|
1964
alpine/fpmredis/php.ini
Normal file
1964
alpine/fpmredis/php.ini
Normal file
File diff suppressed because it is too large
Load Diff
2
alpine/fpmredis/restart.sh
Executable file
2
alpine/fpmredis/restart.sh
Executable file
@ -0,0 +1,2 @@
|
||||
docker ps -a | grep nextcloud-fpm | awk '{print $1}' | xargs docker rm -f
|
||||
./start.sh
|
3
alpine/fpmredis/start.sh
Executable file
3
alpine/fpmredis/start.sh
Executable file
@ -0,0 +1,3 @@
|
||||
docker run --cpus=4 --name nextcloud-fpm -v /var/www/nextcloud:/var/www/nextcloud:rw \
|
||||
-v /var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock:rw \
|
||||
-it -d -m 4g --net macvlan --ip 192.168.86.210 --restart=always alpine/fpmredis
|
25
alpine/fpmredis/supervisord.conf
Normal file
25
alpine/fpmredis/supervisord.conf
Normal file
@ -0,0 +1,25 @@
|
||||
[unix_http_server]
|
||||
file=/run/supervisord.sock ; (the path to the socket file)
|
||||
|
||||
[supervisord]
|
||||
logfile=/var/log/supervisord.log ; (main log file;default $CWD/supervisord.log)
|
||||
loglevel=error
|
||||
logfile_maxbytes=10MB
|
||||
logfile_backups=7
|
||||
user=root
|
||||
|
||||
[rpcinterface:supervisor]
|
||||
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
||||
|
||||
[supervisorctl]
|
||||
serverurl=unix:///run/supervisord.sock ; use a unix:// URL for a unix socket
|
||||
|
||||
#[program:redis]
|
||||
#command=redis-server
|
||||
#stderr_logfile = /var/log/supervisord-redis.err
|
||||
#stdout_logfile = /var/log/supervisord-redis.log
|
||||
|
||||
[program:phpfpm]
|
||||
command=/usr/sbin/php-fpm82 -c /etc/php82/php-fpm.conf -F
|
||||
stderr_logfile = /var/log/supervisord-fpm.err
|
||||
stdout_logfile = /var/log/supervisord-fpm.log
|
9
alpine/gcloudcli/Dockerfile
Normal file
9
alpine/gcloudcli/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
FROM alpine:3.16
|
||||
ENV container docker
|
||||
RUN apk update; apk upgrade; apk add jq bash wget curl python3 sqlite
|
||||
RUN wget -q -O- https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-368.0.0-linux-x86_64.tar.gz | tar zxf -
|
||||
COPY *.sh /root/
|
||||
RUN chmod 755 /root/*.sh
|
||||
RUN /google-cloud-sdk/install.sh -q
|
||||
RUN echo 'export PATH=/google-cloud-sdk/bin:$PATH' > /root/.bashrc
|
||||
ENTRYPOINT ["/bin/bash"]
|
96
alpine/gcloudcli/README.md
Normal file
96
alpine/gcloudcli/README.md
Normal file
@ -0,0 +1,96 @@
|
||||
# notes
|
||||
There is no need to build your own image. Use the ones on docker hub. e.g. google/cloud-sdk:alpine
|
||||
See https://hub.docker.com/r/google/cloud-sdk/
|
||||
|
||||
# usage
|
||||
gcloud init
|
||||
|
||||
You will then be prompted to sign in with a URL and enter a default region. For Hong Kong, it is asia-northeast1-c.
|
||||
|
||||
asia-east1-a Changhua County, Taiwan
|
||||
asia-east1-b Changhua County, Taiwan
|
||||
asia-east1-c Changhua County, Taiwan
|
||||
asia-east2-a Hong Kong, APAC
|
||||
asia-east2-b Hong Kong, APAC
|
||||
asia-east2-c Hong Kong, APAC
|
||||
asia-northeast1-a Tokyo, Japan, APAC
|
||||
asia-northeast1-b Tokyo, Japan, APAC
|
||||
asia-northeast1-c Tokyo, Japan, APAC
|
||||
asia-northeast2-a Osaka, Japan, APAC
|
||||
asia-northeast2-b Osaka, Japan, APAC
|
||||
asia-northeast2-c Osaka, Japan, APAC
|
||||
asia-northeast3-a Seoul, South Korea, APAC
|
||||
asia-northeast3-b Seoul, South Korea, APAC
|
||||
asia-northeast3-c Seoul, South Korea, APAC
|
||||
asia-south1-a Mumbai, India APAC
|
||||
asia-south1-b Mumbai, India APAC
|
||||
asia-south1-c Mumbai, India APAC
|
||||
asia-south2-a Delhi, India APAC
|
||||
asia-south2-b Delhi, India APAC
|
||||
asia-south2-c Delhi, India APAC
|
||||
asia-southeast1-a Jurong West, Singapore
|
||||
asia-southeast1-b Jurong West, Singapore
|
||||
asia-southeast1-c Jurong West, Singapore
|
||||
asia-southeast2-a Jakarta, Indonesia, APAC
|
||||
asia-southeast2-b Jakarta, Indonesia, APAC
|
||||
asia-southeast2-c Jakarta, Indonesia, APAC
|
||||
australia-southeast1-a Sydney, Australia
|
||||
australia-southeast1-b Sydney, Australia
|
||||
australia-southeast1-c Sydney, Australia
|
||||
australia-southeast2-a Melbourne, Australia
|
||||
australia-southeast2-b
|
||||
australia-southeast2-c Melbourne, Australia
|
||||
europe-central2-a
|
||||
europe-central2-b
|
||||
europe-central2-c Warsaw, Poland, Europe
|
||||
europe-north1-a Hamina, Finland, Europe
|
||||
europe-north1-b Hamina, Finland, Europe
|
||||
europe-north1-c Hamina, Finland, Europe
|
||||
europe-west1-b St. Ghislain, Belgium, Europe
|
||||
europe-west1-c St. Ghislain, Belgium, Europe
|
||||
europe-west1-d St. Ghislain, Belgium, Europe
|
||||
europe-west2-a London, England, Europe
|
||||
europe-west2-b London, England, Europe
|
||||
europe-west2-c London, England, Europe
|
||||
europe-west3-a Frankfurt, Germany Europe
|
||||
europe-west3-b Frankfurt, Germany Europe
|
||||
europe-west3-c Frankfurt, Germany Europe
|
||||
europe-west4-a Eemshaven, Netherlands, Europe
|
||||
europe-west4-b Eemshaven, Netherlands, Europe
|
||||
europe-west4-c Eemshaven, Netherlands, Europe
|
||||
europe-west6-a Zurich, Switzerland, Europe
|
||||
europe-west6-b Zurich, Switzerland, Europe
|
||||
europe-west6-c Zurich, Switzerland, Europe
|
||||
northamerica-northeast1-a Montréal, Québec, North America
|
||||
northamerica-northeast1-b Montréal, Québec, North America
|
||||
northamerica-northeast1-c Montréal, Québec, North America
|
||||
northamerica-northeast2-a Toronto, Ontario, North America
|
||||
northamerica-northeast2-b Toronto, Ontario, North America
|
||||
northamerica-northeast2-c Toronto, Ontario, North America
|
||||
southamerica-east1-a Osasco, São Paulo, Brazil, South
|
||||
southamerica-east1-b Osasco, São Paulo, Brazil, South
|
||||
southamerica-east1-c Osasco, São Paulo, Brazil, South
|
||||
southamerica-west1-a,b,c Santiago, Chile, South America
|
||||
us-central1-a Council Bluffs, Iowa, North America
|
||||
us-central1-b Council Bluffs, Iowa, North America
|
||||
us-central1-c Council Bluffs, Iowa, North America
|
||||
us-central1-f Council Bluffs, Iowa, North America
|
||||
us-east1-b Moncks Corner, South Carolina, North
|
||||
us-east1-c Moncks Corner, South Carolina, North
|
||||
us-east1-d Moncks Corner, South Carolina, North
|
||||
us-east4-a Ashburn, Virginia, North America
|
||||
us-east4-b Ashburn, Virginia, North America
|
||||
us-east4-c Ashburn, Virginia, North America
|
||||
us-west1-a The Dalles, Oregon, North America
|
||||
us-west1-b The Dalles, Oregon, North America
|
||||
us-west1-c The Dalles, Oregon, North America
|
||||
us-west2-a Los Angeles, California, North America
|
||||
us-west2-b Los Angeles, California, North America
|
||||
us-west2-c Los Angeles, California, North America
|
||||
us-west3-a
|
||||
us-west3-b
|
||||
us-west3-c Salt Lake City, Utah, North
|
||||
us-west4-a Las Vegas, Nevada, North America
|
||||
us-west4-b Las Vegas, Nevada, North America
|
||||
us-west4-c Las Vegas, Nevada, North America
|
||||
|
34
alpine/gcloudcli/ec2-matching.sh
Normal file
34
alpine/gcloudcli/ec2-matching.sh
Normal file
@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
cat <<EOF > /tmp/ec2-raw.txt
|
||||
m5.large 2 8
|
||||
m5.xlarge 4 16
|
||||
m5.2xlarge 8 32
|
||||
m5.4xlarge 16 64
|
||||
m5.8xlarge 32 128
|
||||
c5.large 2 4
|
||||
c5.xlarge 4 8
|
||||
c5.2xlarge 8 16
|
||||
c5.4xlarge 16 32
|
||||
c5.9xlarge 36 72
|
||||
c5.12xlarge 48 96
|
||||
r5.large 2 16
|
||||
r5.xlarge 4 32
|
||||
r5.2xlarge 8 64
|
||||
r5.4xlarge 16 128
|
||||
r5.8xlarge 32 256
|
||||
EOF
|
||||
|
||||
if [ ! -f ec2-size-match.db ]; then
|
||||
echo "create table instances(instance varchar(30), cpu int, ram int)" | sqlite3 ec2-size-match.db
|
||||
cat /tmp/ec2-raw.txt | while read a b c; do
|
||||
echo "insert into instances values(\"$a\", \"$b\", \"$c\");" | sqlite3 ec2-size-match.db
|
||||
done
|
||||
fi
|
||||
|
||||
RESULT=$(echo "select instance from instances where cpu = \"$1\" and ram = \"$2\";" | sqlite3 ec2-size-match.db)
|
||||
if [ -z "$RESULT" ]; then
|
||||
echo manual-match
|
||||
else
|
||||
echo $RESULT
|
||||
fi
|
||||
|
20
alpine/gcloudcli/get-instances.sh
Normal file
20
alpine/gcloudcli/get-instances.sh
Normal file
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "id,name,size,disksize,os,cpu,ram,ec2"
|
||||
|
||||
gcloud compute instances list --filter="status=running" --format=json | jq -cr '.[] | [.id, .name, (.machineType | split("/")[10]), (.disks[] | .diskSizeGb), (.disks[] | .licenses[0] | split("/")[9]),(.zone | split("/")[8])] | @csv' > /tmp/instances.csv
|
||||
|
||||
cat /tmp/instances.csv | while read l; do
|
||||
echo -n $l,
|
||||
INSTSIZE=$(echo $l | awk -F, '{print $3}' | tr -d \")
|
||||
gcloud compute machine-types describe $INSTSIZE --zone asia-northeast1-c --format json | jq -cr '[.guestCpus,.memoryMb] | @csv'
|
||||
done > /tmp/instances2.csv
|
||||
|
||||
cat /tmp/instances2.csv | while read l; do
|
||||
echo -n $l,
|
||||
CPU=$(echo $l | awk -F, '{print $(NF-1)}')
|
||||
RAM1=$(echo $l | awk -F, '{print $NF}')
|
||||
RAM2=$(echo $RAM1/1024 | bc)
|
||||
/root/ec2-matching.sh $CPU $RAM2
|
||||
done
|
||||
|
7
alpine/haproxy/Dockerfile
Normal file
7
alpine/haproxy/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
||||
FROM alpine:latest
|
||||
ENV container docker
|
||||
RUN apk update; apk upgrade; apk add haproxy tzdata
|
||||
COPY haproxy.cfg /etc/haproxy/haproxy.cfg
|
||||
RUN ln -s /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime
|
||||
EXPOSE 41080
|
||||
CMD [ "/usr/sbin/haproxy", "-f", "/etc/haproxy/haproxy.cfg", "-db" ]
|
3
alpine/haproxy/README.md
Normal file
3
alpine/haproxy/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
Access stats:
|
||||
|
||||
http://192.168.86.208:44644/stats
|
2
alpine/haproxy/build.sh
Executable file
2
alpine/haproxy/build.sh
Executable file
@ -0,0 +1,2 @@
|
||||
export DOCKER_BUILDKIT=1
|
||||
docker build --network host -t alpine/haproxy .
|
31
alpine/haproxy/haproxy.cfg
Normal file
31
alpine/haproxy/haproxy.cfg
Normal file
@ -0,0 +1,31 @@
|
||||
global
|
||||
log 192.168.86.10 local0 notice
|
||||
chroot /var/lib/haproxy
|
||||
pidfile /var/run/haproxy.pid
|
||||
maxconn 600
|
||||
user haproxy
|
||||
group haproxy
|
||||
daemon
|
||||
|
||||
defaults
|
||||
log global
|
||||
mode tcp
|
||||
timeout client 10s
|
||||
timeout connect 5s
|
||||
timeout server 10s
|
||||
|
||||
frontend stats
|
||||
mode http
|
||||
bind *:44644
|
||||
stats enable
|
||||
stats uri /stats
|
||||
stats refresh 10s
|
||||
stats auth admin:qwerty-asdf-1234
|
||||
|
||||
frontend socks-front
|
||||
bind *:41080
|
||||
default_backend socks-back
|
||||
|
||||
backend socks-back
|
||||
server appgate 192.168.86.22:9080 check
|
||||
server ism 192.168.86.18:11080 check backup
|
4
alpine/haproxy/restart-haproxy.sh
Executable file
4
alpine/haproxy/restart-haproxy.sh
Executable file
@ -0,0 +1,4 @@
|
||||
docker stop haproxy
|
||||
docker rm haproxy
|
||||
sleep 5
|
||||
/my/container-config/alpine/haproxy/start-haproxy.sh
|
3
alpine/haproxy/start-haproxy.sh
Executable file
3
alpine/haproxy/start-haproxy.sh
Executable file
@ -0,0 +1,3 @@
|
||||
# haproxy socks container
|
||||
docker run --name haproxy \
|
||||
--net macvlan --ip 192.168.86.208 -d --restart=always alpine/haproxy
|
10
alpine/iamctl/Dockerfile
Normal file
10
alpine/iamctl/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM alpine:3.16
|
||||
LABEL description="iamctl on alpine"
|
||||
ENV container docker
|
||||
RUN apk add bash git py3-pip vim aws-cli aws-cli-doc jq
|
||||
RUN git clone https://github.com/aws-samples/aws-iamctl.git /tmp/aws-iamctl
|
||||
RUN cd /tmp/aws-iamctl; python3 setup.py install
|
||||
COPY equivalency_list.json /tmp/aws-iamctl/
|
||||
COPY iam.json /tmp/aws-iamctl/
|
||||
ENV PS1 "[iamctl] \w $ "
|
||||
ENTRYPOINT ["/bin/bash"]
|
1
alpine/iamctl/equivalency_list.json
Normal file
1
alpine/iamctl/equivalency_list.json
Normal file
@ -0,0 +1 @@
|
||||
{"accountid": ["123456789012", "234567890123"], "accountprefix1": ["apples-production", "oranges-production", "apples-development", "oranges-development"]}
|
1
alpine/iamctl/iam.json
Normal file
1
alpine/iamctl/iam.json
Normal file
File diff suppressed because one or more lines are too long
18
alpine/jenkins/Dockerfile
Normal file
18
alpine/jenkins/Dockerfile
Normal file
@ -0,0 +1,18 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="Jenkins"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
LABEL notes="Get initial admin password by docker exec -it <container-id> and cat /root/.jenkins/secrets/initialAdminPassword"
|
||||
LABEL java-version="openjdk11"
|
||||
LABEL jenkins-version="2.222.3"
|
||||
LABEL exposed-port="8080"
|
||||
LABEL jenkins-path="/jenkins"
|
||||
ENV container docker
|
||||
RUN apk add openjdk11 wget openjdk11-jre-headless ttf-dejavu; mkdir /opt/tomcat
|
||||
WORKDIR /opt/tomcat
|
||||
RUN wget -q -O- http://ftp.cuhk.edu.hk/pub/packages/apache.org/tomcat/tomcat-9/v9.0.34/bin/apache-tomcat-9.0.34.tar.gz | tar zxf - --strip-components=1
|
||||
RUN rm -rf /opt/tomcat/webapps/ROOT
|
||||
RUN wget -q -O /opt/tomcat/webapps/jenkins.war http://mirrors.jenkins.io/war-stable/latest/jenkins.war
|
||||
ENV JAVA_HOME="/usr"
|
||||
ENV JAVA_OPTS="-Djava.awt.headless=true -Xmx2g -Dhudson.DNSMultiCast.disabled=true -Duser.timezone=Asia/Hong_Kong"
|
||||
EXPOSE 8080
|
||||
CMD ["/opt/tomcat/bin/catalina.sh", "run"]
|
3
alpine/jenkins/start.sh
Executable file
3
alpine/jenkins/start.sh
Executable file
@ -0,0 +1,3 @@
|
||||
docker run --name jenkins --cpus 2 \
|
||||
--net macvlan --ip 192.168.86.211 -d --restart=always alpine-jenkins
|
||||
|
8
alpine/nginx-with-volume/Dockerfile
Normal file
8
alpine/nginx-with-volume/Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
FROM alpine:latest
|
||||
ENV container docker
|
||||
VOLUME /var/www
|
||||
RUN apk update; apk upgrade; apk add nginx nginx-mod-http-dav-ext
|
||||
RUN mkdir -p /run/nginx
|
||||
COPY index.html /var/www/index.html
|
||||
EXPOSE 80
|
||||
CMD [ "/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf" ]
|
6
alpine/nginx-with-volume/README.md
Normal file
6
alpine/nginx-with-volume/README.md
Normal file
@ -0,0 +1,6 @@
|
||||
# Revision notes
|
||||
20191206: since 1.17.6, /var/www/nextcloud needs to be mounted. not sure why it worked before... also created xpknet and assigned static IP to containers. nginx is on 192.168.188.2 and fpm on 192.168.188.10
|
||||
20191206: changed to macvlan. nginx is on 192.168.86.3 and fpm on 192.168.86.4
|
||||
|
||||
# General notes
|
||||
dav is needed for enpass
|
2
alpine/nginx-with-volume/build.sh
Executable file
2
alpine/nginx-with-volume/build.sh
Executable file
@ -0,0 +1,2 @@
|
||||
export DOCKER_BUILDKIT=1
|
||||
docker build --network host -t alpine/nginx-v .
|
5
alpine/nginx-with-volume/index.html
Normal file
5
alpine/nginx-with-volume/index.html
Normal file
@ -0,0 +1,5 @@
|
||||
<p>
|
||||
<br>
|
||||
<center>
|
||||
<a href=https://xpk.headdesk.me/mon>Go to observium</a>
|
||||
</center>
|
254
alpine/nginx-with-volume/nginx.conf
Normal file
254
alpine/nginx-with-volume/nginx.conf
Normal file
@ -0,0 +1,254 @@
|
||||
user nginx;
|
||||
worker_processes 2;
|
||||
daemon off;
|
||||
load_module "modules/ngx_http_dav_ext_module.so";
|
||||
|
||||
error_log /var/log/nginx/error-local.log warn;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 2000;
|
||||
}
|
||||
|
||||
http {
|
||||
server_tokens off;
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
sendfile on;
|
||||
keepalive_timeout 65;
|
||||
client_max_body_size 200M;
|
||||
|
||||
gzip on;
|
||||
gzip_min_length 1100;
|
||||
gzip_buffers 4 8k;
|
||||
gzip_types text/plain;
|
||||
|
||||
# caching
|
||||
proxy_cache_path /tmp/nginx-cache levels=1:2 keys_zone=zone1:10m max_size=1G;
|
||||
proxy_temp_path /tmp/nginx-proxy 1 2;
|
||||
proxy_cache_key "$scheme$request_method$host$request_uri";
|
||||
proxy_ignore_headers Expires Cache-Control;
|
||||
proxy_cache_use_stale error timeout invalid_header http_502;
|
||||
proxy_cache_bypass $cookie_session;
|
||||
proxy_no_cache $cookie_session;
|
||||
proxy_headers_hash_max_size 1024;
|
||||
proxy_headers_hash_bucket_size 128;
|
||||
|
||||
log_format cached '$remote_addr '
|
||||
'"$request" $status $body_bytes_sent '
|
||||
'"$http_referer" "$http_user_agent" $upstream_cache_status';
|
||||
|
||||
|
||||
# Useragent ACL: works but ubuntu online accounts does not provide any useragent
|
||||
#map $http_user_agent $useragent_acl {
|
||||
# default deny;
|
||||
# ~(Desktop|Chrome|Nextcloud-iOS|Nextcloud-android|mirall|Mozilla/5\.0|git|ansible-httpget|Go-http-client) allow;
|
||||
#}
|
||||
|
||||
# _ _ _ _
|
||||
# _ __ | |__ _ __ | |__ __ _ _ __ __| | | ___ _ __
|
||||
# | '_ \| '_ \| '_ \ _____| '_ \ / _` | '_ \ / _` | |/ _ \ '__|
|
||||
# | |_) | | | | |_) |_____| | | | (_| | | | | (_| | | __/ |
|
||||
# | .__/|_| |_| .__/ |_| |_|\__,_|_| |_|\__,_|_|\___|_|
|
||||
# |_| |_|
|
||||
#
|
||||
|
||||
upstream php-handler {
|
||||
server 192.168.86.210:9000;
|
||||
#server unix:/var/run/php/php7.2-fpm.sock;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
# root /var/www/null;
|
||||
root /var/www/letsencrypt;
|
||||
|
||||
# for letsencrypt / acme-tiny
|
||||
location /.well-known {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
alias /var/www/letsencrypt/;
|
||||
}
|
||||
|
||||
location / {
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
# Useragent ACL
|
||||
# if ($useragent_acl = deny) {
|
||||
# return 403;
|
||||
# }
|
||||
|
||||
# letsencrypt validation
|
||||
#location /.well-known/acme-challenge/ {
|
||||
# alias /var/www/letsencrypt/;
|
||||
#}
|
||||
|
||||
#if ($http_x_forwarded_proto != "https") {
|
||||
# return 301 https://$host$request_uri;
|
||||
# }
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2 default_server;
|
||||
root /var/www;
|
||||
# still need TLS1.2 for Lixil Jenkins git pull
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_ecdh_curve secp521r1:secp384r1:prime256v1;
|
||||
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256;
|
||||
ssl_prefer_server_ciphers on;
|
||||
ssl_session_timeout 10m;
|
||||
ssl_session_cache shared:SSL:10m;
|
||||
ssl_session_tickets off;
|
||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
|
||||
add_header X-Frame-Options SAMEORIGIN;
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header X-Robots-Tag "noindex, nofollow";
|
||||
add_header X-Download-Options noopen;
|
||||
add_header X-Permitted-Cross-Domain-Policies none;
|
||||
add_header Referrer-Policy no-referrer;
|
||||
|
||||
ssl_certificate /home/ssl/xpk.headdesk.me.crt;
|
||||
ssl_certificate_key /home/ssl/xpk.headdesk.me.key;
|
||||
|
||||
# filter out PROPFIND in access log
|
||||
set $logme 1;
|
||||
|
||||
if ($request_method = PROPFIND) {
|
||||
set $logme 0;
|
||||
}
|
||||
|
||||
access_log /var/log/nginx/access.log cached if=$logme;
|
||||
|
||||
# Useragent ACL
|
||||
# if ($useragent_acl = deny) {
|
||||
# return 403;
|
||||
#}
|
||||
|
||||
#location / {
|
||||
# proxy_pass http://192.168.86.10:8080/;
|
||||
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
# proxy_set_header X-Real-IP $remote_addr;
|
||||
# proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
# proxy_set_header Host $host;
|
||||
# proxy_cache_bypass $http_pragma $http_authorization;
|
||||
# }
|
||||
|
||||
# letsencrypt validation
|
||||
location /.well-known/acme-challenge/ {
|
||||
alias /var/www/letsencrypt/;
|
||||
}
|
||||
fastcgi_hide_header X-Powered-By;
|
||||
location = /.well-known/carddav {
|
||||
return 301 $scheme://$host:$server_port/nextcloud/remote.php/dav;
|
||||
}
|
||||
location = /.well-known/caldav {
|
||||
return 301 $scheme://$host:$server_port/nextcloud/remote.php/dav;
|
||||
}
|
||||
|
||||
location /nextcloud/ {
|
||||
rewrite ^ /nextcloud/index.php;
|
||||
}
|
||||
location ~ ^\/nextcloud\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
|
||||
deny all;
|
||||
}
|
||||
location ~ ^\/nextcloud\/(?:\.|autotest|occ|issue|indie|db_|console) {
|
||||
deny all;
|
||||
}
|
||||
location ~ ^\/nextcloud\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
|
||||
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
|
||||
set $path_info $fastcgi_path_info;
|
||||
try_files $fastcgi_script_name =404;
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param PATH_INFO $path_info;
|
||||
fastcgi_param HTTPS on;
|
||||
# Avoid sending the security headers twice
|
||||
fastcgi_param modHeadersAvailable true;
|
||||
# Enable pretty urls
|
||||
fastcgi_param front_controller_active true;
|
||||
fastcgi_pass php-handler;
|
||||
fastcgi_intercept_errors on;
|
||||
fastcgi_request_buffering off;
|
||||
}
|
||||
|
||||
location ~ ^\/nextcloud\/(?:updater|oc[ms]-provider)(?:$|\/) {
|
||||
try_files $uri/ =404;
|
||||
index index.php;
|
||||
}
|
||||
|
||||
location ~ ^\/nextcloud.*\.(?:css|js|woff2?|svg|gif|map)$ {
|
||||
try_files $uri /nextcloud/index.php$request_uri;
|
||||
add_header Cache-Control "public, max-age=15778463";
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header X-Robots-Tag "noindex, nofollow";
|
||||
add_header X-Download-Options noopen;
|
||||
add_header X-Permitted-Cross-Domain-Policies none;
|
||||
add_header Referrer-Policy no-referrer;
|
||||
}
|
||||
location ~ ^\/nextcloud.*\.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
|
||||
try_files $uri /nextcloud/index.php$request_uri;
|
||||
}
|
||||
|
||||
location /git/ {
|
||||
proxy_pass http://192.168.86.53:3000/;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
proxy_set_header Host $host;
|
||||
proxy_http_version 1.1;
|
||||
# caching: do not enable, causes cross account caching!
|
||||
# proxy_cache zone1;
|
||||
# proxy_cache_valid 200 302 5m;
|
||||
# proxy_cache_valid any 10m;
|
||||
}
|
||||
|
||||
location /pad/ {
|
||||
proxy_pass http://192.168.86.51:9001/;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
proxy_set_header Host $host;
|
||||
proxy_http_version 1.1;
|
||||
proxy_cookie_path / "/pad; HTTPOnly; Secure";
|
||||
proxy_cookie_flags express secure httponly;
|
||||
}
|
||||
|
||||
location /jenkins/ {
|
||||
proxy_pass http://192.168.86.55:8080/jenkins/;
|
||||
proxy_redirect default;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
proxy_set_header Host $host;
|
||||
proxy_http_version 1.1;
|
||||
}
|
||||
|
||||
location /mon/ {
|
||||
proxy_pass http://192.168.86.57/;
|
||||
proxy_buffering off;
|
||||
proxy_redirect default;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
proxy_set_header Host $host;
|
||||
proxy_http_version 1.1;
|
||||
proxy_cookie_path / "/mon; HTTPOnly; Secure";
|
||||
proxy_cookie_flags express secure httponly;
|
||||
}
|
||||
|
||||
location /enpass/ {
|
||||
root /var/www;
|
||||
auth_basic enpass;
|
||||
auth_basic_user_file /var/www/enpass/.htpass;
|
||||
dav_methods PUT DELETE MKCOL COPY MOVE;
|
||||
dav_ext_methods PROPFIND OPTIONS;
|
||||
dav_access user:rw group:rw all:r;
|
||||
create_full_put_path on;
|
||||
autoindex on;
|
||||
}
|
||||
}
|
||||
}
|
4
alpine/nginx-with-volume/restart-nginx.sh
Executable file
4
alpine/nginx-with-volume/restart-nginx.sh
Executable file
@ -0,0 +1,4 @@
|
||||
docker stop nginx
|
||||
docker rm nginx
|
||||
sleep 5
|
||||
/my/container-config/alpine/nginx/start-nginx.sh
|
14
alpine/nginx-with-volume/start-nginx.sh
Executable file
14
alpine/nginx-with-volume/start-nginx.sh
Executable file
@ -0,0 +1,14 @@
|
||||
# nginx container
|
||||
docker run --name nginx -v /my/container-config/alpine/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
|
||||
-m 2g -v /my/sites/ssl-cert:/home/ssl \
|
||||
-v /var/www/nextcloud:/var/www/nextcloud:ro \
|
||||
-v /var/www/enpass:/var/www/enpass:rw \
|
||||
-v /var/www/letsencrypt:/var/www/letsencrypt:ro \
|
||||
--net macvlan --ip 192.168.86.209 -d --restart=always alpine/nginx
|
||||
|
||||
# clearlinux/nginx
|
||||
#docker run --name nginx -v /my/container-config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
|
||||
#-v /etc/letsencrypt:/etc/letsencrypt:ro -m 2g \
|
||||
#-v /var/www/nextcloud:/var/www/nextcloud:ro \
|
||||
#--net macvlan --ip 192.168.86.3 -d --restart=always clearlinux/nginx
|
||||
|
7
alpine/nginx/Dockerfile
Normal file
7
alpine/nginx/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
||||
FROM alpine:latest
|
||||
ENV container docker
|
||||
RUN apk update; apk upgrade; apk add nginx nginx-mod-http-dav-ext
|
||||
RUN mkdir -p /run/nginx
|
||||
COPY index.html /var/www/index.html
|
||||
EXPOSE 80
|
||||
CMD [ "/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf" ]
|
6
alpine/nginx/README.md
Normal file
6
alpine/nginx/README.md
Normal file
@ -0,0 +1,6 @@
|
||||
# Revision notes
|
||||
20191206: since 1.17.6, /var/www/nextcloud needs to be mounted. not sure why it worked before... also created xpknet and assigned static IP to containers. nginx is on 192.168.188.2 and fpm on 192.168.188.10
|
||||
20191206: changed to macvlan. nginx is on 192.168.86.3 and fpm on 192.168.86.4
|
||||
|
||||
# General notes
|
||||
dav is needed for enpass
|
2
alpine/nginx/build.sh
Executable file
2
alpine/nginx/build.sh
Executable file
@ -0,0 +1,2 @@
|
||||
export DOCKER_BUILDKIT=1
|
||||
docker build --network host -t alpine/nginx .
|
5
alpine/nginx/index.html
Normal file
5
alpine/nginx/index.html
Normal file
@ -0,0 +1,5 @@
|
||||
<p>
|
||||
<br>
|
||||
<center>
|
||||
<a href=https://xpk.headdesk.me/mon>Go to observium</a>
|
||||
</center>
|
301
alpine/nginx/nginx.conf
Normal file
301
alpine/nginx/nginx.conf
Normal file
@ -0,0 +1,301 @@
|
||||
user nginx;
|
||||
worker_processes 2;
|
||||
daemon off;
|
||||
load_module "modules/ngx_http_dav_ext_module.so";
|
||||
|
||||
error_log /var/log/nginx/error-local.log warn;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 2000;
|
||||
}
|
||||
|
||||
http {
|
||||
server_tokens off;
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
sendfile on;
|
||||
keepalive_timeout 65;
|
||||
client_max_body_size 200M;
|
||||
|
||||
gzip on;
|
||||
gzip_min_length 1100;
|
||||
gzip_buffers 4 8k;
|
||||
gzip_types text/plain;
|
||||
|
||||
# caching
|
||||
proxy_cache_path /tmp/nginx-cache levels=1:2 keys_zone=zone1:10m max_size=1G;
|
||||
proxy_temp_path /tmp/nginx-proxy 1 2;
|
||||
proxy_cache_key "$scheme$request_method$host$request_uri";
|
||||
proxy_ignore_headers Expires Cache-Control;
|
||||
proxy_cache_use_stale error timeout invalid_header http_502;
|
||||
proxy_cache_bypass $cookie_session;
|
||||
proxy_no_cache $cookie_session;
|
||||
proxy_headers_hash_max_size 1024;
|
||||
proxy_headers_hash_bucket_size 128;
|
||||
|
||||
log_format cached '$remote_addr '
|
||||
'"$request" $status $body_bytes_sent '
|
||||
'"$http_referer" "$http_user_agent" $upstream_cache_status';
|
||||
|
||||
|
||||
# Useragent ACL
|
||||
map $http_user_agent $blockagent {
|
||||
default 0;
|
||||
~*Bytespider 1;
|
||||
~*Yandex 1;
|
||||
~*DotBot 1;
|
||||
~*Chrome/104.0.0.0 1;
|
||||
~*l9explore 1;
|
||||
~*ImagesiftBot 1;
|
||||
}
|
||||
|
||||
# _ _ _ _
|
||||
# _ __ | |__ _ __ | |__ __ _ _ __ __| | | ___ _ __
|
||||
# | '_ \| '_ \| '_ \ _____| '_ \ / _` | '_ \ / _` | |/ _ \ '__|
|
||||
# | |_) | | | | |_) |_____| | | | (_| | | | | (_| | | __/ |
|
||||
# | .__/|_| |_| .__/ |_| |_|\__,_|_| |_|\__,_|_|\___|_|
|
||||
# |_| |_|
|
||||
#
|
||||
|
||||
upstream php-handler {
|
||||
server 192.168.86.210:9000;
|
||||
#server unix:/var/run/php/php7.2-fpm.sock;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
# root /var/www/null;
|
||||
root /var/www/letsencrypt;
|
||||
|
||||
# for letsencrypt / acme-tiny
|
||||
location /.well-known {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
alias /var/www/letsencrypt/;
|
||||
}
|
||||
|
||||
location / {
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
# Useragent ACL
|
||||
if ($blockagent) {return 403;}
|
||||
|
||||
# letsencrypt validation
|
||||
#location /.well-known/acme-challenge/ {
|
||||
# alias /var/www/letsencrypt/;
|
||||
#}
|
||||
|
||||
#if ($http_x_forwarded_proto != "https") {
|
||||
# return 301 https://$host$request_uri;
|
||||
# }
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl default_server;
|
||||
http2 on;
|
||||
root /var/www;
|
||||
# still need TLS1.2 for Lixil Jenkins git pull
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_ecdh_curve secp521r1:secp384r1:prime256v1;
|
||||
ssl_ciphers TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES256-GCM-SHA384;
|
||||
ssl_prefer_server_ciphers on;
|
||||
ssl_session_timeout 10m;
|
||||
ssl_session_cache shared:SSL:10m;
|
||||
ssl_session_tickets off;
|
||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
|
||||
add_header X-Frame-Options SAMEORIGIN;
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header X-Robots-Tag "noindex, nofollow";
|
||||
add_header X-Download-Options noopen;
|
||||
add_header X-Permitted-Cross-Domain-Policies none;
|
||||
add_header Referrer-Policy no-referrer;
|
||||
|
||||
ssl_certificate /home/ssl/xpk.headdesk.me.crt;
|
||||
ssl_certificate_key /home/ssl/xpk.headdesk.me.key;
|
||||
|
||||
# filter out PROPFIND in access log
|
||||
set $logme 1;
|
||||
|
||||
if ($request_method = PROPFIND) {
|
||||
set $logme 0;
|
||||
}
|
||||
|
||||
#access_log /var/log/nginx/access.log cached if=$logme;
|
||||
access_log syslog:server=192.168.86.10,nohostname cached if=$logme;
|
||||
|
||||
# Useragent ACL
|
||||
# if ($useragent_acl = deny) {
|
||||
# return 403;
|
||||
#}
|
||||
|
||||
# try again
|
||||
if ($blockagent) {return 403;}
|
||||
|
||||
#location / {
|
||||
# proxy_pass http://192.168.86.10:8080/;
|
||||
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
# proxy_set_header X-Real-IP $remote_addr;
|
||||
# proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
# proxy_set_header Host $host;
|
||||
# proxy_cache_bypass $http_pragma $http_authorization;
|
||||
# }
|
||||
|
||||
# letsencrypt validation
|
||||
location /.well-known/acme-challenge/ {
|
||||
alias /var/www/letsencrypt/;
|
||||
}
|
||||
fastcgi_hide_header X-Powered-By;
|
||||
location = /.well-known/carddav {
|
||||
return 301 $scheme://$host:$server_port/nextcloud/remote.php/dav;
|
||||
}
|
||||
location = /.well-known/caldav {
|
||||
return 301 $scheme://$host:$server_port/nextcloud/remote.php/dav;
|
||||
}
|
||||
|
||||
location /nextcloud/ {
|
||||
rewrite ^ /nextcloud/index.php;
|
||||
}
|
||||
location ~ ^\/nextcloud\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
|
||||
deny all;
|
||||
}
|
||||
location ~ ^\/nextcloud\/(?:\.|autotest|occ|issue|indie|db_|console) {
|
||||
deny all;
|
||||
}
|
||||
location ~ ^\/nextcloud\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
|
||||
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
|
||||
set $path_info $fastcgi_path_info;
|
||||
try_files $fastcgi_script_name =404;
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param PATH_INFO $path_info;
|
||||
fastcgi_param HTTPS on;
|
||||
# Avoid sending the security headers twice
|
||||
fastcgi_param modHeadersAvailable true;
|
||||
# Enable pretty urls
|
||||
fastcgi_param front_controller_active true;
|
||||
fastcgi_pass php-handler;
|
||||
fastcgi_intercept_errors on;
|
||||
fastcgi_request_buffering off;
|
||||
}
|
||||
|
||||
location ~ ^\/nextcloud\/(?:updater|oc[ms]-provider)(?:$|\/) {
|
||||
try_files $uri/ =404;
|
||||
index index.php;
|
||||
}
|
||||
|
||||
location ~ ^\/nextcloud.*\.(?:css|js|woff2?|svg|gif|map)$ {
|
||||
try_files $uri /nextcloud/index.php$request_uri;
|
||||
add_header Cache-Control "public, max-age=15778463";
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header X-Robots-Tag "noindex, nofollow";
|
||||
add_header X-Download-Options noopen;
|
||||
add_header X-Permitted-Cross-Domain-Policies none;
|
||||
add_header Referrer-Policy no-referrer;
|
||||
}
|
||||
location ~ ^\/nextcloud.*\.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
|
||||
try_files $uri /nextcloud/index.php$request_uri;
|
||||
}
|
||||
|
||||
location /git/ {
|
||||
proxy_pass http://192.168.86.53:3000/;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
proxy_set_header Host $host;
|
||||
proxy_http_version 1.1;
|
||||
# caching: do not enable, causes cross account caching!
|
||||
# proxy_cache zone1;
|
||||
# proxy_cache_valid 200 302 5m;
|
||||
# proxy_cache_valid any 10m;
|
||||
}
|
||||
|
||||
location /pad/ {
|
||||
proxy_pass http://192.168.86.51:9001/;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
proxy_set_header Host $host;
|
||||
proxy_http_version 1.1;
|
||||
proxy_cookie_path / "/pad; HTTPOnly; Secure";
|
||||
proxy_cookie_flags express secure httponly;
|
||||
}
|
||||
|
||||
location /jenkins/ {
|
||||
proxy_pass http://192.168.86.55:8080/jenkins/;
|
||||
proxy_redirect default;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
proxy_set_header Host $host;
|
||||
proxy_http_version 1.1;
|
||||
}
|
||||
|
||||
location /mon/ {
|
||||
proxy_pass http://192.168.86.57/;
|
||||
proxy_buffering off;
|
||||
proxy_redirect default;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
proxy_set_header Host $host;
|
||||
proxy_http_version 1.1;
|
||||
proxy_cookie_path / "/mon; HTTPOnly; Secure";
|
||||
proxy_cookie_flags express secure httponly;
|
||||
}
|
||||
|
||||
location /enpass/ {
|
||||
root /var/www;
|
||||
auth_basic enpass;
|
||||
auth_basic_user_file /var/www/enpass/.htpass;
|
||||
dav_methods PUT DELETE MKCOL COPY MOVE;
|
||||
dav_ext_methods PROPFIND OPTIONS;
|
||||
dav_access user:rw group:rw all:r;
|
||||
create_full_put_path on;
|
||||
autoindex on;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name mon.headdesk.me;
|
||||
http2 on;
|
||||
root /var/www;
|
||||
ssl_protocols TLSv1.3;
|
||||
ssl_ecdh_curve secp521r1:secp384r1:prime256v1;
|
||||
ssl_ciphers TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES256-GCM-SHA384;
|
||||
ssl_prefer_server_ciphers on;
|
||||
ssl_session_timeout 10m;
|
||||
ssl_session_cache shared:SSL:10m;
|
||||
ssl_session_tickets off;
|
||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
|
||||
add_header X-Frame-Options SAMEORIGIN;
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header X-Robots-Tag "noindex, nofollow";
|
||||
add_header X-Download-Options noopen;
|
||||
add_header X-Permitted-Cross-Domain-Policies none;
|
||||
add_header Referrer-Policy no-referrer;
|
||||
|
||||
ssl_certificate /home/ssl/mon.headdesk.me.crt;
|
||||
ssl_certificate_key /home/ssl/mon.headdesk.me.key;
|
||||
location / {
|
||||
proxy_pass http://192.168.86.57/;
|
||||
proxy_buffering off;
|
||||
proxy_redirect default;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header HTTP_X_FORWARDED_PROTO https;
|
||||
proxy_set_header Host $host;
|
||||
proxy_http_version 1.1;
|
||||
#proxy_cookie_path / "/mon; HTTPOnly; Secure";
|
||||
#proxy_cookie_flags express secure httponly;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
4
alpine/nginx/restart-nginx.sh
Executable file
4
alpine/nginx/restart-nginx.sh
Executable file
@ -0,0 +1,4 @@
|
||||
docker stop nginx
|
||||
docker rm nginx
|
||||
sleep 5
|
||||
/my/container-config/alpine/nginx/start-nginx.sh
|
14
alpine/nginx/start-nginx.sh
Executable file
14
alpine/nginx/start-nginx.sh
Executable file
@ -0,0 +1,14 @@
|
||||
# nginx container
|
||||
docker run --name nginx -v /my/container-config/alpine/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
|
||||
-m 2g -v /my/sites/ssl-cert:/home/ssl \
|
||||
-v /var/www/nextcloud:/var/www/nextcloud:ro \
|
||||
-v /var/www/enpass:/var/www/enpass:rw \
|
||||
-v /var/www/letsencrypt:/var/www/letsencrypt:ro \
|
||||
--net macvlan --ip 192.168.86.209 -d --restart=always alpine/nginx
|
||||
|
||||
# clearlinux/nginx
|
||||
#docker run --name nginx -v /my/container-config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
|
||||
#-v /etc/letsencrypt:/etc/letsencrypt:ro -m 2g \
|
||||
#-v /var/www/nextcloud:/var/www/nextcloud:ro \
|
||||
#--net macvlan --ip 192.168.86.3 -d --restart=always clearlinux/nginx
|
||||
|
7
alpine/openstack-cli/Dockerfile
Normal file
7
alpine/openstack-cli/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
||||
FROM alpine
|
||||
LABEL description="Openstack cli on alpine"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
ENV container docker
|
||||
RUN apk update; apk add py3-pip gcc python3-dev musl-dev linux-headers libffi-dev bash
|
||||
RUN pip3 install python-openstackclient
|
||||
ENTRYPOINT ["/bin/bash"]
|
5
alpine/ping/Dockerfile
Normal file
5
alpine/ping/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="ping test on alpine"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
ENV container docker
|
||||
CMD ["ping", "-qi5", "210.0.248.38"]
|
13
alpine/pma/Dockerfile
Normal file
13
alpine/pma/Dockerfile
Normal file
@ -0,0 +1,13 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="phpmyadmin on alpine"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
ENV container docker
|
||||
RUN apk update; apk add bash tini php81-pdo_mysql php81-fpm nginx php81-session supervisor unzip php81-iconv php81-mysqli php81-xml php81-mbstring
|
||||
RUN mkdir -p /var/www/html /etc/supervisor.d
|
||||
COPY nginx-default.conf /etc/nginx/http.d/default.conf
|
||||
RUN wget -O /tmp/pma.zip https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
|
||||
RUN unzip -qd /var/www/html /tmp/pma.zip; mv /var/www/html/phpMyAdmin* /var/www/html/pma; rm -f /tmp/pma.zip
|
||||
COPY config.inc.php /var/www/html/pma/config.inc.php
|
||||
RUN mkdir -p /var/www/html/pma/tmp/; chmod 777 /var/www/html/pma/tmp/
|
||||
COPY run.ini /etc/supervisor.d/run.ini
|
||||
CMD ["/usr/bin/supervisord", "-n"]
|
36
alpine/pma/config.inc.php
Normal file
36
alpine/pma/config.inc.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* phpMyAdmin sample configuration, you can use it as base for
|
||||
* manual configuration. For easier setup you can use setup/
|
||||
*
|
||||
* All directives are explained in documentation in the doc/ folder
|
||||
* or at <https://docs.phpmyadmin.net/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* This is needed for cookie based authentication to encrypt password in
|
||||
* cookie. Needs to be 32 chars long.
|
||||
*/
|
||||
$cfg['blowfish_secret'] = 'Z2RVfRex/rIuhv2AAJXQuzbllMs5PelMIWWMCO4Aoag=';
|
||||
|
||||
/**
|
||||
* Servers configuration
|
||||
*/
|
||||
$i = 0;
|
||||
|
||||
/**
|
||||
* First server
|
||||
*/
|
||||
$i++;
|
||||
/* Authentication type */
|
||||
$cfg['Servers'][$i]['auth_type'] = 'cookie';
|
||||
/* Server parameters */
|
||||
$cfg['Servers'][$i]['host'] = 'localhost';
|
||||
$cfg['Servers'][$i]['compress'] = false;
|
||||
$cfg['Servers'][$i]['AllowNoPassword'] = false;
|
||||
$cfg['UploadDir'] = '';
|
||||
$cfg['SaveDir'] = '';
|
||||
$cfg['AllowArbitraryServer'] = true;
|
||||
|
23
alpine/pma/nginx-default.conf
Normal file
23
alpine/pma/nginx-default.conf
Normal file
@ -0,0 +1,23 @@
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
root /var/www/html;
|
||||
|
||||
# You may need this to prevent return 404 recursion.
|
||||
location = /404.html {
|
||||
internal;
|
||||
}
|
||||
|
||||
location / {
|
||||
index index.php index.html;
|
||||
}
|
||||
|
||||
location ~ [^/]\.php(/|$) {
|
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||
fastcgi_param HTTP_PROXY "";
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_index index.php;
|
||||
include fastcgi_params;
|
||||
}
|
||||
}
|
5
alpine/pma/refresh-service.sh
Normal file
5
alpine/pma/refresh-service.sh
Normal file
@ -0,0 +1,5 @@
|
||||
aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin 728959568254.dkr.ecr.ap-southeast-1.amazonaws.com/
|
||||
docker push 728959568254.dkr.ecr.ap-southeast-1.amazonaws.com/lixil-cms/phpmyadmin
|
||||
aws ecs update-service --cluster dev-apse1-lixil-cms-ecs-cluster --service dev-lixil-pma-service --force-new-deployment
|
||||
aws ecs update-service --cluster staging-apse1-lixil-cms-ecs-cluster --service staging-apse1-lixil-cms-pma-service --force-new-deployment
|
||||
aws ecs update-service --cluster prod-apse1-lixil-cms-ecs-cluster --service prod-apse1-lixil-cms-pma-service --force-new-deployment
|
10
alpine/pma/run.ini
Normal file
10
alpine/pma/run.ini
Normal file
@ -0,0 +1,10 @@
|
||||
[program:nginx]
|
||||
command=/usr/sbin/nginx -g 'daemon off;'
|
||||
autostart=true
|
||||
autorestart=true
|
||||
|
||||
[program:phpfpm]
|
||||
command=/usr/sbin/php-fpm81 -F
|
||||
autostart=true
|
||||
autorestart=true
|
||||
|
10
alpine/privoxy/Dockerfile
Normal file
10
alpine/privoxy/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="Privoxy web proxy"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
ENV container docker
|
||||
RUN apk update; apk add tini privoxy
|
||||
RUN cd /etc/privoxy; touch default.filter user.filter; mv match-all.action.new match-all.action; mv user.action.new user.action
|
||||
COPY default.action /etc/privoxy/default.action
|
||||
COPY config /etc/privoxy/config
|
||||
ENTRYPOINT ["/sbin/tini", "--"]
|
||||
CMD ["/usr/sbin/privoxy", "--no-daemon", "--user", "privoxy", "/etc/privoxy/config"]
|
33
alpine/privoxy/config
Normal file
33
alpine/privoxy/config
Normal file
@ -0,0 +1,33 @@
|
||||
user-manual /usr/share/doc/privoxy/user-manual
|
||||
confdir /etc/privoxy
|
||||
#actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
|
||||
#actionsfile default.action # Main actions file
|
||||
#actionsfile user.action # User customizations
|
||||
#filterfile default.filter
|
||||
#filterfile user.filter # User customizations
|
||||
listen-address :8086
|
||||
toggle 0
|
||||
enable-remote-toggle 0
|
||||
enable-remote-http-toggle 0
|
||||
enable-edit-actions 0
|
||||
enforce-blocks 0
|
||||
buffer-limit 4096
|
||||
enable-proxy-authentication-forwarding 1
|
||||
forwarded-connect-retries 0
|
||||
accept-intercepted-requests 0
|
||||
allow-cgi-request-crunching 0
|
||||
split-large-forms 0
|
||||
keep-alive-timeout 15
|
||||
tolerate-pipelining 1
|
||||
socket-timeout 300
|
||||
permit-access 192.168.86.0/24
|
||||
permit-access [fc00::0]/64
|
||||
logdir /var/log/privoxy
|
||||
logfile privoxy.log
|
||||
#debug 1024
|
||||
#log-messages 1
|
||||
receive-buffer-size 32768
|
||||
listen-backlog 512
|
||||
max-client-connections 512
|
||||
socket-timeout 180
|
||||
tolerate-pipelining 1
|
2
alpine/privoxy/default.action
Normal file
2
alpine/privoxy/default.action
Normal file
@ -0,0 +1,2 @@
|
||||
{-block}
|
||||
.*
|
2
alpine/privoxy/restart.sh
Executable file
2
alpine/privoxy/restart.sh
Executable file
@ -0,0 +1,2 @@
|
||||
docker rm -f privoxy
|
||||
./start.sh
|
2
alpine/privoxy/start.sh
Executable file
2
alpine/privoxy/start.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
docker run -d --name privoxy --network macvlan --cpus 2 --memory 1g --restart always --ip 192.168.86.18 alpine/privoxy
|
10
alpine/redis/Dockerfile
Normal file
10
alpine/redis/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="Redis for use with gitea"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
ENV container docker
|
||||
RUN apk add bash tini redis
|
||||
#RUN addgroup -g 3000 ctnuser && adduser -u 3000 -G ctnuser -D ctnuser
|
||||
RUN sed -i -e 's/^bind.*/bind 0.0.0.0/g' -e 's/^protected-mode.*/protected-mode no/g' -e 's/^timeout.*/timeout 60/g' -e 's/^\(logfile.*\)/## \1/g' /etc/redis.conf
|
||||
RUN chown -R redis:redis /var/log/redis
|
||||
USER redis
|
||||
ENTRYPOINT ["/sbin/tini", "--", "/usr/bin/redis-server", "/etc/redis.conf"]
|
2
alpine/redis/build.sh
Executable file
2
alpine/redis/build.sh
Executable file
@ -0,0 +1,2 @@
|
||||
export DOCKER_BUILDKIT=1
|
||||
docker build --network host -t alpine/redis .
|
2
alpine/redis/restart.sh
Executable file
2
alpine/redis/restart.sh
Executable file
@ -0,0 +1,2 @@
|
||||
docker rm -f redis
|
||||
docker run -d --name redis --network macvlan --ip 192.168.86.212 --restart=always alpine/redis
|
7
alpine/squid/Dockerfile
Normal file
7
alpine/squid/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="squid on alpine"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
ENV container docker
|
||||
RUN apk update; apk add squid bash tini
|
||||
ENTRYPOINT ["/sbin/tini", "--"]
|
||||
CMD ["/usr/sbin/squid", "-N"]
|
3
alpine/squid/start.sh
Executable file
3
alpine/squid/start.sh
Executable file
@ -0,0 +1,3 @@
|
||||
docker run --name squid --cpus 2 -m 800m \
|
||||
--net macvlan --ip 192.168.86.88 -d --restart=always alpine-squid
|
||||
|
9
alpine/terraform13/Dockerfile
Normal file
9
alpine/terraform13/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="Terraform1.3 on Alpine"
|
||||
LABEL maintainer="xpk@headdesk.me"
|
||||
ENV container docker
|
||||
RUN apk update
|
||||
RUN apk add wget curl git bash libarchive-tools aws-cli
|
||||
RUN wget -qO - https://releases.hashicorp.com/terraform/1.3.9/terraform_1.3.9_linux_amd64.zip | bsdtar -xOf - > /usr/bin/terraform
|
||||
RUN chmod 755 /usr/bin/terraform
|
||||
CMD ["/bin/bash"]
|
3
alpine/terraform13/build.sh
Executable file
3
alpine/terraform13/build.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
export DOCKER_BUILDKIT=1
|
||||
docker buildx build --network host -t alpine/terraform13 .
|
10
alpine/tini-test/Dockerfile
Normal file
10
alpine/tini-test/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="tini test"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
ENV container docker
|
||||
RUN apk add bash tini
|
||||
#ENV TINI_VERSION v0.19.0
|
||||
#ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
|
||||
#RUN chmod +x /tini
|
||||
ENTRYPOINT ["/sbin/tini", "--"]
|
||||
CMD ["/bin/bash"]
|
8
alpine/valkey/Dockerfile
Normal file
8
alpine/valkey/Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
FROM alpine:latest
|
||||
LABEL description="Valkey server"
|
||||
LABEL maintainer="racken@one27.cf"
|
||||
ENV container docker
|
||||
RUN apk add bash tini valkey valkey-cli
|
||||
COPY valkey.conf /etc/valkey/valkey.conf
|
||||
USER valkey
|
||||
ENTRYPOINT ["/sbin/tini", "--", "/usr/bin/valkey-server", "/etc/valkey/valkey.conf"]
|
2
alpine/valkey/build.sh
Executable file
2
alpine/valkey/build.sh
Executable file
@ -0,0 +1,2 @@
|
||||
export DOCKER_BUILDKIT=1
|
||||
docker build --network host -t alpine/valkey .
|
3
alpine/valkey/restart.sh
Executable file
3
alpine/valkey/restart.sh
Executable file
@ -0,0 +1,3 @@
|
||||
docker rm -f valkey
|
||||
#docker run -d --name valkey --network macvlan --ip 192.168.86.212 --restart=always alpine/valkey
|
||||
docker run -d --name valkey --network macvlan --ip 192.168.86.212 --restart=always valkey/valkey
|
79
alpine/valkey/valkey.conf
Normal file
79
alpine/valkey/valkey.conf
Normal file
@ -0,0 +1,79 @@
|
||||
#bind 127.0.0.1 -::1
|
||||
protected-mode no
|
||||
port 6379
|
||||
tcp-backlog 511
|
||||
unixsocket /run/valkey/valkey.sock
|
||||
unixsocketperm 770
|
||||
timeout 0
|
||||
tcp-keepalive 300
|
||||
loglevel notice
|
||||
syslog-enabled yes
|
||||
syslog-ident valkey
|
||||
databases 16
|
||||
always-show-logo no
|
||||
set-proc-title yes
|
||||
proc-title-template "{title} {listen-addr} {server-mode}"
|
||||
locale-collate ""
|
||||
stop-writes-on-bgsave-error yes
|
||||
rdbcompression yes
|
||||
rdbchecksum yes
|
||||
dbfilename dump.rdb
|
||||
rdb-del-sync-files no
|
||||
dir /var/lib/valkey
|
||||
replica-serve-stale-data yes
|
||||
replica-read-only yes
|
||||
repl-diskless-sync yes
|
||||
repl-diskless-sync-delay 5
|
||||
repl-diskless-sync-max-replicas 0
|
||||
repl-diskless-load disabled
|
||||
repl-disable-tcp-nodelay no
|
||||
replica-priority 100
|
||||
acllog-max-len 128
|
||||
lazyfree-lazy-eviction no
|
||||
lazyfree-lazy-expire no
|
||||
lazyfree-lazy-server-del no
|
||||
replica-lazy-flush no
|
||||
lazyfree-lazy-user-del no
|
||||
lazyfree-lazy-user-flush no
|
||||
io-threads 4
|
||||
oom-score-adj no
|
||||
oom-score-adj-values 0 200 800
|
||||
disable-thp yes
|
||||
appendonly no
|
||||
appendfilename "appendonly.aof"
|
||||
appenddirname "appendonlydir"
|
||||
appendfsync everysec
|
||||
no-appendfsync-on-rewrite no
|
||||
auto-aof-rewrite-percentage 100
|
||||
auto-aof-rewrite-min-size 64mb
|
||||
aof-load-truncated yes
|
||||
aof-use-rdb-preamble yes
|
||||
aof-timestamp-enabled no
|
||||
|
||||
slowlog-log-slower-than 10000
|
||||
slowlog-max-len 128
|
||||
latency-monitor-threshold 0
|
||||
notify-keyspace-events ""
|
||||
hash-max-listpack-entries 512
|
||||
hash-max-listpack-value 64
|
||||
list-max-listpack-size -2
|
||||
list-compress-depth 0
|
||||
set-max-intset-entries 512
|
||||
set-max-listpack-entries 128
|
||||
set-max-listpack-value 64
|
||||
zset-max-listpack-entries 128
|
||||
zset-max-listpack-value 64
|
||||
hll-sparse-max-bytes 3000
|
||||
stream-node-max-bytes 4096
|
||||
stream-node-max-entries 100
|
||||
activerehashing yes
|
||||
client-output-buffer-limit normal 0 0 0
|
||||
client-output-buffer-limit replica 256mb 64mb 60
|
||||
client-output-buffer-limit pubsub 32mb 8mb 60
|
||||
hz 10
|
||||
dynamic-hz yes
|
||||
aof-rewrite-incremental-fsync yes
|
||||
rdb-save-incremental-fsync yes
|
||||
jemalloc-bg-thread yes
|
||||
include /etc/valkey/valkey.d/*.conf
|
||||
|
15
centos6/dp-tools/Dockerfile
Normal file
15
centos6/dp-tools/Dockerfile
Normal file
@ -0,0 +1,15 @@
|
||||
FROM centos:6
|
||||
LABEL description="Legacy Datapipe tools for Linux team"
|
||||
LABEL notes="These tools may be supported by Dan Drowns from LDP"
|
||||
ENV container docker
|
||||
RUN yum -y install epel-release
|
||||
RUN rpm -ivh http://repo.openfusion.net/centos6-x86_64/openfusion-release-0.7-1.of.el6.noarch.rpm
|
||||
RUN yum -y install wget perl perl-SOAP-Lite perl-PAR-Dist perl-parent perl-DBI perl-Frontier-RPC perl-Frontier-RPC-Client perl-Crypt-SSLeay expect perl-Expect perl-IO-Stty perl-TermReadKey perl-Mozilla-CA perl-Try-Tiny
|
||||
RUN rpm -e httpd mod_perl --nodeps
|
||||
RUN wget -q --no-check-certificate -O/dp-tools.tgz https://files.unix.cl.datapipe.net/index.php/s/jfTZMT6EZrAmHrb/download
|
||||
WORKDIR /
|
||||
RUN tar zxf dp-tools.tgz
|
||||
COPY README /root/README
|
||||
ENV PATH="$PATH:/dp/tools/maps-3.1.5/bin:/dp/tools/ssutils/bin:/dp/tools/serverlogin"
|
||||
ENV PS1 "see /root/README $ "
|
||||
ENTRYPOINT ["/bin/bash"]
|
8
centos6/dp-tools/README
Normal file
8
centos6/dp-tools/README
Normal file
@ -0,0 +1,8 @@
|
||||
# LDP tools
|
||||
3 tools can be found under /dp/tools:
|
||||
- maps: works with vDNS, use Rackspace RSA token
|
||||
- serverlogin: works with vDNS, use Rackspace RSA token
|
||||
- ssutils: cli tool for logging into LDP servers, talks to secretserver
|
||||
|
||||
# sources
|
||||
https://github.datapipe.net/abob/ssutils
|
9
centos7/filegw/Dockerfile
Normal file
9
centos7/filegw/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
FROM centos:7
|
||||
LABEL description="Smb file File gateway"
|
||||
ENV container docker
|
||||
RUN rm -f /etc/yum.repos.d/*.repo
|
||||
COPY centos-vault.repo /etc/yum.repos.d/centos-vault.repo
|
||||
RUN yum -y install samba4 samba4-client
|
||||
COPY smb.conf /etc/samba/smb.conf
|
||||
COPY run.sh /run.sh
|
||||
ENTRYPOINT ["/run.sh"]
|
36
centos7/filegw/centos-vault.repo
Normal file
36
centos7/filegw/centos-vault.repo
Normal file
@ -0,0 +1,36 @@
|
||||
# C7.8.2003
|
||||
[C7.8.2003-base]
|
||||
name=CentOS-7.8.2003 - Base
|
||||
baseurl=http://vault.centos.org/7.8.2003/os/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
|
||||
enabled=1
|
||||
|
||||
[C7.8.2003-updates]
|
||||
name=CentOS-7.8.2003 - Updates
|
||||
baseurl=http://vault.centos.org/7.8.2003/updates/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
|
||||
enabled=1
|
||||
|
||||
[C7.8.2003-extras]
|
||||
name=CentOS-7.8.2003 - Extras
|
||||
baseurl=http://vault.centos.org/7.8.2003/extras/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
|
||||
enabled=0
|
||||
|
||||
[C7.8.2003-centosplus]
|
||||
name=CentOS-7.8.2003 - CentOSPlus
|
||||
baseurl=http://vault.centos.org/7.8.2003/centosplus/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
|
||||
enabled=0
|
||||
|
||||
[C7.8.2003-fasttrack]
|
||||
name=CentOS-7.8.2003 - Fasttrack
|
||||
baseurl=http://vault.centos.org/7.8.2003/fasttrack/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
|
||||
enabled=0
|
||||
|
6
centos7/filegw/run.sh
Executable file
6
centos7/filegw/run.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
/usr/sbin/smbd -FS --no-process-group &
|
||||
/usr/sbin/nmbd -F &
|
||||
|
||||
wait
|
||||
exit $?
|
30
centos7/filegw/smb.conf
Normal file
30
centos7/filegw/smb.conf
Normal file
@ -0,0 +1,30 @@
|
||||
[global]
|
||||
map to guest = Bad Password
|
||||
workgroup = ZOOLO
|
||||
server string = File Gateway
|
||||
netbios name = FILEGW
|
||||
hosts allow = 127. 192.168.86.
|
||||
security = user
|
||||
passdb backend = tdbsam
|
||||
load printers = no
|
||||
printing = bsd
|
||||
[music]
|
||||
comment = Music
|
||||
browseable = Yes
|
||||
read only = Yes
|
||||
path = /nas/music
|
||||
public = Yes
|
||||
writable = No
|
||||
printable = No
|
||||
guest ok = yes
|
||||
guest only = yes
|
||||
[movies]
|
||||
comment = Movies
|
||||
browseable = Yes
|
||||
read only = Yes
|
||||
path = /nas/movies
|
||||
public = Yes
|
||||
writable = No
|
||||
printable = No
|
||||
guest ok = yes
|
||||
guest only = yes
|
1
centos7/filegw/start.sh
Executable file
1
centos7/filegw/start.sh
Executable file
@ -0,0 +1 @@
|
||||
docker run -d --name filegw --network macvlan -v /nas/music:/nas/music:ro -v /nas/movies:/nas/movies:ro --restart always centos7/filegw
|
7
centos8/ebcli/Dockerfile
Normal file
7
centos8/ebcli/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
||||
FROM centos:8
|
||||
ENV container docker
|
||||
RUN yum -y install gcc make git python3 zlib-devel openssl-devel ncurses-devel libffi-devel sqlite-devel readline-devel bzip2-devel
|
||||
RUN git clone https://github.com/aws/aws-elastic-beanstalk-cli-setup.git
|
||||
RUN ./aws-elastic-beanstalk-cli-setup/scripts/bundled_installer
|
||||
ENV PATH="/root/.ebcli-virtual-env/executables:/root/.pyenv/versions/3.7.2/bin:$PATH"
|
||||
CMD ["/bin/bash"]
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user