Uploaded April 2024 | Updated September 2026, 2 weeks ago
#SolidInvoice #Invoicing #Docker
Full steps can be found at i12bretro.github.io/tutorials/0909.html
--------------------------------------------------------------------
What is SolidInvoice?
--------------------------------------------------------------------
SolidInvoice is a sophisticated open-source invoicing application designed to assist small businesses and freelancers in efficiently managing their daily billing operations. With its comprehensive range of features, this elegant online platform ensures that you receive timely payments. - github.com/SolidInvoice/SolidInvoice
--------------------------------------------------------------------
Installing Docker
--------------------------------------------------------------------
01. Log into the Linux based device
02. Run the following commands in the terminal
# install prerequisites
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg-agent -y
# add docker gpg key
curl -fsSL download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)/gpg | sudo apt-key add -
# add docker software repository
sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release) $(lsb_release -cs) stable"
# install docker
sudo apt install docker-ce docker-compose containerd.io -y
# enable and start docker service
sudo systemctl enable docker && sudo systemctl start docker
# add the current user to the docker group
sudo usermod -aG docker $USER
# reauthenticate for the new group membership to take effect
su - $USER
--------------------------------------------------------------------
Running SolidInvoice
--------------------------------------------------------------------
01. Now that Docker is installed, run the following commands to setup the SolidInvoice Docker container and run it
# create working directories
mkdir ~/docker/mariadb -p
# set owner of working directories
sudo chown "$USER":"$USER" ~/docker -R
# run the mariadb docker container
docker run -d --name mariadb -e MYSQL_ROOT_PASSWORD=r00tp@ss -e MYSQL_USER=solidinvoice_rw -e MYSQL_PASSWORD=SolidInv0ic3! -e MYSQL_DATABASE=solidinvoice -v ~/docker/mariadb:/var/lib/mysql --restart=unless-stopped mariadb:latest
# run the solidinvoice docker container
docker run -d --name solidinvoice --link mariadb:solidinvoice -e DB_PASSWORD=SolidInv0ic3! -e DB_USER=solidinvoice_rw -p 8080:80 --restart=unless-stopped solidinvoice/solidinvoice
02. Open a web browser and navigate to http://DNSorIP:8080
03. Click the Next button at the lower right corner of the System Requirements page
04. Complete the Database settings as follows:
Driver: Mysql
Host: mariadb
Port: 3306
User: solidinvoice_rw
Password: SolidInv0ic3!
Database Name: solidinvoice
05. Click Next
06. After the database schema is created successfully ≫ Click Next
07. Click the Log In Now button
08. Login with the admin credentials created earlier
09. Enter a Company Name and select the default currency ≫ Click Create
10. Welcome to SolidInvoice
Documentation: hub.docker.com/r/solidinvoice/solidinvoice
### Connect with me and others ###
★ Discord: discord.com/invite/EzenvmSHW8
★ Reddit: reddit.com/r/i12bretro
★ Twitter: twitter.com/i12bretro
#SolidInvoice #Invoicing #Docker
Full steps can be found at i12bretro.github.io/tutorials/0909.html
--------------------------------------------------------------------
What is SolidInvoice?
--------------------------------------------------------------------
SolidInvoice is a sophisticated open-source invoicing application designed to assist small businesses and freelancers in efficiently managing their daily billing operations. With its comprehensive range of features, this elegant online platform ensures that you receive timely payments. - github.com/SolidInvoice/SolidInvoice
--------------------------------------------------------------------
Installing Docker
--------------------------------------------------------------------
01. Log into the Linux based device
02. Run the following commands in the terminal
# install prerequisites
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg-agent -y
# add docker gpg key
curl -fsSL download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)/gpg | sudo apt-key add -
# add docker software repository
sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release) $(lsb_release -cs) stable"
# install docker
sudo apt install docker-ce docker-compose containerd.io -y
# enable and start docker service
sudo systemctl enable docker && sudo systemctl start docker
# add the current user to the docker group
sudo usermod -aG docker $USER
# reauthenticate for the new group membership to take effect
su - $USER
--------------------------------------------------------------------
Running SolidInvoice
--------------------------------------------------------------------
01. Now that Docker is installed, run the following commands to setup the SolidInvoice Docker container and run it
# create working directories
mkdir ~/docker/mariadb -p
# set owner of working directories
sudo chown "$USER":"$USER" ~/docker -R
# run the mariadb docker container
docker run -d --name mariadb -e MYSQL_ROOT_PASSWORD=r00tp@ss -e MYSQL_USER=solidinvoice_rw -e MYSQL_PASSWORD=SolidInv0ic3! -e MYSQL_DATABASE=solidinvoice -v ~/docker/mariadb:/var/lib/mysql --restart=unless-stopped mariadb:latest
# run the solidinvoice docker container
docker run -d --name solidinvoice --link mariadb:solidinvoice -e DB_PASSWORD=SolidInv0ic3! -e DB_USER=solidinvoice_rw -p 8080:80 --restart=unless-stopped solidinvoice/solidinvoice
02. Open a web browser and navigate to http://DNSorIP:8080
03. Click the Next button at the lower right corner of the System Requirements page
04. Complete the Database settings as follows:
Driver: Mysql
Host: mariadb
Port: 3306
User: solidinvoice_rw
Password: SolidInv0ic3!
Database Name: solidinvoice
05. Click Next
06. After the database schema is created successfully ≫ Click Next
07. Click the Log In Now button
08. Login with the admin credentials created earlier
09. Enter a Company Name and select the default currency ≫ Click Create
10. Welcome to SolidInvoice
Documentation: hub.docker.com/r/solidinvoice/solidinvoice
### Connect with me and others ###
★ Discord: discord.com/invite/EzenvmSHW8
★ Reddit: reddit.com/r/i12bretro
★ Twitter: twitter.com/i12bretro



