Sync workspace with Gitea: merge June/July session docs
- README + siklos-docker-services: add authentik/searxng/beszel rows, photos VM section, 2026-06-24 cleanup notes, 2026-07-03 Portainer conversion note (jgpc naming preserved) - Add: authentik setup docs, frigate docs/config, OCIS migration docs, AdventureLog bug report, install-native-apps.sh, workstation-disk-analysis.md - Remove obsolete: cgitta-nextcloud-zip-analysis.md, kopia-restore-guide.md - .gitignore: ocis-credentials.md (secrets stay local), *.bak
This commit is contained in:
Executable
+213
@@ -0,0 +1,213 @@
|
||||
#!/bin/bash
|
||||
# Replace Flatpak apps with native installs
|
||||
# Migrates configs from Flatpak sandboxes to native locations
|
||||
# Safe to re-run — won't overwrite existing native configs without prompting
|
||||
set -e
|
||||
|
||||
BACKUP="$HOME/flatpak-config-backup"
|
||||
TMPDIR="$HOME/Downloads/native-installs"
|
||||
mkdir -p "$TMPDIR"
|
||||
|
||||
echo "============================================"
|
||||
echo " Step 1: Install KeePassXC via apt"
|
||||
echo "============================================"
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y keepassxc
|
||||
echo "Done."
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " Step 1b: Install Telegram (official tarball)"
|
||||
echo "============================================"
|
||||
echo "Downloading Telegram..."
|
||||
wget -q --show-progress -O "$TMPDIR/telegram.tar.xz" \
|
||||
"https://telegram.org/dl/desktop/linux"
|
||||
sudo mkdir -p /opt/telegram
|
||||
sudo tar -xJf "$TMPDIR/telegram.tar.xz" -C /opt/telegram --strip-components=1
|
||||
sudo ln -sf /opt/telegram/Telegram /usr/local/bin/telegram
|
||||
|
||||
mkdir -p ~/.local/share/applications
|
||||
cat > ~/.local/share/applications/telegram-desktop.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Name=Telegram Desktop
|
||||
Comment=Official Telegram messaging app
|
||||
Exec=/opt/telegram/Telegram -- %u
|
||||
Icon=/opt/telegram/telegram.png
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Chat;Network;InstantMessaging;
|
||||
MimeType=x-scheme-handler/tg;
|
||||
StartupNotify=true
|
||||
StartupWMClass=TelegramDesktop
|
||||
EOF
|
||||
|
||||
update-desktop-database ~/.local/share/applications 2>/dev/null || true
|
||||
echo "Telegram installed to /opt/telegram"
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " Step 2: Download Obsidian .deb"
|
||||
echo "============================================"
|
||||
wget -q --show-progress -O "$TMPDIR/obsidian.deb" \
|
||||
"https://github.com/obsidianmd/obsidian-releases/releases/download/v1.12.7/obsidian_1.12.7_amd64.deb"
|
||||
echo "Obsidian downloaded."
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " Step 3: Download FreeTube .deb (latest)"
|
||||
echo "============================================"
|
||||
FREETUBE_URL=$(curl -s https://api.github.com/repos/FreeTubeApp/FreeTube/releases/latest \
|
||||
| grep -o '"browser_download_url": "[^"]*amd64\.deb"' \
|
||||
| head -1 | cut -d'"' -f4)
|
||||
|
||||
if [ -z "$FREETUBE_URL" ]; then
|
||||
echo "WARNING: Could not auto-detect FreeTube version. Check https://github.com/FreeTubeApp/FreeTube/releases"
|
||||
echo "Download the *_amd64.deb file manually and run: sudo dpkg -i ~/Downloads/freetube_*.deb"
|
||||
else
|
||||
wget -q --show-progress -O "$TMPDIR/freetube.deb" "$FREETUBE_URL"
|
||||
echo "FreeTube downloaded."
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " Step 4: Install .deb packages"
|
||||
echo "============================================"
|
||||
sudo dpkg -i "$TMPDIR/obsidian.deb" 2>/dev/null || true
|
||||
[ -f "$TMPDIR/freetube.deb" ] && sudo dpkg -i "$TMPDIR/freetube.deb" 2>/dev/null || true
|
||||
sudo apt-get install -f -y # fix any missing dependencies
|
||||
echo "Done."
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " Step 5: Install Zen Browser (native tar.xz)"
|
||||
echo "============================================"
|
||||
echo "Downloading Zen (this may take a minute — ~90MB)..."
|
||||
wget -q --show-progress -O "$TMPDIR/zen.tar.xz" \
|
||||
"https://github.com/zen-browser/desktop/releases/latest/download/zen.linux-x86_64.tar.xz"
|
||||
|
||||
sudo mkdir -p /opt/zen
|
||||
sudo tar -xJf "$TMPDIR/zen.tar.xz" -C /opt/zen --strip-components=1
|
||||
sudo chmod +x /opt/zen/zen
|
||||
|
||||
# Symlink so you can type 'zen' in the terminal
|
||||
sudo ln -sf /opt/zen/zen /usr/local/bin/zen
|
||||
|
||||
# Find the icon (location varies by version)
|
||||
ZEN_ICON=$(find /opt/zen -name "default128.png" 2>/dev/null | head -1)
|
||||
[ -z "$ZEN_ICON" ] && ZEN_ICON="/opt/zen/browser/chrome/icons/default/default128.png"
|
||||
|
||||
# Create application menu entry
|
||||
mkdir -p ~/.local/share/applications
|
||||
cat > ~/.local/share/applications/zen-browser.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Name=Zen Browser
|
||||
Comment=Experience a calmer internet
|
||||
Exec=/opt/zen/zen %u
|
||||
Icon=$ZEN_ICON
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Network;WebBrowser;
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;
|
||||
StartupNotify=true
|
||||
StartupWMClass=zen-alpha
|
||||
EOF
|
||||
|
||||
update-desktop-database ~/.local/share/applications 2>/dev/null || true
|
||||
echo "Zen installed to /opt/zen"
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " Step 6: Migrate configs from Flatpak backups"
|
||||
echo "============================================"
|
||||
|
||||
# KeePassXC — settings (recent files, window layout, etc.)
|
||||
if [ -d "$BACKUP/org.keepassxc.KeePassXC/config/keepassxc" ]; then
|
||||
mkdir -p ~/.config/keepassxc
|
||||
cp -rn "$BACKUP/org.keepassxc.KeePassXC/config/keepassxc/." ~/.config/keepassxc/
|
||||
echo "KeePassXC: config migrated (database stays at ~/passwords/kpdb.kdbx)"
|
||||
else
|
||||
echo "KeePassXC: no config found in backup, skipping"
|
||||
fi
|
||||
|
||||
# Telegram — tdata contains your login session (no need to re-scan QR code)
|
||||
if [ -d "$BACKUP/org.telegram.desktop/data/TelegramDesktop" ]; then
|
||||
mkdir -p ~/.local/share/TelegramDesktop
|
||||
cp -rn "$BACKUP/org.telegram.desktop/data/TelegramDesktop/." ~/.local/share/TelegramDesktop/
|
||||
echo "Telegram: session data migrated (you should stay logged in)"
|
||||
else
|
||||
echo "Telegram: no data found in backup, you'll need to log in again"
|
||||
fi
|
||||
|
||||
# FreeTube — subscriptions, history, settings
|
||||
if [ -d "$BACKUP/io.freetubeapp.FreeTube/config/FreeTube" ]; then
|
||||
mkdir -p ~/.config/FreeTube
|
||||
# Copy only the actual data files, skip caches
|
||||
for item in "$BACKUP/io.freetubeapp.FreeTube/config/FreeTube/"*; do
|
||||
name=$(basename "$item")
|
||||
case "$name" in
|
||||
Cache|"Code Cache"|GPUCache|DawnGraphiteCache|DawnWebGPUCache|Crashpad)
|
||||
echo "FreeTube: skipping cache: $name"
|
||||
;;
|
||||
*)
|
||||
cp -rn "$item" ~/.config/FreeTube/ 2>/dev/null || true
|
||||
;;
|
||||
esac
|
||||
done
|
||||
echo "FreeTube: config migrated (subscriptions + history preserved)"
|
||||
else
|
||||
echo "FreeTube: no config found in backup, skipping"
|
||||
fi
|
||||
|
||||
# Obsidian — app-level config (vault list, theme, plugins list)
|
||||
if [ -d "$BACKUP/md.obsidian.Obsidian/config/obsidian" ]; then
|
||||
mkdir -p ~/.config/obsidian
|
||||
for item in "$BACKUP/md.obsidian.Obsidian/config/obsidian/"*; do
|
||||
name=$(basename "$item")
|
||||
case "$name" in
|
||||
Cache|"Code Cache"|GPUCache|DawnGraphiteCache|DawnWebGPUCache|Crashpad)
|
||||
echo "Obsidian: skipping cache: $name"
|
||||
;;
|
||||
*)
|
||||
cp -rn "$item" ~/.config/obsidian/ 2>/dev/null || true
|
||||
;;
|
||||
esac
|
||||
done
|
||||
echo "Obsidian: config migrated (vaults are wherever you stored them, unchanged)"
|
||||
else
|
||||
echo "Obsidian: no config found in backup, skipping"
|
||||
fi
|
||||
|
||||
# Zen — full browser profile (bookmarks, extensions, history, passwords, settings)
|
||||
if [ -d "$BACKUP/app.zen_browser.zen/.zen" ]; then
|
||||
echo "Zen: migrating browser profile (bookmarks, extensions, history)..."
|
||||
mkdir -p ~/.zen
|
||||
cp -rn "$BACKUP/app.zen_browser.zen/.zen/." ~/.zen/
|
||||
echo "Zen: profile migrated"
|
||||
else
|
||||
echo "Zen: no profile found in backup, starting fresh"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " Step 7: Remove Flatpak versions"
|
||||
echo "============================================"
|
||||
flatpak remove -y \
|
||||
app.zen_browser.zen \
|
||||
org.keepassxc.KeePassXC \
|
||||
md.obsidian.Obsidian \
|
||||
org.telegram.desktop \
|
||||
io.freetubeapp.FreeTube
|
||||
echo "Flatpaks removed."
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " All done!"
|
||||
echo "============================================"
|
||||
echo ""
|
||||
echo "Summary:"
|
||||
echo " KeePass database : ~/passwords/kpdb.kdbx (unchanged)"
|
||||
echo " Config backup : ~/flatpak-config-backup/ (safe to delete later)"
|
||||
echo " Downloaded debs : ~/Downloads/native-installs/ (safe to delete)"
|
||||
echo " Zen installed to : /opt/zen"
|
||||
echo ""
|
||||
echo "Next: open Zen and re-run 'firefoxpwa profile patch' to fix PWAs"
|
||||
Reference in New Issue
Block a user