File management, document processing, and utility services for your homelab. This stack provides tools for file browsing, document conversion, and format transformation.
- Purpose: A versatile file conversion tool.
- Features: Supports batch processing, authentication, and auto-cleanup of converted files.
- Purpose: A tool for managing Docker container updates.
- Features: Monitors for new container images and provides update notifications.
- Purpose: A web-based file manager.
- Features: Allows you to browse, manage, and share files and folders.
- Purpose: A powerful tool for PDF manipulation.
- Features: Supports a wide range of operations, including merging, splitting, and converting PDFs.
- Purpose: A file management tool for Telegram.
- Features: Helps organize and manage files stored in your Telegram account.
- Purpose: A network device monitoring tool.
- Features: Discovers devices on your network, monitors their status, and supports Wake-on-LAN.
This stack requires a .env file for configuration. A complete and recommended set of variables can be found in the .env.example file.
To get started:
-
Copy the
.env.examplefile to.env:cp .env.example .env
-
Open the
.envfile and edit the variables to match your environment.
Key variables include:
DOCKER_DATA_BASEFOLDER: The absolute path for storing persistent data.DOCKER_MEDIA_BASEFOLDER: The absolute path for media files.TELEGRAM_API_ID&TELEGRAM_API_HASH: Optional credentials for Telegram Files.FILEBROWSER_ADMIN_PASSWORD: An optional admin password for FileBrowser Quantum.
| Service | Internal Port | Access Pattern | Description |
|---|---|---|---|
| ConvertX | 3000 |
http://convertx:3000 |
File conversion service. |
| CUP | 8000 |
http://cup:8000 |
Container update management. |
| FileBrowser Quantum | 80 |
http://filebrowser-quantum:80 |
Web-based file management. |
| Stirling PDF | 8080 |
http://stirling-pdf:8080 |
PDF processing and manipulation. |
| Telegram Files | 80 |
http://telegram-files:80 |
Telegram file management. |
| UpSnap | 5001 |
http://<host-ip>:5001 |
Network device monitoring (host network). |
Note: The services on
npm_networkare intended to be reached through Nginx Proxy Manager. Only the host-network service keeps a direct host endpoint.
| Service | Image |
|---|---|
| ConvertX | ghcr.io/c4illin/convertx |
| CUP | ghcr.io/sergi0g/cup:latest |
| FileBrowser Quantum | gtstef/filebrowser |
| Stirling PDF | stirlingtools/stirling-pdf:latest |
| Telegram Files | ghcr.io/jarvis2f/telegram-files:latest |
| UpSnap | ghcr.io/seriousm4x/upsnap:latest |
-
Setup Environment Variables:
- Copy the
.env.exampleto.env. - Set the required environment variables as described above.
- Copy the
-
Start the Stack:
docker compose up -d
-
Access Services:
- Access ConvertX at
http://localhost:3003 - Access CUP at
http://localhost:8004 - Access FileBrowser Quantum at
http://localhost:8087 - Access Stirling PDF at
http://localhost:8082 - Access Telegram Files at
http://localhost:6543 - Access UpSnap at
http://localhost:5001
- Access ConvertX at
- The CUP service mounts
/var/run/docker.sock, which grants full access to the Docker daemon. This is necessary for its function but is a significant security risk. Only run this stack in a trusted network environment.
- UpSnap uses
network_mode: host, which exposes it directly on the host's network interface.