make user
This commit is contained in:
parent
9697288134
commit
c6a5e9cb00
|
@ -5,12 +5,10 @@ set -e
|
|||
## fix resource manager fatal error on arm64/linux with 2Gb RAM
|
||||
# ipfs config --json Swarm.ResourceMgr.Enabled false
|
||||
# ERROR p2pnode libp2p/rcmgr_defaults.go:107 ===> OOF! go-libp2p changed DefaultServiceLimits
|
||||
# => changes ('test' represents the old value):
|
||||
# {"op":"test","path":"/SystemLimits/Memory","value":1073741824}
|
||||
# {"op":"replace","path":"/SystemLimits/Memory","value":256560128}
|
||||
# => go-libp2p SetDefaultServiceLimits update needs a review:
|
||||
# Please inspect if changes impact go-ipfs users, and update expectedDefaultServiceLimits in rcmgr_defaults.go to remove this message
|
||||
# FATAL p2pnode libp2p/rcmgr_defaults.go:115 daemon will refuse to run with the resource manager until this is resolved
|
||||
|
||||
# set ipfs peer id
|
||||
[ -n "${IPFS_IDENTITY_PEERID}" ] && [ -n "${IPFS_IDENTITY_PRIVKEY}" ] \
|
||||
&& sed -i 's/"PeerID":.*/"PeerID": "'"${IPFS_IDENTITY_PEERID}"'",/;s/"PrivKey":.*/"PrivKey": "'"${IPFS_IDENTITY_PRIVKEY}"'"/' "${IPFS_PATH}/config"
|
||||
|
||||
## ipfs client needs API address
|
||||
# search for ip address of $(hostname).${IPFS_ADDRESSES_API_DOMAIN}
|
||||
|
|
|
@ -204,7 +204,7 @@ stack-%:
|
|||
$(eval command := $(lastword $(subst -, ,$*)))
|
||||
$(if $(findstring -,$*), \
|
||||
$(if $(filter $(command),$(filter-out %-%,$(patsubst docker-compose-%,%,$(filter docker-compose-%,$(MAKE_TARGETS))))), \
|
||||
$(call make,$(command) STACK="$(stack)",,ARGS COMPOSE_IGNORE_ORPHANS SERVICE User node)))
|
||||
$(call make,$(command) STACK="$(stack)",,ARGS COMPOSE_IGNORE_ORPHANS DOCKER_COMPOSE_PROJECT_NAME SERVICE User node)))
|
||||
|
||||
# target start app-start: Start application dockers
|
||||
# on local host
|
||||
|
|
|
@ -12,11 +12,11 @@ else
|
|||
COMPOSE_FILE_APP ?= true
|
||||
endif
|
||||
COMPOSE_IGNORE_ORPHANS ?= false
|
||||
COMPOSE_PROJECT_NAME ?= $(subst .,,$(call LOWERCASE,$(USER)-$(APP_NAME)-$(ENV)$(addprefix -,$(subst /,,$(subst -,,$(APP_PATH))))))
|
||||
COMPOSE_SERVICE_NAME ?= $(subst _,-,$(COMPOSE_PROJECT_NAME))
|
||||
COMPOSE_PROJECT_NAME ?= $(if $(DOCKER_COMPOSE_PROJECT_NAME),$(DOCKER_COMPOSE_PROJECT_NAME),$(subst .,,$(call LOWERCASE,$(USER)-$(APP_NAME)-$(ENV)$(addprefix -,$(subst /,,$(subst -,,$(APP_PATH)))))))
|
||||
COMPOSE_SERVICE_NAME ?= $(if $(DOCKER_COMPOSE_SERVICE_NAME),$(DOCKER_COMPOSE_SERVICE_NAME),$(subst _,-,$(COMPOSE_PROJECT_NAME)))
|
||||
COMPOSE_VERSION ?= 2.5.0
|
||||
CONTEXT += COMPOSE_FILE DOCKER_REPOSITORY
|
||||
CONTEXT_DEBUG += DOCKER_BUILD_TARGET DOCKER_IMAGE_TAG DOCKER_REGISTRY DOCKER_SERVICE DOCKER_SERVICES
|
||||
CONTEXT_DEBUG += DOCKER_BUILD_TARGET DOCKER_COMPOSE_PROJECT_NAME DOCKER_IMAGE_TAG DOCKER_REGISTRY DOCKER_SERVICE DOCKER_SERVICES
|
||||
DOCKER_AUTHOR ?= $(DOCKER_AUTHOR_NAME) <$(DOCKER_AUTHOR_EMAIL)>
|
||||
DOCKER_AUTHOR_EMAIL ?= $(subst +git,+docker,$(GIT_AUTHOR_EMAIL))
|
||||
DOCKER_AUTHOR_NAME ?= $(GIT_AUTHOR_NAME)
|
||||
|
@ -30,8 +30,9 @@ DOCKER_BUILD_TARGETS ?= $(ENV_DEPLOY)
|
|||
DOCKER_BUILD_VARS ?= APP BRANCH COMPOSE_VERSION DOCKER_GID DOCKER_MACHINE DOCKER_REPOSITORY DOCKER_SYSTEM GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME SSH_REMOTE_HOSTS USER VERSION
|
||||
DOCKER_COMPOSE ?= $(if $(DOCKER_RUN),docker/compose:$(COMPOSE_VERSION),$(or $(shell docker compose >/dev/null 2>&1 && printf 'docker compose\n'),docker-compose)) $(COMPOSE_ARGS)
|
||||
DOCKER_COMPOSE_DOWN_OPTIONS ?=
|
||||
DOCKER_COMPOSE_PROJECT_NAME ?= $(if $(filter node,$(firstword $(subst /, ,$(STACK)))),$(NODE_COMPOSE_PROJECT_NAME),$(if $(filter User,$(firstword $(subst /, ,$(STACK)))),$(USER_COMPOSE_PROJECT_NAME),$(COMPOSE_PROJECT_NAME)))
|
||||
DOCKER_COMPOSE_PROJECT_NAME ?= $(if $(filter node,$(firstword $(subst /, ,$(STACK)))),$(NODE_COMPOSE_PROJECT_NAME),$(if $(filter User,$(firstword $(subst /, ,$(STACK)))),$(USER_COMPOSE_PROJECT_NAME)))
|
||||
DOCKER_COMPOSE_RUN_OPTIONS ?= --rm
|
||||
DOCKER_COMPOSE_SERVICE_NAME ?= $(subst _,-,$(DOCKER_COMPOSE_PROJECT_NAME))
|
||||
DOCKER_COMPOSE_UP_OPTIONS ?= -d
|
||||
DOCKER_IMAGE_TAG ?= $(if $(filter true,$(DEPLOY)),$(if $(filter $(ENV),$(ENV_DEPLOY)),$(VERSION)),$(if $(DRONE_BUILD_NUMBER),$(DRONE_BUILD_NUMBER),latest))
|
||||
DOCKER_IMAGES ?= $(patsubst %/,%,$(patsubst docker/%,%,$(dir $(wildcard docker/*/Dockerfile))))
|
||||
|
@ -43,7 +44,7 @@ DOCKER_PLUGIN_S3FS_OPTIONS ?= allow_other,nonempty,use_path_request_style,u
|
|||
DOCKER_PLUGIN_S3FS_SECRETKEY ?= $(AWS_SECRET_ACCESS_KEY)
|
||||
DOCKER_PLUGIN_S3FS_REGION ?= eu-west-1
|
||||
DOCKER_PLUGIN_VARS ?= S3FS_ACCESSKEY S3FS_OPTIONS S3FS_SECRETKEY S3FS_REGION
|
||||
DOCKER_REGISTRY ?= my.os
|
||||
DOCKER_REGISTRY ?= $(DOMAIN)
|
||||
DOCKER_REGISTRY_USERNAME ?= $(USER)
|
||||
DOCKER_REGISTRY_REPOSITORY ?= $(addsuffix /,$(DOCKER_REGISTRY))$(subst $(USER),$(DOCKER_REGISTRY_USERNAME),$(DOCKER_REPOSITORY))
|
||||
DOCKER_REPOSITORY ?= $(subst -,/,$(subst _,/,$(COMPOSE_PROJECT_NAME)))
|
||||
|
@ -83,13 +84,13 @@ endef
|
|||
define docker-compose
|
||||
$(call INFO,docker-compose,$(1))
|
||||
$(if $(DOCKER_RUN),$(call docker-build,$(MYOS)/docker/compose,docker/compose:$(COMPOSE_VERSION)))
|
||||
$(if $(COMPOSE_FILE),$(call run,$(DOCKER_COMPOSE) $(patsubst %,-f %,$(COMPOSE_FILE)) -p $(DOCKER_COMPOSE_PROJECT_NAME) $(1)))
|
||||
$(if $(COMPOSE_FILE),$(call run,$(DOCKER_COMPOSE) $(patsubst %,-f %,$(COMPOSE_FILE)) -p $(COMPOSE_PROJECT_NAME) $(1)))
|
||||
endef
|
||||
# function docker-compose-exec-sh: Run docker-compose-exec sh -c 'arg 2' in service 1
|
||||
define docker-compose-exec-sh
|
||||
$(call INFO,docker-compose-exec-sh,$(1)$(comma) $(2))
|
||||
$(if $(DOCKER_RUN),$(call docker-build,$(MYOS)/docker/compose,docker/compose:$(COMPOSE_VERSION)))
|
||||
$(if $(COMPOSE_FILE),$(call run,$(DOCKER_COMPOSE) $(patsubst %,-f %,$(COMPOSE_FILE)) -p $(DOCKER_COMPOSE_PROJECT_NAME) exec -T $(1) sh -c '$(2)'))
|
||||
$(if $(COMPOSE_FILE),$(call run,$(DOCKER_COMPOSE) $(patsubst %,-f %,$(COMPOSE_FILE)) -p $(COMPOSE_PROJECT_NAME) exec -T $(1) sh -c '$(2)'))
|
||||
endef
|
||||
# function docker-push: Push docker image
|
||||
define docker-push
|
||||
|
|
|
@ -134,9 +134,9 @@ docker-images-rm-%:
|
|||
docker-login: myos-user
|
||||
$(RUN) docker login
|
||||
|
||||
# target docker-network: Fire docker-network-create-% for DOCKER_NETWORK_PRIVATE and DOCKER_NETWORK_PUBLIC
|
||||
# target docker-network: Fire docker-network-create-% for DOCKER_NETWORK and DOCKER_NETWORK_PUBLIC
|
||||
.PHONY: docker-network
|
||||
docker-network: docker-network-create-$(DOCKER_NETWORK_PRIVATE) docker-network-create-$(DOCKER_NETWORK_PUBLIC)
|
||||
docker-network: docker-network-create docker-network-create-$(DOCKER_NETWORK_PUBLIC)
|
||||
|
||||
# target docker-network-create: Fire docker-network-create-% for DOCKER_NETWORK
|
||||
.PHONY: docker-network-create
|
||||
|
|
|
@ -4,9 +4,9 @@ DOCKER_GID ?= $(call gid,docker)
|
|||
DOCKER_IMAGE ?= $(USER_DOCKER_IMAGE)
|
||||
DOCKER_MACHINE ?= $(shell docker run --rm alpine uname -m 2>/dev/null)
|
||||
DOCKER_NAME ?= $(USER_DOCKER_NAME)
|
||||
DOCKER_NETWORK ?= $(DOCKER_NETWORK_PRIVATE)
|
||||
DOCKER_NETWORK_PRIVATE ?= $(USER_COMPOSE_PROJECT_NAME)
|
||||
DOCKER_NETWORK_PUBLIC ?= $(NODE_COMPOSE_PROJECT_NAME)
|
||||
DOCKER_NETWORK ?= $(if $(filter User,$(firstword $(subst /, ,$(STACK)))),$(USER),$(DOCKER_NETWORK_PRIVATE))
|
||||
DOCKER_NETWORK_PRIVATE ?= $(USER)-$(ENV)
|
||||
DOCKER_NETWORK_PUBLIC ?= $(HOSTNAME)
|
||||
# DOCKER_RUN: if empty, run system command, else run it in a docker
|
||||
DOCKER_RUN ?= $(if $(filter-out false False FALSE,$(DOCKER)),$(DOCKER))
|
||||
DOCKER_RUN_LABELS ?= $(patsubst %,-l %,$(DOCKER_LABELS))
|
||||
|
@ -16,18 +16,19 @@ DOCKER_RUN_OPTIONS += --rm --network $(DOCKER_NETWORK)
|
|||
DOCKER_RUN_VOLUME += -v /var/run/docker.sock:/var/run/docker.sock
|
||||
DOCKER_RUN_WORKDIR ?= -w $(PWD)
|
||||
DOCKER_SYSTEM ?= $(shell docker run --rm alpine uname -s 2>/dev/null)
|
||||
ENV_VARS += DOCKER_MACHINE DOCKER_NETWORK_PRIVATE DOCKER_NETWORK_PUBLIC DOCKER_SYSTEM NODE_COMPOSE_PROJECT_NAME NODE_COMPOSE_SERVICE_NAME NODE_DOCKER_REPOSITORY NODE_DOCKER_VOLUME NODE_GID NODE_UID USER_COMPOSE_PROJECT_NAME USER_COMPOSE_SERVICE_NAME USER_DOCKER_IMAGE USER_DOCKER_NAME USER_DOCKER_REPOSITORY USER_DOCKER_VOLUME
|
||||
ENV_VARS += DOCKER_MACHINE DOCKER_NETWORK DOCKER_NETWORK_PRIVATE DOCKER_NETWORK_PUBLIC DOCKER_SYSTEM NODE_COMPOSE_PROJECT_NAME NODE_COMPOSE_SERVICE_NAME NODE_DOCKER_REPOSITORY NODE_DOCKER_VOLUME NODE_GID NODE_UID USER_COMPOSE_PROJECT_NAME USER_COMPOSE_SERVICE_NAME USER_DOCKER_IMAGE USER_DOCKER_NAME USER_DOCKER_REPOSITORY USER_DOCKER_VOLUME
|
||||
NODE_COMPOSE_PROJECT_NAME ?= $(HOSTNAME)
|
||||
NODE_COMPOSE_SERVICE_NAME ?= $(subst _,-,$(NODE_COMPOSE_PROJECT_NAME))
|
||||
NODE_DOCKER_REPOSITORY ?= $(subst -,/,$(subst _,/,$(NODE_COMPOSE_PROJECT_NAME)))
|
||||
NODE_DOCKER_VOLUME ?= $(NODE_COMPOSE_PROJECT_NAME)
|
||||
NODE_GID ?= 100
|
||||
NODE_UID ?= 123
|
||||
USER_COMPOSE_PROJECT_NAME ?= $(USER)-$(ENV)
|
||||
RESU_DOCKER_REPOSITORY ?= $(subst -,/,$(subst _,/,$(USER_COMPOSE_PROJECT_NAME)))
|
||||
USER_COMPOSE_PROJECT_NAME ?= $(strip $(RESU))
|
||||
USER_COMPOSE_SERVICE_NAME ?= $(subst _,-,$(USER_COMPOSE_PROJECT_NAME))
|
||||
USER_DOCKER_IMAGE ?= $(USER_DOCKER_REPOSITORY):${DOCKER_IMAGE_TAG}
|
||||
USER_DOCKER_NAME ?= $(USER_COMPOSE_PROJECT_NAME)
|
||||
USER_DOCKER_REPOSITORY ?= $(subst -,/,$(subst _,/,$(USER_COMPOSE_PROJECT_NAME)))
|
||||
USER_DOCKER_REPOSITORY ?= $(subst -,/,$(subst _,/,$(USER)))
|
||||
USER_DOCKER_VOLUME ?= $(USER_COMPOSE_PROJECT_NAME)
|
||||
|
||||
# https://github.com/docker/libnetwork/pull/2348
|
||||
|
@ -81,7 +82,7 @@ define run
|
|||
$(if $(DOCKER_RUN_NAME),
|
||||
$(if $(call docker-running,^$(DOCKER_RUN_NAME)$$),
|
||||
$(call ERROR,Found already running docker,$(DOCKER_RUN_NAME))
|
||||
)
|
||||
)
|
||||
)
|
||||
$(RUN) docker run $(DOCKER_ENV_ARGS) $(DOCKER_RUN_LABELS) $(DOCKER_RUN_OPTIONS) $(DOCKER_RUN_VOLUME) $(DOCKER_RUN_WORKDIR) $(DOCKER_SSH_AUTH) $(DOCKER_RUN_NAME) $(2)$(1)
|
||||
endef
|
||||
|
|
83
make/def.mk
83
make/def.mk
|
@ -53,10 +53,10 @@ ENV_ARGS ?= $(env_args)
|
|||
ENV_FILE ?= $(wildcard $(if $(filter-out myos,$(MYOS)),$(MONOREPO_DIR)/.env) $(CONFIG)/$(ENV)/$(APP)/.env .env)
|
||||
ENV_LIST ?= $(shell ls .git/refs/heads/ 2>/dev/null)
|
||||
ENV_RESET ?= false
|
||||
ENV_VARS ?= APP BRANCH DOMAIN ENV HOME HOSTNAME GID GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME GROUP MONOREPO MONOREPO_DIR TAG UID USER VERSION
|
||||
ENV_VARS ?= APP BRANCH DOMAIN ENV HOME HOSTNAME GID GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME GROUP MAIL MONOREPO MONOREPO_DIR TAG UID USER VERSION
|
||||
GID ?= $(shell id -g 2>/dev/null)
|
||||
GIDS ?= $(shell id -G 2>/dev/null)
|
||||
GIT_AUTHOR_EMAIL ?= $(or $(shell git config user.email 2>/dev/null),$(USER)@my.os)
|
||||
GIT_AUTHOR_EMAIL ?= $(or $(shell git config user.email 2>/dev/null),$(USER)@$(DOMAIN))
|
||||
GIT_AUTHOR_NAME ?= $(or $(shell git config user.name 2>/dev/null),$(USER))
|
||||
GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
||||
GIT_COMMIT ?= $(shell git rev-parse $(BRANCH) 2>/dev/null)
|
||||
|
@ -75,6 +75,7 @@ INSTALL ?= $(RUN) $(SUDO) $(subst &&,&& $(RUN) $(SUDO),$
|
|||
INSTALL_CMDS ?= APK_INSTALL APT_INSTALL
|
||||
$(foreach cmd,$(INSTALL_CMDS),$(if $(CMD_$(cmd)),$(eval INSTALL_CMD ?= $(CMD_$(cmd)))))
|
||||
LOG_LEVEL ?= $(if $(DEBUG),debug,$(if $(VERBOSE),info,error))
|
||||
MAIL ?= $(GIT_AUTHOR_EMAIL)
|
||||
MAKE_ARGS ?= $(foreach var,$(MAKE_VARS),$(if $($(var)),$(var)='$($(var))'))
|
||||
MAKE_SUBDIRS ?= $(if $(filter myos,$(MYOS)),monorepo,$(if $(APP),apps $(foreach type,$(APP_LOAD),$(if $(wildcard $(MAKE_DIR)/apps/$(type)),apps/$(type)))))
|
||||
MAKE_CMD_ARGS ?= $(foreach var,$(MAKE_CMD_VARS),$(var)='$($(var))')
|
||||
|
@ -151,6 +152,53 @@ printf '${COLOR_ERROR}ERROR:${COLOR_RESET} ${COLOR_INFO}$(APP)${COLOR_RESET}[${C
|
|||
&& printf '\n' >&$(ERROR_FD) \
|
||||
&& exit 2
|
||||
|
||||
INFO_FD := 2
|
||||
# macro INFO: print colorized info
|
||||
INFO = $(if $(VERBOSE),$(if $(filter-out true,$(IGNORE_VERBOSE)), \
|
||||
printf '${COLOR_INFO}$(APP)${COLOR_RESET}[${COLOR_VALUE}$(MAKELEVEL)${COLOR_RESET}]$(if $@, ${COLOR_VALUE}$@${COLOR_RESET}):${COLOR_RESET} ' >&$(INFO_FD) \
|
||||
$(if $(2), \
|
||||
&& printf 'Calling ${COLOR_HIGHLIGHT}$(1)${COLOR_RESET}$(lbracket)' >&$(INFO_FD) \
|
||||
&& $(or $(strip $(call PRINTF,$(2))),printf '$(2)') >&$(INFO_FD) \
|
||||
&& printf '$(rbracket)' >&$(INFO_FD) \
|
||||
$(if $(3),&& printf ' ${COLOR_VALUE}in${COLOR_RESET} $(3)' >&$(INFO_FD)) \
|
||||
, \
|
||||
&& $(strip $(call PRINTF,$(1)) >&$(INFO_FD)) \
|
||||
) \
|
||||
&& printf '\n' >&$(INFO_FD) \
|
||||
))
|
||||
|
||||
# macro RESU: Print USER associated to MAIL
|
||||
RESU = \
|
||||
$(if $(findstring @,$(MAIL)), \
|
||||
$(eval user := $(subst +,,$(subst -,,$(subst .,,$(call LOWERCASE,$(shell printf '$(MAIL)' |awk -F "@" '{print $$1}')))))) \
|
||||
$(eval domain := $(call LOWERCASE,$(call subst,_,,$(shell printf '$(MAIL)' |awk -F "@" '{print $$NF}')))) \
|
||||
$(if $(domain), \
|
||||
$(eval mail := $(MAIL)) \
|
||||
$(eval niamod := $(subst $(space),_,$(strip $(call reverse,$(subst .,$(space),$(domain)))))) \
|
||||
$(eval resu := $(niamod)_$(user)) \
|
||||
$(eval resu_path := $(subst _,/,$(niamod))/$(user)) \
|
||||
$(resu) \
|
||||
, $(USER) \
|
||||
) \
|
||||
, $(USER) \
|
||||
)
|
||||
|
||||
# macro TIME: Print time elapsed since unixtime 1
|
||||
TIME = awk '{printf "%02d:%02d:%02d\n",int($$1/3600),int(($$1%3600)/60),int($$1%60)}' \
|
||||
<<< $(shell awk 'BEGIN {current=$(or $(2),$(MAKE_UNIXTIME_CURRENT)); start=$(or $(1),$(MAKE_UNIXTIME_START)); print (current - start)}' 2>/dev/null)
|
||||
|
||||
WARNING_FD := 2
|
||||
# macro WARNING: print colorized warning
|
||||
WARNING = \
|
||||
printf '${COLOR_WARNING}WARNING:${COLOR_RESET} ${COLOR_INFO}$(APP)${COLOR_RESET}[${COLOR_VALUE}$(MAKELEVEL)${COLOR_RESET}]$(if $@, ${COLOR_VALUE}$@${COLOR_RESET}):${COLOR_RESET} ' >&$(WARNING_FD) \
|
||||
$(if $(2), \
|
||||
&& printf '$(1) ${COLOR_HIGHLIGHT}$(2)${COLOR_RESET}' >&$(WARNING_FD) \
|
||||
$(if $(3),&& printf ' $(3)$(if $(4), ${COLOR_VALUE}$(4)${COLOR_RESET})' >&$(WARNING_FD)) \
|
||||
, \
|
||||
&& $(strip $(call PRINTF,$(1)) >&$(WARNING_FD)) \
|
||||
) \
|
||||
&& printf '\n' >&$(WARNING_FD)
|
||||
|
||||
# macro force: Run command 1 sine die
|
||||
## it starts command 1 if it is not already running
|
||||
## it returns never
|
||||
|
@ -172,43 +220,12 @@ force = $$(while true; do \
|
|||
# macro gid: Return GID of group 1
|
||||
gid = $(shell awk -F':' '$$1 == "$(1)" {print $$3}' /etc/group 2>/dev/null)
|
||||
|
||||
INFO_FD := 2
|
||||
# macro INFO: print colorized info
|
||||
INFO = $(if $(VERBOSE),$(if $(filter-out true,$(IGNORE_VERBOSE)), \
|
||||
printf '${COLOR_INFO}$(APP)${COLOR_RESET}[${COLOR_VALUE}$(MAKELEVEL)${COLOR_RESET}]$(if $@, ${COLOR_VALUE}$@${COLOR_RESET}):${COLOR_RESET} ' >&$(INFO_FD) \
|
||||
$(if $(2), \
|
||||
&& printf 'Calling ${COLOR_HIGHLIGHT}$(1)${COLOR_RESET}$(lbracket)' >&$(INFO_FD) \
|
||||
&& $(or $(strip $(call PRINTF,$(2))),printf '$(2)') >&$(INFO_FD) \
|
||||
&& printf '$(rbracket)' >&$(INFO_FD) \
|
||||
$(if $(3),&& printf ' ${COLOR_VALUE}in${COLOR_RESET} $(3)' >&$(INFO_FD)) \
|
||||
, \
|
||||
&& $(strip $(call PRINTF,$(1)) >&$(INFO_FD)) \
|
||||
) \
|
||||
&& printf '\n' >&$(INFO_FD) \
|
||||
))
|
||||
|
||||
# macro pop: Return last word of string 1 according to separator 2
|
||||
pop = $(patsubst %$(or $(2),/)$(lastword $(subst $(or $(2),/), ,$(1))),%,$(1))
|
||||
|
||||
# macro sed: Run sed script 1 on file 2
|
||||
sed = $(RUN) sed -i $(SED_SUFFIX) '$(1)' $(2)
|
||||
|
||||
# macro TIME: Print time elapsed since unixtime 1
|
||||
TIME = awk '{printf "%02d:%02d:%02d\n",int($$1/3600),int(($$1%3600)/60),int($$1%60)}' \
|
||||
<<< $(shell awk 'BEGIN {current=$(or $(2),$(MAKE_UNIXTIME_CURRENT)); start=$(or $(1),$(MAKE_UNIXTIME_START)); print (current - start)}' 2>/dev/null)
|
||||
|
||||
WARNING_FD := 2
|
||||
# macro WARNING: print colorized warning
|
||||
WARNING = \
|
||||
printf '${COLOR_WARNING}WARNING:${COLOR_RESET} ${COLOR_INFO}$(APP)${COLOR_RESET}[${COLOR_VALUE}$(MAKELEVEL)${COLOR_RESET}]$(if $@, ${COLOR_VALUE}$@${COLOR_RESET}):${COLOR_RESET} ' >&$(WARNING_FD) \
|
||||
$(if $(2), \
|
||||
&& printf '$(1) ${COLOR_HIGHLIGHT}$(2)${COLOR_RESET}' >&$(WARNING_FD) \
|
||||
$(if $(3),&& printf ' $(3)$(if $(4), ${COLOR_VALUE}$(4)${COLOR_RESET})' >&$(WARNING_FD)) \
|
||||
, \
|
||||
&& $(strip $(call PRINTF,$(1)) >&$(WARNING_FD)) \
|
||||
) \
|
||||
&& printf '\n' >&$(WARNING_FD)
|
||||
|
||||
# function conf: Extract variable=value line from configuration files
|
||||
## it prints the line with variable 3 definition from block 2 in file 1
|
||||
define conf
|
||||
|
|
|
@ -21,6 +21,6 @@ include $(filter-out $(wildcard $(MAKE_FILE) $(MAKE_FIRST) $(MAKE_LATEST)),$(wil
|
|||
## it includes $(MAKE_DIR)/*/*.mk
|
||||
include $(foreach subdir,$(MAKE_SUBDIRS),$(filter-out $(wildcard $(MAKE_DIR)/$(subdir)/def.mk $(MAKE_DIR)/$(subdir)/def.*.mk),$(wildcard $(MAKE_DIR)/$(subdir)/*.mk)))
|
||||
## it includes *.mk */*.mk if not myos nor monorepo, stack/*.mk if myos
|
||||
include $(if $(filter-out myos,$(MYOS)),$(if $(filter-out .,$(MYOS)),$(filter-out $(wildcard def.mk def.*.mk */def.mk */def.*.mk),$(wildcard *.mk */*.mk)),$(wildcard stack/*.mk)))
|
||||
include $(if $(filter-out myos,$(MYOS)),$(if $(filter-out .,$(MYOS)),$(filter-out $(wildcard def.mk def.*.mk */def.mk */def.*.mk),$(wildcard *.mk */*.mk)),$(wildcard stack/*.mk stack/*/*.mk)))
|
||||
## it includes $(MAKE_LATEST)
|
||||
include $(wildcard $(MAKE_LATEST))
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
CMDARGS += user-exec user-exec:% user-exec@% user-run user-run:% user-run@%
|
||||
User ?= User/User
|
||||
|
||||
# target bootstrap-stack-User: Fire docker-network-create
|
||||
.PHONY: bootstrap-stack-User
|
||||
bootstrap-stack-User:
|
||||
ENV_VARS += USER_DOMAIN user_domain
|
||||
USER_DOMAIN ?= $(USER).$(DOMAIN)
|
||||
User ?= $(patsubst stack/%,%,$(patsubst %.yml,%,$(wildcard stack/User/*.yml)))
|
||||
user_domain ?= $(user).$(domain)
|
||||
|
||||
# target start-stack-User: Fire ssh-add
|
||||
.PHONY: start-stack-User
|
||||
|
@ -11,8 +10,10 @@ start-stack-User: ssh-add
|
|||
|
||||
# target user: Fire start-stack-User if DOCKER_RUN or fire start-stack-User
|
||||
.PHONY: User user
|
||||
User user: STACK := User
|
||||
User user: $(if $(DOCKER_RUN),stack-User-up,start-stack-User)
|
||||
|
||||
# target User-% user-%; Fire target stack-User-%
|
||||
.PHONY: User-% user-%
|
||||
User-% user-%: STACK := User
|
||||
User-% user-%: stack-User-%;
|
||||
|
|
|
@ -34,23 +34,23 @@ services:
|
|||
user: ${UID}:${GID}
|
||||
volumes:
|
||||
- ${HOME}:${HOME}:cached
|
||||
- monorepo:${MONOREPO_DIR}:cached
|
||||
- myos:/tmp/ssh-agent
|
||||
- sources:${MONOREPO_DIR}:cached
|
||||
- user:/tmp/ssh-agent
|
||||
working_dir: ${MONOREPO_DIR}
|
||||
|
||||
volumes:
|
||||
monorepo:
|
||||
sources:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
device: ${MONOREPO_DIR}
|
||||
o: bind
|
||||
name: ${USER_COMPOSE_PROJECT_NAME}
|
||||
myos:
|
||||
name: ${USER}_sources
|
||||
user:
|
||||
external: true
|
||||
name: ${USER_DOCKER_VOLUME}
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
name: ${DOCKER_NETWORK}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
ENV_VARS += USER_IPFS_API_HTTPHEADERS_ACA_ORIGIN USER_IPFS_SERVICE_5001_TAGS USER_IPFS_SERVICE_8080_TAGS
|
||||
USER_IPFS_API_HTTPHEADERS_ACA_ORIGIN ?= ["https://ipfs.$(USER_DOMAIN)", "http://ipfs.localhost:8080"]
|
||||
USER_IPFS_SERVICE_5001_TAGS ?= urlprefix-ipfs.$(USER_DOMAIN)/user/$(user_domain)/api
|
||||
USER_IPFS_SERVICE_8080_TAGS ?= urlprefix-ipfs.$(USER_DOMAIN)/user/$(user_domain),urlprefix-*.ipfs.$(USER_DOMAIN)/user/$(user_domain),urlprefix-ipns.$(USER_DOMAIN)/user/$(user_domain),urlprefix-*.ipns.$(USER_DOMAIN)/user/$(user_domain)
|
|
@ -0,0 +1,100 @@
|
|||
version: '3.6'
|
||||
|
||||
services:
|
||||
ipfs:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/ipfs
|
||||
- GID=${GID}
|
||||
- IPFS_VERSION=${IPFS_VERSION}
|
||||
- UID=${UID}
|
||||
context: ../..
|
||||
dockerfile: docker/ipfs/Dockerfile
|
||||
command: daemon --agent-version-suffix=${COMPOSE_PROJECT_NAME} ${USER_IPFS_DAEMON_ARGS:---migrate}
|
||||
container_name: ${COMPOSE_PROJECT_NAME}-ipfs
|
||||
cpus: 0.5
|
||||
environment:
|
||||
- IPFS_ADDRESSES_API=${USER_IPFS_ADDRESSES_API:-}
|
||||
- IPFS_ADDRESSES_API_DOMAIN=${USER_IPFS_ADDRESSES_API_DOMAIN:-${DOCKER_NETWORK_PUBLIC}}
|
||||
- IPFS_ADDRESSES_API_INET4=${USER_IPFS_ADDRESSES_API_INET4:-}
|
||||
- IPFS_ADDRESSES_API_PORT=${USER_IPFS_ADDRESSES_API_PORT:-}
|
||||
- IPFS_ADDRESSES_GATEWAY=${USER_IPFS_ADDRESSES_GATEWAY:-}
|
||||
- IPFS_ADDRESSES_GATEWAY_DOMAIN=${USER_IPFS_ADDRESSES_GATEWAY_DOMAIN:-}
|
||||
- IPFS_ADDRESSES_GATEWAY_INET4=${USER_IPFS_ADDRESSES_GATEWAY_INET4:-0.0.0.0}
|
||||
- IPFS_ADDRESSES_GATEWAY_PORT=${USER_IPFS_ADDRESSES_GATEWAY_PORT:-}
|
||||
- IPFS_ADDRESSES_NOANNOUNCE=${USER_IPFS_ADDRESSES_NOANNOUNCE:-}
|
||||
- IPFS_API_HTTPHEADERS=${USER_IPFS_API_HTTPHEADERS:-}
|
||||
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${USER_IPFS_API_HTTPHEADERS_ACA_CREDENTIALS:-["true"]}
|
||||
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${USER_IPFS_API_HTTPHEADERS_ACA_HEADERS:-["X-Requested-With", "Range", "User-Agent"]}
|
||||
- IPFS_API_HTTPHEADERS_ACA_METHODS=${USER_IPFS_API_HTTPHEADERS_ACA_METHODS:-["OPTIONS", "POST"]}
|
||||
- IPFS_API_HTTPHEADERS_ACA_ORIGIN=${USER_IPFS_API_HTTPHEADERS_ACA_ORIGIN:-}
|
||||
- IPFS_BOOTSTRAP=${USER_IPFS_BOOTSTRAP:-}
|
||||
- IPFS_DATASTORE_GCPERIOD=${USER_IPFS_DATASTORE_GCPERIOD:-}
|
||||
- IPFS_DISK_USAGE_PERCENT=${USER_IPFS_DISK_USAGE_PERCENT:-}
|
||||
- IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT=${USER_IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT:-}
|
||||
- IPFS_EXPERIMENTAL_FILESTOREENABLED=${USER_IPFS_EXPERIMENTAL_FILESTOREENABLED:-}
|
||||
- IPFS_EXPERIMENTAL_GRAPHSYNCENABLED=${USER_IPFS_EXPERIMENTAL_GRAPHSYNCENABLED:-}
|
||||
- IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING=${USER_IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING:-}
|
||||
- IPFS_EXPERIMENTAL_P2PHTTPPROXY=${USER_IPFS_EXPERIMENTAL_P2PHTTPPROXY:-}
|
||||
- IPFS_EXPERIMENTAL_STRATEGICPROVIDING=${USER_IPFS_EXPERIMENTAL_STRATEGICPROVIDING:-}
|
||||
- IPFS_EXPERIMENTAL_URLSTOREENABLED=${USER_IPFS_EXPERIMENTAL_URLSTOREENABLED:-}
|
||||
- IPFS_IDENTITY_PEERID=${USER_IPFS_IDENTITY_PEERID:-}
|
||||
- IPFS_IDENTITY_PRIVKEY=${USER_IPFS_IDENTITY_PRIVKEY:-}
|
||||
- IPFS_IPNS_REPUBLISHPERIOD=${USER_IPFS_IPNS_REPUBLISHPERIOD:-}
|
||||
- IPFS_IPNS_RECORDLIFETIME=${USER_IPFS_IPNS_RECORDLIFETIME:-}
|
||||
- IPFS_IPNS_USEPUBSUB=${USER_IPFS_IPNS_USEPUBSUB:-true}
|
||||
- IPFS_LOGGING=${USER_IPFS_LOGGING:-error}
|
||||
- IPFS_NETWORK=${USER_IPFS_NETWORK:-private}
|
||||
- IPFS_PROFILE=${USER_IPFS_PROFILE:-${IPFS_PROFILE}}
|
||||
- IPFS_PUBSUB_ENABLE=${USER_IPFS_PUBSUB_ENABLE:-true}
|
||||
- IPFS_PUBSUB_ROUTER=${USER_IPFS_PUBSUB_ROUTER:-gossipsub}
|
||||
- IPFS_ROUTING_TYPE=${USER_IPFS_ROUTING_TYPE:-dht}
|
||||
- IPFS_REPROVIDER_INTERVAL=${USER_IPFS_REPROVIDER_INTERVAL:-}
|
||||
- IPFS_REPROVIDER_STRATEGY=${USER_IPFS_REPROVIDER_STRATEGY:-}
|
||||
- IPFS_SWARM_CONNMGR_HIGHWATER=${USER_IPFS_SWARM_CONNMGR_HIGHWATER:-}
|
||||
- IPFS_SWARM_CONNMGR_LOWWATER=${USER_IPFS_SWARM_CONNMGR_LOWWATER:-}
|
||||
- IPFS_SWARM_CONNMGR_TYPE=${USER_IPFS_SWARM_CONNMGR_TYPE:-}
|
||||
- IPFS_SWARM_DISABLENATPORTMAP=${USER_IPFS_SWARM_DISABLENATPORTMAP:-}
|
||||
- IPFS_SWARM_ENABLEHOLEPUNCHING=${USER_IPFS_SWARM_ENABLEHOLEPUNCHING:-}
|
||||
- IPFS_SWARM_KEY=${USER_IPFS_SWARM_KEY:-}
|
||||
- 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:-}
|
||||
image: ${USER_DOCKER_REPOSITORY}/ipfs:${DOCKER_IMAGE_TAG}
|
||||
labels:
|
||||
- SERVICE_4001_CHECK_TCP=true
|
||||
- SERVICE_4001_NAME=${USER_COMPOSE_SERVICE_NAME}-ipfs-4001
|
||||
- SERVICE_5001_CHECK_HTTP=${USER_IPFS_SERVICE_5001_CHECK_HTTP:-/api/v0/diag/sys}
|
||||
- SERVICE_5001_CHECK_HTTP_METHOD=${USER_IPFS_SERVICE_5001_CHECK_HTTP_METHOD:-POST}
|
||||
- SERVICE_5001_NAME=${USER_COMPOSE_SERVICE_NAME}-ipfs-5001
|
||||
- SERVICE_5001_TAGS=${USER_IPFS_SERVICE_5001_TAGS:-}
|
||||
- SERVICE_8080_CHECK_HTTP=${USER_IPFS_SERVICE_8080_CHECK_HTTP:-/ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn}
|
||||
- SERVICE_8080_NAME=${USER_COMPOSE_SERVICE_NAME}-ipfs-8080
|
||||
- SERVICE_8080_TAGS=${USER_IPFS_SERVICE_8080_TAGS:-}
|
||||
- SERVICE_8081_IGNORE=true
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 4001/tcp
|
||||
- 4001/udp
|
||||
- 5001/tcp
|
||||
- 8080/tcp
|
||||
restart: always
|
||||
ulimits:
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
volumes:
|
||||
- ipfs:/data/ipfs:delegated
|
||||
|
||||
volumes:
|
||||
ipfs:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
|
@ -8,4 +8,4 @@ elastic ?= elastic/curator elastic/elasticsearch elastic
|
|||
# target elasticsearch-delete-%: delete elasticsearch index %
|
||||
.PHONY: elasticsearch-delete-%
|
||||
elasticsearch-delete-%:
|
||||
docker ps |awk '$$NF ~ /myos_$(ENV)_elasticsearch/' |sed 's/^.*:\([0-9]*\)->9200\/tcp.*$$/\1/' |while read port; do echo -e "DELETE /$* HTTP/1.0\n\n" |nc localhost $$port; done
|
||||
docker ps |awk '$$NF ~ /$(USER)-myos-$(ENV)-elasticsearch/' |sed 's/^.*:\([0-9]*\)->9200\/tcp.*$$/\1/' |while read port; do echo -e "DELETE /$* HTTP/1.0\n\n" |nc localhost $$port; done
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
ENV_VARS += IPFS_DAEMON_ARGS IPFS_PROFILE IPFS_VERSION
|
||||
IPFS_PROFILE ?= $(if $(filter-out amd64 x86_64,$(MACHINE)),lowpower,server)
|
||||
IPFS_VERSION ?= 0.16.0
|
||||
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 ?= ["https://ipfs.$(APP_DOMAIN)","http://ipfs.localhost:8080"]
|
||||
IPFS_PROFILE ?= $(if $(filter-out amd64 x86_64,$(MACHINE)),lowpower,server)
|
||||
IPFS_SERVICE_5001_TAGS ?= urlprefix-ipfs.$(APP_DOMAIN)/api
|
||||
IPFS_SERVICE_8080_CHECK_HTTP ?= /ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn
|
||||
IPFS_SERVICE_8080_TAGS ?= urlprefix-ipfs.$(APP_DOMAIN)/,urlprefix-*.ipfs.$(APP_DOMAIN),urlprefix-ipns.$(APP_DOMAIN)/,urlprefix-*.ipns.$(APP_DOMAIN)/
|
||||
IPFS_VERSION ?= 0.16.0
|
||||
UFW_DOCKER_IPFS ?= 4001/tcp 4001/udp 8080
|
||||
|
||||
.PHONY: bootstrap-stack-ipfs
|
||||
bootstrap-stack-ipfs: ~/.ipfs setup-sysctl
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
IPFS_ADDRESSES_API_DOMAIN=${DOCKER_NETWORK_PUBLIC}
|
||||
IPFS_ADDRESSES_GATEWAY_INET4=0.0.0.0
|
||||
IPFS_DAEMON_ARGS=--migrate
|
||||
IPFS_IPNS_USEPUBSUB=true
|
||||
IPFS_LOGGING=warning
|
||||
IPFS_NETWORK=private
|
||||
IPFS_PUBSUB_ENABLE=true
|
||||
IPFS_PUBSUB_ROUTER=gossipsub
|
||||
IPFS_ROUTING_TYPE=dht
|
||||
IPFS_SERVICE_5001_CHECK_HTTP=/api/v0/diag/sys
|
||||
IPFS_SERVICE_5001_TAGS=urlprefix-ipfs.${APP_DOMAIN}/api
|
||||
IPFS_SERVICE_8080_CHECK_HTTP=/ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn
|
||||
IPFS_SERVICE_8080_TAGS=urlprefix-ipfs.${APP_DOMAIN}/,urlprefix-*.ipfs.${APP_DOMAIN}/,urlprefix-ipns.${APP_DOMAIN}/,urlprefix-*.ipns.${APP_DOMAIN}/
|
||||
IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=["true"]
|
||||
IPFS_API_HTTPHEADERS_ACA_HEADERS=["X-Requested-With", "Range", "User-Agent"]
|
||||
IPFS_API_HTTPHEADERS_ACA_METHODS=["OPTIONS", "POST"]
|
||||
IPFS_API_HTTPHEADERS_ACA_ORIGIN=["http://ipfs.${APP_DOMAIN}"]
|
|
@ -9,22 +9,22 @@ services:
|
|||
- UID=${UID}
|
||||
context: ../..
|
||||
dockerfile: docker/ipfs/Dockerfile
|
||||
command: daemon --agent-version-suffix=${COMPOSE_PROJECT_NAME} ${IPFS_DAEMON_ARGS}
|
||||
command: daemon --agent-version-suffix=${COMPOSE_PROJECT_NAME} ${IPFS_DAEMON_ARGS:---migrate}
|
||||
cpus: 0.5
|
||||
environment:
|
||||
- IPFS_ADDRESSES_API=${IPFS_ADDRESSES_API:-}
|
||||
- IPFS_ADDRESSES_API_DOMAIN=${IPFS_ADDRESSES_API_DOMAIN:-}
|
||||
- IPFS_ADDRESSES_API_DOMAIN=${IPFS_ADDRESSES_API_DOMAIN:-${DOCKER_NETWORK_PRIVATE}}
|
||||
- IPFS_ADDRESSES_API_INET4=${IPFS_ADDRESSES_API_INET4:-}
|
||||
- IPFS_ADDRESSES_API_PORT=${IPFS_ADDRESSES_API_PORT:-}
|
||||
- IPFS_ADDRESSES_GATEWAY=${IPFS_ADDRESSES_GATEWAY:-}
|
||||
- IPFS_ADDRESSES_GATEWAY_DOMAIN=${IPFS_ADDRESSES_GATEWAY_DOMAIN:-}
|
||||
- IPFS_ADDRESSES_GATEWAY_INET4=${IPFS_ADDRESSES_GATEWAY_INET4:-}
|
||||
- IPFS_ADDRESSES_GATEWAY_INET4=${IPFS_ADDRESSES_GATEWAY_INET4:-0.0.0.0}
|
||||
- IPFS_ADDRESSES_GATEWAY_PORT=${IPFS_ADDRESSES_GATEWAY_PORT:-}
|
||||
- IPFS_ADDRESSES_NOANNOUNCE=${IPFS_ADDRESSES_NOANNOUNCE:-}
|
||||
- IPFS_API_HTTPHEADERS=${IPFS_API_HTTPHEADERS:-}
|
||||
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${IPFS_API_HTTPHEADERS_ACA_CREDENTIALS:-}
|
||||
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${IPFS_API_HTTPHEADERS_ACA_HEADERS:-}
|
||||
- IPFS_API_HTTPHEADERS_ACA_METHODS=${IPFS_API_HTTPHEADERS_ACA_METHODS:-}
|
||||
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${IPFS_API_HTTPHEADERS_ACA_CREDENTIALS:-["true"]}
|
||||
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${IPFS_API_HTTPHEADERS_ACA_HEADERS:-["X-Requested-With", "Range", "User-Agent"]}
|
||||
- IPFS_API_HTTPHEADERS_ACA_METHODS=${IPFS_API_HTTPHEADERS_ACA_METHODS:-["OPTIONS", "POST"]}
|
||||
- IPFS_API_HTTPHEADERS_ACA_ORIGIN=${IPFS_API_HTTPHEADERS_ACA_ORIGIN:-}
|
||||
- IPFS_BOOTSTRAP=${IPFS_BOOTSTRAP:-}
|
||||
- IPFS_DATASTORE_GCPERIOD=${IPFS_DATASTORE_GCPERIOD:-}
|
||||
|
@ -36,15 +36,17 @@ services:
|
|||
- IPFS_EXPERIMENTAL_P2PHTTPPROXY=${IPFS_EXPERIMENTAL_P2PHTTPPROXY:-}
|
||||
- IPFS_EXPERIMENTAL_STRATEGICPROVIDING=${IPFS_EXPERIMENTAL_STRATEGICPROVIDING:-}
|
||||
- IPFS_EXPERIMENTAL_URLSTOREENABLED=${IPFS_EXPERIMENTAL_URLSTOREENABLED:-}
|
||||
- IPFS_IDENTITY_PEERID=${IPFS_IDENTITY_PEERID:-}
|
||||
- IPFS_IDENTITY_PRIVKEY=${IPFS_IDENTITY_PRIVKEY:-}
|
||||
- IPFS_IPNS_REPUBLISHPERIOD=${IPFS_IPNS_REPUBLISHPERIOD:-}
|
||||
- IPFS_IPNS_RECORDLIFETIME=${IPFS_IPNS_RECORDLIFETIME:-}
|
||||
- IPFS_IPNS_USEPUBSUB=${IPFS_IPNS_USEPUBSUB:-}
|
||||
- IPFS_LOGGING=${IPFS_LOGGING:-}
|
||||
- IPFS_NETWORK=${IPFS_NETWORK:-}
|
||||
- IPFS_IPNS_USEPUBSUB=${IPFS_IPNS_USEPUBSUB:-true}
|
||||
- IPFS_LOGGING=${IPFS_LOGGING:-error}
|
||||
- IPFS_NETWORK=${IPFS_NETWORK:-private}
|
||||
- IPFS_PROFILE=${IPFS_PROFILE:-}
|
||||
- IPFS_PUBSUB_ENABLE=${IPFS_PUBSUB_ENABLE:-}
|
||||
- IPFS_PUBSUB_ROUTER=${IPFS_PUBSUB_ROUTER:-}
|
||||
- IPFS_ROUTING_TYPE=${IPFS_ROUTING_TYPE:-}
|
||||
- IPFS_PUBSUB_ENABLE=${IPFS_PUBSUB_ENABLE:-true}
|
||||
- IPFS_PUBSUB_ROUTER=${IPFS_PUBSUB_ROUTER:-gossipsub}
|
||||
- IPFS_ROUTING_TYPE=${IPFS_ROUTING_TYPE:-dht}
|
||||
- IPFS_REPROVIDER_INTERVAL=${IPFS_REPROVIDER_INTERVAL:-}
|
||||
- IPFS_REPROVIDER_STRATEGY=${IPFS_REPROVIDER_STRATEGY:-}
|
||||
- IPFS_SWARM_CONNMGR_HIGHWATER=${IPFS_SWARM_CONNMGR_HIGHWATER:-}
|
||||
|
@ -52,6 +54,7 @@ services:
|
|||
- IPFS_SWARM_CONNMGR_TYPE=${IPFS_SWARM_CONNMGR_TYPE:-}
|
||||
- IPFS_SWARM_DISABLENATPORTMAP=${IPFS_SWARM_DISABLENATPORTMAP:-}
|
||||
- IPFS_SWARM_ENABLEHOLEPUNCHING=${IPFS_SWARM_ENABLEHOLEPUNCHING:-}
|
||||
- IPFS_SWARM_KEY=${IPFS_SWARM_KEY:-}
|
||||
- IPFS_SWARM_RELAYCLIENT_ENABLED=${IPFS_SWARM_RELAYCLIENT_ENABLED:-}
|
||||
- IPFS_SWARM_RELAYSERVICE_ENABLED=${IPFS_SWARM_RELAYSERVICE_ENABLED:-}
|
||||
- IPFS_SWARM_TRANSPORTS_NETWORK_RELAY=${IPFS_SWARM_TRANSPORTS_NETWORK_RELAY:-}
|
||||
|
@ -59,17 +62,16 @@ services:
|
|||
labels:
|
||||
- SERVICE_4001_CHECK_TCP=true
|
||||
- SERVICE_4001_NAME=${COMPOSE_SERVICE_NAME}-ipfs-4001
|
||||
- SERVICE_5001_CHECK_HTTP=${IPFS_SERVICE_5001_CHECK_HTTP}
|
||||
- SERVICE_5001_CHECK_HTTP_METHOD=POST
|
||||
- SERVICE_5001_CHECK_HTTP=${IPFS_SERVICE_5001_CHECK_HTTP:-/api/v0/diag/sys}
|
||||
- SERVICE_5001_CHECK_HTTP_METHOD=${IPFS_SERVICE_5001_CHECK_HTTP_METHOD:-POST}
|
||||
- SERVICE_5001_NAME=${COMPOSE_SERVICE_NAME}-ipfs-5001
|
||||
- SERVICE_5001_TAGS=${IPFS_SERVICE_5001_TAGS}
|
||||
- SERVICE_8080_CHECK_HTTP=${IPFS_SERVICE_8080_CHECK_HTTP}
|
||||
- SERVICE_5001_TAGS=${IPFS_SERVICE_5001_TAGS:-}
|
||||
- SERVICE_8080_CHECK_HTTP=${IPFS_SERVICE_8080_CHECK_HTTP:-/ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn}
|
||||
- SERVICE_8080_NAME=${COMPOSE_SERVICE_NAME}-ipfs-8080
|
||||
- SERVICE_8080_TAGS=${IPFS_SERVICE_8080_TAGS}
|
||||
- SERVICE_8080_TAGS=${IPFS_SERVICE_8080_TAGS:-}
|
||||
- SERVICE_8081_IGNORE=true
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 4001/tcp
|
||||
- 4001/udp
|
||||
|
|
|
@ -13,10 +13,10 @@ services:
|
|||
network_mode: host
|
||||
restart: always
|
||||
volumes:
|
||||
- myos:/etc/letsencrypt
|
||||
- node:/etc/letsencrypt
|
||||
|
||||
volumes:
|
||||
myos:
|
||||
node:
|
||||
external: true
|
||||
name: ${NODE_DOCKER_VOLUME}
|
||||
|
||||
|
|
|
@ -35,10 +35,10 @@ services:
|
|||
- public
|
||||
restart: always
|
||||
volumes:
|
||||
- myos:/etc/letsencrypt:ro
|
||||
- node:/etc/letsencrypt:ro
|
||||
|
||||
volumes:
|
||||
myos:
|
||||
node:
|
||||
external: true
|
||||
name: ${NODE_DOCKER_VOLUME}
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
ENV_VARS += NODE_IPFS_API_HTTPHEADERS_ACA_ORIGIN NODE_IPFS_SERVICE_5001_TAGS NODE_IPFS_SERVICE_8080_TAGS
|
||||
NODE_IPFS_API_HTTPHEADERS_ACA_ORIGIN ?= ["https://ipfs.$(DOMAIN)"]
|
||||
NODE_IPFS_SERVICE_5001_TAGS ?= urlprefix-ipfs.$(DOMAIN)/api
|
||||
NODE_IPFS_SERVICE_8080_TAGS ?= urlprefix-ipfs.$(DOMAIN)/,urlprefix-*.ipfs.$(DOMAIN),urlprefix-ipns.$(DOMAIN)/,urlprefix-*.ipns.$(DOMAIN)/
|
|
@ -10,23 +10,23 @@ services:
|
|||
- UID=${NODE_UID}
|
||||
context: ../..
|
||||
dockerfile: docker/ipfs/Dockerfile
|
||||
command: daemon --agent-version-suffix=${NODE_COMPOSE_PROJECT_NAME} ${NODE_IPFS_DAEMON_ARGS}
|
||||
command: daemon --agent-version-suffix=${NODE_COMPOSE_PROJECT_NAME} ${NODE_IPFS_DAEMON_ARGS:---migrate}
|
||||
container_name: ${NODE_COMPOSE_PROJECT_NAME}-ipfs
|
||||
cpus: 0.5
|
||||
environment:
|
||||
- IPFS_ADDRESSES_API=${NODE_IPFS_ADDRESSES_API:-}
|
||||
- IPFS_ADDRESSES_API_DOMAIN=${NODE_IPFS_ADDRESSES_API_DOMAIN:-}
|
||||
- IPFS_ADDRESSES_API_DOMAIN=${NODE_IPFS_ADDRESSES_API_DOMAIN:-${DOCKER_NETWORK_PUBLIC}}
|
||||
- IPFS_ADDRESSES_API_INET4=${NODE_IPFS_ADDRESSES_API_INET4:-}
|
||||
- IPFS_ADDRESSES_API_PORT=${NODE_IPFS_ADDRESSES_API_PORT:-}
|
||||
- IPFS_ADDRESSES_GATEWAY=${NODE_IPFS_ADDRESSES_GATEWAY:-}
|
||||
- IPFS_ADDRESSES_GATEWAY_DOMAIN=${NODE_IPFS_ADDRESSES_GATEWAY_DOMAIN:-}
|
||||
- IPFS_ADDRESSES_GATEWAY_INET4=${NODE_IPFS_ADDRESSES_GATEWAY_INET4:-}
|
||||
- IPFS_ADDRESSES_GATEWAY_INET4=${NODE_IPFS_ADDRESSES_GATEWAY_INET4:-0.0.0.0}
|
||||
- IPFS_ADDRESSES_GATEWAY_PORT=${NODE_IPFS_ADDRESSES_GATEWAY_PORT:-}
|
||||
- IPFS_ADDRESSES_NOANNOUNCE=${NODE_IPFS_ADDRESSES_NOANNOUNCE:-}
|
||||
- IPFS_API_HTTPHEADERS=${NODE_IPFS_API_HTTPHEADERS:-}
|
||||
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${NODE_IPFS_API_HTTPHEADERS_ACA_CREDENTIALS:-}
|
||||
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${NODE_IPFS_API_HTTPHEADERS_ACA_HEADERS:-}
|
||||
- IPFS_API_HTTPHEADERS_ACA_METHODS=${NODE_IPFS_API_HTTPHEADERS_ACA_METHODS:-}
|
||||
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${NODE_IPFS_API_HTTPHEADERS_ACA_CREDENTIALS:-["true"]}
|
||||
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${NODE_IPFS_API_HTTPHEADERS_ACA_HEADERS:-["X-Requested-With", "Range", "User-Agent"]}
|
||||
- IPFS_API_HTTPHEADERS_ACA_METHODS=${NODE_IPFS_API_HTTPHEADERS_ACA_METHODS:-["OPTIONS", "POST"]}
|
||||
- IPFS_API_HTTPHEADERS_ACA_ORIGIN=${NODE_IPFS_API_HTTPHEADERS_ACA_ORIGIN:-}
|
||||
- IPFS_BOOTSTRAP=${NODE_IPFS_BOOTSTRAP:-}
|
||||
- IPFS_DATASTORE_GCPERIOD=${NODE_IPFS_DATASTORE_GCPERIOD:-}
|
||||
|
@ -38,15 +38,17 @@ services:
|
|||
- IPFS_EXPERIMENTAL_P2PHTTPPROXY=${NODE_IPFS_EXPERIMENTAL_P2PHTTPPROXY:-}
|
||||
- IPFS_EXPERIMENTAL_STRATEGICPROVIDING=${NODE_IPFS_EXPERIMENTAL_STRATEGICPROVIDING:-}
|
||||
- IPFS_EXPERIMENTAL_URLSTOREENABLED=${NODE_IPFS_EXPERIMENTAL_URLSTOREENABLED:-}
|
||||
- IPFS_IDENTITY_PEERID=${NODE_IPFS_IDENTITY_PEERID:-}
|
||||
- IPFS_IDENTITY_PRIVKEY=${NODE_IPFS_IDENTITY_PRIVKEY:-}
|
||||
- IPFS_IPNS_REPUBLISHPERIOD=${NODE_IPFS_IPNS_REPUBLISHPERIOD:-}
|
||||
- IPFS_IPNS_RECORDLIFETIME=${NODE_IPFS_IPNS_RECORDLIFETIME:-}
|
||||
- IPFS_IPNS_USEPUBSUB=${NODE_IPFS_IPNS_USEPUBSUB:-}
|
||||
- IPFS_LOGGING=${NODE_IPFS_LOGGING:-}
|
||||
- IPFS_NETWORK=${NODE_IPFS_NETWORK:-}
|
||||
- IPFS_PROFILE=${NODE_IPFS_PROFILE:-}
|
||||
- IPFS_PUBSUB_ENABLE=${NODE_IPFS_PUBSUB_ENABLE:-}
|
||||
- IPFS_PUBSUB_ROUTER=${NODE_IPFS_PUBSUB_ROUTER:-}
|
||||
- IPFS_ROUTING_TYPE=${NODE_IPFS_ROUTING_TYPE:-}
|
||||
- IPFS_IPNS_USEPUBSUB=${NODE_IPFS_IPNS_USEPUBSUB:-true}
|
||||
- IPFS_LOGGING=${NODE_IPFS_LOGGING:-error}
|
||||
- IPFS_NETWORK=${NODE_IPFS_NETWORK:-public}
|
||||
- IPFS_PROFILE=${NODE_IPFS_PROFILE:-${IPFS_PROFILE}}
|
||||
- IPFS_PUBSUB_ENABLE=${NODE_IPFS_PUBSUB_ENABLE:-true}
|
||||
- IPFS_PUBSUB_ROUTER=${NODE_IPFS_PUBSUB_ROUTER:-gossipsub}
|
||||
- IPFS_ROUTING_TYPE=${NODE_IPFS_ROUTING_TYPE:-dht}
|
||||
- IPFS_REPROVIDER_INTERVAL=${NODE_IPFS_REPROVIDER_INTERVAL:-}
|
||||
- IPFS_REPROVIDER_STRATEGY=${NODE_IPFS_REPROVIDER_STRATEGY:-}
|
||||
- IPFS_SWARM_CONNMGR_HIGHWATER=${NODE_IPFS_SWARM_CONNMGR_HIGHWATER:-}
|
||||
|
@ -54,6 +56,7 @@ services:
|
|||
- IPFS_SWARM_CONNMGR_TYPE=${NODE_IPFS_SWARM_CONNMGR_TYPE:-}
|
||||
- IPFS_SWARM_DISABLENATPORTMAP=${NODE_IPFS_SWARM_DISABLENATPORTMAP:-}
|
||||
- IPFS_SWARM_ENABLEHOLEPUNCHING=${NODE_IPFS_SWARM_ENABLEHOLEPUNCHING:-}
|
||||
- IPFS_SWARM_KEY=${NODE_IPFS_SWARM_KEY:-}
|
||||
- IPFS_SWARM_RELAYCLIENT_ENABLED=${NODE_IPFS_SWARM_RELAYCLIENT_ENABLED:-}
|
||||
- IPFS_SWARM_RELAYSERVICE_ENABLED=${NODE_IPFS_SWARM_RELAYSERVICE_ENABLED:-}
|
||||
- IPFS_SWARM_TRANSPORTS_NETWORK_RELAY=${NODE_IPFS_SWARM_TRANSPORTS_NETWORK_RELAY:-}
|
||||
|
@ -61,13 +64,13 @@ services:
|
|||
labels:
|
||||
- SERVICE_4001_CHECK_TCP=true
|
||||
- SERVICE_4001_NAME=${NODE_COMPOSE_SERVICE_NAME}-ipfs-4001
|
||||
- SERVICE_5001_CHECK_HTTP=${NODE_IPFS_SERVICE_5001_CHECK_HTTP}
|
||||
- SERVICE_5001_CHECK_HTTP_METHOD=POST
|
||||
- SERVICE_5001_CHECK_HTTP=${NODE_IPFS_SERVICE_5001_CHECK_HTTP:-/api/v0/diag/sys}
|
||||
- SERVICE_5001_CHECK_HTTP_METHOD=${NODE_IPFS_SERVICE_5001_CHECK_HTTP_METHOD:-POST}
|
||||
- SERVICE_5001_NAME=${NODE_COMPOSE_SERVICE_NAME}-ipfs-5001
|
||||
- SERVICE_5001_TAGS=${NODE_IPFS_SERVICE_5001_TAGS}
|
||||
- SERVICE_8080_CHECK_HTTP=${NODE_IPFS_SERVICE_8080_CHECK_HTTP}
|
||||
- SERVICE_5001_TAGS=${NODE_IPFS_SERVICE_5001_TAGS:-}
|
||||
- SERVICE_8080_CHECK_HTTP=${NODE_IPFS_SERVICE_8080_CHECK_HTTP:-/ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme}
|
||||
- SERVICE_8080_NAME=${NODE_COMPOSE_SERVICE_NAME}-ipfs-8080
|
||||
- SERVICE_8080_TAGS=${NODE_IPFS_SERVICE_8080_TAGS}
|
||||
- SERVICE_8080_TAGS=${NODE_IPFS_SERVICE_8080_TAGS:-}
|
||||
- SERVICE_8081_IGNORE=true
|
||||
networks:
|
||||
- public
|
|
@ -1,19 +0,0 @@
|
|||
NODE_IPFS_ADDRESSES_API_DOMAIN=${DOCKER_NETWORK_PUBLIC}
|
||||
NODE_IPFS_ADDRESSES_GATEWAY_INET4=0.0.0.0
|
||||
NODE_IPFS_DAEMON_ARGS=--migrate
|
||||
NODE_IPFS_IPNS_USEPUBSUB=true
|
||||
NODE_IPFS_LOGGING=error
|
||||
NODE_IPFS_NETWORK=public
|
||||
NODE_IPFS_PROFILE=${IPFS_PROFILE}
|
||||
NODE_IPFS_PUBSUB_ENABLE=true
|
||||
NODE_IPFS_PUBSUB_ROUTER=gossipsub
|
||||
NODE_IPFS_ROUTING_TYPE=dht
|
||||
NODE_IPFS_SERVICE_5001_CHECK_HTTP=/api/v0/diag/sys
|
||||
NODE_IPFS_SERVICE_5001_TAGS=urlprefix-ipfs.${DOMAIN}/api
|
||||
NODE_IPFS_SERVICE_8080_CHECK_HTTP=/ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
|
||||
NODE_IPFS_SERVICE_8080_TAGS=urlprefix-ipfs.${DOMAIN}/,urlprefix-*.ipfs.${DOMAIN}/,urlprefix-ipns.${DOMAIN}/,urlprefix-*.ipns.${DOMAIN}/
|
||||
NODE_IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=["true"]
|
||||
NODE_IPFS_API_HTTPHEADERS_ACA_HEADERS=["X-Requested-With", "Range", "User-Agent"]
|
||||
NODE_IPFS_API_HTTPHEADERS_ACA_METHODS=["OPTIONS", "POST"]
|
||||
NODE_IPFS_API_HTTPHEADERS_ACA_ORIGIN=["https://ipfs.${DOMAIN}", "http://ipfs.${DOMAIN}", "http://ipfs.localhost:8080"]
|
||||
UFW_DOCKER_ipfs=4001/tcp 4001/udp 8080
|
|
@ -145,7 +145,7 @@ services:
|
|||
- mailserver-data:/var/mail
|
||||
- mailserver-logs:/var/log/mail
|
||||
- mailserver-state:/var/mail-state
|
||||
- myos:/etc/letsencrypt:ro
|
||||
- node:/etc/letsencrypt:ro
|
||||
restart: always
|
||||
stop_grace_period: 1m
|
||||
volumes:
|
||||
|
@ -153,7 +153,7 @@ volumes:
|
|||
mailserver-data:
|
||||
mailserver-logs:
|
||||
mailserver-state:
|
||||
myos:
|
||||
node:
|
||||
external: true
|
||||
name: ${NODE_DOCKER_VOLUME}
|
||||
|
||||
|
|
|
@ -31,19 +31,19 @@ services:
|
|||
- public
|
||||
restart: always
|
||||
volumes:
|
||||
- monorepo:/Sources:cached
|
||||
- myos:/tmp/ssh-agent:ro
|
||||
- sources:/Sources:cached
|
||||
- user:/tmp/ssh-agent:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
volumes:
|
||||
monorepo:
|
||||
sources:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
device: ${MONOREPO_DIR}
|
||||
o: bind
|
||||
name: ${USER_COMPOSE_PROJECT_NAME}
|
||||
myos:
|
||||
user:
|
||||
external: true
|
||||
name: ${USER_DOCKER_VOLUME}
|
||||
|
||||
|
|
Loading…
Reference in New Issue