Container images for self-hosted services, most of them based on alpine to stay lightweight. All services are built for a graceful shutdown/restart with S6 overlay or a small init script.
| Service | Description | Image |
|---|---|---|
| rclone-mount | Mount any rclone remote (Google Drive, S3, crypt, ...) with FUSE and share it with the host and other containers | mumiehub/rclone-mount, ghcr.io/mumie-hub/rclone-mount |
| smb-mount | Mount an SMB/CIFS share and share it with the host and other containers | mumiehub/smb-mount |
| sabnzbdvpn | SABnzbd running behind an OpenVPN connection | mumiehub/sabnzbdvpn |
| jdownloader | Headless JDownloader 2, not published since 2021 | mumiehub/jdownloader |
| filebot | FileBot watch folder renaming, not built anymore | mumiehub/filebot |
| teamspeakserver | Deprecated, see below | mumiehub/teamspeakserver |
The teamspeakserver image is deprecated and not maintained anymore. Use the official images instead:
- TeamSpeak 3:
teamspeak(Docker Official Image) - TeamSpeak 6:
teamspeaksystems/teamspeak6-server
See the README in each service folder for the required docker run options, volumes and environment variables. Mount containers like rclone-mount and smb-mount need --cap-add SYS_ADMIN, --security-opt apparmor=unconfined and a :shared volume so the mount is visible on the host.
For Kubernetes there is an example for rclone-mount with the TrueCharts app-template Helm chart in helm/rclone-mount.
The repository lives on GitLab and is mirrored to GitHub.
- GitLab CI builds the images with Kaniko on a Kubernetes runner when files in a service folder change:
devbranch:<service>:dev,<service>:dev-<version>and<service>:dev-<commit>in the GitLab registrymasterbranch:<service>:<version>-r<N>,<service>:<version>-<commit>,<service>:<version>,<service>:<major.minor>and<service>:latestin the GitLab registry, then a manual job copies them to Docker Hub (mumiehub/<service>)
- GitHub Actions builds rclone-mount for amd64 and arm64 and publishes it to GHCR (
ghcr.io/mumie-hub/rclone-mount) with the same tags. - Renovate opens merge requests into
devwhen a new upstream version is released (e.g. rclone), configured inrenovate.json.
The version of the upstream software is set in <service>/version (e.g. rclone-mount/version). It is passed to the build as IMAGE_VERSION and used as image tag. The <version>-<commit> tag never changes, the other tags move to the newest build. Services without a version file are tagged <commit> and latest.
The release revision r<N> is counted from the history of master: the merge that set the version in <service>/version is r1, every later merge into master that changes the service folder adds 1. A new upstream version starts again at r1. This needs merge commits (or squash merges) on master, so every merge request counts once, and the full git history in CI.
Changes go to the dev branch first and are merged into master with a merge request.