| 1 | name: tiny |
| 2 | |
| 3 | services: |
| 4 | tailscale: |
| 5 | # Local 1.102.3 build with the typed PortlistServices subscription fix. |
| 6 | image: tiny-tailscale:dogfood |
| 7 | container_name: tiny-tailscale |
| 8 | hostname: tiny |
| 9 | environment: |
| 10 | TS_HOSTNAME: tiny |
| 11 | TS_STATE_DIR: /var/lib/tailscale |
| 12 | TS_AUTH_ONCE: "true" |
| 13 | TS_USERSPACE: "false" |
| 14 | TS_ACCEPT_DNS: "false" |
| 15 | TS_EXTRA_ARGS: --shields-up=false |
| 16 | TS_ENABLE_HEALTH_CHECK: "true" |
| 17 | TS_ENABLE_METRICS: "true" |
| 18 | TS_LOCAL_ADDR_PORT: 127.0.0.1:9002 |
| 19 | volumes: |
| 20 | - type: bind |
| 21 | source: /srv/tiny/tailscale |
| 22 | target: /var/lib/tailscale |
| 23 | bind: |
| 24 | create_host_path: false |
| 25 | devices: |
| 26 | - /dev/net/tun:/dev/net/tun |
| 27 | cap_add: [NET_ADMIN] |
| 28 | healthcheck: |
| 29 | test: [CMD, wget, -q, -O, /dev/null, http://127.0.0.1:9002/healthz] |
| 30 | interval: 30s |
| 31 | timeout: 5s |
| 32 | retries: 3 |
| 33 | restart: unless-stopped |
| 34 | |
| 35 | relay: |
| 36 | image: tiny:dogfood |
| 37 | container_name: tiny |
| 38 | network_mode: service:tailscale |
| 39 | pid: service:tailscale |
| 40 | depends_on: [tailscale] |
| 41 | command: |
| 42 | - serve |
| 43 | - --listen=127.0.0.1:7447 |
| 44 | - --public-url=https://tiny.tailbe516a.ts.net |
| 45 | - --default-tenant=tiny |
| 46 | - --provision-owner=c01503e8035f5a98eb2004721dc4eeddda498c7871927ae7edb4525ab6ccf2d7 |
| 47 | - --allow-private-relays |
| 48 | - --diagnostics=127.0.0.1:9091 |
| 49 | env_file: /srv/tiny/deploy/tiny.env |
| 50 | volumes: |
| 51 | - type: bind |
| 52 | source: /srv/tiny/data |
| 53 | target: /data |
| 54 | bind: |
| 55 | create_host_path: false |
| 56 | restart: unless-stopped |
| 57 | stop_grace_period: 30s |
| 58 | |
| 59 | https: |
| 60 | image: caddy@sha256:5f5c8640aae01df9654968d946d8f1a56c497f1dd5c5cda4cf95ab7c14d58648 |
| 61 | container_name: tiny-https |
| 62 | network_mode: service:tailscale |
| 63 | pid: service:tailscale |
| 64 | depends_on: [tailscale, relay] |
| 65 | volumes: |
| 66 | - type: bind |
| 67 | source: /srv/tiny/deploy/Caddyfile |
| 68 | target: /etc/caddy/Caddyfile |
| 69 | read_only: true |
| 70 | bind: |
| 71 | create_host_path: false |
| 72 | - type: bind |
| 73 | source: /srv/tiny/certs |
| 74 | target: /certs |
| 75 | read_only: true |
| 76 | bind: |
| 77 | create_host_path: false |
| 78 | - type: bind |
| 79 | source: /srv/tiny/logs |
| 80 | target: /logs |
| 81 | bind: |
| 82 | create_host_path: false |
| 83 | tmpfs: [/data, /config] |
| 84 | healthcheck: |
| 85 | test: [CMD, wget, -q, -O, /dev/null, http://127.0.0.1:7447/readyz] |
| 86 | interval: 30s |
| 87 | timeout: 5s |
| 88 | retries: 3 |
| 89 | restart: unless-stopped |