🚧 Improve build scripts.

This commit is contained in:
Andrey Antukh 2019-12-09 16:29:26 +01:00
parent b5c8afe69f
commit 94fe18b4ae
12 changed files with 649 additions and 449 deletions

2
backend/bin/kaocha Executable file
View file

@ -0,0 +1,2 @@
#!/usr/bin/env bash
clojure -A:dev:test -m kaocha.runner "$@"

14
backend/bin/start Executable file
View file

@ -0,0 +1,14 @@
#!/bin/sh
set -e
if [ ! -e ~/local/.fixtures-loaded ]; then
echo "Loading fixtures..."
clojure -Adev -m uxbox.fixtures
touch ~/local/.fixtures-loaded
fi
clojure -J-XX:-OmitStackTraceInFastThrow -m uxbox.main

View file

@ -1,4 +1,5 @@
{:deps {org.clojure/clojure {:mvn/version "1.10.1"}
{:deps
{org.clojure/clojure {:mvn/version "1.10.1"}
funcool/promesa {:mvn/version "5.0.0-SNAPSHOT"}
funcool/cuerdas {:mvn/version "2.2.1"}
@ -42,23 +43,32 @@
io.aviso/pretty {:mvn/version "0.1.37"}
mount/mount {:mvn/version "0.1.16"}
environ/environ {:mvn/version "1.1.0"}
}
environ/environ {:mvn/version "1.1.0"}}
:paths ["src" "vendor" "resources"]
:aliases
{:dev
{:extra-deps {com.bhauman/rebel-readline {:mvn/version "0.1.4"}
{:extra-deps
{com.bhauman/rebel-readline {:mvn/version "0.1.4"}
org.clojure/tools.namespace {:mvn/version "0.3.1"}
fipp/fipp {:mvn/version "0.6.21"}
criterium/criterium {:mvn/version "0.4.5"}
mockery/mockery {:mvn/version "0.1.4"}
}
mockery/mockery {:mvn/version "0.1.4"}}
:extra-paths ["test"]}
:repl {:main-opts ["-m" "rebel-readline.main"]}
:nrepl {:extra-deps {nrepl/nrepl {:mvn/version "0.6.0"}}
:repl
{:main-opts ["-m" "rebel-readline.main"]}
:test
{:extra-deps {lambdaisland/kaocha {:mvn/version "0.0-554"}}}
:nrepl
{:extra-deps {nrepl/nrepl {:mvn/version "0.6.0"}}
:main-opts ["-m" "nrepl.cmdline"]}
:ancient {:main-opts ["-m" "deps-ancient.deps-ancient"]
:ancient
{:main-opts ["-m" "deps-ancient.deps-ancient"]
:extra-deps {deps-ancient {:mvn/version "RELEASE"}}}
}}

5
backend/tests.edn Normal file
View file

@ -0,0 +1,5 @@
#kaocha/v1
{:tests
[{:id :unit
:test-paths ["test" "src"]
:ns-patterns ["test-.*"]}]}

View file

@ -49,6 +49,7 @@ services:
postgres:
image: postgres:12
# command: postgres -c config_file=/etc/postgresql.conf
hostname: 'uxbox-devenv-postgres'
container_name: 'uxbox-devenv-postgres'
restart: always
@ -61,4 +62,5 @@ services:
- POSTGRES_USER=uxbox
- POSTGRES_PASSWORD=uxbox
volumes:
# - ./files/postgresql.conf:/etc/postgresql.conf
- postgres_data:/var/lib/postgresql/data

View file

@ -1,3 +1,4 @@
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
@ -16,9 +17,9 @@
#
# This file is read on server startup and when the server receives a SIGHUP
# signal. If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload". Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
# server for the changes to take effect, run "pg_ctl reload", or execute
# "SELECT pg_reload_conf()". Some parameters, which are marked below,
# require a server shutdown and restart to take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on". Some parameters can be changed at run time
@ -38,15 +39,15 @@
# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.
data_directory = '/var/lib/postgresql/9.5/main' # use data in another directory
#data_directory = 'ConfigDir' # use data in another directory
# (change requires restart)
hba_file = '/etc/postgresql/9.5/main/pg_hba.conf' # host-based authentication file
#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
# (change requires restart)
ident_file = '/etc/postgresql/9.5/main/pg_ident.conf' # ident configuration file
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
# (change requires restart)
# If external_pid_file is not explicitly set, no extra PID file is written.
external_pid_file = '/var/run/postgresql/9.5-main.pid' # write an extra PID file
#external_pid_file = '' # write an extra PID file
# (change requires restart)
@ -56,16 +57,14 @@ external_pid_file = '/var/run/postgresql/9.5-main.pid' # write an extra PID fi
# - Connection Settings -
#listen_addresses = 'localhost' # what IP address(es) to listen on;
listen_addresses = '*'
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
#port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
# Note: Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
#unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
@ -75,27 +74,7 @@ unix_socket_directories = '/var/run/postgresql' # comma-separated list of direct
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
# - Security and Authentication -
#authentication_timeout = 1min # 1s-600s
ssl = true # (change requires restart)
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
# (change requires restart)
#ssl_prefer_server_ciphers = on # (change requires restart)
#ssl_ecdh_curve = 'prime256v1' # (change requires restart)
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem' # (change requires restart)
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key' # (change requires restart)
#ssl_ca_file = '' # (change requires restart)
#ssl_crl_file = '' # (change requires restart)
#password_encryption = on
#db_user_namespace = off
#row_security = on
# GSSAPI using Kerberos
#krb_server_keyfile = ''
#krb_caseins_users = off
# - TCP Keepalives -
# - TCP settings -
# see "man 7 tcp" for details
#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;
@ -104,6 +83,34 @@ ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key' # (change requires rest
# 0 selects the system default
#tcp_keepalives_count = 0 # TCP_KEEPCNT;
# 0 selects the system default
#tcp_user_timeout = 0 # TCP_USER_TIMEOUT, in milliseconds;
# 0 selects the system default
# - Authentication -
#authentication_timeout = 1min # 1s-600s
#password_encryption = md5 # md5 or scram-sha-256
#db_user_namespace = off
# GSSAPI using Kerberos
#krb_server_keyfile = ''
#krb_caseins_users = off
# - SSL -
#ssl = off
#ssl_ca_file = ''
#ssl_cert_file = 'server.crt'
#ssl_crl_file = ''
#ssl_key_file = 'server.key'
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
#ssl_prefer_server_ciphers = on
#ssl_ecdh_curve = 'prime256v1'
#ssl_min_protocol_version = 'TLSv1'
#ssl_max_protocol_version = ''
#ssl_dh_params_file = ''
#ssl_passphrase_command = ''
#ssl_passphrase_command_supports_reload = off
#------------------------------------------------------------------------------
@ -116,39 +123,42 @@ shared_buffers = 256MB # min 128kB
# (change requires restart)
#huge_pages = try # on, off, or try
# (change requires restart)
#temp_buffers = 8MB # min 800kB
temp_buffers = 8MB # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
# (change requires restart)
# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
#work_mem = 4MB # min 64kB
# Caution: it is not advisable to set max_prepared_transactions nonzero unless
# you actively intend to use prepared transactions.
work_mem = 8MB # min 64kB
#maintenance_work_mem = 64MB # min 1MB
#autovacuum_work_mem = -1 # min 1MB, or -1 to use maintenance_work_mem
#max_stack_depth = 2MB # min 100kB
#shared_memory_type = mmap # the default is the first option
# supported by the operating system:
# mmap
# sysv
# windows
# (change requires restart)
dynamic_shared_memory_type = posix # the default is the first option
# supported by the operating system:
# posix
# sysv
# windows
# mmap
# use none to disable dynamic shared memory
# (change requires restart)
# - Disk -
#temp_file_limit = -1 # limits per-session temp file space
#temp_file_limit = -1 # limits per-process temp file space
# in kB, or -1 for no limit
# - Kernel Resource Usage -
# - Kernel Resources -
#max_files_per_process = 1000 # min 25
# (change requires restart)
#shared_preload_libraries = '' # (change requires restart)
# - Cost-Based Vacuum Delay -
#vacuum_cost_delay = 0 # 0-100 milliseconds
#vacuum_cost_delay = 0 # 0-100 milliseconds (0 disables)
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
@ -157,26 +167,37 @@ dynamic_shared_memory_type = posix # the default is the first option
# - Background Writer -
#bgwriter_delay = 200ms # 10-10000ms between rounds
#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round
#bgwriter_lru_maxpages = 100 # max buffers written/round, 0 disables
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multiplier on buffers scanned/round
#bgwriter_flush_after = 512kB # measured in pages, 0 disables
# - Asynchronous Behavior -
#effective_io_concurrency = 1 # 1-1000; 0 disables prefetching
#max_worker_processes = 8
#max_worker_processes = 8 # (change requires restart)
#max_parallel_maintenance_workers = 2 # taken from max_parallel_workers
#max_parallel_workers_per_gather = 2 # taken from max_parallel_workers
#parallel_leader_participation = on
#max_parallel_workers = 8 # maximum number of max_worker_processes that
# can be used in parallel operations
#old_snapshot_threshold = -1 # 1min-60d; -1 disables; 0 is immediate
# (change requires restart)
#backend_flush_after = 0 # measured in pages, 0 disables
#------------------------------------------------------------------------------
# WRITE AHEAD LOG
# WRITE-AHEAD LOG
#------------------------------------------------------------------------------
# - Settings -
#wal_level = minimal # minimal, archive, hot_standby, or logical
#wal_level = replica # minimal, replica, or logical
# (change requires restart)
#fsync = on # turns forced synchronization on or off
#fsync = on # flush data to disk for crash safety
# (turning this off can cause
# unrecoverable data corruption)
synchronous_commit = off # synchronization level;
# off, local, remote_write, or on
# off, local, remote_write, remote_apply, or on
#wal_sync_method = fsync # the default is the first option
# supported by the operating system:
# open_datasync
@ -188,19 +209,23 @@ synchronous_commit = off # synchronization level;
#wal_compression = off # enable compression of full-page writes
#wal_log_hints = off # also do full page writes of non-critical updates
# (change requires restart)
#wal_init_zero = on # zero-fill new WAL files
#wal_recycle = on # recycle WAL files
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
# (change requires restart)
wal_writer_delay = 300ms # 1-10000 milliseconds
#wal_writer_delay = 200ms # 1-10000 milliseconds
#wal_writer_flush_after = 1MB # measured in pages, 0 disables
#commit_delay = 0 # range 0-100000, in microseconds
#commit_siblings = 5 # range 1-1000
# - Checkpoints -
#checkpoint_timeout = 5min # range 30s-1h
#max_wal_size = 1GB
#min_wal_size = 80MB
#checkpoint_timeout = 5min # range 30s-1d
max_wal_size = 1GB
min_wal_size = 80MB
#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0
#checkpoint_flush_after = 256kB # measured in pages, 0 disables
#checkpoint_warning = 30s # 0 disables
# - Archiving -
@ -214,21 +239,57 @@ wal_writer_delay = 300ms # 1-10000 milliseconds
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables
# - Archive Recovery -
# These are only used in recovery mode.
#restore_command = '' # command to use to restore an archived logfile segment
# placeholders: %p = path of file to restore
# %f = file name only
# e.g. 'cp /mnt/server/archivedir/%f %p'
# (change requires restart)
#archive_cleanup_command = '' # command to execute at every restartpoint
#recovery_end_command = '' # command to execute at completion of recovery
# - Recovery Target -
# Set these only when performing a targeted recovery.
#recovery_target = '' # 'immediate' to end recovery as soon as a
# consistent state is reached
# (change requires restart)
#recovery_target_name = '' # the named restore point to which recovery will proceed
# (change requires restart)
#recovery_target_time = '' # the time stamp up to which recovery will proceed
# (change requires restart)
#recovery_target_xid = '' # the transaction ID up to which recovery will proceed
# (change requires restart)
#recovery_target_lsn = '' # the WAL LSN up to which recovery will proceed
# (change requires restart)
#recovery_target_inclusive = on # Specifies whether to stop:
# just after the specified recovery target (on)
# just before the recovery target (off)
# (change requires restart)
#recovery_target_timeline = 'latest' # 'current', 'latest', or timeline ID
# (change requires restart)
#recovery_target_action = 'pause' # 'pause', 'promote', 'shutdown'
# (change requires restart)
#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------
# - Sending Server(s) -
# - Sending Servers -
# Set these on the master and on any standby that will send replication data.
#max_wal_senders = 0 # max number of walsender processes
#max_wal_senders = 10 # max number of walsender processes
# (change requires restart)
#wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables
#wal_keep_segments = 0 # in logfile segments; 0 disables
#wal_sender_timeout = 60s # in milliseconds; 0 disables
#max_replication_slots = 0 # max number of replication slots
#max_replication_slots = 10 # max number of replication slots
# (change requires restart)
#track_commit_timestamp = off # collect timestamp of transaction commit
# (change requires restart)
@ -238,7 +299,8 @@ wal_writer_delay = 300ms # 1-10000 milliseconds
# These settings are ignored on a standby server.
#synchronous_standby_names = '' # standby servers that provide sync rep
# comma-separated list of application_name
# method to choose sync standbys, number of sync standbys,
# and comma-separated list of application_name
# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed
@ -246,7 +308,12 @@ wal_writer_delay = 300ms # 1-10000 milliseconds
# These settings are ignored on a master server.
#hot_standby = off # "on" allows queries during recovery
#primary_conninfo = '' # connection string to sending server
# (change requires restart)
#primary_slot_name = '' # replication slot on sending server
# (change requires restart)
#promote_trigger_file = '' # file name whose presence ends recovery
#hot_standby = on # "off" disallows queries during recovery
# (change requires restart)
#max_standby_archive_delay = 30s # max delay before canceling queries
# when reading WAL from archive;
@ -263,6 +330,15 @@ wal_writer_delay = 300ms # 1-10000 milliseconds
# in milliseconds; 0 disables
#wal_retrieve_retry_interval = 5s # time to wait before retrying to
# retrieve WAL after a failed attempt
#recovery_min_apply_delay = 0 # minimum delay for applying changes during recovery
# - Subscribers -
# These settings are ignored on a publisher.
#max_logical_replication_workers = 4 # taken from max_worker_processes
# (change requires restart)
#max_sync_workers_per_subscription = 2 # taken from max_logical_replication_workers
#------------------------------------------------------------------------------
@ -279,9 +355,14 @@ wal_writer_delay = 300ms # 1-10000 milliseconds
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_parallel_append = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on
#enable_partitionwise_join = off
#enable_partitionwise_aggregate = off
#enable_parallel_hash = on
#enable_partition_pruning = on
# - Planner Cost Constants -
@ -290,6 +371,20 @@ wal_writer_delay = 300ms # 1-10000 milliseconds
#cpu_tuple_cost = 0.01 # same scale as above
#cpu_index_tuple_cost = 0.005 # same scale as above
#cpu_operator_cost = 0.0025 # same scale as above
#parallel_tuple_cost = 0.1 # same scale as above
#parallel_setup_cost = 1000.0 # same scale as above
#jit_above_cost = 100000 # perform JIT compilation if available
# and query more expensive than this;
# -1 disables
#jit_inline_above_cost = 500000 # inline small functions if query is
# more expensive than this; -1 disables
#jit_optimize_above_cost = 500000 # use expensive JIT optimizations if
# query is more expensive than this;
# -1 disables
#min_parallel_table_scan_size = 8MB
#min_parallel_index_scan_size = 512kB
#effective_cache_size = 4GB
# - Genetic Query Optimizer -
@ -310,10 +405,14 @@ wal_writer_delay = 300ms # 1-10000 milliseconds
#from_collapse_limit = 8
#join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOIN clauses
#force_parallel_mode = off
#jit = on # allow JIT compilation
#plan_cache_mode = auto # auto, force_generic_plan or
# force_custom_plan
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
# REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
@ -324,15 +423,15 @@ log_destination = 'stderr' # Valid values are combinations of
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
#logging_collector = off # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = 'pg_log' # directory where log files are written,
#log_directory = 'log' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d.log' # log file name pattern,
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
# can include strftime() escapes
#log_file_mode = 0600 # creation mode for log files,
# begin with 0 to use octal notation
@ -353,23 +452,15 @@ log_filename = 'postgresql-%Y-%m-%d.log' # log file name pattern,
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
#syslog_sequence_numbers = on
#syslog_split_messages = on
# This is only relevant when logging to eventlog (win32):
# (change requires restart)
#event_source = 'PostgreSQL'
# - When to Log -
#client_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
#log_min_messages = warning # values in order of decreasing detail:
# debug5
# debug4
@ -403,6 +494,9 @@ log_min_duration_statement = 0 # -1 is disabled, 0 logs all statements
# statements running at least this number
# of milliseconds
#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 -
@ -416,7 +510,7 @@ log_min_duration_statement = 0 # -1 is disabled, 0 logs all statements
#log_duration = off
#log_error_verbosity = default # terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '%t [%p-%l] %q%u@%d ' # special values:
#log_line_prefix = '%m [%p] ' # special values:
# %a = application name
# %u = user name
# %d = database name
@ -425,6 +519,7 @@ log_line_prefix = '%t [%p-%l] %q%u@%d ' # special values:
# %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
@ -442,10 +537,11 @@ log_line_prefix = '%t [%p-%l] %q%u@%d ' # special values:
#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 = 'UTC'
log_timezone = 'Etc/UTC'
# - Process Title -
#------------------------------------------------------------------------------
# PROCESS TITLE
#------------------------------------------------------------------------------
#cluster_name = '' # added to process titles if nonempty
# (change requires restart)
@ -453,20 +549,20 @@ log_timezone = 'UTC'
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
# STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
# - 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/9.5-main.pg_stat_tmp'
#stats_temp_directory = 'pg_stat_tmp'
# - Statistics Monitoring -
# - Monitoring -
#log_parser_stats = off
#log_planner_stats = off
@ -475,7 +571,7 @@ stats_temp_directory = '/var/run/postgresql/9.5-main.pg_stat_tmp'
#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
# AUTOVACUUM
#------------------------------------------------------------------------------
#autovacuum = on # Enable autovacuum subprocess? 'on'
@ -498,7 +594,7 @@ stats_temp_directory = '/var/run/postgresql/9.5-main.pg_stat_tmp'
#autovacuum_multixact_freeze_max_age = 400000000 # maximum multixact age
# before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
#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
@ -512,10 +608,22 @@ stats_temp_directory = '/var/run/postgresql/9.5-main.pg_stat_tmp'
# - 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
@ -523,10 +631,14 @@ stats_temp_directory = '/var/run/postgresql/9.5-main.pg_stat_tmp'
#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'
@ -537,7 +649,7 @@ stats_temp_directory = '/var/run/postgresql/9.5-main.pg_stat_tmp'
datestyle = 'iso, mdy'
#intervalstyle = 'postgres'
timezone = 'UTC'
timezone = 'Etc/UTC'
#timezone_abbreviations = 'Default' # Select the set of available time zone
# abbreviations. Currently, there are
# Default
@ -545,25 +657,31 @@ timezone = 'UTC'
# India
# You can create your own file in
# share/timezonesets/.
#extra_float_digits = 0 # min -15, max 3
#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 = 'C' # locale for system error message
lc_messages = 'en_US.utf8' # locale for system error message
# strings
lc_monetary = 'C' # locale for monetary formatting
lc_numeric = 'C' # locale for number formatting
lc_time = 'C' # locale for time formatting
lc_monetary = 'en_US.utf8' # locale for monetary formatting
lc_numeric = 'en_US.utf8' # locale for number formatting
lc_time = 'en_US.utf8' # 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'
#local_preload_libraries = ''
#session_preload_libraries = ''
#------------------------------------------------------------------------------
@ -573,27 +691,26 @@ default_text_search_config = 'pg_catalog.english'
#deadlock_timeout = 1s
#max_locks_per_transaction = 64 # min 10
# (change requires restart)
# Note: Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#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/PLATFORM COMPATIBILITY
# VERSION AND PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------
# - Previous PostgreSQL Versions -
#array_nulls = on
#backslash_quote = safe_encoding # on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#lo_compat_privileges = off
#operator_precedence_warning = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on
@ -608,6 +725,9 @@ default_text_search_config = 'pg_catalog.english'
#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)
#------------------------------------------------------------------------------
@ -615,12 +735,13 @@ default_text_search_config = 'pg_catalog.english'
#------------------------------------------------------------------------------
# These options allow settings to be loaded from files other than the
# default postgresql.conf.
# 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
# directory 'conf.d'
#include_if_exists = 'exists.conf' # include file only if it exists
#include = 'special.conf' # include file
#include_dir = '...' # include files ending in '.conf' from
# a directory, e.g., 'conf.d'
#include_if_exists = '...' # include file only if it exists
#include = '...' # include file
#------------------------------------------------------------------------------
@ -628,3 +749,5 @@ default_text_search_config = 'pg_catalog.english'
#------------------------------------------------------------------------------
# Add settings for extensions here

View file

@ -10,8 +10,7 @@ tmux send-keys -t uxbox 'clojure -Adev tools.clj figwheel' enter
tmux new-window -t uxbox:2 -n 'backend'
tmux select-window -t uxbox:2
tmux send-keys -t uxbox 'cd uxbox/backend' enter C-l
# tmux send-keys -t uxbox 'clojure -Adev -m uxbox.fixtures' enter C-l
tmux send-keys -t uxbox 'clojure -Adev:repl' enter
tmux send-keys -t uxbox './bin/start' enter
tmux rename-window -t uxbox:0 'gulp'
tmux select-window -t uxbox:0

View file

@ -14,7 +14,7 @@ networks:
services:
postgres:
image: postgres:11
image: postgres:12
restart: always
stop_signal: SIGINT
ports:
@ -26,46 +26,51 @@ services:
- POSTGRES_PASSWORD=uxbox_postgres_password
volumes:
- postgres_data:/var/lib/postgresql/data
# - /etc/localtime:/etc/localtime:ro
# - /etc/timezone:/etc/timezone:ro
backend:
image: uxbox-backend:latest
restart: always
depends_on:
- postgres
- smtp
ports:
- 6060
volumes:
- backend_data:/srv/uxbox/data
- backend_m2:/root/.m2
# - /etc/localtime:/etc/localtime:ro
# - /etc/timezone:/etc/timezone:ro
environment:
# HTTP setup
- UXBOX_HTTP_SERVER_DEBUG=false
- UXBOX_HTTP_SERVER_CORS=*
# Media & Assets
- UXBOX_MEDIA_URI="/media/"
- UXBOX_ASSETS_URI="/static/"
- UXBOX_MEDIA_DIRECTORY="data/media"
- UXBOX_ASSETS_DIRECTORY="data/static"
# Database setup
- UXBOX_DATABASE_URI="jdbc:postgresql://postgres/uxbox"
# Database setup (using the `postgres` container)
- UXBOX_DATABASE_URI="postgresql://postgres/uxbox"
- UXBOX_DATABASE_USERNAME="uxbox"
- UXBOX_DATABASE_PASSWORD="uxbox_postgres_password"
# Mail setup
- UXBOX_EMAIL_REPLY_TO="no-reply@uxbox.io"
- UXBOX_EMAIL_FROM="no-reply@uxbox.io"
# STMP setup
- UXBOX_SMTP_HOST="localhost"
# STMP setup (using the `smtp` container)
- UXBOX_SMTP_HOST="smtp"
- UXBOX_SMTP_PORT=25
- UXBOX_SMTP_USER="uxbox"
- UXBOX_SMTP_PASSWORD="youshouldoverwritethiswithsomethingelse"
# - UXBOX_SMTP_PASSWORD=""
- UXBOX_SMTP_SSL=false
- UXBOX_SMTP_TLS=false
- UXBOX_SMTP_ENABLED=false
# Security setup
- UXBOX_SECRET="foobar"
## Security setup
# Overwrite with a randomy generated string. Mainly used as
# shared key for sign cookies, tokens, etc.
- UXBOX_SECRET="the very secret string"
frontend:
image: uxbox-frontend:latest
@ -76,8 +81,6 @@ services:
- 8080:8080
volumes:
- backend_data:/srv/uxbox/
# - /etc/localtime:/etc/localtime:ro
# - /etc/timezone:/etc/timezone:ro
frontend-dev:
image: uxbox-frontend-dbg:latest
@ -88,6 +91,12 @@ services:
- 8081:8080
volumes:
- backend_data:/srv/uxbox/
# - /etc/localtime:/etc/localtime:ro
# - /etc/timezone:/etc/timezone:ro
smtp:
image: mwader/postfix-relay
restart: always
environment:
- POSTFIX_myhostname=smtp.uxbox.io
- OPENDKIM_DOMAINS=smtp.uxbox.io

View file

@ -1,8 +1,11 @@
{:deps {org.clojure/clojurescript {:mvn/version "1.10.520"}
{:deps
{org.clojure/clojurescript {:mvn/version "1.10.597"}
org.clojure/clojure {:mvn/version "1.10.1"}
com.cognitect/transit-cljs {:mvn/version "0.8.256"}
cljsjs/react-dom-server {:mvn/version "16.9.0-0"}
cljsjs/react {:mvn/version "16.11.0-0"}
cljsjs/react-dom {:mvn/version "16.11.0-0"}
cljsjs/react-dom-server {:mvn/version "16.11.0-0"}
environ/environ {:mvn/version "1.1.0"}
metosin/reitit-core {:mvn/version "0.3.10"}
@ -17,14 +20,20 @@
}
:paths ["src" "vendor" "resources"]
:aliases
{:dev {:extra-deps {com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"}
{:dev
{:extra-deps
{com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"}
com.bhauman/rebel-readline {:mvn/version "0.1.4"}
com.bhauman/figwheel-main {:mvn/version "0.2.3"}
org.clojure/tools.namespace {:mvn/version "0.3.1"}}
:extra-paths ["test"]}
:repl {:main-opts ["-m" "rebel-readline.main"]}
:ancient {:main-opts ["-m" "deps-ancient.deps-ancient"]
:repl
{:main-opts ["-m" "rebel-readline.main"]}
:ancient
{:main-opts ["-m" "deps-ancient.deps-ancient"]
:extra-deps {deps-ancient {:mvn/version "RELEASE"}}}
}}

View file

@ -149,7 +149,7 @@
[:ul.library-elements
(when own?
[:li
[:a.btn-primary {:on-click #(st/emit! (di/create-collection))}
[:a.btn-primary {:on-click #(st/emit! di/create-collection)}
(tr "ds.icons-collection.new")]])
(when own?
[:& nav-item {:selected? (nil? id)}])

View file

@ -49,14 +49,11 @@
(def main-build-options
{:output-dir "resources/public/js"
:asset-path "/js"
:modules {:common {:entries #{}
:output-to "resources/public/js/common.js"}
:main {:entries #{"uxbox.main"}
:output-to "resources/public/js/main.js"
:depends-on #{:common}}
:modules {:main {:entries #{"uxbox.main"}
:output-to "resources/public/js/main.js"}
:view {:entries #{"uxbox.view"}
:output-to "resources/public/js/view.js"
:depends-on #{:common}}}})
}}})
(def worker-build-options
{:main 'uxbox.worker
@ -70,7 +67,6 @@
main-build-options
dist-build-options)
(assoc :output-dir "dist/js")
(assoc-in [:modules :common :output-to] "dist/js/common.js")
(assoc-in [:modules :main :output-to] "dist/js/main.js")
(assoc-in [:modules :view :output-to] "dist/js/view.js")))
@ -99,7 +95,7 @@
(defmethod task "dist:main"
[args]
(let [cfg main-dist-build-options]
;; (pprint cfg)
(pprint cfg)
(api/build (api/inputs "src") cfg)))
(defmethod task "dist:worker"

View file

@ -92,19 +92,29 @@ function build-frontend-local {
}
function build-frontend-image {
echo "#############################################"
echo "## START build 'uxbox-frontend' image. ##"
echo "#############################################"
build-frontend-local "dist" || exit 1;
rm -rf docker/frontend/dist || exit 1;
cp -vr frontend/dist docker/frontend/ || exit 1;
# rm -rf docker/frontend/dist || exit 1;
# cp -vr frontend/dist docker/frontend/ || exit 1;
docker build --rm=true \
-t uxbox-frontend:$REV \
-t uxbox-frontend:latest \
docker/frontend/;
# docker build --rm=true \
# -t uxbox-frontend:$REV \
# -t uxbox-frontend:latest \
# docker/frontend/;
rm -rf docker/frontend/dist || exit 1;
# rm -rf docker/frontend/dist || exit 1;
echo "#############################################"
echo "## END build 'uxbox-frontend' image. ##"
echo "#############################################"
}
function build-frontend-dbg-image {
echo "#############################################"
echo "## START build 'uxbox-frontend-dbg' image. ##"
echo "#############################################"
build-frontend-local "dbg-dist" || exit 1;
rm -rf docker/frontend/dist || exit 1;
cp -vr frontend/dist docker/frontend/ || exit 1;
@ -115,6 +125,11 @@ function build-frontend-dbg-image {
docker/frontend/;
rm -rf docker/frontend/dist || exit 1;
echo "#############################################"
echo "## END build 'uxbox-frontend-dbg' image. ##"
echo "#############################################"
}
function build-backend-local {
@ -132,6 +147,10 @@ function build-backend-local {
}
function build-backend-image {
echo "#############################################"
echo "## START build 'uxbox-backend' image. ##"
echo "#############################################"
build-backend-local || exit 1;
rm -rf docker/backend/dist || exit 1;
cp -vr backend/dist docker/backend/ || exit 1;
@ -142,6 +161,11 @@ function build-backend-image {
docker/backend/;
rm -rf docker/backend/dist || exit 1;
echo "#############################################"
echo "## END build 'uxbox-backend' image. ##"
echo "#############################################"
}
function build-images {
@ -176,6 +200,10 @@ function log {
docker-compose -p uxbox -f docker/docker-compose.yml logs -f --tail=50
}
function log-devenv {
docker-compose -p uxbox-devenv -f docker/devenv/docker-compose.yaml logs -f --tail=50
}
function stop {
echo "Stoping containers..."
docker-compose -p uxbox -f ./docker/docker-compose.yml stop
@ -225,6 +253,9 @@ case $1 in
stop-devenv)
stop-devenv ${@:2}
;;
log-devenv)
log-devenv ${@:2}
;;
## testin related commands