Compare commits
8 Commits
1dab2c159a
...
b19ae63ceb
| Author | SHA1 | Date | |
|---|---|---|---|
| b19ae63ceb | |||
| 17c7e2446c | |||
| 33d13bb455 | |||
| 0074ad6643 | |||
| e2d3c05376 | |||
| c62f30ec32 | |||
| 536a108040 | |||
| c1525eaa60 |
+5
-2
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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,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
@@ -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
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
*
|
||||
!.gitignore
|
||||
!user.example
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user