'OctoPad" Linux Mint Image Preconfigured with OctoPrint

I have been working on an restore image of Linux Mint with OctoPrint preconfigured. In this version I did not configure the OctoPrint Servers, but I am planning to make another image where the OctoPrint Servers are already configured and also have it preconfigured with
UI Customizer is already installed and configured for a tablet use, Microsoft Surface Pro 3 and above.

I have created two restore images, one is with Clonezilla, and the other is with Acronis True Image. Just use Rufus on Windows to burn the image to your USB, or Disk in Linux.

Here is a lint to the Introduction Video: https://youtu.be/bVRJ8OEbx2g

Here are the details in the commits of that video:

This video and information below are intended for Existing or New OctoPrint Users:

OctoPrint:

Details of the 'OctoPad" Linux Mint OctoPrint Distribution are below:

Introduction Video Can be found Here (THIS VIDEO: "YOUR ARE HERE"):

Clonezilla - 'OctoPad" Restore Image can be found Here:
https://drive.google.com/drive/folders/13lDFVlAXRFWzwxxQiIQCGGGgw7fHRFuj?usp=sharing

YouTube Video for Clonezilla:

True Image - 'OctoPad" Restore Image can be found Here:
https://drive.google.com/drive/folders/1UNbdGa4sKxmu8ioCuCSjvPqxffa31EkC?usp=sharing

YouTube Video for Acronis True Image:

How to Restore the Bootable Image to USB using Rufus:

  • 'OctoPad": Depends on your perceptions (another topic for discussion, :)).
    ** If you have a better descriptive name, I will change it, :). Really didn't know what to call it.
    *** You need to tell me why your descriptive name is better, :).
    **** depending who you are and how you are using it, ‘OctoServer” might make more since.
    **** Maybe with Linux Mint there could be a Pad version and a Server Version.
    ***** If you can do it better than me, please do.
    ****** I will download it and use it.
    ******* My ego is 100% detached from this transaction.
    ******* There is also ZERO Warranties expressed or implied. The use of this creation is at your own discretions'. “FREE”, always comes without Warranties.
    ** CREDITs & DONATIONs **
    ******** DONATIONS GO HERE: OctoPrint.org - Support OctoPrint
    ******** AND HERE: Donors - Linux Mint
    ******** AND HERE: https://clonezilla.org/
    ******** AND HERE: Rufus - Create bootable USB drives the easy way
    ******** AND HERE: Buy Acronis Cyber Protect Home Office (formerly Acronis True Image)
    ******** AND HERE: GIMP - Donate
    ******** AND HERE: OpenShot Video Editor | Donate
    ******** AND HERE AS WELL: https://www.fsf.org/
    ********* AND YES, EVEN MICROSOFT AND eBay (When you buy a used Surface Pro and do your part ethically recycling): Microsoft Surface Pro 3 for sale | eBay
    ********* AND NOT 'here": This was fun me, and all of the above aforementioned made this possible for you and me. Buy a used Surface Pro or used anything of the like, and you help me ethically recycle.

@foosel , @kantlivelong , @jubaleth , @PrintedWeezl , @tedder42 , @FormerLurker
Thank you for this awesome creation!

Is this ok, and would a Windows 10 and Windows 11 version be ok (Trying to compress them better, but they work, do you think users would download a 16gb version of windows?). I plan to configure them with UI Customizer.

@Ewald_Ikemann , @Laze
Thank both of you for your help getting me up and running with OctoPrint the way I wanted to use it!







1 Like

Typically when we've seen images created like this using a cloning/disk imaging application the instance will contain credentials and such from the first run wizard as well as logins, etc. This is not the case with the octopi image, and curious if you are accounting for all of that as well?

1 Like

I am not sure I understand what you are asking me.

The image is of the install as I show it in the video.

The user name and password are the same and I configured it to autologin.

Anyone who images it can change the password and make it not auto-login (The Pi image auto-logs in).

If they change the user name, then obviously the home directory will change and all of the user settings will change. The OctoPrint directory is in the User home directory.

I designed it with the intention that the octopad user name would be used, and the password could be changed if desired.

I developed it on one machine, then imaged in on another and it work fine, you just need to update it as I explained. Different machine, different drivers and such. Connect to WiFi and" sudo apt update && sudo apt upgrade", then reboot. It should work.

As for OctoPrint, it is installed and I did not configure it yet. Whenever you connect to any port the wizard will be shown.

