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