From 9643814ebdf871b52b8f882009402fbdbd6c335e Mon Sep 17 00:00:00 2001 From: Arthur Stace Date: Sun, 12 Jul 2020 21:15:05 +1000 Subject: [PATCH 01/10] (wip): Dockerfile --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 57b769a..8a5957d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,12 @@ FROM tomsquest/docker-radicale RUN apk add make jq +RUN apk add util-linux WORKDIR / COPY Makefile $WORKDIR COPY .Radicale.props.jq $WORKDIR -RUN make -e APPLICATION=radicale -e DOMAIN=ocw.mit.edu - -CMD radicale --server-hosts 0.0.0.0:$PORT --config /config/config +# CMD radicale --server-hosts 0.0.0.0:$PORT --config /config/config From 36f74d9d4a61a83a1f27f8c739eaa015b7c956fe Mon Sep 17 00:00:00 2001 From: Arthur Stace Date: Sun, 12 Jul 2020 21:15:05 +1000 Subject: [PATCH 02/10] (feat): service for creating calendars Note that data can be saved at any location through the mounted volume. fix arthur-stace/backpack#19 --- Makefile | 28 +++++++++++++++------------- development.mk | 13 +++++++++++++ production.mk | 1 + 3 files changed, 29 insertions(+), 13 deletions(-) create mode 100644 development.mk create mode 100644 production.mk diff --git a/Makefile b/Makefile index ae4c731..39ca7a0 100644 --- a/Makefile +++ b/Makefile @@ -1,29 +1,31 @@ JQ = $(shell which jq) -COLLECTION_ROOT = $(APPLICATION)/data/collections/collection-root +USER = admin +COLLECTION_ROOT = data/collections/collection-root +STAGE = development -default: extract +include $(STAGE).mk +default: extract data/collections/.Radicale.lock -extract: $(COLLECTION_ROOT)/user/$(DOMAIN)/.Radicale.props +data/collections/.Radicale.lock: + touch $@ -$(COLLECTION_ROOT): - mkdir -p $@ - +extract: $(COLLECTION_ROOT)/$(USER)/$(DOMAIN)/.Radicale.props -$(COLLECTION_ROOT)/user/%/.Radicale.props: $(COLLECTION_ROOT) - rm -f $@ - mkdir -p `dirname $@` - $(JQ) -nc --arg name $(DOMAIN) --arg desc $(DOMAIN) --arg color '#000000' -f `basename $@`.jq > $@ - +$(COLLECTION_ROOT): + mkdir -p $@ -build: - docker build -t radicale:latest . +$(COLLECTION_ROOT)/$(USER)/%/.Radicale.props: $(COLLECTION_ROOT) + @rm -f $@ + @mkdir -p `dirname $@` + @$(JQ) -nc --arg name $(DOMAIN) --arg desc $(DOMAIN) --arg color '#000000' -f `basename $@`.jq > $@ + $(JQ) < $@ diff --git a/development.mk b/development.mk new file mode 100644 index 0000000..5f6b998 --- /dev/null +++ b/development.mk @@ -0,0 +1,13 @@ + +build: + PORT=$(PORT) docker build -t radicale:latest . + +run: build + docker run -p $(PORT):$(PORT) -v $(shell pwd)/data:/data --name radical_test -d radicale:latest + +test: + docker exec -it radical_test make -e DOMAIN=test + +clean: + docker stop radical_test + docker rm radical_test diff --git a/production.mk b/production.mk new file mode 100644 index 0000000..740503e --- /dev/null +++ b/production.mk @@ -0,0 +1 @@ +# noop From a88075feb79428b346abd3948c03c1d871a1c789 Mon Sep 17 00:00:00 2001 From: Arthur Stace Date: Mon, 13 Jul 2020 08:53:24 +1000 Subject: [PATCH 03/10] Dockerfile --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 8a5957d..51005f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,7 @@ RUN apk add util-linux WORKDIR / +COPY production.mk $WORKDIR COPY Makefile $WORKDIR COPY .Radicale.props.jq $WORKDIR From 1afc8ee793e01a8a5695a833ea19452368e39b42 Mon Sep 17 00:00:00 2001 From: Arthur Stace Date: Mon, 13 Jul 2020 08:53:24 +1000 Subject: [PATCH 04/10] development.mk --- development.mk | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/development.mk b/development.mk index 5f6b998..682af0a 100644 --- a/development.mk +++ b/development.mk @@ -3,10 +3,27 @@ build: PORT=$(PORT) docker build -t radicale:latest . run: build - docker run -p $(PORT):$(PORT) -v $(shell pwd)/data:/data --name radical_test -d radicale:latest + docker run -d --name radical_test \ + -p 127.0.0.1:5232:5232 \ + --init \ + --read-only \ + --security-opt="no-new-privileges:true" \ + --cap-drop ALL \ + --cap-add CHOWN \ + --cap-add SETUID \ + --cap-add SETGID \ + --cap-add KILL \ + --pids-limit 50 \ + --memory 256M \ + --health-cmd="curl --fail http://localhost:5232 || exit 1" \ + --health-interval=30s \ + --health-retries=3 \ + -v $(shell pwd)/data:/data \ + radicale:latest + # -v ~/radicale/config:/config:ro \ test: - docker exec -it radical_test make -e DOMAIN=test + docker exec -it radical_test make -e DOMAIN=test -e STAGE=production clean: docker stop radical_test From f64c4ada74e7653e559497a8d6b4b1de02886b42 Mon Sep 17 00:00:00 2001 From: Arthur Stace Date: Mon, 13 Jul 2020 08:53:24 +1000 Subject: [PATCH 05/10] production.mk --- production.mk | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/production.mk b/production.mk index 740503e..7b5fb43 100644 --- a/production.mk +++ b/production.mk @@ -1 +1,27 @@ -# noop +STAGE = production + +run: + docker run -d --name radical_test \ + -p 127.0.0.1:5232:5232 \ + --init \ + --read-only \ + --security-opt="no-new-privileges:true" \ + --cap-drop ALL \ + --cap-add CHOWN \ + --cap-add SETUID \ + --cap-add SETGID \ + --cap-add KILL \ + --pids-limit 50 \ + --memory 256M \ + --health-cmd="curl --fail http://localhost:5232 || exit 1" \ + --health-interval=30s \ + --health-retries=3 \ + -v $(shell pwd)/data:/data \ + radicale:latest + # -v ~/radicale/config:/config:ro \ + # + + +calendar: + ${MAKE} -e DOMAIN=$(DOMAIN) -e STAGE=$(STAGE) + From 7c62bcc79f7cd2bd28e93255af6b1826ec08b3c6 Mon Sep 17 00:00:00 2001 From: Arthur Stace Date: Mon, 13 Jul 2020 08:53:24 +1000 Subject: [PATCH 06/10] data/ --- data/collections/.Radicale.lock | 0 data/collections/collection-root/admin/test/.Radicale.props | 1 + 2 files changed, 1 insertion(+) create mode 100644 data/collections/.Radicale.lock create mode 100644 data/collections/collection-root/admin/test/.Radicale.props diff --git a/data/collections/.Radicale.lock b/data/collections/.Radicale.lock new file mode 100644 index 0000000..e69de29 diff --git a/data/collections/collection-root/admin/test/.Radicale.props b/data/collections/collection-root/admin/test/.Radicale.props new file mode 100644 index 0000000..6d6ecff --- /dev/null +++ b/data/collections/collection-root/admin/test/.Radicale.props @@ -0,0 +1 @@ +{"C:calendar-description":"test","C:supported-calendar-component-set":"VEVENT,VJOURNAL,VTODO","D:displayname":"test","ICAL:calendar-color":"#000000","tag":"VCALENDAR"} From 862161d8ceded3b737f1d1599a4adbb9d32da26b Mon Sep 17 00:00:00 2001 From: Arthur Stace Date: Mon, 13 Jul 2020 09:58:31 +1000 Subject: [PATCH 07/10] production.mk --- production.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/production.mk b/production.mk index 7b5fb43..094c360 100644 --- a/production.mk +++ b/production.mk @@ -22,6 +22,5 @@ run: # -calendar: - ${MAKE} -e DOMAIN=$(DOMAIN) -e STAGE=$(STAGE) +calendar: default From 26ac68d1e68418e45702cb51d61c41057c422979 Mon Sep 17 00:00:00 2001 From: Arthur Stace Date: Mon, 13 Jul 2020 09:58:31 +1000 Subject: [PATCH 08/10] data/collections/collection-root/admin/test2/ --- data/collections/collection-root/admin/test2/.Radicale.props | 1 + 1 file changed, 1 insertion(+) create mode 100644 data/collections/collection-root/admin/test2/.Radicale.props diff --git a/data/collections/collection-root/admin/test2/.Radicale.props b/data/collections/collection-root/admin/test2/.Radicale.props new file mode 100644 index 0000000..5367bb2 --- /dev/null +++ b/data/collections/collection-root/admin/test2/.Radicale.props @@ -0,0 +1 @@ +{"C:calendar-description":"test2","C:supported-calendar-component-set":"VEVENT,VJOURNAL,VTODO","D:displayname":"test2","ICAL:calendar-color":"#000000","tag":"VCALENDAR"} From ed950bd428cbd3d174df53d1e42a901ac3a06ff0 Mon Sep 17 00:00:00 2001 From: Arthur Stace Date: Sun, 23 Aug 2020 09:26:26 +1000 Subject: [PATCH 09/10] data/collections/collection-root/admin/test/.Radicale.props --- data/collections/collection-root/admin/test/.Radicale.props | 1 - 1 file changed, 1 deletion(-) delete mode 100644 data/collections/collection-root/admin/test/.Radicale.props diff --git a/data/collections/collection-root/admin/test/.Radicale.props b/data/collections/collection-root/admin/test/.Radicale.props deleted file mode 100644 index 6d6ecff..0000000 --- a/data/collections/collection-root/admin/test/.Radicale.props +++ /dev/null @@ -1 +0,0 @@ -{"C:calendar-description":"test","C:supported-calendar-component-set":"VEVENT,VJOURNAL,VTODO","D:displayname":"test","ICAL:calendar-color":"#000000","tag":"VCALENDAR"} From 0720f0dc34dcd41281193a2235a61dea4c431e47 Mon Sep 17 00:00:00 2001 From: Arthur Stace Date: Sun, 23 Aug 2020 09:26:26 +1000 Subject: [PATCH 10/10] data/collections/collection-root/admin/foobar/ --- data/collections/collection-root/admin/foobar/.Radicale.props | 1 + 1 file changed, 1 insertion(+) create mode 100644 data/collections/collection-root/admin/foobar/.Radicale.props diff --git a/data/collections/collection-root/admin/foobar/.Radicale.props b/data/collections/collection-root/admin/foobar/.Radicale.props new file mode 100644 index 0000000..6d6ecff --- /dev/null +++ b/data/collections/collection-root/admin/foobar/.Radicale.props @@ -0,0 +1 @@ +{"C:calendar-description":"test","C:supported-calendar-component-set":"VEVENT,VJOURNAL,VTODO","D:displayname":"test","ICAL:calendar-color":"#000000","tag":"VCALENDAR"}