diff --git a/alpine-matrix/build.sh b/alpine-matrix/build.sh index 409d1ac..bd20e01 100644 --- a/alpine-matrix/build.sh +++ b/alpine-matrix/build.sh @@ -3,20 +3,22 @@ ROOTFS=rootfs wget http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/x86_64/alpine-minirootfs-3.9.0-x86_64.tar.gz -mkdir -p $ROOTFS +mkdir -p $ROOTFS tar xf alpine-minirootfs-3.9.0-x86_64.tar.gz -C $ROOTFS/ \ ./etc/apk ./etc/os-release ./usr ./lib ./bin ./sbin ./var mkdir -p $ROOTFS/etc/systemd/system \ $ROOTFS/var/{lib,run,tmp} \ $ROOTFS/{dev,tmp,proc,root,run,sys} \ - $ROOTFS/{var/lib,var/log,etc}/synapse -touch $ROOTFS/etc/machine-id $ROOTFS/etc/resolv.conf + $ROOTFS/etc/matrix \ + $ROOTFS/var/lib/matrix-{synapse,appservice-irc} -cp install.sh $ROOTFS/root/ +touch $ROOTFS/etc/machine-id $ROOTFS/etc/resolv.conf + +cp scripts/install.sh $ROOTFS/root/ sudo systemd-nspawn -D $ROOTFS/ /bin/sh /root/install.sh -cp *.service $ROOTFS/etc/systemd/system/ +cp systemd/* $ROOTFS/etc/systemd/system/ -mksquashfs $ROOTFS/ synapse.raw +mksquashfs $ROOTFS/ matrix.raw diff --git a/alpine-matrix/install.sh b/alpine-matrix/scripts/install.sh similarity index 62% rename from alpine-matrix/install.sh rename to alpine-matrix/scripts/install.sh index ffc3e7d..892e882 100644 --- a/alpine-matrix/install.sh +++ b/alpine-matrix/scripts/install.sh @@ -9,15 +9,19 @@ apk --no-cache add --virtual .synapse-build \ libressl-dev \ libxslt-dev \ linux-headers \ - npm \ python3-dev \ + yarn \ zlib-dev pip3 install --upgrade pip setuptools pip3 install https://github.com/matrix-org/synapse/tarball/master pip3 install mautrix-telegram -npm install matrix-appservice-irc --global +IRC_DIR=/usr/lib/matrix-appservice-irc/ +mkdir ${IRC_DIR} +cd ${IRC_DIR} +yarn add matrix-appservice-irc +ln -s ${IRC_DIR}/node_modules/matrix-appservice-irc/bin/matrix-appservice-irc /usr/local/bin/matrix-appservice-irc apk del .synapse-build @@ -31,7 +35,13 @@ apk --no-cache add \ find /usr -name "__pycache__" -exec rm -rf {} + find /usr -name "*.pyc" -exec rm {} + -rm -rf /root/.cache \ +find /usr -name "*yarn*" -exec rm -rf {} + +find / -name "*node-gyp*" -exec rm -rf {} + + +apk del alpine-keys + +rm -rf /etc/apk \ + /root/.cache \ /root/.config \ /root/.npm \ - /etc/apk + /var/cache/* diff --git a/alpine-matrix/synapse.service b/alpine-matrix/synapse.service deleted file mode 100644 index 8d40e2f..0000000 --- a/alpine-matrix/synapse.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Synapse Matrix homeserver -After=network-online.target -Requires=network-online.target - -[Service] -Environment=LANG=en_US.UTF-8 -Environment=SYNAPSE_LOG_LEVEL=DEBUG -Environment=PYTHONDONTWRITEBYTECODE=1 - -ExecStart=/usr/bin/python3 -m synapse.app.homeserver -c /etc/synapse/homeserver.yaml -ExecStop=/usr/bin/synctl stop /etc/synapse/homeserver.yaml - -StateDirectory=synapse -ConfigurationDirectory=synapse diff --git a/alpine-matrix/systemd/matrix-appservice-irc.service b/alpine-matrix/systemd/matrix-appservice-irc.service new file mode 100644 index 0000000..940e77d --- /dev/null +++ b/alpine-matrix/systemd/matrix-appservice-irc.service @@ -0,0 +1,10 @@ +[Unit] +Description=Matrix IRC gateway +After=matrix.service +Requires=matrix.service + +[Service] +Type=exec +ExecStart=/usr/local/bin/matrix-appservice-irc -c /etc/matrix/irc-config.yaml -f /etc/matrix/irc-registration.yaml -p 7881 +StateDirectory=matrix-appservice-irc +ConfigurationDirectory=matrix diff --git a/alpine-matrix/systemd/matrix.service b/alpine-matrix/systemd/matrix.service new file mode 100644 index 0000000..ac6d51f --- /dev/null +++ b/alpine-matrix/systemd/matrix.service @@ -0,0 +1,17 @@ +[Unit] +Description=Synapse - Matrix homeserver +After=network-online.target +Requires=network-online.target + +[Service] +MemoryDenyWriteExecute=no + +Environment=LANG=en_US.UTF-8 +Environment=SYNAPSE_LOG_LEVEL=DEBUG +Environment=PYTHONDONTWRITEBYTECODE=1 + +ExecStart=/usr/bin/python3 -m synapse.app.homeserver -c /etc/matrix/homeserver.yaml +ExecStop=/usr/bin/synctl stop /etc/matrix/homeserver.yaml + +StateDirectory=matrix-synapse +ConfigurationDirectory=matrix