... | ... |
@@ -10,8 +10,26 @@ wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCA |
10 | 10 |
|
11 | 11 |
rm -rf /var/www/ |
12 | 12 |
mkdir /var/www/ |
13 |
+mkdir /var/www/css/ |
|
14 |
+mkdir /var/www/js/ |
|
15 |
+mkdir /var/www/images/ |
|
16 |
+ |
|
17 |
+#Index.php |
|
13 | 18 |
wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/html/index.php -O /var/www/index.php |
14 | 19 |
|
20 |
+#CSS |
|
21 |
+wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/html/css/leaflet.css -O /var/www/css/leaflet.css |
|
22 |
+ |
|
23 |
+#IMAGES |
|
24 |
+wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/html/images/layers-2x.png -O /var/www/images/layers-2x.png |
|
25 |
+wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/html/images/layers.png -O /var/www/images/layers.png |
|
26 |
+wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/html/images/marker-icon-2x.png -O /var/www/images/marker-icon-2x.png |
|
27 |
+wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/html/images/marker-icon.png -O /var/www/images/marker-icon.png |
|
28 |
+wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/html/images/marker-shadow.png -O /var/www/images/marker-shadow.png |
|
29 |
+ |
|
30 |
+#JS |
|
31 |
+wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/html/js/leaflet.js -O /var/www/js/leaflet.js |
|
32 |
+wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/html/js/Leaflet.VectorGrid.js -O /var/www/js/Leaflet.VectorGrid.js |
|
15 | 33 |
|
16 | 34 |
|
17 | 35 |
echo "Install done! |
... | ... |
@@ -1,192 +1,17 @@ |
1 | 1 |
#!/bin/bash |
2 | 2 |
|
3 |
-echo "Please enter the following:" |
|
4 |
-read -p 'First and Last name: ' name |
|
5 |
-read -p 'Callsign: ' callsign |
|
6 |
-read -p "APRS ssid: $callsign-" ssid |
|
7 |
-echo |
|
8 |
-echo "If you need your APRS Passcode you can get it here: https://willamettevalleymesh.net/aprs-passcode/" |
|
9 |
-read -p 'Please enter callsign APRS Passcode: ' aprspasscode |
|
10 |
-read -p 'Your Email Address: ' email |
|
11 |
- |
|
12 |
- |
|
13 | 3 |
apt update -y |
14 | 4 |
apt upgrade -y |
15 | 5 |
|
16 |
-apt install -y sudo build-essential htop nginx libevent* debhelper libssl-dev libcap-dev libz-dev libwww-perl libsctp-dev |
|
6 |
+apt install -y nginx php-fpm |
|
17 | 7 |
apt --fix-broken install |
18 | 8 |
|
19 |
-adduser --system --no-create-home --home /var/run/aprsc --shell /usr/sbin/nologin --group aprsc |
|
20 |
- |
|
21 |
-cd |
|
22 |
-wget http://he.fi/aprsc/down/aprsc-latest.tar.gz |
|
23 |
-tar xvfz aprsc-latest.tar.gz |
|
24 |
-rm -rf aprsc-latest.tar.gz |
|
25 |
-cd aprsc-* |
|
26 |
-cd src |
|
27 |
-./configure |
|
28 |
-make make-deb |
|
29 |
-sudo dpkg -i ../aprsc_*.deb |
|
30 |
- |
|
31 |
- |
|
32 |
-sudo systemctl enable aprsc |
|
33 |
- |
|
34 |
- |
|
35 |
-tee /etc/default/aprsc <<EOF |
|
36 |
- |
|
37 |
-# |
|
38 |
-# STARTAPRSC: start aprsc on boot. Should be set to "yes" once you have |
|
39 |
-# configured aprsc. |
|
40 |
-# |
|
41 |
-STARTAPRSC="yes" |
|
42 |
- |
|
43 |
-# |
|
44 |
-# Additional options that are passed to the Daemon. |
|
45 |
-# Description of used options (don't change these unless |
|
46 |
-# you're sure what you're doing): |
|
47 |
-# -u aprsc: switch to user 'aprsc' as soon as possible |
|
48 |
-# -t /opt/aprsc: chroot to the given directory |
|
49 |
-# -f: fork to a daemon |
|
50 |
-# -e info: log at level info |
|
51 |
-# -o file: log to file |
|
52 |
-# -r logs: log files are placed in /opt/aprsc/logs |
|
53 |
-# -c etc/aprsc.conf: configuration file location |
|
54 |
-# |
|
55 |
-# Since the daemon chroots to /opt/aprsc, all paths are relative to |
|
56 |
-# that directory and the daemon cannot access any files outside |
|
57 |
-# the chroot. |
|
58 |
-# |
|
59 |
-# aprsc can log to syslog too, but that'd require bringing the |
|
60 |
-# syslog socket within the chroot. |
|
61 |
-# |
|
62 |
- |
|
63 |
-DAEMON_OPTS="-u aprsc -t /opt/aprsc -f -e info -o file -r logs -c etc/aprsc.conf" |
|
64 |
- |
|
65 |
-EOF |
|
66 |
- |
|
67 |
-echo "ServerId $callsign-$ssid" > /opt/aprsc/etc/aprsc.conf |
|
68 |
-echo "PassCode $aprspasscode" >> /opt/aprsc/etc/aprsc.conf |
|
69 |
-echo "MyAdmin \"$name, $callsign\"" >> /opt/aprsc/etc/aprsc.conf |
|
70 |
-echo "MyEmail $email" >> /opt/aprsc/etc/aprsc.conf |
|
71 |
- |
|
72 |
- |
|
73 |
-tee -a /opt/aprsc/etc/aprsc.conf <<EOF |
|
74 |
- |
|
75 |
-### Directories ######### |
|
76 |
-# Data directory (for persistent state files - currently none) |
|
77 |
-RunDir data |
|
78 |
- |
|
79 |
-# If logging to a file (-o file), enable built-in log rotation. |
|
80 |
-# LogRotate <megabytes> <filecount> |
|
81 |
-# "LogRotate 10 5" keeps 5 old files of 10 megabytes each. |
|
82 |
-LogRotate 10 5 |
|
83 |
- |
|
84 |
-### Intervals and timers ######### |
|
85 |
-# Interval specification format examples: |
|
86 |
-# 600 (600 seconds), or 600s, 5m, 2h, 1h30m, 1d3h15m24s, etc... |
|
87 |
- |
|
88 |
-# When no data is received from an upstream server in N seconds, switch to |
|
89 |
-# another server. |
|
90 |
-UpstreamTimeout 15s |
|
91 |
- |
|
92 |
-# When no data is received from a downstream server in N seconds, disconnect |
|
93 |
-ClientTimeout 48h |
|
94 |
- |
|
95 |
-### TCP listener ########## |
|
96 |
-# Listen <socketname> <porttype> tcp <address to bind> <port> <options...> |
|
97 |
-# socketname: any name you wish to show up in logs and statistics |
|
98 |
-# porttype: one of: |
|
99 |
-# fullfeed - everything, after dupe filtering |
|
100 |
-# igate - igate / client port with user-specified filters |
|
101 |
-# udpsubmit - UDP packet submission port (8080) |
|
102 |
-# dupefeed - duplicate packets dropped by the server |
|
103 |
-# options: |
|
104 |
-# filter "m/500" - force a filter for users connected here |
|
105 |
-# maxclients 100 - limit clients connected on this port |
|
106 |
-# acl etc/client.acl - match client addresses against ACL |
|
107 |
-# hidden - don't show the port in the status page |
|
108 |
-# |
|
109 |
-# If you wish to provide UDP service for clients, set up a |
|
110 |
-# second listener on the same address, port and protocol. |
|
111 |
-# |
|
112 |
-# The "::" is IPv6 "IN6ADDR_ANY", whereas "0.0.0.0" is same |
|
113 |
-# with IPv4. |
|
114 |
-# |
|
115 |
-# On FreeBSD you need to have separate listeners for IPv4 and |
|
116 |
-# IPv6. On Linux, just use :: alone - the IPv6 listener will |
|
117 |
-# catch the IPv4 connections just as well. |
|
118 |
-# |
|
119 |
-# Example of normal server ports for Linux, supporting both TCP and UDP, |
|
120 |
-# IPv4 and IPv6: |
|
121 |
-# |
|
122 |
-Listen "Full feed" fullfeed tcp :: 10152 hidden |
|
123 |
-Listen "" fullfeed udp :: 10152 hidden |
|
124 |
- |
|
125 |
-Listen "Client-Defined Filters" igate tcp :: 14580 |
|
126 |
-Listen "" igate udp :: 14580 |
|
127 |
- |
|
128 |
-Listen "350 km from my position" igate tcp :: 20350 filter "m/350" |
|
129 |
-Listen "" igate udp :: 20350 filter "m/350" |
|
130 |
- |
|
131 |
-Listen "UDP submit" udpsubmit udp :: 8080 |
|
132 |
- |
|
133 |
-### Uplink configuration ######## |
|
134 |
-# Uplink <name> <type> tcp <address> <port> |
|
135 |
-# name: a name of the server or service you're connecting to |
|
136 |
-# type: one of: |
|
137 |
-# full - full feed |
|
138 |
-# ro - read-only, do not transmit anything upstream |
|
139 |
-# |
|
140 |
-# If you wish to specify multiple alternative servers, use multiple |
|
141 |
-# Uplink lines, one for each server. |
|
142 |
-# |
|
143 |
-# Normally a single line for the 'rotate' address is fine - it will connect |
|
144 |
-# to one of the servers in a random fashion and go for another one should |
|
145 |
-# the first one become unavailable. |
|
146 |
-# |
|
147 |
-Uplink "Core rotate" full tcp rotate.aprs.net 10152 |
|
148 |
-#Uplink "Core rotate" ro tcp rotate.aprs.net 10152 |
|
149 |
- |
|
150 |
-# OPTIONAL: Bind source address before connecting to an uplink |
|
151 |
-# You can enter two addresses, one for IPv4 and one for IPv6 connections. |
|
152 |
-# Needed if you have multiple IP addresses on your server and only one |
|
153 |
-# of them is allowed to connect by the remote server. |
|
154 |
-#UplinkBind 127.0.0.1 |
|
155 |
-#UplinkBind ::1 |
|
156 |
- |
|
157 |
-### HTTP server ########## |
|
158 |
-# HTTPStatus port provides a status view to web browsers. |
|
159 |
-# IPv6+IPv4 support works slightly differently than in Listen: |
|
160 |
-# :: is "all addresses" for IPv6, 0.0.0.0 for IPv4, but |
|
161 |
-# :: only works if you actually have a global IPv6 address |
|
162 |
-# configured on the system. |
|
163 |
-# The example is for IPv4, change the address to :: if you have |
|
164 |
-# IPv6. For FreeBSD, or if you wish to support multiple specific |
|
165 |
-# ports/addresses, use multiple HTTPStatus directives for each. |
|
166 |
-HTTPStatus 0.0.0.0 14501 |
|
167 |
-# HTTPUpload port allows position uploads over HTTP |
|
168 |
-HTTPUpload 0.0.0.0 8080 |
|
169 |
- |
|
170 |
-### Environment ############ |
|
171 |
-# When running this server as super-user, the server can (in many systems) |
|
172 |
-# increase several resource limits, and do other things that less privileged |
|
173 |
-# server can not do. |
|
174 |
-# |
|
175 |
-# The FileLimit is resource limit on how many simultaneous connections and |
|
176 |
-# some other internal resources the system can use at the same time. |
|
177 |
-# If the server is not being run as super-user, this setting has no effect |
|
178 |
-# in case it is above what normal user can set. |
|
179 |
-# |
|
180 |
-FileLimit 10000 |
|
9 |
+wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/nginx.conf -O /etc/nginx/nginx.conf |
|
181 | 10 |
|
182 |
-### Operator attention span qualification run ########### |
|
183 |
-# After configuring the rest of the settings, remove this bad command |
|
184 |
-# from the configuration file. It's here only to avoid starting the |
|
185 |
-# server up accidentally with an invalid configuration. |
|
186 |
-#MagicBadness 42.7 |
|
187 |
-EOF |
|
11 |
+rm -rf /var/www/ |
|
12 |
+mkdir /var/www/ |
|
13 |
+wget https://git.willamettevalleymesh.net/K9RCP-AUTO-INSTALLERS/raw/master/MAPCACHE/html/index.php -O /var/www/index.php |
|
188 | 14 |
|
189 |
-sudo systemctl enable aprsc |
|
190 | 15 |
|
191 |
-reboot |
|
192 | 16 |
|
17 |
+echo "Install done! |
1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,192 @@ |
1 |
+#!/bin/bash |
|
2 |
+ |
|
3 |
+echo "Please enter the following:" |
|
4 |
+read -p 'First and Last name: ' name |
|
5 |
+read -p 'Callsign: ' callsign |
|
6 |
+read -p "APRS ssid: $callsign-" ssid |
|
7 |
+echo |
|
8 |
+echo "If you need your APRS Passcode you can get it here: https://willamettevalleymesh.net/aprs-passcode/" |
|
9 |
+read -p 'Please enter callsign APRS Passcode: ' aprspasscode |
|
10 |
+read -p 'Your Email Address: ' email |
|
11 |
+ |
|
12 |
+ |
|
13 |
+apt update -y |
|
14 |
+apt upgrade -y |
|
15 |
+ |
|
16 |
+apt install -y sudo build-essential htop nginx libevent* debhelper libssl-dev libcap-dev libz-dev libwww-perl libsctp-dev |
|
17 |
+apt --fix-broken install |
|
18 |
+ |
|
19 |
+adduser --system --no-create-home --home /var/run/aprsc --shell /usr/sbin/nologin --group aprsc |
|
20 |
+ |
|
21 |
+cd |
|
22 |
+wget http://he.fi/aprsc/down/aprsc-latest.tar.gz |
|
23 |
+tar xvfz aprsc-latest.tar.gz |
|
24 |
+rm -rf aprsc-latest.tar.gz |
|
25 |
+cd aprsc-* |
|
26 |
+cd src |
|
27 |
+./configure |
|
28 |
+make make-deb |
|
29 |
+sudo dpkg -i ../aprsc_*.deb |
|
30 |
+ |
|
31 |
+ |
|
32 |
+sudo systemctl enable aprsc |
|
33 |
+ |
|
34 |
+ |
|
35 |
+tee /etc/default/aprsc <<EOF |
|
36 |
+ |
|
37 |
+# |
|
38 |
+# STARTAPRSC: start aprsc on boot. Should be set to "yes" once you have |
|
39 |
+# configured aprsc. |
|
40 |
+# |
|
41 |
+STARTAPRSC="yes" |
|
42 |
+ |
|
43 |
+# |
|
44 |
+# Additional options that are passed to the Daemon. |
|
45 |
+# Description of used options (don't change these unless |
|
46 |
+# you're sure what you're doing): |
|
47 |
+# -u aprsc: switch to user 'aprsc' as soon as possible |
|
48 |
+# -t /opt/aprsc: chroot to the given directory |
|
49 |
+# -f: fork to a daemon |
|
50 |
+# -e info: log at level info |
|
51 |
+# -o file: log to file |
|
52 |
+# -r logs: log files are placed in /opt/aprsc/logs |
|
53 |
+# -c etc/aprsc.conf: configuration file location |
|
54 |
+# |
|
55 |
+# Since the daemon chroots to /opt/aprsc, all paths are relative to |
|
56 |
+# that directory and the daemon cannot access any files outside |
|
57 |
+# the chroot. |
|
58 |
+# |
|
59 |
+# aprsc can log to syslog too, but that'd require bringing the |
|
60 |
+# syslog socket within the chroot. |
|
61 |
+# |
|
62 |
+ |
|
63 |
+DAEMON_OPTS="-u aprsc -t /opt/aprsc -f -e info -o file -r logs -c etc/aprsc.conf" |
|
64 |
+ |
|
65 |
+EOF |
|
66 |
+ |
|
67 |
+echo "ServerId $callsign-$ssid" > /opt/aprsc/etc/aprsc.conf |
|
68 |
+echo "PassCode $aprspasscode" >> /opt/aprsc/etc/aprsc.conf |
|
69 |
+echo "MyAdmin \"$name, $callsign\"" >> /opt/aprsc/etc/aprsc.conf |
|
70 |
+echo "MyEmail $email" >> /opt/aprsc/etc/aprsc.conf |
|
71 |
+ |
|
72 |
+ |
|
73 |
+tee -a /opt/aprsc/etc/aprsc.conf <<EOF |
|
74 |
+ |
|
75 |
+### Directories ######### |
|
76 |
+# Data directory (for persistent state files - currently none) |
|
77 |
+RunDir data |
|
78 |
+ |
|
79 |
+# If logging to a file (-o file), enable built-in log rotation. |
|
80 |
+# LogRotate <megabytes> <filecount> |
|
81 |
+# "LogRotate 10 5" keeps 5 old files of 10 megabytes each. |
|
82 |
+LogRotate 10 5 |
|
83 |
+ |
|
84 |
+### Intervals and timers ######### |
|
85 |
+# Interval specification format examples: |
|
86 |
+# 600 (600 seconds), or 600s, 5m, 2h, 1h30m, 1d3h15m24s, etc... |
|
87 |
+ |
|
88 |
+# When no data is received from an upstream server in N seconds, switch to |
|
89 |
+# another server. |
|
90 |
+UpstreamTimeout 15s |
|
91 |
+ |
|
92 |
+# When no data is received from a downstream server in N seconds, disconnect |
|
93 |
+ClientTimeout 48h |
|
94 |
+ |
|
95 |
+### TCP listener ########## |
|
96 |
+# Listen <socketname> <porttype> tcp <address to bind> <port> <options...> |
|
97 |
+# socketname: any name you wish to show up in logs and statistics |
|
98 |
+# porttype: one of: |
|
99 |
+# fullfeed - everything, after dupe filtering |
|
100 |
+# igate - igate / client port with user-specified filters |
|
101 |
+# udpsubmit - UDP packet submission port (8080) |
|
102 |
+# dupefeed - duplicate packets dropped by the server |
|
103 |
+# options: |
|
104 |
+# filter "m/500" - force a filter for users connected here |
|
105 |
+# maxclients 100 - limit clients connected on this port |
|
106 |
+# acl etc/client.acl - match client addresses against ACL |
|
107 |
+# hidden - don't show the port in the status page |
|
108 |
+# |
|
109 |
+# If you wish to provide UDP service for clients, set up a |
|
110 |
+# second listener on the same address, port and protocol. |
|
111 |
+# |
|
112 |
+# The "::" is IPv6 "IN6ADDR_ANY", whereas "0.0.0.0" is same |
|
113 |
+# with IPv4. |
|
114 |
+# |
|
115 |
+# On FreeBSD you need to have separate listeners for IPv4 and |
|
116 |
+# IPv6. On Linux, just use :: alone - the IPv6 listener will |
|
117 |
+# catch the IPv4 connections just as well. |
|
118 |
+# |
|
119 |
+# Example of normal server ports for Linux, supporting both TCP and UDP, |
|
120 |
+# IPv4 and IPv6: |
|
121 |
+# |
|
122 |
+Listen "Full feed" fullfeed tcp :: 10152 hidden |
|
123 |
+Listen "" fullfeed udp :: 10152 hidden |
|
124 |
+ |
|
125 |
+Listen "Client-Defined Filters" igate tcp :: 14580 |
|
126 |
+Listen "" igate udp :: 14580 |
|
127 |
+ |
|
128 |
+Listen "350 km from my position" igate tcp :: 20350 filter "m/350" |
|
129 |
+Listen "" igate udp :: 20350 filter "m/350" |
|
130 |
+ |
|
131 |
+Listen "UDP submit" udpsubmit udp :: 8080 |
|
132 |
+ |
|
133 |
+### Uplink configuration ######## |
|
134 |
+# Uplink <name> <type> tcp <address> <port> |
|
135 |
+# name: a name of the server or service you're connecting to |
|
136 |
+# type: one of: |
|
137 |
+# full - full feed |
|
138 |
+# ro - read-only, do not transmit anything upstream |
|
139 |
+# |
|
140 |
+# If you wish to specify multiple alternative servers, use multiple |
|
141 |
+# Uplink lines, one for each server. |
|
142 |
+# |
|
143 |
+# Normally a single line for the 'rotate' address is fine - it will connect |
|
144 |
+# to one of the servers in a random fashion and go for another one should |
|
145 |
+# the first one become unavailable. |
|
146 |
+# |
|
147 |
+Uplink "Core rotate" full tcp rotate.aprs.net 10152 |
|
148 |
+#Uplink "Core rotate" ro tcp rotate.aprs.net 10152 |
|
149 |
+ |
|
150 |
+# OPTIONAL: Bind source address before connecting to an uplink |
|
151 |
+# You can enter two addresses, one for IPv4 and one for IPv6 connections. |
|
152 |
+# Needed if you have multiple IP addresses on your server and only one |
|
153 |
+# of them is allowed to connect by the remote server. |
|
154 |
+#UplinkBind 127.0.0.1 |
|
155 |
+#UplinkBind ::1 |
|
156 |
+ |
|
157 |
+### HTTP server ########## |
|
158 |
+# HTTPStatus port provides a status view to web browsers. |
|
159 |
+# IPv6+IPv4 support works slightly differently than in Listen: |
|
160 |
+# :: is "all addresses" for IPv6, 0.0.0.0 for IPv4, but |
|
161 |
+# :: only works if you actually have a global IPv6 address |
|
162 |
+# configured on the system. |
|
163 |
+# The example is for IPv4, change the address to :: if you have |
|
164 |
+# IPv6. For FreeBSD, or if you wish to support multiple specific |
|
165 |
+# ports/addresses, use multiple HTTPStatus directives for each. |
|
166 |
+HTTPStatus 0.0.0.0 14501 |
|
167 |
+# HTTPUpload port allows position uploads over HTTP |
|
168 |
+HTTPUpload 0.0.0.0 8080 |
|
169 |
+ |
|
170 |
+### Environment ############ |
|
171 |
+# When running this server as super-user, the server can (in many systems) |
|
172 |
+# increase several resource limits, and do other things that less privileged |
|
173 |
+# server can not do. |
|
174 |
+# |
|
175 |
+# The FileLimit is resource limit on how many simultaneous connections and |
|
176 |
+# some other internal resources the system can use at the same time. |
|
177 |
+# If the server is not being run as super-user, this setting has no effect |
|
178 |
+# in case it is above what normal user can set. |
|
179 |
+# |
|
180 |
+FileLimit 10000 |
|
181 |
+ |
|
182 |
+### Operator attention span qualification run ########### |
|
183 |
+# After configuring the rest of the settings, remove this bad command |
|
184 |
+# from the configuration file. It's here only to avoid starting the |
|
185 |
+# server up accidentally with an invalid configuration. |
|
186 |
+#MagicBadness 42.7 |
|
187 |
+EOF |
|
188 |
+ |
|
189 |
+sudo systemctl enable aprsc |
|
190 |
+ |
|
191 |
+reboot |
|
192 |
+ |