Refactor: listmonk (#6399)

* Refactor

* Update
This commit is contained in:
Slaviša Arežina 2025-07-31 18:58:19 +02:00 committed by GitHub
parent 5acca4975c
commit bb664636f6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 52 additions and 59 deletions

View File

@ -27,31 +27,33 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.listmonk)" ]] || [[ ! -f ~/.listmonk ]]; then
msg_info "Stopping ${APP}"
systemctl stop listmonk
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
msg_info "Backing up data"
mv /opt/listmonk/ /opt/listmonk-backup
mkdir /opt/listmonk/
curl -fsSL "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_amd64.tar.gz" -o $(basename "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_amd64.tar.gz")
tar -xzf "listmonk_${RELEASE}_linux_amd64.tar.gz" -C /opt/listmonk
msg_ok "Backed up data"
fetch_and_deploy_gh_release "listmonk" "knadh/listmonk" "prebuild" "latest" "/opt/listmonk" "listmonk*linux_amd64.tar.gz"
msg_info "Configuring listmonk"
mv /opt/listmonk-backup/config.toml /opt/listmonk/config.toml
mv /opt/listmonk-backup/uploads /opt/listmonk/uploads
$STD /opt/listmonk/listmonk --upgrade --yes --config /opt/listmonk/config.toml
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Configured listmonk"
msg_info "Starting ${APP}"
systemctl start listmonk
msg_ok "Started ${APP}"
msg_info "Cleaning up"
rm -rf "/opt/listmonk_${RELEASE}_linux_amd64.tar.gz"
rm -rf /opt/listmonk-backup/
msg_ok "Cleaned"

View File

@ -13,11 +13,9 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y postgresql
msg_ok "Installed Dependencies"
PG_VERSION="17" setup_postgresql
msg_info "Setting up PostgreSQL"
msg_info "Configuring PostgreSQL"
DB_NAME=listmonk
DB_USER=listmonk
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
@ -29,22 +27,16 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMP
echo -e "listmonk Database Password: \e[32m$DB_PASS\e[0m"
echo -e "listmonk Database Name: \e[32m$DB_NAME\e[0m"
} >>~/listmonk.creds
msg_ok "Set up PostgreSQL"
msg_ok "Configured PostgreSQL"
msg_info "Installing listmonk"
cd /opt
mkdir /opt/listmonk
mkdir /opt/listmonk/uploads
RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_amd64.tar.gz" -o "listmonk_${RELEASE}_linux_amd64.tar.gz"
tar -xzf "listmonk_${RELEASE}_linux_amd64.tar.gz" -C /opt/listmonk
fetch_and_deploy_gh_release "listmonk" "knadh/listmonk" "prebuild" "latest" "/opt/listmonk" "listmonk*linux_amd64.tar.gz"
msg_info "Configuring listmonk"
mkdir -p /opt/listmonk/uploads
$STD /opt/listmonk/listmonk --new-config --config /opt/listmonk/config.toml
sed -i -e 's/address = "localhost:9000"/address = "0.0.0.0:9000"/' -e 's/^password = ".*"/password = "'"$DB_PASS"'"/' /opt/listmonk/config.toml
$STD /opt/listmonk/listmonk --install --yes --config /opt/listmonk/config.toml
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed listmonk"
msg_ok "Configured listmonk"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/listmonk.service
@ -70,7 +62,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf "/opt/listmonk_${RELEASE}_linux_amd64.tar.gz"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"