Update Postiz
This commit is contained in:
parent
f30a9ba2e6
commit
2b6f2147ad
112
install/postiz-install.sh
Normal file
112
install/postiz-install.sh
Normal file
@ -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 <<EOF >.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 <<EOF >/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"
|
Loading…
x
Reference in New Issue
Block a user