make player

user + mail = user_domain
This commit is contained in:
Yann Autissier 2022-12-19 20:00:36 +00:00
parent a257c8184b
commit e992a58abd
9 changed files with 49 additions and 31 deletions

View File

@ -27,7 +27,7 @@ bootstrap-docker: install-bin-docker setup-docker-group setup-binfmt setup-nfsd
# target bootstrap-stack: Call bootstrap target of each stack
.PHONY: bootstrap-stack
bootstrap-stack: docker-network debug-STACK $(foreach stack,$(STACK),bootstrap-stack-$(subst /,-,$(stack)) debug-$(stack))
bootstrap-stack: docker-network debug-STACK $(foreach stack,$(STACK),bootstrap-stack-$(subst /,-,$(firstword $(subst :, ,$(stack)))) debug-$(firstword $(subst :, ,$(stack))))
# target build: Build application docker images to run
# on local host

View File

@ -29,7 +29,7 @@ NFS_CONFIG ?= addr=$(NFS_HOST),actimeo=3,intr,noacl,noatime
NFS_HOST ?= host.docker.internal
SERVICES ?= $(DOCKER_SERVICES)
tagprefix = $(call urlprefix,$(or $($(call UPPERCASE,$(1)_SERVICE_$(2)_PATH)),$($(call UPPERCASE,$(1)_SERVICE_PATH))),$(or $($(call UPPERCASE,$(1)_SERVICE_$(2)_OPTS)),$($(call UPPERCASE,$(1)_SERVICE_OPTS)),$(call envprefix,$(1),$(2),auth proto)),$(or $(foreach env,$(3),$($(call UPPERCASE,$(1)_SERVICE_$(2)_$(env)))),$($(call UPPERCASE,$(1)_SERVICE_$(2)_URIS)),$(call uriprefix,$(1),$(2))))
tagprefix = $(call urlprefix,$(or $($(call UPPERCASE,$(1)_SERVICE_$(2)_PATH)),$($(call UPPERCASE,$(1)_SERVICE_PATH))),$(or $($(call UPPERCASE,$(1)_SERVICE_$(2)_OPTS)),$($(call UPPERCASE,$(1)_SERVICE_OPTS)),$(call envprefix,$(1),$(2),allow auth deny preprend proto register strip)),$(or $(foreach env,$(3),$($(call UPPERCASE,$(1)_SERVICE_$(2)_$(env)))),$($(call UPPERCASE,$(1)_SERVICE_$(2)_URIS)),$(call uriprefix,$(1),$(2))))
envprefix = $(foreach env,$(3),$(if $($(call UPPERCASE,$(1)_SERVICE_$(2)_$(env))),$(env)=$($(call UPPERCASE,$(1)_SERVICE_$(2)_$(env)))))
patsublist = $(patsubst $(1),$(2),$(firstword $(3)))$(foreach pattern,$(wordlist 2,16,$(3)),$(comma)$(patsubst $(1),$(2),$(pattern)))
servicenvs = $(foreach env,$(call UPPERCASE,$($(1)_SERVICE_$(2)_ENVS)),$(if $(3),$($(1)_SERVICE_$(env)_$(3)),$($(1)_SERVICE_$(2)_$(env))))

View File

@ -68,7 +68,7 @@ GIT_UPSTREAM_USER ?= $(lastword $(subst /, ,$(call pop,$(MYOS_REPO
GIT_USER ?= $(USER)
GIT_VERSION ?= $(shell git describe --tags $(BRANCH) 2>/dev/null || git rev-parse $(BRANCH) 2>/dev/null)
GROUP ?= $(shell id -ng 2>/dev/null)
HOST ?= $(HOSTNAME).$(DOMAIN)
HOST ?= $(patsubst %,$(HOSTNAME).%,$(DOMAIN))
HOSTNAME ?= $(call LOWERCASE,$(shell hostname 2>/dev/null |sed 's/\..*//'))
IGNORE_DRYRUN ?= false
IGNORE_VERBOSE ?= false
@ -171,16 +171,16 @@ INFO = $(if $(VERBOSE),$(if $(filter-out true,$(IGNORE_VERBOSE)), \
# macro RESU: Print USER associated to MAIL
RESU = $(strip \
$(if $(findstring @,$(MAIL)), \
$(eval user := $(call LOWERCASE,$(subst +,.,$(subst _,.,$(shell printf '$(MAIL)' |awk -F "@" '{print $$1}'))))) \
$(eval domain := $(call LOWERCASE,$(subst +,.,$(subst _,.,$(shell printf '$(MAIL)' |awk -F "@" '{print $$NF}'))))) \
$(eval user := $(call LOWERCASE,$(subst +,.,$(subst _,.,$(shell printf '$(MAIL)' |awk -F "@" '{print $$1}'))))) \
$(eval domain := $(call LOWERCASE,$(subst +,.,$(subst _,.,$(shell printf '$(MAIL)' |awk -F "@" '{print $$NF}'))))) \
$(if $(domain), \
$(eval mail := $(MAIL)) \
$(eval niamod := $(subst $(space),.,$(strip $(call reverse,$(subst ., ,$(domain)))))) \
$(eval resu := $(subst $(space),.,$(strip $(call reverse,$(subst ., ,$(user)))))) \
$(eval mail := $(call LOWERCASE,$(subst +,.,$(subst _,.,$(MAIL))))) \
$(eval niamod := $(subst $(space),.,$(strip $(call reverse,$(subst ., ,$(domain)))))) \
$(eval resu := $(subst $(space),.,$(strip $(call reverse,$(subst ., ,$(user)))))) \
$(eval resu_niamod := $(niamod).$(resu)) \
$(eval resu_path := $(subst .,/,$(resu_niamod))) \
$(eval resu_path := $(subst .,/,$(resu_niamod))) \
$(eval user_domain := $(user).$(domain)) \
$(resu_niamod) \
$(user_domain) \
, $(USER) \
) \
, $(USER) \

View File

@ -1,6 +1,10 @@
ENV_VARS += USER_DOMAIN user_domain
MAKECMDARGS += user-exec user-exec:% user-exec@% user-run user-run:% user-run@%
USER_DOMAIN ?= $(USER).$(DOMAIN)
USER_DOMAIN ?= $(patsubst %,$(USER).%,$(DOMAIN))
USER_HOST ?= $(patsubst %,$(USER).%,$(HOST))$(USER_HOST_LB)
USER_HOST_LB ?= $(if $(USER_LB),$(space)$(HOST)$(if $(HOST_LB),$(space)$(DOMAIN)),$(if $(HOST_LB),$(space)$(USER_DOMAIN)))
USER_PATH ?= $(USER_PATH_PREFIX)$(RESU)
USER_URIS ?= $(patsubst %,%/$(USER_PATH),$(USER_HOST))
# target start-stack-User: Fire ssh-add
.PHONY: start-stack-User

View File

@ -1,9 +1,16 @@
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))]
USER_IPFS_SERVICE_NAME ?= ipfs
USER_IPFS_SERVICE_HOST ?= $(patsubst %,$(RESU).%,$(DOMAIN))
USER_IPFS_SERVICE_5001_PATH ?= api/
USER_IPFS_SERVICE_5001_TAGS ?= $(strip $(filter %.localhost/api/$(url_suffix),$(call tagprefix,USER_IPFS,5001)) $(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,$(patsubst %,%/,$(USER_IPFS_SERVICE_HOST)))
USER_IPFS_SERVICE_HOST ?= $(USER_HOST)
USER_IPFS_SERVICE_PATH ?= $(USER_PATH)
USER_IPFS_SERVICE_URIS ?= $(USER_URIS)
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))
USER_IPFS_SERVICE_5001_TAGS_LOCALHOST ?= $(filter %.localhost/$(USER_IPFS_SERVICE_PATH)$(USER_IPFS_SERVICE_5001_PATH)$(url_suffix),$(call tagprefix,USER_IPFS,5001))
USER_IPFS_SERVICE_5001_TAGS_PROXY_TCP ?= $(call patsublist,%,urlprefix-% proxy=tcp,$(USER_IPFS_SERVICE_PROXY_TCP))
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_IPFS_SERVICE_URIS))
USER_IPFS_SERVICE_8080_OPTS ?= strip=/$(USER_PATH)
USER_IPFS_SERVICE_8080_PATH ?= /ipfs/
USER_IPFS_SERVICE_8080_TAGS ?= $(call tagprefix,USER_IPFS,8080)
USER_IPFS_SERVICE_8080_URIS ?= $(call uriprefix,USER_IPFS,8080,$(patsubst %,%/,$(USER_IPFS_SERVICE_HOST)))
USER_IPFS_SERVICE_8080_URIS ?= $(call uriprefix,USER_IPFS,8080,$(USER_IPFS_SERVICE_URIS))

View File

@ -9,19 +9,22 @@ services:
context: ../..
dockerfile: docker/consul/Dockerfile
container_name: ${HOST_COMPOSE_PROJECT_NAME}-consul
domainname: ${DOMAIN}
extra_hosts:
- ${HOSTNAME}.${DOMAIN} ${HOSTNAME}:${DOCKER_HOST_INET4}
image: ${HOST_DOCKER_REPOSITORY}/consul:${DOCKER_IMAGE_TAG}
environment:
CONSUL_BIND_INTERFACE: '${DOCKER_HOST_IFACE}'
CONSUL_CLIENT_INTERFACE: '${DOCKER_HOST_IFACE}'
CONSUL_HTTP_TOKEN: '${HOST_CONSUL_HTTP_TOKEN}'
CONSUL_BIND_INTERFACE: '${DOCKER_HOST_IFACE:-eth0}'
CONSUL_CLIENT_INTERFACE: '${DOCKER_HOST_IFACE:-eth0}'
CONSUL_HTTP_TOKEN: '${HOST_CONSUL_HTTP_TOKEN:-01234567-89ab-cdef-0123-456789abcdef}'
CONSUL_LOCAL_CONFIG: '{ "log_level": "warn"
, "enable_script_checks": true
, "acl": { "enabled": true
, "default_policy": "deny"
, "down_policy": "extend-cache"
, "enable_token_persistence": true
, "tokens": { "initial_management": "${HOST_CONSUL_ACL_TOKENS_MASTER}"
, "agent": "${HOST_CONSUL_HTTP_TOKEN}"
, "tokens": { "initial_management": "${HOST_CONSUL_ACL_TOKENS_MASTER:-01234567-89ab-cdef-0123-456789abcdef}"
, "agent": "${HOST_CONSUL_HTTP_TOKEN:-01234567-89ab-cdef-0123-456789abcdef}"
}
}
}'

View File

@ -1,5 +1,13 @@
ENV_VARS += HOST_FABIO_SERVICE_9998_TAGS
ENV_VARS += HOST_FABIO_PROXY_ADDR HOST_FABIO_PROXY_CS HOST_FABIO_SERVICE_9998_TAGS HOST_FABIO_VERSION
HOST_FABIO_PROXY_ADDR ?= $(call subst,$(space),$(comma),$(HOST_FABIO_SERVICE_PROXY_ADDR))
HOST_FABIO_SERVICE_HTTP_ADDR ?= :80
HOST_FABIO_SERVICE_HTTPS_ADDR ?= :443;cs=certs
HOST_FABIO_SERVICE_PROXY_ADDR ?= $(call servicenvs,HOST_FABIO,PROXY,ADDR)
HOST_FABIO_SERVICE_PROXY_ENVS ?= http https tcp
HOST_FABIO_SERVICE_TCP_ADDR ?= $(foreach port,$(HOST_FABIO_SERVICE_TCP_PORT),:$(port);proto=tcp)
HOST_FABIO_SERVICE_TCP_PORT ?=
HOST_FABIO_SERVICE_9998_NAME ?= fabio
HOST_FABIO_SERVICE_9998_AUTH ?= default
HOST_FABIO_SERVICE_9998_TAGS ?= $(call tagprefix,HOST_FABIO,9998)
HOST_FABIO_UFW_UPDATE ?= 80/tcp 443/tcp
HOST_FABIO_VERSION ?= 1.6.3

View File

@ -7,16 +7,18 @@ services:
- DOCKER_BUILD_DIR=docker/fabio
- DOCKER_MACHINE=${DOCKER_MACHINE}
- DOCKER_SYSTEM=${DOCKER_SYSTEM}
- FABIO_VERSION=1.6.2
- FABIO_VERSION=${HOST_FABIO_VERSION:-${FABIO_VERSION:-1.6.0}}
context: ../..
dockerfile: docker/fabio/Dockerfile
container_name: ${HOST_COMPOSE_PROJECT_NAME}-fabio
image: ${HOST_DOCKER_REPOSITORY}/fabio:${DOCKER_IMAGE_TAG}
command: -proxy.addr ":80,:443;cs=certs" -proxy.auth "name=default;type=basic;file=/host/htpasswd/default.htpasswd;" -proxy.cs "cs=local;type=file;cert=/host/live/${DOMAIN}/fullchain.pem;key=/host/live/${DOMAIN}/privkey.pem,cs=certs;type=path;cert=/host/certs" -proxy.matcher "glob" -registry.backend "consul" -registry.consul.addr "consul:8500" -registry.consul.token "${HOST_CONSUL_HTTP_TOKEN}"
command: -log.level "${HOST_FABIO_LOG_LEVEL:-INFO}" -proxy.addr "${HOST_FABIO_PROXY_ADDR:-:80,:443;cs=certs}" -proxy.auth "${HOST_FABIO_PROXY_AUTH:-name=default;type=basic;file=/host/htpasswd/default.htpasswd}" -proxy.cs "${HOST_FABIO_PROXY_CS:-cs=local;type=file;cert=/host/live/localhost/fullchain.pem;key=/host/live/localhost/privkey.pem,cs=certs;type=path;cert=/host/certs}" -proxy.matcher "${HOST_FABIO_PROXY_MATCHER:-glob}" -registry.backend "${HOST_FABIO_REGISTRY_BACKEND:-consul}" -registry.consul.addr "${HOST_FABIO_REGISTRY_CONSUL_ADDR:-consul:8500}" -registry.consul.token "${HOST_CONSUL_HTTP_TOKEN:-01234567-89ab-cdef-0123-456789abcdef}"
depends_on:
- consul
domainname: ${DOMAIN}
extra_hosts:
- consul:${DOCKER_INTERNAL_DOCKER_HOST}
- ${HOSTNAME}.${DOMAIN} ${HOSTNAME}:${DOCKER_HOST_INET4}
hostname: ${HOSTNAME}
labels:
- SERVICE_80_CHECK_TCP=true
@ -27,12 +29,7 @@ services:
- SERVICE_9998_NAME=${HOST_COMPOSE_SERVICE_NAME}-fabio-9998
- SERVICE_9998_TAGS=${HOST_FABIO_SERVICE_9998_TAGS}
- SERVICE_9999_IGNORE=true
ports:
- 80:80/tcp
- 443:443/tcp
- 9998/tcp
networks:
- public
network_mode: host
restart: always
volumes:
- host:/host:ro

View File

@ -7,7 +7,6 @@ IPFS_SERVICE_5001_TAGS ?= $(call tagprefix,ipfs,5001)
IPFS_SERVICE_8080_CHECK_HTTP ?= /ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn
IPFS_SERVICE_8080_TAGS ?= $(call tagprefix,ipfs,8080)
IPFS_SERVICE_8080_URIS ?= $(patsubst %,ipfs.%,$(APP_URIS)) $(patsubst %,*.ipfs.%,$(APP_URIS)) $(patsubst %,ipns.%,$(APP_URIS)) $(patsubst %,*.ipns.%,$(APP_URIS))
IPFS_UFW_DOCKER ?= 4001/tcp 4001/udp 8080
IPFS_VERSION ?= 0.16.0
.PHONY: bootstrap-stack-ipfs