diff --git a/docker-compose.yml b/docker-compose.yml index 16e88ee..7a9c0f7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,6 +7,8 @@ services: - BUILD_ENVIRONMENT=prod tags: - "nullinside-ui:latest" + volumes: + - /var/log/nginx/:/var/log/nginx/:rw logging: driver: loki options: diff --git a/nginx/filesystem/etc/nginx/conf.d/nginx.conf b/nginx/filesystem/etc/nginx/conf.d/nginx.conf index bf7f639..18066fb 100644 --- a/nginx/filesystem/etc/nginx/conf.d/nginx.conf +++ b/nginx/filesystem/etc/nginx/conf.d/nginx.conf @@ -55,7 +55,7 @@ server { } # Angular pages - location ~ ^/(background|user|vm-admin|twitch/|imdb-search|chunk|polyfills|main|styles|assets|favicon) { + location ~ ^/(background|user|vm-admin|twitch/|imdb-search|chunk|polyfills|main|styles|assets|favicon|robots.txt|sitemap.xml) { root /usr/share/nginx/html; try_files $uri $uri/ /index.html =404; } diff --git a/nginx/filesystem/etc/nginx/nginx.conf b/nginx/filesystem/etc/nginx/nginx.conf index 8308bd6..9f4786c 100644 --- a/nginx/filesystem/etc/nginx/nginx.conf +++ b/nginx/filesystem/etc/nginx/nginx.conf @@ -2,6 +2,7 @@ user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; +error_log /dev/stderr warn; # Required to pull logs into loki pid /var/run/nginx.pid; @@ -19,6 +20,7 @@ http { '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; + access_log /dev/stdout main; # Required to pull logs into loki sendfile on; #tcp_nopush on; diff --git a/nginx/filesystem/usr/share/nginx/html/robots.txt b/nginx/filesystem/usr/share/nginx/html/robots.txt new file mode 100644 index 0000000..84aa1b5 --- /dev/null +++ b/nginx/filesystem/usr/share/nginx/html/robots.txt @@ -0,0 +1,7 @@ +User-agent: * +Allow: / +Disallow: /null/* +Disallow: /twitch-bot/* +Disallow: /imdb-search/* + +Sitemap: https://nullinside.com/sitemap.xml diff --git a/nginx/filesystem/usr/share/nginx/html/sitemap.xml b/nginx/filesystem/usr/share/nginx/html/sitemap.xml new file mode 100644 index 0000000..06272b4 --- /dev/null +++ b/nginx/filesystem/usr/share/nginx/html/sitemap.xml @@ -0,0 +1,11 @@ + + + https://nullinside.com + + + https://nullinside.com/twitch/bot + + + https://nullinside.com/user/auth + + \ No newline at end of file diff --git a/src/package-lock.json b/src/package-lock.json index 0d9d49d..84f1ad0 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -10981,6 +10981,7 @@ "integrity": "sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", @@ -15171,6 +15172,7 @@ "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", @@ -15385,6 +15387,7 @@ "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", diff --git a/src/src/app/view/login/login.component.ts b/src/src/app/view/login/login.component.ts index 924f7a0..bb7ac06 100644 --- a/src/src/app/view/login/login.component.ts +++ b/src/src/app/view/login/login.component.ts @@ -7,6 +7,7 @@ import {LoadingIconComponent} from "../../common/components/loading-icon/loading import {HttpErrorResponse} from '@angular/common/http'; import {TwitchLoginComponent} from '../../common/components/twitch-login/twitch-login.component'; import {AuthService} from "../../service/auth.service"; +import {Meta, Title} from "@angular/platform-browser"; @Component({ selector: 'app-login', @@ -23,6 +24,8 @@ export class LoginComponent implements OnInit { private api = inject(NullinsideService); private router = inject(Router); private route = inject(ActivatedRoute); + private metaService: Meta = inject(Meta); + private titleService: Title = inject(Title); loginUrl: string; checkingLogin = false; @@ -33,6 +36,8 @@ export class LoginComponent implements OnInit { constructor() { this.loginUrl = `${environment.apiUrl}/user/login`; + this.metaService.updateTag({name: 'description', content: 'Login for access'}); + this.titleService.setTitle("Login"); } ngOnInit(): void { diff --git a/src/src/app/view/twitch/twitch-bot-index/twitch-bot-index.component.ts b/src/src/app/view/twitch/twitch-bot-index/twitch-bot-index.component.ts index c9d9e3d..93432b3 100644 --- a/src/src/app/view/twitch/twitch-bot-index/twitch-bot-index.component.ts +++ b/src/src/app/view/twitch/twitch-bot-index/twitch-bot-index.component.ts @@ -1,8 +1,9 @@ -import {Component} from '@angular/core'; +import {Component, inject} from '@angular/core'; import {StandardBannerComponent} from '../../../common/components/standard-banner/standard-banner.component'; import {TwitchLoginComponent} from '../../../common/components/twitch-login/twitch-login.component'; import {TwitchBotFaqComponent} from "../twitch-bot-faq/twitch-bot-faq.component"; import {environment} from "../../../../environments/environment"; +import {Meta, Title} from '@angular/platform-browser'; @Component({ selector: 'app-twitch-bot-index', @@ -16,4 +17,14 @@ import {environment} from "../../../../environments/environment"; }) export class TwitchBotIndexComponent { protected readonly environment = environment; + private metaService: Meta = inject(Meta); + private titleService: Title = inject(Title); + + constructor() { + this.metaService.updateTag({ + name: 'description', + content: 'Login with your twitch account to get started with the nullinside bot!' + }); + this.titleService.setTitle("nullinside Twitch Bot"); + } } diff --git a/src/src/index.html b/src/src/index.html index 69684a3..360da9c 100644 --- a/src/src/index.html +++ b/src/src/index.html @@ -7,6 +7,7 @@ +