1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-12-01 05:43:04 +00:00

chore: various tweaks to support running tests in the CI

هذا الالتزام موجود في:
Adam Cooke
2021-07-26 17:38:03 +00:00
الأصل 9288d642b9
التزام c09ab62d0c
21 ملفات معدلة مع 334 إضافات و103 حذوفات

عرض الملف

@@ -13,7 +13,6 @@ Procfile.local
log/*
storage/*
tmp/*
spec/*
.git/*
.github/*
.vscode/*

2
.gitignore مباع
عرض الملف

@@ -23,6 +23,8 @@ config/lets_encrypt.pem
config/signing.key
config/fast_server.cert
config/fast_server.key
config/postal/**/*
public/assets
vendor/bundle

عرض الملف

@@ -15,6 +15,7 @@ RUN apt-get update \
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \
netcat \
curl \
libmariadbclient-dev \
nano \
@@ -46,6 +47,10 @@ RUN echo $VERSION > VERSION
ENTRYPOINT [ "/docker-entrypoint.sh" ]
CMD ["bundle", "exec"]
# ci target - use --target=ci to skip asset compilation
FROM base AS ci
# prod target - default if no --target option is given
FROM base AS prod
# Copy temporary configuration file which can be used for
# running the asset precompilation.

عرض الملف

@@ -96,3 +96,21 @@ ifneq ($(DOCKER_TAG_VERSION),)
"$(DOCKER_IMAGE):$(DOCKER_TAG_VERSION)" && \
docker push "$(DOCKER_IMAGE):$(DOCKER_TAG_VERSION)"
endif
# ==============================================================================
# Tests
# ==============================================================================
.PHONY: ci-test
ci-test: docker-ci-build
$(eval IMAGE := $(shell $(DOCKER_CI_BUILD_CMD) -q))
$(eval RAND := $(shell echo "$${RANDOM}$$(date +%s)"))
POSTAL_IMAGE=$(IMAGE) \
docker-compose -p "postal$(RAND)" run --rm postal sh -c 'bundle exec rspec'; \
EXIT_CODE=$$?; \
docker-compose -p "postal$(RAND)" down -v; \
exit $$EXIT_CODE
.PHONY: test
test:
bundle exec rspec

عرض الملف

@@ -8,8 +8,8 @@ require 'bundler/setup' # Set up gems listed in the Gemfile.
require_relative '../lib/postal/config'
Postal.check_config!
ENV['DATABASE_URL'] = Postal.database_url
ENV['RAILS_ENV'] = Postal.config.rails&.environment || 'development'
if ENV['PROC_NAME']
$0="[postal] #{ENV['PROC_NAME']}"
end

8
config/database.yml Normal file
عرض الملف

@@ -0,0 +1,8 @@
development:
url: <%= Postal.database_url %>
production:
url: <%= Postal.database_url %>
test:
url: <%= Postal.database_url %>

عرض الملف

@@ -1,29 +0,0 @@
web:
host: localhost:5000
protocol: http
fast_server:
bind_address: 0.0.0.0
port: 5001
ssl_port: 5002
main_db:
username: root
logging:
stdout: true
message_db:
username: root
rabbitmq:
username: guest
password: guest
vhost: /
smtp_server:
port: 2525
rails:
environment: development
secret_key: 58e93bbe3773facec4758b49c693f48dee388b07af0d84927bb9733f939abaacf8b44f6298a5d2e96339d0f2478ec6d0b6b1c656d469a2bac4d6f4b69368870c

عرض الملف

