Blog

  • Docker + Docker Compose Installation Guide

    Ubuntu Server 24.04.4 LTS (Intel / AMD)

    Overview

    This guide installs:

    • Docker Engine
    • Docker Compose v2
    • Docker Buildx
    • Automatic Docker startup at boot

    Platform:

    • Ubuntu Server 24.04.4 LTS
    • Intel / AMD (x86_64)

    Step 1 — Update Ubuntu

    Update package lists and upgrade the system.

    sudo apt update
    sudo apt upgrade -y

    Step 2 — Install Required Dependencies

    Install packages required for secure repositories.

    sudo apt install -y ca-certificates curl gnupg

    Step 3 — Create Docker Keyring Directory

    sudo install -m 0755 -d /etc/apt/keyrings

    Step 4 — Add Docker Official GPG Key

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
    sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

    Set proper permissions:

    sudo chmod a+r /etc/apt/keyrings/docker.gpg

    Step 5 — Add Docker Repository

    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
    https://download.docker.com/linux/ubuntu \
    $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    Step 6 — Update Package Index

    sudo apt update

    Step 7 — Install Docker Engine and Components

    Install Docker Engine and related tools:

    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    Installed components include:

    • docker-ce – Docker Engine
    • docker-ce-cli – Docker command-line tools
    • containerd – container runtime
    • docker-buildx-plugin – advanced build tool
    • docker-compose-plugin – Docker Compose v2

    Step 8 — Enable Docker to Start Automatically

    sudo systemctl enable docker
    sudo systemctl start docker

    Verify Docker service status:

    systemctl status docker

    Press Q to exit.


    Step 9 — Verify Installation

    Check Docker version:

    docker --version

    Example output:

    Docker version 26.x.x

    Check Docker Compose version:

    docker compose version

    Example output:

    Docker Compose version v2.x.x

    Step 10 — Test Docker Installation

    Run a test container:

    sudo docker run hello-world

    Expected output:

    Hello from Docker!

    This confirms Docker is working properly.


    Step 11 — (Optional) Allow Docker Without sudo

    Add your user to the Docker group:

    sudo usermod -aG docker $USER

    Then log out and log back in or reboot the server.

    Test:

    docker ps

    Example Docker Compose Test

    Create a Test Directory

    mkdir ~/docker-test
    cd ~/docker-test

    Create Compose File

    nano docker-compose.yml

    Paste the following:

    services:
    nginx:
    image: nginx:latest
    ports:
    - "8080:80"

    Save and exit.


    Start Container

    docker compose up -d

    Verify Container Running

    docker ps

    You should see the nginx container running.


    Open in Browser

    http://SERVER-IP:8080

    You should see the Nginx welcome page.


    Stop the Container

    docker compose down

    Useful Docker Commands

    List running containers

    docker ps

    List all containers

    docker ps -a

    View container logs

    docker logs CONTAINER_NAME

    Stop a container

    docker stop CONTAINER_NAME

    Remove a container

    docker rm CONTAINER_NAME

    Optional Tools (Recommended for Servers)

    Common tools installed with Docker environments:

    ToolPurpose
    PortainerWeb UI for Docker management
    Nginx Proxy ManagerReverse proxy + SSL
    WatchtowerAutomatic container updates
  • Turbocharge Your AppImages: Instant Boot & GPU Acceleration on Ubuntu

    If you are running a powerhouse Linux setup—like the Intel Core Ultra 9 (Evo Edition) and an NVIDIA RTX 5050—you expect your apps to open instantly. However, AppImages often feel sluggish. Why? Because by default, they are compressed files that need to “unzip” into memory every single time you click them.

    In this guide, I’ll show you how to bypass the compression, fix “Sandbox” errors, and force your NVIDIA GPU to handle the heavy lifting.


    The Problem: The “Slow” Default

    Standard AppImages use SquashFS compression. This saves disk space but costs CPU time. Even on an Ultra 9, that micro-delay is noticeable. Additionally, these apps often default to integrated Intel graphics instead of your dedicated RTX card.


    The Solution: The “Extraction” Method

    To get the best performance, we extract the AppImage to a permanent folder. This allows your NVMe SSD to feed the CPU directly without decompression overhead.

    Step 1: Extract and Optimize

    Instead of just running the file, open your terminal and run:

    Bash

    ./your-app.AppImage --appimage-extract
    mv squashfs-root MyOptimizedApp
    

    Step 2: Fixing the “FATAL” Sandbox Error

    When you extract an AppImage, the Chromium sandbox (used by apps like Discord, VS Code, and Obsidian) loses its security permissions. You’ll see a “setuid sandbox” error. Fix it with these commands:

    Bash

    sudo chown root:root ./MyOptimizedApp/chrome-sandbox
    sudo chmod 4755 ./MyOptimizedApp/chrome-sandbox
    

    Step 3: Forcing the NVIDIA RTX 5050

    To ensure your app isn’t lagging on integrated graphics, you need to tell Ubuntu to use NVIDIA Prime Offload. When creating your desktop launcher, use this command in the Exec line:

    env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ./AppRun


    The “One-Click” Automation Script

    If you have many AppImages, doing this manually is a pain. Here is a bash script I wrote that automates the whole process: it extracts the app, renames the folder, fixes security permissions, and creates a high-performance desktop launcher.

    Bash

    #!/bin/bash
    # High-Performance AppImage Optimizer for Ubuntu
    APP_DIR="/home/$USER/Applications"
    DESKTOP_DIR="/home/$USER/.local/share/applications"
    NEW_APP_PATH=$(readlink -f "$1")
    
    # 1. Extraction & Renaming
    read -p "Enter App Name (e.g., Discord): " APP_NAME
    read -p "Enter Folder Name (e.g., Discord_Extracted): " FOLDER_NAME
    cd "$APP_DIR"
    "$NEW_APP_PATH" --appimage-extract > /dev/null
    mv squashfs-root "$FOLDER_NAME"
    
    # 2. Fix Sandbox & GPU Setup
    sudo chown root:root "$APP_DIR/$FOLDER_NAME/chrome-sandbox"
    sudo chmod 4755 "$APP_DIR/$FOLDER_NAME/chrome-sandbox"
    
    # 3. Create High-Perf Launcher
    cat <<EOF > "$DESKTOP_DIR/${FOLDER_NAME,,}.desktop"
    [Desktop Entry]
    Type=Application
    Name=$APP_NAME
    Exec=env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia $APP_DIR/$FOLDER_NAME/AppRun
    Icon=utilities-terminal
    Terminal=false
    Categories=Utility;
    EOF
    
    update-desktop-database "$DESKTOP_DIR"
    echo "✅ $APP_NAME is now optimized for RTX 5050!"

    Summary of Benefits

    FeatureDefault AppImageOptimized Method
    Startup Speed3-5 SecondsInstant (<1s)
    GPUIntegrated IntelNVIDIA RTX 5050
    CPU ImpactHigh (Decompressing)Low (Direct Execution)

    Conclusion

    Don’t let compression throttle your high-end hardware. By extracting your AppImages and forcing GPU offloading, you can turn a sluggish utility into a snappy, desktop-integrated application that takes full advantage of the Intel Ultra 9 architecture.

    Have questions about Linux optimization? Drop a comment below!

  • SOP: PS4 Extended Storage & Save Resigning on Non-Jailbreak with Save Wizard PS4 Max—Only works on 13.00 or below.

    Method: Vue-After-Free
    | Target: Non-Jailbroken PS4 Consoles
    |Credit: ALL credit is in here ->README.md
    | Link: https://github.com/Vuemony/vue-after-free

    📋 Prerequisites & Tools

    Ensure you have all items listed below before starting. Missing one step in this chain will result in a “Data Corrupted” error on the PS4.

    • Console: PS4 with an active internet connection.
    • Network: Must use Earthonion DNS – 127.0.0.2 or 62.210.38.117.
    • PSN Account: A legitimate or “fake” activated user profile.
    • Hardware: USB 3.0+ External Drive (HDD/SSD), minimum 256 GB.
    • Software (PC): * BalenaEtcher (for image flashing).

    🛠️ Phase 1: Drive & App Preparation

    Goal: Prepare the external storage so the PS4 recognizes the modified capacity.

    1. Flash the Image: Open BalenaEtcher on your PC and flash the Earthonion image onto your USB drive.
      Note: The drive may show as 256GB initially; this is normal.
    2. After you are done, flash Drive, USB Flash Drive plug in front of the USB port.
    3. Internal Move: On your PS4, move the PlayStation Vue app to the internal storage.
    4. Not have to—You can skip to Phase 2,
      Format Drive: Connect the USB to the PS4. Navigate to Settings > Devices > USB Storage Devices and select Format as Extended Storage.
    5. Not have to—You can skip to Phase 2,
      Final Migration: Move the PlayStation Vue app from Internal Storage back onto the Extended Storage drive.

    📤 Phase 2: Exporting the Base Save

    Goal: Extract your unique profile signature so the PC software can recognize you.

    1. Generate Error: Launch PlayStation Vue. Wait for the error code to appear, then close the app.
    2. Export Save: Navigate to Settings > Application Saved Data Management > Saved Data in System Storage.
    3. Plug a different USB flash drive (ExFat) into the PS4’s second port.
    4. Transfer: Select Copy to USB Storage Device and choose the PlayStation Vue save file.
    5. Then unplug the USB flash drive from the PS4 and plug it into the laptop (32 GB or any of your preferred storage size for save game and Homebrew and payload.bin), not the external drive from Earthonion, which is a separate flash drive.

    💻 Phase 3: PC Modification & Resigning

    Goal: “Sign” the hack so your PS4 thinks you created it.

    Part A: Directory Setup

    1. Connect the save game USB to your PC.
    2. Ensure the file path is exactly: USB Drive > PS4 > SAVEDATA > 4f73272fd28f38284 (my profile ID). And create a folder in SAVEDATA -> 1111111111111111 for to do the resign to match your profile ID.
    3. Copy the CUSA00960 folder from the Earthonion download into the 1111111111111111 folder.

    Part B: Save Wizard Registration

    1. Open Save Wizard for PS4 and go to the Re-sign tab.
    2. Find CUSA00960, right-click your Profile/PSN ID, and select Register.
    3. Select the 1111111111111111 folder and click Resign.
    4. When prompted to overwrite the original, select Yes.

    📥 Phase 4: Final Import & Bypass

    Goal: Apply the modified data to the console.

    1. Plug the USB into the PS4.
    2. Go to Settings > Application Saved Data Management > Saved Data on USB Storage Device.
    3. Select Copy to System Storage and pick PlayStation Vue.
    4. Confirm the overwrite when prompted.
    5. Launch PlayStation Vue. The error should now be bypassed.

    Troubleshoot:

    IssuePotential CauseSolution
    Save not showing on PCIncorrect folder structureEnsure path is PS4 > SAVEDATA > [Numbers] > CUSA00960
    “Data Corrupted” on PS4Profile mismatchEnsure you Registered your PSN ID in Phase 3, Part B.
    Drive capacity errorFormatting sequenceRepeat Phase 1; ensure the app is moved after the format.

  • SOP: Installing T7 GSC Injector for Black Ops 3 (GoldHEN)

    Purpose

    To install and configure the T7 GSC Injector plugin for use with Call of Duty: Black Ops 3.


    Requirements

    • GoldHEN enabled
    • FTP access to the console
    • T7_GSC_Injector.prx file
    • A compatible .gscc menu file

    Procedure

    Step 1: Download the Plugin

    1. Download the file T7_GSC_Injector.prx to your computer.

    Step 2: Transfer Plugin to Console

    1. Connect to your console using FTP FileZilla.
    2. Navigate to the following directory:
    /data/GoldHEN/plugins/
    1. Upload T7_GSC_Injector.prx to this folder.
    2. Do NOT rename the .prx file.

    Step 3: Create Injector Directory

    1. In FTP, navigate to:
    /data/
    1. Create a new folder named exactly:
    T7 GSC Injector

    Step 4: Add and Rename Menu File + Download Link For menu by Muzzman

    1. Upload your .gscc menu file into:
    /data/T7 GSC Injector/
    1. Rename the file to:
    gssc_0

    Important:

    • Remove the file extension completely.
    • The file must NOT have .gscc after renaming.
    • If using multiple menus, increment the number (e.g., gssc_1, gssc_2).

    Step 5: Launch the Game

    1. Start Call of Duty: Black Ops 3.
    2. Enter the multiplayer or Zombies lobby.
    3. A notification should appear showing how to open the injected menu.

    Verification Checklist

    • Plugin file is in /data/GoldHEN/plugins/
    • Folder /data/T7 GSC Injector/ exists
    • Menu file is renamed to gssc_0 with no extension
    • In-game notification appears

Secret Link