add tileserver and load balancer
This commit is contained in:
parent
b6b6369cb6
commit
bc7fc08cd5
8 changed files with 102 additions and 0 deletions
0
data/certbot/etc/.placeholder
Normal file
0
data/certbot/etc/.placeholder
Normal file
0
data/certbot/var/.placeholder
Normal file
0
data/certbot/var/.placeholder
Normal file
0
data/db/.gitkeep
Normal file
0
data/db/.gitkeep
Normal file
0
data/osmtile/.placeholder
Normal file
0
data/osmtile/.placeholder
Normal file
8
gen-selfsigned-cert.sh
Executable file
8
gen-selfsigned-cert.sh
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
mkdir -p data/certificates
|
||||||
|
cd data/certificates
|
||||||
|
openssl genrsa -out default.key 2048
|
||||||
|
openssl req -new -key default.key -out default.csr
|
||||||
|
openssl x509 -req -days 3650 -in default.csr -signkey default.key -out default.crt
|
||||||
|
cat default.key default.crt >> default.pem
|
12
issue-certificate.sh
Executable file
12
issue-certificate.sh
Executable file
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
CB=`docker ps --format='{{.Names}}' --filter=label=meta.role=certbot`
|
||||||
|
|
||||||
|
EMAIL=$2
|
||||||
|
|
||||||
|
CERTNAME=$1
|
||||||
|
DOMAIN=$1
|
||||||
|
|
||||||
|
docker exec $CB certbot certonly --non-interactive --standalone --email $2 --agree-tos --keep --preferred-challenges http --cert-name "$CERTNAME" -d "$DOMAIN"
|
||||||
|
|
||||||
|
cat ./data/certbot/etc/live/$CERTNAME/privkey.pem ./data/certbot/etc/live/$CERTNAME/fullchain.pem > /certificates/$CERTNAME.pem"
|
69
lb/haproxy.cfg
Normal file
69
lb/haproxy.cfg
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
global
|
||||||
|
maxconn 4096
|
||||||
|
user root
|
||||||
|
group root
|
||||||
|
daemon
|
||||||
|
|
||||||
|
tune.ssl.default-dh-param 2048
|
||||||
|
ssl-default-bind-options no-sslv3 no-tls-tickets
|
||||||
|
ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
|
||||||
|
|
||||||
|
defaults
|
||||||
|
log global
|
||||||
|
mode http
|
||||||
|
balance roundrobin
|
||||||
|
maxconn 1024
|
||||||
|
|
||||||
|
# This breaks HTTP2
|
||||||
|
# option abortonclose
|
||||||
|
option httpclose
|
||||||
|
option forwardfor
|
||||||
|
|
||||||
|
retries 3
|
||||||
|
option redispatch
|
||||||
|
|
||||||
|
timeout client 30s
|
||||||
|
timeout connect 30s
|
||||||
|
timeout server 30s
|
||||||
|
|
||||||
|
#option httpchk HEAD /haproxy?monitor HTTP/1.0
|
||||||
|
#timeout check 5s
|
||||||
|
#stats enable
|
||||||
|
#stats uri /haproxy?stats
|
||||||
|
#stats realm Haproxy\ Statistics
|
||||||
|
#stats auth admin:yourpasswordhere
|
||||||
|
#stats refresh 5s
|
||||||
|
|
||||||
|
cache mapscache
|
||||||
|
total-max-size 1023 # MB
|
||||||
|
max-object-size 10000 # bytes
|
||||||
|
max-age 30 # seconds
|
||||||
|
|
||||||
|
frontend http
|
||||||
|
bind :80
|
||||||
|
option http-server-close
|
||||||
|
redirect scheme https if ! { path_beg -i /.well-known/acme-challenge }
|
||||||
|
default_backend certbot
|
||||||
|
|
||||||
|
frontend https
|
||||||
|
bind :443 ssl crt /certificates alpn http/1.1
|
||||||
|
|
||||||
|
# CORS
|
||||||
|
http-response set-header Access-Control-Allow-Origin "*"
|
||||||
|
http-response set-header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization, JSNLog-RequestId, activityId, applicationId, applicationUserId, channelId, senderId, sessionId"
|
||||||
|
http-response set-header Access-Control-Max-Age 3628800
|
||||||
|
http-response set-header Access-Control-Allow-Methods "GET"
|
||||||
|
|
||||||
|
use_backend osmtile
|
||||||
|
|
||||||
|
backend certbot
|
||||||
|
server c1 certbot:80
|
||||||
|
|
||||||
|
backend osmtile
|
||||||
|
# Get from cache / put in cache
|
||||||
|
http-request cache-use mapscache
|
||||||
|
http-response cache-store mapscache
|
||||||
|
|
||||||
|
# server list
|
||||||
|
server o1 osmtile:80 check
|
||||||
|
|
13
tileserver/Dockerfile
Normal file
13
tileserver/Dockerfile
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
FROM overv/openstreetmap-tile-server:1.7.4
|
||||||
|
EXPOSE 80
|
||||||
|
# Remove all original style files
|
||||||
|
RUN rm -rf /home/renderer/src/openstreetmap-carto/style/*.mss
|
||||||
|
RUN rm -fr /home/renderer/src/openstreetmap-carto/project.mml
|
||||||
|
# Add custom style files
|
||||||
|
ADD carto-style /home/renderer/src/openstreetmap-carto
|
||||||
|
# Recompile the stylesheet
|
||||||
|
RUN cd /home/renderer/src/openstreetmap-carto \
|
||||||
|
&& carto project.mml > mapnik.xml \
|
||||||
|
&& scripts/get-external-data.py
|
||||||
|
|
||||||
|
##TODO ADD map-data/
|
Loading…
Reference in a new issue