@@ -1,70 +0,0 @@
web:
# The host that the management interface will be available on
host: postal.example.com
# The protocol that requests to the management interface should happen on
protocol: https
fast_server:
# This can be enabled to enable click & open tracking on emails. It is disabled by
# default as it requires a separate static IP address on your server.
enabled: false
bind_address:
general:
# This can be changed to allow messages to be sent from multiple IP addresses
use_ip_pools: false
main_db:
# Specify the connection details for your MySQL database
host: 127.0.0.1
username: postal
password: p0stalpassw0rd
database: postal
message_db:
# Specify the connection details for your MySQL server that will be house the
# message databases for mail servers.
host: 127.0.0.1
username: postal
password: p0stalpassw0rd
prefix: postal
rabbitmq:
# Specify the connection details for your RabbitMQ server.
# if you have more than one RabbitMQ server (cluster), you can use array like this:
# host:
# - 10.1.1.1
# - 10.1.1.2
# - 10.1.1.3
host: 127.0.0.1
username: postal
password: p0stalpassw0rd
vhost: /postal
dns:
# Specifies the DNS record that you have configured. Refer to the documentation at
# https://github.com/atech/postal/wiki/Domains-&-DNS-Configuration for further
# information about these.
mx_records:
- mx.postal.example.com
smtp_server_hostname: postal.example.com
spf_include: spf.postal.example.com
return_path: rp.postal.example.com
route_domain: routes.postal.example.com
track_domain: track.postal.example.com
smtp:
# Specify an SMTP server that can be used to send messages from the Postal management
# system to users. You can configure this to use a Postal mail server once the
# your installation has been set up.
host: 127.0.0.1
port: 2525
username: # Complete when Postal is running and you can
password: # generate the credentials within the interface.
from_name: Postal
from_address: postal@yourdomain.com
rails:
# This is generated automatically by the config initialization. It should be a random
# string unique to your installation.
secret_key: {{secretkey}}

عرض الملف

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDBTCCAe2gAwIBAgIURjtcwuA2m7eNeogNfiNiTrxLxt0wDQYJKoZIhvcNAQEL
BQAwEjEQMA4GA1UEAwwHZGVmYXVsdDAeFw0yMTA3MjYxNzM0NDdaFw0zMTA3MjQx
NzM0NDdaMBIxEDAOBgNVBAMMB2RlZmF1bHQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQDWrUHqB2zR2C8Rvn1YQ67wso1a/uDqZwM8UntC8jLFhMtQztA9
BIxqNeXqvPsseHPosjDbfxtGk+WVDfuC0y4Dy9dBZnaq8K+rOUJx1v8cROXlYDa3
NH7AE4r+RqtER/17dm5M8BRyI/SjIuS1EPA9ax8DIwEeYtrEr9m/A1th1C/eWdAF
3O3ECpqzQLQRPDcHx+/2aMN0QirS23HXnZC6+S/LIKtbfUXRnPgzhh1gz71l5yaS
Pr0f6ra6/GyMf1ZVL5S1rN8ySCaPja5vrTYPJfuGfAS2WtaP5cQdl+p8YEtkT1bn
hfNA/K7wvFut1DfndQyE2aTTL7GxfADGM9/VAgMBAAGjUzBRMB0GA1UdDgQWBBQE
Zr7xtvoJkg7aJoec9fO5O5+jEzAfBgNVHSMEGDAWgBQEZr7xtvoJkg7aJoec9fO5
O5+jEzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQA6rixgFS6s
TU95R1QraSVTOMGVvxd8nY+s4cyVJ6GURyyfC/BbhXjWEHT+d+ea/ALAccYphNpS
R42XZ8Ksa8qU+Xz2ivHfjE8LiY4qfjdcdr6HsYVUV15nLQ3G0SQd1XWCNSGfbnY9
15O6llL18byJQ/aliob718G0ckEBNYnbYt0PTESxvFPjVLJ4AKZR4Kqkq3X4ZPyK
DxNtQSPZdvTmAJRGq/hGe9o2IKyH+laMPnB6jacqe3JJuqe+bzN4xOKPMqG9w3Fe
BvMnI/CcjIR0yakIjD0I+lC5kMoF4uV6N4yMzWIMD1F+ps2QwebA81/STDy0N7oo
u6JASdYrUVGt
-----END CERTIFICATE-----

