| @@ -19,3 +19,6 @@ | |||
| [submodule "images/rpi-nginx-php"] | |||
| path = images/rpi-nginx-php | |||
| url = git@github.com:bingen/rpi-nginx-php.git | |||
| [submodule "images/rpi-zoneminder"] | |||
| path = images/rpi-zoneminder | |||
| url = git@github.com:bingen/rpi-zoneminder.git | |||
| @@ -200,6 +200,17 @@ To view swarm token: | |||
| docker swarm join-token worker | |||
| I was experience the issue described and fixed [here](Docker swarm nodes down after reboot! | |||
| https://forums.docker.com/t/docker-worker-nodes-shown-as-down-after-re-start/22329/8?u=bingen): | |||
| To avoid swarm nodes showing up as Down on reboot, you can do: | |||
| sudo crontab -e | |||
| then add a line like this | |||
| @reboot docker ps | |||
| Openldap | |||
| -------- | |||
| @@ -7,8 +7,10 @@ if [ $# -eq 0 ]; then | |||
| exit 1 | |||
| fi | |||
| # Delete previous running stack | |||
| docker stack rm ${STACK_NAME} | |||
| # Build images | |||
| docker-compose build | |||
| docker push bingen/rpi-openldap | |||
| docker push bingen/rpi-mariadb | |||
| @@ -16,6 +18,7 @@ docker push bingen/rpi-haproxy | |||
| docker push bingen/rpi-mailserver | |||
| docker push bingen/rpi-nextcloud | |||
| # Deploy Stack | |||
| # seen here: https://github.com/docker/docker/issues/29133#issuecomment-278198683 | |||
| env $(cat .env | grep "^[A-Z]" | xargs) \ | |||
| docker stack deploy --compose-file docker-compose.yml ${STACK_NAME} | |||
| @@ -23,6 +26,8 @@ env $(cat .env | grep "^[A-Z]" | xargs) \ | |||
| echo Wait for services to start | |||
| sleep 60 | |||
| # ##### Add users to LDAP ###### # | |||
| host=$(docker stack ps ${STACK_NAME} | grep Running | grep openldap | awk '{ print $4 }') | |||
| #echo Host=$host | |||
| if [ -z $host ]; then | |||
| @@ -109,6 +109,7 @@ services: | |||
| args: | |||
| - NEXTCLOUD_VERSION=${NEXTCLOUD_VERSION} | |||
| - NEXTCLOUD_DATA_PATH=${NEXTCLOUD_DATA_PATH} | |||
| - NEXTCLOUD_BACKUP_PATH=${NEXTCLOUD_BACKUP_PATH} | |||
| image: bingen/rpi-nextcloud:latest | |||
| depends_on: | |||
| - db | |||
| @@ -135,6 +136,34 @@ services: | |||
| - "8443:443" | |||
| volumes: | |||
| - ${NEXTCLOUD_DATA_VOLUME_PATH}:${NEXTCLOUD_DATA_PATH} | |||
| - ${NEXTCLOUD_BACKUP_VOLUME_PATH}:${NEXTCLOUD_BACKUP_PATH} | |||
| zoneminder: | |||
| build: | |||
| context: ./images/rpi-zoneminder/ | |||
| args: | |||
| - ZONEMINDER_DATA_PATH=${ZONEMINDER_DATA_PATH} | |||
| image: bingen/rpi-zoneminder:latest | |||
| depends_on: | |||
| - db | |||
| #- haproxy | |||
| secrets: | |||
| - source: zoneminder_admin_pwd | |||
| target: admin_pwd | |||
| uid: '999' | |||
| mode: 0440 | |||
| - source: db_pwd | |||
| target: mysql_pwd | |||
| mode: 0440 | |||
| env_file: | |||
| - zoneminder.env | |||
| networks: | |||
| - default | |||
| ports: | |||
| - "8001:80" | |||
| - "8444:443" | |||
| #volumes: | |||
| #- ${ZONEMINDER_DATA_VOLUME_PATH}:${ZONEMINDER_DATA_PATH} | |||
| #padlock: | |||
| @@ -158,6 +187,8 @@ secrets: | |||
| external: true | |||
| nextcloud_admin_pwd: | |||
| external: true | |||
| zoneminder_admin_pwd: | |||
| external: true | |||
| networks: | |||
| default: | |||
| driver: overlay | |||
| @@ -29,3 +29,14 @@ NEXTCLOUD_VERSION=nextcloud-11.0.2 | |||
| NEXTCLOUD_DATA_PATH=/srv/nextcloud/data | |||
| # external Volume path | |||
| NEXTCLOUD_DATA_VOLUME_PATH=${VOLUMES_PATH}/nextcloud/data | |||
| # Internal Backup path | |||
| NEXTCLOUD_BACKUP_PATH=/srv/nextcloud/backup | |||
| # external Volume path | |||
| NEXTCLOUD_BACKUP_VOLUME_PATH=${VOLUMES_PATH}/nextcloud/backup | |||
| # ZONEMINDER | |||
| # Internal data path | |||
| #ZONEMINDER_DATA_PATH=/srv/zoneminder/data | |||
| # external Volume path | |||
| #ZONEMINDER_DATA_VOLUME_PATH=/media/volumes/zoneminder/ | |||
| @@ -1 +1,2 @@ | |||
| NEXTCLOUD_URL=nextcloud.${DOMAIN} | |||
| ZONEMINDER_URL=zoneminder.${DOMAIN} | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit e7982d45db4161a59595071d7b8433e17d3fb17d | |||
| @@ -54,6 +54,11 @@ if [[ ${#nextcloud_admin_pwd} -eq 0 ]]; then | |||
| nextcloud_admin_pwd=`eval "$PWD_GEN"` | |||
| fi | |||
| read -p "Zoneminder Admin User Pwd (a random one will be generated if empty): " zoneminder_admin_pwd | |||
| if [[ ${#zoneminder_admin_pwd} -eq 0 ]]; then | |||
| zoneminder_admin_pwd=`eval "$PWD_GEN"` | |||
| fi | |||
| echo $'\E[33m' | |||
| echo "//////////////////////////////////////////////////" | |||
| echo "///////////////// PLEASE CONFIRM /////////////////" | |||
| @@ -81,6 +86,7 @@ echo $ldap_pwd | docker secret create ldap_pwd - | |||
| echo $ldap_mail_pwd | docker secret create ldap_mail_pwd - | |||
| echo $ldap_nextcloud_pwd | docker secret create ldap_nextcloud_pwd - | |||
| echo $nextcloud_admin_pwd | docker secret create nextcloud_admin_pwd - | |||
| echo $zoneminder_admin_pwd | docker secret create zoneminder_admin_pwd - | |||
| echo $'\E[33m' | |||
| echo "//////////////////////////////////////////////////" | |||
| @@ -110,6 +116,7 @@ done; | |||
| echo "\nNEXTCLOUD_DB_BACKUP=${NEXTCLOUD_DATA_PATH}/nextcloud_db_backup.sql" >> nextcloud.env | |||
| echo "\nMAIL_DATA_PATH=${MAIL_DATA_PATH}" >> mail.env | |||
| echo "\nNEXTCLOUD_DATA_PATH=${NEXTCLOUD_DATA_PATH}" >> nextcloud.env | |||
| echo "\nNEXTCLOUD_BACKUP_PATH=${NEXTCLOUD_BACKUP_PATH}" >> nextcloud.env | |||
| echo $'\E[33m' | |||
| echo "//////////////////////////////////////////////////" | |||
| @@ -129,3 +136,4 @@ sudo mkdir -p ${MAIL_DATA_PATH} | |||
| sudo mkdir -p ${MAIL_STATE_PATH} | |||
| # nextcloud | |||
| sudo mkdir -p ${NEXTCLOUD_DATA_PATH} | |||
| sudo mkdir -p ${NEXTCLOUD_BACKUP_PATH} | |||
| @@ -0,0 +1,9 @@ | |||
| ZONEMINDER_DOMAIN=${DOMAIN} | |||
| ZONEMINDER_SERVER_NAME=zoneminder | |||
| ZONEMINDER_ADMIN_PWD_FILE=/run/secrets/admin_pwd | |||
| #DATA_CHOWN=1 | |||
| # DB | |||
| MYSQL_ROOT_PWD_FILE=/run/secrets/mysql_pwd | |||
| DB_HOST=db | |||
| ZONEMINDER_DB_NAME=zm | |||
| ZONEMINDER_DB_USER=zmuser | |||