Skip to content

Commit 28992da

Browse files
committed
Postgres 15.11 and performance improvements
1 parent 5a12d35 commit 28992da

14 files changed

+46
-347
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ Please follow account registration process, and once completed go to the link ab
1515

1616
The integrity of the release will be checked at setup against the MD5/SHA1 checksums in this repo. **THESE MUST MATCH**. If they do not match, **DO NOT** proceed unless you trust the release.
1717

18+
Old releases are a security risk as they contain known vulnerabilities. For more information, read the big red notices on tak.gov
19+
1820
![TAK release download](img/tak-server-download.jpg)
1921

2022
## TAK Server Release Checksums
2123

2224
| Release Filename | Bytes | MD5 Checksum | SHA1 Checksum |
2325
| ------------------------------------- | ----------- | ---------------------------------- | ------------------------------------------ |
24-
| `takserver-docker-4.8-RELEASE-31.zip` | `772MB` | `c07f01d74960287bfc7dc08ecd6cbc3a` | `387ea4f593763d3adcfda5128a89dda4fd82e937` |
25-
| `takserver-docker-4.10-RELEASE-50.zip`| `528MB` | `5068d5fd70cbc9ecf53f2259dc9383f7` | `177ed55a66ce8126424937dd3bc7375feb12d3eb` |
26-
| `takserver-docker-5.0-RELEASE-58.zip`| `660MB` | `2c80c289f67de4878ca596bf479ef698` | `944052011887101fd1019b3019f5c9583a1683f3` |
2726
| `takserver-docker-5.1-RELEASE-50.zip`| `615MB` | `c6d1485ae3f81bd30c35be836a001cd0` | `99467f0be91e682714e72c34196c6d8bf40c92d3` |
2827
| `takserver-docker-5.2-RELEASE-30.zip`| `517MB` | `b691d1d7377790690e1e5ec0e4a29a56` | `98f13f9140470ee65351e3d25dec097603bfb582` |
2928
| `takserver-docker-5.2-RELEASE-43.zip`| `517MB` | `0a7398383253707dd7564afc88f29b3b` | `824d7b89fbe6377cb5570f50bb35e6e05c12b230` |
29+
| `takserver-docker-5.3-RELEASE-24.zip`| `527MB` | `e8a5dc855c4eb67d170bf689017516e8` | `1eaad8c4471392a96c60f56bc2d54f9f3b6d719e` |
3030

3131
## Requirements
3232

docker-compose.arm.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
version: "3.3"
2-
31
services:
42
db:
53
build:
@@ -12,8 +10,6 @@ services:
1210
tak:
1311
aliases:
1412
- tak-database
15-
ports:
16-
- 5432:5432
1713
restart: unless-stopped
1814
tak:
1915
build:

docker-compose.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
version: "3.3"
2-
31
services:
42
db:
53
build:
@@ -12,8 +10,6 @@ services:
1210
tak:
1311
aliases:
1412
- tak-database
15-
ports:
16-
- 5432:5432
1713
restart: unless-stopped
1814
tak:
1915
build:

docker/amd64/Dockerfile.takserver

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
FROM openjdk:17-jdk-bullseye
2-
RUN apt update && apt-get install -y emacs-nox net-tools netcat vim
3-
1+
FROM eclipse-temurin:17
2+
RUN apt update && apt-get install -y emacs-nox net-tools
43
ENTRYPOINT ["/bin/bash", "-c", "/opt/tak/configureInDocker.sh init &>> /opt/tak/logs/takserver.log"]
Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
FROM postgres:15.1
2-
3-
# this is slow - updates all packages
4-
RUN apt-get update && apt install -y postgresql-15-postgis-3
5-
6-
1+
FROM postgres:15.11
2+
RUN apt-get update && apt install -y postgresql-15-postgis-3 openjdk-17-jdk
73
ENTRYPOINT ["/bin/bash", "-c", "/opt/tak/db-utils/configureInDocker.sh"]

docker/arm64/Dockerfile.takserver

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
FROM openjdk:17-jdk-bullseye
2-
RUN apt update && apt-get install -y emacs-nox net-tools netcat vim
3-
1+
FROM eclipse-temurin:17
2+
RUN apt update && apt-get install -y emacs-nox net-tools
43
ENTRYPOINT ["/bin/bash", "-c", "/opt/tak/configureInDocker.sh init &>> /opt/tak/logs/takserver.log"]
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
FROM postgres:15.1
2-
3-
# this is slow - updates all packages
4-
RUN apt-get update && apt install -y postgresql-15-postgis-3
5-
6-
ENTRYPOINT ["/opt/tak/db-utils/configureInDocker.sh"]
1+
FROM postgres:15.11
2+
RUN apt-get update && apt install -y postgresql-15-postgis-3 openjdk-17-jdk
3+
ENTRYPOINT ["/bin/bash", "-c", "/opt/tak/db-utils/configureInDocker.sh"]

