diff --git a/apps/calendar/apps/web/src/routes/health/+server.ts b/apps/calendar/apps/web/src/routes/health/+server.ts new file mode 100644 index 000000000..9222c1d9f --- /dev/null +++ b/apps/calendar/apps/web/src/routes/health/+server.ts @@ -0,0 +1,10 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async () => { + return json({ + status: 'ok', + service: 'calendar-web', + timestamp: new Date().toISOString(), + }); +}; diff --git a/apps/clock/apps/web/src/routes/health/+server.ts b/apps/clock/apps/web/src/routes/health/+server.ts new file mode 100644 index 000000000..91a4d2956 --- /dev/null +++ b/apps/clock/apps/web/src/routes/health/+server.ts @@ -0,0 +1,10 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async () => { + return json({ + status: 'ok', + service: 'clock-web', + timestamp: new Date().toISOString(), + }); +}; diff --git a/apps/contacts/apps/web/src/routes/health/+server.ts b/apps/contacts/apps/web/src/routes/health/+server.ts new file mode 100644 index 000000000..74de9637d --- /dev/null +++ b/apps/contacts/apps/web/src/routes/health/+server.ts @@ -0,0 +1,10 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async () => { + return json({ + status: 'ok', + service: 'contacts-web', + timestamp: new Date().toISOString(), + }); +}; diff --git a/apps/manacore/apps/web/src/routes/health/+server.ts b/apps/manacore/apps/web/src/routes/health/+server.ts new file mode 100644 index 000000000..4d9d0ee54 --- /dev/null +++ b/apps/manacore/apps/web/src/routes/health/+server.ts @@ -0,0 +1,10 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async () => { + return json({ + status: 'ok', + service: 'manacore-web', + timestamp: new Date().toISOString(), + }); +}; diff --git a/apps/manadeck/apps/web/src/routes/health/+server.ts b/apps/manadeck/apps/web/src/routes/health/+server.ts new file mode 100644 index 000000000..c437b7859 --- /dev/null +++ b/apps/manadeck/apps/web/src/routes/health/+server.ts @@ -0,0 +1,10 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async () => { + return json({ + status: 'ok', + service: 'manadeck-web', + timestamp: new Date().toISOString(), + }); +}; diff --git a/apps/nutriphi/apps/web/src/routes/health/+server.ts b/apps/nutriphi/apps/web/src/routes/health/+server.ts new file mode 100644 index 000000000..22d39fc61 --- /dev/null +++ b/apps/nutriphi/apps/web/src/routes/health/+server.ts @@ -0,0 +1,10 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async () => { + return json({ + status: 'ok', + service: 'nutriphi-web', + timestamp: new Date().toISOString(), + }); +}; diff --git a/apps/picture/apps/web/src/routes/health/+server.ts b/apps/picture/apps/web/src/routes/health/+server.ts new file mode 100644 index 000000000..9de1754de --- /dev/null +++ b/apps/picture/apps/web/src/routes/health/+server.ts @@ -0,0 +1,10 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async () => { + return json({ + status: 'ok', + service: 'picture-web', + timestamp: new Date().toISOString(), + }); +}; diff --git a/apps/presi/apps/web/src/routes/health/+server.ts b/apps/presi/apps/web/src/routes/health/+server.ts new file mode 100644 index 000000000..fd9b2cde2 --- /dev/null +++ b/apps/presi/apps/web/src/routes/health/+server.ts @@ -0,0 +1,10 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async () => { + return json({ + status: 'ok', + service: 'presi-web', + timestamp: new Date().toISOString(), + }); +}; diff --git a/apps/storage/apps/web/src/routes/health/+server.ts b/apps/storage/apps/web/src/routes/health/+server.ts new file mode 100644 index 000000000..a58826145 --- /dev/null +++ b/apps/storage/apps/web/src/routes/health/+server.ts @@ -0,0 +1,10 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async () => { + return json({ + status: 'ok', + service: 'storage-web', + timestamp: new Date().toISOString(), + }); +}; diff --git a/apps/zitare/apps/web/src/routes/health/+server.ts b/apps/zitare/apps/web/src/routes/health/+server.ts new file mode 100644 index 000000000..bac5da70b --- /dev/null +++ b/apps/zitare/apps/web/src/routes/health/+server.ts @@ -0,0 +1,10 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async () => { + return json({ + status: 'ok', + service: 'zitare-web', + timestamp: new Date().toISOString(), + }); +}; diff --git a/docker-compose.macmini.yml b/docker-compose.macmini.yml index 2af992580..54ced258a 100644 --- a/docker-compose.macmini.yml +++ b/docker-compose.macmini.yml @@ -735,13 +735,13 @@ services: volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - TZ: Europe/Berlin - DOCKER_API_VERSION: "1.45" # Match Docker Desktop API version - WATCHTOWER_POLL_INTERVAL: 300 # Check every 5 minutes - WATCHTOWER_CLEANUP: "true" # Remove old images - WATCHTOWER_INCLUDE_STOPPED: "false" # Only update running containers - # Notifications disabled - shoutrrr has URL parsing issues with Telegram bot tokens - # Auto-deployment works fine. Set up n8n webhook workflow for notifications if needed. + - TZ=Europe/Berlin + - DOCKER_API_VERSION=1.45 + - WATCHTOWER_POLL_INTERVAL=300 + - WATCHTOWER_CLEANUP=true + - WATCHTOWER_INCLUDE_STOPPED=false + - WATCHTOWER_NOTIFICATIONS=shoutrrr + - WATCHTOWER_NOTIFICATION_URL=telegram://${TELEGRAM_BOT_TOKEN}@telegram?chats=${TELEGRAM_CHAT_ID} # ============================================ # Volumes