Honestly, I have not attempted to configure let’s say Port:5000, then see if the settings carry over to Port:5001...

On my windows tablet, I have it configured with UI Customizer. When I connect to a new port, the user configuration is the same. So, whatever you configure in one server port will likely be the same on all of them. Just ad your printers "if" different. Let’s say you have 5x Printers that are the same, then you do not need to add 5x printers that are the same. Just on the different port pages connect to the corresponding Serial COM Port for the printer you want on that port.

I did my best to configure it so anyone could just image it over and just use it. I tested it several times and had zero issues, but in the hands of others issues may popup that I did not anticipate.

When issues popup, I will see what I can do to rectify them.

I have been using Clonezilla and Acronis True Image for years, and before that Symantec Ghost (From the way back machine). I know in the past Windows really did not like being imaged on one machine and then restored on another. Microsoft has seemed to resolve this issue in windows 10 and 11. As for Linux, this is only my second time imaging and restoring. I once developed a multi-operating system image for a MakerSpace that had Windows 10, and a few different flavors of Linux. It worked great.

I developed it for use on Microsoft Surface Pro Tablets. That was what I wanted and I already made an image of Windows 10 and 11 that I tested and use. I tried a few Linux flavors and Linux Mint is just the best developed disto for this job in my opinion. I like the way the Linux Mint version came out so I shared it. I am still working on the Windows 10 and 11 trying to get them into a smaller image, disable windows update as it can cause issue, and is not really necessary for this type use.

This is my Google Drive OctoPrint Folder with all of the images I have made. In the Windows 10 and 11 folders I have provide screenshots. For the Windows 10 and Windows 11 images, the user is a local account without a password assigned. OctoPrint is already configured with UI Customizer and my one of my JG Maker Printers, the user login is User="pi", Password="popnot123" With the Windows versions I installed build tools and python for all users. The OctoPrint Folder is in the root of C:, so if someone decided they wanted to login with their Microsoft account, or create a different account, all of the shortcuts will still work.

https://drive.google.com/drive/folders/1lIl2UkpCRxLrXyegR0pahvz2CUWoe8ni?usp=sharing

Personally, I see these images like the OctoPi images, they are designed specific for use with OctoPrint as desired. This is why I call it 'OctoPad", The Surface Tablet, or sPad (iPad). The reason, a $200 USD for a Pi 4 is unreasonable, and add the extra $70 USD for the 7inch display I wanted make the project cost more than the Used Surface Pro 3 ($150 USD shipped, the Surface 3 $30 shipped). I also believe in ethical recycling (Give any something a new life that removes the need to process it into its raw material and then into another something.) Buy something new, or buy a used something that will also satisfy the need of the human’s desires. So now I have a 10.4 inch screen instead of a 7 inch screen, and I love it!

So, I guess, I do not really know if I addressed your question or not. Could you please let me know if it was answered, or reconfigure your question?

I just want it to be useful and I will make any changes I can to do so.

Please give it a try, and if you have suggestions, then please just let me know. It is kind of fun to do.

-Jason

A resource I used for the Linux configuration:

I think @jneilliii wanted to warn about is to make sure no personal information like user names and password are included in the image.

@jneilliii , @Laze Ok, thanks for the concern. I made sure the entire image is generic. Absolutely zero personal information. Windows 10 and 11 will be the same.

@Laze are you ok with me configuring a special distribution featuring your UI Customizer?

Thanks,
Jason

Yes please do that

Not entirely generic :slight_smile:
Sharing the keys in your images is a potential security risk.

As @PrintedWeezl noted, global API key, UUIDs, tracking IDs, secret key used for hashing passwords and cookies being shared is a HUGE issue and an image including any of these is to be considered tainted and not recommended to be used. Add to that anything like server SSH keys and self signed SSL certificates that are usually generated on first boot by the OS and you've just opened up anyone using this image to a man-in-the-middle attack.

I wrote CustoPiZer specifically to allow people to adjust existing images like OctoPi further to their liking without an initial boot up that generates all kind of fragments that are supposed to be unique but no longer are if you just pack up a once booted image again.

@PrintedWeezl , @foosel ,

I never really gave that any thought. I never used any personal information when configuring it. So if I delete all of that from the config.yaml, is that all I need to do?

I am just trying to help fix a problem and I know I do not know everything.

If everyone would rather I don't contribute this, then I will delete everything.

-Jason

