commit 277f8544ee6674888e60965fed3d98584d854333 Author: Dominik Date: Fri May 10 17:53:43 2024 +0200 14 docker compose initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e254cee --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ + +filebrowser/ +hortusfox-web/ +linkwarden/ +volumes/ +birdnet/ +mariadb-docker/mysql/ +system-monitoring/influxdb/ +uptimekuma/uptime-kuma-data/ +home-assistant/homeassistant_config/ +jdownloader2/config/ +jdownloader2/downloads/ +code-server/config/ +system-monitoring.zip +portainer/portainer_data/ +plex-radarr-transmission/plex/ +plex-radarr-transmission/radarr/ +plex-radarr-transmission/transmission/ + diff --git a/README.md b/README.md new file mode 100644 index 0000000..19f0887 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# Sammlung an simplen Docker Compose + +## Services + +| Service | Port | +|-|-| +| [Cloudcmd](https://cloudcmd.io/) | [8000](http://localhost:8000) | +| [Code Server](https://github.com/linuxserver/docker-code-server) | [8443](http://localhost:8443) | +| [Gramps Web](https://www.grampsweb.org/) | [81](http://localhost:81) | +| [Home Assistant](https://www.home-assistant.io/) | [8123](http://localhost:8123) | +| [Homepage](https://gethomepage.dev) | [3045](http://localhost:3045) | +| [JDownloader2](https://jdownloader.org/jdownloader2) | [5800](http://localhost:5800) | +| [Adminer](https://www.adminer.org/) | [8081](http://localhost:8081) | +| [MariaDB](https://mariadb.org/) | 3306 | +| [Nextcloud](https://github.com/nextcloud/docker) | [8080](http://localhost:8080) | +| [Transmission](https://github.com/linuxserver/docker-transmission) | [9091](http://localhost:9091) | +| [Radarr](https://github.com/linuxserver/docker-radarr) | [7878](http://localhost:7878) | +| [Plex](https://github.com/linuxserver/docker-plex) | [32400](http://localhost:32400) | +| [Portainer](https://www.portainer.io/) | [9000](http://localhost:9000) | +| [InfluxDB](https://www.influxdata.com/) | [8086](http://localhost:8086) | +| [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) | | +| [traefik](https://doc.traefik.io/traefik/) | [8082](http://localhost:8082) 80 443| +| [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [3001](http://localhost:3001) | +| [Watchtower](https://containrrr.dev/watchtower/) | | + +![homepage](homepage.jpg) diff --git a/cloudcmd/docker-compose.yml b/cloudcmd/docker-compose.yml new file mode 100644 index 0000000..b1f101c --- /dev/null +++ b/cloudcmd/docker-compose.yml @@ -0,0 +1,15 @@ +# https://cloudcmd.io/ + +version: '2' + +name: cloudcmd-stack + +services: + cloudcmd: + container_name: cloudcmd + ports: + - 8000:8000 + volumes: + - ~:/root + - /:/mnt/fs + image: coderaiser/cloudcmd diff --git a/code-server/docker-compose.yml b/code-server/docker-compose.yml new file mode 100644 index 0000000..3c38494 --- /dev/null +++ b/code-server/docker-compose.yml @@ -0,0 +1,22 @@ +# https://github.com/linuxserver/docker-code-server + +name: code-server +services: + code-server: + image: lscr.io/linuxserver/code-server:latest + container_name: code-server + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Vienna + - PASSWORD=password #optional + - HASHED_PASSWORD= #optional + - SUDO_PASSWORD=password #optional + - SUDO_PASSWORD_HASH= #optional + #- PROXY_DOMAIN=code-server.my.domain #optional + - DEFAULT_WORKSPACE=/config/workspace #optional + volumes: + - ./config:/config + ports: + - 8443:8443 + restart: unless-stopped diff --git a/gramps-web/docker-compose.yml b/gramps-web/docker-compose.yml new file mode 100644 index 0000000..85c3598 --- /dev/null +++ b/gramps-web/docker-compose.yml @@ -0,0 +1,52 @@ +# https://www.grampsweb.org/ + +version: "3.7" + +name: gramps-web + +services: + grampsweb: &grampsweb + container_name: grampsweb + image: ghcr.io/gramps-project/grampsweb:latest + restart: always + ports: + - "81:5000" # host:docker + environment: + GRAMPSWEB_TREE: "Gramps Web" # will create a new tree if not exists + GRAMPSWEB_CELERY_CONFIG__broker_url: "redis://grampsweb_redis:6379/0" + GRAMPSWEB_CELERY_CONFIG__result_backend: "redis://grampsweb_redis:6379/0" + GRAMPSWEB_RATELIMIT_STORAGE_URI: redis://grampsweb_redis:6379/1 + depends_on: + - grampsweb_redis + volumes: + - gramps_users:/app/users # persist user database + - gramps_index:/app/indexdir # persist search index + - gramps_thumb_cache:/app/thumbnail_cache # persist thumbnails + - gramps_cache:/app/cache # persist export and report caches + - gramps_secret:/app/secret # persist flask secret + - gramps_db:/root/.gramps/grampsdb # persist Gramps database + - gramps_media:/app/media # persist media files + - gramps_tmp:/tmp + + grampsweb_celery: + <<: *grampsweb # YAML merge key copying the entire grampsweb service config + ports: [] + container_name: grampsweb_celery + depends_on: + - grampsweb_redis + command: celery -A gramps_webapi.celery worker --loglevel=INFO + + grampsweb_redis: + image: redis:7.2.4-alpine + container_name: grampsweb_redis + restart: always + +volumes: + gramps_users: + gramps_index: + gramps_thumb_cache: + gramps_cache: + gramps_secret: + gramps_db: + gramps_media: + gramps_tmp: diff --git a/home-assistant/docker-compose.yml b/home-assistant/docker-compose.yml new file mode 100644 index 0000000..ea832b1 --- /dev/null +++ b/home-assistant/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3.5' +name: homeassistant +services: + homeassistant: + container_name: homeassistant + restart: unless-stopped + image: ghcr.io/home-assistant/home-assistant:stable + ports: + - "8123:8123" + environment: + - TZ=Europe/Vienna + volumes: + - ./homeassistant_config:/config diff --git a/homepage.jpg b/homepage.jpg new file mode 100644 index 0000000..f074a28 Binary files /dev/null and b/homepage.jpg differ diff --git a/homepage/docker-compose.yml b/homepage/docker-compose.yml new file mode 100644 index 0000000..3c0e04c --- /dev/null +++ b/homepage/docker-compose.yml @@ -0,0 +1,16 @@ +# https://gethomepage.dev + +version: '3.3' + +name: homepage + +services: + homepage: + image: ghcr.io/gethomepage/homepage:latest + container_name: homepage + ports: + - 3045:3000 + volumes: + - ./homepage-config:/app/config # Make sure your local config directory exists + - ./images:/app/public/images + - /var/run/docker.sock:/var/run/docker.sock:ro # (optional) For docker integrations diff --git a/homepage/homepage-config/bookmarks.yaml b/homepage/homepage-config/bookmarks.yaml new file mode 100644 index 0000000..755c128 --- /dev/null +++ b/homepage/homepage-config/bookmarks.yaml @@ -0,0 +1,10 @@ +--- +# For configuration options and examples, please see: +# https://gethomepage.dev/latest/configs/bookmarks + +- Developer: + - Docker Projects Github: + - abbr: GH + href: https://github.com/dominikhoebert/docker-projects + + diff --git a/homepage/homepage-config/custom.css b/homepage/homepage-config/custom.css new file mode 100644 index 0000000..e69de29 diff --git a/homepage/homepage-config/custom.js b/homepage/homepage-config/custom.js new file mode 100644 index 0000000..e69de29 diff --git a/homepage/homepage-config/docker.yaml b/homepage/homepage-config/docker.yaml new file mode 100644 index 0000000..245c18a --- /dev/null +++ b/homepage/homepage-config/docker.yaml @@ -0,0 +1,10 @@ +--- +# For configuration options and examples, please see: +# https://gethomepage.dev/latest/configs/docker/ + +# my-docker: +# host: 127.0.0.1 +# port: 2375 + +my-docker: + socket: /var/run/docker.sock diff --git a/homepage/homepage-config/kubernetes.yaml b/homepage/homepage-config/kubernetes.yaml new file mode 100644 index 0000000..aca6e82 --- /dev/null +++ b/homepage/homepage-config/kubernetes.yaml @@ -0,0 +1,2 @@ +--- +# sample kubernetes config diff --git a/homepage/homepage-config/logs/homepage.log b/homepage/homepage-config/logs/homepage.log new file mode 100644 index 0000000..512add3 --- /dev/null +++ b/homepage/homepage-config/logs/homepage.log @@ -0,0 +1,353 @@ +[2024-05-10T12:47:33.196Z] info: docker.yaml was copied to the config folder +[2024-05-10T12:47:33.206Z] info: services.yaml was copied to the config folder +[2024-05-10T12:47:33.210Z] info: bookmarks.yaml was copied to the config folder +[2024-05-10T12:47:33.230Z] info: widgets.yaml was copied to the config folder +[2024-05-10T12:47:33.241Z] info: custom.css was copied to the config folder +[2024-05-10T12:47:33.245Z] info: custom.js was copied to the config folder +[2024-05-10T12:47:33.321Z] info: kubernetes.yaml was copied to the config folder +[2024-05-10T13:00:16.196Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:00:16.199Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:00:16.676Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:00:16.676Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:00:19.481Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:00:19.481Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:00:19.975Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:00:19.975Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:00:40.337Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:00:40.338Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:00:43.629Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:00:43.630Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:01:04.671Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:01:04.672Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:01:05.150Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:01:05.151Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:01:07.977Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:01:07.978Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:01:08.457Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:01:08.458Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:01:35.056Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:01:35.057Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:01:38.362Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:01:38.363Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:02:17.247Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:02:17.247Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:02:20.561Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:02:20.562Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:02:32.725Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:02:32.725Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:02:36.024Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:02:36.024Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:03:55.911Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:03:55.911Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:03:59.205Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:03:59.206Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:04:07.581Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:04:07.581Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:04:10.873Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:04:10.873Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:04:25.372Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:04:25.372Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T13:04:28.669Z] error: Error calling http://cloudcmd:8000/... +[2024-05-10T13:04:28.669Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND cloudcmd + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'cloudcmd' + } +] +[2024-05-10T14:22:10.680Z] error: Failed to load services.yaml, please check for errors +[2024-05-10T14:22:10.680Z] error: YAMLException: bad indentation of a sequence entry (6:16) + + 3 | # https://gethomepage.dev/latest/configs/services + 4 | + 5 | - Services + 6 | - Nextcloud: +--------------------^ + 7 | icon: nextcloud.png + 8 | href: http://localhost:8080 +[2024-05-10T14:22:10.856Z] error: Failed to load services.yaml, please check for errors +[2024-05-10T14:22:10.856Z] error: YAMLException: bad indentation of a sequence entry (6:16) + + 3 | # https://gethomepage.dev/latest/configs/services + 4 | + 5 | - Services + 6 | - Nextcloud: +--------------------^ + 7 | icon: nextcloud.png + 8 | href: http://localhost:8080 +[2024-05-10T14:22:11.387Z] error: Failed to load services.yaml, please check for errors +[2024-05-10T14:22:11.388Z] error: YAMLException: bad indentation of a sequence entry (6:16) + + 3 | # https://gethomepage.dev/latest/configs/services + 4 | + 5 | - Services + 6 | - Nextcloud: +--------------------^ + 7 | icon: nextcloud.png + 8 | href: http://localhost:8080 +[2024-05-10T14:22:24.166Z] error: Error calling http://nextcloud/... +[2024-05-10T14:22:24.166Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND nextcloud + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'nextcloud' + } +] +[2024-05-10T14:22:27.476Z] error: Error calling http://nextcloud/... +[2024-05-10T14:22:27.476Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND nextcloud + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'nextcloud' + } +] +[2024-05-10T14:26:43.572Z] error: Error calling http://nextcloud/... +[2024-05-10T14:26:43.572Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND nextcloud + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'nextcloud' + } +] +[2024-05-10T14:26:46.890Z] error: Error calling http://nextcloud/... +[2024-05-10T14:26:46.890Z] error: [ + 500, + Error: getaddrinfo ENOTFOUND nextcloud + at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: 'nextcloud' + } +] +[2024-05-10T15:16:57.507Z] error: Failed to load services.yaml, please check for errors +[2024-05-10T15:16:57.507Z] error: YAMLException: bad indentation of a sequence entry (143:13) + + 140 | container: cloudcmd + 141 | + 142 | - InfluxDB + 143 | icon: influxdb.png +-------------------^ + 144 | href: http://localhost:8086 + 145 | description: time-series database d ... +[2024-05-10T15:16:57.589Z] error: Failed to load services.yaml, please check for errors +[2024-05-10T15:16:57.590Z] error: YAMLException: bad indentation of a sequence entry (143:13) + + 140 | container: cloudcmd + 141 | + 142 | - InfluxDB + 143 | icon: influxdb.png +-------------------^ + 144 | href: http://localhost:8086 + 145 | description: time-series database d ... +[2024-05-10T15:16:58.030Z] error: Failed to load services.yaml, please check for errors +[2024-05-10T15:16:58.031Z] error: YAMLException: bad indentation of a sequence entry (143:13) + + 140 | container: cloudcmd + 141 | + 142 | - InfluxDB + 143 | icon: influxdb.png +-------------------^ + 144 | href: http://localhost:8086 + 145 | description: time-series database d ... diff --git a/homepage/homepage-config/services.yaml b/homepage/homepage-config/services.yaml new file mode 100644 index 0000000..79e691d --- /dev/null +++ b/homepage/homepage-config/services.yaml @@ -0,0 +1,172 @@ +--- +# For configuration options and examples, please see: +# https://gethomepage.dev/latest/configs/services + +- Media: + - Plex: + icon: plex.png + href: http://localhost:32400 + description: organize, stream, and share your personal media and discover new content from various sources + # siteMonitor: http://plex:32400 + server: my-docker + container: plex + # widget: + # type: plex + # url: + # key: + + - Radarr: + icon: radarr.png + href: http://localhost:7878 + description: download movies from various sources and formats + # siteMonitor: http://radarr:7878 + server: my-docker + container: radarr + # widget: + # type: radarr + # url: + # key: + # enableQueue: true + + - Transmission: + icon: transmission.png + href: http://localhost:9091 + description: cross-platform BitTorrent client that integrates with your operating system and behaves like a Mac program + #siteMonitor: http://192.168.1.3:9091 + server: my-docker + container: transmission + # widget: + # type: transmission + # url: + # username: + # password: + # rpcUrl: /transmission/ # Optional. Matches the value of "rpc-url" in your Transmission's settings.json file + +- Services: + - Nextcloud: + icon: nextcloud.png + href: http://localhost:8080 + description: self-hosted cloud storage and collaboration software that offers file access, talk, groupware and office integration + #siteMonitor: http://nextcloud:80 + server: my-docker + container: nextcloud + # widget: + # type: nextcloud + # url: + # username: + # password: + + - Home Assistant: + icon: home-assistant.png + href: http://localhost:8123 + description: versatile and trustworthy smart home hub that integrates with over 1000 brands and runs on various devices + #siteMonitor: http://homeassistant:8123 + server: my-docker + container: homeassistant + # widget: + # type: homeassistant + # url: http://homeassistant:8123 + # key: + # custom: + # - state: sensor.total_power + # - state: sensor.total_energy_today + # label: energy today + # - template: "{{ states.switch|selectattr('state','equalto','on')|list|length }}" + # label: switches on + # - state: weather.forecast_home + # label: wind speed + # value: "{attributes.wind_speed} {attributes.wind_speed_unit}" + + - Gramps-Web: + icon: mdi-family-tree + href: http://localhost:81 + description: web app for collaborative genealogy + #siteMonitor: http://grampsweb:5000 + server: my-docker + container: grampsweb + + + +- Tools: + - JDownloader: + icon: jdownloader.png + href: http://localhost:5800/ + description: free, open-source download management tool with a huge community that makes downloading as easy and fast as it should be + #siteMonitor: http://jdownloader:5800/ + server: my-docker + container: jdownloader + # widget: + # type: jdownloader + # username: "" + # password: "" + # client: + + - Adminer: + icon: adminer.png + href: http://localhost:8081 + description: database management in a single PHP file + #siteMonitor: http://adminer:8081 + server: my-docker + container: adminer + + - InfluxDB: + icon: influxdb.png + href: http://localhost:8086 + description: time-series database designed to handle high write and query loads + #siteMonitor: http://influxdb:8086 + server: my-docker + container: influxdb + + - Uptime Kuma: + icon: uptime-kuma.png + href: http://localhost:3001 + description: easy-to-use self-hosted monitoring tool + # siteMonitor: http://uptime-kuma:3001 + server: my-docker + container: uptime-kuma + # widget: + # type: uptimekuma + # url: + # slug: + +- Server Management: + - VS Code: + icon: code.png + href: http://localhost:8443 + description: VS Code on any machine and access it in the browser + #siteMonitor: http://code-server:8443 + server: my-docker + container: code-server + + - Portainer: + icon: portainer.png + href: http://localhost:9000 + description: versatile container management software that simplifies your secure adoption of containers + #siteMonitor: http://portainer:9000 + server: my-docker + container: portainer + # widget: + # type: portainer + # url: + # env: + # key: + + - CloudCMD: + icon: cloudcmd.png + href: http://localhost:8000 + description: file manager for the web. It includes a command-line console and a text editor + #siteMonitor: http://cloudcmd:8000 + server: my-docker + container: cloudcmd + + + - Traefik: + icon: traefik.png + href: http://localhost:8082 + description: open-source Edge Router that automatically discovers and routes requests to your services + # siteMonitor: http://traefik:8082 + server: my-docker + container: traefik + # widget: + # type: traefik + # url: \ No newline at end of file diff --git a/homepage/homepage-config/settings.yaml b/homepage/homepage-config/settings.yaml new file mode 100644 index 0000000..9a987bb --- /dev/null +++ b/homepage/homepage-config/settings.yaml @@ -0,0 +1,16 @@ +--- +# For configuration options and examples, please see: +# https://gethomepage.dev/latest/configs/settings + +providers: + openweathermap: openweathermapapikey + weatherapi: weatherapiapikey + +background: + image: images/neon-sun.jpg + blur: sm # sm, "", md, xl... see https://tailwindcss.com/docs/backdrop-blur + saturate: 300 # 0, 50, 100... see https://tailwindcss.com/docs/backdrop-saturate + brightness: 1 # 0, 50, 75... see https://tailwindcss.com/docs/backdrop-brightness + opacity: 80 # 0-100 + +showStats: true \ No newline at end of file diff --git a/homepage/homepage-config/widgets.yaml b/homepage/homepage-config/widgets.yaml new file mode 100644 index 0000000..cd025fe --- /dev/null +++ b/homepage/homepage-config/widgets.yaml @@ -0,0 +1,22 @@ +--- +# For configuration options and examples, please see: +# https://gethomepage.dev/latest/configs/service-widgets + +- resources: + cpu: true + memory: true + disk: / + +- search: + provider: duckduckgo + target: _blank + + +- datetime: + # 4 januari 2023 om 13:51:25 PST + locale: de + text_size: 4xl + format: + dateStyle: long + timeStyle: short + hourCycle: h23 \ No newline at end of file diff --git a/homepage/images/neon-sun.jpg b/homepage/images/neon-sun.jpg new file mode 100644 index 0000000..13842c5 Binary files /dev/null and b/homepage/images/neon-sun.jpg differ diff --git a/jdownloader2/docker-compose.yml b/jdownloader2/docker-compose.yml new file mode 100644 index 0000000..696915d --- /dev/null +++ b/jdownloader2/docker-compose.yml @@ -0,0 +1,13 @@ +# https://jdownloader.org/jdownloader2 + +version: '3' +name: jdownloader2 +services: + jdownloader-2: + container_name: jdownloader + image: jlesage/jdownloader-2 + ports: + - "5800:5800" + volumes: + - "./config:/config:rw" + - "./downloads:/output:rw" diff --git a/mariadb-docker/docker-compose.yml b/mariadb-docker/docker-compose.yml new file mode 100644 index 0000000..3d215dc --- /dev/null +++ b/mariadb-docker/docker-compose.yml @@ -0,0 +1,27 @@ +# https://www.adminer.org/ + +# Use root/example as user/password credentials + +version: '3.1' + +services: + + db: + image: mariadb + container_name: db + restart: always + ports: + - 3306:3306 + environment: + MARIADB_ROOT_PASSWORD: example + MARIADB_USER: example-user + MARIADB_PASSWORD: my_cool_secret + volumes: + - ./mysql:/var/lib/mysql + + adminer: + image: adminer + container_name: adminer + restart: always + ports: + - 8081:8080 diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml new file mode 100644 index 0000000..3652009 --- /dev/null +++ b/nextcloud/docker-compose.yml @@ -0,0 +1,39 @@ +# https://github.com/nextcloud/docker + +name: nextcloud + +version: '2' + +volumes: + nextcloud: + db: + + +services: + db: + image: mariadb:10.6 + restart: always + command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD=example + - MYSQL_PASSWORD=example + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + nextcloud: + image: nextcloud + container_name: nextcloud + restart: always + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + environment: + - MYSQL_PASSWORD=example + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + - MYSQL_HOST=db diff --git a/plex-radarr-transmission/docker-compose.yml b/plex-radarr-transmission/docker-compose.yml new file mode 100644 index 0000000..9218d06 --- /dev/null +++ b/plex-radarr-transmission/docker-compose.yml @@ -0,0 +1,60 @@ +name: plex-radarr-transmission + +# https://github.com/linuxserver/docker-transmission +services: + transmission: + image: lscr.io/linuxserver/transmission:latest + container_name: transmission + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + # - TRANSMISSION_WEB_HOME= #optional + # - USER= #optional + # - PASS= #optional + # - WHITELIST= #optional + # - PEERPORT= #optional + # - HOST_WHITELIST= #optional + volumes: + - ./transmission:/config + - ./downloads:/downloads + - ./watch:/watch + ports: + - 9091:9091 + - 51413:51413 + - 51413:51413/udp + restart: unless-stopped + + # https://github.com/linuxserver/docker-radarr + radarr: + image: lscr.io/linuxserver/radarr:latest + container_name: radarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + volumes: + - ./radarr:/config + - ./movies:/movies #optional + - ./downloads:/downloads #optional + ports: + - 7878:7878 + restart: unless-stopped + + # https://github.com/linuxserver/docker-plex + plex: + image: lscr.io/linuxserver/plex:latest + container_name: plex + ports: + - 32400:32400 + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + - VERSION=docker + - PLEX_CLAIM= #FILL ME IN!!! (claim token) https://www.plex.tv/claim/ + volumes: + - ./plex:/config + - ./tv:/tv + - ./movies:/movies + restart: unless-stopped diff --git a/portainer/docker-compose.yml b/portainer/docker-compose.yml new file mode 100644 index 0000000..9cac375 --- /dev/null +++ b/portainer/docker-compose.yml @@ -0,0 +1,16 @@ +# https://www.portainer.io/ + +version: '3.3' + +name: portainer + +services: + portainer: + container_name: 'portainer' + ports: + - '9000:9000' + volumes: + - '/var/run/docker.sock:/var/run/docker.sock' + - './portainer_data:/data' + image: portainer/portainer-ce:latest + restart: 'unless-stopped' diff --git a/system-monitoring/README.md b/system-monitoring/README.md new file mode 100644 index 0000000..94f9ff5 --- /dev/null +++ b/system-monitoring/README.md @@ -0,0 +1,8 @@ +# System monitoring using telegraf and influxdb + +1. Run the compose `docker-compose up -d` +2. Open [http://localhost:8086](http://localhost:8086) in the browser +3. Create a username and password, name your organization `tgm` and your first bucket `telegraf-bucket` +4. Choose quick start -> add data source -> Telegraf +5. Create a token and paste it in `telegraf/telegraf.conf` +6. Restart stack using `docker-compose up -d` diff --git a/system-monitoring/docker-compose.yaml b/system-monitoring/docker-compose.yaml new file mode 100644 index 0000000..0e08de6 --- /dev/null +++ b/system-monitoring/docker-compose.yaml @@ -0,0 +1,20 @@ +name: system-monitoring +services: + # https://www.influxdata.com/ + influxdb: + container_name: influxdb + ports: + - 8086:8086 + volumes: + - ./influxdb/data:/var/lib/influxdb2 + - ./influxdb/config:/etc/influxdb2 + restart: unless-stopped + image: influxdb:2.1.1 + # https://www.influxdata.com/time-series-platform/telegraf/ + telegraf: + container_name: telegraf + image: telegraf:1.25-alpine + depends_on: + - influxdb + volumes: + - ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro diff --git a/system-monitoring/telegraf/telegraf.conf b/system-monitoring/telegraf/telegraf.conf new file mode 100644 index 0000000..6e2dabb --- /dev/null +++ b/system-monitoring/telegraf/telegraf.conf @@ -0,0 +1,43 @@ + + [global_tags] + +[agent] + interval = "60s" + round_interval = true + metric_batch_size = 1000 + metric_buffer_limit = 10000 + collection_jitter = "0s" + flush_interval = "10s" + flush_jitter = "0s" + precision = "" + omit_hostname = false + +[[outputs.influxdb_v2]] + urls = ["http://influxdb:8086"] + token = "FILL_ME_IN_AFTER_CREATING" + organization = "tgm" + bucket = "telegraf-bucket" + + +[[inputs.cpu]] + percpu = true + totalcpu = true + collect_cpu_time = false + report_active = false + + +[[inputs.disk]] + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] + + +[[inputs.diskio]] + +[[inputs.kernel]] + +[[inputs.mem]] + +[[inputs.processes]] + +[[inputs.swap]] + +[[inputs.system]] \ No newline at end of file diff --git a/traefik/config/certs/acme.json b/traefik/config/certs/acme.json new file mode 100644 index 0000000..e69de29 diff --git a/traefik/config/traefik.yaml b/traefik/config/traefik.yaml new file mode 100644 index 0000000..a9ee256 --- /dev/null +++ b/traefik/config/traefik.yaml @@ -0,0 +1,100 @@ +global: + checkNewVersion: false + sendAnonymousUsage: false + +# -- (Optional) Change Log Level and Format here... +# - loglevels [DEBUG, INFO, WARNING, ERROR, CRITICAL] +# - format [common, json, logfmt] +# log: +# level: ERROR +# format: common +# filePath: /var/log/traefik/traefik.log + +# -- (Optional) Enable Accesslog and change Format here... +# - format [common, json, logfmt] +# accesslog: +# format: common +# filePath: /var/log/traefik/access.log + +# -- (Optional) Enable API and Dashboard here, don't do in production +api: + dashboard: true + insecure: true + +# -- Change EntryPoints here... +entryPoints: + web: + address: :80 + # -- (Optional) Redirect all HTTP to HTTPS + # http: + # redirections: + # entryPoint: + # to: websecure + # scheme: https + websecure: + address: :443 + # -- (Optional) Add custom Entrypoint + # custom: + # address: :8080 + +# -- Configure your CertificateResolver here... +# certificatesResolvers: +# staging: +# acme: +# email: your-email@example.com +# storage: /etc/traefik/certs/acme.json +# caServer: "https://acme-staging-v02.api.letsencrypt.org/directory" +# -- (Optional) Remove this section, when using DNS Challenge +# httpChallenge: +# entryPoint: web +# -- (Optional) Configure DNS Challenge +# dnsChallenge: +# provider: your-resolver (e.g. cloudflare) +# resolvers: +# - "1.1.1.1:53" +# - "8.8.8.8:53" +# production: +# acme: +# email: your-email@example.com +# storage: /etc/traefik/certs/acme.json +# caServer: "https://acme-v02.api.letsencrypt.org/directory" +# -- (Optional) Remove this section, when using DNS Challenge +# httpChallenge: +# entryPoint: web +# -- (Optional) Configure DNS Challenge +# dnsChallenge: +# provider: your-resolver (e.g. cloudflare) +# resolvers: +# - "1.1.1.1:53" +# - "8.8.8.8:53" +certificatesResolvers: + dns-cloudflare: + acme: + email: test@example.com + storage: /etc/traefik/certs/acme.json + dnsChallenge: + provider: cloudflare + delayBeforeCheck: 0 +# -- (Optional) Disable TLS Cert verification check +# serversTransport: +# insecureSkipVerify: true + +# -- (Optional) Overwrite Default Certificates +# tls: +# stores: +# default: +# defaultCertificate: +# certFile: /etc/traefik/certs/cert.pem +# keyFile: /etc/traefik/certs/cert-key.pem +# -- (Optional) Disable TLS version 1.0 and 1.1 +# options: +# default: +# minVersion: VersionTLS12 + +providers: + docker: + # -- (Optional) Enable this, if you want to expose all containers automatically + exposedByDefault: false + file: + directory: /etc/traefik + watch: true \ No newline at end of file diff --git a/traefik/docker-compose.yml b/traefik/docker-compose.yml new file mode 100644 index 0000000..b10b8d5 --- /dev/null +++ b/traefik/docker-compose.yml @@ -0,0 +1,24 @@ +networks: + traefik-network: + + # https://doc.traefik.io/traefik/ +services: + traefik: + image: docker.io/library/traefik:2.11.2 + container_name: traefik + ports: + - 80:80 + - 443:443 + # -- (Optional) Enable Dashboard, don't do in production + - 8082:8080 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - ./config:/etc/traefik + # -- (Optional) When using Cloudflare as Cert Resolver + environment: + - CF_API_EMAIL=xxx@example.com + - CF_DNS_API_TOKEN=xxx + # -- (Optional) When using a custom network + networks: + - traefik-network + restart: unless-stopped diff --git a/uptimekuma/docker-compose.yml b/uptimekuma/docker-compose.yml new file mode 100644 index 0000000..dac9109 --- /dev/null +++ b/uptimekuma/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3.3' +#https://github.com/louislam/uptime-kuma +services: + uptime-kuma: + image: louislam/uptime-kuma:latest + container_name: uptime-kuma + volumes: + - ./uptime-kuma-data:/app/data + - /var/run/docker.sock:/var/run/docker.sock + ports: + - 3001:3001 + restart: always diff --git a/watchtower/docker-compose.yml b/watchtower/docker-compose.yml new file mode 100644 index 0000000..5522da6 --- /dev/null +++ b/watchtower/docker-compose.yml @@ -0,0 +1,14 @@ +# https://containrrr.dev/watchtower/ + +# Watchtower is a container that watches for changes in other containers and automatically updates them. +# This is useful for keeping your containers up-to-date with the latest versions of their images. + +name: watchtower + +services: + watchtower: + image: containrrr/watchtower + container_name: watchtower + volumes: + - /var/run/docker.sock:/var/run/docker.sock + command: --schedule "0 4 * * *"