add stack duniter/v2s
This commit is contained in:
parent
1a731109ea
commit
2a3a929372
|
@ -200,7 +200,7 @@ stack:
|
|||
## the last part of %
|
||||
## ex: stack-host-up will fire the docker-compose-up target in the host stack
|
||||
.PHONY: stack-%
|
||||
stack-%: stack
|
||||
stack-%:
|
||||
$(eval stack := $(subst -$(lastword $(subst -, ,$*)),,$*))
|
||||
$(eval command := $(lastword $(subst -, ,$*)))
|
||||
$(if $(findstring -,$*), \
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
APP_DIR ?= $(CURDIR)
|
||||
APP_DOCKER_DIR ?= $(DOCKER_DIR)
|
||||
APP_DOMAIN ?= $(patsubst %,$(APP_DOMAIN_PREFIX)%,$(DOMAIN))
|
||||
APP_DOMAIN_PREFIX ?= $(if $(HOST_STACK),,$(addsuffix .,$(filter-out $(ENV_DEPLOY),$(ENV)))$(USER).)
|
||||
APP_HOST ?= $(patsubst %,$(APP_HOST_PREFIX)%,$(APP_DOMAIN))$(if $(HOST_LB),$(space)$(APP_DOMAIN))
|
||||
APP_HOST_PREFIX ?= $(addsuffix .,$(if $(HOST_STACK),$(HOSTNAME),$(if $(APP_LB),,$(APP_NAME))))
|
||||
APP_DOMAIN_PREFIX ?= $(if $(HOST_STACK),,$(addsuffix .,$(if $(APP_HOST_MULTI_ENV),$(filter-out $(ENV_DEPLOY),$(ENV))))$(if $(APP_HOST_MULTI_USER),$(USER).))
|
||||
APP_HOST ?= $(patsubst %,$(APP_HOST_PREFIX)%,$(APP_DOMAIN))$(if $(HOST_STACK),$(if $(HOST_LB),$(space)$(DOMAIN)))
|
||||
APP_HOST_PREFIX ?= $(addsuffix .,$(if $(HOST_STACK),$(HOSTNAME),$(if $(APP_HOST_MULTI_APP),$(APP_NAME))))
|
||||
APP_HOST_MULTI ?= false
|
||||
APP_HOST_MULTI_APP ?= $(if $(filter true,$(APP_HOST_MULTI)),true)
|
||||
APP_HOST_MULTI_ENV ?= $(if $(filter true,$(APP_HOST_MULTI)),true)
|
||||
APP_HOST_MULTI_USER ?= $(if $(filter true,$(APP_HOST_MULTI)),true)
|
||||
APP_INSTALLED ?= $(APPS)
|
||||
APP_PARENT ?= $(MONOREPO)
|
||||
APP_PARENT_DIR ?= $(MONOREPO_DIR)
|
||||
|
|
|
@ -5,6 +5,12 @@ ufw:
|
|||
|
||||
# target ufw-bootstrap: Eval ufw-docker app variables
|
||||
ufw-bootstrap:
|
||||
$(eval APP_COMPOSE_FILE :=)
|
||||
$(eval DOCKER_COMPOSE_PROJECT_NAME := $(HOST_COMPOSE_PROJECT_NAME))
|
||||
$(eval DOCKER_SERVICE := ufw-docker)
|
||||
$(eval DOCKER_STACK :=)
|
||||
$(eval MYOS_STACK :=)
|
||||
$(eval MYOS_STACK_FILE :=)
|
||||
$(call app-bootstrap,$(lastword $(subst /, ,$(SETUP_UFW_REPOSITORY))))
|
||||
|
||||
# target ufw-build: Build ufw-docker docker
|
||||
|
@ -26,21 +32,22 @@ ufw-install:
|
|||
$(call app-install,$(SETUP_UFW_REPOSITORY))
|
||||
|
||||
# target ufw-up: Start ufw-docker docker
|
||||
ufw-up: COMPOSE_PROJECT_NAME := $(HOST_COMPOSE_PROJECT_NAME)
|
||||
ufw-up: DOCKER_RUN_NETWORK :=
|
||||
ufw-up: DOCKER_RUN_OPTIONS := --rm -d --cap-add NET_ADMIN -v /etc/ufw:/etc/ufw $(if wildcard /etc/default/ufw,-v /etc/default/ufw:/etc/default/ufw) --network host
|
||||
ufw-up: DOCKER_RUN_OPTIONS := --restart always -d --cap-add NET_ADMIN -v /etc/ufw:/etc/ufw $(if wildcard /etc/default/ufw,-v /etc/default/ufw:/etc/default/ufw) --network host
|
||||
ufw-up:
|
||||
$(call app-up)
|
||||
|
||||
# target ufw-update: Call ufw and ufw-docker foreach service UFW_UPDATE
|
||||
.PHONY: ufw-update
|
||||
ufw-update: debug-UFW_UPDATE
|
||||
$(eval name := $(COMPOSE_PROJECT_NAME))
|
||||
ufw-update: stack $(if $(HOST_STACK),setup-ufw) debug-UFW_UPDATE
|
||||
$(eval APP_COMPOSE_FILE :=)
|
||||
$(eval DOCKER_SERVICE := ufw-docker)
|
||||
$(eval project_name := $(COMPOSE_PROJECT_NAME))
|
||||
$(foreach UPDATE,$(call UPPERCASE,$(UFW_UPDATE)), \
|
||||
$(eval ufw_update := $($(if $(HOST_STACK),HOST_)$(UPDATE)_UFW_UPDATE)) \
|
||||
$(eval ufw_docker := $($(if $(HOST_STACK),HOST_)$(UPDATE)_UFW_DOCKER)) \
|
||||
$(foreach port,$(ufw_docker), \
|
||||
$(call ufw-docker,$(if $(UFW_DELETE),delete) allow $(name)-$(call LOWERCASE,$(UPDATE)) $(port) ||:) \
|
||||
$(call ufw-docker,$(if $(UFW_DELETE),delete) allow $(project_name)-$(call LOWERCASE,$(UPDATE))$(if $(HOST_STACK),,-1) $(port) ||:) \
|
||||
) \
|
||||
$(foreach port,$(ufw_update), \
|
||||
$(call ufw,$(if $(UFW_DELETE),delete) allow $(port)) \
|
||||
|
|
|
@ -19,13 +19,13 @@ define app-bootstrap
|
|||
$(eval APP := $(or $(1), $(APP)))
|
||||
$(eval APP_DIR := $(or $(2), $(RELATIVE)$(APP)))
|
||||
$(eval APP_NAME := $(or $(3),$(subst -,,$(subst .,,$(call LOWERCASE,$(APP))))))
|
||||
$(eval COMPOSE_PROJECT_NAME := $(if $(DOCKER_COMPOSE_PROJECT_NAME),$(DOCKER_COMPOSE_PROJECT_NAME),$(subst .,,$(call LOWERCASE,$(USER)-$(APP_NAME)-$(ENV)$(addprefix -,$(subst /,,$(subst -,,$(APP_PATH))))))))
|
||||
$(eval COMPOSE_SERVICE_NAME := $(if $(DOCKER_COMPOSE_SERVICE_NAME),$(DOCKER_COMPOSE_SERVICE_NAME),$(subst _,-,$(COMPOSE_PROJECT_NAME))))
|
||||
$(eval COMPOSE_PROJECT_NAME := $(or $(DOCKER_COMPOSE_PROJECT_NAME),$(subst .,,$(call LOWERCASE,$(USER)-$(APP_NAME)-$(ENV)$(addprefix -,$(subst /,,$(subst -,,$(APP_PATH))))))))
|
||||
$(eval COMPOSE_SERVICE_NAME := $(or $(DOCKER_COMPOSE_SERVICE_NAME),$(subst _,-,$(COMPOSE_PROJECT_NAME))))
|
||||
$(eval DOCKER_BUILD_DIR := $(APP_DIR))
|
||||
$(call compose-file,$(APP_DIR) $(APP_DIR)/$(or $(APP_DOCKER_DIR),$(DOCKER_DIR)),docker-compose)
|
||||
$(call compose-file,apps apps/$(APP),$(APP))
|
||||
$(eval APP_COMPOSE_FILE := $(COMPOSE_FILE))
|
||||
$(foreach stackz,$(STACK),$(call docker-stack,$(stackz)))
|
||||
$(eval APP_COMPOSE_FILE ?= $(COMPOSE_FILE))
|
||||
$(foreach stackz,$(or $(DOCKER_STACK),$(STACK)),$(call docker-stack,$(stackz)))
|
||||
$(call compose-file,$(MYOS_STACK),$(MYOS_STACK_FILE))
|
||||
$(call .env,$(APP_DIR)/.env,$(APP_DIR)/.env.dist $(APP_DIR)/.env.example $(APP_DIR)/.env.sample)
|
||||
endef
|
||||
|
@ -86,7 +86,7 @@ define app-docker
|
|||
$(eval dockerfile := $(or $(1)))
|
||||
$(if $(wildcard $(dockerfile)),
|
||||
$(eval service := $(or $(DOCKER_SERVICE),$(subst .,,$(call LOWERCASE,$(lastword $(subst /, ,$(patsubst %/Dockerfile,%,$(dockerfile)))))),undefined))
|
||||
$(eval docker := ${COMPOSE_SERVICE_NAME}-$(service))
|
||||
$(eval docker := $(or $(DOCKER_COMPOSE_SERVICE_NAME),$(COMPOSE_SERVICE_NAME))-$(service))
|
||||
$(eval DOCKER_IMAGE := $(DOCKER_REPOSITORY)/$(service):$(DOCKER_IMAGE_TAG))
|
||||
$(eval DOCKER_LABELS := SERVICE_NAME=$(docker) SERVICE_TAGS=$(call urlprefix,$(APP_PATH),,$(service).$(APP_HOST)))
|
||||
$(eval DOCKER_NAME := $(docker))
|
||||
|
|
|
@ -83,7 +83,7 @@ endef
|
|||
# add variables definition to the .env file
|
||||
define .env_update
|
||||
$(call INFO,.env_update,$(env_file)$(comma) $(env_dist)$(comma) $(env_over))
|
||||
touch $(env_file) $(if $(VERBOSE)$(DEBUG),,2> /dev/null)
|
||||
touch $(env_file) $(if $(VERBOSE)$(DEBUG),,2> /dev/null) ||:
|
||||
printenv \
|
||||
|awk -F '=' 'NR == FNR { if($$1 !~ /^(#|$$)/) { A[$$1]; next } } !($$1 in A)' - $(env_dist) \
|
||||
|cat $(env_over) - \
|
||||
|
@ -101,5 +101,5 @@ define .env_update
|
|||
awk '{while(match($$0,"[$$]{[^}]*}")) {var=substr($$0,RSTART+2,RLENGTH-3);gsub("[$$]{"var"}",ENVIRON[var])} print}') \
|
||||
|sed -e /^$$/d -e /^#/d \
|
||||
|sort \
|
||||
>> $(env_file);
|
||||
>> $(env_file) $(if $(VERBOSE)$(DEBUG),,2> /dev/null) ||:;
|
||||
endef
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
ENV_VARS += DUNITER_UI_SERVICE_80_TAGS DUNITER_UI_WS_URL DUNITER_V2S_DUNITER_CHAIN_NAME DUNITER_V2S_DUNITER_NODE_NAME DUNITER_V2S_DUNITER_PUBLIC_ADDR DUNITER_V2S_DUNITER_PRUNING_PROFILE DUNITER_V2S_SERVICE_9615_TAGS DUNITER_V2S_SERVICE_9933_TAGS DUNITER_V2S_SERVICE_9944_TAGS DUNITER_V2S_SERVICE_30333_TAGS
|
||||
DUNITER_UI_SERVICE_NAME ?= $(DUNITER_V2S_SERVICE_NAME)
|
||||
DUNITER_UI_SERVICE_80_PATH ?= ui/
|
||||
DUNITER_UI_SERVICE_80_STRIP ?= /ui
|
||||
DUNITER_UI_SERVICE_80_TAGS ?= $(call tagprefix,DUNITER_UI,80)
|
||||
DUNITER_UI_WS_URL ?= wss://$(DUNITER_V2S_SERVICE_NAME).$(firstword $(APP_URIS))$(firstword $(DUNITER_V2S_SERVICE_9944_PATH))
|
||||
DUNITER_V2S_DUNITER_CHAIN_NAME ?= gdev
|
||||
DUNITER_V2S_DUNITER_NODE_NAME ?= $(USER)-$(ENV)-$(DUNITER_V2S_DUNITER_PRUNING_PROFILE)
|
||||
DUNITER_V2S_DUNITER_PUBLIC_ADDR ?= /dns/$(DUNITER_V2S_SERVICE_NAME).$(firstword $(APP_HOST))/tcp/443/wss
|
||||
DUNITER_V2S_DUNITER_PRUNING_PROFILE ?= archive
|
||||
DUNITER_V2S_SERVICE_NAME ?= $(DUNITER_V2S_DUNITER_CHAIN_NAME)
|
||||
DUNITER_V2S_SERVICE_9615_PATH ?= metrics/
|
||||
DUNITER_V2S_SERVICE_9615_TAGS ?= $(call tagprefix,DUNITER_V2S,9615)
|
||||
DUNITER_V2S_SERVICE_9933_PATH ?= http/
|
||||
DUNITER_V2S_SERVICE_9933_TAGS ?= $(call tagprefix,DUNITER_V2S,9933)
|
||||
DUNITER_V2S_SERVICE_9944_PATH ?= ws/
|
||||
DUNITER_V2S_SERVICE_9944_STRIP ?= /ws
|
||||
DUNITER_V2S_SERVICE_9944_TAGS ?= $(call tagprefix,DUNITER_V2S,9944)
|
||||
DUNITER_V2S_SERVICE_30333_TAGS ?= $(call tagprefix,DUNITER_V2S,30333)
|
|
@ -0,0 +1,76 @@
|
|||
# This is a minimal docker-compose.yml template for running a Duniter instance
|
||||
# For more detailed examples, look at docker/compose folder
|
||||
|
||||
version: "3.5"
|
||||
|
||||
services:
|
||||
|
||||
# duniter-oracle:
|
||||
# entrypoint: docker-distance-entrypoint
|
||||
# environment:
|
||||
# ORACLE_RPC_URL: "ws://duniter-v2s:9944"
|
||||
# ORACLE_RESULT_DIR: "/var/lib/duniter/chains/${DUNITER_V2S_DUNITER_CHAIN_NAME:-gdev}/distance/"
|
||||
# ORACLE_EXECUTION_INTERVAL: "1800"
|
||||
# ORACLE_MAX_DEPTH: "5"
|
||||
# ORACLE_LOG_LEVEL: "info"
|
||||
# image: duniter/duniter-v2s-gdev:latest
|
||||
# networks:
|
||||
# - private
|
||||
# restart: always
|
||||
# volumes:
|
||||
# - duniter-v2s-data:/var/lib/duniter
|
||||
|
||||
duniter-ui:
|
||||
environment:
|
||||
- WS_URL=${DUNITER_UI_WS_URL:-duniter-v2s:9944}
|
||||
image: jacogr/polkadot-js-apps:latest
|
||||
labels:
|
||||
- SERVICE_80_CHECK_HTTP=${DUNITER_UI_SERVICE_80_CHECK_HTTP:-/}
|
||||
- SERVICE_80_NAME=${COMPOSE_SERVICE_NAME}-duniter-ui-80
|
||||
- SERVICE_80_TAGS=${DUNITER_UI_SERVICE_80_TAGS:-urlprefix-gdev.localhost/ui/*}
|
||||
networks:
|
||||
- private
|
||||
ports:
|
||||
- 80
|
||||
restart: always
|
||||
|
||||
duniter-v2s:
|
||||
environment:
|
||||
- DUNITER_CHAIN_NAME=${DUNITER_V2S_DUNITER_CHAIN_NAME:-gdev}
|
||||
# - DUNITER_LISTEN_ADDR=${DUNITER_V2S_DUNITER_LISTEN_ADDR:-/ip4/0.0.0.0/tcp/30333/ws}
|
||||
- DUNITER_NODE_NAME=${DUNITER_V2S_DUNITER_NODE_NAME:-duniter_local}
|
||||
- DUNITER_PRUNING_PROFILE=${DUNITER_V2S_DUNITER_PRUNING_PROFILE:-default}
|
||||
# - DUNITER_PUBLIC_ADDR=${DUNITER_V2S_DUNITER_PUBLIC_ADDR:-/dns/localhost/tcp/30333/ws}
|
||||
- DUNITER_VALIDATOR=${DUNITER_V2S_DUNITER_VALIDATOR:-false}
|
||||
image: duniter/duniter-v2s-gdev:latest
|
||||
labels:
|
||||
# - SERVICE_9615_CHECK_HTTP=${DUNITER_V2S_SERVICE_9615_CHECK_HTTP:-/}
|
||||
# - SERVICE_9615_NAME=${COMPOSE_SERVICE_NAME}-duniter-v2s-9615
|
||||
# - SERVICE_9615_TAGS=${DUNITER_V2S_SERVICE_9615_TAGS:-urlprefix-gdev.localhost/metrics/*}
|
||||
# - SERVICE_9933_CHECK_HTTP=${DUNITER_V2S_SERVICE_9933_CHECK_HTTP:-/}
|
||||
# - SERVICE_9933_CHECK_HTTP_METHOD=${DUNITER_V2S_SERVICE_9933_CHECK_HTTP_METHOD:-POST}
|
||||
# - SERVICE_9933_NAME=${COMPOSE_SERVICE_NAME}-duniter-v2s-9933
|
||||
# - SERVICE_9933_TAGS=${DUNITER_V2S_SERVICE_9933_TAGS:-urlprefix-gdev.localhost/http/*}
|
||||
- SERVICE_9944_CHECK_TCP=true
|
||||
- SERVICE_9944_NAME=${COMPOSE_SERVICE_NAME}-duniter-v2s-9944
|
||||
- SERVICE_9944_TAGS=${DUNITER_V2S_SERVICE_9944_TAGS:-urlprefix-gdev.localhost/ws/*}
|
||||
- SERVICE_30333_CHECK_TCP=true
|
||||
- SERVICE_30333_NAME=${COMPOSE_SERVICE_NAME}-duniter-v2s-30333
|
||||
- SERVICE_30333_TAGS=${DUNITER_V2S_SERVICE_30333_TAGS:-urlprefix-gdev.localhost/*}
|
||||
networks:
|
||||
- private
|
||||
ports:
|
||||
# telemetry
|
||||
- 9615
|
||||
# rpc
|
||||
- 9933
|
||||
# rpc-ws
|
||||
- 9944
|
||||
# p2p
|
||||
- 30333
|
||||
volumes:
|
||||
- duniter-v2s-data:/var/lib/duniter
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
duniter-v2s-data:
|
Loading…
Reference in New Issue