Skip to content

Commit 8ccf55d

Browse files
authored
Update README and CONTRIBUTING files to enhance documentation and user guidance (#185)
1 parent 65d11f4 commit 8ccf55d

File tree

3 files changed

+52
-9
lines changed

3 files changed

+52
-9
lines changed

CONTRIBUTING.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Contributing to ScaleTail
2+
3+
Thanks for helping expand these Tailscale sidecar examples. Keeping services aligned with the template makes it easier for users to migrate existing Compose stacks without breaking them.
4+
5+
## Adding a new service
6+
7+
1. Copy `templates/service-template` into `services/<service-name>` and rename the compose and README files accordingly.
8+
2. Update `compose.yaml`:
9+
- Keep the Tailscale container named `tailscale-<service>` and the app container named `app-<service>`.
10+
- Set `IMAGE_URL`, `SERVICEPORT`, and any other app variables in `.env`; do not commit secrets or real auth keys.
11+
- Leave `network_mode: service:tailscale` in place and keep `depends_on` using the Tailscale health check.
12+
- Keep the `ports` section commented unless LAN exposure is required; explain why in the README if you expose anything.
13+
- Adjust volumes to match the service, and pre-create bind-mount paths so Docker does not create root-owned folders. (optional)
14+
- If the service needs devices (GPU, render, fuse, etc.) or extra capabilities, add them explicitly and mention them in the README. (optional)
15+
3. Update `"Proxy":"http://127.0.0.1:80"` in `compose.yaml` with the app's actual internal port; it does not consume `.env` values automatically. Remove `TS_SERVE_CONFIG` if Serve/Funnel is not needed.
16+
4. Fill in the service README using the template:
17+
- Briefly describe the app and why Tailscale helps.
18+
- List prerequisites (user in `docker` group, GPU/group membership, devices).
19+
- Call out gotchas: initial admin setup, default credentials, path expectations, required group IDs, or config directory names that must change.
20+
- Clarify MagicDNS/HTTPS steps (`TS_ACCEPT_DNS`), optional 0.0.0.0 port exposure, and any health checks.
21+
- Link to upstream service docs and any official setup videos.
22+
5. Sanity-check the stack with `docker compose config` from the service directory to catch typos and missing variables.
23+
24+
## Updating an existing service
25+
26+
- Keep the sidecar pattern intact (`network_mode: service:tailscale`, health checks, `depends_on`).
27+
- Avoid removing existing volumes or changing container names unless the change is clearly documented in the README.

README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ If you would like to add your own config, you can use the [service-template](tem
1010

1111
- [ScaleTail - Tailscale Docker Sidecar Configuration Examples](#scaletail---tailscale-docker-sidecar-configuration-examples)
1212
- [Table of Contents](#table-of-contents)
13+
- [Helpful videos and docs](#helpful-videos-and-docs)
1314
- [Available Configurations](#available-configurations)
1415
- [🌐 Networking and Security](#-networking-and-security)
1516
- [🎥 Media and Entertainment](#-media-and-entertainment)
@@ -25,16 +26,22 @@ If you would like to add your own config, you can use the [service-template](tem
2526
- [Tailscale Funnel](#tailscale-funnel)
2627
- [Tailscale Serve](#tailscale-serve)
2728
- [Tailscale Documentation](#tailscale-documentation)
29+
- [Contributing](#contributing)
2830
- [Star History](#star-history)
2931
- [License](#license)
3032

33+
### Helpful videos and docs
34+
35+
- Tailscale Docker sidecar guide and Serve/Funnel walkthroughs on the official [Tailscale YouTube channel](https://www.youtube.com/@Tailscale) pair well with these examples.
36+
- The Tailscale [Docker guide](https://tailscale.com/blog/docker-tailscale-guide), [Serve docs](https://tailscale.com/kb/1242/tailscale-serve), and [Funnel docs](https://tailscale.com/kb/1223/funnel) cover the underlying features without duplicating content here.
37+
3138
## Available Configurations
3239

3340
### 🌐 Networking and Security
3441

3542
| 🌐 Service | 📝 Description | 🔗 Link |
3643
| ------------------------- | ------------------------------------------------------------------------------- | --------------------------------------- |
37-
| 🛡️ **AdGuard Home** | Network-wide software for blocking ads and tracking. | [Details](services/adguardhome) |
44+
| 🛡️ **AdGuard Home** | Network-wide software for blocking ads and tracking. | [Details](services/adguardhome) |
3845
| 🔄 **AdGuardHome Sync** | A tool for syncing configuration across multiple AdGuard Home instances. | [Details](services/adguardhome-sync) |
3946
| 🌐 **Caddy** | Caddy is an extensible server platform that uses TLS by default. | [Details](services/caddy) |
4047
| 🌐 **DDNS Updater** | A self-hosted solution to keep DNS A/AAAA records updated automatically. | [Details](services/ddns-updater) |
@@ -70,7 +77,6 @@ If you would like to add your own config, you can use the [service-template](tem
7077
| 🖼️ **Posterizarr** | Automatically generates and updates posters/artwork for media libraries. | [Details](services/posterizarr) |
7178
| ♻️ **Recyclarr** | Tools for managing, migrating, and maintaining indexers and quality profiles. | [Details](services/recyclarr) |
7279

73-
7480
### 💼 Productivity and Collaboration
7581

7682
| 💼 Service | 📝 Description | 🔗 Link |
@@ -191,6 +197,10 @@ An example configuration for Tailscale Serve for your service is [available here
191197
- [Tailscale.com - Docker Tailscale Guide](https://tailscale.com/blog/docker-tailscale-guide)
192198
- [Tailscale - for ARM / OpenPli Setupbox](documentation/tailscale-on-arm.md)
193199

200+
## Contributing
201+
202+
See `CONTRIBUTING.md` for guidance on adding services with the template, documenting gotchas, and keeping Tailscale-sidecar setups consistent.
203+
194204
## Star History
195205

196206
[![Star History Chart](https://api.star-history.com/svg?repos=2tiny2scale/scaletail&type=Date)](https://www.star-history.com/#2tiny2scale/scaletail&Date)
Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
1-
# Make sure you replace SERVICE.
2-
31
# SERVICE with Tailscale Sidecar Configuration
42

5-
This Docker Compose configuration sets up [SERVICE](LINK TO PAGE OF MAINTAINER) with Tailscale as a sidecar container ......
3+
This Docker Compose configuration sets up [SERVICE](LINK TO PAGE OF MAINTAINER) with Tailscale as a sidecar container to keep the app reachable over your Tailnet.
64

75
## SERVICE
86

9-
[SERVICE](LINK TO PAGE OF MAINTAINER) information about service...
7+
[SERVICE](LINK TO PAGE OF MAINTAINER) information about the service. Explain what the app does in 2-3 sentences and why someone would pair it with Tailscale.
108

119
## Configuration Overview
1210

13-
In this setup, the `tailscale-SERVICE` service runs Tailscale, which manages secure networking for the SERVICE. The `SERVICE` service utilizes the Tailscale network stack via Docker's `network_mode: service:` configuration. This setup ensures that SERVICE's service is only accessible through the Tailscale network (or locally, if preferred), providing an extra layer of security and privacy for your SERVICE.
11+
In this setup, the `tailscale-SERVICE` service runs Tailscale, which manages secure networking for SERVICE. The `SERVICE` service utilizes the Tailscale network stack via Docker's `network_mode: service:` configuration. This keeps the app Tailnet-only unless you intentionally expose ports.
12+
13+
## What to document for users
14+
15+
- Prerequisites: note if the host user needs `docker` group membership, GPU/video/render groups, or any devices passed through.
16+
- Volumes: list bind mounts that should be pre-created so Docker does not create root-owned directories; rename any conflicting config folders (for example, `ts-config`) if needed.
17+
- MagicDNS/Serve: when to enable `TS_ACCEPT_DNS`, what to set for `TS_CERT_DOMAIN`, and which port should be in `serve.json` (it does not consume `.env` values automatically).
18+
- Ports: explain whether the commented `0.0.0.0:${SERVICEPORT}:${SERVICEPORT}` mapping is necessary for this app or should stay removed for Tailnet-only access.
19+
- Service-specific gotchas: initial admin setup, default credentials, path expectations, or other quirks to check before first launch.
20+
- Links: include upstream docs for the service and any official setup guides or videos that help users understand the app.
1421

1522
## Files to check
1623

1724
Please check the following contents for validity as some variables need to be defined upfront.
1825

19-
- `.env` // This files hold the main parts
20-
- `./config/serve.json` // This file requires a service port of the app to be defined
26+
- `.env` // Main variable `TS_AUTHKEY`

0 commit comments

Comments
 (0)