diff --git a/alpine-matrix/README.md b/alpine-matrix/README.md index eeb4c60..3f55001 100644 --- a/alpine-matrix/README.md +++ b/alpine-matrix/README.md @@ -1,8 +1,8 @@ Matrix synapse service with IRC and Telegram gateways ===================================================== -A collection of systemd services that run synapse, matrix-appservice-irc -and mautrix-telegram in a read-only alpine squashfs image. +A collection of systemd services that run synapse and the IRC gateway +(matrix-appservice-irc) in an isolated read-only alpine squashfs image. Building the squashfs image --------------------------- @@ -13,12 +13,11 @@ Run: $ sh build.sh ``` -It will create a rootfs/ folder with an alpine filesystem, install -synapse, matrix-appservice-irc and mautrix-telegram and compress it into -a squashfs image that will be used as a root filesystem for the -container. +It will create a rootfs/ folder with an alpine filesystem, install synapse, +matrix-appservice-irc and compress it into a squashfs image that will be used +as a root filesystem for the container. -If the script finished successfully, you should get an \~50M matrix.raw +If the script finished successfully, you should get an \~45M matrix.raw image. Running the portable services @@ -36,21 +35,17 @@ Created directory /etc/systemd/system.attached/matrix.service.d. Written /etc/systemd/system.attached/matrix.service.d/20-portable.conf. Created symlink /etc/systemd/system.attached/matrix.service.d/10-profile.conf → /usr/lib/systemd/portable/profile/default/service.conf. Copied /etc/systemd/system.attached/matrix.service. -Created directory /etc/systemd/system.attached/matrix-telegram.service.d. -Written /etc/systemd/system.attached/matrix-telegram.service.d/20-portable.conf. -Created symlink /etc/systemd/system.attached/matrix-telegram.service.d/10-profile.conf → /usr/lib/systemd/portable/profile/default/service.conf. -Copied /etc/systemd/system.attached/matrix-telegram.service. Created directory /etc/systemd/system.attached/matrix-appservice-irc.service.d. Written /etc/systemd/system.attached/matrix-appservice-irc.service.d/20-portable.conf. Created symlink /etc/systemd/system.attached/matrix-appservice-irc.service.d/10-profile.conf → /usr/lib/systemd/portable/profile/default/service.conf. Copied /etc/systemd/system.attached/matrix-appservice-irc.service. -Created symlink /etc/portables/matrix.raw → /home/vladan/dev/portabled/alpine-matrix/matrix.raw. -``` +Created symlink /etc/portables/matrix.raw → /tmp/matrix.raw. + Start/Stop as any other systemd service, e.g: ``` {.sourceCode .shell} -sudo systemctl start matrix-appservice-irc.service matrix-telegram.service +sudo systemctl start matrix-appservice-irc.service sudo systemctl stop matrix.service ``` @@ -63,19 +58,18 @@ Existing matrix installations `/var/lib`. 4. Copy all data files, e.g. homeserver.db if you\'re using sqlite, media and upload folders for synapse, rooms.db for the irc gateway, - etc. to `/var/lib/matrix-{synapse,telegram,appservice-irc}`. + etc. to `/var/lib/matrix-{synapse,appservice-irc}`. Warning ------- -You\'ll need to modify the configuration if the services are configured -to log to disk, i.e. modify any filesystem except -`/var/lib/matrix-{synapse,telegram,appservice-irc}`. +You should set up all logging to stdout. + +Any configuration that has something to do with the filesystem should be +configured to write files to `/var/lib/matrix-{synapse,appservice-irc}`. TODO ---- - Use a Makefile to build the image. Add attach, detach and clean targets. -- Rename matrix.service to matrix-synapse.service and add - matrix.target that starts matrix.service diff --git a/alpine-matrix/build.sh b/alpine-matrix/build.sh index f8ea30a..a94cc3d 100644 --- a/alpine-matrix/build.sh +++ b/alpine-matrix/build.sh @@ -13,11 +13,10 @@ mkdir -p $ROOTFS/etc/systemd/system \ $ROOTFS/{dev,tmp,proc,root,run,sys} \ $ROOTFS/etc/matrix \ $ROOTFS/var/lib/matrix-{synapse,appservice-irc} +touch $ROOTFS/etc/machine-id $ROOTFS/etc/resolv.conf touch $ROOTFS/etc/machine-id $ROOTFS/etc/resolv.conf - -sudo systemd-nspawn --bind=$PWD/scripts/install.sh:/root/install.sh -D $ROOTFS/ /bin/sh /root/install.sh - cp systemd/* $ROOTFS/etc/systemd/system/ +sudo systemd-nspawn --bind=$PWD/scripts/install.sh:/root/install.sh -D $ROOTFS/ /bin/sh /root/install.sh mksquashfs $ROOTFS/ /tmp/matrix.raw