-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.bash
96 lines (88 loc) · 3.22 KB
/
main.bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/bin/bash
#This will install everything required to run a basic Postal installation.
#This should be run on a clean Ubuntu 18.04 server.
#
#Once the installation has completed you will be able to access the Postal web
#interface on port 443. It will have a self-signed certificate.
#
#* Change the MySQL & RabbitMQ passwords
#* Create your first admin user with 'postal make-user'
#* Replace the self-signed certificate in /etc/nginx/ssl/postal.cert
#* Make appropriate changes to the configuration in /opt/postal/config/postal.yml
#* Setup your DNS [ https: //github.com/atech/postal/wiki/Domains-&-DNS-Configuration ]
#* Configure the click & open tracking [ https: //github.com/atech/postal/wiki/Click-&-Open-Tracking ]
#* Configure spam & virus checking [ https: //github.com/atech/postal/wiki/Spam-&-Virus-Checking ]
set - e
#
#Dependencies
#
apt update
apt install - y software - properties - common
apt - add - repository ppa: brightbox / ruby - ng - y
apt - key adv-- recv - keys-- keyserver hkp: //keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add - apt - repository 'deb [arch=amd64,i386,ppc64el] http://mirrors.coreix.net/mariadb/repo/10.1/ubuntu bionic main'
curl - sL https:
//www.rabbitmq.com/rabbitmq-release-signing-key.asc | apt-key add -
add - apt -
repository 'deb https://dl.bintray.com/rabbitmq/debian/ testing main'
apt
update
export DEBIAN_FRONTEND =
noninteractive
apt install - y ruby2 .3 ruby2 .3 - dev build -
essential libssl - dev mariadb - server libmysqlclient - dev rabbitmq -
server nodejs git nginx wget nano
gem install bundler procodile-- no -
rdoc-- no - ri
#
#MySQL
#
echo 'CREATE DATABASE `postal` CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;'
| mysql -
u root
echo
'GRANT ALL ON `postal`.* TO `postal`@`127.0.0.1` IDENTIFIED BY "p0stalpassw0rd";'
| mysql -
u root
echo
'GRANT ALL PRIVILEGES ON `postal-%` . * to `postal`@`127.0.0.1` IDENTIFIED BY "p0stalpassw0rd";'
| mysql - u root
#
#RabbitMQ
#
rabbitmqctl add_vhost / postal
rabbitmqctl add_user postal p0stalpassw0rd
rabbitmqctl set_permissions - p / postal postal ".*" ".*" ".*"
#
#System prep
#
useradd - r - m - d / opt / postal - s / bin / bash postal
setcap 'cap_net_bind_service=+ep' / usr / bin / ruby2 .3
#
#Application Setup
#
sudo - i - u postal mkdir - p / opt / postal / app
wget https:
//postal.atech.media/packages/stable/latest.tgz -O - | sudo -u postal tar zxpv -C /opt/postal/app
ln - s / opt / postal / app / bin / postal / usr / bin / postal
postal bundle / opt / postal / vendor / bundle
postal initialize - config
postal initialize
postal start
#
#nginx
#
cp / opt / postal / app / resource / nginx.cfg / etc / nginx / sites - available / default
mkdir / etc / nginx / ssl /
openssl req - x509 - newkey rsa:
4096 - keyout / etc / nginx / ssl / postal.key -
out / etc / nginx / ssl / postal.cert - days 365 - nodes -
subj "/C=GB/ST=Example/L=Example/O=Example/CN=example.com"
service nginx
reload
#
#All done
#
echo
echo "Installation complete"
echo "Now run \e[1mpostal make-user\e[0m to set up your user."