1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-18 20:39:36 +02:00

feat: Enhance CDN management with entrypoint script and update country data handling

This commit is contained in:
Sean Morley 2025-02-05 16:50:05 -05:00
parent f7ff8f30b0
commit 921e756aef
4 changed files with 22 additions and 12 deletions

View file

@ -60,7 +60,7 @@ class Command(BaseCommand):
f.write(cdn_version)
self.stdout.write(self.style.SUCCESS('Version updated successfully to ' + cdn_version))
else:
self.stdout.write(self.style.SUCCESS('Data is already up-to-date.'))
self.stdout.write(self.style.SUCCESS('Data is already up-to-date. Run with --force to re-download'))
return
else:
self.stdout.write(self.style.ERROR('Error downloading version.json'))
@ -78,6 +78,7 @@ class Command(BaseCommand):
countries_json_path = os.path.join(media_root, 'countries_states_cities.json')
if os.path.exists(countries_json_path):
os.remove(countries_json_path)
self.stdout.write(self.style.SUCCESS('countries_states_cities.json deleted successfully'))
# Download the latest countries, regions, and cities json file
res = requests.get(f'{ADVENTURELOG_CDN_URL}/data/countries_states_cities.json')

View file

@ -7,20 +7,16 @@ WORKDIR /app
# Install required Python packages
RUN pip install --no-cache-dir requests osm2geojson
# Copy the script and data folder into the container
# Copy the script into the container
COPY main.py /app/main.py
COPY data /app/data/
# Ensure the data folder exists
RUN mkdir -p /app/data
# Run the script to generate GeoJSON files
RUN python /app/main.py
# Run the script to generate the data folder and GeoJSON files (this runs inside the container)
RUN python -u /app/main.py
# Install Nginx
RUN apt update && apt install -y nginx && rm -rf /var/lib/apt/lists/*
# Copy the entire data folder to the Nginx serving directory
# Copy the entire generated data folder to the Nginx serving directory
RUN mkdir -p /var/www/html/data && cp -r /app/data/* /var/www/html/data/
# Copy Nginx configuration
@ -32,5 +28,9 @@ COPY index.html /usr/share/nginx/html/index.html
# Expose port 80 for Nginx
EXPOSE 80
# Start Nginx in the foreground
CMD ["nginx", "-g", "daemon off;"]
# Copy the entrypoint script into the container
COPY entrypoint.sh /app/entrypoint.sh
RUN chmod +x /app/entrypoint.sh
# Set the entrypoint script as the default command
ENTRYPOINT ["/app/entrypoint.sh"]

9
cdn/entrypoint.sh Normal file
View file

@ -0,0 +1,9 @@
#!/bin/bash
# Any setup tasks or checks can go here (if needed)
echo "AdventureLog CDN has started!"
echo "Refer to the documentation for information about connecting your AdventureLog instance to this CDN."
echo "Thanks to our data providers for making this possible! You can find them on the CDN site."
# Start Nginx in the foreground (as the main process)
nginx -g 'daemon off;'

View file

@ -70,7 +70,7 @@ def saveCountryFlags():
Downloads the flags of all countries and saves them in the data/flags directory
"""
# Load the countries data
with open(os.path.join(os.path.dirname(__file__), 'data', f'countries_states_cities_{COUNTRY_REGION_JSON_VERSION}.json')) as f:
with open(os.path.join(os.path.dirname(__file__), 'data', f'countries_states_cities.json')) as f:
data = json.load(f)
for country in data: