From 2b62304349c5b17be9573670c8b2b9f6e34cad36 Mon Sep 17 00:00:00 2001 From: Paul Couture <paul@paulcouture.com> Date: Fri, 15 Dec 2023 02:47:48 +0000 Subject: [PATCH] fix: initial changes to allow for intial deployment --- .gitignore | 2 + docker-compose.yml | 63 ++++++++++++++++--- .../Http/Controllers/ArtworkController.php | 2 +- .../views/artworks/artwork.blade.php | 8 +-- site/resources/views/artworks/card.blade.php | 13 ++-- .../views/episodes/episode.blade.php | 8 +-- site/resources/views/layouts/master.blade.php | 26 ++++---- .../views/partials/favicon.blade.php | 36 +++++------ .../views/podcasts/podcast.blade.php | 3 +- site/resources/views/profile/artist.blade.php | 22 +------ .../partials/single-artist-card.blade.php | 2 +- 11 files changed, 107 insertions(+), 78 deletions(-) diff --git a/.gitignore b/.gitignore index 77cf5f2..ad1bf25 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,5 @@ legacypublic migrated_artworks_files.tar.gz migrated_thumbnail_files.tar.gz site/.yarn/releases/yarn-1.22.19.cjs +site/public/assets +redis/* \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index e5abf35..a2663b1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -26,7 +26,18 @@ services: LARAVEL_SCHEDULE_ENABLED: true PHP_OPEN_BASEDIR: "/var/www/html:/static" ports: - - "80:80" + - "8776:80" + networks: + - proxy + - default + labels: + - "traefik.enable=true" + - "traefik.docker.network=proxy" + # Entry Point for https + - "traefik.http.routers.podcastartgen-secure.entrypoints=websecure" + - "traefik.http.routers.podcastartgen-secure.rule=Host(`new.noagendaartgenerator.com`)" + - "traefik.http.routers.podcastartgen-secure.service=podcastartgen-service" + - "traefik.http.services.podcastartgen-service.loadbalancer.server.port=80" links: - db - redis @@ -34,13 +45,24 @@ services: static: image: nginx:alpine volumes: - - ./static:/usr/share/nginx/html + - ${PATH_TO_STATIC}:/usr/share/nginx/html environment: TZ: UTC PUID: ${UID:-1000} PGID: ${GID:-1000} ports: - - "8181:80" + - "8777:80" + networks: + - proxy + - default + labels: + - "traefik.enable=true" + - "traefik.docker.network=proxy" + # Entry Point for https + - "traefik.http.routers.podcastartstatic-secure.entrypoints=websecure" + - "traefik.http.routers.podcastartstatic-secure.rule=Host(`static.noagendaartgenerator.com`)" + - "traefik.http.routers.podcastartstatic-secure.service=podcastartstatic-service" + - "traefik.http.services.podcastartstatic-service.loadbalancer.server.port=80" db: image: mariadb:latest env_file: .env @@ -53,15 +75,42 @@ services: volumes: - "./db/data:/var/lib/mysql" - "./db/dump:/docker-entrypoint-initdb.d" + networks: + - proxy + - default ports: - - "3306:3306" + - "51533:3306" # Adjust the external port if needed + labels: + - "traefik.enable=true" + - "traefik.docker.network=proxy" + - "traefik.http.routers.podcastartdb-secure.entrypoints=websecure" + - "traefik.http.routers.podcastartdb-secure.rule=Host(`podcastartdb.noagenda.dev`)" + - "traefik.http.routers.podcastartdb-secure.service=podcastartdb-service" + - "traefik.http.services.podcastartdb-service.loadbalancer.server.port=3306" redis: - image: redis:latest + image: redis:alpine + command: redis-server --appendonly yes --requirepass ${REDIS_SEC_PASSWORD} ports: - - "6379:6379" + - "56379:6379" + volumes: + - ./redis/redis.conf:/usr/local/etc/redis/redis.conf + - ./redis/redis-data:/var/lib/redis + environment: + - REDIS_REPLICATION_MODE=master + labels: + - "traefik.enable=true" + - "traefik.docker.network=proxy" + - "traefik.http.routers.paredis-secure.entrypoints=websecure" + - "traefik.http.routers.paredis-secure.rule=Host(`paredis.noagenda.dev`)" + - "traefik.http.routers.paredis-secure.service=paredis-service" + - "traefik.http.services.paredis-service.loadbalancer.server.port=6379" npm: image: node:latest working_dir: /var/www/html entrypoint: ["npm"] volumes: - - ./site:/var/www/html \ No newline at end of file + - ./site:/var/www/html +networks: + proxy: + external: true + diff --git a/site/app/Http/Controllers/ArtworkController.php b/site/app/Http/Controllers/ArtworkController.php index dc29c08..f62a400 100644 --- a/site/app/Http/Controllers/ArtworkController.php +++ b/site/app/Http/Controllers/ArtworkController.php @@ -30,7 +30,7 @@ public function index() ->with('artist') ->orderBy('episode_id', 'desc') ->orderBy('created_at', 'desc') - ->paginate($perPage = 3, $columns = ['*'], $pageName = 'artworks'); + ->paginate($perPage = 92, $columns = ['*'], $pageName = 'artworks'); $podcasts = Podcast::where('published', true)->with('episodes')->get(); return view('explore.artworks', [ 'user' => $user, diff --git a/site/resources/views/artworks/artwork.blade.php b/site/resources/views/artworks/artwork.blade.php index 016d653..e55b876 100644 --- a/site/resources/views/artworks/artwork.blade.php +++ b/site/resources/views/artworks/artwork.blade.php @@ -38,8 +38,8 @@ <div class="row"> <div class="col-xxl-6 mb-6"> <div class="explore-style-one"> - <div class="thumb"><a href="http://{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}" - ><img id="largeImage"src="http://{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}" + <div class="thumb"><a href="{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}" + ><img id="largeImage"src="{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}" alt="{{ $artwork->title }} by {{ $artwork->artist->name }} for {{ $artwork->podcast->title }}"></a> </div> </div> @@ -61,10 +61,10 @@ <div class="d-flex-between mb-5"> <ul class="nav custom-tabs"> <li> - <a href="http://{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}">Download 3k px Image</a> + <a href="{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}">Download 3k px Image</a> </li> <li> - <a href="http://{{ config('app.static_asset_url') }}/thumbnail/{{ $artwork->filename }}"">Download 512 px Image</a> + <a href="{{ config('app.static_asset_url') }}/thumbnails/{{ $artwork->filename }}"">Download 512 px Image</a> </li> </ul> </div> diff --git a/site/resources/views/artworks/card.blade.php b/site/resources/views/artworks/card.blade.php index 13471de..159bf52 100644 --- a/site/resources/views/artworks/card.blade.php +++ b/site/resources/views/artworks/card.blade.php @@ -1,8 +1,7 @@ <div class="explore-style-one {{ $thisEpisode->artwork_id == $thisArtwork->id ? 'selected' : '' }}"> <div class="thumb"> <a href="/artworks/{{ $thisArtwork->id }}"> - <img src="{{ 'http://' - . config('app.static_asset_url') + <img src="{{ config('app.static_asset_url') . '/thumbnails/' . $thisArtwork->filename ?? '#'}}" alt="{{ $thisArtwork->title }} by {{ $thisArtwork->artist->name }}"> @@ -12,12 +11,12 @@ <div class="content"> <div class="header d-flex-between pt-4 pb-1"> <h3 class="title"> - <a href="/episode/{{ $thisEpisode->slug }}">"{{ $thisArtwork->title }}"</a> + <a href="/podcast/{{ $thisPodcast->slug }}/episode/{{ $thisEpisode->slug }}">"{{ $thisArtwork->title }}"</a> </h3> <div class="more-dropdown "><i class="ri-more-fill" data-bs-toggle="dropdown"></i> <ul class="dropdown-menu dropdown-menu-dark"> - <li><a class="dropdown-item" href="/podcast/{{ $thisPodcast->slug }}">View Podcast</a></li> - <li><a class="dropdown-item" href="/episode/{{ $thisEpisode->slug }}">View Episode</a></li> + <li><a class="dropdown-item" href="/podcasts/{{ $thisPodcast->slug }}">View Podcast</a></li> + <li><a class="dropdown-item" href="/podcast/{{ $thisPodcast->slug }}/episode/{{ $thisEpisode->slug }}">View Episode</a></li> <li> <hr class="dropdown-divider"> </li> @@ -46,9 +45,9 @@ class="avatar" data-bs-toggle="tooltip" Artwork Submitted For @endif <br> - <strong><a href="/podcast/{{ $thisPodcast->slug }}">{{ $thisPodcast->name }}</a></strong> + <strong><a href="/podcasts/{{ $thisPodcast->slug }}">{{ $thisPodcast->name }}</a></strong> <br> - <a href="/episode/{{ $thisEpisode->slug }}">Episode {{ number_format($thisEpisode->episode_number + 0) }}<br><em> + <a href="/podcast/{{ $thisPodcast->slug }}/episode/{{ $thisEpisode->slug }}">Episode {{ number_format($thisEpisode->episode_number + 0) }}<br><em> {{ $thisEpisode->episode_date->format('D, M j') }}<sup>{{ $thisEpisode->episode_date->format('S') }}</sup>{{ $thisEpisode->episode_date->format(', Y') }}</em></a> </span> </div> diff --git a/site/resources/views/episodes/episode.blade.php b/site/resources/views/episodes/episode.blade.php index f05fe57..5ab216e 100644 --- a/site/resources/views/episodes/episode.blade.php +++ b/site/resources/views/episodes/episode.blade.php @@ -26,8 +26,8 @@ <div class="row"> <div class="col-xxl-6 mb-6"> <div class="explore-style-one"> - <div class="thumb"><a href="http://{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}" - ><img id="largeImage"src="http://{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}" + <div class="thumb"><a href="{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}" + ><img id="largeImage"src="{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}" alt="{{ $episode->artwork->title }} by {{ $episode->artwork->artist->name }} for {{ $episode->artwork->podcast->title }}"></a> </div> </div> @@ -45,10 +45,10 @@ <div class="d-flex-between mb-5"> <ul class="nav custom-tabs"> <li> - <a href="http://{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}">Download 3k px Image</a> + <a href="{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}">Download 3k px Image</a> </li> <li> - <a href="http://{{ config('app.static_asset_url') }}/thumbnail/{{ $episode->artwork->filename }}"">Download 512 px Image</a> + <a href="{{ config('app.static_asset_url') }}/thumbnails/{{ $episode->artwork->filename }}"">Download 512 px Image</a> </li> </ul> </div> diff --git a/site/resources/views/layouts/master.blade.php b/site/resources/views/layouts/master.blade.php index 1511261..e5cf4a1 100644 --- a/site/resources/views/layouts/master.blade.php +++ b/site/resources/views/layouts/master.blade.php @@ -23,19 +23,19 @@ @yield('page-content') @include('partials.footer.section') - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.nice-select.min.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/modernizer.min.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/slick.min.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/bootstrap.min.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/waypoint.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/js.cookie.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/count-down.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/counter-up.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/isotop.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/imageloaded.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/aos.js"></script> - <script src="//{{ config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.custom-file-input.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.nice-select.min.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/modernizer.min.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/slick.min.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/bootstrap.min.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/waypoint.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/js.cookie.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/count-down.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/counter-up.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/isotop.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/imageloaded.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/aos.js"></script> + <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.custom-file-input.js"></script> @livewireScriptConfig @vite(['resources/js/app.js']) </body> diff --git a/site/resources/views/partials/favicon.blade.php b/site/resources/views/partials/favicon.blade.php index b599f47..feb78f7 100644 --- a/site/resources/views/partials/favicon.blade.php +++ b/site/resources/views/partials/favicon.blade.php @@ -1,20 +1,20 @@ -<link rel="apple-touch-icon-precomposed" sizes="57x57" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-57x57.png" /> -<link rel="apple-touch-icon-precomposed" sizes="114x114" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-114x114.png" /> -<link rel="apple-touch-icon-precomposed" sizes="72x72" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-72x72.png" /> -<link rel="apple-touch-icon-precomposed" sizes="144x144" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-144x144.png" /> -<link rel="apple-touch-icon-precomposed" sizes="60x60" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-60x60.png" /> -<link rel="apple-touch-icon-precomposed" sizes="120x120" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-120x120.png" /> -<link rel="apple-touch-icon-precomposed" sizes="76x76" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-76x76.png" /> -<link rel="apple-touch-icon-precomposed" sizes="152x152" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-152x152.png" /> -<link rel="icon" type="image/png" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-196x196.png" sizes="196x196" /> -<link rel="icon" type="image/png" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-96x96.png" sizes="96x96" /> -<link rel="icon" type="image/png" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-32x32.png" sizes="32x32" /> -<link rel="icon" type="image/png" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-16x16.png" sizes="16x16" /> -<link rel="icon" type="image/png" href="//{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-128.png" sizes="128x128" /> +<link rel="apple-touch-icon-precomposed" sizes="57x57" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-57x57.png" /> +<link rel="apple-touch-icon-precomposed" sizes="114x114" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-114x114.png" /> +<link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-72x72.png" /> +<link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-144x144.png" /> +<link rel="apple-touch-icon-precomposed" sizes="60x60" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-60x60.png" /> +<link rel="apple-touch-icon-precomposed" sizes="120x120" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-120x120.png" /> +<link rel="apple-touch-icon-precomposed" sizes="76x76" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-76x76.png" /> +<link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-152x152.png" /> +<link rel="icon" type="image/png" href="{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-196x196.png" sizes="196x196" /> +<link rel="icon" type="image/png" href="{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-96x96.png" sizes="96x96" /> +<link rel="icon" type="image/png" href="{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-32x32.png" sizes="32x32" /> +<link rel="icon" type="image/png" href="{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-16x16.png" sizes="16x16" /> +<link rel="icon" type="image/png" href="{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-128.png" sizes="128x128" /> <meta name="application-name" content="{{ config('app.name') }}"/> <meta name="msapplication-TileColor" content="#101010" /> -<meta name="msapplication-TileImage" content="//{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-144x144.png" /> -<meta name="msapplication-square70x70logo" content="//{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-70x70.png" /> -<meta name="msapplication-square150x150logo" content="//{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-150x150.png" /> -<meta name="msapplication-wide310x150logo" content="//{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-310x150.png" /> -<meta name="msapplication-square310x310logo" content="//{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-310x310.png" /> +<meta name="msapplication-TileImage" content="{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-144x144.png" /> +<meta name="msapplication-square70x70logo" content="{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-70x70.png" /> +<meta name="msapplication-square150x150logo" content="{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-150x150.png" /> +<meta name="msapplication-wide310x150logo" content="{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-310x150.png" /> +<meta name="msapplication-square310x310logo" content="{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-310x310.png" /> diff --git a/site/resources/views/podcasts/podcast.blade.php b/site/resources/views/podcasts/podcast.blade.php index 14b33d3..76ea550 100644 --- a/site/resources/views/podcasts/podcast.blade.php +++ b/site/resources/views/podcasts/podcast.blade.php @@ -34,8 +34,7 @@ <div class="explore-style-one flex-stretch"> <div class="thumb"> <a href="/podcast/{{ $episode->podcast->slug }}/episode/{{ $episode->slug }}"> - <img src="{{ 'http://' - . config('app.static_asset_url') + <img src="{{ config('app.static_asset_url') . '/thumbnails/' . $episode->artwork->filename ?? '#'}}" alt="{{ $episode->title }}, {{ $episode->podcast->name }} Episode {{ number_format($episode->episode_number + 0) }}"> diff --git a/site/resources/views/profile/artist.blade.php b/site/resources/views/profile/artist.blade.php index c19ce7f..6476609 100644 --- a/site/resources/views/profile/artist.blade.php +++ b/site/resources/views/profile/artist.blade.php @@ -28,27 +28,7 @@ <div class="container"> <div class="row"> <div class="col-xxl-3 col-xl-4 col-lg-4 mb-6"> - <div class="single-author profile"> - <div class="thumb"> - <img src="{{ Vite::asset($artist->header ?? 'resources/img/artist-dark-banner-default.png') }}" alt="{{ $artist->name }}'s Cover Photo" /> - </div> - <div class="content"> - <img class="author-thumb" src="{{ Vite::asset($artist->avatar ?? 'resources/img/default_avatars/default_avatar_male.svg') }}" - alt="{{ $artist->name }}" /> - <h4 class="title">{{ $artist->name }}</h4> - <p class="title">{{ $artist->location ?? 'No Agenda Nation' }}</p> - <p class="title">Artist For {{ $artist->artworks->sortBy('created_at')->first()->created_at->diffForHumans(now(), Carbon\CarbonInterface::DIFF_ABSOLUTE) }}</p> - @if ($artist->bio) - <h4>Bio:</h4> - <p>{{ nl2br($artist->bio) }}</p> - @endif - <div class="social size-small justify-content-center mb-4"> - @if ($artist->website) - <a href="{{ $artist->website }}" title="website"><i class="ri-pages-line"></i></a> - @endif - </div> - </div> - </div> + @include('profile.partials.single-artist-card') </div> {{-- end bio sidebar --}} <div class="col-xxl-9 col-xl-8 col-lg-8"> diff --git a/site/resources/views/profile/partials/single-artist-card.blade.php b/site/resources/views/profile/partials/single-artist-card.blade.php index f78f0b2..c16c743 100644 --- a/site/resources/views/profile/partials/single-artist-card.blade.php +++ b/site/resources/views/profile/partials/single-artist-card.blade.php @@ -7,7 +7,7 @@ alt="{{ $artist->name }}" /></a> <h4 class="title"><a href="/artists/{{ $artist->slug }}">{{ $artist->name }}</a></h4> <p class="title">{{ $artist->location ?? 'No Agenda Nation' }}</p> - <p class="title">Artist for {{ $artist->created_at->diffForHumans() }}</p> + <p class="title">Artist For {{ $artist->artworks->sortBy('created_at')->first()->created_at->diffForHumans(now(), Carbon\CarbonInterface::DIFF_ABSOLUTE) }}</p> @if ($artist->bio) <h4>Bio:</h4> <p>{{ nl2br($artist->bio) }}</p>