dasherr
This commit is contained in:
parent
b8b3eddd00
commit
33b3a9e68e
|
@ -0,0 +1 @@
|
|||
Subproject commit 234624c5656d4ff2570d474310455507784e3a3b
|
|
@ -0,0 +1,47 @@
|
|||
FROM alpine:3.16 AS builder
|
||||
RUN apk add --update \
|
||||
--no-cache \
|
||||
pcre~=8.45 \
|
||||
libxml2~=2.9 \
|
||||
libxslt~=1.1 \
|
||||
gcc~=11.2 \
|
||||
make~=4.3 \
|
||||
libc-dev~=0.7 \
|
||||
pcre-dev~=8.45 \
|
||||
zlib-dev~=1.2 \
|
||||
libxml2-dev~=2.9 \
|
||||
libxslt-dev~=1.1 && \
|
||||
cd /tmp && \
|
||||
wget -q https://github.com/nginx/nginx/archive/master.zip -O nginx.zip && \
|
||||
unzip nginx.zip && \
|
||||
cd nginx-master && \
|
||||
./auto/configure --prefix=/opt/nginx && \
|
||||
make && \
|
||||
make install && \
|
||||
apk del gcc make libc-dev pcre-dev zlib-dev libxml2-dev libxslt-dev && \
|
||||
rm -rf /var/cache/apk
|
||||
|
||||
FROM alpine:3.16
|
||||
|
||||
RUN apk add --update \
|
||||
--no-cache \
|
||||
pcre~=8.45 \
|
||||
libxml2~=2.9 \
|
||||
libxslt~=1.1 \
|
||||
apache2-utils~=2.4 \
|
||||
su-exec~=0.2 \
|
||||
tzdata~=2022 &&\
|
||||
rm -rf /var/cache/apk && \
|
||||
mkdir /html
|
||||
|
||||
COPY --from=builder /opt /opt
|
||||
|
||||
COPY nginx.conf /opt/nginx/conf/nginx.conf
|
||||
COPY Dasherr/www/ html/
|
||||
COPY entrypoint.sh /
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
|
||||
ENTRYPOINT ["/bin/sh", "/entrypoint.sh"]
|
||||
CMD ["/opt/nginx/sbin/nginx", "-g", "daemon off;"]
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 Alexander Gorokhov
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -0,0 +1,22 @@
|
|||
# Installation
|
||||
|
||||
```
|
||||
git clone https://github.com/atareao/self-hosted.git
|
||||
cd self-hosted/nginx
|
||||
touch htpasswd
|
||||
docker run --init -it -v "${PWD}/htpasswd:/opt/nginx/conf/.htpasswd" --rm --name dasherr atareao/dasherr htpasswd -c /opt/nginx/conf/.htpasswd tuusuario
|
||||
```
|
||||
|
||||
If you want to work with Traefik,
|
||||
|
||||
```
|
||||
docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
If you want to work with Caddy,
|
||||
|
||||
```
|
||||
docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d
|
||||
docker-compose logs -f
|
||||
```
|
|
@ -0,0 +1,13 @@
|
|||
version: '3'
|
||||
|
||||
services:
|
||||
dasherr:
|
||||
networks:
|
||||
- proxy
|
||||
labels:
|
||||
- caddy="${FQDN}"
|
||||
- caddy.reverse_proxy="{{upstreams 8080}}"
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
|
@ -0,0 +1,20 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
dasherr:
|
||||
networks:
|
||||
- proxy
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.services.dasherr.loadbalancer.server.port=8080
|
||||
- traefik.http.routers.dasherr.entrypoints=web
|
||||
- traefik.http.routers.dasherr.rule=Host(`${FQDN}`)
|
||||
- traefik.http.middlewares.dasherr-https-redirect.redirectscheme.scheme=websecure
|
||||
- traefik.http.routers.dasherr.middlewares=dasherr-https-redirect
|
||||
- traefik.http.routers.dasherr-secure.entrypoints=websecure
|
||||
- traefik.http.routers.dasherr-secure.rule=Host(`${FQDN}`)
|
||||
- traefik.http.routers.dasherr-secure.tls=true
|
||||
- traefik.http.routers.dasherr-secure.tls.certresolver=letsencrypt
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
|
@ -0,0 +1,9 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
dasherr:
|
||||
image: atareao/dasherr
|
||||
container_name: dasherr
|
||||
init: true
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./htpasswd:/opt/nginx/conf/.htpasswd
|
|
@ -0,0 +1,51 @@
|
|||
#!/usr/bin/env bash
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright (c) 2022 Lorenzo Carbonell <a.k.a. atareao>
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
# Exit if any command fails
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
set -o nounset
|
||||
|
||||
LOCAL_USER_ID=${LOCAL_USER_ID:-1000}
|
||||
LOCAL_GROUP_ID=${LOCAL_GROUP_ID:-1000}
|
||||
|
||||
if ! grep -q -E "^dockerus:" /etc/group;
|
||||
then
|
||||
echo "=== Create group ==="
|
||||
addgroup -g "$LOCAL_GROUP_ID" -S dockerus
|
||||
fi
|
||||
|
||||
if ! grep -q -E "^dockerus:" /etc/passwd;
|
||||
then
|
||||
echo "=== Create user ==="
|
||||
adduser -u "$LOCAL_USER_ID" -S dockerus -G dockerus
|
||||
fi
|
||||
echo "=== Chown ownership ==="
|
||||
# comment next line if needs root
|
||||
chown -R dockerus:dockerus /opt
|
||||
chown -R dockerus:dockerus /html
|
||||
chmod o+w /dev/stdout
|
||||
echo "=== Execute $* ==="
|
||||
# comment next line if needs root
|
||||
#set -- su-exec dockerus "$@"
|
||||
exec "$@"
|
|
@ -0,0 +1,35 @@
|
|||
<!doctype html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>A Basic HTML5 Template</title>
|
||||
<meta name="description" content="A simple HTML5 Template for new projects.">
|
||||
<meta name="author" content="SitePoint">
|
||||
|
||||
<meta property="og:title" content="A Basic HTML5 Template">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://www.sitepoint.com/a-basic-html5-template/">
|
||||
<meta property="og:description" content="A simple HTML5 Template for new projects.">
|
||||
<meta property="og:image" content="image.png">
|
||||
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
||||
|
||||
<link rel="stylesheet" href="css/styles.css?v=1.0">
|
||||
<script src="js/script.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- your content here... -->
|
||||
<h1>Hola mundo</h1>
|
||||
<p>Bienvenido al maravilloso mundo de los contenedores</p>
|
||||
<!-- your content here... -->
|
||||
<script src="js/scripts.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
const ready = (callback) => {
|
||||
if (document.readyState != "loading") callback();
|
||||
else document.addEventListener("DOMContentLoaded", callback);
|
||||
}
|
||||
|
||||
ready(() => {
|
||||
});
|
||||
|
||||
function init(){
|
||||
}
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
user dockerus dockerus;
|
||||
worker_processes 1;
|
||||
|
||||
#error_log logs/error.log;
|
||||
#error_log logs/error.log notice;
|
||||
#error_log logs/error.log info;
|
||||
|
||||
#pid logs/nginx.pid;
|
||||
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
|
||||
http {
|
||||
include mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
# '$status $body_bytes_sent "$http_referer" '
|
||||
# '"$http_user_agent" "$http_x_forwarded_for"';
|
||||
|
||||
#access_log logs/access.log main;
|
||||
|
||||
sendfile on;
|
||||
#tcp_nopush on;
|
||||
|
||||
#keepalive_timeout 0;
|
||||
keepalive_timeout 65;
|
||||
|
||||
#gzip on;
|
||||
|
||||
server {
|
||||
listen 8080;
|
||||
server_name localhost;
|
||||
|
||||
access_log /dev/stdout;
|
||||
error_log /dev/stdout info;
|
||||
#charset koi8-r;
|
||||
|
||||
#access_log logs/host.access.log main;
|
||||
|
||||
location / {
|
||||
root /html;
|
||||
index index.html index.htm;
|
||||
|
||||
include mime.types;
|
||||
try_files $uri $uri/ =404;
|
||||
|
||||
auth_basic "Administrator's Area";
|
||||
auth_basic_user_file /opt/nginx/conf/.htpasswd;
|
||||
}
|
||||
|
||||
#error_page 404 /404.html;
|
||||
|
||||
# redirect server error pages to the static page /50x.html
|
||||
#
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html {
|
||||
root html;
|
||||
}
|
||||
|
||||
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
|
||||
#
|
||||
#location ~ \.php$ {
|
||||
# proxy_pass http://127.0.0.1;
|
||||
#}
|
||||
|
||||
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
|
||||
#
|
||||
#location ~ \.php$ {
|
||||
# root html;
|
||||
# fastcgi_pass 127.0.0.1:9000;
|
||||
# fastcgi_index index.php;
|
||||
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
|
||||
# include fastcgi_params;
|
||||
#}
|
||||
|
||||
# deny access to .htaccess files, if Apache's document root
|
||||
# concurs with nginx's one
|
||||
#
|
||||
#location ~ /\.ht {
|
||||
# deny all;
|
||||
#}
|
||||
}
|
||||
|
||||
|
||||
# another virtual host using mix of IP-, name-, and port-based configuration
|
||||
#
|
||||
#server {
|
||||
# listen 8000;
|
||||
# listen somename:8080;
|
||||
# server_name somename alias another.alias;
|
||||
|
||||
# location / {
|
||||
# root html;
|
||||
# index index.html index.htm;
|
||||
# }
|
||||
#}
|
||||
|
||||
|
||||
# HTTPS server
|
||||
#
|
||||
#server {
|
||||
# listen 443 ssl;
|
||||
# server_name localhost;
|
||||
|
||||
# ssl_certificate cert.pem;
|
||||
# ssl_certificate_key cert.key;
|
||||
|
||||
# ssl_session_cache shared:SSL:1m;
|
||||
# ssl_session_timeout 5m;
|
||||
|
||||
# ssl_ciphers HIGH:!aNULL:!MD5;
|
||||
# ssl_prefer_server_ciphers on;
|
||||
|
||||
# location / {
|
||||
# root html;
|
||||
# index index.html index.htm;
|
||||
# }
|
||||
#}
|
||||
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
FQDN=nginx.tuservidor.es
|
Loading…
Reference in New Issue