code.pablomurad.com

indiedesk

Adds opted-in pages from personal sites to a topicless feed, served as Atom and JF2

compose.yml raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
name: indiedesk
services:
  relay:
    build:
      context: .
      dockerfile: Dockerfile
    image: indiedesk:local
    user: "65532:65532"
    environment:
      PUBLIC_URL: "${PUBLIC_URL:?Set PUBLIC_URL to the public root URL}"
      DATA_DIR: /data
      LISTEN_ADDR: ":8080"
    volumes:
      - type: bind
        source: ${HOST_DATA_DIR:-./data}
        target: /data
        bind:
          create_host_path: false
    read_only: true
    tmpfs:
      - /tmp:size=16m,mode=1777
    cap_drop:
      - ALL
    security_opt:
      - no-new-privileges:true
    pids_limit: 128
    mem_limit: 512m
    cpus: 2
    stop_grace_period: 15s
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "/indiedesk", "healthcheck"]
      interval: 30s
      timeout: 3s
      start_period: 5s
      retries: 3
  cloudflared:
    image: cloudflare/cloudflared:2026.2.0@sha256:404528c1cd63c3eb882c257ae524919e4376115e6fe57befca8d603656a91a4c
    user: "65532:65532"
    command: ["tunnel", "--no-autoupdate", "run"]
    environment:
      TUNNEL_TOKEN: "${CLOUDFLARED:?Set CLOUDFLARED to the Tunnel token}"
    depends_on:
      relay:
        condition: service_healthy
    read_only: true
    tmpfs:
      - /tmp:size=16m,mode=1777
    cap_drop:
      - ALL
    security_opt:
      - no-new-privileges:true
    pids_limit: 128
    mem_limit: 256m
    cpus: 1
    stop_grace_period: 35s
    restart: unless-stopped