In this page we have carefully selected our favorite services and created an organized set of containers for you to choose from. Each container is bundled with all the necessary configurations to make it work seamlessly on your system.
To get started, simply copy and paste the YAML code of your desired container onto your system. However, please note that you need to change the username to match your own Linux username and ensure that the volume paths are correct for your system.
Additionally, you'll need to update the subnet to your own preferred network in the networks section of the file, under the ipam configuration. Be sure to set both the subnet and gateway to the appropriate values for your network.
Enjoy exploring the world of Docker containers and let us know if you have any questions or concerns!
This group is the All-in-One multimedia server.
A network will be automaticly created called: media on 10.0.30.0/24
These will have the following services:
This container is optional, so it's disabled
This container is optional, so it's disabled
This container is optional, so it's disabled
This container is optional, so it's disabled
cd /home/myusername/docker
mkdir arrs && cd "$_"
mkdir -p data/torrents/{books,movies,music,tv} data/usenet/{incomplete,complete/{books,movies,music,tv}}
If you want to use a external disk for the data folder you need to change the
./data
path to/media/disk/exthdd01/extarrs/data
For example: ./data/torrents will turn into/media/disk/exthdd01/extarrs/data/torrents
./data/usenet will turn into/media/disk/exthdd01/extarrs/data/usenet
./data will turn into/media/disk/exthdd01/extarrs/data
/media
vs /mnt
in LinuxBoth /media
and /mnt
directories exist in the root folder of Ubuntu (and other Linux systems), but they are used for slightly different purposes related to mounting file systems.
Directory | Purpose | Use Case |
---|---|---|
/media |
Primarily for automatically mounted external media like USB drives, CDs, DVDs, or other removable media | External drives are often auto-mounted by the system in subdirectories of /media (e.g., /media/username/drive ). |
/mnt |
Primarily for manual mounts or temporary mounts, often by system administrators | Used for temporary, manual mounting of file systems, such as when mounting a secondary disk or network share. |
version: "3.8"
###--- Jellyfin Image - Media Library / Player - Used to play the media content ---###
services:
jellyfin:
container_name: jellyfin
image: jellyfin/jellyfin:latest
restart: unless-stopped
devices:
# - /dev/dri:/dev/dri # Directory containing all Direct Rendering Infrastructure (DRI) devices, including render and card devices, for general GPU access
# - /dev/dri/card0:/dev/dri/card0 # FULL GPU 01 access
- /dev/dri/card1:/dev/dri/card1 # FULL GPU 02 access
- /dev/dri/renderD128:/dev/dri/renderD128 # GPU render only 01 access
# - /dev/dri/renderD129:/dev/dri/renderD129 # GPU render only 02 access
# - /dev/vcsm:/dev/vcsm # Raspberry Pi VideoCore Shared Memory (VCSM) device, used on Raspberry Pi for managing shared memory between GPU and CPU
# - /dev/vchiq:/dev/vchiq # Raspberry Pi VideoCore Host Interface Queue (VCHIQ) device, used on Raspberry Pi for communication between the CPU and GPU
# - /dev/video10:/dev/video10 # Video device interface 10, typically used for video capture or encoding hardware (often for camera or multimedia applications)
# - /dev/video11:/dev/video11 # Video device interface 11, similar to video10, for additional video capture or encoding capabilities
# - /dev/video12:/dev/video12 # Video device interface 12, another video device for capturing or encoding, usually used in multimedia or camera applications
environment:
PGID: 1000
PUID: 1000
UMASK: 002
TZ: Etc/UTC
volumes:
- /media/disk/exthdd01/extarrs/data/library/tv:/media/TV
- /media/disk/exthdd01/extarrs/data/library/movies:/media/movies
- /media/disk/exthdd01/extarrs/data/library/music:/media/music
- /media/disk/exthdd01/extarrs/data/library/pictures:/media/pictures
- /media/disk/exthdd01/extarrs/data/library/books:/media/books
- ./appdata/jellyfin/config:/config
- ./appdata/jellyfin/cache:/cache"
- /dev/shm:/transcode
# - /opt/vc/lib:/opt/vc/lib # Raspberry Pi GPU libraries for multimedia operations
ports:
- 8110:8096
networks:
media:
ipv4_address: 10.0.30.100
###--- ErsatzTV Image - IPTV Server. - configure and stream custom live TV channels using the media library. ---###
# Latest Release Tags
# Base (software transcoding): jasongdove/ersatztv:latest
# Nvidia hardware-accelerated transcoding: jasongdove/ersatztv:latest-nvidia
# VAAPI (Intel, AMD) hardware-accelerated transcoding: jasongdove/ersatztv:latest-vaapi
# Development Tags
# Development tags update much more frequently, but have the potential to be less stable than releases.
# Base (software transcoding): jasongdove/ersatztv:develop
# Nvidia hardware-accelerated transcoding: jasongdove/ersatztv:develop-nvidia
# VAAPI (Intel, AMD) hardware-accelerated transcoding: jasongdove/ersatztv:develop-vaapi
# ersatztv:
# image: jasongdove/ersatztv:latest-vaapi
# container_name: ersatztv
# restart: unless-stopped
# environment:
# TZ: Etc/UTC
# ports:
# - 8294:8409
# volumes:
# - ./appdata/ersatztv/config:/root/.local/share/ersatztv
# networks:
# media:
# ipv4_address: 10.0.30.112
# ---------------
# Media paths not needed if you connect ErsatzTV to jellyfin with API key
# - /media/disk/exthdd01/extarrs/data/library/tv:/media/TV
# - /media/disk/exthdd01/extarrs/data/library/movies:/media/movies
# - /media/disk/exthdd01/extarrs/data/library/music:/media/music
# - /media/disk/exthdd01/extarrs/data/library/pictures:/media/pictures
# - /media/disk/exthdd01/extarrs/data/library/books:/media/books
# ---------------
###--- Jellyseerr Image - Request management and media discovery tool ---###
jellyseerr:
image: fallenbagel/jellyseerr:latest
container_name: jellyseerr
restart: unless-stopped
environment:
PGID: 1000
PUID: 1000
UMASK: 002
LOG_LEVEL: debug
TZ: Etc/UTC
volumes:
- ./appdata/jellyseerr/config:/app/config
ports:
- 8111:5055
networks:
media:
ipv4_address: 10.0.30.101
###--- qBittorrent Image - Download Client - Used to download torrent files ---###
qbittorrent:
image: ghcr.io/hotio/qbittorrent:latest
container_name: qbittorrent
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
UMASK: 002
TZ: Etc/UTC
WEBUI_PORTS: 8080/tcp,8080/udp
ports:
- 8290:8080
- 8291:6881
- 8291:6881/udp
volumes:
- ./appdata/qbittorrent/config:/config
- ./data/torrents:/data/torrents
networks:
media:
ipv4_address: 10.0.30.102
###--- qBitmanage Image - qBittorrent manager - Used to run automated tasks for qBittorrent ---###
qbitmanage:
image: ghcr.io/stuffanthings/qbit_manage:latest
container_name: qbitmanage
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
UMASK: 002
TZ: Etc/UTC
QBT_RUN: false
QBT_SCHEDULE: 1440
QBT_CONFIG: config.yml
QBT_LOGFILE: activity.log
QBT_CROSS_SEED: false
QBT_RECHECK: false
QBT_CAT_UPDATE: false
QBT_TAG_UPDATE: false
QBT_REM_UNREGISTERED: false
QBT_REM_ORPHANED: false
QBT_TAG_TRACKER_ERROR: false
QBT_TAG_NOHARDLINKS: false
QBT_SHARE_LIMITS: false
QBT_SKIP_CLEANUP: false
QBT_DRY_RUN: false
QBT_LOG_LEVEL: INFO
QBT_DIVIDER: =
QBT_WIDTH: 100
volumes:
- /media/disk/exthdd01/extarrs/data/torrents:/data/torrents
- ./appdata/qbitmanage/config:/config
- ./appdata/qbittorrent/data/BT_backup:/torrentdir
networks:
media:
ipv4_address: 10.0.30.111
###--- SABnzbd Image - Download client - Used to download NZB from Usenet groups ---###
### This container has been disabled since you need a premium Usenet provider subscription to download files. ###
### Enable this container if you found a free provider or want to pay for usenet ###
# sabnzbd:
# image: ghcr.io/hotio/sabnzbd:latest
# container_name: sabnzbd
# restart: unless-stopped
# environment:
# PUID: 1000
# PGID: 1000
# TZ: Etc/UTC
# volumes:
# - /etc/localtime:/etc/localtime:ro
# - ./appdata/sabnzbd/config:/config
# - /media/disk/exthdd01/extarrs/data/usenet:/data/usenet:rw
# ports:
# - 8292:8080
# - 8293:9090
# logging:
# driver: json-file
# networks:
# media:
# ipv4_address: 10.0.30.103
###--- Prowlarr Image - Index and Search Management for "ARR" apps ---###
prowlarr:
image: ghcr.io/hotio/prowlarr:latest
container_name: prowlarr
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
volumes:
- ./appdata/prowlarr/config:/config
ports:
- "8113:9696"
logging:
driver: json-file
networks:
media:
ipv4_address: 10.0.30.104
###--- Radarr Image - Library Manager for Movie content management ---###
### Do not use this container to download 4K Movie content. Enable container below to have seperate instance just for 4K Movie content ###
radarr:
image: ghcr.io/hotio/radarr:latest
container_name: radarr
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
volumes:
- ./appdata/radarr/config:/config
- /media/disk/exthdd01/extarrs/data:/data
ports:
- 8114:7878
logging:
driver: json-file
networks:
media:
ipv4_address: 10.0.30.105
###--- Radarr 4K Image - Library Manager for Movie 4K content management ---###
### Enable this container to get seperate instance for 4K Movie content ###
# radarr4k:
# image: ghcr.io/hotio/radarr:latest
# container_name: radarr4k
# restart: unless-stopped
# environment:
# PUID: 1000
# PGID: 1000
# TZ: Etc/UTC
# volumes:
# - ./appdata/radarr4k/config:/config
# - /media/disk/exthdd01/extarrs/data:/data
# ports:
# - 8344:7878
# logging:
# driver: json-file
# networks:
# media:
# ipv4_address: 10.0.30.115
###--- Sonarr Image - Library Manager for TV Show / Series / Anime content management ---###
### Do not use this container to download 4K TV content. Enable container below to have seperate instance just for 4K TV content ###
sonarr:
image: ghcr.io/hotio/sonarr:latest
container_name: sonarr
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
volumes:
- ./appdata/sonarr/config:/config
- /media/disk/exthdd01/extarrs/data:/data
ports:
- 8115:8989
logging:
driver: json-file
networks:
media:
ipv4_address: 10.0.30.106
###--- Sonarr 4K Image - Library Manager for 4K TV Show / Series / Anime content management ---###
### Enable this container to get seperate instance for 4K TV content ###
# sonarr4k:
# image: ghcr.io/hotio/sonarr:latest
# container_name: sonarr
# restart: unless-stopped
# environment:
# PUID: 1000
# PGID: 1000
# TZ: Etc/UTC
# volumes:
# - ./appdata/sonarr4k/config:/config
# - /media/disk/exthdd01/extarrs/data:/data
# ports:
# - 8345:8989
# logging:
# driver: json-file
# networks:
# media:
# ipv4_address: 10.0.30.116
###--- Bazarr Image - Library Manager for Subtitle management ---###
bazarr:
image: ghcr.io/hotio/bazarr:latest
container_name: bazarr
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
volumes:
- /etc/localtime:/etc/localtime:ro
- ./appdata/bazarr/config:/config
- /media/disk/exthdd01/extarrs/data:/data
ports:
- 8116:6767
logging:
driver: json-file
networks:
media:
ipv4_address: 10.0.30.107
###--- Lidarr Image - Library Manager for Music content management ---###
lidarr:
image: ghcr.io/hotio/lidarr:latest
container_name: lidarr
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
volumes:
- /etc/localtime:/etc/localtime:ro
- ./appdata/lidarr/config:/config
- /media/disk/exthdd01/extarrs/data:/data
ports:
- 8117:8686
logging:
driver: json-file
networks:
media:
ipv4_address: 10.0.30.108
###--- Readarr Image - Library Manager for Books / Epubs content management ---###
readarr:
image: ghcr.io/hotio/readarr:latest
container_name: readarr
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
volumes:
- /etc/localtime:/etc/localtime:ro
- ./appdata/readarr/config:/config
- /media/disk/exthdd01/extarrs/data:/data
ports:
- 8118:8787
logging:
driver: json-file
networks:
media:
ipv4_address: 10.0.30.109
###--- Unpackerr Image - Extracts downloads for Radarr, Sonarr, Lidarr, and Readarr - Deletes extracted files after import. ---###
unpackerr:
image: ghcr.io/hotio/unpackerr:latest
container_name: unpackerr
restart: unless-stopped
volumes:
- ./appdata/unpackerr/config:/config
- /media/disk/exthdd01/extarrs/data/torrents:/data/torrents
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
UN_LOG_FILE: /data/torrents/unpackerr.log
UN_SONARR_0_URL: http://sonarr:8989/sonarr
UN_SONARR_0_API_KEY: IMPORT_SONARR_API_KEY_HERE
# UN_SONARR_1_URL: http://sonarr4k:8989/sonarr
# UN_SONARR_1_API_KEY: IMPORT_SONARR4k_API_KEY_HERE
UN_RADARR_0_URL: http://radarr:7878/radarr
UN_RADARR_0_API_KEY: IMPORT_RADARR_API_KEY_HERE
# UN_RADARR_1_URL: http://radarr4k:7878/radarr
# UN_RADARR_1_API_KEY: IMPORT_RADARR4k_API_KEY_HERE
UN_LIDARR_0_URL: http://lidarr:8686/lidarr
UN_LIDARR_0_API_KEY: IMPORT_LIDARR_API_KEY_HERE
UN_READARR_0_URL: http://readarr:8787/readarr
UN_READARR_0_API_KEY: IMPORT_READARR_API_KEY_HERE
security_opt:
- no-new-privileges:true
networks:
media:
ipv4_address: 10.0.30.110
networks:
media:
driver: bridge
attachable: true
internal: false
ipam:
config:
- subnet: 10.0.30.0/24 # CHANGE THE SUBNET TO YOUR OWN PREFERRED RANGE!!!
gateway: 10.0.30.1 # GATEWAY GOES WITH THE SUBNET!!!
docker compose up -d && until docker logs qbittorrent 2>&1 | grep -q "The WebUI administrator password was not set. A temporary password is provided for this session:"; do sleep 1; done && echo -e "\e[32mThe password for qBittorrent WebUI is: $(docker logs qbittorrent 2>&1 | grep "The WebUI administrator password was not set. A temporary password is provided for this session:" | awk '{print $NF}')\e[0m"
cd /home/myusername/docker/arrs/data/torrents
mkdir -p /themes/qbittorrent && git clone https://gitlab.itgoit.nl/code-house/qbitnightwalker.git themes/qbittorrent/nightwalker
/data/torrents/themes/qbittorrent/nightwalker
This group is the All-in-One for your productive environment. These will have the following services:
cd /home/myusername/docker
mkdir glpi && cd "$_"
cd /home/myusername/docker
mkdir productivity && cd "$_"
version: "3.8"
services:
# --- Dolibarr Image
web:
image: dolibarr/dolibarr:latest
container_name: dolibarr
environment:
DOLI_DB_HOST: mariadb
DOLI_DB_NAME: dolibarr
DOLI_DB_USER: dolibarr
DOLI_DB_PASSWORD: dolibarr!
DOLI_ADMIN_LOGIN: admin
DOLI_ADMIN_PASSWORD: dolibarr
DOLI_URL_ROOT: http://localhost
PHP_INI_DATE_TIMEZONE: Etc/UTC
volumes:
- ./dolibarr/documents:/var/www/documents
- ./dolibarr/html/custom:/var/www/html/custom
ports:
- 8200:80
restart: unless-stopped
depends_on:
- mariadb
networks:
- productivity
# --- Dolibarr MariaDB
mariadb:
image: mariadb:latest
container_name: dolibarr-mariadb
environment:
MYSQL_DATABASE: dolibarr
MYSQL_USER: dolibarr
MYSQL_PASSWORD: dolibarr!
MYSQL_ROOT_PASSWORD: dolibarr!!
volumes:
- ./dolibarr/db:/var/lib/mysql
networks:
- productivity
# --- GLPI MariaDB
db:
image: mariadb:10.7
container_name: glpi-mariadb
environment:
MARIADB_DATABASE: glpi
MARIADB_USER: glpi
MARIADB_PASSWORD: glpi!
MARIADB_ROOT_PASSWORD: glpi!!
volumes:
- ./glpi/db:/var/lib/mysql
restart: unless-stopped
networks:
- productivity
# --- GLPI Image
glpi:
image: diouxx/glpi
container_name: glpi
environment:
TIMEZONE: Etc/UTC
volumes:
- ./glpi/data:/var/www/html/glpi
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- 8222:80
restart: unless-stopped
networks:
- productivity
# --- Wiki.js Image
wiki:
image: ghcr.io/requarks/wiki:2
container_name: wikijs
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijs!
DB_NAME: wiki
volumes:
- ./wikijs/data/content:/wiki/data/content
- ./wikijs/config:/config
ports:
- 8141:3000
restart: unless-stopped
depends_on:
- db
networks:
- productivity
# --- Wiki.js postgres
db:
image: postgres:11-alpine
container_name: wikijs-postgres
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: wikijs!
POSTGRES_USER: wikijs
logging:
driver: none
volumes:
- ./wikijs/db:/var/lib/postgresql/data
restart: unless-stopped
networks:
- productivity
# --- LinkAce Image with PHP 7.4 and nginx
app:
image: linkace/linkace:simple
container_name: linkace
volumes:
- ./linkace/logs:/app/storage/logs
- ./.env:/app/.env
ports:
- 8136:80
restart: unless-stopped
depends_on:
- db
networks:
- productivity
# --- Linkace MariaDB
db:
image: mariadb:10.5
container_name: linkace-mariadb
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ${DB_DATABASE}
volumes:
- ./linkace/mysql:/var/lib/mysql
restart: unless-stopped
networks:
- productivity
# --- Seafile MariaDB
seafile-db:
image: mariadb:latest
container_name: seafile-mariadb
environment:
MYSQL_ROOT_PASSWORD: seafile!
MYSQL_LOG_CONSOLE: true
volumes:
- ./seafile/db:/var/lib/mysql
ports:
- "9308:3306"
restart: unless-stopped
networks:
- productivity
# --- Seafile Image
seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
environment:
DB_HOST: seafile-db
DB_ROOT_PASSWD: seafile!
TIME_ZONE: Etc/UTC
SEAFILE_ADMIN_EMAIL: [email protected]
SEAFILE_ADMIN_PASSWORD: seafile
SEAFILE_SERVER_LETSENCRYPT: false
SEAFILE_SERVER_HOSTNAME: seafile.DOMAIN.COM
volumes:
- ./seafile/data:/shared
ports:
- "8240:80"
restart: unless-stopped
depends_on:
- seafile-db
- seafile-memcached
networks:
- productivity
# --- Seafile memcached
seafile-memcached:
image: memcached:1.6
container_name: seafile-memcached
command: memcached -m 256
restart: unless-stopped
networks:
- productivity
# --- Seafile OnlyOffice-postgresql
onlyoffice-postgresql:
image: postgres:12
container_name: onlyoffice-postgresql
environment:
POSTGRES_DB: onlyoffice
POSTGRES_USER: onlyoffice
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- ./onlyoffice/db:/var/lib/postgresql
ports:
- "9310:5432"
restart: unless-stopped
networks:
- productivity
# --- Seafile OnlyOffice image
onlyoffice-documentserver:
image: onlyoffice/documentserver:latest
container_name: onlyoffice-ds
environment:
DB_TYPE: postgres
DB_HOST: onlyoffice-postgresql
DB_PORT: 5432
DB_USER: onlyoffice
DB_NAME: onlyoffice
AMQP_URI: amqp://guest:guest@onlyoffice-rabbitmq
# Uncomment strings below to enable the JSON Web Token validation.
JWT_ENABLED: true
JWT_SECRET: onlyoffice
JWT_HEADER: Authorization
JWT_IN_BODY: true
volumes:
# Optional: see https://manual.seafile.com/deploy/only_office/
#- ./onlyoffice/local.json:/etc/onlyoffice/documentserver/local.json
#- ./onlyoffice/local-production-linux.json:/etc/onlyoffice/documentserver/local-production-linux.json
- ./onlyoffice/data:/var/www/onlyoffice/Data
- ./onlyoffice/lib:/var/lib/onlyoffice
- ./onlyoffice/logs:/var/log/onlyoffice
ports:
- "8243:80"
restart: unless-stopped
networks:
- productivity
# --- Seafile OnlyOffice rabbitmq
onlyoffice-rabbitmq:
image: rabbitmq:latest
container_name: onlyoffice-rabbitmq
volumes:
- ./onlyoffice/rabbitmq/data:/var/lib/rabbitmq/
- ./onlyoffice/rabbitmq/log:/var/log/rabbitmq
restart: unless-stopped
networks:
- productivity
# --- Pwndrop Image
pwndrop:
image: lscr.io/linuxserver/pwndrop:latest
container_name: pwndrop
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
SECRET_PATH: /pwndrop # optional
volumes:
- ./pwndrop/config:/config
ports:
- 8133:8080
restart: unless-stopped
networks:
- productivity
# --- GitLab Runner Image
gitlab-runner:
image: gitlab/gitlab-runner:alpine
container_name: gitlab-runner
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./gitlab/gitlab-runner:/etc/gitlab-runner
restart: unless-stopped
depends_on:
- web
networks:
- productivity
# --- GitLab Image
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: gitlab-ce
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
# Add any other gitlab.rb configuration here, each on its own line
volumes:
- ./gitlab/config:/etc/gitlab
- ./gitlab/logs:/var/log/gitlab
- ./gitlab/data:/var/opt/gitlab
ports:
- '8225:80'
- '8226:443'
restart: unless-stopped
networks:
- productivity
networks:
productivity:
driver: bridge
attachable: true
internal: false
ipam:
config:
- subnet: 172.40.0.0/16 # CHANGE THE SUBNET TO YOUR OWN PREFERRED RANGE!!!
gateway: 172.40.0.1 # GATEWAY GOES WITH THE SUBNET!!!
docker compose up -d
To get the admin password for GitLab use the following command:
docker exec -it gitlab-ce grep 'Password:' /etc/gitlab/initial_root_password
This group is the All-in-One for your network monitoring. These will have the following services:
cd /home/myusername/docker
mkdir prometheus && cd "$_"
nano prometheus.yml
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
# external_labels:
# monitor: 'codelab-monitor'
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
# Example job for node_exporter
# - job_name: 'node_exporter'
# static_configs:
# - targets: ['node_exporter:9100']
# Example job for cadvisor
# - job_name: 'cadvisor'
# static_configs:
# - targets: ['cadvisor:8080']
cd /home/myusername/docker
mkdir netmonitor && cd "$_"
Do not forget to change myusername to your linux user name
version: "3.8"
# --- Uptime Kuma Image
services:
uptimekuma:
image: louislam/uptime-kuma:latest
container_name: uptimekuma
volumes:
- /home/myusername/docker/uptime-kuma/data:/app/data
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "8160:3001"
restart: unless-stopped
networks:
- netmonitor
# --- Netdata Image
netdata:
image: netdata/netdata
container_name: netdata
# hostname: example.com # Optional set to fqdn of host
cap_add:
- SYS_PTRACE
security_opt:
- apparmor:unconfined
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /etc/os-release:/host/etc/os-release:ro
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
# - /home/myusername/docker/netdata/netdataconfig:/etc/netdata # Optional
# - /home/myusername/docker/netdata/netdatalib:/var/lib/netdata # Optional
# - /home/myusername/docker/netdata/netdatacache:/var/cache/netdata # Optional
ports:
- 8166:19999
restart: unless-stopped
networks:
- netmonitor
# --- Grafana Image
grafana:
image: grafana/grafana-oss:latest
container_name: grafana
volumes:
- /home/myusername/docker/grafana/data:/var/lib/grafana
ports:
- "8164:3000"
restart: unless-stopped
networks:
- netmonitor
# --- Prometheus Image
prometheus:
image: prom/prometheus:latest
container_name: prometheus
command:
- "--config.file=/etc/prometheus:"
volumes:
- /etc/prometheus:/etc/prometheus
- /home/myusername/docker/prometheus/data:/prometheus
ports:
- "8163:9090"
restart: unless-stopped
networks:
- netmonitor
# --- OpenSpeedTest Image
openspeedtest:
image: openspeedtest:latest
container_name: openspeedtest
ports:
- 8161:3000
- 8162:3001
restart: unless-stopped
networks:
- netmonitor
networks:
netmonitor:
driver: bridge
attachable: true
internal: false
ipam:
config:
- subnet: 172.50.0.0/16 # CHANGE THE SUBNET TO YOUR OWN PREFERRED RANGE!!!
gateway: 172.50.0.1 # GATEWAY GOES WITH THE SUBNET!!!
volumes:
grafana-data:
prometheus-data:
driver: local
docker compose up -d
This group is the All-in-One for your Remote Management. These will have the following services:
cd /home/myusername/docker
mkdir remotemgnt && cd "$_"
Do not forget to change myusername to your linux user name
version: "3.8"
# --- Portainer Image
services:
portainer:
image: portainer/portainer-ce:latest # For Business Edition use: portainer/portainer-ee:latest
container_name: portainer
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/myusername/docker/portainer:/data
ports:
- "8000:8000"
- "9000:9000"
restart: always
networks:
- remotemgnt
# --- Remotely Image
remotely:
image: immybot/remotely:latest
container_name: remotely
volumes:
- /home/myusername/docker/remotely/data:/remotely-data
ports:
- 8215:5000
restart: unless-stopped
networks:
- remotemgnt
# --- Guacamole Image
guacamole:
image: abesnier/guacamole # The image didnt got updated --> jwetzell/guacamole
container_name: guacamole
volumes:
- home/myusername/docker/guacamole/postgres:/config
ports:
- 8210:8080
restart: unless-stopped
networks:
- remotemgnt
networks:
remotemgnt:
driver: bridge
attachable: true
internal: false
ipam:
config:
- subnet: 172.60.0.0/16 # CHANGE THE SUBNET TO YOUR OWN PREFERRED RANGE!!!
gateway: 172.60.0.1 # GATEWAY GOES WITH THE SUBNET!!!
volumes:
portainer_data: