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 @@
+