Skip to content

Commit 16ce3a3

Browse files
committed
Initial commit
0 parents  commit 16ce3a3

File tree

127 files changed

+14013
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+14013
-0
lines changed

.docker/nginx/Dockerfile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
FROM nginx:latest
2+
LABEL authors="[email protected]"
3+
4+
COPY ./ssl /etc/nginx/ssl
5+
WORKDIR /etc/nginx
6+
#
7+
# This requires to have these commands run inside the nginx-folder to create the CA certificates
8+
#
9+
# > openssl genrsa -out ssl/ca.key 4096; \
10+
# > openssl req -x509 -new -nodes -subj "/C=ug/O=php/CN=development certificates;" -key ssl/ca.key -sha512 -days 3650 -out ssl/ca.crt;
11+
#
12+
RUN apt-get update && apt-get install -y openssl && \
13+
openssl genrsa -out "ssl/php.ug.lo.key" 2048 && \
14+
openssl req -new -subj "/C=ug/O=php/CN=php.ug.lo.lo" -key "ssl/php.ug.lo.key" -out "ssl/php.ug.lo.csr" && \
15+
openssl x509 -req -in "ssl/php.ug.lo.csr" -extfile "ssl/php.ug.lo.ext" -CA "ssl/ca.crt" -CAkey "ssl/ca.key" -CAcreateserial -out "ssl/php.ug.lo.crt" -days=365 -sha512 && \
16+
rm "ssl/php.ug.lo.csr" "ssl/ca.key" && \
17+
apt-get remove -y openssl
18+
19+
WORKDIR /var/www/php.ug/public
20+
21+
22+

.docker/nginx/default.conf

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
server {
2+
3+
# Set the port to listen on and the server name
4+
listen 80;
5+
listen [::]:80;
6+
server_name php.ug php.ug.lo;
7+
8+
return 301 https://$server_name$request_uri;
9+
}
10+
11+
server {
12+
listen [::]:443 ssl;
13+
listen 443 ssl;
14+
server_name php.ug php.ug.lo;
15+
# Set the document root of the project
16+
root /var/www/php.ug/public;
17+
18+
# Set the directory index files
19+
index index.html index.php;
20+
21+
ssl_certificate /etc/nginx/ssl/php.ug.lo.crt;
22+
ssl_certificate_key /etc/nginx/ssl/php.ug.lo.key;
23+
24+
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
25+
ssl_ciphers HIGH:!aNULL:!MD5;
26+
27+
# Specify the default character set
28+
charset utf-8;
29+
30+
rewrite ^/index\.php/?(.*)$ /$1 permanent;
31+
# Setup the default location configuration
32+
location / {
33+
if (-f $request_filename) {
34+
break;
35+
}
36+
rewrite ^(.*)$ /index.php$1 last;
37+
}
38+
39+
location ~ ^/index\.php(?:/|$) {
40+
fastcgi_pass php:9000;
41+
fastcgi_split_path_info ^(.+\.php)(/.*)$;
42+
include fastcgi_params;
43+
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
44+
fastcgi_param DOCUMENT_ROOT $realpath_root;
45+
fastcgi_param HTTP_PROXY "";
46+
fastcgi_param APP_ENV dev;
47+
}
48+
49+
# Specify the details of favicon.ico
50+
location = /favicon.ico { access_log off; log_not_found off; }
51+
52+
# Specify the details of robots.txt
53+
location = /robots.txt { access_log off; log_not_found off; }
54+
55+
# Specify the logging configuration
56+
access_log /var/log/nginx/access.log;
57+
error_log /var/log/nginx/error.log debug;
58+
59+
sendfile off;
60+
61+
client_max_body_size 100m;
62+
63+
# Specify what happens what .ht files are requested
64+
location ~ /\.ht {
65+
deny all;
66+
}
67+
}