عرض الملف

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDWrUHqB2zR2C8R
vn1YQ67wso1a/uDqZwM8UntC8jLFhMtQztA9BIxqNeXqvPsseHPosjDbfxtGk+WV
DfuC0y4Dy9dBZnaq8K+rOUJx1v8cROXlYDa3NH7AE4r+RqtER/17dm5M8BRyI/Sj
IuS1EPA9ax8DIwEeYtrEr9m/A1th1C/eWdAF3O3ECpqzQLQRPDcHx+/2aMN0QirS
23HXnZC6+S/LIKtbfUXRnPgzhh1gz71l5yaSPr0f6ra6/GyMf1ZVL5S1rN8ySCaP
ja5vrTYPJfuGfAS2WtaP5cQdl+p8YEtkT1bnhfNA/K7wvFut1DfndQyE2aTTL7Gx
fADGM9/VAgMBAAECggEAFiPiQ2emonHAUP0rYjoAxdQ0XekheytKmyMKkVn3QIW0
jk32DgT1ElMitjXtVaXKlnoiLdELGBlSuS+q+9AZ08xnE9ikbnbKN0d9gc4hm2HD
sAdfPT/NvrOFRzo0maMvElehgo/UG/13UofbvIzVqg/tL96hU+fwFg7ozxliiFEw
jvpJcddIYdnUlh1Kb7lvqzeMYPSaUtLoMJeyBSBiOJPr2WqX9I050kgllJxHvTO2
5qF88gwMvqdB+1uhHacXo43Q8sMcv/moR5bYvjrHOXT8MhKWGLe0AoQecFpfPJ/0
r6BsjCDDEpk4Z0jfvMnU9r+jUdrZKf9Y8T7gdmjuIQKBgQDs61PVlSBSi9ONdpbL
J0t7jC4GpuiAF7Mp0BystE8jBwHDRIdkk8bY0bosrtxsc5TPWZpUSSNrwfRkzNkV
FcNjco7WYqhse31w4L5oIkoWPPgeEEB8/ohRzlQzaIcqcyUS3z1lqxi7AGcir6KC
LqYuai7H4oFCo4qjhjQt/3e5jQKBgQDn91jVbmYXJJZnzJhQlAsxQCqcXdGSM7hd
B3IzXLXQtffwIU2WWdRB6nzNO1df5JPR0VnnjSGTPl+9vP2P2YFh36gIzafcdXqr
VWGJc9lQ+XKyqRHSqXmioawxgisDaqO+xCDlgvoSIs2Qx7zTo456L0Qk/VDOx+J0
JSbOmWIZaQKBgBuVMkd1ezPhD5oyqk+wnXse0OT5Xaw8FiHSFuSMgYIkeLIRMmol
QktP74rwOL1vn22ckvkpIrSS+i8aIlPwGrVjSvnutokav3n60HAzPcjlBEYLwlZL
E/fiO69YhhQNH83Yq79AcjqjS16gcB0T7UkOF7Ax0La/b46mO0D3syqpAoGBAOBF
egLouRXZDv4OhpkpeWTFuCz0XEHxdWekYlqcYUEIHk5xtHUQJrMQRlea7xBMjEqJ
EVZZUkPtQ13MEo946Km7NthEFe6FOvPaGfJuKocqliV8Zzn5FxwRGc3IH1QvT1+K
eo/MQYE1WvCG3N72PDOP7V+h9vXlteE7ZjjLfVg5AoGBANnnEt4oMxsvBCKQiQcJ
d+sQVEDx9KHHzYWXsFmUzhP3NlmV4CZ32wV8Eaqsf9pvJrEIjDOZ0AqZ+PBEPpJR
wI9dmKulQ2tvPfH5LOiF7Z/58J86zcthGzPt/xG39Sf7zOpt8YEyeHodwX1dBmw2
9AHo//QVmLc9a7aZSfGli10a
-----END PRIVATE KEY-----

