# koopa-cryptpad — CryptPad on CachyOS + nginx edge (HTTP+WS on :9030) # Live: /home/hernani/koopa-cryptpad/ # Build: bash ~/koopa-admin-log/scripts/cryptpad/build.sh → localhost/koopa-cryptpad:cachyos # # Public :9030 = koopa-paivana-cryptpad (shared paivana image). # Edge backend loopback only — Paivana DEST → 127.0.0.1:19130 # App listens 3000 (http) + 3003 (websocket) inside the net. services: cryptpad: image: localhost/koopa-cryptpad:cachyos build: context: . dockerfile: Containerfile args: CRYPTPAD_VERSION: "${CRYPTPAD_VERSION:-2025.9.0}" container_name: koopa-cryptpad restart: unless-stopped environment: - TZ=Europe/Zurich volumes: - ./data:/cryptpad/data - ./datastore:/cryptpad/datastore - ./block:/cryptpad/block - ./blob:/cryptpad/blob - ./config.js:/cryptpad/config/config.js:ro expose: - "3000" - "3003" labels: org.hacktivism.service: cryptpad org.hacktivism.host_port: "9030" org.hacktivism.backend_port: "${BACKEND_PORT:-19130}" org.hacktivism.site: cryptpad.hacktivism.ch org.hacktivism.managed_by: koopa-admin org.hacktivism.port_status: backend-19130-paywall-9030 org.hacktivism.image_base: cachyos edge: image: docker.io/library/nginx:alpine container_name: koopa-cryptpad-edge restart: unless-stopped depends_on: - cryptpad volumes: - ./edge.conf:/etc/nginx/conf.d/default.conf:ro ports: - "127.0.0.1:${BACKEND_PORT:-19130}:80" labels: org.hacktivism.service: cryptpad-edge org.hacktivism.host_port: "9030" org.hacktivism.backend_port: "${BACKEND_PORT:-19130}" org.hacktivism.site: cryptpad.hacktivism.ch org.hacktivism.managed_by: koopa-admin