From c402dff9a7e105dcba4f37e8d7bd17ce70038599 Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Wed, 19 Mar 2025 09:29:35 -0400 Subject: [PATCH 1/4] chore: Bump app version to v0.9.0 and update changelog link --- frontend/src/lib/config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/lib/config.ts b/frontend/src/lib/config.ts index d201582..8cff439 100644 --- a/frontend/src/lib/config.ts +++ b/frontend/src/lib/config.ts @@ -1,4 +1,4 @@ -export let appVersion = 'v0.8.0'; -export let versionChangelog = 'https://github.com/seanmorley15/AdventureLog/releases/tag/v0.8.0'; +export let appVersion = 'v0.9.0'; +export let versionChangelog = 'https://github.com/seanmorley15/AdventureLog/releases/tag/v0.9.0'; export let appTitle = 'AdventureLog'; export let copyrightYear = '2023-2025'; From 76ee4c73e0fb575d35b4aef2351b99b756797308 Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Wed, 19 Mar 2025 09:58:53 -0400 Subject: [PATCH 2/4] feat: Add changelog for v0.9.0 and update configuration to include it in the documentation --- documentation/.vitepress/config.mts | 4 + documentation/docs/changelogs/v0-9-0.md | 133 ++++++++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 documentation/docs/changelogs/v0-9-0.md diff --git a/documentation/.vitepress/config.mts b/documentation/.vitepress/config.mts index dbd9299..ef5cd99 100644 --- a/documentation/.vitepress/config.mts +++ b/documentation/.vitepress/config.mts @@ -158,6 +158,10 @@ export default defineConfig({ text: "Changelogs", collapsed: false, items: [ + { + text: "v0.9.0", + link: "/docs/changelogs/v0-9-0", + }, { text: "v0.8.0", link: "/docs/changelogs/v0-8-0", diff --git a/documentation/docs/changelogs/v0-9-0.md b/documentation/docs/changelogs/v0-9-0.md new file mode 100644 index 0000000..18764ee --- /dev/null +++ b/documentation/docs/changelogs/v0-9-0.md @@ -0,0 +1,133 @@ +# AdventureLog v0.9.0 - Smart Recommendations, Attachments, and Maps + +Released 03-19-2025 + +Hi travelers! 🌍 +I’m excited to unveil **AdventureLog v0.9.0**, one of our most feature-packed updates yet! From Smart Recommendations to enhanced maps and a refreshed profile system, this release is all about improving your travel planning and adventure tracking experience. Let’s dive into what’s new! + +--- + +## What's New ✨ + +### 🧠 Smart Recommendations + +- **AdventureLog Smart Recommendations**: Get tailored suggestions for new adventures and activities based on your collection destinations. +- Leverages OpenStreetMap to recommend places and activities near your travel destinations. + +--- + +### πŸ—‚οΈ Attachments, GPX Maps & Global Search + +- **Attachments System**: Attach files to your adventures to view key trip data like maps and tickets in AdventureLog! +- **GPX File Uploads & Maps**: Upload GPX tracks to adventures to visualize them directly on your maps. +- **Global Search**: A universal search bar to quickly find adventures, cities, countries, and more across your instance. + +--- + +### 🏨 Lodging & Itinerary + +- **Lodging Tracking**: Add and manage lodging accommodations as part of your collections, complete with check-in/check-out dates. +- **Improved Itinerary Views**: Better day-by-day itinerary display with clear UI enhancements. + +--- + +### πŸ—ΊοΈ Maps & Locations + +- **Open Locations in Maps**: Directly open adventure locations and points of interest in your preferred mapping service. +- **Adventure Category Icons on Maps**: View custom category icons right on your adventure and collection maps. + +--- + +### πŸ—“οΈ Calendar + +- **Collection Range View**: Improved calendar view showing the full date range of collections. + +--- + +### 🌐 Authentication & Security + +- **OIDC Authentication**: Added support for OpenID Connect (OIDC) for seamless integration with identity providers. +- **Secure Session Cookies**: Improved session cookie handling with dynamic domain detection and better security for IP addresses. +- **Disable Password Auth**: Option to disable password auth for users with connected OIDC/Social accounts. + +--- + +### πŸ–₯️ PWA Support + +- **Progressive Web App (PWA) Support**: Install AdventureLog as a PWA on your desktop or mobile device for a native app experience. + +--- + +### πŸ—οΈ Infrastructure & DevOps + +- **Dual-Stack Backend**: IPv4 and IPv6 ready backend system (@larsl-net). +- **Kubernetes Configs** continue to be improved for scalable deployments. + +--- + +### 🌐 Localization + +- **Korean language support** (@seanmorley15). +- **Improved Dutch** (@ThomasDetemmerman), **Simplified Chinese** (@jyyyeung), **German** (@Cathnan and @marcschumacher) translations. +- **Polish and Swedish** translations improved in prior release! + +--- + +### πŸ“ Documentation + +- **New Unraid Installation Guide** with community-contributed updates (@ThunderLord956, @evertyang). +- Updated **OIDC** and **Immich integration** docs for clarity (@UndyingSoul, @motox986). +- General spell-check and documentation polish (@ThunderLord956, @mcguirepr89). + +--- + +### πŸ› Bug Fixes and Improvements + +- Fixed CSRF issues with admin tools. +- Backend ready for **dual-stack** environments. +- Improved itinerary element display and GPX file handling. +- Optimized session cookie handling for domain/IP setups. +- Various **small Python fixes** (@larsl-net). +- Fixed container relations (@bucherfa). +- Django updated to **5.0.11** for security and performance improvements. +- General **codebase clean-up** and UI polish. + +--- + +## 🌟 New Contributors + +A huge shoutout to our amazing new contributors! πŸŽ‰ + +- @larsl-net +- @bucherfa +- @UndyingSoul +- @ThunderLord956 +- @evertyang +- @Thiesjoo +- @motox986 +- @mcguirepr89 +- @ThomasDetemmerman +- @Cathnan +- @jyyyeung +- @marcschumacher + +Thank you for helping AdventureLog grow! πŸ™Œ + +--- + +## Support My Work πŸ’– + +[![Buy Me A Coffee](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/seanmorley15) +If AdventureLog has made your travels more organized or your trip memories richer, consider supporting my work on **Buy Me A Coffee**. Your support directly helps shape the future of this project! β˜• + +--- + +Enjoy this update and keep sharing your journeys with us! 🌍✈️ +As always, drop your feedback and ideas in the [official Discord](https://discord.gg/wRbQ9Egr8) or in the discussions! + +Happy travels, +**Sean Morley** (@seanmorley15) + +--- + +**[Full Changelog](https://github.com/seanmorley15/AdventureLog/compare/v0.8.0...v0.9.0)** From 6e1fbbfc3abfaade20ab518c47f5309aabf7aa56 Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Wed, 19 Mar 2025 13:49:46 -0400 Subject: [PATCH 3/4] feat: Pass collection prop to various card components in the collections page --- frontend/src/routes/collections/[id]/+page.svelte | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/src/routes/collections/[id]/+page.svelte b/frontend/src/routes/collections/[id]/+page.svelte index a63dbe5..56f613a 100644 --- a/frontend/src/routes/collections/[id]/+page.svelte +++ b/frontend/src/routes/collections/[id]/+page.svelte @@ -859,6 +859,7 @@ on:edit={editAdventure} on:delete={deleteAdventure} {adventure} + {collection} /> {/each} {/if} @@ -866,6 +867,7 @@ {#each dayTransportations as transportation} { transportations = transportations.filter((t) => t.id != event.detail); @@ -881,6 +883,7 @@ {#each dayNotes as note} { noteToEdit = event.detail; @@ -896,6 +899,7 @@ {#each dayLodging as hotel} { lodging = lodging.filter((t) => t.id != event.detail); @@ -908,6 +912,7 @@ {#each dayChecklists as checklist} { notes = notes.filter((n) => n.id != event.detail); From 4ccfa6e42ce39389cdff5528b9212f747899b710 Mon Sep 17 00:00:00 2001 From: ClumsyAdmin <59402569+ClumsyAdmin@users.noreply.github.com> Date: Fri, 21 Mar 2025 12:02:23 -0400 Subject: [PATCH 4/4] refactor docker startup to use supervisord --- backend/Dockerfile | 9 ++++++--- backend/entrypoint.sh | 7 +++++-- backend/supervisord.conf | 10 ++++++++++ frontend/startup.sh | 2 +- 4 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 backend/supervisord.conf diff --git a/backend/Dockerfile b/backend/Dockerfile index aa0f9f4..fae48fb 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -12,7 +12,7 @@ WORKDIR /code # Install system dependencies (Nginx included) RUN apt-get update \ - && apt-get install -y git postgresql-client gdal-bin libgdal-dev nginx \ + && apt-get install -y git postgresql-client gdal-bin libgdal-dev nginx supervisor \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* @@ -31,6 +31,9 @@ COPY ./server /code/ # Copy Nginx configuration COPY ./nginx.conf /etc/nginx/nginx.conf +# Copy Supervisor configuration +COPY ./supervisord.conf /etc/supervisor/conf.d/supervisord.conf + # Collect static files RUN python3 manage.py collectstatic --noinput --verbosity 2 @@ -41,5 +44,5 @@ RUN chmod +x /code/entrypoint.sh # Expose ports for NGINX and Gunicorn EXPOSE 80 8000 -# Command to start Nginx and Gunicorn -CMD ["bash", "-c", "service nginx start && /code/entrypoint.sh"] \ No newline at end of file +# Command to start Supervisor (which starts Nginx and Gunicorn) +CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] diff --git a/backend/entrypoint.sh b/backend/entrypoint.sh index 9ca926c..780a182 100644 --- a/backend/entrypoint.sh +++ b/backend/entrypoint.sh @@ -62,5 +62,8 @@ fi cat /code/adventurelog.txt -# Start gunicorn -gunicorn main.wsgi:application --bind [::]:8000 --timeout 120 --workers 2 \ No newline at end of file +# Start Gunicorn in foreground +exec gunicorn main.wsgi:application \ + --bind 0.0.0.0:8000 \ + --workers 4 \ + --timeout 120 diff --git a/backend/supervisord.conf b/backend/supervisord.conf new file mode 100644 index 0000000..7657f7f --- /dev/null +++ b/backend/supervisord.conf @@ -0,0 +1,10 @@ +[supervisord] +nodaemon=true + +[program:nginx] +command=/usr/sbin/nginx -g "daemon off;" +autorestart=true + +[program:gunicorn] +command=/code/entrypoint.sh +autorestart=true diff --git a/frontend/startup.sh b/frontend/startup.sh index 1b611e3..67dbb1e 100644 --- a/frontend/startup.sh +++ b/frontend/startup.sh @@ -2,4 +2,4 @@ echo "The origin to be set is: $ORIGIN" # Start the application -ORIGIN=$ORIGIN node build \ No newline at end of file +ORIGIN=$ORIGIN exec node build