Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 21 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ If you would like to add your own config, you can use the [service-template](tem

### 🌐 Networking and Security

| 🌐 Service | 📝 Description | 🔗 Link |
| ------------------------- | ------------------------------------------------------------------------------- | --------------------------------------- |
| 🌐 Service | 📝 Description | 🔗 Link |
| --- | --- | --- |
| 🛡️ **AdGuard Home** | Network-wide software for blocking ads and tracking. | [Details](services/adguardhome) |
| 🔄 **AdGuardHome Sync** | A tool for syncing configuration across multiple AdGuard Home instances. | [Details](services/adguardhome-sync) |
| 🌐 **Caddy** | Caddy is an extensible server platform that uses TLS by default. | [Details](services/caddy) |
Expand All @@ -48,8 +48,8 @@ If you would like to add your own config, you can use the [service-template](tem

### 🎥 Media and Entertainment

| 🎥 Service | 📝 Description | 🔗 Link |
| -------------------- | ------------------------------------------------------------------------------------------ | ---------------------------------- |
| 🎥 Service | 📝 Description | 🔗 Link |
| --- | --- | --- |
| 🎧 **Audiobookshelf** | A self-hosted audiobook and podcast server with multi-user support and playback syncing. | [Details](services/audiobookshelf) |
| 🎥 **Bazarr** | A companion tool to Radarr and Sonarr for managing subtitles. | [Details](services/bazarr) |
| 📚 **BookLore** | A self-hosted application for managing and reading books. | [Details](services/booklore) |
Expand All @@ -66,11 +66,14 @@ If you would like to add your own config, you can use the [service-template](tem
| 📡 **Sonarr** | A PVR for Usenet and BitTorrent users to manage TV series. | [Details](services/sonarr) |
| 🔗 **Slink** | A fast, self-hosted alternative to ShareDrop for secure local file sharing. | [Details](services/slink) |
| 📊 **Tautulli** | A monitoring and tracking tool for Plex Media Server. | [Details](services/tautulli) |
| ⚙️ **Configarr** | Manage and sync configuration for Radarr, Sonarr, and related services. | [Details](services/configarr) |
| 🖼️ **Posterizarr** | Automatically generates and updates posters/artwork for media libraries. | [Details](services/posterizarr) |
| ♻️ **Recyclarr** | Tools for managing, migrating, and maintaining indexers and quality profiles. | [Details](services/recyclarr) |

### 💼 Productivity and Collaboration

| 💼 Service | 📝 Description | 🔗 Link |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- |
| 💼 Service | 📝 Description | 🔗 Link |
| --- | --- | --- |
| ✂️ **ClipCascade** | A self-hosted clipboard manager for syncing and organizing clipboard history. | [Details](services/clipcascade) |
| 🗂️ **Copyparty** | A self-hosted file server with accelerated resumable uploads. | [Details](services/copyparty) |
| ✅ **Donetick** | A self-hosted task and checklist manager for productivity. | [Details](services/donetick) |
Expand Down Expand Up @@ -102,15 +105,15 @@ If you would like to add your own config, you can use the [service-template](tem

### 📊 Dashboards and Visualization

| 📊 Service | 📝 Description | 🔗 Link |
| -------------- | ------------------------------------------------------------------------------------ | ---------------------------- |
| 📊 Service | 📝 Description | 🔗 Link |
| --- | --- | --- |
| 🧭 **Glance** | A concise, customizable dashboard for self-hosted services and personal metrics. | [Details](services/glance) |
| 🏠 **Homepage** | A modern, highly customizable homepage for organizing links and monitoring services. | [Details](services/homepage) |

### 🛠️ Development Tools

| 🛠️ Service | 📝 Description | 🔗 Link |
| ------------------------ | --------------------------------------------------------------------------------------------------- | ----------------------------------- |
| 🛠️ Service | 📝 Description | 🔗 Link |
| --- | --- | --- |
| 🖥️ **Changedetection.io** | A tool for monitoring website changes. | [Details](services/changedetection) |
| 🛠️ **Coder** | Self-hosted cloud dev environments with browser IDEs, Terraform-managed workspaces. | [Details](services/coder) |
| 🔧 **Cyberchef** | A web app for encryption, encoding, compression, and data analysis. | [Details](services/cyberchef) |
Expand All @@ -126,23 +129,23 @@ If you would like to add your own config, you can use the [service-template](tem

### 📈 Monitoring and Analytics

| 📈 Service | 📝 Description | 🔗 Link |
| ----------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------- |
| 📈 Service | 📝 Description | 🔗 Link |
| --- | --- | --- |
| 📉 **Beszel** | A lightweight server monitoring hub with historical data, Docker stats, and alerts. | [Details](services/beszel) |
| 🔎 **Portracker** | A simple, self-hosted port monitoring and tracking tool for auditing open ports. | [Details](services/portracker) |
| 🚀 **Speedtest Tracker** | A self-hosted tool to monitor and log internet speed tests with detailed visualizations. | [Details](services/speedtest-tracker) |
| 📊 **Uptime Kuma** | A self-hosted monitoring tool like "Uptime Robot". | [Details](services/uptime-kuma) |

### 🏠 Smart Home

| 🏠 Service | 📝 Description | 🔗 Link |
| -------------------- | ---------------------------------------------------------------------- | ---------------------------------- |
| 🏠 Service | 📝 Description | 🔗 Link |
| --- | --- | --- |
| 🏡 **Home Assistant** | An open-source home automation platform for controlling smart devices. | [Details](services/home-assistant) |

### 📱 Utilities

| 📱 Service | 📝 Description | 🔗 Link |
| ---------------- | -------------------------------------------------------------------------------------- | ------------------------------- |
| 📱 Service | 📝 Description | 🔗 Link |
| --- | --- | --- |
| 🔁 **ConvertX** | A fast, full-featured self-hosted conversion API for images, docs, videos, and more. | [Details](services/convertx) |
| 🔔 **Gotify** | A simple server for sending and receiving messages in real-time. | [Details](services/gotify) |
| 📣 **ntfy** | A simple HTTP-based pub/sub notification service for sending push notifications. | [Details](services/ntfy) |
Expand All @@ -152,8 +155,8 @@ If you would like to add your own config, you can use the [service-template](tem

### 🍽️ Food & Wellness

| 🥘 Service | 📝 Description | 🔗 Link |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| 🥘 Service | 📝 Description | 🔗 Link |
| --- | --- | --- |
| 🥘 **Mealie** | A self-hosted recipe manager and meal planner with features like shopping lists, scaling, and importing. | [Details](services/mealie) |
| 🥘 **Tandoor Recipes** | A self-hosted recipe manager that also serves as a meal planner that has features such as nutrient tracking, shopping lists, importing and AI. | [Details](services/tandoor) |

Expand Down
8 changes: 8 additions & 0 deletions services/configarr/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#version=1.0
#url=https://github.com/2Tiny2Scale/tailscale-docker-sidecar-configs
#COMPOSE_PROJECT_NAME= // only use in multiple deployments on the same infra
SERVICE=configarr
IMAGE_URL=ghcr.io/raydak-labs/configarr:latest
SERVICEPORT=
TS_AUTHKEY=
DNS_SERVER=9.9.9.9
39 changes: 39 additions & 0 deletions services/configarr/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Configarr with Tailscale Sidecar Configuration

This Docker Compose configuration sets up **Configarr** with a Tailscale sidecar container, enabling secure and private management of configuration files for your *Radarr*, *Sonarr*, and broader media automation stack. With this setup, Configarr is **only accessible from within your Tailscale network**, keeping your configuration workflows fully private and under your control.

## Configarr

[**Configarr**](https://github.com/raydak-labs/configarr) is a configuration management tool designed to **declaratively manage and synchronize settings** for Radarr, Sonarr, and related media services. By defining your desired state in version-controlled YAML files, Configarr ensures your media applications remain consistent, reproducible, and easy to maintain.

## Key Features

* ⚙️ **Declarative Configuration Management** – Define Radarr and Sonarr settings in YAML.
* 🔁 **Idempotent Syncing** – Apply configurations safely and repeatedly without drift.
* 📦 **Multi-Instance Support** – Manage multiple Radarr/Sonarr instances from a single config.
* 🧩 **Profile & Root Folder Management** – Keep paths, profiles, and settings aligned.
* 🛠 **Automation-Friendly** – Ideal for cron jobs, CI pipelines, or GitOps-style workflows.
* 🧪 **Dry-Run Mode** – Preview configuration changes before applying them.
* 🐳 **Docker-Native** – Lightweight and easy to deploy in containerized environments.

## Why Self-Host?

Configarr requires **API access to Radarr and Sonarr**, exposing configuration and library metadata that should not be publicly reachable. By self-hosting Configarr behind Tailscale, you gain:

* Private, encrypted access to all Radarr/Sonarr APIs
* No need to expose management endpoints to the public Internet
* Secure remote configuration management across locations

This is especially useful for homelabs, shared servers, and environments where consistent configuration and security are critical.

## Configuration Overview

In this deployment, a **Tailscale sidecar container** (for example, `tailscale-configarr`) runs the Tailscale client and joins your private Tailscale network. The Configarr service uses:

```plain
network_mode: service:tailscale-configarr
```

This setup ensures that **all Configarr network traffic flows exclusively through the Tailscale interface**, allowing it to securely communicate with Radarr and Sonarr instances that are also connected via Tailscale. No ports need to be exposed, and the service remains completely inaccessible from the public Internet.

With this configuration, Configarr can safely enforce and maintain your desired media configuration state — privately, securely, and reproducibly.
56 changes: 56 additions & 0 deletions services/configarr/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
services:
# Make sure you have updated/checked the .env file with the correct variables.
# All the ${ xx } need to be defined there.
# Tailscale Sidecar Configuration
tailscale:
image: tailscale/tailscale:latest # Image to be used
container_name: tailscale-${SERVICE} # Name for local container management
hostname: ${SERVICE} # Name used within your Tailscale environment
environment:
- TS_AUTHKEY=${TS_AUTHKEY}
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=false
- TS_ENABLE_HEALTH_CHECK=true # Enable healthcheck endpoint: "/healthz"
- TS_LOCAL_ADDR_PORT=127.0.0.1:41234 # The <addr>:<port> for the healthz endpoint
#- TS_ACCEPT_DNS=true # Uncomment when using MagicDNS
volumes:
- ./ts/state:/var/lib/tailscale # Tailscale requirement - you may need to change the path
devices:
- /dev/net/tun:/dev/net/tun # Network configuration for Tailscale to work
cap_add:
- net_admin # Tailscale requirement
#ports:
# - 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
# If any DNS issues arise, use your preferred DNS provider by uncommenting the config below
#dns:
# - ${DNS_SERVER}
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:41234/healthz"] # Check Tailscale has a Tailnet IP and is operational
interval: 1m # How often to perform the check
timeout: 10s # Time to wait for the check to succeed
retries: 3 # Number of retries before marking as unhealthy
start_period: 10s # Time to wait before starting health checks
restart: always

# ${SERVICE}
application:
image: ${IMAGE_URL} # Image to be used
network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale
container_name: app-${SERVICE} # Name for local container management
environment:
- TZ=Europe/Amsterdam
volumes:
- ${PWD}/${SERVICE}-data/config:/app/config
- ${PWD}/${SERVICE}-data/dockerrepos:/app/repos
depends_on:
tailscale:
condition: service_healthy
# healthcheck:
# test: ["CMD", "pgrep", "-f", "${SERVICE}"] # Check if ${SERVICE} process is running
# interval: 1m # How often to perform the check
# timeout: 10s # Time to wait for the check to succeed
# retries: 3 # Number of retries before marking as unhealthy
# start_period: 30s # Time to wait before starting health checks
restart: never


8 changes: 8 additions & 0 deletions services/posterizarr/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#version=1.0
#url=https://github.com/2Tiny2Scale/tailscale-docker-sidecar-configs
#COMPOSE_PROJECT_NAME= // only use in multiple deployments on the same infra
SERVICE=posterizarr
IMAGE_URL=ghcr.io/fscorrupt/posterizarr:latest
SERVICEPORT=8000
TS_AUTHKEY=
DNS_SERVER=9.9.9.9
39 changes: 39 additions & 0 deletions services/posterizarr/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Posterizarr with Tailscale Sidecar Configuration

This Docker Compose configuration sets up **Posterizarr** with a Tailscale sidecar container, enabling secure and private access to your automated poster and artwork management service for *Radarr* and *Sonarr*. With this setup, Posterizarr is **only accessible from within your Tailscale network**, keeping your media automation environment clean, private, and secure.

## Posterizarr

[**Posterizarr**](https://github.com/fscorrupt/Posterizarr) is a companion tool for Radarr and Sonarr that **automatically manages posters, backgrounds, and other artwork** based on predefined rules. It ensures a consistent visual style across your media library by automatically applying selected poster sources, resolutions, languages, and artwork types.

## Key Features

* 🖼 **Automated Poster Management** – Automatically updates posters and artwork for movies and series.
* 🎨 **Consistent Library Aesthetics** – Enforce a uniform look across Radarr and Sonarr.
* 🔧 **Rule-Based Configuration** – Define poster sources, languages, resolutions, and priorities.
* 🔄 **Scheduled Syncing** – Periodically checks and updates artwork automatically.
* 📡 **Radarr & Sonarr Integration** – Uses official APIs to manage media artwork.
* 🐳 **Docker-Native** – Lightweight container designed for easy self-hosting.
* 🧩 **Multi-Instance Support** – Manage artwork across multiple Radarr/Sonarr instances.

## Why Self-Host?

Posterizarr requires **API access to Radarr and Sonarr**, which exposes metadata and library structure details. Self-hosting Posterizarr behind Tailscale ensures:

* Radarr and Sonarr APIs are not publicly exposed
* Poster and artwork management stays inside your private network
* Secure remote management without opening firewall ports

This approach is ideal for homelabs, media servers, and multi-location setups where privacy and security matter.

## Configuration Overview

In this deployment, a **Tailscale sidecar container** (for example, `tailscale-posterizarr`) runs the Tailscale client and connects to your private Tailscale network. The Posterizarr service uses:

```plain
network_mode: service:tailscale-posterizarr
```

This configuration ensures that **all Posterizarr traffic is routed exclusively through the Tailscale interface**, allowing it to securely communicate with Radarr and Sonarr instances over your private network. No ports are exposed to the public Internet, and the service remains fully isolated.

With this setup, Posterizarr can reliably enforce consistent artwork standards across your media library — securely, privately, and automatically.
16 changes: 16 additions & 0 deletions services/posterizarr/config/serve.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"TCP": {
"443": {
"HTTPS": true
}
},
"Web": {
"${TS_CERT_DOMAIN}:443": {
"Handlers": {
"/": {
"Proxy": "http://127.0.0.1:8000"
}
}
}
}
}
Loading