From e89e552227c0eb71f9fd73692121491d2f681b4e Mon Sep 17 00:00:00 2001 From: Yann Autissier Date: Tue, 27 Dec 2022 17:22:12 +0000 Subject: [PATCH] user home ipfs --- docker/ipfs/Dockerfile | 1 + docker/ipfs/ipfs-config.sh | 3 ++- make/apps/common.mk | 1 + make/def.mk | 2 +- stack/User/User.mk | 16 ++++++++++------ stack/User/ipfs.mk | 3 ++- stack/User/ipfs.yml | 8 +++++--- 7 files changed, 22 insertions(+), 12 deletions(-) diff --git a/docker/ipfs/Dockerfile b/docker/ipfs/Dockerfile index bf07220..fff4612 100644 --- a/docker/ipfs/Dockerfile +++ b/docker/ipfs/Dockerfile @@ -3,6 +3,7 @@ FROM ipfs/kubo:v${IPFS_VERSION} as dist LABEL maintainer aynic.os ARG DOCKER_BUILD_DIR +RUN sed -i 's!repo="$IPFS_PATH"!repo="$IPFS_PATH" \&\& mkdir -p "$IPFS_PATH" \&\& chown ipfs:users $(dirname "$IPFS_PATH") \&\& chown ipfs:users "$IPFS_PATH"!' /usr/local/bin/start_ipfs COPY ${DOCKER_BUILD_DIR}/*.sh /container-init.d/ RUN chmod +rx /container-init.d/*.sh diff --git a/docker/ipfs/ipfs-config.sh b/docker/ipfs/ipfs-config.sh index 3f3bf36..feeac8c 100755 --- a/docker/ipfs/ipfs-config.sh +++ b/docker/ipfs/ipfs-config.sh @@ -8,7 +8,8 @@ set -e # 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" + && sed -i 's/"PeerID":.*/"PeerID": "'"${IPFS_IDENTITY_PEERID}"'",/;s/"PrivKey":.*/"PrivKey": "'"${IPFS_IDENTITY_PRIVKEY}"'"/' "${IPFS_PATH}/config" \ + || true ## ipfs client needs API address # search for ip address of $(hostname).${IPFS_ADDRESSES_API_DOMAIN} diff --git a/make/apps/common.mk b/make/apps/common.mk index 43b679d..a79dfca 100644 --- a/make/apps/common.mk +++ b/make/apps/common.mk @@ -230,6 +230,7 @@ up: docker-compose-up ufw-update app-start ## Create application dockers # on local host .PHONY: update app-update update: update-app app-update ## Update application files + git pull # target upgrade app-upgrade: Upgrade application # on local host diff --git a/make/def.mk b/make/def.mk index ea1d8ba..f216144 100644 --- a/make/def.mk +++ b/make/def.mk @@ -179,7 +179,7 @@ RESU = $(strip \ $(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)) \ $(user.domain) \ , $(USER) \ diff --git a/stack/User/User.mk b/stack/User/User.mk index 8560ffc..5f47e43 100644 --- a/stack/User/User.mk +++ b/stack/User/User.mk @@ -1,18 +1,22 @@ 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_HOME ?= $(shell cd ~ && pwd -P) USER_HOST ?= $(patsubst %,$(USER).%,$(HOST))$(USER_HOST_LB) -USER_HOST_RESU ?= $(patsubst %,$(RESU).%,$(USER_HOST)) USER_HOST_LB ?= $(if $(USER_LB),$(space)$(HOST)$(if $(HOST_LB),$(space)$(DOMAIN)),$(if $(HOST_LB),$(space)$(USER_DOMAIN))) USER_PATH ?= $(USER_PATH_PREFIX) -USER_PATH_RESU ?= $(USER_PATH)$(RESU)/ USER_URIS ?= $(patsubst %,%/$(USER_PATH),$(USER_HOST)) ifneq ($(RESU),) -ifeq ($(USER_RESU_HOST),true) -USER_HOST := $(USER_HOST_RESU) -else ifeq ($(USER_RESU_PATH),true) -USER_PATH := $(USER_PATH_RESU) +ifeq ($(RESU_HOME),mail) +USER_HOME := /home/$(mail) +else ifeq ($(RESU_HOME),dns) +USER_HOME := /dns/$(resu.path) +endif +ifeq ($(RESU_HOST),true) +USER_HOST := $(patsubst %,$(RESU).%,$(USER_HOST)) +else ifeq ($(RESU_PATH),true) +USER_PATH := $(USER_PATH)$(RESU)/ endif endif diff --git a/stack/User/ipfs.mk b/stack/User/ipfs.mk index f42f635..5784036 100644 --- a/stack/User/ipfs.mk +++ b/stack/User/ipfs.mk @@ -1,6 +1,7 @@ -ENV_VARS += USER_IPFS_API_HTTPHEADERS_ACA_ORIGIN USER_IPFS_LETSENCRYPT_HOST USER_IPFS_SERVICE_5001_TAGS USER_IPFS_SERVICE_8080_TAGS +ENV_VARS += USER_IPFS_API_HTTPHEADERS_ACA_ORIGIN USER_IPFS_LETSENCRYPT_HOST USER_IPFS_PATH 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_PATH ?= $(USER_HOME)/.ipfs 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)) diff --git a/stack/User/ipfs.yml b/stack/User/ipfs.yml index a585981..e79a55e 100644 --- a/stack/User/ipfs.yml +++ b/stack/User/ipfs.yml @@ -45,6 +45,7 @@ services: - IPFS_IPNS_USEPUBSUB=${USER_IPFS_IPNS_USEPUBSUB:-true} - IPFS_LOGGING=${USER_IPFS_LOGGING:-error} - IPFS_NETWORK=${USER_IPFS_NETWORK:-private} + - IPFS_PATH=${USER_IPFS_PATH:-~/.ipfs} - IPFS_PROFILE=${USER_IPFS_PROFILE:-${IPFS_PROFILE}} - IPFS_PUBSUB_ENABLE=${USER_IPFS_PUBSUB_ENABLE:-true} - IPFS_PUBSUB_ROUTER=${USER_IPFS_PUBSUB_ROUTER:-gossipsub} @@ -87,11 +88,12 @@ services: soft: 65536 hard: 65536 volumes: - - ipfs:/data/ipfs:delegated + - host:/home:delegated volumes: - ipfs: - name: ${USER_DOCKER_VOLUME}_ipfs + host: + external: true + name: ${HOST_DOCKER_VOLUME}_home networks: private: