From af9a204b3035d65bc38b68d0e95d1383600d9e52 Mon Sep 17 00:00:00 2001 From: Randy Jordan Date: Sun, 3 Nov 2024 16:38:52 -0600 Subject: [PATCH] added postgresql --- README.md | 3 +- postgresql/README.md | 46 ++ postgresql/resources/Example.webp | Bin 0 -> 14116 bytes postgresql/resources/pg_hba.conf | 103 ++++ postgresql/resources/postgresql.conf | 782 +++++++++++++++++++++++++++ 5 files changed, 933 insertions(+), 1 deletion(-) create mode 100644 postgresql/README.md create mode 100644 postgresql/resources/Example.webp create mode 100644 postgresql/resources/pg_hba.conf create mode 100644 postgresql/resources/postgresql.conf diff --git a/README.md b/README.md index cb25cba..b421b31 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,11 @@ This repository contains guides and notes written in markdown. ## Features / TODOS - [x] SSH Server -- [ ] Postgresql +- [x] Postgresql - [ ] Gitea - [ ] Nginx - [ ] Solidworks +- [ ] Docker ## Usage Each project or subject should have it's own folder with a descriptive name. It will contain a README file that is the subject of the folder. It will also contain a resources folder that contain media for the guides/notes.
diff --git a/postgresql/README.md b/postgresql/README.md new file mode 100644 index 0000000..91277c8 --- /dev/null +++ b/postgresql/README.md @@ -0,0 +1,46 @@ +# Postgresql Database +Walkthrough of installing Postgresql database. + +## Table of Contents + +- [Step 1 - Installing Postgresql](#step-1---installing-postgresql) +- [Step 2 - Create user and database.](#step-2---create-user-and-database) +- [Step 3 - Configure postgresql](#step-3---configure-postgresql) +- [Step 4 - Configure access](#step-3---configure-access) + + + +### Step 1 - Installing Postgresql +`sudo apt-get update`
+`sudo apt-get -y install postgresql`
+ + +### Step 2 - Create User and Database +`sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git`
+`su -c "psql" - postgres`
+Change postgresql password.
+`ALTER USER postgres WITH PASSWORD 'new_password';`
+Create app user etc.
+`CREATE ROLE git WITH LOGIN PASSWORD 'userpass';`
+`CREATE DATABASE gitdb WITH OWNER git TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';`
+ + +### Step 3 - Configure Postgresql +Next, You need to switch to 'SCRAM-SHA-256' scheme from md5 encryption scheme for better security. If you want to connect to PostgreSQL remotely, then you need to allow your IP address in the PostgreSQL configuration file.
+ +[/etc/postgresql/versionNum/main/postgresql.conf](./resources/postgresql.conf)
+ +Next, change the following variables as per your requirement:
+`listen_addresses = 'localhost, IF_REMOTEIP'`
+`password_encryption = scram-sha-256`
+`sudo systemctl restart postgresql`
+ +### Step 4 - Configure Access +At this point, your PostgreSQL setup and ready for your app user, verify authentication settings in /etc/postgresql/14/main/pg_hba.conf file. + +PostgreSQL accepts all local connections by defaults.
+[/etc/postgresql/versionNum/main/pg_hba.conf](./resources/pg_hba.conf)
+![Example](./resources/Example.webp)
+ + + diff --git a/postgresql/resources/Example.webp b/postgresql/resources/Example.webp new file mode 100644 index 0000000000000000000000000000000000000000..0cb13ac8cc0a495d4f58c450b672523f57f94793 GIT binary patch literal 14116 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 0 logs only + # statements running at least this number + # of milliseconds + +#log_min_duration_sample = -1 # -1 is disabled, 0 logs a sample of statements + # and their durations, > 0 logs only a sample of + # statements running at least this number + # of milliseconds; + # sample fraction is determined by log_statement_sample_rate + +#log_statement_sample_rate = 1.0 # fraction of logged statements exceeding + # log_min_duration_sample to be logged; + # 1.0 logs all such statements, 0.0 never logs + + +#log_transaction_sample_rate = 0.0 # fraction of transactions whose statements + # are logged regardless of their duration; 1.0 logs all + # statements from all transactions, 0.0 never logs + +# - What to Log - + +#debug_print_parse = off +#debug_print_rewritten = off +#debug_print_plan = off +#debug_pretty_print = on +#log_checkpoints = off +#log_connections = off +#log_disconnections = off +#log_duration = off +#log_error_verbosity = default # terse, default, or verbose messages +#log_hostname = off +log_line_prefix = '%m [%p] %q%u@%d ' # special values: + # %a = application name + # %u = user name + # %d = database name + # %r = remote host and port + # %h = remote host + # %b = backend type + # %p = process ID + # %t = timestamp without milliseconds + # %m = timestamp with milliseconds + # %n = timestamp with milliseconds (as a Unix epoch) + # %i = command tag + # %e = SQL state + # %c = session ID + # %l = session line number + # %s = session start timestamp + # %v = virtual transaction ID + # %x = transaction ID (0 if none) + # %q = stop here in non-session + # processes + # %% = '%' + # e.g. '<%u%%%d> ' +#log_lock_waits = off # log lock waits >= deadlock_timeout +#log_parameter_max_length = -1 # when logging statements, limit logged + # bind-parameter values to N bytes; + # -1 means print in full, 0 disables +#log_parameter_max_length_on_error = 0 # when logging an error, limit logged + # bind-parameter values to N bytes; + # -1 means print in full, 0 disables +#log_statement = 'none' # none, ddl, mod, all +#log_replication_commands = off +#log_temp_files = -1 # log temporary files equal or larger + # than the specified size in kilobytes; + # -1 disables, 0 logs all temp files +log_timezone = 'Etc/UTC' + +#------------------------------------------------------------------------------ +# PROCESS TITLE +#------------------------------------------------------------------------------ + +cluster_name = '13/main' # added to process titles if nonempty + # (change requires restart) +#update_process_title = on + + +#------------------------------------------------------------------------------ +# STATISTICS +#------------------------------------------------------------------------------ + +# - Query and Index Statistics Collector - + +#track_activities = on +#track_counts = on +#track_io_timing = off +#track_functions = none # none, pl, all +#track_activity_query_size = 1024 # (change requires restart) +stats_temp_directory = '/var/run/postgresql/13-main.pg_stat_tmp' + + +# - Monitoring - + +#log_parser_stats = off +#log_planner_stats = off +#log_executor_stats = off +#log_statement_stats = off + + +#------------------------------------------------------------------------------ +# AUTOVACUUM +#------------------------------------------------------------------------------ + +#autovacuum = on # Enable autovacuum subprocess? 'on' + # requires track_counts to also be on. +#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and + # their durations, > 0 logs only + # actions running at least this number + # of milliseconds. +#autovacuum_max_workers = 3 # max number of autovacuum subprocesses + # (change requires restart) +#autovacuum_naptime = 1min # time between autovacuum runs +#autovacuum_vacuum_threshold = 50 # min number of row updates before + # vacuum +#autovacuum_vacuum_insert_threshold = 1000 # min number of row inserts + # before vacuum; -1 disables insert + # vacuums +#autovacuum_analyze_threshold = 50 # min number of row updates before + # analyze +#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum +#autovacuum_vacuum_insert_scale_factor = 0.2 # fraction of inserts over table + # size before insert vacuum +#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze +#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum + # (change requires restart) +#autovacuum_multixact_freeze_max_age = 400000000 # maximum multixact age + # before forced vacuum + # (change requires restart) +#autovacuum_vacuum_cost_delay = 2ms # default vacuum cost delay for + # autovacuum, in milliseconds; + # -1 means use vacuum_cost_delay +#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for + # autovacuum, -1 means use + # vacuum_cost_limit + + +#------------------------------------------------------------------------------ +# CLIENT CONNECTION DEFAULTS +#------------------------------------------------------------------------------ + +# - Statement Behavior - + +#client_min_messages = notice # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # log + # notice + # warning + # error +#search_path = '"$user", public' # schema names +#row_security = on +#default_tablespace = '' # a tablespace name, '' uses the default +#temp_tablespaces = '' # a list of tablespace names, '' uses + # only default tablespace +#default_table_access_method = 'heap' +#check_function_bodies = on +#default_transaction_isolation = 'read committed' +#default_transaction_read_only = off +#default_transaction_deferrable = off +#session_replication_role = 'origin' +#statement_timeout = 0 # in milliseconds, 0 is disabled +#lock_timeout = 0 # in milliseconds, 0 is disabled +#idle_in_transaction_session_timeout = 0 # in milliseconds, 0 is disabled +#vacuum_freeze_min_age = 50000000 +#vacuum_freeze_table_age = 150000000 +#vacuum_multixact_freeze_min_age = 5000000 +#vacuum_multixact_freeze_table_age = 150000000 +#vacuum_cleanup_index_scale_factor = 0.1 # fraction of total number of tuples + # before index cleanup, 0 always performs + # index cleanup +#bytea_output = 'hex' # hex, escape +#xmlbinary = 'base64' +#xmloption = 'content' +#gin_fuzzy_search_limit = 0 +#gin_pending_list_limit = 4MB + +# - Locale and Formatting - + +datestyle = 'iso, mdy' +#intervalstyle = 'postgres' +timezone = 'Etc/UTC' +#timezone_abbreviations = 'Default' # Select the set of available time zone + # abbreviations. Currently, there are + # Default + # Australia (historical usage) + # India + # You can create your own file in + # share/timezonesets/. +#extra_float_digits = 1 # min -15, max 3; any value >0 actually + # selects precise output mode +#client_encoding = sql_ascii # actually, defaults to database + # encoding + +# These settings are initialized by initdb, but they can be changed. +lc_messages = 'en_US.UTF-8' # locale for system error message + # strings +lc_monetary = 'en_US.UTF-8' # locale for monetary formatting +lc_numeric = 'en_US.UTF-8' # locale for number formatting +lc_time = 'en_US.UTF-8' # locale for time formatting + +# default configuration for text search +default_text_search_config = 'pg_catalog.english' + +# - Shared Library Preloading - + +#shared_preload_libraries = '' # (change requires restart) +#local_preload_libraries = '' +#session_preload_libraries = '' +#jit_provider = 'llvmjit' # JIT library to use + +# - Other Defaults - + +#dynamic_library_path = '$libdir' +#extension_destdir = '' # prepend path when loading extensions + # and shared objects (added by Debian) + + +#------------------------------------------------------------------------------ +# LOCK MANAGEMENT +#------------------------------------------------------------------------------ + +#deadlock_timeout = 1s +#max_locks_per_transaction = 64 # min 10 + # (change requires restart) +#max_pred_locks_per_transaction = 64 # min 10 + # (change requires restart) +#max_pred_locks_per_relation = -2 # negative values mean + # (max_pred_locks_per_transaction + # / -max_pred_locks_per_relation) - 1 +#max_pred_locks_per_page = 2 # min 0 + + +#------------------------------------------------------------------------------ +# VERSION AND PLATFORM COMPATIBILITY +#------------------------------------------------------------------------------ + +# - Previous PostgreSQL Versions - + +#array_nulls = on +#backslash_quote = safe_encoding # on, off, or safe_encoding +#escape_string_warning = on +#lo_compat_privileges = off +#operator_precedence_warning = off +#quote_all_identifiers = off +#standard_conforming_strings = on +#synchronize_seqscans = on + +# - Other Platforms and Clients - + +#transform_null_equals = off + + +#------------------------------------------------------------------------------ +# ERROR HANDLING +#------------------------------------------------------------------------------ + +#exit_on_error = off # terminate session on any error? +#restart_after_crash = on # reinitialize after backend crash? +#data_sync_retry = off # retry or panic on failure to fsync + # data? + # (change requires restart) + + +#------------------------------------------------------------------------------ +# CONFIG FILE INCLUDES +#------------------------------------------------------------------------------ + +# These options allow settings to be loaded from files other than the +# default postgresql.conf. Note that these are directives, not variable +# assignments, so they can usefully be given more than once. + +include_dir = 'conf.d' # include files ending in '.conf' from + # a directory, e.g., 'conf.d' +#include_if_exists = '...' # include file only if it exists +#include = '...' # include file + + +#------------------------------------------------------------------------------ +# CUSTOMIZED OPTIONS +#------------------------------------------------------------------------------ + +# Add settings for extensions here