How do you do to make 2 or more computers in the same page (apps,configs,tweaks ...)?

wondering if is possible to accomplish that in a easy simple way (in a desktop and notebook situation), i know that Nix OS is suitable for this, but im fedora guy, i like tux with the hat.

I do not understand what you are asking for.
Is it somthing to do with a web page?

Do you mean two systems with identical setups?

I sort of do this by:

  • use the same Fedora workstation install image
  • install the same applications (rpm + flatpak) using a script

Of course, over their lifetimes, the machines will diverge, but that is what I want because I use each machine for a different purpose.

If you’re talking about setting up lots of computers with the same configuration, there’s the kickstart system for that.

1 Like

sorry its a expression, i meant some way to make 2 computers have identical configurations

That a nice script bro, didnt know you could do so much installation stuffs with one script like this.
What you recommend me to look (things to search, for me to learn) to be able to understand and build something like this ?

1 Like

GitHub - vikdevelop/SaveDesktop: Save and load KDE Plasma, Xfce and GNOME-based DE configuration can sync all kind of Settings between two or more machines.


The script is basically a collection of commands. I’ve organised it into functions and all that, but none of that is really necessary. So, you just need to know the commands required to carry out what you want to do, and then instead of doing them manually in a shell, you chuck them in a file which becomes a script.

I’d look for “bash scripting tutorial”—there are loads of these online.

Do note that all of this happens after the initial system has been setup using the workstation install. My script doesn’t modify things like the storage configuration and all that. So if you want to tweak stuff during the installation of the OS, the kickstarts are the way to go. The kickstarts can also modify the packages that are being installed, although I don’t think they’re aware of flatpaks yet (but I haven’t looked in a while, so I could be wrong here).

I have a bunch of custom setup scripts tweaked precisely to my expectations.
I use them on one machine.

Unless I introduce a change outside of the root filesystem (e.g. change to EFI grub.cfg, partitioning layout and labels, …) I just btrfs send/receive the whole filesystem to propagate it between machines.

Or I can just re-run the scripts on all the other machines.
(that might be needed in cases the machines requires a slightly different setup - e.g. when maintaining both BIOS and EFI machines)

1 Like

may i ask , how you do this ?


In general it works like this:

  1. Have a BTRFS subvolume.
  2. Make a snapshot of that subvolume. (Snapshots are read-only by default, so they are good for sending)
  3. Send that snapshot from one machine to another via ssh

Example (ran as root):

# Create a snapshot
sudo btrfs subvolume snapshot <path_to_subvol> <path_to_snapshot>

# send
btrfs send <path_to_snapshot> | ssh <ip> "btrfs receive <path_where_to_save_snapshot>"

This works best when you store all the related data inside the same snapshot.
e.g. the whole /home or the whole /.

I do, however, a lot of tinkering around. I don’t use Fedora installer and do everything by hand (by scripts). So my specific setup is that I only have EFI parition, on which isn’t any specific data (the content of the grub.cfg there is just “configfile /path_to_grub.cfg_in_the_snapshot”) and all the rest of the system is on a single BTRFS partition.
There, I have a subvolumes for /, /home, /home/<my_user>/Downloads, /home/<my_user>/Games

AFAIK the default Fedora setup leaves the /boot on a standalone (EXT4 I guess) partition, which is unfortunate as the kernels and boot entries there can’t be snapshoted.

You can even send just an incremental snapshots.

There’s a lot of resources online, you have to choose the commands that suits best your specific setup.

The great advantage of BTRFS its commands is that you can try everything out first, both locally and over the network, and after you tested it and understood it, you can start by moving ‘production’ data.

1 Like

Oh, Thank you don’t mind if I do !