Compare commits

...

8 Commits

11 changed files with 98 additions and 19 deletions
+5 -2
View File
@@ -7,6 +7,9 @@ services:
dockerfile: gemini.Dockerfile
ports:
- "${GEMINI_PORT}:1965"
volumes:
- ${GEMINI_CERTIFICATES_DIR}:/var/app/.certificates
- ${GEMINI_COMITIUM_DATA_DIR}:/var/app/comitium-data
http:
image: git.joeac.net/joeac/${IMAGE_PREFIX}joeac.net-http
@@ -39,7 +42,7 @@ services:
ALPINE_VERSION: ${ALPINE_VERSION}
ETHERPAD_VERSION: ${ETHERPAD_VERSION}
volumes:
- ./etherpad/var:/var/app/var
- ${ETHERPAD_DATA_DIR}:/var/app/var
environment:
NODE_ENV: ${ETHERPAD_NODE_ENV}
ADMIN_PASSWORD: ${ETHERPAD_ADMIN_PASSWORD}
@@ -74,7 +77,7 @@ services:
environment:
DOMAIN: "https://pwd.joeac.net"
volumes:
- ./vaultwarden/vw-data/:/data/
- ${VAULTWARDEN_DATA_DIR}:/data/
ports:
- "${VAULTWARDEN_PORT}:80"
-2
View File
@@ -7,7 +7,6 @@ COPY --from=comitium /usr/local/bin/comitium /usr/local/bin/comitium
RUN mkdir -p /var/app/content
WORKDIR /var/app
COPY gemini/.certificates .certificates
RUN crontab -l > crontab.tmp \
&& echo "0 */6 * * * /usr/local/bin/comitium refresh --data /var/app/comitium-data" >> crontab.tmp \
&& crontab crontab.tmp \
@@ -15,7 +14,6 @@ RUN crontab -l > crontab.tmp \
COPY gemini/run.sh /var/app/
COPY gemini/content /var/app/content
COPY gemini/comitium-data /var/app/comitium-data
COPY common /var/common
CMD ./run.sh
+20
View File
@@ -0,0 +1,20 @@
GEMINI_COMITIUM_DATA_FILES := $(addprefix $(GEMINI_COMITIUM_DATA_DIR)/,$(notdir $(wildcard comitium-data/*)))
.PHONY: install
install: $(GEMINI_CERTIFICATES_DIR) $(GEMINI_COMITIUM_DATA_FILES)
.PHONY: reinstall
reinstall: $(GEMINI_CERTIFICATES_DIR) $(GEMINI_COMITIUM_DATA_FILES)
$(GEMINI_CERTIFICATES_DIR):
sudo mkdir -p $(GEMINI_CERTIFICATES_DIR)
$(GEMINI_COMITIUM_DATA_DIR)/%: comitium-data/% $(GEMINI_COMITIUM_DATA_DIR)
sudo cp $< $@
$(GEMINI_COMITIUM_DATA_DIR):
sudo mkdir -p $(GEMINI_COMITIUM_DATA_DIR)
.PHONY: uninstall
uninstall:
sudo rm -rf $(GEMINI_COMITIUM_DATA_DIR)
+35 -7
View File
@@ -1,9 +1,37 @@
#!/bin/sh
doas adduser -h /home/joeac.net joeac.net \
&& cd /home/joeac.net \
&& sudo -u joeac.net git clone https://git.joeac.net/joeac.net.git joeac.net \
&& sudo ln -s /home/joeac.net/joeac.net /usr/local/lib/joeac.net \
&& cd joeac.net \
&& sudo -u joeac.net make \
&& sudo -u joeac.net make install
set -e
doas adduser -h /home/joeac.net joeac.net
cd /home/joeac.net
sudo -u joeac.net git clone https://git.joeac.net/joeac.net.git joeac.net
sudo ln -s /home/joeac.net/joeac.net /usr/local/lib/joeac.net
cd joeac.net
if [ -z "${DIGITALOCEAN_TOKEN}" ]
then
read -sp "DIGITALOCEAN_TOKEN: " DIGITALOCEAN_TOKEN
fi
echo ${DIGITALOCEAN_TOKEN} > DIGITALOCEAN_TOKEN
while read line
do
if expr "${line}" : "^[[:alnum:]_]\+=" 1>/dev/null
then
var_name="$(expr "${line}" "^\([[:alnum:]_]\+\)=")"
if [ -z "${!var_name}" ]
then
default_value="$(expr "${line}" "^[[:alnum:]_]\+=\(.*\)\$")"
read -sp "${var_name}: " ${var_name}
if [ -z "${!var_name}" ]
then
eval ${var_name}="${default_value}"
fi
fi
echo "${var_name}=${!var_name}" >> .env
fi
done <example.env
sudo -u joeac.net make
sudo -u joeac.net make install
+4
View File
@@ -4,6 +4,10 @@ CPU_ARCH := $(if $(shell which arch 2>/dev/null),\
IMAGE_PREFIX := $(if $(filter armv7%,$(CPU_ARCH)),armv7/)
COMPOSE_CMD := \
IMAGE_PREFIX="$(IMAGE_PREFIX)" \
GEMINI_CERTIFICATES_DIR="$(GEMINI_CERTIFICATES_DIR)" \
GEMINI_COMITIUM_DATA_DIR="$(GEMINI_COMITIUM_DATA_DIR)" \
ETHERPAD_DATA_DIR="$(ETHERPAD_DATA_DIR)" \
VAULTWARDEN_DATA_DIR="$(VAULTWARDEN_DATA_DIR)" \
LOCAL_SMTP_PORT=$(PORT_smtp) \
$(foreach module,$(ALL_MODULES),$(call capitalise,$(module))_PORT=$(PORT_$(module))) \
podman-compose
+2 -2
View File
@@ -64,8 +64,8 @@ $(foreach module,$(MODULES),$(eval $(openrc_restart_rule)))
/etc/init.d/user.$(USER):
sudo ln -s /etc/init.d/user /etc/init.d/user.$(USER)
/etc/conf.d/user.$(USER): openrc/conf.d/user.$(USER)
sudo cp openrc/conf.d/user.$(USER) /etc/conf.d/user.$(USER)
/etc/conf.d/user.$(USER): openrc/conf.d/user.template
sudo USER=$(USER) envsubst openrc/conf.d/user.template /etc/conf.d/user.$(USER)
sudo rc-update add user.$(USER) default
.PHONY: uninstall_joeac.net_service
+5
View File
@@ -29,6 +29,11 @@ PORT_vaultwarden := 9000
PUBLIC_ROOT_DIR_ln := /var/ln.joeac.net/public
export ETHERPAD_DATA_DIR := /var/etherpad/var
export GEMINI_CERTIFICATES_DIR := /var/joeac.net-gemini/certificates
export GEMINI_COMITIUM_DATA_DIR := /var/joeac.net-gemini/comitium-data
export VAULTWARDEN_DATA_DIR := /var/vaultwarden/data
$(foreach module,$(ALL_MODULES),$(if $(PORT_$(module)),$(eval \
export $(call capitalise,$(module))_PORT := $(PORT_$(module)))))
$(foreach hostname,$(HOSTNAMES),$(foreach module,$(MODULES_$(hostname)),$(eval \
-3
View File
@@ -1,3 +0,0 @@
*
!.gitignore
!user.example
-3
View File
@@ -1,3 +0,0 @@
# copy this file to user.<USER> for the user you want to be running joeac.net via OpenRC
# add in here any user setup, bearing in mind that OpenRC doesn't use your usual login flow
# this may include setting up $HOME and/or $XDG_RUNTIME_DIR
+15
View File
@@ -0,0 +1,15 @@
UID="$$(id -u ${USER})"
if test -z "$${XDG_RUNTIME_DIR}"; then
export XDG_RUNTIME_DIR=/tmp/xdg/"$${UID}"-xdg-runtime-dir
if ! test -d "$${XDG_RUNTIME_DIR}"; then
mkdir -p "$${XDG_RUNTIME_DIR}"
chown -R ${USER}:${USER} "$${XDG_RUNTIME_DIR}"
chmod -R 0700 "$${XDG_RUNTIME_DIR}"
fi
fi
if ! test -f "$${XDG_RUNTIME_DIR}/openrc/softlevel"; then
mkdir -p "$${XDG_RUNTIME_DIR}/openrc"
touch "$${XDG_RUNTIME_DIR}/openrc/softlevel"
chown -R ${USER}:${USER} "$${XDG_RUNTIME_DIR}"
chmod -R 0700 "$${XDG_RUNTIME_DIR}"
fi
+12
View File
@@ -0,0 +1,12 @@
.PHONY: install
install: $(VAULTWARDEN_DATA_DIR)
.PHONY: reinstall
reinstall: $(VAULTWARDEN_DATA_DIR)
$(VAULTWARDEN_DATA_DIR):
sudo mkdir -p $(VAULTWARDEN_DATA_DIR)
.PHONY: uninstall
uninstall:
$(info Nothing to do)