summaryrefslogtreecommitdiff
path: root/capsule
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-03-19 09:19:35 +0000
committerJoe Carstairs <me@joeac.net>2026-03-19 09:19:35 +0000
commit83fb55570eeee4ac89a7ee1b1c82dae1b440ea27 (patch)
treeb67b52a2aca839650428773f646cfed86b40738f /capsule
parentdf21b007245f216d97ca08ebb564abd6b61af105 (diff)
comitium
Diffstat (limited to 'capsule')
-rw-r--r--capsule/Dockerfile41
-rw-r--r--capsule/comitium-data/header.gmi4
-rw-r--r--capsule/feeds.txt5
3 files changed, 37 insertions, 13 deletions
diff --git a/capsule/Dockerfile b/capsule/Dockerfile
index 8c77e4b..bdcad35 100644
--- a/capsule/Dockerfile
+++ b/capsule/Dockerfile
@@ -1,19 +1,34 @@
-FROM alpine:3.23
+FROM alpine:3.23 AS agate
+RUN apk --update --no-cache add rust cargo \
+ && wget -O - https://github.com/mbrubeck/agate/archive/refs/tags/v3.3.20.tar.gz | tar -xz \
+ && cargo install --path agate-3.3.20/ \
+ && rm -rf agate-3.3.20 agate-target
+
+FROM alpine:3.23 AS comitium
+RUN apk --no-cache add make go scdoc
+RUN wget -O - https://git.sr.ht/~nytpu/comitium/archive/v1.8.2.tar.gz | tar -xz \
+ && make --directory=comitium-v1.8.2 \
+ && mv comitium-v1.8.2/build/comitium /usr/local/bin/comitium \
+ && rm -rf comitium-v1.8.2
+FROM alpine:3.23 AS final
RUN mkdir -p /var/app/content
WORKDIR /var/app
-COPY .certificates/ /var/app/.certificates/
+COPY .certificates/ ./
+RUN crontab -l > crontab.tmp \
+ && echo "0 */6 * * * * /usr/local/bin/comitium refresh --data /var/app/comitium-data" >> crontab.tmp \
+ && crontab crontab.tmp \
+ && rm crontab.tmp
-RUN apk --update --no-cache add rust cargo \
- && wget -O - https://github.com/mbrubeck/agate/archive/refs/tags/v3.3.20.tar.gz | tar -xz \
- && cargo build --release --target-dir agate-target --manifest-path agate-3.3.20/Cargo.toml \
- && mv agate-target/release/agate /usr/local/bin/agate \
- && rm -rf agate-3.3.20 agate-target
+RUN apk --no-cache add gcc # Dependency for agate
+COPY --from=agate /root/.cargo/bin/agate /usr/local/bin/agate
+COPY --from=comitium /usr/local/bin/comitium /usr/local/bin/comitium
+
+COPY content/ comitium-data/ feeds.txt ./
+RUN while read feed; do \
+ comitium add --data comitium-data/ "$feed"; \
+ done <feeds.txt \
+ && comitium refresh --data comitium-data/
-COPY content/ content
+CMD agate --content content/ --addr [::]:1965 --addr 0.0.0.0:1965 --lang en-GB
-CMD set -eux && agate \
- --content content/ \
- --addr [::]:1965 \
- --addr 0.0.0.0:1965 \
- --lang en-GB
diff --git a/capsule/comitium-data/header.gmi b/capsule/comitium-data/header.gmi
new file mode 100644
index 0000000..b7609bb
--- /dev/null
+++ b/capsule/comitium-data/header.gmi
@@ -0,0 +1,4 @@
+# joeac's feed aggregator
+
+Hi! I'm Joe Carstairs, and you've found my feed aggregator. This is a list of
+some stuff I think I might read.
diff --git a/capsule/feeds.txt b/capsule/feeds.txt
new file mode 100644
index 0000000..7ad4677
--- /dev/null
+++ b/capsule/feeds.txt
@@ -0,0 +1,5 @@
+gemini://gemini.tuxmachines.org:1965/feed.xml
+gemini://joeac.net/gemlog/
+gemini://idiomdrottning.org:1965/sub
+gemini://spool-five.com:1965/gemlog/index.gmi
+gemini://jsreed5.org:1965/feeds/log.xml