| 
									
										
										
										
											2021-04-29 17:47:01 -08:00
										 |  |  | #!/bin/bash
 | 
					
						
							| 
									
										
										
										
											2024-01-11 17:03:08 -06:00
										 |  |  | # Start Backend API | 
					
						
							| 
									
										
										
										
											2021-04-06 23:10:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-23 02:22:31 +08:00
										 |  |  | # Get PUID/PGID | 
					
						
							|  |  |  | PUID=${PUID:-911} | 
					
						
							|  |  |  | PGID=${PGID:-911} | 
					
						
							| 
									
										
										
										
											2024-01-11 17:03:08 -06:00
										 |  |  | BASH_SOURCE=${BASH_SOURCE:-$0} | 
					
						
							| 
									
										
										
										
											2021-06-23 02:22:31 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | add_user() { | 
					
						
							|  |  |  |     groupmod -o -g "$PGID" abc | 
					
						
							|  |  |  |     usermod -o -u "$PUID" abc | 
					
						
							| 
									
										
										
										
											2022-08-09 04:39:59 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | change_user() { | 
					
						
							| 
									
										
										
										
											2024-01-27 17:48:38 +00:00
										 |  |  |     if [ "$(id -u)" = $PUID ]; then | 
					
						
							|  |  |  |         echo "
 | 
					
						
							|  |  |  |         User uid:    $PUID | 
					
						
							|  |  |  |         User gid:    $PGID | 
					
						
							|  |  |  |         "
 | 
					
						
							|  |  |  |     elif [ "$(id -u)" = "0" ]; then | 
					
						
							|  |  |  |         # If container is started as root then create a new user and switch to it | 
					
						
							| 
									
										
										
										
											2022-08-09 04:39:59 +02:00
										 |  |  |         add_user | 
					
						
							|  |  |  |         chown -R $PUID:$PGID /app | 
					
						
							| 
									
										
										
										
											2021-06-23 02:22:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-09 04:39:59 +02:00
										 |  |  |         echo "Switching to dedicated user" | 
					
						
							|  |  |  |         exec gosu $PUID "$BASH_SOURCE" "$@" | 
					
						
							|  |  |  |     fi | 
					
						
							| 
									
										
										
										
											2021-06-23 02:22:31 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | init() { | 
					
						
							|  |  |  |     # $MEALIE_HOME directory | 
					
						
							|  |  |  |     cd /app | 
					
						
							| 
									
										
										
										
											2022-08-09 04:39:59 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-23 02:22:31 +08:00
										 |  |  |     # Activate our virtual environment here | 
					
						
							| 
									
										
										
										
											2025-02-12 01:28:40 +10:00
										 |  |  |     . /opt/mealie/bin/activate | 
					
						
							| 
									
										
										
										
											2021-06-23 02:22:31 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2021-04-06 22:29:02 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-16 11:59:50 -05:00
										 |  |  | load_secrets() { | 
					
						
							|  |  |  |     # Each of these environment variables will support a `_FILE` suffix that allows | 
					
						
							|  |  |  |     # for setting the environment variable through the Docker Compose secret | 
					
						
							|  |  |  |     # pattern. | 
					
						
							|  |  |  |     local -a secret_supported_vars=( | 
					
						
							|  |  |  |         "POSTGRES_USER" | 
					
						
							|  |  |  |         "POSTGRES_PASSWORD" | 
					
						
							|  |  |  |         "POSTGRES_SERVER" | 
					
						
							|  |  |  |         "POSTGRES_PORT" | 
					
						
							|  |  |  |         "POSTGRES_DB" | 
					
						
							|  |  |  |         "POSTGRES_URL_OVERRIDE" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         "SMTP_HOST" | 
					
						
							|  |  |  |         "SMTP_PORT" | 
					
						
							|  |  |  |         "SMTP_USER" | 
					
						
							|  |  |  |         "SMTP_PASSWORD" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         "LDAP_SERVER_URL" | 
					
						
							|  |  |  |         "LDAP_QUERY_PASSWORD" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         "OIDC_CONFIGURATION_URL" | 
					
						
							|  |  |  |         "OIDC_CLIENT_ID" | 
					
						
							|  |  |  |         "OIDC_CLIENT_SECRET" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         "OPENAI_BASE_URL" | 
					
						
							|  |  |  |         "OPENAI_API_KEY" | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # If any secrets are set, prefer them over base environment variables. | 
					
						
							|  |  |  |     for var in "${secret_supported_vars[@]}"; do | 
					
						
							|  |  |  |         file_var="${var}_FILE" | 
					
						
							|  |  |  |         if [ -n "${!file_var}" ]; then | 
					
						
							|  |  |  |             export "$var=$(<"${!file_var}")" | 
					
						
							|  |  |  |         fi | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-11 17:03:08 -06:00
										 |  |  | change_user | 
					
						
							| 
									
										
										
										
											2022-12-31 10:01:15 -08:00
										 |  |  | init | 
					
						
							| 
									
										
										
										
											2025-02-16 11:59:50 -05:00
										 |  |  | load_secrets | 
					
						
							| 
									
										
										
										
											2022-10-22 11:43:03 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-31 10:01:15 -08:00
										 |  |  | # Start API | 
					
						
							| 
									
										
										
										
											2024-04-16 10:52:49 -05:00
										 |  |  | HOST_IP=`/sbin/ip route|awk '/default/ { print $3 }'` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-12 01:28:40 +10:00
										 |  |  | exec mealie |