
Some checks failed
Bump build.func Revision / bump-revision (push) Has been cancelled
Replaces all occurrences of the 'init_error_traps' function with 'catch_errors' across container and install scripts for consistency in error handling. Also adjusts indentation and formatting in some scripts for improved readability.
163 lines
5.3 KiB
Bash
163 lines
5.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) 2021-2025 community-scripts ORG
|
|
# Author: MickLesk (CanbiZ)
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/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 \
|
|
sudo \
|
|
mc \
|
|
gnupg \
|
|
apt-transport-https \
|
|
lsb-release
|
|
msg_ok "Installed Dependencies"
|
|
|
|
msg_info "Setting up PostgreSQL Repository"
|
|
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
|
|
echo "deb http://apt.postgresql.org/pub/repos/apt ${VERSION}-pgdg main" >/etc/apt/sources.list.d/pgdg.list
|
|
curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor --output /etc/apt/trusted.gpg.d/postgresql.gpg
|
|
msg_ok "Setup PostgreSQL Repository"
|
|
|
|
msg_info "Installing PostgreSQL"
|
|
$STD apt-get update
|
|
$STD apt-get install -y postgresql postgresql-common
|
|
|
|
cat <<EOF >/etc/postgresql/17/main/pg_hba.conf
|
|
# PostgreSQL Client Authentication Configuration File
|
|
local all postgres peer
|
|
# TYPE DATABASE USER ADDRESS METHOD
|
|
# "local" is for Unix domain socket connections only
|
|
local all all md5
|
|
# IPv4 local connections:
|
|
host all all 127.0.0.1/32 scram-sha-256
|
|
host all all 0.0.0.0/24 md5
|
|
# IPv6 local connections:
|
|
host all all ::1/128 scram-sha-256
|
|
host all all 0.0.0.0/0 md5
|
|
# Allow replication connections from localhost, by a user with the
|
|
# replication privilege.
|
|
local replication all peer
|
|
host replication all 127.0.0.1/32 scram-sha-256
|
|
host replication all ::1/128 scram-sha-256
|
|
EOF
|
|
|
|
cat <<EOF >/etc/postgresql/17/main/postgresql.conf
|
|
# -----------------------------
|
|
# PostgreSQL configuration file
|
|
# -----------------------------
|
|
|
|
#------------------------------------------------------------------------------
|
|
# FILE LOCATIONS
|
|
#------------------------------------------------------------------------------
|
|
|
|
data_directory = '/var/lib/postgresql/17/main'
|
|
hba_file = '/etc/postgresql/17/main/pg_hba.conf'
|
|
ident_file = '/etc/postgresql/17/main/pg_ident.conf'
|
|
external_pid_file = '/var/run/postgresql/17-main.pid'
|
|
|
|
#------------------------------------------------------------------------------
|
|
# CONNECTIONS AND AUTHENTICATION
|
|
#------------------------------------------------------------------------------
|
|
|
|
# - Connection Settings -
|
|
|
|
listen_addresses = '*'
|
|
port = 5432
|
|
max_connections = 100
|
|
unix_socket_directories = '/var/run/postgresql'
|
|
|
|
# - SSL -
|
|
|
|
ssl = on
|
|
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem'
|
|
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'
|
|
|
|
#------------------------------------------------------------------------------
|
|
# RESOURCE USAGE (except WAL)
|
|
#------------------------------------------------------------------------------
|
|
|
|
shared_buffers = 128MB
|
|
dynamic_shared_memory_type = posix
|
|
|
|
#------------------------------------------------------------------------------
|
|
# WRITE-AHEAD LOG
|
|
#------------------------------------------------------------------------------
|
|
|
|
max_wal_size = 1GB
|
|
min_wal_size = 80MB
|
|
|
|
#------------------------------------------------------------------------------
|
|
# REPORTING AND LOGGING
|
|
#------------------------------------------------------------------------------
|
|
|
|
# - What to Log -
|
|
|
|
log_line_prefix = '%m [%p] %q%u@%d '
|
|
log_timezone = 'Etc/UTC'
|
|
|
|
#------------------------------------------------------------------------------
|
|
# PROCESS TITLE
|
|
#------------------------------------------------------------------------------
|
|
|
|
cluster_name = '17/main'
|
|
|
|
#------------------------------------------------------------------------------
|
|
# CLIENT CONNECTION DEFAULTS
|
|
#------------------------------------------------------------------------------
|
|
|
|
# - Locale and Formatting -
|
|
|
|
datestyle = 'iso, mdy'
|
|
timezone = 'Etc/UTC'
|
|
lc_messages = 'C'
|
|
lc_monetary = 'C'
|
|
lc_numeric = 'C'
|
|
lc_time = 'C'
|
|
default_text_search_config = 'pg_catalog.english'
|
|
|
|
#------------------------------------------------------------------------------
|
|
# CONFIG FILE INCLUDES
|
|
#------------------------------------------------------------------------------
|
|
|
|
include_dir = 'conf.d'
|
|
EOF
|
|
|
|
systemctl restart postgresql
|
|
msg_ok "Installed PostgreSQL"
|
|
|
|
msg_info "Setup TimescaleDB"
|
|
echo "deb https://packagecloud.io/timescale/timescaledb/debian/ $(lsb_release -c -s) main" | sudo tee /etc/apt/sources.list.d/timescaledb.list
|
|
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg
|
|
$STD apt-get update
|
|
$STD apt-get install timescaledb-2-postgresql-17 postgresql-client-17
|
|
$STD timescaledb-tune --quiet --yes
|
|
$STD systemctl restart postgresql
|
|
msg_ok "Setup TimescaleDB"
|
|
|
|
read -r -p "Would you like to add Adminer? <y/N> " prompt
|
|
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
|
msg_info "Installing Adminer"
|
|
$STD apt install -y adminer
|
|
$STD a2enconf adminer
|
|
systemctl reload apache2
|
|
msg_ok "Installed Adminer"
|
|
fi
|
|
|
|
motd_ssh
|
|
customize
|
|
|
|
msg_info "Cleaning up"
|
|
$STD apt-get -y autoremove
|
|
$STD apt-get -y autoclean
|
|
msg_ok "Cleaned"
|