scripts/configureInDocker1.sh

Lines changed: 0 additions & 31 deletions
This file was deleted.

scripts/logo-replacement.sh

Lines changed: 0 additions & 59 deletions
This file was deleted.

scripts/setup.sh

Lines changed: 31 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ fi
2121

2222
printf $success "\nTAK server setup script sponsored by CloudRF.com - \"The API for RF\"\n"
2323
printf $info "\nStep 1. Download the official docker image as a zip file from https://tak.gov/products/tak-server \nStep 2. Place the zip file in this tak-server folder.\n"
24-
# printf $warning "\nYou should install this as a user. Elevated privileges (sudo) are only required to clean up a previous install eg. sudo ./scripts/cleanup.sh\n"
24+
printf $warning "\nYou should install this as a user. Elevated privileges (sudo) are only required to clean up a previous install eg. sudo ./scripts/cleanup.sh\n"
2525

2626
arch=$(dpkg --print-architecture)
2727

@@ -212,12 +212,6 @@ fi
212212
mv -f /tmp/takserver/$release/tak ./
213213
chown -R $USER:$USER tak
214214

215-
# Not needed since they fixed the crappy configs in 5.x
216-
217-
#cp ./scripts/configureInDocker1.sh ./tak/db-utils/configureInDocker.sh
218-
#cp ./postgresql1.conf ./tak/postgresql.conf
219-
#cp ./scripts/takserver-setup-db-1.sh ./tak/db-utils/takserver-setup-db.sh
220-
221215
# This config uses a docker alias of postgresql://tak-database:5432/
222216
cp ./CoreConfig.xml ./tak/CoreConfig.xml
223217

@@ -246,39 +240,41 @@ sed -i "s/takserver.jks/$IP.jks/g" tak/CoreConfig.xml
246240
# By default TAK server allocates memory based upon the *total* on a machine.
247241
# In the real world, people not on a gov budget use a server for more than one thing.
248242
# Instead we allocate a fixed amount of memory
249-
read -p "Enter the amount of memory to allocate, in kB. Default 4000000 (4GB): " mem
243+
#read -p "Enter the amount of memory to allocate, in kB. Default 4000000 (4GB): " mem
250244
if [ -z "$mem" ];
251245
then
252246
mem="4000000"
253247
fi
254248

255249
sed -i "s%\`awk '/MemTotal/ {print \$2}' /proc/meminfo\`%$mem%g" tak/setenv.sh
256250

251+
# Commented out since everyone just kept hitting enter x4. dumb=dumb
252+
257253
## Set variables for generating CA and client certs
258-
printf $warning "SSL setup. Hit enter (x4) to accept the defaults:\n"
259-
read -p "Country (for cert generation). Default [US] : " country
260-
read -p "State (for cert generation). Default [state] : " state
261-
read -p "City (for cert generation). Default [city]: " city
262-
read -p "Organizational Unit (for cert generation). Default [org]: " orgunit
254+
#printf $warning "SSL setup. Hit enter (x4) to accept the defaults:\n"
255+
#read -p "Country (for cert generation). Default [US] : " country
256+
#read -p "State (for cert generation). Default [state] : " state
257+
#read -p "City (for cert generation). Default [city]: " city
258+
#read -p "Organizational Unit (for cert generation). Default [org]: " orgunit
263259

264260
if [ -z "$country" ];
265261
then
266-
country="US"
262+
country="GB"
267263
fi
268264

269265
if [ -z "$state" ];
270266
then
271-
state="state"
267+
state="Warwickshire"
272268
fi
273269

274270
if [ -z "$city" ];
275271
then
276-
city="city"
272+
city="Coventry" # British joke
277273
fi
278274

279275
if [ -z "$orgunit" ];
280276
then
281-
orgunit="org"
277+
orgunit="TAK"
282278
fi
283279

284280
# Update local env
@@ -297,7 +293,8 @@ ORGANIZATIONAL_UNIT=$orgunit
297293
EOF
298294

299295
### Update cert-metadata.sh with configured country. Fallback to US if variable not set.
300-
sed -i -e 's/COUNTRY=US/COUNTRY=${COUNTRY:-US}/' $PWD/tak/certs/cert-metadata.sh
296+
sed -i -e 's/COUNTRY=US/COUNTRY=${COUNTRY}/' $PWD/tak/certs/cert-metadata.sh
297+
301298

302299
### Runs through setup, starts both containers
303300
$DOCKER_COMPOSE --file $DOCKERFILE up --force-recreate -d
@@ -306,7 +303,7 @@ $DOCKER_COMPOSE --file $DOCKERFILE up --force-recreate -d
306303

