diff --git a/bin/homecloud-service.sh b/bin/homecloud-service.sh index 965e84f..a3225c7 100755 --- a/bin/homecloud-service.sh +++ b/bin/homecloud-service.sh @@ -108,6 +108,10 @@ if [ -n "${EXTRA_COMPOSE_FILE}" ]; then PROFILES=" -f ${SERVICE_DESTINATION}/${EXTRA_COMPOSE_FILE} ${PROFILES}" fi +if [ "${SYSLOG_ENABLED}" == "yes" ]; then + PROFILES=" -f ${SERVICE_DESTINATION}/${SYSLOG_COMPOSE_FILE} ${PROFILES}" +fi + DOCKER_CMD=$(which docker||true) DOCKER_COMPOSE_CMD=$(which docker-compose||true) EXECUTOR_CMD="" diff --git a/deployment.sh b/deployment.sh index b82e973..0208314 100755 --- a/deployment.sh +++ b/deployment.sh @@ -119,6 +119,7 @@ done echo -e "${colors[Green]} - HomeCloud service major docker compose file ${colors[Blue]}${SERVICE_DESTINATION}/docker-compose.yml ${colors[Color_Off]}" rsync -a "${HOMECLOUD_REPOS_PATH}/docker-compose.yml" "${SERVICE_DESTINATION}/docker-compose.yml" +rsync -a "${HOMECLOUD_REPOS_PATH}/docker-compose.syslog.yml" "${SERVICE_DESTINATION}/docker-compose.syslog.yml" # Core Services CORESERVICES_APP_FOLDERS=("lb" "lb/conf.d" "lb/certs" "lb/webroot" "mariadb" "postgres" "redis" "authentik/media" "authentik/templates" "authentik/certs" "authentik/extra" "authentik/data" "authentik/dist" "nextcloud" "nextcloud-app" "nextcloud-web" "elasticsearch") diff --git a/docker-compose.syslog.yml b/docker-compose.syslog.yml new file mode 100644 index 0000000..fb9daf6 --- /dev/null +++ b/docker-compose.syslog.yml @@ -0,0 +1,66 @@ +services: + lb: + logging: + driver: syslog + options: + tag: homecloud_lb + + mariadb: + logging: + driver: syslog + options: + tag: homecloud_mariadb + + postgres: + logging: + driver: syslog + options: + tag: homecloud_postgres + + redis: + logging: + driver: syslog + options: + tag: homecloud_redis + + authentikapp: + logging: + driver: syslog + options: + tag: homecloud_authentikapp + + authentikworker: + logging: + driver: syslog + options: + tag: homecloud_authentikworker + + nextcloudapp: + logging: + driver: syslog + options: + tag: homecloud_nextcloudapp + + nextcloudweb: + logging: + driver: syslog + options: + tag: homecloud_nextcloudweb + + nextcloudcron: + logging: + driver: syslog + options: + tag: homecloud_nextcloudcron + + imaginary: + logging: + driver: syslog + options: + tag: homecloud_imaginary + + elasticsearch: + logging: + driver: syslog + options: + tag: homecloud_elasticsearch diff --git a/etc/logrotate.d/homecloud-docker b/etc/logrotate.d/homecloud-docker new file mode 100644 index 0000000..ba91341 --- /dev/null +++ b/etc/logrotate.d/homecloud-docker @@ -0,0 +1,6 @@ +/var/log/containers/*.log { + rotate 14 + daily + missingok + compress +} diff --git a/etc/rsyslog.d/40-homecloud.conf b/etc/rsyslog.d/40-homecloud.conf new file mode 100644 index 0000000..36da85c --- /dev/null +++ b/etc/rsyslog.d/40-homecloud.conf @@ -0,0 +1,9 @@ +$FileCreateMode 0644 +template( + name="HomecloudLog" + type="string" + string="/var/log/homecloud/%programname%.log" +) + +if $programname startswith 'homecloud_' then ?HomecloudLog +& ~ diff --git a/homecloud.env b/homecloud.env index 7a6bc8d..2badb7b 100644 --- a/homecloud.env +++ b/homecloud.env @@ -81,4 +81,8 @@ JELLYFIN_PRIVATE_KEY_FILE="" # Maintenance configurations ALERT_EMAIL= # An email to send alert messages +# Enable syslog driver +SYSLOG_ENABLED="no" +SYSLOG_COMPOSE_FILE="docker-compose.syslog.yml" + # vim: filetype=bash