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
Automated media management stack running on Docker. Handles requesting, downloading, organizing, and subtitling media — with Jellyfin running on a separate server for playback.
|[Homepage](https://gethomepage.dev/)| 3000 | YAML-configured dashboard with service widgets |[docs/homepage.md](docs/homepage.md)|
40
-
|[Maintainerr](https://docs.maintainerr.info/)| 6246 | Automated library maintenance based on rules |[docs/maintainerr.md](docs/maintainerr.md)|
41
-
|[LazyLibrarian](https://lazylibrarian.gitlab.io/)| 5299 | Book/audiobook search and download management |[docs/lazylibrarian.md](docs/lazylibrarian.md)|
42
-
|[Audiobookshelf](https://www.audiobookshelf.org/docs)| 13378 | Self-hosted audiobook server with mobile apps |[docs/audiobookshelf.md](docs/audiobookshelf.md)|
18
+
| Service | Port | Purpose | Guide |
19
+
| --- | --- | --- | --- |
20
+
|[Seerr](https://github.com/seerr-team/seerr)| 5055 | Media request portal |[Wiki](https://github.com/bcanfield/docker-media-server/wiki/Seerr)|
21
+
|[Sonarr](https://wiki.servarr.com/sonarr)| 8989 | TV show management |[Wiki](https://github.com/bcanfield/docker-media-server/wiki/Sonarr)|
22
+
|[Radarr](https://wiki.servarr.com/radarr)| 7878 | Movie management |[Wiki](https://github.com/bcanfield/docker-media-server/wiki/Radarr)|
|[Audiobookshelf](https://www.audiobookshelf.org/docs)| 13378 | Audiobook server + mobile apps |[Wiki](https://github.com/bcanfield/docker-media-server/wiki/Audiobookshelf)|
docker compose --env-file ../.env --env-file .env up -d
96
56
```
97
57
98
-
The extras compose uses the same `sofa-squad` network as the core stack, so all services can communicate.
99
-
100
-
## Remote Access with Tailscale
101
-
102
-
[Tailscale](https://tailscale.com/) creates a private VPN (tailnet) between your devices, letting you securely access all your services from anywhere — no port forwarding or exposing anything to the public internet.
103
-
104
-
### Setup
105
-
106
-
1.**Create a Tailscale account** at [tailscale.com](https://tailscale.com/) (free for personal use, up to 100 devices).
107
-
108
-
2.**Install Tailscale on your client devices** (phone, laptop, etc.) from [tailscale.com/download](https://tailscale.com/download).
109
-
110
-
3.**Generate an auth key** at [Admin Console > Settings > Keys](https://login.tailscale.com/admin/settings/keys). Use a **reusable** key so the container can re-authenticate after restarts.
111
-
112
-
4.**Add the key to your `.env`:**
113
-
114
-
```env
115
-
TS_AUTHKEY=tskey-auth-your-key-here
116
-
TS_HOSTNAME=media-server
117
-
```
118
-
119
-
5.**Start (or restart) the stack:**
120
-
121
-
```bash
122
-
docker compose up -d
123
-
```
124
-
125
-
6.**Approve the node** in the [Tailscale Admin Console](https://login.tailscale.com/admin/machines) if prompted.
126
-
127
-
### Accessing Services Remotely
128
-
129
-
Once Tailscale is running on both your server and your client device, access services using your Tailscale hostname:
130
-
131
-
| Service | Remote URL |
132
-
| -------------- | --------------------------- |
133
-
| Seerr |`http://media-server:5055`|
134
-
| Sonarr |`http://media-server:8989`|
135
-
| Radarr |`http://media-server:7878`|
136
-
| SABnzbd |`http://media-server:8080`|
137
-
| Bazarr |`http://media-server:6767`|
138
-
| Prowlarr |`http://media-server:9696`|
139
-
| Homepage |`http://media-server:3000`|
140
-
| LazyLibrarian |`http://media-server:5299`|
141
-
| Audiobookshelf |`http://media-server:13378`|
142
-
143
-
Replace `media-server` with whatever you set `TS_HOSTNAME` to. You can also use the Tailscale IP shown in the admin console.
144
-
145
-
### Enabling HTTPS (Optional)
146
-
147
-
Tailscale can provision [automatic HTTPS certificates](https://tailscale.com/kb/1153/enabling-https) for your tailnet:
148
-
149
-
1. Enable HTTPS in [Admin Console > DNS](https://login.tailscale.com/admin/dns).
150
-
2. Access services at `https://media-server.your-tailnet.ts.net:<port>`.
151
-
152
-
### Enabling MagicDNS
153
-
154
-
With [MagicDNS](https://tailscale.com/kb/1081/magicdns) enabled (on by default), you can use short hostnames like `media-server` instead of full IPs across your tailnet.
155
-
156
-
## Backups
157
-
158
-
`extras/backup/` backs up service configs to S3-compatible storage (e.g., DigitalOcean Spaces) using [restic](https://restic.net/). Safely snapshots SQLite databases before backup.
159
-
160
-
```bash
161
-
# Install dependencies
162
-
apt install -y restic sqlite3
163
-
164
-
# Configure
165
-
cd extras/backup
166
-
cp .env.example .env # fill in your S3 credentials, restic password, and backup path
`extras/backup/` backs up service configs to S3-compatible storage (e.g., DigitalOcean Spaces) using [restic](https://restic.net/). Safely snapshots SQLite databases before backup.
4
+
5
+
## Setup
6
+
7
+
```bash
8
+
# Install dependencies
9
+
apt install -y restic sqlite3
10
+
11
+
# Configure
12
+
cd extras/backup
13
+
cp .env.example .env # fill in your S3 credentials, restic password, and backup path
[Tailscale](https://tailscale.com/) creates a private VPN (tailnet) between your devices, letting you securely access all your services from anywhere — no port forwarding or exposing anything to the public internet.
4
+
5
+
## Setup
6
+
7
+
1.**Create a Tailscale account** at [tailscale.com](https://tailscale.com/) (free for personal use, up to 100 devices).
8
+
9
+
2.**Install Tailscale on your client devices** (phone, laptop, etc.) from [tailscale.com/download](https://tailscale.com/download).
10
+
11
+
3.**Generate an auth key** at [Admin Console > Settings > Keys](https://login.tailscale.com/admin/settings/keys). Use a **reusable** key so the container can re-authenticate after restarts.
12
+
13
+
4.**Add the key to your `.env`:**
14
+
15
+
```env
16
+
TS_AUTHKEY=tskey-auth-your-key-here
17
+
TS_HOSTNAME=media-server
18
+
```
19
+
20
+
5.**Start (or restart) the stack:**
21
+
22
+
```bash
23
+
docker compose up -d
24
+
```
25
+
26
+
6.**Approve the node** in the [Tailscale Admin Console](https://login.tailscale.com/admin/machines) if prompted.
27
+
28
+
## Accessing Services Remotely
29
+
30
+
Once Tailscale is running on both your server and your client device, access services using your Tailscale hostname:
31
+
32
+
| Service | Remote URL |
33
+
| -------------- | --------------------------- |
34
+
| Seerr |`http://media-server:5055`|
35
+
| Sonarr |`http://media-server:8989`|
36
+
| Radarr |`http://media-server:7878`|
37
+
| SABnzbd |`http://media-server:8080`|
38
+
| Bazarr |`http://media-server:6767`|
39
+
| Prowlarr |`http://media-server:9696`|
40
+
| Homepage |`http://media-server:3000`|
41
+
| LazyLibrarian |`http://media-server:5299`|
42
+
| Audiobookshelf |`http://media-server:13378`|
43
+
44
+
Replace `media-server` with whatever you set `TS_HOSTNAME` to. You can also use the Tailscale IP shown in the admin console.
45
+
46
+
## Enabling HTTPS (Optional)
47
+
48
+
Tailscale can provision [automatic HTTPS certificates](https://tailscale.com/kb/1153/enabling-https) for your tailnet:
49
+
50
+
1. Enable HTTPS in [Admin Console > DNS](https://login.tailscale.com/admin/dns).
51
+
2. Access services at `https://media-server.your-tailnet.ts.net:<port>`.
52
+
53
+
## Enabling MagicDNS
54
+
55
+
With [MagicDNS](https://tailscale.com/kb/1081/magicdns) enabled (on by default), you can use short hostnames like `media-server` instead of full IPs across your tailnet.
0 commit comments