عرض الملف

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA1xHXMa1DPp9+EitqNo/LLf4pFcnxT1UwfuKCrQm7iUzoNt9f
SAsY/Q6d7qZ/mDZFwC9CTUiOswtoYuvjIOZdhigMdIUQOo7vMAnPBvXUIsdZ3qeW
+S/i+KJiOgc+dKXUlJRjGnXb2FNty9dXcsZ/Uiy7v0o1Uers9qmYQU16EhDKWgLc
X9xvXf7x9qGeAJ4Iy0nTpFoy5cSWktde2lZgJsvTBZAUKGaKA60cFPI3FN8LQoK6
vsbM9H8tWQKxrtJ0gsqSncWZhxiO+ur4/bE4jsSXc3VyFYuhe8Yw4bkFenWQBONC
xwm+onaGw6GgAS5QbyGyYKAXPobU5KnFolESdQIDAQABAoIBAQCTnzNObdcSTPeE
ETi+asTTtPkOc6anBZpb/a4kh+GpxJg/0eLc2IE2caoF/VLnb5lA6S9hTMRmMRZd
j/w+wODBDQw/jnYtO58CIjlwVZxeoucU5YPDVxM8BnnVytMbzhe0RIYhy3QzcFCU
8iKcLZOHHB1il9UxfUdZp99SM5PugUWQbcWC2l/OPIJKDHrTkWFxlXMmxKVSGwWS
0QfqHxcJMbs9DJvhlYsIPL+mEhCT8SJH30V++dy3RFuUygBaklc2jtdkvwgTnEs9
Tng2DyGjmcndnzbvw7BBuBcxLsxcR3qY7VGkIGTOaHNjvVN4Cuio9U3d+aX/NX1z
LU6Zd8mhAoGBAPMr3ubRebH419y4vsJy/Mh6wAFgzGXmuepj1yl25TKGViI6RnmT
ulsgXX1qQWnJWFBkXfamC19jjlsG9xeN/bBz7UhNSs0W3mYMBo6coH6YyuLjV2wQ
p+/kY+yjQ5KDRENZT5qQPw0dO+47Zbi8teuysCr6lLeflvZeJvebrZ/rAoGBAOJq
cfWNec6Z2UYZyj7Bx70iMqe3plET+3fikYQh+sFQ0/944kwOczPFoOL8uJhEXmcj
J3eTP+/b315PdsoiLn1wqwoxB377PiCXsp9wLyPuzuDo71UDyCZK5WFIfHlpt6gt
gx22NgqfyXNEWUXjXqqk3zX6JcG6MCCU7Wtrt98fAoGBAJEuqC528olnYLnPM1U1
AedQIkKwYFiWoHlokpWW/tBjlBlrYZhEswalFCxEvDlElQ2qXs9b435YGi4Owoe1
prkq/YglXXuFI9MZavDKYqgy4S8FPLSwXRPE8EPgVf+rj54GPJizdnGF+roJjHn3
cUX/sV53rULUbXU6UVmUAN1xAoGBANRK7ElJ+uD9nhy9h8VqGqc7DnX1m2tAKjQR
a1GSLrTd3bkXlk+r6NatQhoyzb5vtHhOHO5gUb3L0ldyeLY0cJTLdIQczqOAXZNf
yWr3XCv7+Vwm7GkxH5TP+t1JgvSwbDSzX9IXC/rQManzdyUxeIzWBDhvMMHBmuih
2y8yk/gPAoGAbBS1kGId712dHBAGdOrvOyHwPVvAkERvLgFVAlpcyVnaLm47UILv
hwh9jzMczN1QnaCBkPwvkBEzT3k5Xt1KPBK52u+MPrpDWewF3fhnlSsztQti2NsT
4Vm0LDFEuvjvHRtU+HTm68jOJPNIYLiXyVMTxPEkYIhsqSqX2WwVgJQ=
-----END RSA PRIVATE KEY-----

37
config/postal/postal.yml Normal file
عرض الملف

@@ -0,0 +1,37 @@
web_server:
bind_address: 0.0.0.0
port: 5000
smtp_server:
port: 2525
main_db:
host: mariadb.services
username: root
password: llamafarm123
database: postal
message_db:
host: mariadb.services
username: root
password: llamafarm123
prefix: postal
rabbitmq:
host: rabbitmq.services
username: guest
password: guest
vhost: postal
dns:
mx_records:
- mx.postal.example.com
smtp_server_hostname: postal.example.com
spf_include: spf.postal.example.com
return_path: rp.postal.example.com
route_domain: routes.postal.example.com
track_domain: track.postal.example.com
rails:
secret_key: 18bc35146c195d77c1f716d9d4b2e22bbc538e99892276152cce133360d4f9543f5006c29c952e8d0821fcbda482d744f9663863a4c8f94b2c746c8ff63a162fe2d885312b16e2675e01cade0477e0206e3a946b9315183106e3a53bf8676b5079849a95cb0e0d90e228877bdcce49e741b1e6ed3538aaa21e0ccfd83c2a8b12
environment: development

15
config/postal/signing.key Normal file
عرض الملف

