Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b19ae63ceb | |||
| 17c7e2446c | |||
| 33d13bb455 | |||
| 0074ad6643 | |||
| e2d3c05376 | |||
| c62f30ec32 | |||
| 536a108040 | |||
| c1525eaa60 |
+5
-2
@@ -7,6 +7,9 @@ services:
|
|||||||
dockerfile: gemini.Dockerfile
|
dockerfile: gemini.Dockerfile
|
||||||
ports:
|
ports:
|
||||||
- "${GEMINI_PORT}:1965"
|
- "${GEMINI_PORT}:1965"
|
||||||
|
volumes:
|
||||||
|
- ${GEMINI_CERTIFICATES_DIR}:/var/app/.certificates
|
||||||
|
- ${GEMINI_COMITIUM_DATA_DIR}:/var/app/comitium-data
|
||||||
|
|
||||||
http:
|
http:
|
||||||
image: git.joeac.net/joeac/${IMAGE_PREFIX}joeac.net-http
|
image: git.joeac.net/joeac/${IMAGE_PREFIX}joeac.net-http
|
||||||
@@ -39,7 +42,7 @@ services:
|
|||||||
ALPINE_VERSION: ${ALPINE_VERSION}
|
ALPINE_VERSION: ${ALPINE_VERSION}
|
||||||
ETHERPAD_VERSION: ${ETHERPAD_VERSION}
|
ETHERPAD_VERSION: ${ETHERPAD_VERSION}
|
||||||
volumes:
|
volumes:
|
||||||
- ./etherpad/var:/var/app/var
|
- ${ETHERPAD_DATA_DIR}:/var/app/var
|
||||||
environment:
|
environment:
|
||||||
NODE_ENV: ${ETHERPAD_NODE_ENV}
|
NODE_ENV: ${ETHERPAD_NODE_ENV}
|
||||||
ADMIN_PASSWORD: ${ETHERPAD_ADMIN_PASSWORD}
|
ADMIN_PASSWORD: ${ETHERPAD_ADMIN_PASSWORD}
|
||||||
@@ -74,7 +77,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
DOMAIN: "https://pwd.joeac.net"
|
DOMAIN: "https://pwd.joeac.net"
|
||||||
volumes:
|
volumes:
|
||||||
- ./vaultwarden/vw-data/:/data/
|
- ${VAULTWARDEN_DATA_DIR}:/data/
|
||||||
ports:
|
ports:
|
||||||
- "${VAULTWARDEN_PORT}:80"
|
- "${VAULTWARDEN_PORT}:80"
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ COPY --from=comitium /usr/local/bin/comitium /usr/local/bin/comitium
|
|||||||
|
|
||||||
RUN mkdir -p /var/app/content
|
RUN mkdir -p /var/app/content
|
||||||
WORKDIR /var/app
|
WORKDIR /var/app
|
||||||
COPY gemini/.certificates .certificates
|
|
||||||
RUN crontab -l > crontab.tmp \
|
RUN crontab -l > crontab.tmp \
|
||||||
&& echo "0 */6 * * * /usr/local/bin/comitium refresh --data /var/app/comitium-data" >> crontab.tmp \
|
&& echo "0 */6 * * * /usr/local/bin/comitium refresh --data /var/app/comitium-data" >> crontab.tmp \
|
||||||
&& crontab crontab.tmp \
|
&& crontab crontab.tmp \
|
||||||
@@ -15,7 +14,6 @@ RUN crontab -l > crontab.tmp \
|
|||||||
|
|
||||||
COPY gemini/run.sh /var/app/
|
COPY gemini/run.sh /var/app/
|
||||||
COPY gemini/content /var/app/content
|
COPY gemini/content /var/app/content
|
||||||
COPY gemini/comitium-data /var/app/comitium-data
|
|
||||||
COPY common /var/common
|
COPY common /var/common
|
||||||
|
|
||||||
CMD ./run.sh
|
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
|
#!/bin/sh
|
||||||
|
|
||||||
doas adduser -h /home/joeac.net joeac.net \
|
set -e
|
||||||
&& cd /home/joeac.net \
|
|
||||||
&& sudo -u joeac.net git clone https://git.joeac.net/joeac.net.git joeac.net \
|
doas adduser -h /home/joeac.net joeac.net
|
||||||
&& sudo ln -s /home/joeac.net/joeac.net /usr/local/lib/joeac.net \
|
|
||||||
&& cd joeac.net \
|
cd /home/joeac.net
|
||||||
&& sudo -u joeac.net make \
|
sudo -u joeac.net git clone https://git.joeac.net/joeac.net.git joeac.net
|
||||||
&& sudo -u joeac.net make install
|
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/)
|
IMAGE_PREFIX := $(if $(filter armv7%,$(CPU_ARCH)),armv7/)
|
||||||
COMPOSE_CMD := \
|
COMPOSE_CMD := \
|
||||||
IMAGE_PREFIX="$(IMAGE_PREFIX)" \
|
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) \
|
LOCAL_SMTP_PORT=$(PORT_smtp) \
|
||||||
$(foreach module,$(ALL_MODULES),$(call capitalise,$(module))_PORT=$(PORT_$(module))) \
|
$(foreach module,$(ALL_MODULES),$(call capitalise,$(module))_PORT=$(PORT_$(module))) \
|
||||||
podman-compose
|
podman-compose
|
||||||
|
|||||||
+2
-2
@@ -64,8 +64,8 @@ $(foreach module,$(MODULES),$(eval $(openrc_restart_rule)))
|
|||||||
/etc/init.d/user.$(USER):
|
/etc/init.d/user.$(USER):
|
||||||
sudo ln -s /etc/init.d/user /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)
|
/etc/conf.d/user.$(USER): openrc/conf.d/user.template
|
||||||
sudo cp openrc/conf.d/user.$(USER) /etc/conf.d/user.$(USER)
|
sudo USER=$(USER) envsubst openrc/conf.d/user.template /etc/conf.d/user.$(USER)
|
||||||
sudo rc-update add user.$(USER) default
|
sudo rc-update add user.$(USER) default
|
||||||
|
|
||||||
.PHONY: uninstall_joeac.net_service
|
.PHONY: uninstall_joeac.net_service
|
||||||
|
|||||||
@@ -29,6 +29,11 @@ PORT_vaultwarden := 9000
|
|||||||
|
|
||||||
PUBLIC_ROOT_DIR_ln := /var/ln.joeac.net/public
|
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 \
|
$(foreach module,$(ALL_MODULES),$(if $(PORT_$(module)),$(eval \
|
||||||
export $(call capitalise,$(module))_PORT := $(PORT_$(module)))))
|
export $(call capitalise,$(module))_PORT := $(PORT_$(module)))))
|
||||||
$(foreach hostname,$(HOSTNAMES),$(foreach module,$(MODULES_$(hostname)),$(eval \
|
$(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