From 2b6f2147adf984b6d3ca699910ddddc48aba7fe0 Mon Sep 17 00:00:00 2001 From: tremor021 Date: Wed, 18 Jun 2025 15:00:26 +0200 Subject: [PATCH] Update Postiz --- install/postiz-install.sh | 112 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 install/postiz-install.sh diff --git a/install/postiz-install.sh b/install/postiz-install.sh new file mode 100644 index 00000000..e5597b3e --- /dev/null +++ b/install/postiz-install.sh @@ -0,0 +1,112 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Slaviša Arežina (tremor021) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/gitroomhq/postiz-app + +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 \ + build-essential \ + python3-pip \ + supervisor \ + debian-keyring \ + debian-archive-keyring \ + apt-transport-https \ + redis +msg_ok "Installed dependencies" + +NODE_VERSION="20" setup_nodejs +PG_VERSION="17" setup_postgresql + +msg_info "Setting up PostgreSQL Database" +DB_NAME=postiz +DB_USER=postiz +DB_PASS="$(openssl rand -base64 18 | cut -c1-13)" +$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';" +$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;" +$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';" +$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';" +$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'" +{ + echo "Postiz DB Credentials" + echo "Postiz Database User: $DB_USER" + echo "Postiz Database Password: $DB_PASS" + echo "Postiz Database Name: $DB_NAME" +} >>~/postiz.creds +msg_ok "Set up PostgreSQL Database" + +msg_info "Setting up Caddy" +curl -1sLf "https://dl.cloudsmith.io/public/caddy/stable/gpg.key" | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg +curl -1sLf "https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt" >/etc/apt/sources.list.d/caddy-stable.list +$STD apt-get update +$STD apt-get install caddy +msg_ok "Set up Caddy" + +fetch_and_deploy_gh_release "gitroomhq/postiz-app" + +msg_info "Configuring Postiz" +LOCAL_IP=$(hostname -I | awk '{print $1}') +JWT_SECRET=$(openssl rand -base64 64 | tr '+/' '-_' | tr -d '=') +cd /opt/postiz +mkdir -p /etc/supervisor.d +$STD npm --no-update-notifier --no-fund --global install pnpm@10.6.1 pm2 +cp var/docker/supervisord.conf /etc/supervisord.conf +cp var/docker/Caddyfile ./Caddyfile +cp var/docker/entrypoint.sh ./entrypoint.sh +cp var/docker/supervisord/caddy.conf /etc/supervisor.d/caddy.conf +sed -i "s#/app/Caddyfile#/opt/postiz/Caddyfile#g" /etc/supervisor.d/caddy.conf +sed -i "s#/app/Caddyfile#/opt/postiz/Caddyfile#g" /opt/postiz/entrypoint.sh +sed -i "s#directory=/app#directory=/opt/postiz#g" /etc/supervisor.d/caddy.conf +export NODE_OPTIONS="--max-old-space-size=2560" +$STD pnpm install +$STD pnpm run build +chmod +x entrypoint.sh + +cat <.env +NOT_SECURED="true" +IS_GENERAL="true" +DATABASE_URL="postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME" +REDIS_URL="redis://localhost:6379" +JWT_SECRET="$JWT_SECRET" +FRONTEND_URL="http://$LOCAL_IP:4200" +NEXT_PUBLIC_BACKEND_URL="http://$LOCAL_IP:3000" +BACKEND_INTERNAL_URL="http://$LOCAL_IP:3000" +EOF +msg_ok "Configured Postiz" + +msg_info "Creating Service" +cat </etc/systemd/system/postiz.service +[Unit] +Description=Postiz Service +After=network.target + +[Service] +Type=simple +User=root +WorkingDirectory=/opt/postiz +EnvironmentFile=/opt/postiz/.env +ExecStart=/usr/bin/pnpm run pm2-run +Restart=always + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now postiz +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned"