Skip to content

Commit 2db535f

Browse files
committed
PG15, IP for CN, Smarter mem alloc
1 parent a035249 commit 2db535f

File tree

8 files changed

+40
-22
lines changed

8 files changed

+40
-22
lines changed

CoreConfig.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<submission ignoreStaleMessages="false" validateXml="false"/>
1818
<subscription reloadPersistent="false"/>
1919
<repository enable="true" numDbConnections="16" connectionPoolAutoSize="true" primaryKeyBatchSize="500" insertionBatchSize="500" archive="false">
20-
<connection url="jdbc:postgresql://HOSTIP:5432/cot" username="martiuser" password="A4qs6s5MsZ06VasUmE!"/>
20+
<connection url="jdbc:postgresql://tak-database:5432/cot" username="martiuser" password="A4qs6s5MsZ06VasUmE!"/>
2121
</repository>
2222
<repeater enable="true" periodMillis="3000" staleDelayMillis="15000">
2323
<repeatableType initiate-test="/event/detail/emergency[@type='911 Alert']" cancel-test="/event/detail/emergency[@cancel='true']" _name="911"/>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
FROM postgres:14.4
1+
FROM postgres:15
22

33
# this is slow - updates all packages
44

5-
RUN apt-get update && apt install -y postgresql-14-postgis-3
5+
RUN apt-get update && apt install -y postgresql-15-postgis-3
66

77

88
ENTRYPOINT ["/bin/bash", "-c", "/opt/tak/db-utils/configureInDocker.sh"]
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
FROM postgres:14.4
1+
FROM postgres:15
22
# this is slow - updates all packages
33

4-
RUN apt-get update && apt install -y postgresql-14-postgis-3
4+
RUN apt-get update && apt install -y postgresql-15-postgis-3
55

6-
ENTRYPOINT ["/opt/tak/db-utils/configureInDocker.sh"]
6+
ENTRYPOINT ["/opt/tak/db-utils/configureInDocker.sh"]

scripts/certDP.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ echo "<?xml version='1.0' encoding='ASCII' standalone='yes'?>" > server.pref
1515
echo "<preferences>" >> server.pref
1616
echo " <preference version=\"1\" name=\"cot_streams\">" >> server.pref
1717
echo " <entry key=\"count\" class=\"class java.lang.Integer\">1</entry>" >> server.pref
18-
echo " <entry key=\"description0\" class=\"class java.lang.String\">TAK Server (https://github.com/Cloud-RF/tak-server)</entry>" >> server.pref
18+
echo " <entry key=\"description0\" class=\"class java.lang.String\">TAK Server</entry>" >> server.pref
1919
echo " <entry key=\"enabled0\" class=\"class java.lang.Boolean\">true</entry>" >> server.pref
2020
echo " <entry key=\"connectString0\" class=\"class java.lang.String\">$IP:8089:ssl</entry>" >> server.pref
2121
echo " </preference>" >> server.pref
2222
echo " <preference version=\"1\" name=\"com.atakmap.app_preferences\">" >> server.pref
2323
echo " <entry key=\"displayServerConnectionWidget\" class=\"class java.lang.Boolean\">true</entry>" >> server.pref
24-
echo " <entry key=\"caLocation\" class=\"class java.lang.String\">cert/takserver.p12</entry>" >> server.pref
24+
echo " <entry key=\"caLocation\" class=\"class java.lang.String\">cert/$IP.p12</entry>" >> server.pref
2525
echo " <entry key=\"caPassword\" class=\"class java.lang.String\">atakatak</entry>" >> server.pref
2626
echo " <entry key=\"clientPassword\" class=\"class java.lang.String\">atakatak</entry>" >> server.pref
2727
echo " <entry key=\"certificateLocation\" class=\"class java.lang.String\">cert/$USER.p12</entry>" >> server.pref
@@ -38,12 +38,12 @@ echo " <Parameter name=\"name\" value=\"$USER DP\"/>" >> manifest.xml
3838
echo " <Parameter name=\"onReceiveDelete\" value=\"true\"/>" >> manifest.xml
3939
echo " </Configuration>" >> manifest.xml
4040
echo " <Contents>" >> manifest.xml
41-
echo " <Content ignore=\"false\" zipEntry=\"certs\server.pref\"/>" >> manifest.xml
42-
echo " <Content ignore=\"false\" zipEntry=\"certs\takserver.p12\"/>" >> manifest.xml
43-
echo " <Content ignore=\"false\" zipEntry=\"certs\\$USER.p12\"/>" >> manifest.xml
41+
echo " <Content ignore=\"false\" zipEntry=\"server.pref\"/>" >> manifest.xml
42+
echo " <Content ignore=\"false\" zipEntry=\"$IP.p12\"/>" >> manifest.xml
43+
echo " <Content ignore=\"false\" zipEntry=\"$USER.p12\"/>" >> manifest.xml
4444
echo " </Contents>" >> manifest.xml
4545
echo "</MissionPackageManifest>" >> manifest.xml
4646

47-
zip -j tak/certs/files/$USER-$IP.dp.zip manifest.xml server.pref tak/certs/files/takserver.p12 tak/certs/files/$USER.p12
47+
zip -j tak/certs/files/$USER-$IP.dp.zip manifest.xml server.pref tak/certs/files/$IP.p12 tak/certs/files/$USER.p12
4848
echo "-------------------------------------------------------------"
49-
echo "Created certificate data package for $USER @ $IP as tak/certs/files/$USER-$IP.dp.zip"
49+
echo "Created certificate data package for $USER @ $IP as tak/certs/files/$USER-$IP.dp.zip"

scripts/cleanup.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,7 @@ $DOCKER_COMPOSE down
1212
docker volume rm --force tak-server_db_data
1313
rm -rf tak
1414
rm -rf /tmp/takserver
15+
16+
# Comment me out to save yourself rebuilding........
17+
docker image rm tak-server_db --force
18+
docker image rm tak-server_tak --force

scripts/configureInDocker1.sh

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
# Added for 4.7 REL 18 where they broke DB auth with TCP/IP hardening
44
# Commented out when they relaxed it in REL 4.7 20 because folks docker systems stopped working..
55
# Re-added for 4.8 REL 31 because they got hard again. I can do this all day.
6-
sed -i 's/127.0.0.1\/32/0.0.0.0\/0/g' /opt/tak/db-utils/pg_hba.conf
6+
# Now using a flexible docker /8 range
7+
sed -i 's/127.0.0.1\/32/172.0.0.0\/8/g' /opt/tak/db-utils/pg_hba.conf
78

89
# Removed inline options because these belong in postgres.conf
910
if [ -f "/var/lib/postgresql/data/postgresql.conf" ];
@@ -12,15 +13,15 @@ then
1213
rm -f /var/lib/postgresql/data/postmaster.pid
1314
echo "listen_addresses='*'" >> /var/lib/postgresql/data/postgresql.conf
1415
cp /opt/tak/db-utils/pg_hba.conf /var/lib/postgresql/data/pg_hba.conf
15-
su - postgres -c "/usr/lib/postgresql/14/bin/pg_ctl -D /var/lib/postgresql/data -l logfile start"
16+
su - postgres -c "/usr/lib/postgresql/15/bin/pg_ctl -D /var/lib/postgresql/data -l logfile start"
1617

1718
else
1819

1920
echo "-------NO DB-------"
2021
chown postgres:postgres /var/lib/postgresql/data
21-
su - postgres -c '/usr/lib/postgresql/14/bin/pg_ctl initdb -D /var/lib/postgresql/data'
22+
su - postgres -c '/usr/lib/postgresql/15/bin/pg_ctl initdb -D /var/lib/postgresql/data'
2223
cp /opt/tak/db-utils/pg_hba.conf /var/lib/postgresql/data/pg_hba.conf
23-
su - postgres -c "/usr/lib/postgresql/14/bin/pg_ctl -D /var/lib/postgresql/data -l logfile start"
24+
su - postgres -c "/usr/lib/postgresql/15/bin/pg_ctl -D /var/lib/postgresql/data -l logfile start"
2425

2526
cd /opt/tak/db-utils
2627
./configure.sh

scripts/setup.sh

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,8 @@ chown -R $USER:$USER tak
214214
cp ./scripts/configureInDocker1.sh ./tak/db-utils/configureInDocker.sh
215215
cp ./postgresql1.conf ./tak/postgresql.conf
216216
cp ./scripts/takserver-setup-db-1.sh ./tak/db-utils/takserver-setup-db.sh
217+
218+
# This config uses a docker alias of postgresql://tak-database:5432/
217219
cp ./CoreConfig.xml ./tak/CoreConfig.xml
218220

219221
## Set admin username and password and ensure it meets validation criteria
@@ -231,8 +233,18 @@ IP=$(ip addr show $NIC | grep -m 1 "inet " | awk '{print $2}' | cut -d "/" -f1)
231233

232234
printf $info "\nProceeding with IP address: $IP\n"
233235
sed -i "s/password=\".*\"/password=\"${pgpassword}\"/" tak/CoreConfig.xml
236+
# Replaces HOSTIP for rate limiter and Fed server. Database URL is a docker alias of tak-database
234237
sed -i "s/HOSTIP/$IP/g" tak/CoreConfig.xml
235238

239+
# Replaces takserver.jks with $IP.jks
240+
sed -i "s/takserver.jks/$IP.jks/g" tak/CoreConfig.xml
241+
242+
# Better memory allocation:
243+
# By default TAK server allocates memory based upon the *total* on a machine.
244+
# In the real world, people not on a gov budget use a server for more than one thing.
245+
# Instead we allocate memory based upon the available memory so this still scales, but you can run it on a smaller budget
246+
sed -i "s/MemTotal/MemFree/g" tak/setenv.sh
247+
236248
## Set variables for generating CA and client certs
237249
printf $warning "SSL setup. Hit enter (x3) to accept the defaults:\n"
238250
read -p "State (for cert generation). Default [state] :" state
@@ -276,10 +288,10 @@ while :
276288
do
277289
sleep 10 # let the PG stderr messages conclude...
278290
printf $warning "------------CERTIFICATE GENERATION--------------\n"
279-
$DOCKER_COMPOSE exec tak bash -c "cd /opt/tak/certs && ./makeRootCa.sh --ca-name LOL"
291+
$DOCKER_COMPOSE exec tak bash -c "cd /opt/tak/certs && ./makeRootCa.sh --ca-name CRFtakserver"
280292
if [ $? -eq 0 ];
281293
then
282-
$DOCKER_COMPOSE exec tak bash -c "cd /opt/tak/certs && ./makeCert.sh server takserver"
294+
$DOCKER_COMPOSE exec tak bash -c "cd /opt/tak/certs && ./makeCert.sh server $IP"
283295
if [ $? -eq 0 ];
284296
then
285297
$DOCKER_COMPOSE exec tak bash -c "cd /opt/tak/certs && ./makeCert.sh client $user"
@@ -305,6 +317,7 @@ cd tak/certs
305317
./makeCert.sh client user1
306318
./makeCert.sh client user2
307319

320+
308321
# Make 2 data packages
309322
cd ../../
310323
./scripts/certDP.sh $IP user1

scripts/takserver-setup-db-1.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
# if [ "x$DB_EXISTS" != "x" ]; then
1818
# sed -i 's/127.0.0.1\/32/0.0.0.0\/0/g' /opt/tak/db-utils/pg_hba.conf
1919
# cp /opt/tak/db-utils/pg_hba.conf /var/lib/postgresql/data/pg_hba.conf
20-
# su - postgres -c "/usr/lib/postgresql/14/bin/pg_ctl -D /var/lib/postgresql/data -l logfile restart -o '-c max_connections=2100 -c shared_buffers=2560MB'"
20+
# su - postgres -c "/usr/lib/postgresql/15/bin/pg_ctl -D /var/lib/postgresql/data -l logfile restart -o '-c max_connections=2100 -c shared_buffers=2560MB'"
2121
# exit 0
2222
# fi
2323

@@ -52,8 +52,8 @@ fi
5252
DB_INIT=""
5353
# Ensure PostgreSQL is initialized.
5454

55-
if [ -x /usr/lib/postgresql/14/bin/pg_ctl ]; then
56-
DB_INIT="/usr/lib/postgresql/14/bin/pg_ctl initdb"
55+
if [ -x /usr/lib/postgresql/15/bin/pg_ctl ]; then
56+
DB_INIT="/usr/lib/postgresql/15/bin/pg_ctl initdb"
5757
elif [ -x /usr/bin/postgresql-setup ]; then
5858
DB_INIT="/usr/bin/postgresql-setup initdb"
5959
else

0 commit comments

Comments
 (0)