mirror of
https://github.com/jakejarvis/mastodon-utils.git
synced 2025-04-26 09:05:21 -04:00
1.6 KiB
1.6 KiB
Postgres
Optimization
PgBouncer
Installation
creating the pgbouncer admin user:
DB_PASSWORD=$(< /dev/urandom tr -dc A-Za-z0-9 | head -c32; echo)
echo "pgbouncer password (save this securely): $DB_PASSWORD"
echo "CREATE USER pgbouncer WITH PASSWORD '$DB_PASSWORD' CREATEDB" | sudo -u postgres psql -f -
Config
.env.production:
DB_HOST=localhost
DB_USER=mastodon
DB_NAME=mastodon_production
DB_PASS=
# change from postgres port (default: 5432) to pgbouncer (default: 6432)
DB_PORT=6432
# add this:
PREPARED_STATEMENTS=false
/etc/pgbouncer/pgbouncer.ini:
[databases]
mastodon_production = host=127.0.0.1 port=5432 dbname=mastodon_production user=mastodon password=
[pgbouncer]
listen_addr = localhost
listen_port = 6432
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
admin_users = pgbouncer
pool_mode = transaction
max_client_conn = 100
default_pool_size = 20
/etc/pgbouncer/userlist.txt:
generate md5 hash of postgres passwords with echo -n "pass" | md5sum
"mastodon" "md5xxxxxxxx"
"pgbouncer" "md5xxxxxxxx"
Connecting from TablePlus.app via Tailscale
/etc/postgresql/15/main/postgres.conf
listen_addresses = '*'
/etc/postgresql/15/main/pg_hba.conf:
# tailscale
host all all 100.64.0.0/10 md5