.docker/nginx/ssl/ca.crt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFZTCCA02gAwIBAgIUfQsM+KFueIgCAjvbKpV+IoPALVUwDQYJKoZIhvcNAQEN
3+
BQAwQjELMAkGA1UEBhMCY2gxDzANBgNVBAoMBnRlYW11cDEiMCAGA1UEAwwZZGV2
4+
ZWxvcG1lbnQgY2VydGlmaWNhdGVzOzAeFw0yMTA0MTUxMDA3MTJaFw0zMTA0MTMx
5+
MDA3MTJaMEIxCzAJBgNVBAYTAmNoMQ8wDQYDVQQKDAZ0ZWFtdXAxIjAgBgNVBAMM
6+
GWRldmVsb3BtZW50IGNlcnRpZmljYXRlczswggIiMA0GCSqGSIb3DQEBAQUAA4IC
7+
DwAwggIKAoICAQDHFUrSML5xpF6Z5+AC9rw4lNZjpRlXSZjbLTFA8znOqaIdywaR
8+
k+Q5MUefnn2SIJJjQUjyAkxW8kKtS/1ZfbrcdOqyNId87G8CvDIevjaZC8UfUbrN
9+
7eVKD5mgR5p1YhxlB40fLmhjzJ2gLUnFl87KOzkM0hDU2wgCLnuVbm4rBThJG5lU
10+
rtc+N502agHeN8hm85KciMa0vxaaBWM7nIv9G+1LoihyG1TrnmGadyWPIoPcZXIS
11+
27+Jz6Vt79PaYW/cu/X3mVScMZ4ZeS4hHM3Q+nSiO+YyIvYW0ZAKpo/1sHF1f/Cz
12+
uKQxyyzDf96jpgBe12Fe0N7MWx+avRXFwzqPzwavQaNrJYNKKPwoFrSs6zPrbGfR
13+
SWrvV4JxDj+pE6o5rHlak/8g/c+LXsKNphT+OKRbSbghPUk3e/Ic3REa+BR2NxU+
14+
7J7yreoMDapdeGUAl03Vu7oFMWT8B8TyXpBfcu++5+7Sa9IRI3OByjO1HGDbyNWG
15+
vb6K+5AJKyhp75j6tO7vgzrxkjUB6OSNZwR+tfL0oabxOJ8RZIBnmgEVTnb028u2
16+
QPRVYcZF/+g+3KpP+DDObpZkgn47bz1fm9L9cjro5iQswforBC1WHVajWG/1NBuY
17+
ZfCTVQ0mp7V9h10tObFbg9/0LYmvU4rsU4CrBsFUEMdIboTaTqvWQUS9kwIDAQAB
18+
o1MwUTAdBgNVHQ4EFgQUP6rd/kCTwMbKeyebRLzqA+YC7M4wHwYDVR0jBBgwFoAU
19+
P6rd/kCTwMbKeyebRLzqA+YC7M4wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B
20+
AQ0FAAOCAgEADiRtxM5ZvdiXoAr74AabmDExLHwWFOYQdsttng0k/fjSNM6tsmZ5
21+
K6waGwCRM/qUsmfM9bnbtyrXdlyETEhCk0NSj/uIVFccbVFa92ZdF3VmSbtFDqy3
22+
U+JrC4D1pfWbFlkvk2ZN4MpziYfH8YH9m6LlLNJPrCB7+4U+cP4QeOK1860mwghl
23+
miPeXaI9b/3lndQsry0CyTTU4K3XTosGtFTiExpmNRoo9bJovU4NQw3AJS0gM4D3
24+
xSVjKIvDIIiprcHGHOCM44r0+iOppt8YrlnaPbvhxNYiawFlFnbhuYCg4csJYoDU
25+
fkpJSXf4+z+e1JMBSb828+JHRDttDv9+K4ff3fExZi3vBfPofWfIvMG1ihuLeCaC
26+
Kl2tOG92UsFiCnpRTmRPIGBBIOwWxRqRrZGhp9+C5ekxr8OlY7zhgceaw9gwGCey
27+
rpPETGc7cayRYVe0POFE1WxI6eTe77dPbFWfxS1Q4JEmXHlw86U+xWZAoYe0wdEE
28+
1VN5gCkDe9o7Sq9+7I7VGK1jfX5r7N2lZftChN6nBz9XVc2JrPMulnPc5rJS9WPs
29+
ZnEpqzCqneNMVSZJFQVZFtEGYQbKebbVIidodSr7iypeNly6Uvd0akJo8Y85d5F6
30+
ja/wy+Jl8actMzuygHDdj61CNn2cOKz0qMLqxFut6/NxERAYojii/ak=
31+
-----END CERTIFICATE-----