@@ -0,0 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDKuLcHPYXIkYJ+IZG/k5MN6cbLeszkL94IEaFyEtubtNjEAQXb
QB5I+dMezeHg7w4I3HBjHROwxgCCBC/h5vnGM6jDO16Z1tW9FDy/FiJCPtacX0NJ
2T5gFRAWoyKoV5xYdRGgO1J2TCo63s66rpTFFwdUsgyBsESvzt6EwkxYowIDAQAB
AoGBAMMf4oQkkqYIcQtI8ons2OnWcBOhYp/s9xDbL4OmZR1NiCu5NFLiN4RUewK2
dslUMDUVQVQVQ8OuAgUjVJdjBFwst1e3v7S73/O2W2UAXPzz0Qqzbni2LWITEYMr
uI/SfsfxmgT9tk7MqRgfBzIlFsssjsgf5vNlbTZY0oVn6ixpAkEA7IbVGwY0njU3
OV2OQpdUL8ai1/TpitSVCnYc7nD8MDWpZFAz4u3pdWHmpXEEfplLUunLpHhThYp8
jgKhuRsTjQJBANtpYvKMzU88qZ+TchWZaaFJPjRtaMPiOK2MAootNEKUuzbhDyLM
SSKK9vfv8VkJPHbkAa2sYwEM6rg815gHeO8CQCYGZyw5CyyEEaS/TaeW/InRvUxK
q2EOXAeahXwv3dtCRUFDQ5Qv+2BLpPDkAnz32Aw0WfDPB15orS2Hbsh7eeECQG+f
XLxij2yZQv4w5+A/LPLlrSTE6ICHDSiVSxF6z9RzkA7qTmX4odhV9DDMu+78+OrP
Ml9ljPSS2rKiGVh5rLcCQGzOocyDwtj9Aj9EohuxCJPp4N/kGF5Mv7NhEUoy7sz+
x/vJIADAnf7/XGpQF8CnZ6yKoLKNBSmYtPg8Oi+sugg=
-----END RSA PRIVATE KEY-----

29
docker-compose.yml Normal file
عرض الملف

@@ -0,0 +1,29 @@
version: "3"
services:
postal:
image: ${POSTAL_IMAGE}
depends_on:
- mariadb
- rabbitmq
entrypoint: ["/docker-entrypoint.sh"]
volumes:
- "./docker/ci-config:/config"
environment:
POSTAL_CONFIG_ROOT: /config
KATAPULT_CONFIG_FILE: /ci-config.yml
WAIT_FOR_TIMEOUT: 90
WAIT_FOR_TARGETS: |-
mariadb:3306
rabbitmq:5672
mariadb:
image: mariadb
restart: always
environment:
MARIADB_DATABASE: postal
MARIADB_ALLOW_EMPTY_PASSWORD: 'yes'
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: 'yes'
rabbitmq:
image: rabbitmq:3
restart: always

عرض الملف

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDBTCCAe2gAwIBAgIUexj/Ul7/jvs4L6q6H3MSYsW4FbkwDQYJKoZIhvcNAQEL
BQAwEjEQMA4GA1UEAwwHZGVmYXVsdDAeFw0yMTA3MjYxNjQwNTRaFw0zMTA3MjQx
NjQwNTRaMBIxEDAOBgNVBAMMB2RlZmF1bHQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQDRNaLmKp75o6I37JCpO2e8IIWBqLTpYGomvAWgKdB8v0AyWMcy
kE5IWZcFICBTJBpRTTHdCfrDnnqvS0AhMqpB3xPw0/DOCDhAxri6Cg4yxecXkFZP
Ckx1ga1sUb9ej8fYBWx9/g6j7waRSGtRB0zwS94tJdJa9XAVj3e97f3CEAr9wPQG
oCC/HQfSgZTho3RPik0x3Wi3Kf9JMHRbBZFDW/a/Z0KjmtFFebJNXBOH7r0Itq82
DY14UqHtG6omZUrGu/Dsx8++USaV03rOq2fSKuol4lEqBWfqI2tzal5hE/46Glbn
ukM+/Iq4+t4ydNsYrhxetsNl3mTWiDkcmYV/AgMBAAGjUzBRMB0GA1UdDgQWBBS+
6ok381yre3ATn7f5cx6VrBg9+jAfBgNVHSMEGDAWgBS+6ok381yre3ATn7f5cx6V
rBg9+jAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAQPFR90MKT
LiwMCCRjpTfMtKYF9rkNTIptCSResfeiwQ3KboBeE/jZzVzk1Pmy5Cvsy/i8zCfz
DcQbxKG82rmUwoPcS/Q0TKjmNcmwiLVvAuR8M8JJnZQiXux+Hb7yKgF/35U6FBuE
jqkWNpuTh5dVEC71hfl6JDuAFrQo+KguppMrbGyT5/yzU99YJR0wI0jjQlBvM9BC
JMf/IA5Q0XZFPpqFSDIud3xqrzbhBgdkBO1MRs/6NAY+pGDxQ5hWlVcn+f/spQZc
03PD+xZjtauUBfsrwk5PpOyGKL4bxgbt2S1aoIgLOjRZwpWFKQwuEcJNi9mDTU6j
mEYzeueHq+7M
-----END CERTIFICATE-----

