app: id: dojobay name: Dojo Bay version: 1.0.0 upstream: kind: github repo: Dojobay/dojobay description: Onion-only directory of public Bitcoin Dojo nodes for Samourai, Ashigaru and Sentinel wallets, with Auth47 self-service listings. category: money container: build: context: /opt/archipelago/docker/dojobay dockerfile: Dockerfile tag: localhost/archipelago-dojobay:1.0.0 network: archy-net dependencies: - storage: 200Mi resources: cpu_limit: 1 memory_limit: 256Mi disk_limit: 500Mi security: capabilities: [] readonly_root: true no_new_privileges: true network_policy: bridge ports: - host: 8188 container: 8080 protocol: tcp bind: 127.0.0.1 # open, not gated: Dojo Bay is a public directory. Anonymous Tor # visitors must be able to browse listings, scan pairing QR codes and # read the JSON data feed without a dashboard login challenge — that is # the entire point of the site. It carries its own complete Auth47 # sign-in (BIP47 payment-code challenge, no accounts/passwords) that # gates listing management and the admin/moderation console, the same # shape Gitea and BTCPay use this policy for. auth: open auth_rationale: >- Public onion directory: anonymous visitors must browse, pair and fetch the JSON feed with no dashboard login. Listing management and admin moderation are behind the app's own Auth47 (BIP47) sign-in instead. volumes: - type: bind source: /var/lib/archipelago/dojobay/data target: /app/data options: [rw] - type: bind source: /var/lib/archipelago/dojobay/server-data target: /app/server/data options: [rw] # nginx's own working files (pid, client-body/proxy temp dirs). Not # persistent data — recreated on every start — hence tmpfs rather than a # bind mount, and required at all only because security.readonly_root # makes the rest of the image's filesystem read-only at runtime. - type: tmpfs target: /var/lib/nginx - type: tmpfs target: /var/run tmpfs_options: "rw,noexec,nosuid,size=16m" files: # Archipelago's Tor daemon binds a second SocksPort on this network's # bridge gateway specifically so containers can reach it (the app itself # cannot resolve {{NETWORK_GATEWAY}} — only a generated file can, per # docs/app-developer-guide.md). Must sit under a declared bind-mount # source, hence co-located with the data volume above; the container # entrypoint reads it and points the backend's outbound Tor at it. - path: /var/lib/archipelago/dojobay/data/tor-proxy.conf content: "{{NETWORK_GATEWAY}}:9050" overwrite: true health_check: type: http endpoint: http://localhost:8080 path: / interval: 30s timeout: 5s retries: 3 interfaces: main: name: Web UI description: Dojo Bay directory type: ui port: 8188 protocol: http path: / metadata: icon: /assets/img/app-icons/dojobay.svg repo: https://github.com/Dojobay/dojobay tier: optional launch: open_in_new_tab: false features: - Onion-only directory of Bitcoin Dojo nodes - Auth47 self-service listings, no accounts or passwords - Automatic 24-hour and 90-day reliability tracking