This commit is contained in:
Yann Autissier
2022-12-22 02:57:43 +00:00
parent 2dec68807e
commit 94a749e229
27 changed files with 2182 additions and 29 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
ENV_VARS += USER_DOMAIN user_domain
ENV_VARS += USER_DOMAIN USER_HOST user_domain
MAKECMDARGS += user-exec user-exec:% user-exec@% user-run user-run:% user-run@%
USER_DOMAIN ?= $(patsubst %,$(USER).%,$(DOMAIN))
USER_HOST ?= $(patsubst %,$(USER).%,$(HOST))$(USER_HOST_LB)
+3 -3
View File
@@ -1,5 +1,6 @@
ENV_VARS += USER_IPFS_API_HTTPHEADERS_ACA_ORIGIN USER_IPFS_SERVICE_5001_TAGS USER_IPFS_SERVICE_8080_TAGS
USER_IPFS_API_HTTPHEADERS_ACA_ORIGIN ?= [$(call patsublist,%,"https://%",$(USER_IPFS_SERVICE_8080_URIS))]
ENV_VARS += USER_IPFS_API_HTTPHEADERS_ACA_ORIGIN USER_IPFS_LETSENCRYPT_HOST USER_IPFS_SERVICE_5001_TAGS USER_IPFS_SERVICE_8080_TAGS
USER_IPFS_API_HTTPHEADERS_ACA_ORIGIN ?= [$(call patsublist,%,"https://%",$(patsubst %/,%,$(USER_IPFS_SERVICE_8080_URIS)))]
USER_IPFS_LETSENCRYPT_HOST ?= $(subst $(space),$(comma),$(call uriprefix,USER_IPFS,,$(USER_HOST)))
USER_IPFS_SERVICE_NAME ?= ipfs
USER_IPFS_SERVICE_5001_PATH ?= api/
USER_IPFS_SERVICE_5001_TAGS ?= $(or $(USER_IPFS_SERVICE_5001_TAGS_LOCALHOST),$(USER_IPFS_SERVICE_5001_TAGS_URIS),$(USER_IPFS_SERVICE_5001_TAGS_PROXY_TCP))
@@ -8,6 +9,5 @@ USER_IPFS_SERVICE_5001_TAGS_PROXY_TCP ?= $(call patsublist,%,urlprefix-% pro
USER_IPFS_SERVICE_5001_TAGS_URIS ?= $(strip $(if $(call servicenvs,USER_IPFS,5001,URIS),$(call urlprefix,$(USER_IPFS_SERVICE_5001_PATH),,$(call servicenvs,USER_IPFS,5001,URIS))))
USER_IPFS_SERVICE_5001_URIS ?= $(call uriprefix,USER_IPFS,5001,$(USER_URIS))
USER_IPFS_SERVICE_8080_OPTS ?= $(patsubst %/,%,$(if $(USER_PATH),strip=/$(USER_PATH)))
USER_IPFS_SERVICE_8080_PATH ?= ip(f|n)s/
USER_IPFS_SERVICE_8080_TAGS ?= $(call tagprefix,USER_IPFS,8080)
USER_IPFS_SERVICE_8080_URIS ?= $(call uriprefix,USER_IPFS,8080,$(USER_URIS))
+1
View File
@@ -60,6 +60,7 @@ services:
- IPFS_SWARM_RELAYCLIENT_ENABLED=${USER_IPFS_SWARM_RELAYCLIENT_ENABLED:-}
- IPFS_SWARM_RELAYSERVICE_ENABLED=${USER_IPFS_SWARM_RELAYSERVICE_ENABLED:-}
- IPFS_SWARM_TRANSPORTS_NETWORK_RELAY=${USER_IPFS_SWARM_TRANSPORTS_NETWORK_RELAY:-}
- LETSENCRYPT_HOST=${USER_IPFS_LETSENCRYPT_HOST}
image: ${USER_DOCKER_REPOSITORY}/ipfs:${DOCKER_IMAGE_TAG}
labels:
- SERVICE_4001_CHECK_TCP=true
+7
View File
@@ -0,0 +1,7 @@
ENV_VARS += HOST_APACHE_PHP5_SERVICE_80_TAGS HOST_APACHE_PHP5_VIRTUAL_ROOT
HOST_APACHE_PHP5_SERVICE_HOST ?= $(subst $(comma),$(space),$(HOST_APACHE_PHP5_VIRTUAL_HOST))
HOST_APACHE_PHP5_SERVICE_PATH ?= /
HOST_APACHE_PHP5_SERVICE_80_HOST ?= $(HOST_APACHE_PHP5_SERVICE_HOST)
HOST_APACHE_PHP5_SERVICE_80_TAGS ?= $(call tagprefix,HOST_APACHE_PHP5,80,host)
HOST_APACHE_PHP5_VIRTUAL_HOST ?= $(subst $(space),$(comma),$(APP_HOST))
HOST_APACHE_PHP5_VIRTUAL_ROOT ?= %-1/%-2/%-3
+36
View File
@@ -0,0 +1,36 @@
version: '3.6'
services:
apache-php5:
build:
args:
- DOCKER_BUILD_DIR=docker/apache/php5
context: ../..
dockerfile: docker/apache/php5/Dockerfile
domainname: ${DOMAINNAME}
environment:
- DOCUMENT_ROOT=${HOST_APACHE_PHP5_DOCUMENT_ROOT:-/web/html}
- VIRTUAL_ROOT=${HOST_APACHE_PHP5_VIRTUAL_ROOT:-%0}
hostname: ${HOSTNAME}
image: ${DOCKER_REPOSITORY:-apache-php5}/apache-php5:${DOCKER_IMAGE_TAG:-latest}
labels:
- SERVICE_80_CHECK_HTTP=${HOST_APACHE_PHP5_SERVICE_80_CHECK_HTTP:-/}
- SERVICE_80_NAME=${COMPOSE_SERVICE_NAME:-docker}-apache-php5-80
- SERVICE_80_TAGS=${HOST_APACHE_PHP5_SERVICE_80_TAGS:-urlprefix-localhost/*}
networks:
- public
ports:
- 80
restart: unless-stopped
volumes:
- backup:/backup
- web:/web
volumes:
backup:
web:
networks:
public:
external: true
name: ${DOCKER_NETWORK_PUBLIC:-localhost}
+3 -3
View File
@@ -24,15 +24,15 @@ host-ssl-certs:
alpine sh -c "mkdir -p /host/htpasswd && chmod 700 /host/htpasswd \
; mkdir -p /host/certs && chmod 0700 /host/certs \
; [ -f /host/htpasswd/default.htpasswd ] \
|| echo "default:{PLAIN}$(shell head -c 15 /dev/random |base64)" > /host/htpasswd/default.htpasswd \
|| echo "${HOSTNAME}:{PLAIN}$(shell head -c 15 /dev/random |base64)" > /host/htpasswd/default.htpasswd \
; apk --no-cache add openssl \
; for domain in ${DOMAIN}; do \
[ -f /host/live/\$${domain}/privkey.pem ] \
&& openssl x509 -in /host/live/\$${domain}/fullchain.pem -noout -issuer 2>/dev/null |grep -iqv staging \
&& cp -L /host/live/\$${domain}/fullchain.pem /host/certs/\$${domain}-cert.pem \
&& cp -L /host/live/\$${domain}/privkey.pem /host/certs/\$${domain}-key.pem \
; if [ ! -f /host/certs/\$${domain}-key.pem ]; then \
apk --no-cache add openssl \
&& openssl genrsa -out /host/certs/\$${domain}-key.pem 2048 \
openssl genrsa -out /host/certs/\$${domain}-key.pem 2048 \
&& openssl req -key /host/certs/\$${domain}-key.pem -out /host/certs/\$${domain}-cert.pem \
-addext extendedKeyUsage=serverAuth \
-addext subjectAltName=DNS:\$${domain},DNS:*.\$${domain} \
+2 -2
View File
@@ -1,10 +1,10 @@
ENV_VARS += HOST_IPFS_API_HTTPHEADERS_ACA_ORIGIN HOST_IPFS_SERVICE_5001_TAGS HOST_IPFS_SERVICE_8080_TAGS
HOST_IPFS_API_HTTPHEADERS_ACA_ORIGIN ?= [$(call patsublist,%,"https://%",$(HOST_IPFS_SERVICE_8080_URIS))]
HOST_IPFS_API_HTTPHEADERS_ACA_ORIGIN ?= [$(call patsublist,%,"https://%",$(patsubst %/,%,$(HOST_IPFS_SERVICE_8080_URIS)))]
HOST_IPFS_SERVICE_HOST_URIS ?= */ipfs/ */ipns/
HOST_IPFS_SERVICE_NAME ?= ipfs
HOST_IPFS_SERVICE_5001_PATH ?= api/
HOST_IPFS_SERVICE_5001_TAGS ?= $(call tagprefix,HOST_IPFS,5001)
HOST_IPFS_SERVICE_8080_ENVS ?= host
HOST_IPFS_SERVICE_8080_TAGS ?= $(call urlprefix,,,$(HOST_IPFS_SERVICE_8080_URIS) $(call servicenvs,HOST_IPFS,8080,URIS))
HOST_IPFS_SERVICE_8080_URIS ?= $(call uriprefix,ipfs *.ipfs ipns *.ipns)
HOST_IPFS_SERVICE_8080_URIS ?= $(call uriprefix,*ipfs *ipns)
HOST_IPFS_UFW_DOCKER ?= 4001/tcp 4001/udp 8080
+4 -4
View File
@@ -1,12 +1,12 @@
ENV_VARS += HOST_NGINX_DEFAULT_HOST HOST_NGINX_LETSENCRYPT_HOST HOST_NGINX_SERVICE_80_TAGS HOST_NGINX_SERVICE_443_TAGS HOST_NGINX_VIRTUAL_HOST
HOST_NGINX_DEFAULT_HOST ?= $(firstword $(APP_HOST))
ENV_VARS += HOST_NGINX_LETSENCRYPT_HOST HOST_NGINX_SERVICE_80_TAGS HOST_NGINX_SERVICE_443_TAGS HOST_NGINX_VIRTUAL_HOST
HOST_NGINX_HOST_URIS ?= true
HOST_NGINX_LETSENCRYPT_HOST ?= $(subst $(space),$(comma),$(filter-out *.%,$(subst $(comma),$(space),$(HOST_NGINX_VIRTUAL_HOST))))
HOST_NGINX_SERVICE_ACME_URIS ?= *:80/.well-known/acme-challenge/
HOST_NGINX_SERVICE_HOST_URIS ?= */
HOST_NGINX_SERVICE_HOST ?= $(subst $(comma),$(space),$(HOST_NGINX_VIRTUAL_HOST))
HOST_NGINX_SERVICE_80_HOST ?= $(HOST_NGINX_SERVICE_HOST)
HOST_NGINX_SERVICE_80_TAGS ?= $(call urlprefix,,,$(HOST_NGINX_SERVICE_80_URIS) $(call servicenvs,HOST_NGINX,80,URIS))
HOST_NGINX_SERVICE_80_URIS ?= $(patsubst %,%:80/,$(HOST_NGINX_SERVICE_80_HOST))
HOST_NGINX_SERVICE_80_ENVS ?= $(if $(SETUP_LETSENCRYPT),acme)
HOST_NGINX_SERVICE_80_ENVS ?= $(if $(HOST_NGINX_HOST_URIS),host)
HOST_NGINX_SERVICE_443_PATH ?= /
HOST_NGINX_SERVICE_443_HOST ?= $(patsubst %,%:443,$(HOST_NGINX_SERVICE_HOST))
HOST_NGINX_SERVICE_443_PROTO ?= https tlsskipverify=true
+7 -3
View File
@@ -7,8 +7,13 @@ services:
- DOCKER_BUILD_DIR=docker/nginx
context: ../..
dockerfile: docker/nginx/Dockerfile
domainname: ${DOMAINNAME}
environment:
- DEFAULT_HOST=${HOST_NGINX_DEFAULT_HOST:-localhost}
- DEFAULT=${HOST_NGINX_DEFAULT:-default}
- DEFAULT_HOST=${HOST_NGINX_DEFAULT_HOST:-}
- DEFAULT_LOCATION=${HOST_NGINX_DEFAULT_LOCATION:-}
- DEFAULT_LOCATION_PHP=${HOST_NGINX_DEFAULT_LOCATION_PHP:-}
- DEFAULT_LOCATION_IPFS=${HOST_NGINX_DEFAULT_LOCATION_IPFS:-}
- LETSENCRYPT_HOST=${HOST_NGINX_LETSENCRYPT_HOST:-${HOST_NGINX_VIRTUAL_HOST:-}}
- LETSENCRYPT_EMAIL=${HOST_NGINX_LETSENCRYPT_EMAIL:-${DEFAULT_EMAIL:-${MAIL:-nginx@localhost}}}
- LETSENCRYPT_SINGLE_DOMAIN_CERTS=${HOST_NGINX_LETSENCRYPT_SINGLE_DOMAIN_CERTS:-true}
@@ -17,6 +22,7 @@ services:
- VIRTUAL_HOST=${HOST_NGINX_VIRTUAL_HOST:-localhost}
- VIRTUAL_PATH=${HOST_NGINX_VIRTUAL_PATH:-/}
- VIRTUAL_PROTO=${HOST_NGINX_VIRTUAL_PROTO:-local}
hostname: ${HOSTNAME}
image: ${DOCKER_REPOSITORY:-nginx}/nginx:${DOCKER_IMAGE_TAG:-latest}
labels:
- SERVICE_80_CHECK_TCP=${HOST_NGINX_SERVICE_80_CHECK_TCP:-true}
@@ -38,7 +44,6 @@ services:
- htpasswd:/etc/nginx/htpasswd
- log:/var/log/nginx
- vhost:/etc/nginx/vhost.d
- www:/var/www
volumes:
certs:
@@ -46,7 +51,6 @@ volumes:
htpasswd:
log:
vhost:
www:
networks:
public:
+5 -5
View File
@@ -1,18 +1,18 @@
version: '3.6'
services:
nginx:
environment:
- DEFAULT_LOCATION_PHP=true
php:
depends_on:
- nginx
environment:
- VIRTUAL_HOST=php
- VIRTUAL_PROTO=fastcgi
image: php:fpm-alpine
networks:
- public
volumes:
- www:/var/www
volumes:
www:
networks:
public:
+9
View File
@@ -0,0 +1,9 @@
version: '3.6'
volumes:
dns:
driver: local
driver_opts:
device: /dns
o: bind
type: none
+19
View File
@@ -0,0 +1,19 @@
version: '3.6'
services:
apache-php5:
environment:
- DOCUMENT_ROOT=/dns
volumes:
- dns:/dns
nginx:
environment:
- DEFAULT=default_dns
volumes:
- dns:/dns
php:
volumes:
- dns:/dns
volumes:
dns:
+17
View File
@@ -0,0 +1,17 @@
version: '3.6'
services:
apache-php5:
environment:
- DOCUMENT_ROOT=/var/www
volumes:
- www:/var/www
nginx:
volumes:
- www:/var/www
php:
volumes:
- www:/var/www
volumes:
www:
+1 -1
View File
@@ -1,5 +1,5 @@
ENV_VARS += IPFS_API_HTTPHEADERS_ACA_ORIGIN IPFS_DAEMON_ARGS IPFS_PROFILE IPFS_SERVICE_5001_TAGS IPFS_SERVICE_8080_TAGS IPFS_VERSION
IPFS_API_HTTPHEADERS_ACA_ORIGIN ?= [$(call patsublist,%,"https://%",$(IPFS_SERVICE_8080_URIS))]
IPFS_API_HTTPHEADERS_ACA_ORIGIN ?= [$(call patsublist,%,"https://%",$(patsubst,%/,%,$(IPFS_SERVICE_8080_URIS)))]
IPFS_PROFILE ?= $(if $(filter-out amd64 x86_64,$(MACHINE)),lowpower,server)
IPFS_SERVICE_NAME ?= ipfs
IPFS_SERVICE_5001_PATH ?= api/