عرض الملف

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDRNaLmKp75o6I3
7JCpO2e8IIWBqLTpYGomvAWgKdB8v0AyWMcykE5IWZcFICBTJBpRTTHdCfrDnnqv
S0AhMqpB3xPw0/DOCDhAxri6Cg4yxecXkFZPCkx1ga1sUb9ej8fYBWx9/g6j7waR
SGtRB0zwS94tJdJa9XAVj3e97f3CEAr9wPQGoCC/HQfSgZTho3RPik0x3Wi3Kf9J
MHRbBZFDW/a/Z0KjmtFFebJNXBOH7r0Itq82DY14UqHtG6omZUrGu/Dsx8++USaV
03rOq2fSKuol4lEqBWfqI2tzal5hE/46GlbnukM+/Iq4+t4ydNsYrhxetsNl3mTW
iDkcmYV/AgMBAAECggEBALGFK7bWj5MQsIN3rsCK8dkGV4LP3sLw1uILRVLEaG6R
8i1Ge7CCFor5ylXFDui9h79ZG2iOIUSAY2X/GmmRDjtayRbfIEQTYXhFp1XlVmrq
1s594V6sRHipErkJHLNmmZLJ92dpfo7IMfBxXO6inTyBhAMXRsl73iHNXTPCkEJr
xbrnQPw5g1f7amGS09Iz4CEwVs7PABA7V1uhGRyCESp9nUrdQpHKPfjAIi+KMNZw
0Eb/Bj4NSHNokmbp2TUJ1lRAsFmunjHpgdZ18CR1G8naSjhtd11/HrQ5b0LWVdsE
0Igq1/i0Os75lFi2d8ZSPrxIp9FQd61wrujPXiOFqeECgYEA6z+VulbI1D/CTkft
nvc46xsop+j+N0BYLUzorstA2INCoORHM8rZseJ4QDJcou4gXg6NfdIkoncnTDaa
p0xZfNsP3o3lQHRiDDrzRfrTt8XogYA4MQQzHsEHarwHlRd4Ftsu43rCuLZX7g9r
BE0OsjsY3Wy9qW9UxKGA50XG0EkCgYEA46oJsayy+rIgm9EPn09j9ezGz9o5KOe6
Pjo5CYLKVuVkkQugAozwvf/+SumxVdepA9aUQ635Euw/Dpm/2SPaiBN4H4tLhRNp
YchpiOwWg9ThC26w7jRk0rdBWUIzisZvIeBo1w5ye/HB3Ztl2MAz6Yv3SAOj0mNv
ogXzuQ3yN4cCgYAq8RlowUy5icXzOigC+4fVSsjaFarJ9SHjawWSWqHEo/k2m1Tv
/FhOo1NmDItiZmtcH/XuAL0VNwDiZZlHbqVrKCW2b1posJXxO5WKsaWSBztQ4FHh
iK24MG4lKpuLuJQAQBRIC/GdfBOC7iePym0jVaxNRvs8AYmMtxprnQ4UmQKBgQDQ
p8oktnR/QfyS8oPP7fJetbjtTUMwE1nlqHUYG3AZPjrymOX5EHWgndvRiueGFpcI
NoVCllN+nVmZpx5nA+5I4xcoSgFYIRdnkEfxPvfPsa7kTHoKh6iUW3KgPQWCPiYi
tUtBNzOEF2ooEkHA6z9o4Ggt73AY5hutMqlSxM5nRwKBgBP0OqiyHeLbORHwOZeE
459uSE7UmoJINKgRWqdGprmfQZZvzoI0jvAvRvGIt0DYyS5o25AEAO6Y84DkkXGf
8yNHXJf6F6VPt40S5XOyJ8wikmSlsfLtRWkMsdSXZtsF7zOtE6kTCewxEwrypuzs
jNrQgpSolNPcLy6+2hgbiyu5
-----END PRIVATE KEY-----