I am not a security expert. Just to be clear about my skillset.

@PrintedWeezl , @foosel With some help from Makerspace friends, is there a reality where you want an image like this to exist? If so, what exactly do I need to scrub to make it expectable. I want to help, just let me know how?

To be clear about its creation:
1.) I downloaded the latest live install USB here: Download Linux Mint 20.3 - Linux Mint
2.) I installed it using the user name "octopad", and password "octopad"
3.) I set it to autologin.
4.) I installed python.
5.) I installed OctoPrint.
6.) I configured the Startup Applications to launch the servers.
7.) I configured the Firefox browser with the shortcuts.
8.) I scaled up the screen dpi.
9.) I imaged it.
10.) Created the USB, then made an image.
11.) Then I trimmed the empty space to make the image smaller.

I was told you might be worried about me rigging the image, I can only tell you I did not. I am not like TeamOS.

-Jason

That wasn't my concern :slight_smile:
We just wanted to warn you that Octoprint and some applications and tools generate secure keys on first start.
If you don't remove them from your image, everyone knows them and they aren't secure anymore.
(depending on which key it was you also have to add something to the image that generates new keys at first boot)

I didn't see any ssh or ssl keys in your mint non surface image - which is a good thing :slight_smile:
We should check all images to be sure.

If anyone knows what to look for in the Windows images, please let us know.

I would stop the Octoprint service ( sudo systemctl stop octoprint.service ), then delete the whole .octoprint folder.

Personally I have no need for it, but I'm sure other users will appreciate it :octopus:

Just make it clear that it is an community project and no official image.

1 Like

@PrintedWeezl

Thank you, I will dig into it as soon as possible and give your suggestions a try.

So if I understand correctly the config.yaml file is in the .octoprint folder and I should delete the entire directory. The community user will still be able to benefit from the preconfigured fruits of my labor? Meaning OctoPrint will still load?

I just want to do it correctly, and in a way everyone feels comfortable using it.

I really appreciate the lesson in security, :upside_down_face:

I will also make sure to let everyone know it is an unofficial contribution. I will likely edit my videos to account for this. Do I need to remove all of the graphics? I want to respect the OctoPrint brand.

-Jason

You might want to look at something like Cubic to create your image (https://www.linuxuprising.com/2018/07/how-to-customize-ubuntu-or-linux-mint.html).

@PrintedWeezl ,

so I was monkeying around with a clean install and investigated your config.yaml and nuking of the ~/.octoprint folder before rebooting to image the install. I can see I delete the directly and when I first launch an octoprint server I can see the ~.octoprint directory being created.

Are there any Linux system files I need to delete or modify before rebooting to make the distribution image?

My goal is to make an image "everyone" feels safe using. Yes, I know that is a loaded desire.

so in a nut shell: I am the kernel, what do you suggest for topics of study in the realm of Linux security in this venture?

Thank you,
Jason

I will check that out, thanks!

1.) What I do is images the live USB restore image of Clonezilla or true image.
2.) Then I boot up on a Linux Mint USB and use gParted to shrink the bootable live partition down to its smallest passible size.
3.) Then I partition the free space to give me a drive for the restore image.
4.) I reboot and boot from the live true image or clonezilla and make an image of the disk onto the free-space I partitioned and formatted. So only one USB is need by the end user.
5.) boot into Linux mint and use gParted to shrink the Clonezilla or true image partition leaving the unused space unallocated.
6.) Then I open up Disk and make an image of the usb, so a 32gb falshdrive produces a 32gb image file regardless if 22gb are just unused drive space.
7.) I open terminal and do some command magic and shrink the image down to the size of the actual partitions removing the unallocated space.
8.) This way you can take a 32gb image that only needs to be 10GB, and trim it down to an image that is only 10GB so it can be imaged to a 16GB drive if desired.

In this security lesson I also discovered I did not do the USB trick on the imaged hard disk. Now I should be able to get my images smaller, and if my image is only 4gb, then they can remote it to anything.

Anyway, that is the process after I build the install.

-Jason

My interpretation is that is quite a lot of work for something that doesn't need to be. If you see my link for Cubic above, you can modify the live image with everything you need, then allow the user to install the distro as they normally would. This takes care of all the security issues and image size, while allowing you to setup your custom user, service(s), etc.

Thank Paul. I would like it to be that way as well. I did not know about Cubic and I appreciate you educating me on it.

I might play with it tonight. :slight_smile:

-Jason