307304
while :
308305
do
309-
sleep 10 # let the PG stderr messages conclude...
306+
sleep 5 # let the PG stderr messages conclude...
310307
printf $warning "------------CERTIFICATE GENERATION--------------\n"
311308
$DOCKER_COMPOSE exec tak bash -c "cd /opt/tak/certs && ./makeRootCa.sh --ca-name CRFtakserver"
312309
if [ $? -eq 0 ];
@@ -318,11 +315,10 @@ do
318315
if [ $? -eq 0 ];
319316
then
320317
# Set permissions so user can write to certs/files
321-
$DOCKER_COMPOSE exec tak bash -c "useradd $USER && chown -R $USER:$USER /opt/tak/certs/"
322-
$DOCKER_COMPOSE stop tak
318+
# The ubuntu user has uid 1000 which should map to our host user id 1000. Type 'id' to find yours :)
319+
$DOCKER_COMPOSE exec tak bash -c "chown -R 1000:1000 /opt/tak/certs/"
320+
#$DOCKER_COMPOSE stop tak
323321
break
324-
else
325-
sleep 5
326322
fi
327323
else
328324
sleep 5
@@ -333,24 +329,21 @@ done
333329
printf $info "Creating certificates for 2 users in tak/certs/files for a quick setup via TAK's import function\n"
334330

335331
# Make 2 users
336-
cd tak/certs
337-
./makeCert.sh client user1
338-
./makeCert.sh client user2
332+
$DOCKER_COMPOSE exec tak bash -c "cd /opt/tak/certs && ./makeCert.sh client user1"
333+
$DOCKER_COMPOSE exec tak bash -c "cd /opt/tak/certs && ./makeCert.sh client user2"
334+
$DOCKER_COMPOSE exec tak bash -c "chown -R 1000:1000 /opt/tak/certs/"
339335

340-
341-
# Make 2 data packages
342-
cd ../../
343336
./scripts/certDP.sh $IP user1
344337
./scripts/certDP.sh $IP user2
345338

346-
printf $info "Waiting for TAK server to go live. This should take <1m with an AMD64, ~2min on a ARM64 (Pi)\n"
347-
$DOCKER_COMPOSE start tak
348-
sleep 10
339+
printf $info "Waiting for TAK server to connect to DB. This should loop several times only...\n"
340+
#$DOCKER_COMPOSE start tak
341+
sleep 5
349342

350343
### Checks if java is fully initialised
351344
while :
352345
do
353-
sleep 10
346+
sleep 5
354347
$DOCKER_COMPOSE exec tak bash -c "cd /opt/tak/ && java -jar /opt/tak/utils/UserManager.jar usermod -A -p $password $user"
355348
if [ $? -eq 0 ];
356349
then
@@ -363,13 +356,13 @@ do
363356

364357
break
365358
else
366-
sleep 10
359+
sleep 5
367360
fi
368361
else
369-
sleep 10
362+
sleep 5
370363
fi
371364
else
372-
printf $info "No joy with DB at $IP, will retry in 10s. If this loops more than 6 times go and get some fresh air...\n"
365+
printf $info "No joy with DB at $IP, will retry in 5s. If this loops more than 10 times give up.\n"
373366
fi
374367
done
375368

@@ -378,15 +371,14 @@ cp ./tak/certs/files/$user.p12 .
378371
### Post-installation message to user including randomly generated passwrods to use for account and PostgreSQL
379372
docker container ls
380373

381-
printf $warning "\n\nImport the $user.p12 certificate from this folder to your browser as per the README.md file\n"
374+
printf $warning "\n\nImport the $user.p12 certificate from this folder to your browser's certificate store as per the README.md file\n"
382375
printf $success "Login at https://$IP:8443 with your admin account. No need to run the /setup step as this has been done.\n"
383-
printf $info "Certificates and *CERT DATA PACKAGES* are in tak/certs/files \n\n"
376+
printf $info "Certificates and .zip data packages are in tak/certs/files \n\n"
384377
printf $success "Setup script sponsored by CloudRF.com - \"The API for RF\"\n\n"
385378
printf $danger "---------PASSWORDS----------------\n\n"
386379
printf $danger "Admin user name: $user\n" # Web interface default user name
387380
printf $danger "Admin password: $password\n" # Web interface default random password created during setup
388381
printf $danger "PostgreSQL password: $pgpassword\n\n" # PostgreSQL password randomly generated during set up
389382
printf $danger "---------PASSWORDS----------------\n\n"
390383
printf $warning "MAKE A NOTE OF YOUR PASSWORDS. THEY WON'T BE SHOWN AGAIN.\n"
391-
printf $warning "You have a database listening on TCP 5432 which requires a login. You should still block this port with a firewall\n"
392384
printf $info "Docker containers should automatically start with the Docker service from now on.\n"

0 commit comments

Comments
 (0)