from: http://i2pforum.i2p/viewtopic.php?t=1185
http://i2pforum.i2p/viewtopic.php?t=1185
Still a wip or playwith. Just some minimal things i use and more or less just a way to bring the user to the i2p ready browsing state. I made some scripts(lol) and a tutorial in somewhat the direction i mentioned in my other thread (http://i2pforum.i2p/viewtopic.php?t=1178). I still don't know if this will help some to install a vm for i2p usage or it will fail because something needed is missing for good usage (like qemu copy&paste enabled, graphic performance etc.) I hope that it will bring more i2p apps together and so more testing and usage of them for common users. I added some videos which show the user what will happened and would like to have it for every install.
I only tested this on a linux host. So everything for the windows host is missing. Like winscp, sshfs for win, wget for win, qemu for win. These should be later in the install folder too. Some things i haven't added are the live user with its home on tmpfs, scripts for making own live usb from the actual system with linux live kit, something i2p informative for the desktop background, videos for the apps... Some things for future testing are i2pchat, railroad, i2ptor-manager, cryptowallets. And some apps i still haven't decided to use, like midori or in general another browser for the clearnet use, like for the app website. I use netsurf, but it is unusable for most sites. And there is the fluxbox config to play with, for having a autostart in caja or switching users instead of exit in fluxbox. Menu is also wip and not fixed in the structure.
There were also some surprise for the luks password use. Normally there would have been 2 password asked for at startup, as there are 2 partitions encrypted. But it only asked at first boot for two. After that only one password is needed. Maybe as it is the same password or because of the setup it has spared it. Don't know, but nice.
I think that with scripts/same system it is somewhat easier for others to customize/use this. So if you have some ideas for comfort, security, better scripts, other folder structure or whatever you think others could benefit, do post/paste them if you like.
Scripts for ufw in different security scenarios, privoxy, cleaning besides bleachbit.. could be useful.
There are many things in qemu i still don't know/haven't tested, like ramdisk usage for snapsots, its network config, devices...so if you have more knowledge, post.
Ideal easy would be a ready to use system with apps and bundled images. Size is there the problem. There are ways like undersizing the partition or compress the images (both 12gb raw images,comp to 6gb) and let them decompress on the users system. There are ways to change the luks partitions password, i haven't tested yet, but if it works, it is possible to have a pre encrypted image distributed, i guess.
Usage videos:
Create.Env.StartSystemInstall.h264.mp4:
FirstTime.I2P.Install.h264.mp4:
FirstTime.I2Pplus.Install.h264.mp4:
all in one zip clearnet: https://1fichier.com/?sv806a45o3uop6crupf4
And here is the tutorial: .
Create 2 qemu harddisk images in raw format or qcow2 format (better for snapshots) system.img with /boot ext4 and / with luks/btrfs home.img with /home with luks/btrfs
Script in InstallRoot: Create.Env.HarddiskImages.sh
qemu-img create -f raw ./system.img 12G
qemu-img create -f raw ./home.img 12G
Start the install with the 2 images, the install iso and the qemu port forwarding for ssh access from the host to the guest with ssh i2p@127.0.0.1 -p 8888
Script in InstallRoot: Create.Env.StartSystemInstall.sh
wget http://ftp.free.fr/mirrors/cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.7.0-amd64-netinst.iso qemu-system-x86_64 -enable-kvm -smp 6 -display gtk -m 4G -hda system.img -hdb home.img -cdrom debian-11.7.0-amd64-netinst.iso -device VGA,vgamem_mb=64 -device virtio-net,netdev=vmnic -netdev user,id=vmnic,hostfwd=tcp::8888-:22 -boot order=d
Give hostname: i2pqemu new user: i2p and password i2p encrypted partitions password: i2p (choose whatever)
Create the above partitions Enable Openssh [Video: Create.Env.StartSystemInstall.h264.mp4] Shutdown system after install
Start the System
Script in InstallRoot: Start.I2P.System.default.sh
qemu-system-x86_64 -enable-kvm -smp 6 -display gtk -m 4G -hda system.img -hdb home.img -device VGA,vgamem_mb=64 -device virtio-net,netdev=vmnic -netdev user,id=vmnic,hostfwd=tcp::8888-:22 -boot order=c
Now you can log in or use the port forwarding of qemu to access the system by: ssh i2p@127.0.0.1 -p 8888 from your host.
You can also mount the guest system in your host system by:
Script in InstallRoot: Guest.I2P.FilesystemMount.Linux.sh
sshfs -p 8888 i2p@127.0.0.1:/ ./sshfsMount/
Install Apps:
Script in /Desktop/InstallApps/Install.System.CoreTools.sh
sudo apt-get install tigervnc-standalone-server zram-tools nmap iotop lsof zulucrypt-gui zulucrypt-cli zulumount-gui zulumount-cli caja caja-open-terminal pcmanfm mate-terminal firefox-esr geeqie dillo netsurf-gtk bleachbit openjdk-17-jre openjdk-17-jre-headless mc htop fluxbox byobu nmon pluma gnome-system-monitor smplayer mpv lightdm lxde engrampa
Optional: Some minor System configs:
zram: Change the file in /etc/default/zramswap with
Script in Desktop/System.Configurations.zram.sh:
sudo mcedit /etc/default/zramswap
sudo pluma /etc/default/zramswap
set: percent=95 and priority=100
tmpfs for live user: Change the file in /etc/fstab with
Script in Desktop/System.Configurations.liveTmpfs.sh:
sudo mcedit /etc/fstab
sudo pluma /etc/fstab
add: sudo mount -t tmpfs -o size=95% none /home/live
or
tmpfs /home/live tmpfs defaults,size=95% 0 0
btrfs compression for the filesystem: Change the file in /etc/fstab with
Script in Desktop/System.Configurations.btrfsCompression.sh:
sudo mcedit /etc/fstab
sudo pluma /etc/fstab
paste: ,compress=zstd
after defaults,
https://wiki.debian.org/LightDM
Show users in lightdm: Change the file in /etc/fstab with
Script in Desktop/System.Configurations.lightdmShowUsers.sh:
sudo mcedit /etc/lightdm/lightdm.conf
sudo pluma /etc/lightdm/lightdm.conf
find/set to: greeter-hide-users=false
For sudo to work with gui apps:
https://super-unix.com/ubuntu/ubuntu-cant-open-gedit-as-root/
added the line Defaults env_keep+="DISPLAY" to the end of the visudo file at /etc/sudoers
sudo mcedit /etc/sudoers
Shutdown system after or sudo reboot
Fluxbox Configuration
menu in .fluxbox folder:
[begin] (fluxbox)
[include] (/etc/X11/fluxbox/fluxbox-menu)
[submenu] (-I2P-)
[submenu] (I2P-Router)
[exec] (I2Pplus.Router.START) {~/Desktop/First.Install/I2P.Router/I2Pplus/Regular.I2PplusRouterStart.sh}
[exec] (I2Pplus.Router.STOP) {~/Desktop/First.Install/I2P.Router/I2Pplus/Regular.I2PplusRouterStop.sh}
[exec] (I2P.Router.START) {~/Desktop/First.Install/I2P.Router/I2P/Regular.I2PRouterStart.sh}
[exec] (I2P.Router.STOP) {~/Desktop/First.Install/I2P.Router/I2P/Regular.I2PRouterStop.sh}
[end]
[submenu] (Terminal)
[exec] (lxterminal) {lxterminal}
[exec] (mate-terminal) {mate-terminal}
[end]
[submenu] (Screensize)
[exec] (Screenresize_1920x1080) {xrandr -s 1920x1080}
[exec] (Screenresize_1280x960) {xrandr -s 1280x960}
[exec] (Screenresize_1200x720) {xrandr -s 1280x720}
[exec] (Screenresize_800x600) {xrandr -s 800x600}
[end]
[submenu] (Browser)
[exec] (I2P.Firefox-esr) {firefox-esr}
[exec] (LibreWolf.AppImage) {~/Desktop/AppImages/LibreWolf.x86_64.AppImage}
[exec] (falkon) {falkon}
[exec] (netsurf) {netsurf-gtk}
[exec] (surf) {surf}
[exec] (midori) {midori}
[exec] (dillo) {dillo}
[end]
[submenu] (Filebrowser)
[exec] (Caja) {caja}
[exec] (pcmanfm-qt) {pcmanfm-qt}
[exec] (pcmanfm) {pcmanfm}
[exec] (xfe) {xfe}
[end]
[submenu] (Media)
[exec] (smplayer) {smplayer}
[exec] (vlc) {vlc}
[exec] (geeqie) {geeqie}
[end]
[submenu] (Com)
[exec] (hexchat_I2P) {hexchat}
[exec] (MuWire-0.8.13) {~/Desktop/Install.otherApps/MuWire/MuWire-0.8.13/MuWire-0.8.13/bin/MuWire}
[exec] (MuWire-0.8.13-beta5) {~/Desktop/Install.otherApps/MuWire//MuWire-0.8.13-beta5/MuWire-0.8.12/bin/MuWire}
[end]
[submenu] (Tools)
[exec] (Peazip) {bleachbit}
[exec] (Bleachbit) {bleachbit}
[exec] (Bleachbit as Root) {sudo bleachbit}
[exec] (xarchiver) {xarchiver}
[exec] (zuluCrypt-gui) {zuluCrypt-gui}
[exec] (zuluMount-gui) {zuluMount-gui}
[exec] (gkrellm -w) {gkrellm -w}
[exec] (flameshot) {flameshot}
[exec] (gnome-system-monitor) {gnome-system-monitor -s}
[exec] (conky) {conky}
[end]
[end]
[end]
Main scripts
I2P as I2PRouter
[video: FirstTime.I2P.Install.h264.mp4]
http://www.geti2p.org/en/download
Script in Desktop/First.Install/I2P.Router/I2P: FirstTime.I2P.Install.sh
mkdir ~/i2p
cd ~/i2p
wget https://download.i2p2.no/releases/2.2.1/i2pinstall_2.2.1.jar
java -jar ./i2pinstall_*.jar
ln ~/Desktop/First.Install/I2P.Router/I2P/Regular.I2PRouterStart.sh ~/Desktop/Regular.I2PRouterStart.sh
ln ~/Desktop/First.Install/I2P.Router/I2P/Regular.I2PRouterStop.sh ~/Desktop/Regular.I2PRouterStop.sh
I2P+ as I2PRouter
[video: FirstTime.I2Pplus.Install.h264.mp4]
http://skank.i2p/
Script in Desktop/First.Install/I2P.Router/I2Pplus: FirstTime.I2Pplus.Install.sh
mkdir ~/i2pplus
cd ~/i2pplus
wget http://i2pplus.github.io/installers/i2pinstall_2.2.0+.exe
java -jar ./i2pinstall_*.exe
ln ~/Desktop/First.Install/I2P.Router/I2Pplus/Regular.I2PplusRouterStart.sh ~/Desktop/Regular.I2PplusRouterStart.sh
ln ~/Desktop/First.Install/I2P.Router/I2Pplus/Regular.I2PplusRouterStop.sh ~/Desktop/Regular.I2PplusRouterStop.sh
Browser Extensions ~/Desktop/Install.otherApps/Get.BrowserAddons.sh
# https://noscript.net/getit/ https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox
wget https://noscript.net/download/releases/noscript-11.4.22.xpi -P ~/Desktop/Install.otherApps/BrowserAddons/
# https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases
wget https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/download/1.43/i2ppb@eyedeekay.github.io.xpi -P ~/Desktop/Install.otherApps/BrowserAddons/
# https://github.com/gorhill/uBlock https://github.com/gorhill/uBlock/releases
wget https://github.com/gorhill/uBlock/releases/download/1.50.0/uBlock0_1.50.0.firefox.xpi -P ~/Desktop/Install.otherApps/BrowserAddons/
PeaZip for archives ~/Desktop/Install.otherApps/Install.Peazip.sh
https://peazip.github.io/
mkdir ~/Desktop/Install.otherApps/Peazip/
cd ~/Desktop/Install.otherApps/Peazip
wget https://github.com/peazip/PeaZip/releases/download/9.2.0/peazip_9.2.0.LINUX.GTK2-1_amd64.deb
sudo apt install ~/Desktop/Install.otherApps/Peazip/peazip_9.2.0.LINUX.GTK2-1_amd64.deb
Hexchat Install + opens the i2pirc tutorial
Script in /Desktop/Install.otherApps: Install.Hexchat.sh
sudo apt install hexchat
netsurf-gtk http://i2p-projekt.i2p/en/docs/applications/irc
Stegano Apps ~/Desktop/Install.otherApps/Install.OpenStego.sh
https://github.com/syvaidya/openstego
https://github.com/syvaidya/openstego/releases/
mkdir ~/Desktop/Install.otherApps/openstego/
cd ~/Desktop/Install.otherApps/openstego/
wget https://github.com/syvaidya/openstego/releases/download/openstego-0.8.6/openstego-0.8.6.zip
unzip *.zip
# deb way:
wget https://github.com/syvaidya/openstego/releases/download/openstego-0.8.6/openstego_0.8.6-1_all.deb
sudo apt install openstego_0.8.6-1_all.deb
LibreWolf
https://librewolf.net/installation/linux/ https://librewolf.net/installation/debian/
Appimages way: Get.LibreWolf.AppImage.sh
wget -O ./Desktop/AppImages/ https://gitlab.com/api/v4/projects/24386000/packages/generic/librewolf/113.0-3/LibreWolf.x86_64.AppImage
chmod +x ./Desktop/AppImages/*.AppImage
More comfort Apps Environments
mate-desktop
Apps choice reasons besides 'i use them, that's why'
zram general useful, needed for low ram systems
mc file commander/editor for terminal
plume comfort, nice
pcmanfm small, nice, like caja
caja more nice, extensions, features, look, bookmarks, open in terminal...
netsurf-gtk small, maybe for permanent i2pconsole otherwise not so usable
gnome-system-monitor overview, look, comfort
peazip nice, features
xnview nice, features, exif remove, post useful
smplayer, mpv small, fast
mate-terminal features, better ones?
lxde that would only be 150mb more, for more comfortable desktop. But main would be fluxbox
xrandr for setting the screen size
libreWolf alternative for i2p browsing
engrampa alternative for compress/decompress
Make a usb live system of your running system
Linux Live Kit
Install the Linux Live Kit
[video: LinuxLiveKit.Install.h264.mp4] https://www.linux-live.org/ https://github.com/Tomas-M/linux-live Script in /Desktop/Install.otherApps: LinuxLiveKit.Install.sh
sudo apt install firmware-linux-nonfree firmware-iwlwifi firmware-realtek i965-va-driver vainfo libvdpau-va-gl1 i965-va-driver vdpauinfo mesa-vdpau-drivers mesa-va-drivers
sudo apt install squashfs-tools genisoimage zip
sudo mkdir /a
cd /a
sudo wget https://github.com/Tomas-M/linux-live/archive/v2.10.tar.gz
sudo tar -xvpf v2.10.tar.gz
Prepare the Linux Live Kit
[video: LinuxLiveKit.Prepare.h264.mp4] https://www.linux-live.org/ https://github.com/Tomas-M/linux-live Script in /Desktop/Install.otherApps: LinuxLiveKit.Prepare.sh
# set to /boot/vmlinuz-yourkernelversion
sudo mcedit /a/linux-live-2.10/config
# livekitlib, search for zram, adjust zram size
sudo mcedit /a/linux-live-2.10/livekitlib
Build the Linux Live Kit usb zip file
[video: LinuxLiveKit.BuildUsbZip.h264.mp4] https://www.linux-live.org/ https://github.com/Tomas-M/linux-live Script in /Desktop/Install.otherApps: LinuxLiveKit.BuildUsbZip.sh
sudo /a/linux-live-2.10/build.sh
sudo /tmp/gen_linux_zip.sh
sudo chmod a+rwx /tmp/linux-x86_64.zip
~~~html
# Script in InstallRoot: Copy.LiveUsbZip.here.sh
from host:
scp -P 8888 i2p@localhost:/tmp/linux-x86_64.zip ./