mirror of
				https://github.com/zokradonh/kopano-docker
				synced 2025-10-31 18:37:15 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			126 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| ADDITIONAL_KOPANO_PACKAGES=${ADDITIONAL_KOPANO_PACKAGES:-""}
 | |
| 
 | |
| set -eu # unset variables are errors & non-zero return values exit the whole script
 | |
| 
 | |
| if [ ! -e /kopano/$SERVICE_TO_START.py ]; then
 | |
| 	echo "Invalid service specified: $SERVICE_TO_START" | ts
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| [ ! -z "$ADDITIONAL_KOPANO_PACKAGES" ] && apt update
 | |
| [ ! -z "$ADDITIONAL_KOPANO_PACKAGES" ] && for installpkg in "$ADDITIONAL_KOPANO_PACKAGES"; do
 | |
| 	if [ $(dpkg-query -W -f='${Status}' $installpkg 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
 | |
| 		apt --assume-yes install $installpkg;
 | |
| 	fi
 | |
| done
 | |
| 
 | |
| mkdir -p /kopano/data/attachments /kopano/data/kapi-kvs /tmp/$SERVICE_TO_START /var/run/kopano
 | |
| 
 | |
| echo "Configure core service '$SERVICE_TO_START'" | ts
 | |
| /usr/bin/python3 /kopano/$SERVICE_TO_START.py
 | |
| 
 | |
| echo "Set ownership" | ts
 | |
| chown -R kopano:kopano /run /tmp
 | |
| chown kopano:kopano /kopano/data/ /kopano/data/attachments
 | |
| 
 | |
| # ensure removed pid-file on unclean shutdowns and mounted volumes
 | |
| rm -f /var/run/kopano/$SERVICE_TO_START.pid
 | |
| 
 | |
| # allow helper commands given by "docker-compose run"
 | |
| if [ $# -gt 0 ]; then
 | |
| 	exec "$@"
 | |
| 	exit
 | |
| fi
 | |
| 
 | |
| # start regular service
 | |
| case "$SERVICE_TO_START" in
 | |
| server)
 | |
| 	/kopano/services/kopano-public-store.sh &
 | |
| 	/kopano/services/kopano-users.sh &
 | |
| 	dockerize \
 | |
| 		-wait file://$KCCONF_SERVER_SERVER_SSL_CA_FILE \
 | |
| 		-wait file://$KCCONF_SERVER_SERVER_SSL_KEY_FILE \
 | |
| 		-wait tcp://db:3306 \
 | |
| 		-timeout 360s
 | |
| 	# cleaning up env variables
 | |
| 	unset "${!KCCONF_@}"
 | |
| 	exec /usr/sbin/kopano-server -F
 | |
| 	;;
 | |
| dagent)
 | |
| 	dockerize \
 | |
| 		-wait file://var/run/kopano/server.sock \
 | |
| 		-timeout 360s
 | |
| 	# cleaning up env variables
 | |
| 	unset "${!KCCONF_@}"
 | |
| 	exec /usr/sbin/kopano-dagent -l
 | |
| 	;;
 | |
| gateway)
 | |
| 	dockerize \
 | |
| 		-wait tcp://kopano_server:236 \
 | |
| 		-timeout 360s
 | |
| 	# cleaning up env variables
 | |
| 	unset "${!KCCONF_@}"
 | |
| 	exec /usr/sbin/kopano-gateway -F
 | |
| 	;;
 | |
| ical)
 | |
| 	dockerize \
 | |
| 		-wait tcp://kopano_server:236 \
 | |
| 		-timeout 360s
 | |
| 	# cleaning up env variables
 | |
| 	unset "${!KCCONF_@}"
 | |
| 	exec /usr/sbin/kopano-ical -F
 | |
| 	;;
 | |
| grapi)
 | |
| 	LC_CTYPE=en_US.UTF-8
 | |
| 	export socket_path=/var/run/kopano/grapi
 | |
| 	mkdir -p $socket_path
 | |
| 	chown -R kapi:kopano $socket_path
 | |
| 	# cleaning up env variables
 | |
| 	unset "${!KCCONF_@}"
 | |
| 	exec kopano-grapi serve
 | |
| 	;;
 | |
| kapid)
 | |
| 	dockerize \
 | |
| 		-wait file://var/run/kopano/grapi/notify.sock \
 | |
| 		-wait http://kopano_konnect:8777/.well-known/openid-configuration \
 | |
| 		-timeout 360s
 | |
| 	LC_CTYPE=en_US.UTF-8
 | |
| 	sed -i s/\ *=\ */=/g /etc/kopano/kapid.cfg
 | |
| 	export $(grep -v '^#' /etc/kopano/kapid.cfg | xargs -d '\n')
 | |
| 	kopano-kapid setup
 | |
| 	# cleaning up env variables
 | |
| 	unset "${!KCCONF_@}"
 | |
| 	exec kopano-kapid serve --log-timestamp=false
 | |
| 	;;
 | |
| monitor)
 | |
| 	dockerize \
 | |
| 		-wait file://var/run/kopano/server.sock \
 | |
| 		-timeout 360s
 | |
| 	# cleaning up env variables
 | |
| 	unset "${!KCCONF_@}"
 | |
| 	exec /usr/sbin/kopano-monitor -F
 | |
| 	;;
 | |
| search)
 | |
| 	dockerize \
 | |
| 		-wait file://var/run/kopano/server.sock \
 | |
| 		-timeout 360s
 | |
| 	# cleaning up env variables
 | |
| 	unset "${!KCCONF_@}"
 | |
| 	exec /usr/bin/python3 /usr/sbin/kopano-search -F
 | |
| 	;;
 | |
| spooler)
 | |
| 	dockerize \
 | |
| 		-wait file://var/run/kopano/server.sock \
 | |
| 		-wait tcp://mail:25 \
 | |
| 		-timeout 1080s
 | |
| 	# cleaning up env variables
 | |
| 	unset "${!KCCONF_@}"
 | |
| 	exec /usr/sbin/kopano-spooler -F
 | |
| 	;;
 | |
| *)
 | |
| 	echo "Failed to start: Unknown service name: '$SERVICE_TO_START'" | ts
 | |
| 	exit 1
 | |
| esac
 |