.docker/nginx/ssl/ca.key

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
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
51+
-----END RSA PRIVATE KEY-----

.docker/nginx/ssl/php.ug.lo.ext

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
authorityKeyIdentifier=keyid,issuer
2+
basicConstraints=CA:FALSE
3+
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
4+
extendedKeyUsage = serverAuth, clientAuth
5+
subjectAltName = @alt_names
6+
[alt_names]
7+
DNS.1 = php.ug.lo
8+
DNS.2 = *.php.ug.lo

.docker/php/Dockerfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
FROM php:8.4-fpm
2+
LABEL authors="[email protected]"
3+
4+
COPY --from=ghcr.io/php/pie:bin /pie /usr/bin/pie
5+
COPY scripts /tmp
6+
RUN bash -c "/tmp/php-build.sh"
7+
RUN bash -c "/tmp/php-install-composer.sh"
8+
RUN bash -c "/tmp/php-install-phive.sh"
9+
WORKDIR "/var/www/php.ug"

.docker/php/scripts/php-build.sh

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/bin/bash
2+
# Build PHP
3+
set -xe
4+
5+
# persistent / runtime deps
6+
PHPIZE_DEPS="autoconf \
7+
cmake \
8+
file \
9+
g++ \
10+
gcc \
11+
libc-dev \
12+
libpcre2-dev \
13+
make \
14+
git \
15+
pkgconf \
16+
re2c \
17+
libfreetype6-dev \
18+
libpng-dev \
19+
libicu-dev \
20+
libxml2-dev \
21+
libzip-dev \
22+
libpcre2-dev \
23+
libfreetype6-dev \
24+
libjpeg-dev \
25+
libc-client-dev \
26+
libkrb5-dev \
27+
libmagickwand-dev \
28+
libjpeg-dev"
29+
apt-get update
30+
apt-get install -y \
31+
gpg \
32+
unzip
33+
34+
apt-get install -y $PHPIZE_DEPS
35+
docker-php-ext-configure gd
36+
docker-php-ext-configure bcmath --enable-bcmath
37+
docker-php-ext-configure intl --enable-intl
38+
docker-php-ext-configure pcntl --enable-pcntl
39+
docker-php-ext-configure pdo_mysql
40+
docker-php-ext-configure mysqli
41+
docker-php-ext-configure soap --enable-soap
42+
docker-php-ext-install -j$(nproc) \
43+
gd \
44+
bcmath \
45+
intl \
46+
pcntl \
47+
pdo_mysql \
48+
mysqli \
49+
soap \
50+
sockets \
51+
opcache
52+
53+
pie install phpredis/phpredis
54+
pie install imagick/imagick
55+
pie install pecl/zip
56+
57+
pie install xdebug/xdebug
58+
echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
59+
echo "xdebug.discover_client_host=on" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
60+
echo "xdebug.client_host=host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
61+
echo "memory_limit=-1" >> /usr/local/etc/php/php.ini
62+
63+
apt-get remove -y $PHPIZE_DEPS
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/bin/bash
2+
3+
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
4+
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
5+
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
6+
if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then rm composer-setup.php ; exit 1; fi
7+
php composer-setup.php --quiet
8+
rm composer-setup.php
9+
mv ./composer.phar /usr/local/bin/composer
10+
chmod 755 /usr/local/bin/composer
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
3+
curl -Lo phive.phar https://phar.io/releases/phive.phar
4+
curl -Lo phive.phar.asc https://phar.io/releases/phive.phar.asc
5+
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 0x9D8A98B29B2D5D79
6+
gpg --verify phive.phar.asc phive.phar
7+
chmod +x phive.phar
8+
mv phive.phar /usr/local/bin/phive

.editorconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
root = true
2+
3+
[*]
4+
indent_size = tab
5+
indent_style = tab
6+
insert_final_newline = true
7+
end_of_line = lf
8+
max_line_length = 120
9+
tab_width = 4
10+
trim_trailing_whitespace = true
11+
charset = utf-8
12+
13+
[*.js]
14+
tab_width = 2

0 commit comments

Comments
 (0)