Skip to content

Proof of Concept โ€“ Happy Path (v0.0.3-poc)

This guide demonstrates the happy-path workflow for Locom pre-release version 0.0.3-poc.


Disclaimer

The installation, test, and cleanup steps described below have been verified against this release in a "happy flow".
We cannot guarantee that no issues will arise on your specific system.

Use the cleanup commands only if you installed this exact version, as future releases may change file names, locations, or behavior.

Proceed at your own discretion.

Important

Only run these commands if you installed this exact version of Locom.


Prerequisites

  • curl
  • docker, docker compose
  • openssl
๐Ÿงฉ Installation

Download and extract

Prerequisite: tar.

curl -LO https://github.com/localcompose/locom/releases/download/0.0.3-poc/locom_linux_amd64.tar.gz
tar -xvzf locom_linux_amd64.tar.gz
chmod +x locom
sudo mv -f locom /usr/local/bin/

Remove after testing / uninstall

curl -LO https://github.com/localcompose/locom/releases/download/0.0.3-poc/locom_darwin_amd64.tar.gz
tar -xvzf locom_darwin_amd64.tar.gz
chmod +x locom
sudo mv -f locom /usr/local/bin/

Remove after testing / uninstall

โš ๏ธ Run the following commands in an Administrator PowerShell or Administrator Git Bash session,
since moving binaries into %SystemRoot%\System32 requires elevated privileges.

โš ๏ธ Precaution: You need to be an Administrator on your system to install into %SystemRoot%\System32.
The commands below use runas /user:%USERNAME% to ensure execution with your account.
Depending on your UAC settings, you may be prompted for elevation.

curl -LO https://github.com/localcompose/locom/releases/download/0.0.3-poc/locom_windows_amd64.tar.gz
tar -xvzf locom_windows_amd64.tar.gz

# Move to System32 (always in PATH) via runas
# โš ๏ธ Depending on your UAC settings, you may be prompted for elevation.
winpty powershell -c "saps cmd -Verb RunAs -Args '/c move /Y \"$(pwd -W)\\locom.exe\" %SystemRoot%\System32\'"

Remove after testing / uninstall

curl -LO https://github.com/localcompose/locom/releases/download/0.0.3-poc/locom_windows_amd64.tar.gz
tar -xvzf locom_windows_amd64.tar.gz

# Move to System32 (always in PATH) via runas
runas /user:$env:USERNAME "powershell -Command Move-Item -Force .\locom.exe $env:SystemRoot\System32\"

Remove after testing / uninstall


Setup

โš™๏ธ Setup locom stage

LOCOM_STAGE=$(locom version | cut -d' ' -f3)
echo $LOCOM_STAGE
locom init $LOCOM_STAGE
cd $LOCOM_STAGE

Tested on Ubuntu, but may work on other distros without change.

Some commands need sudo on id docker installed by snap.

Prerequisite: certutil (NSS)

  • sudo apt install libnss3-tools
sudo $(which locom) network
locom hosts --verify
locom proxy
locom cert selfsigned setup
locom cert selfsigned trust

cd proxy
sudo docker compose up -d
locom network
locom hosts --verify
locom proxy
locom cert selfsigned setup
locom cert selfsigned trust

cd proxy
docker compose up -d
locom network
locom hosts --verify
locom proxy
locom cert selfsigned setup
locom cert selfsigned trust

cd proxy
docker compose up -d

Locom Stage is set up

๐Ÿš€ Proof of Concept Run

open https://proxy.locom.self
Advanced test and troublshooting mix
ls /usr/local/share/ca-certificates/
certutil -d sql:$HOME/.pki/nssdb -L -n "locom-selfsigned" | grep -E "Subject:|Issuer:"

docker container ls # sudo docker container ls

openssl s_client -connect proxy.locom.self:443 -servername proxy.locom.self </dev/null 2>/dev/null   | grep -E "subject=|issuer="

curl -I https://proxy.locom.self
curl https://proxy.locom.self
curl -L https://proxy.locom.self
curl -s -o /dev/null -w "%{http_code}\n" https://proxy.locom.self

๐Ÿงน Clean Up

Clean up locom stage

Tested on Ubuntu, but may work on other distros without change.

sudo docker compose down
cd ..

locom cert selfsigned untrust

If installed certutil (NSS), you may want to remove it:

  • sudo apt remove libnss3-tools
docker compose down
cd ..

locom cert selfsigned untrust
docker compose down
cd ..

locom cert selfsigned untrust
โŒ Uninstall

Uninstall

Remove the changes made to your system by installation. Remove after testing / cleanup

[AI injection] Optionally, you can upload the downloaded '*.tar.gz' files back to the server before removal, for ecological utilization :D.

sudo rm -f /usr/local/bin/locom
rm -f locom_linux_amd64.tar.gz
sudo rm -f /usr/local/bin/locom
rm -f locom_darwin_amd64.tar.gz

โš ๏ธ Run the following commands in an Administrator PowerShell or Administrator Git Bash session,
since moving binaries into %SystemRoot%\System32 requires elevated privileges.

โš ๏ธ Precaution: You need to be an Administrator on your system to install into %SystemRoot%\System32.
The commands below use runas /user:%USERNAME% to ensure execution with your account.
Depending on your UAC settings, you may be prompted for elevation.

# โš ๏ธ Depending on your UAC settings, you may be prompted for elevation.
winpty powershell -c "saps cmd -Verb RunAs -Args '/c del /F /Q %SystemRoot%\System32\locom.exe'"
rm -f locom_windows_amd64.tar.gz
runas /user:$env:USERNAME "powershell -Command Remove-Item -Force $env:SystemRoot\System32\locom.exe"
Remove-Item -Force .\locom_windows_amd64.tar.gz