You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| 🔁 **Transmute**| A self-hosted file conversion and transformation service for handling documents, media, and other format changes. |[Details](services/transmute)|
215
216
216
217
### 🍽️ Food & Wellness
217
218
@@ -252,8 +253,8 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod
This Docker Compose configuration sets up **Transmute** with a Tailscale sidecar container, allowing you to securely access your instance over your private Tailnet. With this setup, Transmute remains private by default and is only accessible from devices authenticated to your Tailscale network.
4
+
5
+
## Transmute
6
+
7
+
[**Transmute**](https://github.com/transmute-app/transmute) is an open-source file conversion and transformation service designed to handle a wide variety of document, media, and data format conversions through a clean API and web interface. It is particularly useful for workflows that require automated or repeatable transformations between formats.
8
+
9
+
Running Transmute behind Tailscale ensures that your file processing pipelines and potentially sensitive data remain secure, without exposing the service publicly.
10
+
11
+
## Key Features
12
+
13
+
- Convert files between multiple formats (documents, images, and more)
14
+
- API-first design for automation and integrations
15
+
- Web interface for manual conversions
16
+
- Lightweight and container-friendly deployment
17
+
- Self-hosted with full control over your data
18
+
19
+
## Configuration Overview
20
+
21
+
In this setup, the `tailscale-transmute` service runs Tailscale and manages secure connectivity to your Tailnet. The `transmute` container shares the same network stack using Docker’s `network_mode: service:tailscale-transmute`.
22
+
23
+
## Service Notes / Gotchas
24
+
25
+
- Some conversions may require additional system dependencies depending on formats used
26
+
- Initial startup may take longer if Transmute initializes processing tools
27
+
- Ensure sufficient CPU and memory for heavy conversions
# Make sure you have updated/checked the .env file with the correct variables.
12
+
# All the ${ xx } need to be defined there.
13
+
# Tailscale Sidecar Configuration
14
+
tailscale:
15
+
image: tailscale/tailscale:latest # Image to be used
16
+
container_name: tailscale-${SERVICE} # Name for local container management
17
+
hostname: ${SERVICE} # Name used within your Tailscale environment
18
+
environment:
19
+
- TS_AUTHKEY=${TS_AUTHKEY}
20
+
- TS_STATE_DIR=/var/lib/tailscale
21
+
- TS_SERVE_CONFIG=/config/serve.json # Tailscale Serve configuration to expose the web interface on your local Tailnet - remove this line if not required
- TS_LOCAL_ADDR_PORT=127.0.0.1:41234 # The <addr>:<port> for the healthz endpoint
25
+
#- TS_ACCEPT_DNS=true # Uncomment when using MagicDNS
26
+
- TS_AUTH_ONCE=true
27
+
configs:
28
+
- source: ts-serve
29
+
target: /config/serve.json
30
+
volumes:
31
+
- ./config:/config # Config folder used to store Tailscale files - you may need to change the path
32
+
- ./ts/state:/var/lib/tailscale # Tailscale requirement - you may need to change the path
33
+
devices:
34
+
- /dev/net/tun:/dev/net/tun # Network configuration for Tailscale to work
35
+
cap_add:
36
+
- net_admin # Tailscale requirement
37
+
#ports:
38
+
# - 0.0.0.0:${SERVICEPORT}:${SERVICEPORT} # Binding port ${SERVICE}PORT to the local network - may be removed if only exposure to your Tailnet is required
39
+
# If any DNS issues arise, use your preferred DNS provider by uncommenting the config below
40
+
#dns:
41
+
# - ${DNS_SERVER}
42
+
healthcheck:
43
+
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:41234/healthz"] # Check Tailscale has a Tailnet IP and is operational
44
+
interval: 1m# How often to perform the check
45
+
timeout: 10s# Time to wait for the check to succeed
46
+
retries: 3# Number of retries before marking as unhealthy
47
+
start_period: 10s# Time to wait before starting health checks
48
+
restart: always
49
+
50
+
# ${SERVICE}
51
+
application:
52
+
image: ${IMAGE_URL} # Image to be used
53
+
network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale
54
+
container_name: app-${SERVICE} # Name for local container management
0 commit comments