Swap Photopea -> GIMP (lscr.io/linuxserver/gimp); remove broken photopea container/basic-auth on media tools

This commit is contained in:
2026-08-26 14:50:44 +10:00
parent e24a216128
commit 9b5293ffe7
4 changed files with 29 additions and 20 deletions

View File

@@ -14,7 +14,7 @@ storage and an audio transcriber.
(sam / jo / harry / finn). It remembers conversations (shown in a sidebar), (sam / jo / harry / finn). It remembers conversations (shown in a sidebar),
can summarise web pages and documents, and can understand and generate images. can summarise web pages and documents, and can understand and generate images.
It is hardened so it cannot run system commands. It is hardened so it cannot run system commands.
- **Media tools** — browser-based editing apps: Photopea (images), KdenLive - **Media tools** — browser-based editing apps: GIMP (images), KdenLive
(video), Audacity + LMMS (audio & music). (video), Audacity + LMMS (audio & music).
- **Transcriber** — turns audio into MIDI (Basic Pitch) and full sheet music - **Transcriber** — turns audio into MIDI (Basic Pitch) and full sheet music
(MuScriptor). (MuScriptor).

View File

@@ -169,16 +169,25 @@ services:
<<: *logging <<: *logging
# ----- Tool containers (profile "tools") ----- # ----- Tool containers (profile "tools") -----
# Images per Obsidian blueprint: Photopea shtse8, KdenLive + Audacity via # Images per Obsidian blueprint: media tools via LinuxServer standalone apps.
# LinuxServer standalone apps. Host ports reassigned (8081 taken by airflow, # Host ports reassigned (8081 taken by airflow, 3000 taken by a NixOS
# 3000 taken by a NixOS service) -> video 8083, audio 8084. # service) -> video 8083, audio 8084, gimp 8087.
photopea: gimp:
image: ${IMAGE_PHOTOPEA:-shtse8/photopea:1.0} image: ${IMAGE_GIMP:-lscr.io/linuxserver/gimp:latest}
profiles: ["tools"] profiles: ["tools"]
restart: unless-stopped restart: unless-stopped
environment:
PUID: 1000
PGID: 100
TZ: Australia/Melbourne
DARK_MODE: "true"
ports: ports:
- "8487:8887" - "8087:3000"
volumes:
- gimp-config:/config
- /mnt/data/family-home-lab/shared-media:/media:ro
networks: [fhl-net] networks: [fhl-net]
shm_size: 1gb
<<: *logging <<: *logging
video-editor: video-editor:
@@ -217,6 +226,7 @@ volumes:
pgdata: pgdata:
redisdata: redisdata:
rabbitmqdata: rabbitmqdata:
gimp-config:
video-config: video-config:
audio-config: audio-config:

View File

@@ -5,7 +5,7 @@
## Public — *.lab.audasmedia.com.au ## Public — *.lab.audasmedia.com.au
console.lab # Family Home Lab portal (login) console.lab # Family Home Lab portal (login)
photo.lab / video.lab / audio.lab / lmms.lab # media editor tools (basic-auth) video.lab / audio.lab / lmms.lab / gimp.lab # media editor tools (no login) (photopea removed 2026-08-26)
dsh-sam.lab dsh-jo.lab dsh-harry.lab dsh-finn.lab # DeepSeek chat (basic-auth) dsh-sam.lab dsh-jo.lab dsh-harry.lab dsh-finn.lab # DeepSeek chat (basic-auth)
chat.lab # family group chat chat.lab # family group chat
pb.chat.lab # chat admin (admin-only, basic-auth) pb.chat.lab # chat admin (admin-only, basic-auth)
@@ -47,9 +47,9 @@ where-woof.com admin.where-woof.com # family location
homeassistant.lab.quickweb.com.au # HA mirror homeassistant.lab.quickweb.com.au # HA mirror
## auth model ## auth model
- No-login tools behind Caddy basic-auth: photo/video/audio/lmms, dsh-*, omniroute, - Media/chat browser tools (video/audio/lmms/gimp, dsh-*, omniroute, photo-filter) have NO login
photo-filter, dozzle, sams, pb.chat, ntfy, plus apps left on basic-auth (toora, (basic-auth removed 2026-08-26 so they load fully). Apps still behind basic-auth: toora, homebox,
homebox, phpipam, watchyourlan, librenms, kopia, backrest, filebrowser, ...). phpipam, watchyourlan, librenms, kopia, backrest, filebrowser, dozzle, sams, pb.chat, ntfy.
- Apps with own login (basic-auth REMOVED so their mobile apps/APIs work): homeassistant, - Apps with own login (basic-auth REMOVED so their mobile apps/APIs work): homeassistant,
nextcloud, immich, audiobookshelf, vikunja, proxmox(+backup), portainer, grafana, nextcloud, immich, audiobookshelf, vikunja, proxmox(+backup), portainer, grafana,
uptimekuma, supabase. uptimekuma, supabase.

View File