عرض الملف

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEApj2HYkdZsxxHpaUZV3beSn7p1DeVueDcGTT17Gf/PpV+SHXI
lC1AplNcQPI5iPmg7Fyk2KedlaQQJe8BrCrtBm5X5xNbGDuN5s4N8fZ/AJZ+YZOi
fTEzixYUjuQtJ0KcdofOMBqr4F4DVIG6ZWGoEbEIdNzDCLUeFv5xBmKGRDKmtEDC
SnYcEEFR9ewEHU7KYZbiaGexX0mskKGHMQLiM+xFp6qxsx8isVn+SBo3h94TFdRH
wanFg7ZOUo7Vm1gQkclz7+KpKeWjAsBfuFisrl1cGpN0zODltGGiOQVOymccv93k
7Dw01OAmr5JCfm5Ch9V9pVGlkSykAG93UrfhVwIDAQABAoIBACe+7ECGGJ8nMsYa
3B06UVl0UImppIWliloIfIfCMZeP/HpslsE+tIdPxO3OPA1QybXZTJx0LswZRrcb
FsZIGRWBiki4Kv53Nq0pNNJWAfVtBdhkiOPvwIgPhmjHizgox+na/GQp7FAfiiJJ
Rfx5Rcq9De2K3qKVUxViTjmdksZ5Bw4RzLNAa4QEUw8oZ0QTELvBISo2m6IlLWQq
YRyA2X2bbOjIRbvGfouFLuzqqrtqy76jyamTlTGP3BV7PcJlS+HRhpgXRX1GDANz
MGijGkk+g8umTdj2CIuUbfC6DvYv1XiskPWsMw+1Vel/pKdSbT8trCluG5AGcPeB
08wViSkCgYEA099Nr/fXDqqjulG5uIO624kE5ED3AbsShsCJHQMDjX79xzljjXXm
C5nydj9xRiWB9xt8ptL4ZDOm/EyzFYJmkRWe0eMHU6vUZpbRBRMSHPQhVs4PMDtB
OJ2+sZL/vIaqF6W8VYzohEGVoN34sNDh7MRX283V2XSAgi7PEWdzVpUCgYEAyN0z
2wBftrd85harUfryZwPNh53HrA0Xku3AqKymb5ukS2uQFQ904cvxlIOxEZGVlW1r
HWwEgvd1QkiovT6FExSgQoMMShiRJDeJJVqaR0/UD7hHyvX5P8LKUosQaJUWrA09
Y777tskJX34WWyzJgvHTnQ2TA4MQAaJEHb08+TsCgYEAzbx+PMymuWg72tY3SRQp
o7qW1Gq9MKIOqGlX+6MMlR7mocl5gUkmHMfd6LNMdHhBjsnTLk+YwfxiP4bfM5jP
rjzXXypc2AP4GbKDv7C4GwN5SEiJ+STg/XA4V0jOKqx9iL74df6BXsQs3uwM7O25
JOe4BQoIicOWclOv4U+acU0CgYAr8ckghqpqDSa0KA1/OAnEY96ZZvmCOLMJoB5g
SLV5AXImVfgFw4XsyHOn7E/W6iTxtiiTHUi3ZnAu+jqAfKccj4yoQId1xn4qkEPe
+j16kIpyjfyW+M15F6KwAGCsoMF/Dr55jhT/3mfAjpNRizDjBwkm+QtK32enE9sX
LomidQKBgBxdncRWWwCKtD8MCW/fkK/jGFVhy4dxzgAJCGy1ThuAylkHRscTmszt
Pgp1Layd2fGWM+ohTrzPZAkoa7UqTvDxGe50ODdY4nw01/s4RGVBDbnLOBJ8yUMO
SwAgEqOjEWEyHl4tkcBWcNzu0QWPd7NPmXuh/7dAyIJ66fL3R6y1
-----END RSA PRIVATE KEY-----

عرض الملف

