feat: Basic functional project done.
This commit is contained in:
parent
6773f8db8c
commit
b3c7fffdf1
9
AnPServer/Dockerfile.debian
Normal file
9
AnPServer/Dockerfile.debian
Normal file
@ -0,0 +1,9 @@
|
||||
from debian
|
||||
volume ./git /Projects
|
||||
volume ./scripts /Scripts
|
||||
volume ./files /Files
|
||||
volume ../docker/Nginx/tmp /Nginx
|
||||
copy install.sh /install.sh
|
||||
run chmod +x /install.sh
|
||||
run /install.sh
|
||||
run rm /install.sh
|
17
AnPServer/files/AnP.py.settings.secrets.json
Executable file
17
AnPServer/files/AnP.py.settings.secrets.json
Executable file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"language" : "espanol",
|
||||
"print_files_pattern" : "/Python\\/(common.py|Application|Managers|Drivers|Models)/",
|
||||
"print_types_allowed" : ["unkn", "info", "ok", "warn", "erro", "exce", "test", "note", "help"],
|
||||
"i18n_show_add_ok_message" : false,
|
||||
"path_show_load_ok_message" : false,
|
||||
"http_show_add_ok_message" : false,
|
||||
"managers_routes_show_add_file_error_message" : true,
|
||||
"managers_mime_extensions_show_add_ok_message" : false,
|
||||
"managers_mime_extensions_show_add_extension_ok_message" : false,
|
||||
"path_show_get_modified_date_ok_message" : false,
|
||||
"threads_show_add_ok_message" : false,
|
||||
"managers_routes_show_go_ok_message" : false,
|
||||
"threads_show_remove_ok_message" : false,
|
||||
"show_print_types_add_item_ok_message" : false,
|
||||
"unix_domain_socket_web_server_show_process_request_ok_message" : false
|
||||
}
|
37
AnPServer/files/AnP.py.settings.server.secrets.json
Normal file
37
AnPServer/files/AnP.py.settings.server.secrets.json
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
"servers" : {
|
||||
"UnixDomainSocketWeb" : {
|
||||
"driver" : "Drivers.UnixDomainSocketWebServer",
|
||||
"path" : "/Nginx/anp.sock",
|
||||
"clients" : 5,
|
||||
"permissions_acl" : false,
|
||||
"users" : ["kyman", "www-data"],
|
||||
"http_version" : "1.1",
|
||||
"sudo" : false
|
||||
}
|
||||
},
|
||||
"applications" : {
|
||||
"CDN" : {
|
||||
"path" : "/Projects/CDN/Python",
|
||||
"class" : "Application.CDN"
|
||||
},
|
||||
"ErrorsManager" : {
|
||||
"path" : "/Projects/ErrorsManager/Python",
|
||||
"class" : "Application.ErrorsManager"
|
||||
},
|
||||
"WMarkDown" : {
|
||||
"path" : "/Projects/WMarkDown/Python",
|
||||
"class" : "Application.WMarkDown"
|
||||
},
|
||||
"PythonMapper" : {
|
||||
"path" : "/Projects/PythonMapper/Python",
|
||||
"load" : false,
|
||||
"class" : "Application.PythonMapper"
|
||||
},
|
||||
"AnPWeb" : {
|
||||
"path" : "/Projects/AnP/Python",
|
||||
"load" : false,
|
||||
"class" : "Application.AnPWeb"
|
||||
}
|
||||
}
|
||||
}
|
4
AnPServer/install.sh
Normal file
4
AnPServer/install.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
# apt update && apt -y upgrade && apt -y autoremove
|
||||
apt update
|
||||
apt -y install python3 git
|
4
AnPServer/rebuild.sh
Executable file
4
AnPServer/rebuild.sh
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
directory=`dirname $(readlink -f "$0")`
|
||||
[ "$(docker images -q kyman:anp-server 2>/dev/null)" ] && docker image remove kyman:anp-server --force
|
||||
docker build -f $directory/Dockerfile.debian -t kyman:anp-server $directory --no-cache
|
59
AnPServer/scripts/entrypoint.sh
Executable file
59
AnPServer/scripts/entrypoint.sh
Executable file
@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
|
||||
closed=
|
||||
|
||||
# rm -R /Projects/*
|
||||
if [[ "$1" == "1" ]];then
|
||||
rm -R /Projects/*
|
||||
fi
|
||||
|
||||
[[ "$(cat /etc/passwd|grep kyman)" == "" ]] && useradd -u 1000 -m kyman
|
||||
[[ "$(cat /etc/passwd|grep www-data)" == "" ]] && useradd -u 33 www-data
|
||||
|
||||
build(){
|
||||
|
||||
local name=$2
|
||||
|
||||
cd /Projects
|
||||
|
||||
if [[ ! -d $name ]];then
|
||||
|
||||
local group=$1
|
||||
|
||||
git clone https://git.k3y.pw/$group/$name
|
||||
|
||||
if [[ "$name" == "AnP" ]];then
|
||||
[[ -d /Projects/$name/Python/Modules ]] || mkdir /Projects/$name/Python/Modules
|
||||
for module in ErrorsManager WMarkDown;do
|
||||
ln -s /Projects/$module/Python/$module.py /Projects/$name/Python/Modules/$module.py
|
||||
done
|
||||
else
|
||||
[[ -d /Projects/$name/Python/Abstracts ]] || mkdir /Projects/$name/Python/Abstracts
|
||||
for file in AnPMap Applications;do
|
||||
ln -s /Projects/AnP/Python/Abstracts/$file.py /Projects/$name/Python/Abstracts/$file.py
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
build KyMAN ErrorsManager
|
||||
build Whalers WMarkDown
|
||||
build AnP AnP
|
||||
build KyMAN PythonMapper
|
||||
build KyMAN CDN
|
||||
|
||||
[[ -f /Projects/AnP/JSON/AnP.py.settings.secrets.json ]] ||
|
||||
ln -s /Files/AnP.py.settings.secrets.json /Projects/AnP/JSON/AnP.py.settings.secrets.json
|
||||
|
||||
[[ -f /Projects/AnP/JSON/AnP.py.settings.server.secrets.json ]] ||
|
||||
ln -s /Files/AnP.py.settings.server.secrets.json /Projects/AnP/JSON/AnP.py.settings.server.secrets.json
|
||||
|
||||
trap "closed=1" INT TERM EXIT
|
||||
while [[ "$closed" != "1" ]];do
|
||||
wait || wait
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# [[ -f /Scripts/stop.sh ]] && source /Scripts/stop.sh
|
3
AnPServer/scripts/run.sh
Executable file
3
AnPServer/scripts/run.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
cd /Projects/AnP/Tools
|
||||
./server.py.sh
|
32
Documentation/espanol.md
Normal file
32
Documentation/espanol.md
Normal file
@ -0,0 +1,32 @@
|
||||
El proyecto **AnPDockerServer** es un pequeño proyecto de muestreo y guía para montar un servidor AnP con Docker, con sus Scripts correspondientes y gestión de dependencias y ficheros locales. El servidor AnP irá puenteado por un servidor Proxy que gestione la salida pública del mismo, al poder ser, mediante un Socket de Dominio Unix (Unix Domain Server o UDS). A medida que vaya desarrollándose dicho proyecto aparecerán nuevas tecnologías y métodos por los que comunicarse mediante puenteo Proxy.
|
||||
|
||||
Se usará el Docker Compose para gestionar el conjunto de las herramientas, y cada contenedor será Buildeado a partir de un Script que tendrán cada uno acompañado a su correspondiente Dockerfile, el cual será siempre "rebuild.sh". Las nomenclaturas del Dockerfile no será el estándar *Dockerfile* sino que será continuado por el sistema operativo por el que operará separado de un punto, por lo general como *Dockerfile.debian*.
|
||||
|
||||
La subred del Docker Compose será **172.22.0.0/24** por defecto, y todos los contenedores que éste lance será siempre sobre dicha subred.
|
||||
|
||||
# Nginx
|
||||
|
||||
Nginx es una tecnología Proxy de origen ruso Full Open Source muy extendido. Es cierto que existe una alternativa Full Free Open Source, pero en este caso, se decidió montar sobre la tecnología original.
|
||||
|
||||
> Somos conscientes de que ya existe un contenedor público en Docker Hub de Nginx, sin embargo, éste no sigue el patrón de funcionamiento original de Nginx, pese a ser original y propio de los creadores de Nginx, por lo que se decidió crear de 0 un contenedor base Debian con esta tecnología para que éste coincida con la documentación oficial del mismo, pero eso no quita que pueda ser usado de la misma manera el contenedor oficial que los creadores dejaron público.
|
||||
|
||||
El servidor Nginx operará directamente sobre la IP **172.22.0.86** y levantará los siguientes puertos:
|
||||
|
||||
- **80**: Para las salidas y peticiones HTTP.
|
||||
- **443**: Para las salidas y peticiones HTTPS.
|
||||
|
||||
También compartirá los siguientes directorios:
|
||||
|
||||
- **/Projects**, *"/Nginx/projects" en local*: Este directorio se usa para compartir y gestionar desde el anfitrión los ficheros de configuración del propio Nginx.
|
||||
- **/Certificates**, *"/certificates" en local*: Este directorio contendría los certificados acordes a los distintos dominios que tengamos registrados en el Nginx.
|
||||
- **/Scripts**, *"/Nginx/scripts" en local*: Este directorio almacena los Scripts para que el OS pueda ejecutar en entorno de ejecución o que el propio usuario habra una nueva terminal mediante "docker exec -it nginx-server bash" y pueda operar de forma más sencilla las diferentes partes que el proyecto toca.
|
||||
- **/var/log/nginx**, *"/Nginx/logs" en local*: Este será un directorio autocreado que contendrá los Logs del propio Nginx compartidos con el anfitrión para que el usuario tenga acceso a los mismos externamente al contenedor y éstos no se pierdan por cada reinicio o apagado del contenedor.
|
||||
- **/tmp/pointers**, *"/Nginx/tmp" en local*: Este directorio se automontará en local y sólo contendrá cosas cuando éste sea usado por el propio Nginx, como es el caso de la creación por parte de terceras aplicaciones un archivo de gestión de comunicación de Sockers de Dominio Unix, por ejemplo.
|
||||
|
||||
En los proyectos nos encontraremos dos ficheros, los cuales son:
|
||||
|
||||
- **/Projects/nginx.80.conf**: El cual está diseñado para funcionar sobre el puerto 80, tanto en escucha como en envío, es decir, por el protocolo HTTP.
|
||||
- **/Porjects/nginx.443.conf**: El cual está diseñador para funcionar sobre el puerto 443, tanto en escucha como en envío, es decir, por el protocolo HTTP con SSL, es decir, HTTPS. Éste depende plenamente de los certificados, donde tenemos uno de prueba para opera con éste aunque no concuerde con el dominio que está firmando.
|
||||
|
||||
|
||||
|
8
Nginx/Dockerfile.debian
Normal file
8
Nginx/Dockerfile.debian
Normal file
@ -0,0 +1,8 @@
|
||||
from debian
|
||||
expose 80/tcp
|
||||
expose 443/tcp
|
||||
volume ./projects /Projects
|
||||
volume ./certificates /Certificates
|
||||
volume ./scripts /Scripts
|
||||
volume ./logs:/var/log/nginx
|
||||
volume ./tmp:/tmp/pointers
|
34
Nginx/certificates/test.crt
Normal file
34
Nginx/certificates/test.crt
Normal file
@ -0,0 +1,34 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
52
Nginx/certificates/test.key
Normal file
52
Nginx/certificates/test.key
Normal file
@ -0,0 +1,52 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
RR+gn4ay5Dbpfo4ZIuT2tAwA3RQW
|
||||
-----END PRIVATE KEY-----
|
41
Nginx/projects/nginx.443.conf
Normal file
41
Nginx/projects/nginx.443.conf
Normal file
@ -0,0 +1,41 @@
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
access_log /var/log/nginx/default.access.log;
|
||||
access_log /var/log/nginx/default.error.log;
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl default_server;
|
||||
listen [::]:443 ssl default_server;
|
||||
ssl_certificate /Certificates/test.crt;
|
||||
ssl_certificate_key /Certificates/test.key;
|
||||
access_log /var/log/nginx/default.433.access.log;
|
||||
error_log /var/log/nginx/default.433.error.log;
|
||||
location / {
|
||||
root /Projects/default;
|
||||
index index.html index.htm;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name ~^(anp|cdn|errorsmanager|wm(arkdown|d)|pythonmapper)\.local?$;
|
||||
ssl_certificate /Certificates/test.crt;
|
||||
ssl_certificate_key /Certificates/test.key;
|
||||
access_log /var/log/nginx/default.433.access.log;
|
||||
error_log /var/log/nginx/default.433.error.log;
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Host $proxy_add_x_forwarded_for;
|
||||
proxy_pass http://socket_anp/;
|
||||
}
|
||||
}
|
||||
|
||||
upstream socket_anp {
|
||||
server unix:/tmp/pointers/anp.sock;
|
||||
}
|
29
Nginx/projects/nginx.80.conf
Normal file
29
Nginx/projects/nginx.80.conf
Normal file
@ -0,0 +1,29 @@
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
root /Projects/default;
|
||||
access_log /var/log/nginx/default.access.log;
|
||||
access_log /var/log/nginx/default.error.log;
|
||||
location / {
|
||||
try_files /index.html = 404;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name ~^(anp|cdn|errorsmanager|wm(arkdown|d)|pythonmapper)\.local?$;
|
||||
access_log /var/log/nginx/default.80.access.log;
|
||||
error_log /var/log/nginx/default.80.error.log;
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Host $proxy_add_x_forwarded_for;
|
||||
proxy_pass http://socket_anp/;
|
||||
}
|
||||
}
|
||||
|
||||
upstream socket_anp {
|
||||
server unix:/tmp/pointers/anp.sock;
|
||||
}
|
4
Nginx/rebuild.sh
Executable file
4
Nginx/rebuild.sh
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
directory=`dirname $(readlink -f "$0")`
|
||||
[ "$(docker images -q kyman:nginx-server 2>/dev/null)" ] && docker image remove kyman:nginx-server --force
|
||||
docker build -f $directory/Dockerfile.debian -t kyman:nginx-server $directory --no-cache
|
25
Nginx/scripts/create_certificate.sh
Executable file
25
Nginx/scripts/create_certificate.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
name=$1
|
||||
days=$2
|
||||
|
||||
if [[ "$name" == "" ]];then
|
||||
echo -e "[ERRO] I need a name for the new certificate. Use the next example for your command where days is optional and it is 365 (1 year) by default:\n./create_certificate.sh NAME [DAYS]"
|
||||
else
|
||||
|
||||
echo "[INFO] Creating the new certificate '$name'..."
|
||||
|
||||
if [[ "$(command -v openssl)" == "" ]];then
|
||||
echo "[INFO] Installing the 'openssl' command application for create the new certificate."
|
||||
apt install -y openssl
|
||||
fi
|
||||
|
||||
if [[ "$days" == "" ]];then
|
||||
days=365
|
||||
fi
|
||||
|
||||
openssl req -newkey rsa:4096 -x509 -sha256 -days $days -nodes -out $name.crt -keyout $name.key &&
|
||||
echo "[ OK ] The new certificate '$name' was created for $days days. Look for the '$name.crt' and '$name.key' files in this folder." ||
|
||||
echo "[ERRO] There was any error creating the new certificate '$name'."
|
||||
|
||||
fi
|
42
Nginx/scripts/run.sh
Normal file
42
Nginx/scripts/run.sh
Normal file
@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
closed=
|
||||
mode=80 # 80 || 443 <=> http || https
|
||||
|
||||
if [[ "$(command -v nginx)" == "" ]];then
|
||||
|
||||
echo "[INFO] Installing Nginx..."
|
||||
|
||||
apt update && apt -y upgrade && apt -y autoremove
|
||||
apt install -y nginx
|
||||
|
||||
# chmod +x docker.entrypoint.sh
|
||||
|
||||
fi
|
||||
|
||||
echo "[INFO] Settings Nginx..."
|
||||
|
||||
/etc/init.d/nginx restart
|
||||
[[ -f /etc/nginx/sites-enabled/default ]] &&
|
||||
run rm /etc/nginx/sites-enabled/default
|
||||
for type in available enabled;do
|
||||
[[ ! -f /etc/nginx/sites-$type/nginx.$mode.conf ]] &&
|
||||
[[ -f /Projects/nginx.$mode.conf ]] &&
|
||||
ln -s /Projects/nginx.$mode.conf /etc/nginx/sites-$type/nginx.$mode.conf
|
||||
done
|
||||
|
||||
echo "[ OK ] Nginx installet and set fully."
|
||||
|
||||
echo "[INFO] Restarting Nginx..."
|
||||
|
||||
/etc/init.d/nginx restart
|
||||
|
||||
trap "closed=1" INT TERM EXIT
|
||||
while [[ "$closed" != "1" ]];do
|
||||
wait || wait
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo "[INFO] Stopping Nginx..."
|
||||
|
||||
/etc/init.d/nginx stop
|
@ -1,3 +1,5 @@
|
||||
# AnPDockerServer
|
||||
|
||||
A Single project for deploy the AnP Server in Docker. In the first, it was deployed by Nginx, but it was change with new technologies, without removed old.
|
||||
|
||||
[![Español](https://cdn.local/images/flags/espanol.svg)](Documentation/espanol.md)
|
38
docker-compose.yml
Normal file
38
docker-compose.yml
Normal file
@ -0,0 +1,38 @@
|
||||
services:
|
||||
|
||||
anp_server:
|
||||
image: kyman:anp-server
|
||||
container_name: anp-server
|
||||
volumes:
|
||||
- ./AnPServer/git:/Projects
|
||||
- ./AnPServer/scripts:/Scripts
|
||||
- ./AnPServer/files:/Files
|
||||
- ./Nginx/tmp:/Nginx
|
||||
networks:
|
||||
dev-network-tests:
|
||||
ipv4_address: 172.22.0.190
|
||||
command: /Scripts/entrypoint.sh
|
||||
|
||||
nginx_server:
|
||||
image: kyman:nginx-server
|
||||
container_name: nginx-server
|
||||
ports:
|
||||
- 80:80/tcp
|
||||
- 443:443/tcp
|
||||
volumes:
|
||||
- ./Nginx/projects:/Projects
|
||||
- ./certificates:/Certificates
|
||||
- ./Nginx/scripts:/Scripts
|
||||
- ./Nginx/logs:/var/log/nginx
|
||||
- ./Nginx/tmp:/tmp/pointers
|
||||
networks:
|
||||
dev-network-tests:
|
||||
ipv4_address: 172.22.0.86
|
||||
command: /Scripts/run.sh
|
||||
|
||||
networks:
|
||||
dev-network-tests:
|
||||
driver: bridge
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.22.0.0/24
|
Loading…
Reference in New Issue
Block a user