Initial commit

This commit is contained in:
2023-09-09 14:53:02 +02:00
commit e0ee091a7b
33 changed files with 788 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#CYBERCHEF_CONTAINER_NAME=CyberChef
#CYBERCHEF_TAG=latest
#CYBERCHEF_PORT=8000
+10
View File
@@ -0,0 +1,10 @@
services:
# CyberChef
cyberchef:
container_name: ${CYBERCHEF_CONTAINER_NAME:-CyberChef}
image: mpepping/cyberchef:${CYBERCHEF_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: curl -f http://localhost:8000/ || exit 1
ports:
- ${CYBERCHEF_PORT:-8000}:8000
+37
View File
@@ -0,0 +1,37 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#SYNOLOGY_VOLUME=volume1
#STACK_NAME=domotica
#UID=1024
#GID=101
#TZ=Europe/Amsterdam
#HOMEASSISTANT_CONTAINER_NAME=HomeAssistant
#HOMEASSISTANT_TAG=latest
#ZIGBEE2MQTT_CONTAINER_NAME=Zigbee2mqtt
#ZIGBEE2MQTT_TAG=latest
#NODERED_CONTAINER_NAME=NodeRed
#NODERED_TAG=latest
#ECLIPSEMOSQUITTO_CONTAINER_NAME=EclipseMosquitto
#ECLIPSEMOSQUITTO_TAG=latest
#INFLUXDB_CONTAINER_NAME=InfluxDB
#INFLUXDB_TAG=latest
#TELEGRAF_CONTAINER_NAME=Telegraf
#TELEGRAF_TAG=latest
#TELEGRAF_CONF_INFLUXDBV2_URL=http://localhost:8086
TELEGRAF_CONF_INFLUXDBV2_TOKEN=
TELEGRAF_CONF_INFLUXDBV2_ORGANIZATION=
TELEGRAF_CONF_INFLUXDBV2_BUCKET=
#GRAFANA_CONTAINER_NAME=Grafana
#GRAFANA_TAG=latest
#GRAFANA_SECURITY_ALLOW_EMBEDDING=true
#ESPHOME_CONTAINER_NAME=ESPHome
#ESPHOME_TAG=latest
@@ -0,0 +1,30 @@
[agent]
interval = "10s"
round_interval = true
metric_batch_size = 1000
metric_buffer_limit = 10000
collection_jitter = "0s"
flush_interval = "10s"
flush_jitter = "0s"
precision = ""
hostname = ""
omit_hostname = false
[[outputs.influxdb_v2]]
urls = ["$TELEGRAF_CONF_INFLUXDBV2_URL"]
token = "$TELEGRAF_CONF_INFLUXDBV2_TOKEN"
organization = "$TELEGRAF_CONF_INFLUXDBV2_ORGANIZATION"
bucket = "$TELEGRAF_CONF_INFLUXDBV2_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.mem]]
[[inputs.net]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]
[[inputs.temp]]
+101
View File
@@ -0,0 +1,101 @@
services:
# Home Assistant
homeassistant:
container_name: ${HOMEASSISTANT_CONTAINER_NAME:-HomeAssistant}
image: homeassistant/home-assistant:${HOMEASSISTANT_TAG:-latest}
user: ${UID:-1024}:${GID:-101}
restart: ${RESTART:-unless-stopped}
network_mode: host
healthcheck:
test: curl -f http://localhost:8123/ || exit 1
environment:
TZ: ${TZ:-Europe/Amsterdam}
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${HOMEASSISTANT_CONTAINER_NAME:-HomeAssistant}/config:/config
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${HOMEASSISTANT_CONTAINER_NAME:-HomeAssistant}/media:/media
# Zigbee2mqtt
zigbee2mqtt:
container_name: ${ZIGBEE2MQTT_CONTAINER_NAME:-Zigbee2mqtt}
image: koenkk/zigbee2mqtt:${ZIGBEE2MQTT_TAG:-latest}
user: ${UID:-1024}:${GID:-101}
restart: ${RESTART:-unless-stopped}
network_mode: host
environment:
TZ: ${TZ:-Europe/Amsterdam}
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${ZIGBEE2MQTT_CONTAINER_NAME:-Zigbee2mqtt}/app/data:/app/data
# Node-RED
nodered:
container_name: ${NODERED_CONTAINER_NAME:-NodeRed}
image: nodered/node-red:${NODERED_TAG:-latest}
user: ${UID:-1024}:${GID:-101}
restart: ${RESTART:-unless-stopped}
network_mode: host
environment:
TZ: ${TZ:-Europe/Amsterdam}
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${NODERED_CONTAINER_NAME:-NodeRed}/data:/data
# Eclipse Mosquitto
eclipsemosquitto:
container_name: ${ECLIPSEMOSQUITTO_CONTAINER_NAME:-EclipseMosquitto}
image: eclipse-mosquitto:${ECLIPSEMOSQUITTO_TAG:-latest}
user: ${UID:-1024}:${GID:-101}
restart: ${RESTART:-unless-stopped}
network_mode: host
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${ECLIPSEMOSQUITTO_CONTAINER_NAME:-EclipseMosquitto}/mosquitto/config:/mosquitto/config
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${ECLIPSEMOSQUITTO_CONTAINER_NAME:-EclipseMosquitto}/mosquitto/data:/mosquitto/data
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${ECLIPSEMOSQUITTO_CONTAINER_NAME:-EclipseMosquitto}/mosquitto/log:/mosquitto/log
# InfluxDB
influxdb:
container_name: ${INFLUXDB_CONTAINER_NAME:-InfluxDB}
image: influxdb:${INFLUXDB_TAG:-latest}
user: ${UID:-1024}:${GID:-101}
restart: ${RESTART:-unless-stopped}
network_mode: host
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${INFLUXDB_CONTAINER_NAME:-InfluxDB}/var/lib/influxdb2:/var/lib/influxdb2
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${INFLUXDB_CONTAINER_NAME:-InfluxDB}/etc/influxdb2:/etc/influxdb2
# Telegraf
telegraf:
container_name: ${TELEGRAF_CONTAINER_NAME:-Telegraf}
image: telegraf:${TELEGRAF_TAG:-latest}
restart: ${RESTART:-unless-stopped}
network_mode: host
environment:
TELEGRAF_CONF_INFLUXDBV2_URL: ${TELEGRAF_CONF_INFLUXDBV2_URL:-http://localhost:8086}
TELEGRAF_CONF_INFLUXDBV2_TOKEN: $TELEGRAF_CONF_INFLUXDBV2_TOKEN
TELEGRAF_CONF_INFLUXDBV2_ORGANIZATION: $TELEGRAF_CONF_INFLUXDBV2_ORGANIZATION
TELEGRAF_CONF_INFLUXDBV2_BUCKET: $TELEGRAF_CONF_INFLUXDBV2_BUCKET
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${PROJECT_NAME:-domotica}/${TELEGRAF_CONTAINER_NAME:-Telegraf}/etc/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
# Grafana
grafana:
container_name: ${GRAFANA_CONTAINER_NAME:-Grafana}
image: grafana/grafana:${GRAFANA_TAG:-latest}
user: ${UID:-1024}:${GID:-101}
restart: ${RESTART:-unless-stopped}
network_mode: host
healthcheck:
test: curl -f http://localhost:3000/ || exit 1
environment:
GF_SECURITY_ALLOW_EMBEDDING: ${GRAFANA_SECURITY_ALLOW_EMBEDDING:-true}
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${GRAFANA_CONTAINER_NAME:-Grafana}/var/lib/grafana:/var/lib/grafana
# ESPHome
esphome:
container_name: ${ESPHOME_CONTAINER_NAME:-ESPHome}
image: esphome/esphome:${ESPHOME_TAG:-latest}
restart: ${RESTART:-unless-stopped}
network_mode: host
healthcheck:
test: curl -f http://localhost:6052/ || exit 1
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-domotica}/${ESPHOME_CONTAINER_NAME:-ESPHome}/config:/config
+157
View File
@@ -0,0 +1,157 @@
# domotica
This project/stack consists of multiple software which combined create my domotica project/stack.
## Installation using Synology Container Manager
### Untested, but should work with
* Synology DS1019+ running DSM DSM 7.2-64570 Update 1;
* Container Manager from Synology Package Center version 20.10.23-1413;
* Home Assistant 2023.9;
* Zigbee2mqtt 1.33.0;
* Node-RED 3.1.0-16;
* Eclipse Mosquitto 2.0.17;
* InfluxDB 2.7.1
* Telegraf 1.27.4;
* Grafana 10.1.1;
* ESPHome 2023.8.
### Installation steps
* Within your docker folder (/volume1/docker) create a folder named: domotica
* Move the following files to that newly created folder
* compose.yml
* .env.sample
* Rename .env.sample to .env
* Change the environment variables in the file .env as you see fit (don't forget to remove the # in front of the row you want to use)
* Create the folowing folders under /volume1/docker/domotica
* HomeAssistant/config
* HomeAssistant/media
* Zigbee2mqtt/app/data
* NodeRed/data
* EclipseMosquitto/mosquitto/config
* EclipseMosquitto/mosquitto/data
* EclipseMosquitto/mosquitto/log
* InfluxDB/var/lib/influxdb2
* Grafana/var/lib/grafana
* ESPHome/config
* Copy the following file from the repository
* Telegraf/etc/telegraf/telegraf.conf, copy to: Telegraf/etc/telegraf
* Open Container Manager via Synology DiskStation Manager (DSM)
* Go to Project (in the left pane)
* Click Create
* Name your project domotica
* Select the path you created in step 1
* Choose to use the existing docker-compose.yml file
* Click Next
* Click Next on the Web portal settings page
* Click Done and wait for Container Manager to finish (Exit Code: 0)
## Installation using Portainer
### Tested with
* Synology DS1019+ running DSM DSM 7.2-64570 Update 1;
* Container Manager from Synology Package Center version 20.10.23-1413;
* Portainer.io Community Edition version 2.19.0;
* Home Assistant 2023.9;
* Zigbee2mqtt 1.33.0;
* Node-RED 3.1.0-16;
* Eclipse Mosquitto 2.0.17;
* InfluxDB 2.7.1
* Telegraf 1.27.4;
* Grafana 10.1.1;
* ESPHome 2023.8.
### Installation steps
* Within your docker folder (/volume1/docker) create a folder named: domotica
* Create the folowing folders under /volume1/docker/domotica
* HomeAssistant/config
* HomeAssistant/media
* Zigbee2mqtt/app/data
* NodeRed/data
* EclipseMosquitto/mosquitto/config
* EclipseMosquitto/mosquitto/data
* EclipseMosquitto/mosquitto/log
* InfluxDB/var/lib/influxdb2
* Grafana/var/lib/grafana
* ESPHome/config
* Copy the following file from the repository
* Telegraf/etc/telegraf/telegraf.conf, copy to: Telegraf/etc/telegraf
* Open Portainer with the correct environment.
* Under Stacks click the button + Add stack.
* Give your stack a name (i.e.: domotica).
* Paste the contents of compose.yml under Web editor.
* Paste the contents of .env.sample under Environment variables.
* Click Advanced mode to be able to paste.
* Change the environment variables as you see fit. (don't forget to remove the # in front of the row you want to use)
* Click Deploy the stack and wait for Portainer to finish.
## Environment variables
The following variables could be set an environment varaiables using the .env file.
| Value | Default | Information |
|-|-|-|
| RESTART | unless-stopped | Choose a restart policy. |
| SYNOLOGY_VOLUME | volume1 | Volume you docker folder is on. |
| STACK_NAME | domotica | The name of your project/stack and also the base folder within your docker folder. |
| UID | 1024 | The User ID you want to use for ownership of the files. 1024 is the default Synology admin user. |
| GID | 101 | The Groud ID you want to use for ownership of the files. 101 is the default Synology admin group. |
| TZ | Europe/Amsterdam | |
| HOMEASSISTANT_CONTAINER_NAME | HomeAssistant | This is used for the name of the container |
| HOMEASSISTANT_TAG | latest | Choose a version tag. |
| ZIGBEE2MQTT_CONTAINER_NAME | Zigbee2mqtt | This is used for the name of the container |
| ZIGBEE2MQTT_TAG | latest | Choose a version tag. |
| NODERED_CONTAINER_NAME | NodeRed | This is used for the name of the container |
| NODERED_TAG | latest | Choose a version tag. |
| ECLIPSEMOSQUITTO_CONTAINER_NAME | EclipseMosquitto | This is used for the name of the container |
| ECLIPSEMOSQUITTO_TAG | latest | Choose a version tag. |
| INFLUXDB_CONTAINER_NAME | InfluxDB | This is used for the name of the container |
| INFLUXDB_TAG | latest | Choose a version tag. |
| TELEGRAF_CONTAINER_NAME | Telegraf | This is used for the name of the container |
| TELEGRAF_TAG | latest | Choose a version tag. |
| TELEGRAF_CONF_INFLUXDBV2_URL | http://localhost:8086 | The location of InfluxDB. |
| TELEGRAF_CONF_INFLUXDBV2_TOKEN | | The Token created in InfluxDB for your Telegraf information. |
| TELEGRAF_CONF_INFLUXDBV2_ORGANIZATION | | The organization created in InfluxDB for your Telegraf information. |
| TELEGRAF_CONF_INFLUXDBV2_BUCKET | | The bucket created in InfluxDB for your Telegraf information. |
| GRAFANA_CONTAINER_NAME | Grafana | This is used for the name of the container |
| GRAFANA_TAG | latest | Choose a version tag. |
| GRAFANA_SECURITY_ALLOW_EMBEDDING | true | Needed if you want to acces Grafana from an iframe in Home Assiatnt. [More info](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#allow_embedding). |
| ESPHOME_CONTAINER_NAME | ESPHome | This is used for the name of the container |
| ESPHOME_TAG | latest | Choose a version tag. |
## Links
* Home Assistant
* [Website](https://www.home-assistant.io/)
* [Docker Hub](https://hub.docker.com/r/homeassistant/home-assistant)
* [GitHub](https://github.com/home-assistant/core)
* Zigbee2mqtt
* [Website](https://www.zigbee2mqtt.io/)
* [Docker Hub](https://hub.docker.com/r/koenkk/zigbee2mqtt)
* [GitHub](https://github.com/Koenkk/zigbee2mqtt)
* Node-RED
* [Website](https://nodered.org/)
* [Docker Hub](https://hub.docker.com/r/nodered/node-red)
* [GitHub](https://github.com//node-red/node-red-docker)
* Eclipse Mosquitto
* [Website](https://mosquitto.org/)
* [Docker Hub](https://hub.docker.com/_/eclipse-mosquitto)
* [GitHub](https://github.com/eclipse/mosquitto)
* InfluxDB
* [Docker Hub](https://hub.docker.com/_/influxdb)
* [GitHub](https://github.com/influxdata/influxdata-docker/tree/master/influxdb)
* Telegraf
* [Docker Hub](https://hub.docker.com/_/telegraf)
* [GitHub](https://github.com/influxdata/influxdata-docker/tree/master/telegraf)
* Grafana
* [Website](https://grafana.com/)
* [Docker Hub](https://hub.docker.com/r/grafana/grafana)
* [GitHub](https://github.com/grafana/grafana)
* ESPHome
* [Website](https://esphome.io/)
* [Docker Hub](https://hub.docker.com/r/esphome/esphome)
* [GitHub](https://github.com/esphome/esphome)
+7
View File
@@ -0,0 +1,7 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#DOZZLE_CONTAINER_NAME=Dozzle
#DOZZLE_TAG=latest
#DOZZLE_PORT=8080
#DOZZLE_USERNAME=
#DOZZLE_PASSWORD=
+15
View File
@@ -0,0 +1,15 @@
services:
# Dozzle
dozzle:
container_name: ${DOZZLE_CONTAINER_NAME:-Dozzle}
image: amir20/dozzle:${DOZZLE_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: [ "CMD", "/dozzle", "healthcheck" ]
environment:
DOZZLE_USERNAME: ${DOZZLE_USERNAME:-}
DOZZLE_PASSWORD: ${DOZZLE_PASSWORD:-}
ports:
- ${DOZZLE_PORT:-8080}:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
+5
View File
@@ -0,0 +1,5 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#DRAWIO_CONTAINER_NAME=draw.io
#DRAWIO_TAG=latest
#DRAWIO_PORT=8080
+10
View File
@@ -0,0 +1,10 @@
services:
# draw.io
drawio:
container_name: ${DRAWIO_CONTAINER_NAME:-draw.io}
image: jgraph/drawio:${DRAWIO_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: curl -f http://localhost:8080/ || exit 1
ports:
- ${DRAWIO_PORT:-8080}:8080
+64
View File
@@ -0,0 +1,64 @@
# draw.io
draw.io is free online diagram software for making flowcharts, process diagrams, org charts, UML, ER and network diagrams.
## Installation using Synology Container Manager
### Tested with
* Synology DS1019+ running DSM DSM 7.2-64570 Update 1;
* Container Manager from Synology Package Center version 20.10.23-1413;
* draw.io 21.7.4.
### Installation steps
* Within your docker folder (/volume1/docker) create a folder named: drawio
* Move the following files to that newly created folder
* compose.yml
* .env.sample
* Rename .env.sample to .env
* Change the environment variables in the file .env as you see fit (Don't forget to remove the # in front of the row you want to use)
* Open Container Manager via Synology DiskStation Manager (DSM)
* Go to Project (in the left pane)
* Click Create
* Name your project drawio
* Select the path you created in step 1
* Choose to use the existing docker-compose.yml file
* Click Next
* Click Next on the Web portal settings page
* Click Done and wait for Container Manager to finish (Exit Code: 0)
## Installation using Portainer
### Tested with
* Synology DS1019+ running DSM DSM 7.2-64570 Update 1;
* Container Manager from Synology Package Center version 20.10.23-1413;
* Portainer.io Community Edition version 2.19.0;
* draw.io 21.7.4.
### Installation steps
* Open Portainer with the correct environment.
* Under Stacks click the button + Add stack.
* Give your stack a name (i.e.: drawio).
* Paste the contents of compose.yml under Web editor.
* Paste the contents of .env.sample under Environment variables.
* Click Advanced mode to be able to paste.
* Change the environment variables as you see fit.
* Click Deploy the stack and wait for Portainer to finish.
## Environment variables
The following variables could be set an environment varaiables using the .env file.
| Value | Default | Information |
|-|-|-|
| RESTART | unless-stopped | Choose a restart policy. |
| DRAWIO_CONTAINER_NAME | draw.io | This is used for the name of the container |
| DRAWIO_TAG | latest | Choose a version tag. |
| DRAWIO_PORT | 8080 | Default port. |
## Links
* [Docker Hub](https://hub.docker.com/r/jgraph/drawio)
* [GitHub](https://github.com/jgraph/drawio)
+10
View File
@@ -0,0 +1,10 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#SYNOLOGY_VOLUME=volume1
#STACK_NAME=filezilla
#UID=1024
#GID=101
#TZ=Europe/Amsterdam
#FILEZILLA_CONTAINER_NAME=FileZilla
#FILEZILLA_TAG=latest
#FILEZILLA_PORT=3000
+16
View File
@@ -0,0 +1,16 @@
services:
# FileZilla
filezilla:
container_name: ${FILEZILLA_CONTAINER_NAME:-FileZilla}
image: linuxserver/filezilla:${FILEZILLA_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: curl -f http://localhost:3000/ || exit 1
environment:
PUID: ${UID:-1024}
PGID: ${GID:-101}
TZ: ${TZ:-Europe/Amsterdam}
ports:
- ${FILEZILLA_PORT:-3000}:3000
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-filezilla}/${FILEZILLA_CONTAINER_NAME:-FileZilla}/config:/config
+10
View File
@@ -0,0 +1,10 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#SYNOLOGY_VOLUME=volume1
#STACK_NAME=firefox
#UID=1024
#GID=101
#TZ=Europe/Amsterdam
#FIREFOX_CONTAINER_NAME=Firefox
#FIREFOX_TAG=latest
#FIREFOX_PORT=3000
+16
View File
@@ -0,0 +1,16 @@
services:
# Firefox
filezilla:
container_name: ${FIREFOX_CONTAINER_NAME:-Firefox}
image: linuxserver/firefox:${FIREFOX_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: curl -f http://localhost:3000/ || exit 1
environment:
PUID: ${UID:-1024}
PGID: ${GID:-101}
TZ: ${TZ:-Europe/Amsterdam}
ports:
- ${FIREFOX_PORT:-3000}:3000
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-firefox}/${FIREFOX_CONTAINER_NAME:-Firefox}/config:/config
+10
View File
@@ -0,0 +1,10 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#SYNOLOGY_VOLUME=volume1
#STACK_NAME=grocy
#UID=1024
#GID=101
#TZ=Europe/Amsterdam
#GROCY_CONTAINER_NAME=Grocy
#GROCY_TAG=latest
#GROCY_PORT=80
+16
View File
@@ -0,0 +1,16 @@
services:
# Grocy
grocy:
container_name: ${GROCY_CONTAINER_NAME:-Grocy}
image: linuxserver/grocy:${GROCY_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: curl -f http://localhost:80/ || exit 1
environment:
PUID: ${UID:-1024}
PGID: ${GID:-101}
TZ: ${TZ:-Europe/Amsterdam}
ports:
- ${GROCY_PORT:-80}:80
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-grocy}/${GROCY_CONTAINER_NAME:-Grocy}/config:/config
+9
View File
@@ -0,0 +1,9 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#SYNOLOGY_VOLUME=volume1
#STACK_NAME=hammond
#UID=1024
#GID=101
#HAMMOND_CONTAINER_NAME=Hammond
#HAMMOND_TAG=latest
#HAMMOND_PORT=3000
+16
View File
@@ -0,0 +1,16 @@
services:
# Hammond
hammond:
container_name: ${HAMMOND_CONTAINER_NAME:-Hammond}
image: akhilrex/hammond:${HAMMOND_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:3000/
environment:
UID: ${UID:-1024}
PID: ${GID:-101}
ports:
- ${HAMMOND_PORT:-3000}:3000
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-hammond}/${HAMMOND_CONTAINER_NAME:-Hammond}/config:/config
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-hammond}/${HAMMOND_CONTAINER_NAME:-Hammond}/assets:/assets
+46
View File
@@ -0,0 +1,46 @@
# Hammond
Self hosted vehicle and expense management system. Like Clarkson, but better.
## Installation using Portainer
### Tested with
* Synology DS1019+ running DSM 7.1.1-42962 Update 5;
* Docker from Synology Package Center version 20.10.3-1308;
* Portainer.io Community Edition version 2.18.3;
* Hammond 1.0.0.
### Create the following folders
* docker/Hammond/config
* docker/Hammond/assets
### Installation steps
* Open Portainer with the correct environment.
* Under Stacks click the button + Add stack.
* Give your stack a name (i.e.: hammond).
* Paste the contents of docker-compose.yml under Web editor.
* Paste the contents of .env under Environment variables.
* Click Advanced mode to be able to paste.
* Change the environment variables as you see fit.
* Click Deploy the stack and wait for Portainer to finish.
## Environment variables
The following variables could be set an environment varaiables using the .env file.
| Value | Default | Information |
|-|-|-|
| UID | 1024 | The user id you want to use. |
| GID | 101 | The group id you want to use. |
| SYNOLOGY_VOLUME | volume1 | If you have only 1 volume Docker will be installed on volume 1. |
| RESTART | unless-stopped | Choose a restart policy. |
| HAMMOND_CONTAINER_NAME | Hammond | This is used for the name of the container and the main folder under de docker folder. |
| HAMMOND_TAG | latest | Choose a version tag. |
| HAMMOND_PORT | 3000 | Default port. |
## Links
* [Docker Hub](https://hub.docker.com/r/akhilrex/hammond)
* [GitHub](https://github.com/akhilrex/hammond)
+10
View File
@@ -0,0 +1,10 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#SYNOLOGY_VOLUME=volume1
#STACK_NAME=heimdall
#UID=1024
#GID=101
#TZ=Europe/Amsterdam
#HEIMDALL_CONTAINER_NAME=Heimdall
#HEIMDALL_TAG=latest
#HEIMDALL_PORT=80
+16
View File
@@ -0,0 +1,16 @@
services:
# Heimdall
heimdall:
container_name: ${HEIMDALL_CONTAINER_NAME:-Heimdall}
image: linuxserver/heimdall:${HEIMDALL_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: curl -f http://localhost:80/ || exit 1
environment:
PUID: ${UID:-1024}
PGID: ${GID:-101}
TZ: ${TZ:-Europe/Amsterdam}
ports:
- ${HEIMDALL_PORT:-80}:80
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-heimdall}/${HEIMDALL_CONTAINER_NAME:-Heimdall}/config:/config
+5
View File
@@ -0,0 +1,5 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#ITTOOLS_CONTAINER_NAME=ITTools
#ITTOOLS_TAG=latest
#ITTOOLS_PORT=80
+10
View File
@@ -0,0 +1,10 @@
services:
# IT Tools
ittools:
container_name: ${ITTOOLS_CONTAINER_NAME:-ITTools}
image: corentinth/it-tools:${ITTOOLS_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: curl -f http://localhost:80/ || exit 1
ports:
- ${ITTOOLS_HTTP_PORT:-80}:80
+9
View File
@@ -0,0 +1,9 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#SYNOLOGY_VOLUME=volume1
#STACK_NAME=opengist
#UID=1024
#GID=101
#OPENGIST_CONTAINER_NAME=Opengist
#OPENGIST_TAG=latest
#OPENGIST_PORT=6157
+15
View File
@@ -0,0 +1,15 @@
services:
# Opengist
opengist:
container_name: ${OPENGIST_CONTAINER_NAME:-Opengist}
image: ghcr.io/thomiceli/opengist:${OPENGIST_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: curl -f http://localhost:6157/ || exit 1
environment:
UID: ${UID:-1024}
GID: ${GID:-101}
ports:
- ${OPENGIST_PORT:-6157}:6157
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-opengist}/${OPENGIST_CONTAINER_NAME:-Opengist}/opengist:/opengist
+12
View File
@@ -0,0 +1,12 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#SYNOLOGY_VOLUME=volume1
#STACK_NAME=podgrab
#UID=1024
#GID=101
#TZ=Europe/Amsterdam
#PODGRAB_CONTAINER_NAME=Podgrab
#PODGRAB_TAG=latest
#PODGRAB_PORT=8080
#PODGRAB_CHECK_FREQUENCY=30
#PODGRAB_PASSWORD=
+19
View File
@@ -0,0 +1,19 @@
services:
# Podgrab
podgrab:
container_name: ${PODGRAB_CONTAINER_NAME:-Podgrab}
hostname: podgrab
image: akhilrex/podgrab:${PODGRAB_TAG:-latest}
user: ${UID:-1024}:${GID:-101}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:${PODGRAB_PORT:-8080}/
environment:
CHECK_FREQUENCY: ${PODGRAB_CHECK_FREQUENCY:-30}
PASSWORD: ${PODGRAB_PASSWORD:-}
PORT: ${PODGRAB_PORT:-8080}
ports:
- ${PODGRAB_PORT:-8080}:${PODGRAB_PORT:-8080}
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-podgrab}/${PODGRAB_CONTAINER_NAME:-Podgrab}/config:/config
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-podgrab}/${PODGRAB_CONTAINER_NAME:-Podgrab}/assets:/assets
+5
View File
@@ -0,0 +1,5 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#RAPIDDASHBOARD_CONTAINER_NAME=RapidDashboard
#RAPIDDASHBOARD_TAG=latest
#RAPIDDASHBOARD_PORT=8080
+12
View File
@@ -0,0 +1,12 @@
services:
# Rapid Dashboard
rapiddashboard:
container_name: ${RAPIDDASHBOARD_CONTAINER_NAME:-RapidDashboard}
image: ozlerhakan/rapid:${RAPIDDASHBOARD_TAG:-latest}
restart: ${RESTART:-unless-stopped}
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:8080/
ports:
- ${RAPIDDASHBOARD_PORT:-8080}:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
+64
View File
@@ -0,0 +1,64 @@
# Docker Compose Collection Optimized for Synology
This repository will contain all the Dockerized software I currently use, have used in the past or just briefly tested.
## The way I format my compose files
Each compose file should contain as much variables as possible so in the event of an update to the compose file there is no extra work to replace it with the new file as all the changes are still in the .env file.
Parts with an asterisk (*) should be always present.
### container_name*
```
container_name: ${APP_CONTAINER_NAME:-App}
```
### hostname
```
hostname: app
```
### image*
```
image: publisher/app:${APP_TAG:-latest}
```
The latest tag is the preferred tag.
### restart*
```
restart: ${RESTART:-unless-stopped}
```
### healthcheck
If the image does not contain a health check already then implement one of the following options.
Always try to use an image specific healthcheck, if available
Use curl
```
healthcheck:
test: curl -f http://localhost:80/ || exit 1
```
Use wget
```
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:80/
```
If none of the options is available then ommit the use of a health check.
### ports
```
ports:
- ${APP_PORT:-80}:80
```
If there is only one port available use the variable name as in the example above. If there are multiple ports try to use a short desription for all of them. See the example below.
```
ports:
- ${APP_PORT_HTTP:-80}:80
- ${APP_PORT_SSH:-22}:22
```
+8
View File
@@ -0,0 +1,8 @@
# Uncomment and change the following variables if you want to use them.
#RESTART=unless-stopped
#SYNOLOGY_VOLUME=volume1
#STACK_NAME=uptimekuma
#TZ=Europe/Amsterdam
#UPTIMEKUMA_CONTAINER_NAME=UptimeKuma
#UPTIMEKUMA_TAG=latest
#UPTIMEKUMA_PORT=3001
+13
View File
@@ -0,0 +1,13 @@
services:
# UptimeKuma
uptimekuma:
container_name: ${UPTIMEKUMA_CONTAINER_NAME:-UptimeKuma}
image: louislam/uptime-kuma:${UPTIMEKUMA_TAG:-latest}
restart: ${RESTART:-unless-stopped}
environment:
TZ: ${TZ:-Europe/Amsterdam}
ports:
- ${UPTIMEKUMA_PORT:-3001}:3001
volumes:
- /${SYNOLOGY_VOLUME:-volume1}/docker/${STACK_NAME:-uptimekuma}/${UPTIMEKUMA_CONTAINER_NAME:-UptimeKuma}/app/data:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro