| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-01 12:13:05 -05:00
										 |  |  | # Copyright (c) 2021-2024 tteck | 
					
						
							| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | # Author: tteck (tteckster) | 
					
						
							|  |  |  | # License: MIT | 
					
						
							|  |  |  | # https://github.com/tteck/Proxmox/raw/main/LICENSE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" | 
					
						
							|  |  |  | color | 
					
						
							|  |  |  | verb_ip6 | 
					
						
							|  |  |  | catch_errors | 
					
						
							|  |  |  | setting_up_container | 
					
						
							|  |  |  | network_check | 
					
						
							|  |  |  | update_os | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | msg_info "Installing Dependencies" | 
					
						
							|  |  |  | $STD apt-get install -y curl | 
					
						
							|  |  |  | $STD apt-get install -y sudo | 
					
						
							|  |  |  | $STD apt-get install -y mc | 
					
						
							| 
									
										
										
										
											2024-04-23 10:34:50 -04:00
										 |  |  | $STD apt-get install -y gpg | 
					
						
							| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | msg_ok "Installed Dependencies" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-28 19:55:52 -04:00
										 |  |  | msg_info "Setting up Node.js Repository" | 
					
						
							| 
									
										
										
										
											2023-09-02 08:36:54 -04:00
										 |  |  | mkdir -p /etc/apt/keyrings | 
					
						
							| 
									
										
										
										
											2023-09-01 07:19:05 -04:00
										 |  |  | curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg | 
					
						
							| 
									
										
										
										
											2023-12-27 19:03:35 -05:00
										 |  |  | echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list | 
					
						
							| 
									
										
										
										
											2023-06-28 19:55:52 -04:00
										 |  |  | msg_ok "Set up Node.js Repository" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | msg_info "Installing Node.js" | 
					
						
							| 
									
										
										
										
											2023-09-01 07:19:05 -04:00
										 |  |  | $STD apt-get update | 
					
						
							|  |  |  | $STD apt-get install -y nodejs | 
					
						
							| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | $STD npm install -g pnpm | 
					
						
							|  |  |  | msg_ok "Installed Node.js" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-17 20:21:23 -05:00
										 |  |  | RELEASE=$(curl -s https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') | 
					
						
							|  |  |  | msg_info "Installing Homepage v${RELEASE} (Patience)" | 
					
						
							|  |  |  | wget -q https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz | 
					
						
							|  |  |  | $STD tar -xzf v${RELEASE}.tar.gz | 
					
						
							| 
									
										
										
										
											2024-06-05 06:05:34 -04:00
										 |  |  | rm -rf v${RELEASE}.tar.gz | 
					
						
							| 
									
										
										
										
											2023-12-17 20:21:23 -05:00
										 |  |  | mkdir -p /opt/homepage/config | 
					
						
							|  |  |  | mv homepage-${RELEASE}/* /opt/homepage | 
					
						
							| 
									
										
										
										
											2023-12-17 20:32:27 -05:00
										 |  |  | rm -rf homepage-${RELEASE} | 
					
						
							| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | cd /opt/homepage | 
					
						
							|  |  |  | cp /opt/homepage/src/skeleton/* /opt/homepage/config | 
					
						
							|  |  |  | $STD pnpm install | 
					
						
							|  |  |  | $STD pnpm build | 
					
						
							| 
									
										
										
										
											2024-04-23 10:34:50 -04:00
										 |  |  | echo "${RELEASE}" >/opt/${APPLICATION}_version.txt | 
					
						
							| 
									
										
										
										
											2023-12-17 20:21:23 -05:00
										 |  |  | msg_ok "Installed Homepage v${RELEASE}" | 
					
						
							| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | msg_info "Creating Service" | 
					
						
							| 
									
										
										
										
											2024-04-23 10:34:50 -04:00
										 |  |  | cat <<EOF >/etc/systemd/system/homepage.service | 
					
						
							|  |  |  | [Unit] | 
					
						
							| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | Description=Homepage | 
					
						
							|  |  |  | After=network.target | 
					
						
							|  |  |  | StartLimitIntervalSec=0 | 
					
						
							|  |  |  | [Service] | 
					
						
							|  |  |  | Type=simple | 
					
						
							|  |  |  | Restart=always | 
					
						
							|  |  |  | RestartSec=1 | 
					
						
							|  |  |  | User=root | 
					
						
							|  |  |  | WorkingDirectory=/opt/homepage/ | 
					
						
							|  |  |  | ExecStart=pnpm start | 
					
						
							|  |  |  | [Install] | 
					
						
							| 
									
										
										
										
											2024-04-23 10:34:50 -04:00
										 |  |  | WantedBy=multi-user.target | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | systemctl enable -q --now homepage | 
					
						
							| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | msg_ok "Created Service" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | motd_ssh | 
					
						
							| 
									
										
										
										
											2023-05-15 07:39:30 -04:00
										 |  |  | customize | 
					
						
							| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | msg_info "Cleaning up" | 
					
						
							| 
									
										
										
										
											2024-05-02 13:26:16 -04:00
										 |  |  | $STD apt-get -y autoremove | 
					
						
							|  |  |  | $STD apt-get -y autoclean | 
					
						
							| 
									
										
										
										
											2023-03-22 20:48:20 -04:00
										 |  |  | msg_ok "Cleaned" |