@@ -0,0 +1,51 @@
general:
use_ip_pools: false
web_server:
bind_address: 127.0.0.1
port: 5000
smtp_server:
port: 2525
logging:
stdout: false
main_db:
host: mariadb
username: root
password:
database: postal
message_db:
host: mariadb
username: root
password:
prefix: postal
rabbitmq:
host: rabbitmq
username: guest
password: guest
vhost: null
dns:
mx_records:
- mx.postal.example.com
smtp_server_hostname: postal.example.com
spf_include: spf.postal.example.com
return_path: rp.postal.example.com
route_domain: routes.postal.example.com
track_domain: track.postal.example.com
smtp:
host: 127.0.0.1
port: 2525
username:
password:
from_name: Postal
from_address: postal@yourdomain.com
rails:
secret_key: 5e82ca222ccc8642fb38a8ea4b847408b983b42a497ec16b499ed89ba506a4edcab8ac015b32dbd1ea620119484e0c1dc056f97b4b37cd29146192df5ccd6abec345a0125c424daad12430a4796d108197c746f5eb8e9e1faa36a8ff8d0c5a9cf00191f997c354341fd656ca0ef9d7b40a37ea4b1b1e78fe9030fa9990dbb662
environment: test

عرض الملف

@@ -0,0 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDWt+8XMJEoeOd5DW0ETcj7oklUiyd39h71ZsBxlZSOSydsb+ft
26C/dfJmT/1W38oxhct1iuRN6ETNHNeLtwrysxhpmSiea/eU8Iv3s4WVgdTJyneT
H++yuXwOyEmb1opc7igSRfbFLkeVcYm45rnzbjf/26UaFwmtZlxPI0LZrQIDAQAB
AoGAA8cOpMjM9PpTkDSlQ1se+xZa1erw0dJ5rvWU0yq/h1VZJzY8zVl81YF8t0IX
Ae1EAGULNFEyPRCmDTnBrQqWXbB5bqZIROKT+1Ruo1Kg6OUsrSDK3cDWYM2lInB/
/CXKo4pv82Zh9iS9qj7URFOEzEX43KNXCrfrLSOVRp+xnB0CQQDzxOhujaSqGlXW
wLdrTPRWp63SNbkhWK8FXnkeoyH02EvlWSIGQL2deDaOQk9VKd7kCes9MyWC9d7L
FO/e7GdDAkEA4X3ieo3Wted69PG3c+jN//nA1WZdgHKucGkOTk1MakqG6kf7DeVt
Uj2AFR8wxtKDYi9G+YxdKb+lI/T0CI9UTwJBALwf3UTcWRTRiCdYyPStCfAKLbIJ
tdrPRxr8orqLKPx9JG1WEVUEB5GMIYY+FF1kF9ii8wFjBHMB7rOJb+j5RmMCQA27
U8pwzs1/Dj7SZYCagcj/1Z1pQXJsCXFxBF0CWg/y/+pOfdxnx1OFyUIAB0FkWnnl
NSZHRPkg4Zah+SZ4TAMCQQDid1Cp6nhlntpOANWIXxkJJuDVYepQN1AgCvwZ3OMl
jOfmHNFkXlzb4EYr+uoab2cXV3TNVtau7Z5/Se1ZTVSp
-----END RSA PRIVATE KEY-----

عرض الملف

@@ -39,7 +39,7 @@ module Postal
elsif __FILE__ =~ /\A\/opt\/postal/
Pathname.new("/opt/postal/config")
else
Pathname.new(File.expand_path("../../../config", __FILE__))
Pathname.new(File.expand_path("../../../config/postal", __FILE__))
end
end
end

عرض الملف

@@ -1,4 +1,4 @@
ENV['POSTAL_CONFIG_ROOT'] = File.expand_path('../config', __FILE__)
ENV['POSTAL_CONFIG_ROOT'] ||= File.expand_path('../config', __FILE__)
require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails'
@@ -6,6 +6,9 @@ require 'spec_helper'
require 'factory_bot'
require 'database_cleaner'
DatabaseCleaner.allow_remote_database_url = true
ActiveRecord::Base.logger = Logger.new("/dev/null")
FACTORIES_EXCLUDED_FROM_LINT = []
Dir[File.expand_path('../factories/*.rb', __FILE__)].each { |f| require f }