![Install Raspberry Pi OS on the Microsoft Surface RT Tablet
#SurfaceRT #RaspberryPiOS #Debian
*** Updated 06/29/2023
Full steps can be found at https://i12bretro.github.io/tutorials/0825.html
Disclaimer
This process will overwrite the current Windows 8 RT operating system on the Surface RT tablet. I have tested these steps on my own device (as shown in this video), but I am not responsible if you damage or brick your device. Verify this process will work on your device before starting and make sure to backup any data you do not want to lose before proceeding.
Things You Will Need
- A USB flash drive, at least 8 GB https://amzn.to/3wkR5ju | https://amzn.to/3qkrJ1p | https://amzn.to/3Nhu9b9
- A USB hub
- A USB keyboard
Disabling Secure Boot
NOTE: If you run into issues or errors disabling secure boot, see the troubleshooting steps https://jwa4.gitbook.io/windows/tools/surface-rt-and-surface-2-jailbreak-usb#troubleshooting
01. Insert the USB flash drive into a PC
02. Download the Surface RT jailbreak files https://jwa4.gitbook.io/windows/tools/surface-rt-and-surface-2-jailbreak-usb#download
03. Format the USB flash drive to FAT32
⚠ NOTE: This will delete all files on the drive. Make sure to backup any important files before continuing
a. Right Click Start ≫ File Explorer
b. Right Click the USB flash drive ≫ Format...
c. Select FAT32 from the File System dropdown
d. Name the drive EFI
e. Make sure Quick Format is checked
f. Click Start
10. Extract the downloaded Surface RT jailbreak .zip file to the root of the USB flash drive
11. Safely remove the USB flash drive
12. Power off the Surface RT tablet if it is not already
13. Using the USB hub, connect the USB keyboard and the prepared USB flash drive to the Surface RT tablet
14. Hold Vol- and press the power button, releasing the Vol- when Surface logo appears
15. Select Install Golden Keys ≫ Press Enter
16. Select Accept and Install ≫ Press Enter
17. After the Golden Keys install completes, the tablet will reboot
18. Power off the Surface RT tablet
19. Hold Vol- and press the power button, releasing the Vol- when Surface logo appears
20. Select Install Yahallo ≫ Press Enter
21. After the Yahallo install completes, the tablet will reboot
22. Power off the Surface RT tablet
Preparing Raspberry Pi OS
01. Insert the USB flash drive into a PC
02. Download Raspberry Pi OS https://downloads.raspberrypi.org/raspios_armhf/images/
03. Download Balena Etcher https://www.balena.io/etcher/
04. Download the latest Surface RT zImage, device tree (.dtb) and kernel modules https://files.open-rt.party/Linux-Kernel-Download/surface-rt/
05. Download the EFI boot files https://openrt.gitbook.io/open-surfacert/surface-rt/linux/booting/uefi-boot#premade-zip
06. Extract the downloaded EFI .zip archive
07. Run Balena Etcher
08. Write the Raspberry Pi OS image to USB flash drive
09. Once the write completes, open the readable partition on the USB flash drive
10. From the previous downloads, copy the EFI folder, startup.nsh, zImage and the device tree (.dtb) file to the readable partition on the USB flash drive
11. Open startup.nsh in a text editor
12. Replace the contents of the file with the following
fs0:
zImage dtb=tegra30-microsoft-surface-rt-efi.dtb root=/dev/sda2 rootwait console=tty0 cpuidle.off=1
# shutdown if something went wrong
reset -s
13. Save the changes to startup.nsh and close the editor
14. Safely remove the USB flash drive
15. Power off the Surface RT tablet if it is not already
16. Using the USB hub, connect the USB keyboard and the prepared USB flash drive to the Surface RT tablet
17. Hold Vol- and press the power button, releasing the Vol- when Surface logo appears
18. Raspberry Pi OS should boot from the USB flash drive
19. In Raspberry Pi OS, launch the file manager
20. Navigate to /boot ≫ Copy the sRT-modules- .tar.xz file to the current users home directory
21. Extract the sRT-modules- .tar.xz inside the users home directory
22. Copy the contents of the extracted folder to the corresponding location in the root Linux directory
23. Reboot the Surface RT tablet
24. At this point, you can continue running Raspberry Pi OS from the flash drive, or install it to the internal eMMC storage, replacing the stock Windows 8 RT operating system
Installing Raspberry Pi OS to eMMC Internal Storage
🚨 WARNING: Continuing beyond this point will format the storage on the Surface RT tablet and all files and the Windows 8 RT operating system will be lost
01. While running Raspberry Pi OS from the USB flash drive, click the Applications menu ≫ Accessories ≫ SD Card Copier
....Full steps can be found on GitHub [link at the top]
### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro Install Raspberry Pi OS on the Microsoft Surface RT Tablet](https://i.ytimg.com/vi/uSibzUNiasY/mqdefault.jpg)




![Install Zammad on Linux [Opensource Helpdesk Ticketing System]
#Zammad #Helpdesk #Linux
Full steps can be found at https://i12bretro.github.io/tutorials/0907.html
What is Zammad?
Zammad is a web based open source helpdesk/customer support system with many features to manage customer communication via several channels like telephone, facebook, twitter, chat and emails. - https://github.com/zammad/zammad
Installation
01. Log into the Linux device
02. Run the following commands in terminal
# update software repositories
sudo apt update
# install available software updates
sudo apt upgrade
# install prerequisite packages
sudo apt install curl wget apt-transport-https gnupg -y
# add elasticsearch gpg key
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
# add zammad gpg key
curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | gpg dearmor | sudo tee /etc/apt/keyrings/zammad.gpg≫ /dev/null
# add elasticsearch apt repository
echo deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
# add zammad apt repository
echo deb [signed-by=/etc/apt/keyrings/zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/debian 12 main| sudo tee /etc/apt/sources.list.d/zammad.list
# update software repositories
sudo apt update
# list installed languages
locale | grep LANG=
# if not listed in the above output
# install en_US.UTF-8 and set as default locale
sudo apt install locales -y && sudo locale-gen en_US.UTF-8 && echo LANG=en_US.UTF-8 ≫ sudo /etc/default/locale
# install supporting packages
sudo apt install libimlib2 elasticsearch postgresql postgresql-common redis-server nginx nodejs -y
# start and enable services
sudo systemctl enable postgresql now && sudo systemctl enable redis-server now && sudo systemctl enable nginx now && sudo systemctl enable elasticsearch now
# update postgres max connections to 2000
sudo sed -i s/max_connections = 100/max_connections = 2000/ /etc/postgresql/*/main/postgresql.conf
# restart postgres service
sudo systemctl restart postgresql
# install ingest-attachment for elasticsearch
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
# restart elasticsearch service
sudo systemctl restart elasticsearch
# install zammad
sudo apt install zammad -y
# configure elasticsearch url
sudo zammad run rails r Setting.set(es_url, http://localhost:9200)
# rebuild elasticsearch search index
sudo zammad run rake zammad:searchindex:rebuild
# update server name in nginx config
# replace ≪% SERVER DNS NAME %≫ before executing
sudo sed -i s/server_name localhost;/server_name ≪% SERVER DNS NAME %≫;/ /etc/nginx/sites-available/zammad.conf
# restart nginx service
sudo systemctl restart nginx
03. Open a web browser and navigate to http://DNSorIP
04. Click the Set up a new system button
05. Enter a login, first name, last name, email address, password and check full permissions ≫ Click Create
06. Complete the Organization details form ≫ Click Next
07. Click Skip on the Email Notification screen
08. Click Skip on the Connect Channels screen
09. Welcome to Zammad
Source: https://docs.zammad.org/en/latest/install/package.html
### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro Install Zammad on Linux [Opensource Helpdesk Ticketing System]](https://i.ytimg.com/vi/wVpvKu0T4Co/mqdefault.jpg)
![Run Mealie - Recipe Tracker and Meal Planner - in Docker
#Mealie #Docker #MeanPlanner
Full steps can be found at https://i12bretro.github.io/tutorials/0398.html
What is Mealie?
Mealie is a self hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. Easily add recipes into your database by providing the url and mealie will automatically import the relevant data or add a family recipe with the UI editor. - https://github.com/hay-kot/mealie/
Installing Docker
01. Log into the Linux based device
02. Run the following commands in the terminal
# install prerequisites
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg-agent -y
# add docker gpg key
curl -fsSL https://download.docker.com/linux/$(awk -F= /^ID=/{ print $NF } /etc/os-release)/gpg | sudo apt-key add -
# add docker software repository
sudo add-apt-repository deb [arch=$(dpkg print-architecture)] https://download.docker.com/linux/$(awk -F= /^ID=/{ print $NF } /etc/os-release) $(lsb_release -cs) stable
# install docker
sudo apt install docker-ce docker-compose containerd.io -y
# enable and start docker service
sudo systemctl enable docker && sudo systemctl start docker
# add the current user to the docker group
sudo usermod -aG docker $USER
# reauthenticate for the new group membership to take effect
su - $USER
Running Mealie
01. Continue following commands in a terminal window
# create working directories
mkdir ~/docker/mealie -p
# set owner of docker directory
sudo chown $USER:$USER ~/docker -R
# run mealie container
docker run -d name=mealie -v ~/docker/mealie:/app/data/ -p 9925:80 restart=unless-stopped hkotel/mealie
02. Open a web browser and navigate to http://DNSorIP:9925
03. Login with the username changeme@email.com and password MyPassword
04. Click the admin username in the left navigation menu
05. Update the Username, Full Name and Email as needed ≫ Click Update
06. Click the Change Password button
07. Enter the Current Password (MyPassword), enter and confirm a new password ≫ Click Change Password
08. Log out and log back in using the updated username and password
09. Welcome to Mealie
Documentation: https://hay-kot.github.io/mealie/documentation/getting-started/install/
### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro Run Mealie - Recipe Tracker and Meal Planner - in Docker](https://i.ytimg.com/vi/wf7peKkCa88/mqdefault.jpg)
![Install Organizr - A Homelab Services Organizer/Dashboard - on Linux
#Organizr #Dashboard #Linux
Full steps can be found at https://i12bretro.github.io/tutorials/0795.html
What is Organizr?
ORGANIZR aims to be your one stop shop for your Servers Frontend. Do you have quite a bit of services running on your computer or server? Do you have a lot of bookmarks or have to memorize a bunch of ip’s and ports? Well, Organizr is here to help with that... - https://organizr.app/
Installation
01. Log into the Linux device
02. Run the following commands in a terminal window:
# update software repositories
sudo apt update
# install available software updates
sudo apt upgrade -y
# install prerequisites
sudo apt install curl wget zip git openssl -y
# install Apache HTTPD and SQLite
sudo apt install apache2 sqlite3 -y
# install PHP components
sudo apt install php7.4 libapache2-mod-php php7.4-common php7.4-mysql php7.4-sqlite3 php7.4-xml php7.4-zip php7.4-curl php7.4-fpm -y
# download the latest organizr release
wget -O ./organizr.zip https://github.com/causefx/Organizr/archive/v2-master.zip
# extract the downloaded zip to /var/www/html
sudo unzip ./organizr.zip -d /var/www/html
# rename the extracted folder organizr
sudo mv /var/www/html/Organizr* /var/www/html/organizr
# set the owner of the organizr directory
sudo chown -R www-data:www-data /var/www/html/organizr
# create organizr apache configuration
sudo nano /etc/apache2/sites-available/organizr.conf
03. Paste the following configuration into organizr.conf
≪Directory /var/www/html/organizr≫
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ /organizr/api/v2/index.php [QSA,L]
≪/Directory≫
04. Press CTRL+O, Enter, CTRL+X to write the changes
05. Run the following command to enable the Organizr site
# enable rewrite module
sudo a2enmod rewrite
# enable the organizr site
sudo a2ensite organizr
# restart the apache2 service
sudo systemctl restart apache2
# generate a random string
head /dev/urandom | LC_ALL=C tr -dc A-Za-z0-9 | head -c 30
Organizr Web Installer
01. Open a web browser and navigate to http://DNSorIP/organizr
02. Set the Installation Type to Personal ≫ Click Next
03. Complete the registration form by entering a username, email address and password ≫ Click Next
04. Copy the randomly generated string from the open terminal and paste it in the Hash Key field
05. Enter a Registration Password ≫ Click Next
06. Enter organizr.db as the Database Name and /var/www/html/organizr/data/ as the Database Path ≫ Click Test / Create Path ≫ Click Next
07. Review the summary ≫ Click Finish
08. Welcome to Organizr
Source: https://docs.organizr.app/installation/prerequisites/installing-php
### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro Install Organizr - A Homelab Services Organizer/Dashboard - on Linux](https://i.ytimg.com/vi/wfy3BsZAhmY/mqdefault.jpg)