diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml
new file mode 100644
index 0000000..8fe69c6
--- /dev/null
+++ b/.github/workflows/docker-image.yml
@@ -0,0 +1,129 @@
+name: Docker Image CI
+
+on:
+ push:
+ branches: [ "main" ]
+ pull_request:
+ branches: [ "main" ]
+
+jobs:
+
+ docker-build-db:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Login to ghcr.io
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner}}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ - name: lowercase github.repository
+ run: echo "IMAGE_NAME=${GITHUB_REPOSITORY@L}" >> ${GITHUB_ENV}
+ - name: Build and push
+ uses: docker/build-push-action@v6
+ with:
+ file: trackdirect-db.dockerfile
+ push: true
+ tags: |
+ ghcr.io/${{ env.IMAGE_NAME }}-db:latest
+ ghcr.io/${{ env.IMAGE_NAME }}-db:${{ github.RUN_ID }}
+
+ docker-build-apache:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Login to ghcr.io
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner}}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ - name: lowercase github.repository
+ run: echo "IMAGE_NAME=${GITHUB_REPOSITORY@L}" >> ${GITHUB_ENV}
+ - name: Build and push
+ uses: docker/build-push-action@v6
+ with:
+ file: trackdirect-apache.dockerfile
+ push: true
+ tags: |
+ ghcr.io/${{ env.IMAGE_NAME }}-apache:latest
+ ghcr.io/${{ env.IMAGE_NAME }}-apache:${{ github.RUN_ID }}
+
+ docker-build-python:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Login to ghcr.io
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner}}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ - name: lowercase github.repository
+ run: echo "IMAGE_NAME=${GITHUB_REPOSITORY@L}" >> ${GITHUB_ENV}
+ - name: Build and push
+ uses: docker/build-push-action@v6
+ with:
+ file: trackdirect-python.dockerfile
+ push: true
+ tags: |
+ ghcr.io/${{ env.IMAGE_NAME }}-python:latest
+ ghcr.io/${{ env.IMAGE_NAME }}-python:${{ github.RUN_ID }}
+
+ docker-build-aprsc:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Login to ghcr.io
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner}}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ - name: lowercase github.repository
+ run: echo "IMAGE_NAME=${GITHUB_REPOSITORY@L}" >> ${GITHUB_ENV}
+ - name: Build and push
+ uses: docker/build-push-action@v6
+ with:
+ file: trackdirect-aprsc.dockerfile
+ push: true
+ tags: |
+ ghcr.io/${{ env.IMAGE_NAME }}-aprsc:latest
+ ghcr.io/${{ env.IMAGE_NAME }}-aprsc:${{ github.RUN_ID }}
+
+ docker-build-cron:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Login to ghcr.io
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner}}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ - name: lowercase github.repository
+ run: echo "IMAGE_NAME=${GITHUB_REPOSITORY@L}" >> ${GITHUB_ENV}
+ - name: Build and push
+ uses: docker/build-push-action@v6
+ with:
+ file: trackdirect-cron.dockerfile
+ push: true
+ tags: |
+ ghcr.io/${{ env.IMAGE_NAME }}-cron:latest
+ ghcr.io/${{ env.IMAGE_NAME }}-cron:${{ github.RUN_ID }}
diff --git a/htdocs/public/index.php b/htdocs/public/index.php
index 1d2f4c0..da8d809 100755
--- a/htdocs/public/index.php
+++ b/htdocs/public/index.php
@@ -45,7 +45,7 @@
-
+
diff --git a/server/bin/remover.py b/server/bin/remover.py
index c7637d0..b0a711d 100644
--- a/server/bin/remover.py
+++ b/server/bin/remover.py
@@ -27,8 +27,8 @@ def validate_config_file(config_file):
print("\nUsage: script.py [config.ini]")
sys.exit()
-def drop_table_if_exists(cursor, table_name, logger):
- if DatabaseObjectFinder.check_table_exists(table_name):
+def drop_table_if_exists(cursor, dbobjfinder, table_name, logger):
+ if dbobjfinder.check_table_exists(table_name):
cursor.execute(f"DROP TABLE {table_name}")
logger.info(f"Dropped table {table_name}")
@@ -99,14 +99,14 @@ def main():
prev_day = datetime.date.today() - datetime.timedelta(x)
prev_day_format = prev_day.strftime('%Y%m%d')
packet_table = f"packet{prev_day_format}_weather"
- drop_table_if_exists(cursor, packet_table, logger)
+ drop_table_if_exists(cursor,track_direct_db_object_finder, packet_table, logger)
# Drop packet_telemetry
for x in range(max_days_to_save_telemetry_data, max_days_to_save_telemetry_data + 100):
prev_day = datetime.date.today() - datetime.timedelta(x)
prev_day_format = prev_day.strftime('%Y%m%d')
packet_table = f"packet{prev_day_format}_telemetry"
- drop_table_if_exists(cursor, packet_table, logger)
+ drop_table_if_exists(cursor,track_direct_db_object_finder, packet_table, logger)
# Drop packets
for x in range(max_days_to_save_position_data, max_days_to_save_position_data + 100):
@@ -114,9 +114,9 @@ def main():
prev_day_format = prev_day.strftime('%Y%m%d')
packet_table = f"packet{prev_day_format}"
- drop_table_if_exists(cursor, f"{packet_table}_ogn", logger)
- drop_table_if_exists(cursor, f"{packet_table}_path", logger)
- drop_table_if_exists(cursor, packet_table, logger)
+ drop_table_if_exists(cursor, track_direct_db_object_finder, f"{packet_table}_ogn", logger)
+ drop_table_if_exists(cursor, track_direct_db_object_finder, f"{packet_table}_path", logger)
+ drop_table_if_exists(cursor, track_direct_db_object_finder, packet_table, logger)
# Delete old stations
timestamp_limit = int(time.time()) - (60 * 60 * 24 * max_days_to_save_station_data)
@@ -181,4 +181,5 @@ def main():
logger.error(e, exc_info=1)
if __name__ == '__main__':
- main()
\ No newline at end of file
+ main()
+
diff --git a/trackdirect-apache.dockerfile b/trackdirect-apache.dockerfile
index ee1a2d4..d86844a 100644
--- a/trackdirect-apache.dockerfile
+++ b/trackdirect-apache.dockerfile
@@ -1,4 +1,4 @@
-FROM php:8.2-apache
+FROM php:8.4.8-apache
RUN apt-get update && apt-get install -y \
git \
diff --git a/trackdirect-aprsc.dockerfile b/trackdirect-aprsc.dockerfile
index 767b287..ed4580c 100644
--- a/trackdirect-aprsc.dockerfile
+++ b/trackdirect-aprsc.dockerfile
@@ -4,7 +4,7 @@ RUN apt-get update && apt-get install -y \
gnupg \
&& rm -rf /var/lib/apt/lists/*
-RUN printf "deb http://aprsc-dist.he.fi/aprsc/apt noble main" >> /etc/apt/sources.list
+RUN printf "deb [trusted=yes] http://aprsc-dist.he.fi/aprsc/apt noble main" >> /etc/apt/sources.list
RUN gpg --keyserver keyserver.ubuntu.com --recv C51AA22389B5B74C3896EF3CA72A581E657A2B8D
RUN gpg --export C51AA22389B5B74C3896EF3CA72A581E657A2B8D | apt-key add -
diff --git a/trackdirect-db.dockerfile b/trackdirect-db.dockerfile
index a9c9237..e0576f8 100644
--- a/trackdirect-db.dockerfile
+++ b/trackdirect-db.dockerfile
@@ -1,7 +1,7 @@
-FROM postgres
+FROM postgres:17
COPY misc/database/tables/* /docker-entrypoint-initdb.d/
COPY config/postgresql.conf /etc/postgresql.conf
RUN chown :999 /etc/postgresql.conf
RUN chmod 770 /etc/postgresql.conf
RUN chmod g+s /etc/postgresql.conf
-VOLUME /var/lib/postgresql/data
\ No newline at end of file
+VOLUME /var/lib/postgresql/data