@@ -72,13 +72,13 @@ def _cat() -> list[Tool]:
# ---- Chat & AI ----------------------------------------------------- # ---- Chat & AI -----------------------------------------------------
Tool("dsh", "DeepSeek Harness", "chat", Tool("dsh", "DeepSeek Harness", "chat",
"Your personal assistant instance", "https://dsh-sam.lab.audasmedia.com.au", "Your personal assistant instance", "https://dsh-sam.lab.audasmedia.com.au",
private=True, login=True), private=True),
Tool("chat-lab", "Family Chat", "chat", Tool("chat-lab", "Family Chat", "chat",
"Group chat — available to everyone", "https://chat.lab.audasmedia.com.au", login=True), "Group chat — available to everyone", "https://chat.lab.audasmedia.com.au", login=True),
Tool("pb-chat", "PB Chat (Admin)", "chat", Tool("pb-chat", "PB Chat (Admin)", "chat",
"Chat admin console (admins only)", "https://pb.chat.lab.audasmedia.com.au", login=True, admin=True), "Chat admin console (admins only)", "https://pb.chat.lab.audasmedia.com.au", login=True, admin=True),
Tool("ai-router", "AI Router", "ai", Tool("ai-router", "AI Router", "ai",
"OmniRoute LLM gateway dashboard", "https://omniroute.lab.audasmedia.com.au", login=True), "OmniRoute LLM gateway dashboard", "https://omniroute.lab.audasmedia.com.au"),
Tool("n8n", "n8n", "ai", Tool("n8n", "n8n", "ai",
"Workflow automation", "https://n8n.lab.audasmedia.com.au", login=True), "Workflow automation", "https://n8n.lab.audasmedia.com.au", login=True),
Tool("langfuse", "Langfuse", "ai", Tool("langfuse", "Langfuse", "ai",
@@ -91,16 +91,16 @@ def _cat() -> list[Tool]:
"LangChain dev service", "https://supabase.home.lab", login=True, lan=True, admin=True), "LangChain dev service", "https://supabase.home.lab", login=True, lan=True, admin=True),
# ---- Image --------------------------------------------------------- # ---- Image ---------------------------------------------------------
Tool("photopea", "Photopea", "image", Tool("gimp", "GIMP", "image",
"Browser photo & PSD editor", "https://photo.lab.audasmedia.com.au", login=True), "Photo editing & retouching", "https://gimp.lab.audasmedia.com.au"),
Tool("penpot", "Penpot", "image", Tool("penpot", "Penpot", "image",
"Open-source design & prototyping", "https://penpot.lab.audasmedia.com.au", login=True), "Open-source design & prototyping", "https://penpot.lab.audasmedia.com.au", login=True),
Tool("photo-filter", "Photo Filter", "image", Tool("photo-filter", "Photo Filter", "image",
"Photo utility / filtering", "https://photo-filter.lab.audasmedia.com.au", login=True), "Photo utility / filtering", "https://photo-filter.lab.audasmedia.com.au"),
# ---- Video --------------------------------------------------------- # ---- Video ---------------------------------------------------------
Tool("video-editor", "Video Editor", "video", Tool("video-editor", "Video Editor", "video",
"Desktop video editing in your browser", "https://video.lab.audasmedia.com.au", login=True), "Desktop video editing in your browser", "https://video.lab.audasmedia.com.au"),
Tool("jellyfin", "Jellyfin", "media", Tool("jellyfin", "Jellyfin", "media",
"Movies, TV & music server", "https://jellyfin.lab.audasmedia.com.au", login=True), "Movies, TV & music server", "https://jellyfin.lab.audasmedia.com.au", login=True),
Tool("jellyseerr", "Jellyseerr", "media", Tool("jellyseerr", "Jellyseerr", "media",
@@ -126,9 +126,9 @@ def _cat() -> list[Tool]:
# ---- Audio --------------------------------------------------------- # ---- Audio ---------------------------------------------------------
Tool("audio-editor", "Audio Editor", "audio", Tool("audio-editor", "Audio Editor", "audio",
"Multi-track audio editing", "https://audio.lab.audasmedia.com.au", login=True), "Multi-track audio editing", "https://audio.lab.audasmedia.com.au"),
Tool("lmms", "LMMS Music Studio", "audio", Tool("lmms", "LMMS Music Studio", "audio",
"Beats, melodies & full arrangements", "https://lmms.lab.audasmedia.com.au", login=True), "Beats, melodies & full arrangements", "https://lmms.lab.audasmedia.com.au"),
Tool("snapcast", "Snapcast", "audio", Tool("snapcast", "Snapcast", "audio",
"Sync audio to speakers around the house", "https://snapcast.home.lab", lan=True), "Sync audio to speakers around the house", "https://snapcast.home.lab", lan=True),
Tool("mopidy", "Mopidy", "audio", Tool("mopidy", "Mopidy", "audio",
@@ -320,6 +320,5 @@ def _dsh_for_user(user) -> Tool:
mode=base.mode, mode=base.mode,
status=base.status, status=base.status,
external=True, external=True,
login=True,
private=True, private=True,
) )